In spite of gezelligheid, (or perhaps because of it), i've managed to get a working CVS to git converter working. This is not a generic general purpose converter, because hey, there are many available, and i'm even using one. The goal of this converter is to go from Fedora CVS to Git and vica versa. There are a number of advantages to this. For starters, it makes it much easier to view the history of the RPM, but there are many other advantages too. Here are some other advantages:
Take me to the Code! Enough of the techno-babble!
Still here...? Good.
- Forking new branches could be theoretically easier, to test out new features, and perhaps branch for Fedora N and Fedora N+1
- Cherry picking patches from one Fedora Release branch into another
- Rebasing changes from test branches to Fedora releases
- Git is far better than CVS
Also, another reason for doing it this way is that the git tree that the developer makes is inherently local to his or her system. This does not require everyone to migrate their projects over. It's also not meant to be a final answer on how to convert. There has been alot of talk about newer, fancier, and shinier ways to implement RPM building from upstream source packages. Since this is in Fedora Devshell, the goal is to accomodate multiple ideas as testing grounds to see which one works.
In any case, here is how it works. I will post directions below if you want to try it out. Rather than using some complicated trickery to turn one CVS tree (namely /rpms/
I have a list of features that i've been talking to kanarip about adding to this, that will probably show up in the not too far future. Meanwhile, this code needs testing. The Fedora CVS is full of hacks and workarounds from over the years. Let's see how much of this actually works. If you're interested in using this at all for your RPM development, grab a copy, fire it up, and let me know what breaks and what works. The best thing to do is use the following test plan. (I'll copy this to the wiki too.)
- Pull the latest git tree from the master branch
- Set up your running environment
from the Fedora CVS as an anonymous user and make it .trial.1
again but with your login credentials, and make it .trial.2
- Use your favorite git history browser and verify that things look ok.
- Make sure that there are no discrepencies between the two trials.
Finally, use the trac instance setup to send in bug reports. I'll be trying to keep up on them, Fosdem schedule permitting.