====== svn usage ====== ===== Information ===== SVN usage ===== Procedure ===== ==== Import a new project ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.importing.html]] You should create a basic template for the project (let's call our project "project"): $ mkdir -p project/trunk project/tags project/branches You want to put your first version into ''project/trunk'' $ svn import project https://shalom/svn/web/project -m "initial import" ==== Initial Checkout ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.initial.html]] The first time you checkout a project, run: $ svn checkout https://shalom/svn/web/project/trunk destdir ''destdir'' will be a local folder containing all the files in the ''project/trunk'' directory ==== Update your working copy ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.update]] This command will download all changes since the last time you updated or initially checked out the files: $ svn update I think it might try to merge any local changes you have made to the files with what is downloaded from the server. ==== View changes (diff) ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.examine]] If you want to see what changes you have made to your local working copy (as compared to the copy you most recently downloaded), run: $ svn diff ==== Undoing (reverting) changes ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.revert]] If you made a change to your local working copy that you did not like, run: $ svn revert FILE_TO_REVERT ==== Add a new file ==== To add a new file, run: $ svn add NEWFILE (the adding will not actually take place until you commit your changes). ==== Resolve conflicts ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.resolve]] ==== Commit your changes ==== [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.commit]] When you are done editing your local copies, it is time to commit them to the SVN repository: $ svn commit -m "fixed navbar navigation" The log message (''-m ...'') is required when committing - it gives a brief summary of the changes you have made to your local working copy. ==== Working with branches ==== [[http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html|basic merging info]] [[http://svnbook.red-bean.com/en/1.5/svn.branchmerge.switchwc.html|branch switching]] Create a branch: $ svn copy https://svn/url/trunk https://svn/url/branches/branchname -m "creating branch branchname" Update the branch (to keep in sync with trunk): $ pwd /path/to/branch/workingcopy $ svn merge https://svn/url/trunk . $ svn ci -m "updated branchname with trunk" Reintegrate branch to trunk (subversion >= 1.5): $ pwd /path/to/trunk/workingcopy $ svn merge --reintegrate https://svn/url/branaches/branchname . $ svn ci -m "merged branchname into trunk" After reintegrating, you must delete the branch as it is no longer useful.svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \ -m "Remove my-calc-branch." You can switch branches with: $ svn switch https://svn/url/newpath == == \\ \\ {{tag>:freebsd}}