bug-gnulib
[Top][All Lists]
Advanced

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

Re: git-merge-changelog question


From: Eric Blake
Subject: Re: git-merge-changelog question
Date: Tue, 30 Jun 2009 21:40:49 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Bruno Haible on 6/30/2009 2:28 PM:
> Hi Eric,
> 
>> git-merge-changelog either segfaults
> 
> Ouch. It's written as defensively as possible, and checked with valgrind.
> Therefore I thought that was impossible!

I haven't been found a simple formula for reproducing a segfault yet, but
maybe I'll get something later.  Next time it happens, I'll have to
remember to report the exact sha1 hashes that caused the problem.

> 
>> Any time I commit a patch on one branch,
>> then want to run 'git cherry-pick' to copy it to another,
>> git-merge-changelog either segfaults or goes into a super-long processing
>> loop trying to resolve all of the differences between the two changelog
>> entries
> 
> Can you prepare a reproducible example, please? I've never used 'git 
> cherry-pick'
> (I only really learned how to use 'git merge' and 'git rebase' a couple
> of days ago), therefore I would have to guess how your commands looked like.
> Your example can be based on m4.git; I can check that out.

Here's a sequence of steps, comparable to what I tried to use to generate
14b8a31ef on the master branch (cherry-picked from branch-1.6).  The
example below uses hashes instead of symbolic names, in case you want to
reproduce this even when the branches have advanced.  Notice that it
appears to get stuck in an infinite loop, consuming 100% CPU with no
apparent progress after a while.

$ git clone git://git.sv.gnu.org/m4.git
$ cd m4
$ git config
$ git reset --hard 6033d89
$ git config merge.merge-changelog.driver
git-merge-changelog --split-merged-entry %O %A %B
$ timeout 600 git cherry-pick cd172d9
$ ls -l ChangeLog .merge_file_*
- -rw------- 1 eblake None 172482 Jun 30 21:24 .merge_file_X15QyE
- -rw------- 1 eblake None 172697 Jun 30 21:24 .merge_file_aJFAU3
- -rw------- 1 eblake None 466111 Jun 30 21:24 .merge_file_acCLpE
- -rw-r--r-- 1 eblake None 466111 Jun 30 19:15 ChangeLog

But as soon as I disable git-merge-changelog from running, git is able to
perform the cherry-pick with its usual lightning speed.

$ echo 'ChangeLog !merge' > .git/info/attributes
$ rm .merge_file_*
$ time git cherry-pick cd172d9
[master c5eed30] Fix description of limits on diversions.
 3 files changed, 13 insertions(+), 5 deletions(-)

real    0m1.769s
user    0m0.466s
sys     0m0.465s

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkpK2sEACgkQ84KuGfSFAYBz/ACePXFI7wxX3nMq8+63d9lHeN4H
BioAoKB0mBK6HQwSE51JHOj5ynKTjWYQ
=1cpI
-----END PGP SIGNATURE-----




reply via email to

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