Merge branch 'js/maint-fetch-update-head'
* js/maint-fetch-update-head: pull: allow "git pull origin $something:$current_branch" into an unborn branch Fix fetch/pull when run without --update-head-ok Conflicts: t/t5510-fetch.sh
This commit is contained in:
@ -534,6 +534,19 @@ static void find_non_local_tags(struct transport *transport,
|
||||
string_list_clear(&new_refs, 0);
|
||||
}
|
||||
|
||||
static void check_not_current_branch(struct ref *ref_map)
|
||||
{
|
||||
struct branch *current_branch = branch_get(NULL);
|
||||
|
||||
if (is_bare_repository() || !current_branch)
|
||||
return;
|
||||
|
||||
for (; ref_map; ref_map = ref_map->next)
|
||||
if (ref_map->peer_ref && !strcmp(current_branch->refname,
|
||||
ref_map->peer_ref->name))
|
||||
die("Refusing to fetch into current branch");
|
||||
}
|
||||
|
||||
static int do_fetch(struct transport *transport,
|
||||
struct refspec *refs, int ref_count)
|
||||
{
|
||||
@ -558,6 +571,8 @@ static int do_fetch(struct transport *transport,
|
||||
}
|
||||
|
||||
ref_map = get_ref_map(transport, refs, ref_count, tags, &autotags);
|
||||
if (!update_head_ok)
|
||||
check_not_current_branch(ref_map);
|
||||
|
||||
for (rm = ref_map; rm; rm = rm->next) {
|
||||
if (rm->peer_ref)
|
||||
|
||||
Reference in New Issue
Block a user