merge(3p/git): Merge git upstream at v2.26.2

This commit is contained in:
Vincent Ambo 2020-05-22 17:46:45 +01:00
commit 5229c9b232
1006 changed files with 149006 additions and 60819 deletions

View file

@ -47,15 +47,13 @@ static void add_head_info(struct worktree *wt)
static struct worktree *get_main_worktree(void)
{
struct worktree *worktree = NULL;
struct strbuf path = STRBUF_INIT;
struct strbuf worktree_path = STRBUF_INIT;
strbuf_add_absolute_path(&worktree_path, get_git_common_dir());
strbuf_strip_suffix(&worktree_path, "/.");
if (!strbuf_strip_suffix(&worktree_path, "/.git"))
strbuf_strip_suffix(&worktree_path, "/.");
strbuf_addf(&path, "%s/HEAD", get_git_common_dir());
worktree = xcalloc(1, sizeof(*worktree));
worktree->path = strbuf_detach(&worktree_path, NULL);
/*
@ -69,7 +67,6 @@ static struct worktree *get_main_worktree(void)
is_bare_repository();
add_head_info(worktree);
strbuf_release(&path);
strbuf_release(&worktree_path);
return worktree;
}
@ -215,7 +212,6 @@ struct worktree *find_worktree(struct worktree **list,
const char *arg)
{
struct worktree *wt;
char *path;
char *to_free = NULL;
if ((wt = find_worktree_by_suffix(list, arg)))
@ -223,11 +219,17 @@ struct worktree *find_worktree(struct worktree **list,
if (prefix)
arg = to_free = prefix_filename(prefix, arg);
path = real_pathdup(arg, 0);
if (!path) {
free(to_free);
wt = find_worktree_by_path(list, arg);
free(to_free);
return wt;
}
struct worktree *find_worktree_by_path(struct worktree **list, const char *p)
{
char *path = real_pathdup(p, 0);
if (!path)
return NULL;
}
for (; *list; list++) {
const char *wt_path = real_path_if_valid((*list)->path);
@ -235,7 +237,6 @@ struct worktree *find_worktree(struct worktree **list,
break;
}
free(path);
free(to_free);
return *list;
}