This page is obsolete -- please see Git/NewRepository!

For help with SVN, see SubversionFAQ.

/!\ Attention: Have a GNOME SVN account? Please read your specific instructions (at the end of this page)

Users without GNOME SVN account

Please first check your project meets the ProjectPrerequisites. If all these requirements are met, send a request to svnmaster@gnome.org including:

Your project should be approved within a few days. If sysadmin are busy, it can take a few weeks. Feel free to ask what's happening with your request on #sysadmin, but don't pester.

A sysadmin will copy an empty template repository into place for you, which will contain the standard 'trunk', 'branches' and 'tags' directories, and a simple post-commit hook file (which includes the GNOME global post-commit hook).

Check out your new module, and add your code to the 'trunk' directory. See our other notes on using Subversion with GNOME, and any other external documentation about using Subversion in general.

Please be careful not to check in any automatically generated files, such as the files that the auto* tools create. If in doubt about how to check it in, please send a link to your latest tarball to svnmaster@gnome.org and someone will take care of it for you.

If you are moving an existing subversion repository to GNOME, and want to retain the history, please prepare a compressed 'svndump' format file, make it available for download somewhere and send a *link* to it to 'svnmaster@gnome.org'.

If you are moving an existing CVS module/repository to GNOME, and want to retain the history, please prepare a compressed tarball of the CVS files (',v' files), make it available for download somewhere and send a *link* to it to 'svnmaster@gnome.org'

Users with GNOME SVN accounts

Note: Your project should have an open source license and have something to do with GTK / GNOME. See ProjectPrerequisites for details.

Brand new project

Execute the following:

ssh $USERNAME@svn.gnome.org new-svn-repos $REPOS

For example:

ssh someone@svn.gnome.org new-svn-repos example-project

Please make sure your module has a syntactically valid MAINTAINERS file (see MaintainersCorner#maintainers).

Please also announce your project somewhere. E.g. the gnome-announce-list, Planet GNOME, etc.

Existing project

If you want to preserve SVN history and have a dump imported, please email svnmaster@gnome.org with a link to your SVN dump and mention your GNOME SVN username. Please pack using lzma or 7zip, the compression in some cases is at least 10 times better than gzip/bzip -9. Please note that this has to be manually resolved by a sysadmin volunteer and can take a while.

To speed up the process, and if it's possible (for example, if you've converted the repository from another format using a tool like Tailor), you can edit the SVN dump (before e-mailing svnmaster@gnome.org) to change the SVN author to match your GNOME SVN username. Follow the instructions here: http://home.introweb.nl/d/dodger/svnauthor.html.

If you can live without the history and want the process speeded up, you can instead follow the instructions above to create the repository from scratch yourself.

Sysadmin

Log on to socket. Fetch the dump and edit it, using binary mode in vim, making sure that all instances of svn:author are changed to match the relevant gnome.org userids. Change to root. Run /home/admin/bin/create-repository repositoryname [dumpfile]

Existing repositories

Check the directories within the SVN dumpfile start only with /trunk,/branches,/tags using:

  grep ^Node-path $DUMPFILE | sort | uniq

Check all svn:authors match GNOME userids using:

  grep -a ^svn:author -A3 $DUMPFILE | sort | uniq

Existing userids can be changed using vim. To do that use Gnumeric/Calc. The old userids should be in column A, the new ones in column B. Paste the following formula on cell C1 (and copy down):

  =":%s/^K 10\(\n\)svn:author\nV "&LEN(A1)&"\n"&A1&"$/K 10\1svn:author\1V "&LEN(B1)&"\1"&B1&"/"
or:
  =":%s/^K 10\\(\\n\\)svn:author\\nV "&LEN(A1)&"\\n"&A1&"$/K 10\\1svn:author\\1V "&LEN(B1)&"\\1"&B1&"/"

Now edit the file with dump and issue:

  :set binary

After above, paste all the commands given by above formula

NewSVNRepos (last edited 2009-04-28 19:59:51 by ChristianRose)