Distributed Software Development using Subversion and SubMaster Infrastructure for the Bazaar Clifford Wolf LINBIT http://www.linbit.com Clifford Wolf, September 22, 2004 SubMaster – p. 1
Introduction ● Development Models ● Requirements ● What is Subversion (1) ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster Introduction ● Components ● Mortal Kombat Using Subversion The SubMaster Client The SubMaster Server The smap helper script SubMaster Action Scripts URLs and References Clifford Wolf, September 22, 2004 SubMaster – p. 2
Development Models Introduction D i s t r i b u t e d M o d e l C e n t r a l i z e d M o d e l ● Development Models ● Requirements ● What is Subversion (1) ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster ● Components ● Mortal Kombat Using Subversion The SubMaster Client The SubMaster Server The smap helper script D e c e n t r a l i z e d M o d e l H i e r a r c h i c M o d e l SubMaster Action Scripts URLs and References Clifford Wolf, September 22, 2004 SubMaster – p. 3
Requirements ■ Everyone must have the possibility to send patches Introduction ● Development Models ● Requirements ● What is Subversion (1) ● What is Subversion (2) ■ There must be no way for patches to be lost or ignored ● Subversion is for the Cathedral ● What is SubMaster ● Components ● Mortal Kombat ■ Creating and sending patches must be as easy as possible Using Subversion The SubMaster Client ■ Keeping local changes and main tree in sync must be easy The SubMaster Server The smap helper script SubMaster Action Scripts ■ There must be no restictions due to licences or binary only URLs and References executables ■ Using the system without a GUI should be possible Clifford Wolf, September 22, 2004 SubMaster – p. 4
What is Subversion (1) ■ Subversion is a a version control system Introduction ● Development Models ● Requirements ● What is Subversion (1) ● What is Subversion (2) ■ The entire history of a project including all branches is stored ● Subversion is for the Cathedral ● What is SubMaster in a Database called Subversion Repository ● Components ● Mortal Kombat Using Subversion ■ A Subversion Repository can also be seen as a filesystem The SubMaster Client with special capabilities The SubMaster Server The smap helper script ■ Pleople can check out files or directories from a Subversion SubMaster Action Scripts Repository, change them and commit the changes back to URLs and References the repository ■ Some changes can be done directly on the repository without creating a working copy Clifford Wolf, September 22, 2004 SubMaster – p. 5
What is Subversion (2) ■ Subversion Repositories can be accessed thru the Introduction ● Development Models filesystem, using HTTP/WebDAV or by a special SVN:// ● Requirements ● What is Subversion (1) protocol ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster ● Components ● Mortal Kombat ■ The tool for creating and maintaining the database behind a Using Subversion Subversion Repository is called ’svnadmin’ The SubMaster Client The SubMaster Server ■ The tool for working with the Subversion Repository and The smap helper script Working copies is called ’svn’ SubMaster Action Scripts URLs and References ■ The calling convention for ’svn’ is simmilar to the calling convention for ’cvs’ Clifford Wolf, September 22, 2004 SubMaster – p. 6
Subversion is for the Cathedral ■ Subversion on it’s own is not good for bazaar-style Introduction ● Development Models development ● Requirements ● What is Subversion (1) ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster ■ There is only one central repository ● Components ● Mortal Kombat Using Subversion ■ Only a limited number of people has write access to the tree The SubMaster Client The SubMaster Server ■ Everyone else has to send patches per email The smap helper script SubMaster Action Scripts URLs and References ■ It’s hard to keep a local tree with patches in sync with the official tree Clifford Wolf, September 22, 2004 SubMaster – p. 7
What is SubMaster ■ SubMaster is a set of scripts based on Subversion targeting Introduction ● Development Models bazaar-style development ● Requirements ● What is Subversion (1) ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster ■ Everyone has his own local Subversion repository ● Components ● Mortal Kombat Using Subversion ■ SubMaster keeps the local repository in sync with the master The SubMaster Client repository preserving local changes The SubMaster Server The smap helper script ■ SubMaster provides an infrastructure for sending patches, SubMaster Action Scripts collecting feedback and applying patches to the master tree URLs and References ■ Working with SubMaster almost feels like having write access to the official tree Clifford Wolf, September 22, 2004 SubMaster – p. 8
Components Introduction C o m p o n e n t s o f ● Development Models S e r v e r C o m p o n e n t s ● Requirements a S u b M a s t e r ● What is Subversion (1) ● What is Subversion (2) E n v i r o n m e n t ● Subversion is for the Cathedral ● What is SubMaster SubMaster Subversion ● Components ● Mortal Kombat Server Master Using Subversion Repository s m . p l s m a p . s h The SubMaster Client The SubMaster Server The smap helper script SubMaster Action Scripts L o c a l D e v e l o p e r T r e e P r o j e c t M a i n t a i n e r URLs and References SVN Working Copy SVN Working Copy Subversion Client Repository Clifford Wolf, September 22, 2004 SubMaster – p. 9
Mortal Kombat ■ In his keynote about Linux Kenrel development at the Introduction ● Development Models german Linux Kongress, Russty Russel did talk about "Code ● Requirements ● What is Subversion (1) By Confrontation". ● What is Subversion (2) ● Subversion is for the Cathedral ● What is SubMaster ● Components ● Mortal Kombat ■ He called that Using Subversion The Mortal Kombat Model The SubMaster Client of Software Development The SubMaster Server The smap helper script ■ So the SubMaster tools are nothing else than SubMaster Action Scripts URLs and References The Weapons and Battlefield of the Mortal Kombat of Software Development Clifford Wolf, September 22, 2004 SubMaster – p. 10
Introduction Using Subversion ● Creating a repository ● Creating a working copy ● Making changes (1) ● Making changes (2) Using Subversion ● Committing changes ● Branches and tags ● Getting Help (1) ● Getting Help (2) The SubMaster Client The SubMaster Server The smap helper script SubMaster Action Scripts URLs and References Clifford Wolf, September 22, 2004 SubMaster – p. 11
Creating a repository ■ Creating the repository itself is easy: Introduction s v n a d m i n c r e a t e / h o m e / s v n / r e p o s Using Subversion ● Creating a repository ● Creating a working copy ● Making changes (1) ● Making changes (2) ■ If the repository should be accessable thru HTTP/WebDAV ● Committing changes ● Branches and tags (http://), you need to configure your apache to load the ● Getting Help (1) ● Getting Help (2) Subversion module and set it up. The SubMaster Client The SubMaster Server ■ If the repository should be accessable thru the Subversion The smap helper script protocol (svn://), you need to set up the Subversion server SubMaster Action Scripts s v n s e r v e . URLs and References Clifford Wolf, September 22, 2004 SubMaster – p. 12
Creating a working copy ■ Using the tool s v n is very simmilar to using c v s . Introduction Using Subversion ● Creating a repository ● Creating a working copy ■ A Working copy can be created with: ● Making changes (1) s v n c o f i l e : / / / h o m e / s v n / r e p o s l o c a l d i r ● Making changes (2) ● Committing changes c d l o c a l d i r ● Branches and tags ● Getting Help (1) ● Getting Help (2) The SubMaster Client ■ Note that no equivalent to $CVSROOT exists. The SubMaster Server The smap helper script ■ Within the working copy, every directory has a . s v n SubMaster Action Scripts subdirectory containing the Subversion metadata. URLs and References Clifford Wolf, September 22, 2004 SubMaster – p. 13
Making changes (1) ■ Modifying files: Introduction ◆ Just edit them as usual with your favorite editor Using Subversion ● Creating a repository ◆ Note that Subversion is using binary deltas and has good ● Creating a working copy ● Making changes (1) support for non-ascii files ● Making changes (2) ● Committing changes ● Branches and tags ● Getting Help (1) ● Getting Help (2) ■ Adding files: The SubMaster Client ◆ First create the new file as usual ◆ Then execute s v n a d d The SubMaster Server filename The smap helper script SubMaster Action Scripts ■ Removing files: URLs and References ◆ Just execute s v n r m filename ◆ The file will automatically removed by s v n Clifford Wolf, September 22, 2004 SubMaster – p. 14
Recommend
More recommend