SVN
General Information
Subversion (svn) is a “free/open-source version control system”.
Checklist
- Distro(s): Any
- Package: svn installed
Create
Create a working directory space.
Checkout Repo
Checkout creates a local copy of the repo.
Checkout command
svn checkout URL
Shortcut
svn co URL
Modify
Make changes to a repo.
Update
Update changes from the repo to your local copy.
svn update
Add File
Add a new file/directory to the repo. New file only gets pushed to the repo copy upon commit.
- Create a new file/directory locally
- Add the file with svn
svn add mynewfile
- Commit the added file to the repo
svn commit -m "Adding a new file to the project." mynewfile
Delete File
Delete a file from the working copy. The file will be removed from the repo upon commit.
- Delete file via svn
svn delete mynewfile
- Commit the deletion to remove from the repo
svn commit -m "removing mynewfile." mynewfile
Move File
Move or rename a file. File is changed in the repo upon commit.
- Move/rename a file
svn move oldfilename newfilename
- Commit move/rename
svn commit -m "Renaming my file" newfilename
Commit
A commit saves changes to the repo.
Commit command
svn commit -m "my changes description"
Cleanup
Keep your working directory clean by listing and/or removing untracked files.
List untracked files
svn status --no-ignore | grep '^?' | awk '{print $2}' | xargs -I{} ls -l '{}'
WARNING: The following could remove work in progress!
Remove untracked files
svn status --no-ignore | grep '^?' | awk '{print $2}' | xargs -I{} rm -fv '{}'
Inspect
View status and logs.
Diff
Show the differences between your working copy and the repo copy.
svn diff myfilename
Status
Show the status of the file(s) in the working copy.
svn status PATH
Show the character codes for various statuses
svn help status
Log
View logged commits.
svn log PATH
View diff of a specific logged revision
svn log --revision r101 --diff