Given the simple case of two commits: A--B with branches setup like: master: A b1: B If I create a new branch b2 at the same point as b1 from a remote server: $ git push origin B:b2 The following code will be run in post-receive-email: git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --pretty --stdin $newrev (refname = refs/heads/b2, newrev=B) The problem occurs because the first rev-parse reports: ^A ^B ^B And the grep removes lines matching B, leaving: ^A which causes the eventual rev-list command to be: git rev-list --pretty ^A B This problem could be exaggerated if there were a lot of commits between A and B, which would cause each commit A..B to be reported. Is there any alternate way to write this command to cause these false positives to not be reported? I tried to write a version that uses the ref name instead of the hash, but it did not end up very pretty (and I don't think it worked...). Thanks! -Jake -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html