At clone time the "import" helper command has already written a packfile with all refs, so write_remote_refs will create a duplicate entry for each ref returned by wanted_peer_refs. Prevent this duplication by setting fetched_refs_written in the transport when executing the "import" helper command and only adding the extra refs if it is not set. Signed-off-by: Sverre Rabbelier <srabbelier@xxxxxxxxx> --- I am not 100% sure this is the proper fix, but I do know that without this I get a .git/packed-refs file that has duplicate entries in it. builtin-clone.c | 5 ++++- transport-helper.c | 3 +++ transport.h | 2 ++ 3 files changed, 9 insertions(+), 1 deletions(-) diff --git a/builtin-clone.c b/builtin-clone.c index 5df8b0f..e44347e 100644 --- a/builtin-clone.c +++ b/builtin-clone.c @@ -542,7 +542,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix) if (refs) { clear_extra_refs(); - write_remote_refs(mapped_refs); + if(transport->fetched_refs_written) + pack_refs(PACK_REFS_ALL); + else + write_remote_refs(mapped_refs); remote_head = find_ref_by_name(refs, "HEAD"); remote_head_points_at = diff --git a/transport-helper.c b/transport-helper.c index 82caaae..148496c 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -165,7 +165,10 @@ static int fetch(struct transport *transport, return fetch_with_fetch(transport, nr_heads, to_fetch); if (data->import) + { + transport->fetched_refs_written = 1; return fetch_with_import(transport, nr_heads, to_fetch); + } return -1; } diff --git a/transport.h b/transport.h index 503db11..7458b9e 100644 --- a/transport.h +++ b/transport.h @@ -65,6 +65,8 @@ struct transport { signed verbose : 2; /* Force progress even if the output is not a tty */ unsigned progress : 1; + /* Refs fetched by transport_get_remote_refs are already written */ + unsigned fetched_refs_written : 1; }; #define TRANSPORT_PUSH_ALL 1 -- 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