DIKU :: GP&LD, May 2007 Version Control Marek Kochańczyk Jagiellonian University, Kraków Purpose Purpose Control models Client-Server Models Client-Server Models Subversion Subversion References Page 1 of 8 Marek Kochańczyk, 2007 ”Evolution is cleverer than you are.” (Francis Crick)
1 Purpose ❼ Collaborative sharing and edition of data. ❼ Management of changes. Purpose ’Collaborative’: Purpose Control models It is assumed that project evolves over time: Client-Server Models Client-Server Models common access for publicly visible modifications. Subversion Subversion ’Data’: References ❼ architectural blueprints, Page 2a of 8 ❼ diagrams of electronic models, Marek ❼ configuration files and source code . Kochańczyk, 2007
2 Purpose ❼ Collaborative sharing and edition of data. ❼ Management of changes. Purpose Changes are identified at least by: Purpose Control models Client-Server Models ❼ revision number (multiple conventions), Client-Server Models Subversion Subversion ❼ identity of the author of the change. References Actions: Page 2b of 8 ❼ reverting, Marek ❼ branching & tagging. Kochańczyk, 2007
3 Control models Distributed Egalitarian in the p2p sense: Every working copy is a repo, every repo is a working copy. Purpose Purpose Control models ❼ BitKeeper/Git. Client-Server Models Client-Server Models Subversion Subversion Client-Server References ❼ CVS, Page 3 of 8 ❼ Subversion (SVN) , ❼ ClearCase (by Rational Software). Marek Kochańczyk, 2007
4 Client-Server Models ❼ Lock-Modify-Unlock ❼ Copy-Modify-Merge Purpose Only one person is allowed to change a file at a time, after Purpose Control models registering a lock. Client-Server Models Client-Server Models Locks considered harmful – Problems: Subversion Subversion References ❼ a lock holder went to Hawaii, ❼ non-overlapping edits of the same file, Page 4a of 8 ❼ edits of separate yet dependent file. Marek Kochańczyk, 2007
5 Client-Server Models ❼ Lock-Modify-Unlock ❼ Copy-Modify-Merge Purpose Snapshot of central repository → Personal working copy Purpose Control models Problems: Client-Server Models Client-Server Models Subversion ❼ disturbing out-of-date s, Subversion References ❼ most conflicts have to be resolved manually, ❼ merging hell when many dependencies. Page 4b of 8 In practice enables more smooth collaboration. Marek Kochańczyk, 2007
6 Subversion Superiority over CVS ❼ support for binary files, ❼ designed with networking in mind Purpose Purpose (delta compression, inetd/apache/svn+ssh), Control models Client-Server Models ❼ atomic commits, Client-Server Models Subversion Subversion ❼ pre-/post-commit hooks. References Also plethora of GUI frontends and IDE plugins. Page 5 of 8 Marek Kochańczyk, 2007
→ Command Line Purpose Purpose Control models Client-Server Models Client-Server Models Subversion Subversion References Page 6 of 8 Marek Kochańczyk, 2007
7 Subversion – cont’d Good practices ❼ sane repository layout, ❼ frequent commits, Purpose Purpose Control models ❼ svn commands instead of system commands, Client-Server Models Client-Server Models ❼ eventual post-commit hooks. Subversion Subversion References Page 7 of 8 Marek Kochańczyk, 2007
8 References · SVN Documentation http://svnbook.red-bean.com Purpose Purpose Control models Client-Server Models Client-Server Models Subversion Subversion References Page 8 of 8 Marek Kochańczyk, 2007
Recommend
More recommend