SVN: Difference between revisions

11 bytes added ,  10 September 2007
m
fix, typo
m (→‎How to Use SVN: typo, section about patches)
m (fix, typo)
Line 1: Line 1:
Mozilla has a SVN server set up to evaluate it's suitability to use to replace CVS (IIRC).
Mozilla has a SVN server set up to evaluate its suitability to use to replace CVS (IIRC).


[http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Get preed's take on it]
[http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Get preed’s take on it]


=Repository Structure=
=Repository Structure=
Line 19: Line 19:
* <tt>$Branch_Name/</tt> are the (active?) branches (i.e. MOZILLA_1_8_BRANCH, MOZILLA_1_8_0_BRANCH, etc.) These will include both release and development branches.
* <tt>$Branch_Name/</tt> are the (active?) branches (i.e. MOZILLA_1_8_BRANCH, MOZILLA_1_8_0_BRANCH, etc.) These will include both release and development branches.
* <tt>releases/</tt> are release tags, i.e. FIREFOX_1_5_0_7_RELEASE; they are not writable.
* <tt>releases/</tt> are release tags, i.e. FIREFOX_1_5_0_7_RELEASE; they are not writable.
* <tt>labels/</tt> are tags that aren't (necessarily) simple <tt>svn cp</tt>'s; that is, they may have "cherry picked" fixes, and represent uses like the current AUS2_STAGING and AUS2_PRODUCTION tags.
* <tt>labels/</tt> are tags that aren’t (necessarily) simple <tt>svn cp</tt>’s; that is, they may have "cherry picked" fixes, and represent uses like the current AUS2_STAGING and AUS2_PRODUCTION tags.
* <tt>$project/projects/$Project_Name</tt> is an area for "project branches," branches that multiple people are working on/interested in, i.e. the "REFLOW" branch.
* <tt>$project/projects/$Project_Name</tt> is an area for "project branches," branches that multiple people are working on/interested in, i.e. the "REFLOW" branch.
* <tt>$project/people/$User</tt> is an area for "personal branches," areas of development that you're working on and will merge onto either project branches or development branches.
* <tt>$project/people/$User</tt> is an area for "personal branches," areas of development that you’re working on and will merge onto either project branches or development branches.


<tt>$project</tt> will be defined on a case-by-case basis.
<tt>$project</tt> will be defined on a case-by-case basis.
Line 30: Line 30:


=How to get an account=
=How to get an account=
File an IT ticket with your username on the CVS server and which project you're working on.  
File an IT ticket with your username on the CVS server and which project you’re working on.  


If you don't have a CVS account, you need to get a [http://www.mozilla.org/hacking/form.html form] filled out and attach your public key to the bug.
If you don’t have a CVS account, you need to get a [http://www.mozilla.org/hacking/form.html form] filled out and attach your public key to the bug.


=How to connect=
=How to connect=
==Windows==
==Windows==
Get [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] and [http://tortoisesvn.net/ TortoiseSVN].
Get [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] and [http://tortoisesvn.net/ TortoiseSVN].
*Don't just download the PuTTY exe, use the installer package - it contains Pageant which you need and PuTTYgen which you may need to convert your SSH key.
*Don’t just download the PuTTY exe, use the installer package - it contains Pageant which you need and PuTTYgen which you may need to convert your SSH key.


Fire up Pageant. Right click on the icon in your system tray and click "add key." browse too your private key and select it.
Fire up Pageant. Right click on the icon in your system tray and click "add key." browse too your private key and select it.
Line 61: Line 61:
If you get that far, things are good, type exit and terminate the connection.
If you get that far, things are good, type exit and terminate the connection.


TortoiseSVN -> settings -> Network. Make it an empty box where it asks you to specify the SSH client. I'm not sure why I did this, but it works for me.
TortoiseSVN -> settings -> Network. Make it an empty box where it asks you to specify the SSH client. I’m not sure why I did this, but it works for me.


SVN checkout from svn+ssh://nameofyourputtysession/addons/
SVN checkout from svn+ssh://nameofyourputtysession/addons/


If this doesn't work, hop on IRC and we'll see what we can do for you. If you work out more solutions, please add them to this page.
If this doesn’t work, hop on IRC and we’ll see what we can do for you. If you work out more solutions, please add them to this page.


==Linux==
==Linux==
[http://subversion.tigris.org/project_packages.html Install a package] that works for you.  If you're on debian or ubuntu `apt-get install subversion` will handle all this for you.
[http://subversion.tigris.org/project_packages.html Install a package] that works for you.  If you’re on debian or ubuntu ‘apt-get install subversion’ will handle all this for you.




Line 110: Line 110:
'''Usage: svn diff [file [file...]] > patch'''
'''Usage: svn diff [file [file...]] > patch'''


If you do not have an account, you can still make a patch to submit in a [[bugzilla:|bug]].
If you do not have an account, you can still make a patch to submit in a bug.


This command takes a list of files or directories.  An example:
This command takes a list of files or directories.  An example:
6

edits