Merge branch 'nd/worktree-prune'
The way "git worktree prune" worked internally has been simplified, by assuming how "git worktree move" moves an existing worktree to a different place. * nd/worktree-prune: worktree prune: improve prune logic when worktree is moved worktree: delete dead code gc.txt: more details about what gc does
This commit is contained in:
@ -101,16 +101,9 @@ static int prune_worktree(const char *id, struct strbuf *reason)
|
||||
}
|
||||
path[len] = '\0';
|
||||
if (!file_exists(path)) {
|
||||
struct stat st_link;
|
||||
free(path);
|
||||
/*
|
||||
* the repo is moved manually and has not been
|
||||
* accessed since?
|
||||
*/
|
||||
if (!stat(git_path("worktrees/%s/link", id), &st_link) &&
|
||||
st_link.st_nlink > 1)
|
||||
return 0;
|
||||
if (st.st_mtime <= expire) {
|
||||
if (stat(git_path("worktrees/%s/index", id), &st) ||
|
||||
st.st_mtime <= expire) {
|
||||
strbuf_addf(reason, _("Removing worktrees/%s: gitdir file points to non-existent location"), id);
|
||||
return 1;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user