post-receive-email - does not handle creating a new branch with same HEAD as other branch

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

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux