git

xjm has a great guide for doing interdiffs using two branches for the original patch and your new changes. I must admit I'm lazier than that, and have a much simpler process for doing interdiffs on patch updates. Of course this only works if you work on one patch at a time. Branches are better when you work on different things and want to keep those things around. With that, here is my simpler interdiff workflow.

Although Drupal itself provides a central CVS repository for the Drupal core code and contributed projects management, it is well known that people use other tools for their own purposes. There were several ocassions, when private Subversion repositories were used to develop new core functionality (such as Forms API or the multilanguage changes coming up in Drupal 6). Some people also like using BZR to manage their own changes easily.

A very detailed introduction hit my web browser today though, explaining how can you manage and even upgrade your Drupal installation (including contributed modules) using Git, even keeping local modifications.

It is well-known that Git is a distributed version control system that was created by Linus Torvalds to help with the development of Linux kernel. Distributed version control systems, such as Git, are contrasted with centralized version control systems, such as Subversion. Linux kernel development is characterized by hundreds of contributors and several dozens of development sub-projects, all spread out across the Internet. The repositories contain thousands of files and many thousands of revisions.

We show that Git is actually capable of handling much more lightweight problems, without any unnecessary overhead, with only half a dozen of commands to remember.

It is good to see people experimenting with stuff, not because I see Git would be a good fit for the community at large, due to the lack of good and easy tools around it, but because the community gets knowledge on how different tools compare, to use them more effectively. Especially now, when this year's Google Summer of Code sponsors Jakob Petsovits working on making the version control infrastructure system agnostic.