This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
pld-github [2011-02-13 17:32] glen |
pld-github [2012-01-10 23:53] glen |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== CVS to Git Migration for PLD Linux ====== | + | ====== CVS to Git Migration for PLD Linux using GitHub ====== |
- | We have decided to try migrationg PLD Linux [[http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/|CVS Packages]] repository to [[https://github.com/|github]]. | + | This page describes migration of PLD Linux [[http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/|CVS Packages]] repository to [[https://github.com/|github]]. |
Organization in github as been done: [[https://github.com/pld-linux]], later referred as Organization. | Organization in github as been done: [[https://github.com/pld-linux]], later referred as Organization. | ||
Line 10: | Line 10: | ||
===== Migration Tasks ===== | ===== Migration Tasks ===== | ||
- | Migration test was done using ''git cvsimport'', so until cvs is not closed, we can continue updating git repository. | + | Migration test was done using ''cvs2git'', that is not incremental (but semi-incremental achieved with rsync.log). |
* full git cvsimport (using local cvs files copy): ~470 minutes | * full git cvsimport (using local cvs files copy): ~470 minutes | ||
Line 18: | Line 18: | ||
* imported users will be login@pld-linux.org in authors file, people can claim their identities by adding their @pld emails to their accounts in github | * imported users will be login@pld-linux.org in authors file, people can claim their identities by adding their @pld emails to their accounts in github | ||
- | You can clone from test import at carme:~glen/git/pld-git/gitroot (via ssh) | + | You can clone from test import at carme:~glen/git/pld-git/git-import (via ssh) |
Scripts used to do the import: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/git-migration/ | Scripts used to do the import: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/git-migration/ | ||
Line 24: | Line 24: | ||
==== git cvs convert todo ==== | ==== git cvs convert todo ==== | ||
- | * <del>cvsps to understand cvsnt "Commit Identifier"</del>. cvsps patched | + | * <del>cvsps to understand cvsnt "Commit Identifier"</del>. FIXED: cvsps patched |
* fix problematic packages: | * fix problematic packages: | ||
- <del>libghttp</del>, cvsps loops on libghttp-fixlocale.patch (two revisions 1.1) | - <del>libghttp</del>, cvsps loops on libghttp-fixlocale.patch (two revisions 1.1) | ||
- <del>kernel</del> - cvsps loops on kernel-ppc.config | - <del>kernel</del> - cvsps loops on kernel-ppc.config | ||
- <del>fltk2</del>, <del>classpath</del>, <del>joomla</del> | - <del>fltk2</del>, <del>classpath</del>, <del>joomla</del> | ||
- | * <del>latin2 commit messages</del>. Test packages: mutt, audiocut | + | - vim : spec.vim: ''cvs checkout: Skipping `$Log$' keyword due to excessive comment leader.'' |
- | * rewriten with "git-filter-branch --msg-filter 'FILTER' --tag-name-filter 'cat'" | + | * <del>latin2 commit messages</del>. Test packages: mutt, audiocut. RESOLVED: see cvs2git.options |
- | * <del>cvs branches not imported</del> Test package: audiocut | + | * <del>cvs branches not imported</del> Test package: audiocut. FIXED |
- | * what to do with unnamed branches? nagios-alert-jabber, nagios-plugins | + | * <del>unnamed branches will be converted to tags: ''cvs-<BRANCHPOINT>''. test packages: nagios-alert-jabber, nagios-plugins |
- | * trim $Log:$ on importing? | + | * <del>trim $Log:$ on importing?</del>. DONE |
* filter out imported archives: .tar, .gz, etc? | * filter out imported archives: .tar, .gz, etc? | ||
* http://pld.pastebin.com/xF5yzZAv - .tar, .gz files | * http://pld.pastebin.com/xF5yzZAv - .tar, .gz files | ||
Line 39: | Line 39: | ||
* maybe these files should be removed in cvs server? they are still present in "old" SOURCES.old if you really want some | * maybe these files should be removed in cvs server? they are still present in "old" SOURCES.old if you really want some | ||
* maybe we should set Comitter to value other then Author during conversion, so could later identify cvs and git commits. | * maybe we should set Comitter to value other then Author during conversion, so could later identify cvs and git commits. | ||
- | * ideas: remove %changelog from old commits (cvsps -> edit -> git cvsimport -P) | + | * <del>remove %changelog from old commits</del>. DONE |
* what to fill to .git/description? just package name? | * what to fill to .git/description? just package name? | ||
* what to do with removed packages. suggestion: clone them to ''pld-linux-obsolete'' organization in github and drop in ''pld-linux'' | * what to do with removed packages. suggestion: clone them to ''pld-linux-obsolete'' organization in github and drop in ''pld-linux'' | ||
Line 54: | Line 54: | ||
* github has polish interface translations, most devs should be happy? :D | * github has polish interface translations, most devs should be happy? :D | ||
* what to fill to Summary and URL fields (parse from .spec?) | * what to fill to Summary and URL fields (parse from .spec?) | ||
- | * automate creation of new packages via [[http://develop.github.com/|GitHub API]] probably. Currently done manually as: | + | * <del>automate creation of new packages via [[http://develop.github.com/|GitHub API]]</del>. DONE: ''pldpkg.py'' currently can add and create repos. |
- | - [[https://github.com/organizations/pld-linux/repositories/new|Create new repo]] | + | |
- | - push changes: <code> | + | |
- | git remote add github git@github.com:pld-linux/alien.git | + | |
- | git push github --mirror | + | |
- | git push github :origin | + | |
- | </code> | + | |
===== Unsorted ===== | ===== Unsorted ===== | ||
* builder script | * builder script | ||
- | * rewrite from scratch or patch current? | + | * rewrite from scratch or patch current?\\ the patched version: https://github.com/draenog/PLDbuilder |
* look into [[https://fedoraproject.org/wiki/Using_Fedora_GIT|fedpkg]]? | * look into [[https://fedoraproject.org/wiki/Using_Fedora_GIT|fedpkg]]? | ||
* git clone on carme should use --reference to local git copy to save diskspace | * git clone on carme should use --reference to local git copy to save diskspace | ||
- | * pld builder automation (building, auto tagging) | + | * pld builder automation (building, auto tagging)\\ minimal changes required; see: https://github.com/draenog/pld-builder.new |
* restricting who can delete tags (auto-xxx tags should not be altered by humans) | * restricting who can delete tags (auto-xxx tags should not be altered by humans) | ||
* $log: keyword support for .spec, also $Revision: and $Date: | * $log: keyword support for .spec, also $Revision: and $Date: | ||
Line 98: | Line 92: | ||
commands that work and have alternatives | commands that work and have alternatives | ||
- | | <code>./builder -g PACKAGE</code> | <code>fedpkg sources</code> | | + | | <code>./builder -g PACKAGE</code> | <code>fedpkg co PACKAGE; cd PACKAGE; fedpkg sources</code> | |
+ | | <code>./builder -ba PACKAGE</code> | <code>fedpkg local</code> | | ||
| <code>./compile.sh PACKAGE</code> | <code>fedpkg compile --short-circuit</code> | | | <code>./compile.sh PACKAGE</code> | <code>fedpkg compile --short-circuit</code> | | ||
| <code>./repackage.sh PACKAGE</code> | <code>fedpkg install --short-circuit</code> | | | <code>./repackage.sh PACKAGE</code> | <code>fedpkg install --short-circuit</code> | | ||
| <code>./check-unused-files.py PACKAGE</code> | <code>fedpkg unused-patches</code> | | | <code>./check-unused-files.py PACKAGE</code> | <code>fedpkg unused-patches</code> | | ||
| <code>cvs diff</code> | <code>fedpkg diff</code> | | | <code>cvs diff</code> | <code>fedpkg diff</code> | | ||
+ | | <code>./builder -bs PACKAGE</code> | <code>fedpkg srpm</code> | | ||
+ | | <code>rm -f *; cvs up</code> | <code>fedpkg clean</code> | | ||
+ | ==== todo ==== | ||
+ | * switch _builddir, _srpmdir and _rpmdir to packages/NAME when invoked from fedpkg? |