Debian Edu SVN-2-Git Migration Status
Package tracker
SVN folder name |
package? |
Salsa? |
comment |
debian-edu |
x |
debian-edu |
|
debian-edu-artwork |
x |
debian-edu |
|
debian-edu-config |
x |
debian-edu |
|
debian-edu-doc |
x |
debian-edu |
|
debian-edu-install |
x |
debian-edu |
|
desktop-profiles |
x |
debian-edu/upstream |
|
killer |
x |
debian-edu-pkg-team |
|
libpam-mklocaluser |
x |
debian-edu/upstream |
|
shutdown-at-night |
x |
debian-edu-pkg-team |
|
sitesummary |
x |
debian-edu/upstream |
|
slbackup |
x |
debian-edu-pkg-team |
|
slbackup-php |
x |
debian-edu-pkg-team |
|
slbackup-php.squeeze-proposed-update |
x |
no |
dropped |
Packages we care about but which are not uploaded to Debian
SVN folder name |
package? |
Salsa? |
comment |
dak |
x |
debian-edu/historic |
|
debian-edu-archive-keyring |
x |
debian-edu/historic |
|
debian-edu-itil-doc-nb |
x |
debian-edu/historic |
|
educlient |
x |
debian-edu/upstream |
|
eduroaming |
x |
debian-edu/upstream |
|
kde-icon-cache |
x |
debian-edu/upstream |
Directories we care about but which are not packages
Alioth svn repo backup available here: alioth-archive.debian.org/svn/debian-edu.tar.xz
Directories we dont care about
SVN folder name |
desa-config |
d-i-bootimages |
edu-ltsp-client-builder |
etcinsvk |
fai-configspace |
host-policygroups |
localization-config |
moodle-debian-edu-theme |
tarballs |
update-nsswitch |
upgradetest |
webmin-ldap-user-simple |
xdebconfigurator |
Everything below is outdated, but kept here out of historic interest.
Our repository structure
The idea is to have the debian-edu-* folders in the project's base folder (/git/debian-edu)
The upstream folder in (/git/debian-edu/upstream) is for software we maintain as upstream and software that may be interesting to other people, as well.
The pkg-team folder in (/git/debian-edu/pkg-team) is for packages maintained by the Debian Edu packaging team.
Migration HowTo
This is a sketch on an exemplary migration of a package that was maintained in SVN and shall now be maintained in Git.
Create new Git package on Alioth
Create a fresh Git project for <package> on git.debian.org:
$ ssh git.debian.org $ cd /git/debian-edu/<folder-to-use> $ ../setup-project <package> "<package> Debian package"
Note: all debian-edu* packages go into the Debian Edu project's base folder (/git/debian-edu). Edu-related packages go into the pkg-team subfolder. Upstream projects go into the upstream subfolder.
Clone package from SVN
Clone a Git repository from the SVN version of <package>:
git svn clone \ svn+ssh://svn.debian.org/svn/debian-edu/trunk/src/<package>/ \ --authors-file=<edu-authors>
If the <edu-authors> file is incomplete (i.e. there is a login name in an SVN commit that has no match in the <edu-authors> file) the command will abort. Update your <edu-authors> file, remove the locally created folder <package> and execute the above command again.
FIXME: Branches and tags should better be handled as describe in the main page or in the Game team one. Cross-check with the svn2git migration script posted by Andreas Tille to debian-edu ML.
Connect local SVN clone and remote Git repository
Enter the new local Git project:
$ cd <package>
Specify the new remote origin Git repository:
$ git remote add origin ssh://git.debian.org/git/debian-edu/<folder-to-use>/<package>.git
Setup git-buildpackage to ease packing with git
With Git versions greater than 1.7.2.3:
$ git checkout --orphan upstream $ git rm -rf . $ git commit --allow-empty -m 'Initial upstream branch.' $ git checkout -f master
With Git versions lower than 1.7.2.3:
$ git symbolic-ref HEAD refs/heads/upstream $ git rm --cached -r . $ git commit --allow-empty -m 'Initial upstream branch.' $ git checkout -f master
Import upstream tarball:
$ git-import-orig --pristine-tar /path/to/tarball.orig.tar.gz
source: http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html#GBP.IMPORT.CONVERT
Push the local SVN/Git clone to remote Git repository
Push the local version to remote:
$ git push origin master:master
Release tags
FIXME: This can be improved!!!
If the SVN project did not contain any tags, you have to manually add Git tags according to SVN log entries (log entries that mention the works "release", "releasing", "upload to ..." or similar). For the taggable log entries you have to determine the corresponding Git hash.
$ git tag -s debian/<package-version> -m "Debian release <package-version>" <git-hash> $ ... some more ... $ git push origin --tags
Mark SVN package/project as migrated
From the now deprecated SVN project folder you should remove all files and place a README.migrated2git into that folder that points to the new Vcs-Browser location.
The package <package> has been migrated to Git on Alioth: http://anonscm.debian.org/gitweb/?p=debian-edu/<folder-to-use>/<package>.git
Fix up Vcs-*: fields in debian/control
Last but not least: make sure that the Vcs-*: fields in debian/control of the migrated package get updated with the next package upload.