2. A bo ut t hi s ta l k
• Born from Laura Vidal’s talk
at #webspain (June 26th)
• It’s about RCS, its theory, and
concepts
• I’m sysadmin at Careesma, a
job portal at Austria, Poland
and India, using 3 different
RCS
3. Te rm s a nd c o n c e p ts
Repository
MERGE
Branch Tip/HEAD
Tag <
COMMIT
Working
Delta CHECKOUT
/UPDATE Copy
REVERT
Version/Revision
4. R epo s i t o r y l o c a tio n
REPO AND WCS IN THE SAME COMPUTER
• Local repository: SINGLE POINT OF FAILURE
SERVER STOPPED, WORK STOPPED
REPO IN SERVER, WCS IN COMPUTERS
• Central repository: CLIENT-SERVER, NETWORKED
BASICALLY, SAME PROBLEMS
EACH COMPUTER HAS REPO AND WCS
• Distributed repository: CONNECTION IS NOT NEEDED
SYNC BETWEEN REPOS
5. C o nfl i c t r e s o l u tio n
• Locking: When the user needs to modify a file, the system locks it.
If another user tries to modify it, the system denies him access to it.
In some cases, the second user can ask to invalidate the lock, but first
user’s changes will disappear.
• Merge before commit: When a conflict arises, during a commit
attempt, the user must resolve it by merging the committed version
with his working copy.
• Commit before merge: The system accepts conflicting
commits, but the last user to commit must merge it to a final single
version.
6. O t he r d i f f e r e n c e s
• Scope of operations: Operations in older RCSs are file based,
meaning that version metadata is stored separately for each file.
Newer RCSs stores that metadata associated with all the files
changed in a row. Since the change management becomes atomic (all
done, or none) it is quite better for most cases.
• Element identification: RCSs may or may not identify the
elements withint the repo. If they do, they assign an id to each file, so
any change a file may suffer, is tracked in the repo, thus it can be
undone.
• Timeline model: The system can keep track of changes to the
repo in several ways. Most used are using snapshots or using details
of the changes on each revision (changeset). Both are good and,
theorically, compatible.
7. RCS s c o m p a r is o n
Repo Conflict Timeline Scope of
Name
location strategy model operations
Changeset
Subversion Centralized Merge or lock and Tree
Snapshot
Git Distributed Merge Snapshot Tree
Mercurial Distributed Merge Changeset Tree
Bazaar Distributed Merge Snapshot Tree
•YOU’LL FIND CLIENT SOFT FOR THESE SYSTEMS ON MOST COMMON PLATFORMS.
•MOST OF THEM ACCEPT SEVERAL NETWORK PROTOCOLS TO USE THEM.
8. T im e t r a v e l lin g
• Creating a local repository
• Pulling from remote repository
• Adding files
• Committing changes
• Renaming and deleting files
• Revert to past
• Tagging
• Fixing old versions
• Merge and Diff
• Other comments