threads / patch / 17704

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

Subject: [PATCH] Fix contrib/hooks/post-receive-email for new duplicate branch

## tl;dr

One message between Feb 10, 2009 and Feb 10, 2009. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Pat Notz· Feb 10, 2009, 16:18 UTC · lore
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 <jnareb@gmail.com> to use git-for-each-ref instead of git-branch. (Thanks!)

Signed-off-by: Pat Notz <pknotz@sandia.gov>
---
 contrib/hooks/post-receive-email |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
Show changes to contrib/hooks/post-receive-email +3 −1
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index 28a3c0e..ec52751 100644
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -615,7 +615,9 @@ show_new_revisions()
 		revspec=$oldrev..$newrev
 	fi
 
-	git rev-parse --not --branches | grep -v $(git rev-parse $refname) |
+	other_branches=$(git for-each-ref --format='%(refname)' refs/heads/ |
+	    grep -v $refname)
+	git rev-parse --not $other_branches |
 	if [ -z "$custom_showrev" ]
 	then
 		git rev-list --pretty --stdin $revspec
-- 
1.6.1.2

← back to recent threads