emacs-devel
[Top][All Lists]
Advanced

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

Re: merging emacs-24


From: Ted Zlatanov
Subject: Re: merging emacs-24
Date: Thu, 27 Nov 2014 08:02:12 -0500
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux)

On Wed, 26 Nov 2014 22:48:12 -0500 Glenn Morris <address@hidden> wrote: 

GM> The ChangeLogs don't look right. All merged new entries should have gone
GM> to the top (this was trivial with bzr's changelog-merge plugin, probably
GM> git has something similar) and got today's date.

I used the recommended gnulib driver:

[merge "merge-changelog"]
        name = GNU-style ChangeLog merge driver
        driver = /usr/local/bin/git-merge-changelog %O %A %B

GM> Also, the ChangeLogs for the changes marked "backport" (etc, check for
GM> any commit that matches bzrmerge-skip-regexp) have all been merged back
GM> to trunk, leading to duplicate entries. The new ones should all be
GM> removed. This is part of what bzrmerge.el handled.

I don't think Git merges can work that way, though. They bring in the
whole branch, you can't exclude some commits. You have to either
cherry-pick the ones you want instead of merging, or revert the ones you
don't want after merging.

GM> BTW: with bzr, the logs for the merged changes would be visible with

GM>   bzr log -n0

GM> How does one do that with git log?

You do it to the two branches that were merged.  So e.g.

commit ba4502fe1465f7803beca3ae187e41f0b25bef10
Merge: b121ef1 81e0cca
Author: Ted Zlatanov <address@hidden>
Date:   Wed Nov 26 21:31:11 2014 -0500

    Merge branch 'emacs-24'

means you do `git log b121ef1..81e0cca'

On Thu, 27 Nov 2014 11:45:14 +0100 Andreas Schwab <address@hidden> wrote: 

AS> Glenn Morris <address@hidden> writes:

>> More worryingly, some commits appear to be missing?

AS> They are yet to be merged.  The merge commit merged a 10 day old branch.
AS> Try "git show-branch origin/master origin/emacs-24".

I can't believe I did that.  Sorry.  It's not harmful, but I was
careless.  I've now added this alias to my gitconfig:

[alias]
        pull-all = !"old=$(git rev-parse --abbrev-ref HEAD) ; for b in $(git 
for-each-ref refs/heads --format='%(refname)') ; do git checkout 
${b#refs/heads/} ; git pull --ff-only ; done; git checkout ${old}"

I can revert my merge commit for the reasons Andreas and Glenn listed,
or it can be patched up. Reverting is probably better to keep the
ChangeLogs clean. Let me know, or go ahead and revert directly (it will
have a few conflicts, nothing too bad).

Ted




reply via email to

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