[Top][All Lists]

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

Re: GNU-style ChangeLog merge driver for Git

From: Bruno Haible
Subject: Re: GNU-style ChangeLog merge driver for Git
Date: Mon, 18 Feb 2008 18:45:59 +0100
User-agent: KMail/1.9.1

Eric Blake wrote:
> As of git 1.5.4, 
> you can do 'git pull --rebase', to rebase all your local changes on the 
> current 
> branch on top of whatever upstream changes were made in the meantime
> ...
> Oops - this put the upstream ChangeLog entries at the top of the file, in 
> front 
> of my entries which I am about to push upstream.

I updated the heuristics to take care of this case as well.

> enforces the 
> following abbreviated ChangeLog style when a single author makes two commits 
> in 
> one day: ...
> However, the abbreviated style does not currently work with your 
> merge driver, since it treats the entire date-delimited chunk, containing two 
> commits' entries, as a single commit description; and since it does not match 
> any other entry, the merged result then ends up with two copies of the 
> earlier 
> entry:

The merge driver should not cause duplication. It should either apply a change
that you made, or mark it as a conflict. (Only if you remove the conflict
markers without much thought, you will get duplication.)
In my experiments, when you augment a ChangeLog entry like you did, either
the augmented entry is put in place of the old one (at a position which will
not please you), or a conflict is signalled.

> But it would be nice if your merge driver could recognize that usage.

I added an option --split-merged-entry which does just that. To use it,
mention it in your $HOME/.gitconfig.

> It would also be nice if there were a custom diff driver to go alongside the 
> custom merge driver

Feel free to implement such a thing. For my part, I don't need it, since I'm
accustomed to this slight inaccuracy of diff's output.


reply via email to

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