Useful SVN Commands
I have been increasingly using command line SVN these days. Find it's just a bit quicker and more reliable than the GUI clients I had been using. I've mainly written this for myself, as a quick reference for the commands I use most frequently
- svn help COMMAND
-
- Displays help for a particular svn command.
- Lists all available commands if none is specified
- svn co URL[@REV]
-
- Check out: Creates a local working copy of the repository found at the URL
- svn log
-
- Provides a log of commit messages
- Use with -l 10 to limit to 10 most recent messages
- Use -v for verbose output (lists changed files)
- Use -r 12345 to get info on particular revision
- svn info
-
- Provides useful information about the current working copy, such as repository URL, and current revision
- svn status
-
- Provides a list of diffences between the working copy, and the repostory. Take a look at the help (svn help status to find out what the different column values mean)
- svn diff
-
- Displays local modifications
- Use -r N:M to display differences between two revisions
- Use -c to see the changes for a particular revision
- svn revert PATH
-
- Reverts the specified path to the contents of the repository. You will lost any local changes!
- Not recursive by default, use -R to make recursive
- svn add PATH
-
- Adds the specified path the version control.
- Note, this doesn't add the file to the repository yet, that doesn't happen till you commit.
- svn copy SRC[@REV] DEST
-
- Copies something from SRC to DEST.
- SRC and DEST can both be either working copies paths, or URLS.
- Usual usage would be WC -> WC, or URL -> URL.
- URL -> URL is used for branching and tagging
- svn delete TARGET
-
- Deletes a file.
- If TARGET is a working copy path, the file is scheduled for deletion on the next commit
- If TARGET is a repository URL, it immediately deletes the file from the repository.
- svn move SRC DST
-
- Moves a the specified target.
- Equivalent of a copy then a delete
- Maintains history on the moved file.
- svn commit -m MESSAGE
-
- Commits the working copy changes to the repository
- svn list TARGET
-
- Provied a directory listing for the specified folder in the repository
- svn mkdir TARGET
-
- Creates a directory
- TARGET can be working copy path or repository URL
- svn merge -r N:M SOURCE@REV
-
- Merges the range of revisions starting at N and ending at M from SOURCE into the current working copy
- If N > M then it is a reverse merge, and can be used to undo the differences between N and M
- Typically used to catch up a feature branch
- Can use -c option to pick a single revision
- Can supply multiple -c and -r options to cherry pick revisions
- svn merge --reintegrate SOURCE@REV
-
- Used to reintegrate a branch into it's parent branch
- Working copy should be the parent branch (often trunk)
- A branch cannot be reintegrated twice, so good practice to delete the branch afterwads
- svn blame TARGET@REV
-
- Outputs target, with author names, and revision numbers attached to changes
- Use to see who broke what.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)
Comments
Jilles van Gurp replied on Fri, 2012/05/04 - 1:53am
Use git as a svn client with git-svn.Git-svn is a tool that allows you to use subversion as a remote repository for your local git repositories. So basically you live in a git world except when you push/pull to and from your svn remote. Basically, git is a superior svn client. Faster & more clever merges & updates; less disk space wasted, less network traffic, full history locally, etc. Worth a try and chances are you won't look back.
Wujek Srujek replied on Fri, 2012/05/04 - 3:34am
in response to: jilles
Sylvain Leroy replied on Sun, 2012/05/06 - 4:23pm
Useful command