bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: git: avoiding merges, rebasing


From: Benoit SIGOURE
Subject: Re: git: avoiding merges, rebasing
Date: Mon, 8 Oct 2007 15:17:59 +0200

[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

Attachment: git-merge-changelog
Description: Binary data


Attachment: PGP.sig
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]