Difference between revisions of "Net-SNMP SVN Usage Page"
(fix branches) |
|||
Line 103: | Line 103: | ||
svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username | svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username | ||
svn propedit svn:externals https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username/ | svn propedit svn:externals https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username/ | ||
− | 5.1 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5- | + | 5.1 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-1-patches/net-snmp/ |
− | 5.2 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5- | + | 5.2 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-2-patches/net-snmp/ |
5.3 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-3-patches/net-snmp/ | 5.3 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-3-patches/net-snmp/ | ||
− | 5.4 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5- | + | 5.4 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-4-patches/net-snmp/ |
− | + | trunk https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp/ | |
Afterwards you can run | Afterwards you can run |
Revision as of 15:21, 29 May 2007
External documentation:
Contents
Basic Operations
Checking out the main-line code base:
svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp net-snmp
Checking out a branch (e.g. V5-4-patches):
svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-4-patches/net-snmp net-snmp
Updating/Merging to the current repository version:
svn update
Seeing if your local checkout has modifications:
svn status
Seeing if your local checkout is up-to-date (without updating it):
svn -u status
Comparing your local file to the repository file:
svn diff FILE
Committing your changes (requires write access)
svn commit FILE
Repository analysis Commands
Listing what's available in the remote repository:
svn list https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/
Figuring out who modified a line in a file (cvs annotate):
svn blame FILE
Tagging and branching
Creating a tag:
svn copy https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-5-5/net-snmp
Creating a branch:
svn copy https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-5-patches/net-snmp
Tricks and Tips
Creating a partial checkout (top down approach)
(this was found on the GCC SVN setup page):
Start by checking out the svn repository:
svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/
Then replace any unneeded parts with some nice and fairly empty directory:
svn switch https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp/win32/bin net-snmp/historic svn switch https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp/win32/bin net-snmp/tags
The main disadvantage of this approach is that it involves downloading the full SVN repository (which is fairly large!), before removing the unwanted elements
Creating a partial checkout (bottom up approach)
Alternatively, check out the portions that you're actually interested in:
svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches
then create a suitable top-level SVN configuration. The simplest way to do this is to copy an existing '.svn' directory:
cd trunk tar cf - .svn | (cd .. ; tar xf -) cd ..
Then tweak this top-level copy as follows:
edit the file '.svn/all-wcprops' and delete the string "/trunk" edit the file '.svn/entries', delete the string "/trunk", replace the string "module-entries" with "trunk", replace the string "net-snmp" with "branches", delete the section referring to "htdocs"
Always lie to your computer - make sure it knows who's the boss!
-- darix: NEVER EVER EDIT FILES IN THE ".svn" DIRECTORY.
Creating partial checkout using externals
svn externals can be easily used to create partial checkouts for committers.
Preparation:
svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/
Per user:
svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username svn propedit svn:externals https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username/ 5.1 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-1-patches/net-snmp/ 5.2 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-2-patches/net-snmp/ 5.3 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-3-patches/net-snmp/ 5.4 https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/branches/V5-4-patches/net-snmp/ trunk https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/trunk/net-snmp/
Afterwards you can run
svn co https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username/ net-snmp
and get the desired subset.
External users can do the same within a local repository:
svnadmin create /srv/svn/repos/net-snmp-dummy svn propedit svn:externals file:///srv/svn/repos/net-snmp-dummy <externals here> svn co file:///srv/svn/repos/net-snmp-dummy