Difference between revisions of "Net-SNMP SVN Usage Page"
(Fix instructions for (bottom up) partial checkout) |
|||
Line 91: | Line 91: | ||
Always lie to your computer - make sure it knows who's the boss! | 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 === | ||
+ | [http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html 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/ | ||
+ | svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username | ||
+ | |||
+ | Per user: | ||
+ | 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-3-patches/net-snmp/ | ||
+ | 5.2 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-3-patches/net-snmp/ | ||
+ | HEAD 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 |
Revision as of 15:12, 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/ svn mkdir https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/workspaces/username
Per user:
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-3-patches/net-snmp/ 5.2 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-3-patches/net-snmp/ HEAD 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