Attention all Drupal Git-mirror users
A long-standing issue with the Git mirrors of Drupal’s CVS has been fixed thanks to Damien Tournoud.
The problem is that CVS outputs dates in RCS tags in the somewhat nonstandard format 2009/10/19 (ISO 8601 specifies dashes, not slashes as separator). The git-cvsimport tool used for creating the mirrors, however, uses cvsps, that updates the RCS tags to use the correct format (2009-10-19). Adhering to standards is generally a good thing, but in this case it was causing merge conflicts when trying to merge patches created with Git into Drupal (or vice versa).
Damien found a way to resolve the issue, however:
Adding
DateFormat=old
to theCVSROOT/config
file fixes the problem.
Changing this, however, required a reimport of the entire repository. Due to the way Git works with commit-ids being a cryptographic hash of their contents, changing the contents (even if just the RCS tags) means a rewrite of Git history.
So while the new repository contains the same code, you will not be able to merge new changes from it into your current checkouts. Damien will continue both imports for a while, but updates for the old repository with the incompatible date format will be discontinued at a future date.
What is the bottom line then?
The executive summary
- The Git mirror at
git://github.com/drupal/drupal.git
has been rewritten with it’s RCS tag date format compatible with CVS defaults. Please use this mirror for all your future projects. - The Git mirror at
git://github.com/mikl/drupal.git
will continue to have the CVS-incompatible format, and will, for a time, continue to be updated, so you will be able to use it for a little while longer. - There is now no excuse for not using Git for your Drupal core development work. Enjoy.
Finally, I’d like to thank Damien for doing all the hard work. I was maintaining the git-cvsimport
process myself for a while, and I do not miss it.