-----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 e...@byu.net -----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-----