@matheusbsbs / matheus-bagliano / commits / e5f5050ed1
Fork 0

Fix contrib/hooks/post-receive-email for new duplicate branch

In the show_new_revisions function, the original code: git rev-parse --not --branches | grep -v $(git rev-parse $refname) | isn't quite right since one can create a new branch and push it without any new commits. In that case, two refs will have the same sha1 but both would get filtered by the 'grep'. In the end, we'll show ALL the history which is not what we want. Instead, we should list the branches by name and remove the branch being updated and THEN pass that list through rev-parse. Revised as suggested by Jakub Narebski and Junio C Hamano to use git-for-each-ref instead of git-branch. (Thanks!) Signed-off-by: Pat Notz <pknotz@sandia.gov> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Pat Notz committed Feb 10, 2009 at 09:43 UTC e5f5050ed1481c3bc27658f625a87155aed0984f
1 file changed +3 -1
contrib/hooks/post-receive-email
+3 -1
@@ -615,7 +615,9 @@ show_new_revisions()
615 revspec=$oldrev..$newrev
616 fi
617
618 - git rev-parse --not --branches | grep -v $(git rev-parse $refname) |
618 + other_branches=$(git for-each-ref --format='%(refname)' refs/heads/ |
619 + grep -F -v $refname)
620 + git rev-parse --not $other_branches |
621 if [ -z "$custom_showrev" ]
622 then
623 git rev-list --pretty --stdin $revspec