Thread (33 messages) flat view 33 messages, 3 authors, 2016-06-15
DORMANTno replies

Revision v2 of 2 in this series.

Revisions (2)
  1. v1 [diff vs current]
  2. v2 current

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

From: Sverre Rabbelier <hidden>
Date: 2016-06-15 22:47:40
Subsystem: the rest · Maintainer: Linus Torvalds

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

Signed-off-by: Sverre Rabbelier <redacted>
---

  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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help