(leaving unselected changes as changes in the working copy), instead of having only a file-level granularity. external references: embedding of foreign repositories in the source tree partial checkout/clone: ability to check out or clone only a specified subdirectory from a repository. permissions: tracks file permission bits in the revision history. timestamp preservation: overwrites the last modified filesystem attribute with the commit time upon checkout. custom automatic merge tool: automatic merging can be attempted by any tool of the user's choice (hopefully configurable on a per-file basis) supported formats: either read/write support or read-only (conversion, potentially repeated) shared build cache of derived objects: the ability to automatically substitute (wink-in) derived-objects that were built by other confederated clients that share exactly the same dependencies instead of rebuilding them locally Basic commands Table explanation Commands in green rectangles that are not surrounded by [square brackets] are at an interactive command-line prompt. Text in [square brackets] is an explanation of where to find equivalent functionality. repository init: Create a new empty repository (i.e., version control database) clone: Create an identical instance of a repository (in a safe transaction) pull: Download revisions from a remote repository to a local repository push: Upload revisions from a local repository to a remote repository local branches: Create a local branch that does not exist in the original remote repository checkout: Create a local working copy from a (remote) repository update: Update the files in a working copy with the latest version from a repository lock: Lock files in a repository from being changed by other users add: Mark specified files to be added to repository at next commit remove: Mark specified files to be removed at next commit (note: keeps cohesive revision history of before and at the remove.) move: Mark specified files to be moved to a new location at next commit copy: Mark specified files to be copied at next commit merge: Apply the differences between two sources to a working copy path commit: Record changes in the repository revert: Restore working copy file from repository generate bundle file: Create a file that contains a compressed set of changes to a given repository rebase: Forward-port local commits to the updated upstream head Advanced commands Table explanation Commands in green rectangles that are not surrounded by [square brackets] are at an interactive command-line prompt. Text in [square brackets] is an explanation of where to find equivalent functionality.