[PATCH v2 09/13] Honour the refspec when updating refs after import

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

 



This way the helper can write to 'refs/remotes/origin/*' instead of
writing to 'refs/heads/*'.

Signed-off-by: Sverre Rabbelier <srabbelier@xxxxxxxxx>
---

  Daniel, does this look good to you?

  Let's assume the following:
  * list: only HEAD is a symref (to refs/heads/<branch>), all other
          refs are '? refs/heads/<branch>'.
  * import: the helper creates branches under refs/remotes/<alias>/*
            (since the refspec code is not yet in that would allow
             it to create them under refs/<vcs>/<alias>/*)

  Now when updating the refs we do the following:
  transport-helper.c:145 "read_ref(posn->name, posn->old_sha1);"

  The value of posn->name looks like "refs/heads/<branch>". So what
  does this lookup do? It tries to lookup the new value of the ref
  _where it will be created_, this fails of course, since the ref
  currently only exists as "refs/remotes/origin/<branch>". So, we
  should instead be doing a lookup using posn->peer_ref->name, and
  not do a lookup at all if it posn->peer_ref is not set (which
  should not occur as we are passed only wanted peer refs).

  Please let me know if this makes sense and both this and 0008 can
  be squashed with 0007.

 transport-helper.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/transport-helper.c b/transport-helper.c
index 148496c..72ed95b 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -142,7 +142,10 @@ static int fetch_with_import(struct transport *transport,
 		posn = to_fetch[i];
 		if (posn->status & REF_STATUS_UPTODATE)
 			continue;
-		read_ref(posn->name, posn->old_sha1);
+		if(posn->peer_ref) {
+			read_ref(posn->peer_ref->name, posn->peer_ref->old_sha1);
+			hashcpy(posn->old_sha1, posn->peer_ref->old_sha1);
+		}
 	}
 	return 0;
 }
-- 
1.6.5.2.295.g0d105

--
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]