SVN is Version controlling system and predates git, It was one of the most widely used version control system and served the community and still going on.. It had its own share advantages and shortcomings.
In this tutorial we will shed some light on practical usecases of SVN and day-to-day activities.
How to take a dump of live svn repo by loading it to another Repo on the fly.
# svnadmin dump /opt/svn/ProjectCode | svnadmin load /opt/svn/ProjectCode
SVN commands to take the dump from repo to a .dump file
# svnadmin dump /opt/svn/PST > test.dump
Using svn comands svnadmin to take the dump for specific revision number range from commandline.
# svnadmin dump -r 41:3601 /opt/svn/ProjectCode > test.dump
SVN Commands to split svn directories to respective svn repositories:
We have the folder structure of the ProjectCode and want to create a individual repository of all the folders with their own SVN repos, We can use the svndumpfilter to achieve the task.
$ cat projectslist ./project1./project2 ./project3 ./project4
$ for i in `cat projectslist`; do sudo svndumpfilter --drop-empty-revs --renumber-revs exclude `cat projectslist | grep -v $i` < SVN.dump > `echo $i | sed -e 's/\///g'`.dump; done
How to setup up a SVN repo from linux commandline.
Creating Dir for new SVN
# mkdir /opt/svn/ProjectCode
Initialize a repo in the newly created directory
#svnadmin create /opt/svn/ProjectCode
Load the repo from dump
#svnadmin load --force-uuid /opt/svn/ProjectCode < newProjectCode.dump
Loading repo from dump and redirecting output to file
#svnadmin load --force-uuid /opt/svn/ProjectCode < newProjectCode.dump >> /root/pst.out &
Linux Commands To delete a repo; Make sure the svnserve process is in stopper state and not active while removing the repo.
# rm -rf /opt/svn/PST
While taking SVN repo dump How to Exclude some paths from existing dump and create a new dump
We will be using the exclude option and passing the exclude pattern
# svndumpfilter exclude `cat ProjectCode-exclude-somerolders` < ProjectCode.dump > new-exclude.dump
Below is a sample exclude file with specific file names and directory paths
# cat ProjectCode-excludelist /path/to/code/not/required /Some/more/paths/and/specific-filenames.css /code/static/test/
How to check the logs from SVN repo from commandline
# svn log
How to setup SVN repository with configuration ?
# svnadmin create /opt/svn
Below is the example snippet from svnserve.conf
[general] anon-access = none auth-access = write password-db = /opt/svn/conf/passwd authz-db = /opt/svn/conf/authz
Here is the sample config snipet from authz
[/] svamshi = rw
How to start SVN server from linux commandline
# svnserve --listen-host ip-address/project-repo -r /opt/svn/my-projectcode/ -d
How to checkout a SVN repo from linux commandline
# svn co --username=svamshi --password=mypassword svn://ip-address/project-repo
Adding the new created files to svn and then commit to svn.
# svn add linuxcent.html
# svn commit -am "updated with linuxcent.html"
How to serve the SVN repository through Apache Httpd server.
Example [/code]/opt/svn[/code]The svn module has to be downloaded
Below is the sample configuration of virtualhost informantion
What are the svn commands?
Here are the basic SVN commands that every developer and admin should know.
svn admincreate. The svn admincreate command creates a new, empty repository.
- svn import. …
- svn checkout. …
- svn commit. …
- svn add. …
- svn delete. …
- svn list. …
- svn diff.
How do I use svn in Linux?
- Connect via SSH. In order to install SVN, connect to your Linux VPS via SSH. …
- Update the OS Packages and Install SVN in Linux. If you are using an Ubuntu VPS, update the OS packages and install SVN on your server using the commands below: sudo apt-get update sudo apt-get install svn. …
- Check SVN Version
What is svn up command?
The svn update command lets you refresh your locally checked out repository with any changes in the repository HEAD on the server. It also tells you what has been changed, added, deleted. If a change has been made to a file you have also changed locally, svn will try to merge those changes.
How do I run svn?
- Open windows explorer.
- Create a folder where you will store project files.
- Right-click on the folder you created and select “SVN Checkout” (see image below).
- When prompted, enter your username and password.
- If everything worked, you now have a copy of the repository in your directory.
Which is Better Git or svn?
Why SVN Is Better Than Git
SVN is better than Git for architecture performance, binary files, and usability. And it may be better for access control and auditability, based on your needs.
Where are svn commands executed?
If you want to run Subversion commands from the command prompt, you should run the svn.exe command line client. TortoiseSVN 1.6.
How do I use shelve in svn?
To shelve your local changes, select your working copy and use Context Menu → Shelve The following dialog allows you to select the files you want to shelve and give a name under which you want to store them. If you select an existing shelf, then a new version is created for that shelf.
Does svn work on Linux?
Subversion is a popular open-source version control tool. It is open-source and available for free over the internet. It comes by default with most of the GNU/Linux distributions, so it might be already installed on your system.
How configure svn server in Linux?
How to Install SVN Server on Ubuntu 18.04 & 16.04 LTS
- Step 1 – Install Apache. …
- Step 2 – Install SVN Server. …
- Step 3 – Create First SVN Repository. …
- Step 4 – Create Users for Subversion. …
- Step 5 – Configure Apache with Subversion. …
- Step 6 – Access Repository in Browser.