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 the CVSROOT/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.