From: Benoit SIGOURE Date: Mon, 08 Oct 2007 13:17:59 GMT Subject: Re: git: avoiding merges, rebasing Message-ID: <07BCEF3E-90DE-4BB7-8A8C-F03D12293B5F@lrde.epita.fr> In-Reply-To: [as usual, I forgot the attachment...] On Sep 30, 2007, at 10:27 PM, Benoit SIGOURE wrote: > On Sep 30, 2007, at 9:41 PM, Bruno Haible wrote: > >>> it should be >>> possible to create a custom [merge "cl-merge"] in your git config >>> file, >>> which points to a script designed specifically for resolving >>> changelog >>> conflicts >> >> I would love such a script, instead of constantly having to do >> conflict >> resolution at the top of ChangeLog. >> > > So would I. I've had this in my TODO list for a long time so if no > one else is willing to give it a try, I can try, but it won't be > before next week because my schedule is quite busy until then. > I finally found some time to hack something and here is my git-merge- changelog Perl script. I tested it quickly and it seems to work fine. It will mess up the ChangeLog entries when a commit actually modifies an existing ChangeLog entry. It needs more testing but I'm just throwing this out in the wild for people that have interest in this to review. I will eventually come up with a solution for the commits modifying existing entries and a testsuite. I'm CC-ing the Git ML just in case it interests some more people over there. In order to use it, add the following to your ~/.gitconfig: [merge "cl-merge"] name = GNU-style ChangeLog merge driver driver = /path/to/git-merge-changelog %O %A %B (you can also add it to a specific working copy by adding it in .git/ config instead) Then, in the directory where the ChangeLog is, add a .gitattributes file with the following content: ChangeLog merge=cl-merge For more information, see man gitattributes. Let me know if something goes wrong. Cheers, -- Benoit Sigoure aka Tsuna EPITA Research and Development Laboratory