Skip to content

Commit

Permalink
transport-helper: change import semantics
Browse files Browse the repository at this point in the history
Currently the helper must somehow guess how many import statements to
read before it starts outputting its fast-export stream. This is
because the remote helper infrastructure runs fast-import only once,
so the helper is forced to output one stream for all import commands
it will receive. The only reason this worked in the past was because
only one ref was imported at a time.

Change the semantics of the import statement such that it matches
that of the push statement. That is, the import statement is followed
by a series of import statements that are terminated by a '\n'.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Sverre Rabbelier authored and Junio C Hamano committed Jul 19, 2011
1 parent 6c8151a commit 9504bc9
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
16 changes: 15 additions & 1 deletion git-remote-testgit.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,22 @@ def do_import(repo, args):
if not repo.gitdir:
die("Need gitdir to import")

ref = args[0]
refs = [ref]

while True:
line = sys.stdin.readline()
if line == '\n':
break
if not line.startswith('import '):
die("Expected import line.")

# strip of leading 'import '
ref = line[7:].strip()
refs.append(ref)

repo = update_local_repo(repo)
repo.exporter.export_repo(repo.gitdir, args)
repo.exporter.export_repo(repo.gitdir, refs)

print "done"

Expand Down
2 changes: 1 addition & 1 deletion t/t5800-remote-helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ test_expect_success 'fetch new branch' '
compare_refs public HEAD localclone FETCH_HEAD
'

test_expect_failure 'fetch multiple branches' '
test_expect_success 'fetch multiple branches' '
(cd localclone &&
git fetch
) &&
Expand Down
3 changes: 3 additions & 0 deletions transport-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,9 @@ static int fetch_with_import(struct transport *transport,
sendline(data, &buf);
strbuf_reset(&buf);
}

write_constant(data->helper->in, "\n");

if (finish_command(&fastimport))
die("Error while running fast-import");
free(fastimport.argv);
Expand Down

0 comments on commit 9504bc9

Please sign in to comment.