Merge branch 'jk/clone-detached'

* jk/clone-detached:
  clone: always fetch remote HEAD
  make copy_ref globally available
  consider only branches in guess_remote_head
  t: add tests for cloning remotes with detached HEAD
This commit is contained in:
Junio C Hamano
2011-08-01 15:00:35 -07:00
4 changed files with 88 additions and 6 deletions

View File

@ -345,8 +345,9 @@ static void remove_junk_on_signal(int signo)
static struct ref *wanted_peer_refs(const struct ref *refs,
struct refspec *refspec)
{
struct ref *local_refs = NULL;
struct ref **tail = &local_refs;
struct ref *head = copy_ref(find_ref_by_name(refs, "HEAD"));
struct ref *local_refs = head;
struct ref **tail = head ? &head->next : &local_refs;
get_fetch_map(refs, refspec, &tail, 0);
if (!option_mirror)
@ -359,8 +360,11 @@ static void write_remote_refs(const struct ref *local_refs)
{
const struct ref *r;
for (r = local_refs; r; r = r->next)
for (r = local_refs; r; r = r->next) {
if (!r->peer_ref)
continue;
add_extra_ref(r->peer_ref->name, r->old_sha1, 0);
}
pack_refs(PACK_REFS_ALL);
clear_extra_refs();