Basic administration of a basic SVN server.
Go to file
2021-11-15 08:31:26 +00:00
readme.txt Add instructions to migrate Git repos to SVN 2021-11-15 08:31:26 +00:00
SVN cheat sheet.pdf Add SVN cheat sheet 2021-10-25 18:43:34 +00:00

USER'S QUICK REFERENCE
----------------------

CHECKOUT A REPO (on the user local PC)
--------------------------------------

svn co https://svn.barcelli.net/svn/myrepo			#checkout the whole repo
svn co https://svn.barcelli.net/svn/myrepo/trunk		#checkout the trunk
svn co https://svn.barcelli.net/svn/myrepo/branches/my-branch	#checkout a branch


CREATE A NEW BRANCH (on the user local PC)
------------------------------------------

svn cp https://svn.barcelli.net/svn/myrepo/trunk \
	https://svn.barcelli.net/svn/branches/my-branch \
	-m'Create a privante branch of /myrepo/trunk'



ADMINISTRATOR'S QUICK REFERENCE
-------------------------------

PROVIDE ACCESS (Users will have access to all repositories in the server)
-------------------------------------------------------------------------

sudo htpasswd -m /etc/apache2/dav_svn.passwd user1


CREATE A NEW REPOSITORY (on the server by the administrator)
------------------------------------------------------------

sudo svnadmin create /var/www/svn/myrepo
sudo chown -R www-data:www-data /var/www/svn/myrepo
sudo chmod -R 775 /var/www/svn/myrepo


MIGRATING A REPO FROM GIT TO SVN
--------------------------------

You will need git-svn installed on your PC.

1. Create an empty repo on the SVN server (ie. myrepo in the previous case)

2. From your PC create an empty standard SVN structure on the repo:
	svn mkdir https://svn.barcelli.net/svn/myrepo{trunk,branches,tags}

3. Clone the SVN repo as GIT on your PC with a standard SVN layout:
	git svn clone https://svn.barcelli.net/svn/myrepo --stdlayout

4. Add the original GIT repo as a remote
	cd myrepo         #Change into the repo directory
	git remote add origin https://path-to-your-old-git-repo.git
	git fetch

5. Create a local branch for the remote master with a different name (ie. old-master):
	git checkout -b old-master origin/master

6. While on the old-master local branch perform a rebase:
	git rebase --onto master --root

7. Push all the commits to the SVN repo:
	git svn dcommit --add-author-from

   Now you have the full history of the GIT commits in the SVN repo on the SVN server.

8. Going forward just freshly checkout the SVN repo and start working normally with SVN:
	svn co https://svn.barcelli.net/svn/myrepo


REFERENCES
----------

https://svnbook.red-bean.com/en/1.7/index.html		#Version Control with Subversion
https://subversion.apache.org/docs/			#Subversion official documentation