git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sverre Rabbelier <srabbelier@gmail.com>
To: Git List <git@vger.kernel.org>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Daniel Barkalow <barkalow@iabervon.org>,
	Johan Herland <johan@herland.net>
Cc: Sverre Rabbelier <srabbelier@gmail.com>
Subject: [PATCH v2 09/13] Honour the refspec when updating refs after import
Date: Wed,  4 Nov 2009 20:48:14 +0100	[thread overview]
Message-ID: <1257364098-1685-10-git-send-email-srabbelier@gmail.com> (raw)
In-Reply-To: <1257364098-1685-1-git-send-email-srabbelier@gmail.com>

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

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
---

  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

  parent reply	other threads:[~2009-11-04 19:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-04 19:48 [PATCH v2 00/13] Reroll of the remote-vcs-helper series Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 01/13] Fix memory leak in helper method for disconnect Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 02/13] Allow programs to not depend on remotes having urls Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 03/13] Use a function to determine whether a remote is valid Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 04/13] Allow fetch to modify refs Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 05/13] Add a config option for remotes to specify a foreign vcs Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 06/13] Allow specifying the remote helper in the url Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 07/13] Add support for "import" helper command Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 08/13] Write local refs written by the "import" helper command only once Sverre Rabbelier
2009-11-04 19:48 ` Sverre Rabbelier [this message]
2009-11-04 21:20   ` [PATCH v2 09/13] Honour the refspec when updating refs after import Daniel Barkalow
2009-11-04 21:21     ` Sverre Rabbelier
2009-11-04 21:30       ` Daniel Barkalow
2009-11-05  1:45         ` Sverre Rabbelier
2009-11-05  5:34           ` Daniel Barkalow
2009-11-05  6:53             ` Daniel Barkalow
2009-11-05 23:51               ` Sverre Rabbelier
2009-11-06  0:19                 ` Daniel Barkalow
2009-11-06  0:28                   ` Sverre Rabbelier
2009-11-06  0:37                     ` Daniel Barkalow
2009-11-06  6:05                       ` Junio C Hamano
2009-11-04 19:48 ` [PATCH v2 10/13] Allow helpers to report in "list" command that the ref is unchanged Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 11/13] Allow helpers to request the path to the .git directory Sverre Rabbelier
2009-11-04 21:35   ` Daniel Barkalow
2009-11-04 22:06     ` Sverre Rabbelier
2009-11-04 22:27       ` Daniel Barkalow
2009-11-04 22:42         ` Sverre Rabbelier
2009-11-04 23:17           ` Daniel Barkalow
2009-11-04 23:18             ` Sverre Rabbelier
2009-11-04 23:25               ` Daniel Barkalow
2009-11-05  0:04       ` Junio C Hamano
2009-11-05  0:15         ` Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 12/13] Basic build infrastructure for Python scripts Sverre Rabbelier
2009-11-04 19:48 ` [PATCH v2 13/13] Add Python support library for remote helpers Sverre Rabbelier
2009-11-05  7:55   ` Johan Herland
2009-11-06  0:14     ` Sverre Rabbelier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1257364098-1685-10-git-send-email-srabbelier@gmail.com \
    --to=srabbelier@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=barkalow@iabervon.org \
    --cc=git@vger.kernel.org \
    --cc=johan@herland.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).