version-control: Make README.md and instructor.md more generic
[swc-version-control-svn.git] / version-control / README.md
index becae9b66f08162542821f587fede71d922f246b..4380bdb45073e8c7b3f434c2c15a0938bbce8bff 100644 (file)
@@ -8,12 +8,11 @@ Learning objectives
   information.
 * Check out a working copy of a repository.
 * View the history of changes to a project.
-* Explain why working copies of different projects should not overlap.
 * Add files to a project.
-* Commit changes made to a working copy to a repository.
-* Update a working copy to get changes from the repository.
-* Compare the current state of a working copy to the last update from
-  the repository, and to the current state of the repository.
+* Commit changes made to the working copy.
+* Get changes from an upstream repository.
+* Compare the current state of a working copy to the most recent
+  update from the upstream repository.
 * Explain what "version 123 of `xyz.txt`" actually means.
 
 Key points
@@ -21,39 +20,23 @@ Key points
 
 * Version control is a better way to manage shared files than email or
   shared folders.
-* The master copy is stored in a repository.
-* Nobody ever edits the master directory: instead, each person edits a
-  local working copy.
-* People share changes by committing them to the master or updating
-  their local copy from the master.
+* People share their changes by committing them to public repositories
+  and fetch other's changes by updating their local copy from public
+  repositories.
 * The version control system prevents people from overwriting each
-  other's work by forcing them to merge concurrent changes before
-  committing.
+  other's work by making merges explicit.
 * It also keeps a complete history of changes made to the master so
   that old versions can be recovered reliably.
 * Version control systems work best with text files, but can also
   handle binary files such as images and Word documents.
 * Every repository is identified by a URL.
-* Working copies of different repositories may not overlap.
-* Each changed to the master copy is identified by a unique revision
-  number.
+* Each change to the master copy is identified by a unique revision
+  ID.
 * Revisions identify snapshots of the entire repository, not changes
   to individual files.
 * Each change should be commented to make the history more readable.
 * Commits are transactions: either all changes are successfully
   committed, or none are.
-* The basic workflow for version control is update-change-commit.
-* `svn add <em>things</em>` tells Subversion to start managing
-  particular files or directories.
-* `svn checkout $URL` checks out a working copy of a repository.
-* `svn commit -m "$MESSAGE" $THINGS` sends changes to the repository.
-* `svn diff` compares the current state of a working copy to the state
-  after the most recent update.
-* `svn diff -r HEAD` compares the current state of a working copy to
-  the state of the master copy.
-* `svn history` shows the history of a working copy.
-* `svn status` shows the status of a working copy.
-* `svn update` updates a working copy from the repository.
 
 Merging conflicts
 =================
@@ -64,18 +47,13 @@ Learning objectives
 * Explain what causes conflicts to occur and how to tell when one has
   occurred.
 * Resolve a conflict.
-* Identify the auxiliary files created when a conflict occurs.
 
 Key points
 ----------
 
 * Conflicts must be resolved before a commit can be completed.
-* Subversion puts markers in text files to show regions of conflict.
-* For each conflicted file, Subversion creates auxiliary files
-  containing the common parent, the master version, and the local
-  version.
-* `svn resolve $FILES` tells Subversion that conflicts have been
-  resolved.
+* Most version control systems put markers in text files to show
+  regions of conflict.
 
 Recovering old versions
 =======================
@@ -90,13 +68,9 @@ Learning objectives
 Key points
 ----------
 
-* Old versions of files can be recovered by merging their old state
-  with their current state.
-* Recovering an old version of a file does not erase the intervening
+* Recovering an old version of a file may not erase the intervening
   changes.
 * Use branches to support parallel independent development.
-* `svn revert` undoes local changes to files.
-* `svn merge` merges two revisions of a file.
 
 Setting up a repository
 =======================
@@ -109,7 +83,6 @@ Learning objectives
 Key points
 ----------
 
-* `svnadmin create $NAME` creates a new repository.
 * Repositories can be hosted locally, on local (departmental) servers,
   on hosting services, or on their owners' own domains.
 
@@ -127,9 +100,5 @@ Learning objectives
 Key points
 ----------
 
-* `$Keyword: …$` in a file can be filled in with a property value each
-  time the file is committed.
 * Put version numbers in programs' output to establish provenance for
   data.
-* `svn propset svn:keywords $PROPERTY $FILES` tells Subversion to
-  start filling in property values.