# [PATCH v2] contrib/subtree: unwrap tag refs

4 messages from 2015-11-13 to 2016-01-13. Participants: Rob Mayoff, Jeff King, David A. Greene, Junio C Hamano.
Thread: https://gitlist.dev/t/40794

## Rob Mayoff, 2015-11-13 17:25

Subject: [PATCH v2] contrib/subtree: unwrap tag refs
Message-ID: <1447435549-34410-1-git-send-email-mayoff@dqd.com>
URL: https://gitlist.dev/e/1447435549-34410-1-git-send-email-mayoff%40dqd.com

```
If a subtree was added using a tag ref, the tag ref is stored in
the subtree commit message instead of the underlying commit's ref.
To split or push subsequent changes to the subtree, the subtree
command needs to unwrap the tag ref.  This patch makes it do so.

The problem was described in a message to the mailing list from
Junio C Hamano dated 29 Apr 2014, with the subject "Re: git subtree
issue in more recent versions". The archived message can be found
at <http://comments.gmane.org/gmane.comp.version-control.git/247503>.

Signed-off-by: Rob Mayoff <mayoff@dqd.com>
---

changes since v1:

* remove obsolete sub assignments
* wrap lines

 contrib/subtree/git-subtree.sh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 9f06571..5ed0ea5 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -245,7 +245,10 @@ find_latest_squash()
 		case "$a" in
 			START) sq="$b" ;;
 			git-subtree-mainline:) main="$b" ;;
-			git-subtree-split:) sub="$b" ;;
+			git-subtree-split:)
+				sub="$(git rev-parse "$b^0")" ||
+				    die "could not rev-parse split hash $b from commit $sq"
+				;;
 			END)
 				if [ -n "$sub" ]; then
 					if [ -n "$main" ]; then
@@ -278,7 +281,10 @@ find_existing_splits()
 		case "$a" in
 			START) sq="$b" ;;
 			git-subtree-mainline:) main="$b" ;;
-			git-subtree-split:) sub="$b" ;;
+			git-subtree-split:)
+				sub="$(git rev-parse "$b^0")" ||
+				    die "could not rev-parse split hash $b from commit $sq"
+				;;
 			END)
 				debug "  Main is: '$main'"
 				if [ -z "$main" -a -n "$sub" ]; then
-- 
2.4.3

```

## Jeff King, 2015-11-24 21:52

Subject: Re: [PATCH v2] contrib/subtree: unwrap tag refs
Message-ID: <20151124215258.GC29185@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20151124215258.GC29185%40sigill.intra.peff.net
In-Reply-To: <1447435549-34410-1-git-send-email-mayoff@dqd.com>

```
On Fri, Nov 13, 2015 at 11:25:49AM -0600, Rob Mayoff wrote:

> If a subtree was added using a tag ref, the tag ref is stored in
> the subtree commit message instead of the underlying commit's ref.
> To split or push subsequent changes to the subtree, the subtree
> command needs to unwrap the tag ref.  This patch makes it do so.
> 
> The problem was described in a message to the mailing list from
> Junio C Hamano dated 29 Apr 2014, with the subject "Re: git subtree
> issue in more recent versions". The archived message can be found
> at <http://comments.gmane.org/gmane.comp.version-control.git/247503>.
> 
> Signed-off-by: Rob Mayoff <mayoff@dqd.com>
> ---
> 
> changes since v1:
> 
> * remove obsolete sub assignments
> * wrap lines

Thanks.  David, can I get an Ack on this?

-Peff

```

## David A. Greene, 2016-01-13 02:42

Subject: Re: [PATCH v2] contrib/subtree: unwrap tag refs
Message-ID: <878u3up5cj.fsf@waller.obbligato.org>
URL: https://gitlist.dev/e/878u3up5cj.fsf%40waller.obbligato.org
In-Reply-To: <20151124215258.GC29185@sigill.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> On Fri, Nov 13, 2015 at 11:25:49AM -0600, Rob Mayoff wrote:
>
>> If a subtree was added using a tag ref, the tag ref is stored in
>> the subtree commit message instead of the underlying commit's ref.
>> To split or push subsequent changes to the subtree, the subtree
>> command needs to unwrap the tag ref.  This patch makes it do so.
>> 
>> The problem was described in a message to the mailing list from
>> Junio C Hamano dated 29 Apr 2014, with the subject "Re: git subtree
>> issue in more recent versions". The archived message can be found
>> at <http://comments.gmane.org/gmane.comp.version-control.git/247503>.> 
>> Signed-off-by: Rob Mayoff <mayoff@dqd.com>
>> ---
>> 
>> changes since v1:
>> 
>> * remove obsolete sub assignments
>> * wrap lines
>
> Thanks.  David, can I get an Ack on this?

Yep.  I'm sorry I missed this re-roll.

                             -David

```

## Junio C Hamano, 2016-01-13 17:49

Subject: Re: [PATCH v2] contrib/subtree: unwrap tag refs
Message-ID: <xmqq4mehpdxd.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqq4mehpdxd.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <878u3up5cj.fsf@waller.obbligato.org>

```
Thanks, all.

```
