A bo u t 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
Te rm s a n d c o n c e p tsRepository MERGEBranch Tip/HEAD Tag < COMMIT Working Delta CHECKOUT /UPDATE Copy REVERTVersion/Revision
R e p o s i t o ry l o cation 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
Confl i c t r e s o l u tio n• Locking: When the user needs to modify a ﬁle, 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 ﬁrst user’s changes will disappear.• Merge before commit: When a conﬂict 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 conﬂicting commits, but the last user to commit must merge it to a ﬁnal single version.
Other differences• Scope of operations: Operations in older RCSs are ﬁle based, meaning that version metadata is stored separately for each ﬁle. Newer RCSs stores that metadata associated with all the ﬁles changed in a row. Since the change management becomes atomic (all done, or none) it is quite better for most cases.• Element identiﬁcation: RCSs may or may not identify the elements withint the repo. If they do, they assign an id to each ﬁle, so any change a ﬁle 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.
RCS s c o m p a r is o n Repo Conﬂict 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.
Tim e t r a v e l l in g• Creating a local repository• Pulling from remote repository• Adding ﬁles• Committing changes• Renaming and deleting ﬁles• Revert to past• Tagging• Fixing old versions• Merge and Diff• Other comments
Q&ANot sure about reamining time, but feel free to ask
W e ’ r e d o ne ! Thanks for your attentionFind me at Twitter (@ifosch)
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.