git-commit-vandalism/builtin
Nguyễn Thái Ngọc Duy 327864aaf7 worktree prune: improve prune logic when worktree is moved
Automatic detection of worktree relocation by a user (via 'mv', for
instance) was removed by 618244e160 (worktree: stop supporting moving
worktrees manually - 2016-01-22). Prior to that,
.git/worktrees/<tag>/gitdir was updated whenever the worktree was
accessed in order to let the pruning logic know that the worktree was
"active" even if it disappeared for a while (due to being located on
removable media, for instance).

"git worktree move" has come so we don't really need this, but since
it's easy to do, perhaps we could keep supporting manual worktree move
a bit longer. Notice that when a worktree is active, the "index" file
should be updated pretty often in common case. The logic is updated to
check for index mtime to see if the worktree is alive.

The old logic of checking gitdir's mtime is dropped because nobody
updates it anyway. The new corner case is, if the index file does not
exist, we immediately remove the stale worktree. But if the "index"
file does not exist, you may have a bigger problem.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-03-15 12:37:48 -07:00
..
add.c Merge branch 'tb/add-renormalize' 2017-11-27 11:06:37 +09:00
am.c Merge branch 'nd/am-quit' 2018-02-28 13:37:52 -08:00
annotate.c
apply.c apply: move lockfile into apply_state 2017-10-06 10:07:18 +09:00
archive.c correct error messages for NULL packet_read_line() 2018-02-08 12:37:30 -08:00
bisect--helper.c bisect: mention "view" as an alternative to "visualize" 2017-11-13 10:51:14 +09:00
blame.c blame: tighten command line parser 2018-02-07 12:41:36 -08:00
branch.c Merge branch 'ks/branch-cleanup' 2017-12-27 11:16:25 -08:00
bundle.c
cat-file.c sha1_file: support lazily fetching missing objects 2017-12-08 09:52:42 -08:00
check-attr.c
check-ignore.c check-ignore: fix mix of directories and other file types 2018-02-12 13:09:35 -08:00
check-mailmap.c
check-ref-format.c Merge branch 'jc/check-ref-format-oor' into maint 2017-11-15 12:04:57 +09:00
checkout-index.c checkout-index: simplify locking logic 2017-10-06 10:07:18 +09:00
checkout.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
clean.c Merge branch 'jk/ref-filter-colors-fix' 2017-10-18 10:19:08 +09:00
clone.c Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
column.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
commit-tree.c commit: convert commit_tree* to object_id 2018-01-30 10:42:36 -08:00
commit.c Merge branch 'po/object-id' 2018-02-15 14:55:43 -08:00
config.c config: add --expiry-date 2017-11-18 12:31:29 +09:00
count-objects.c pack: move open_pack_index(), parse_pack_index() 2017-08-23 15:12:06 -07:00
credential.c
describe.c Merge branch 'sb/describe-blob' 2018-02-27 10:33:57 -08:00
diff-files.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff-index.c Merge branch 'ma/builtin-unleak' 2017-10-07 16:27:55 +09:00
diff-tree.c diff-tree: read the index so attribute checks work in bare repositories 2017-12-06 14:49:18 -08:00
diff.c Switch empty tree and blob lookups to use hash abstraction 2017-11-13 13:20:44 +09:00
difftool.c read-cache: leave lock in right state in write_locked_index() 2017-10-07 10:20:56 +09:00
fast-export.c decorate: clean up and document API 2017-12-08 09:16:27 -08:00
fetch-pack.c fetch: inherit filter-spec from partial clone 2017-12-08 09:58:52 -08:00
fetch.c Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
fmt-merge-msg.c Merge branch 'rs/fmt-merge-msg-string-leak-fix' 2017-12-27 11:16:23 -08:00
for-each-ref.c provide --color option for all ref-filter users 2017-10-04 11:35:29 +09:00
fsck.c Merge branch 'jt/fsck-code-cleanup' 2018-02-15 14:55:41 -08:00
gc.c gc: do not repack promisor packfiles 2017-12-08 09:52:42 -08:00
get-tar-commit-id.c distinguish error versus short read from read_in_full() 2017-09-27 15:45:24 +09:00
grep.c Merge branch 'bw/pathspec-match-submodule-boundary' 2017-12-19 11:33:56 -08:00
hash-object.c sha1_file: rename hash_sha1_file_literally 2018-01-30 10:42:36 -08:00
help.c Merge branch 'ks/help-alias-label' 2017-09-25 15:24:07 +09:00
index-pack.c Merge branch 'bc/hash-algo' 2018-02-15 14:55:47 -08:00
init-db.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
interpret-trailers.c Merge branch 'jk/trailers-parse' 2017-08-26 22:55:04 -07:00
log.c format-patch: reduce patch diffstat width to 72 2018-02-02 10:40:34 -08:00
ls-files.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
ls-remote.c
ls-tree.c
mailinfo.c
mailsplit.c
merge-base.c Merge branch 'ma/reduce-heads-leakfix' 2017-11-15 12:14:32 +09:00
merge-file.c
merge-index.c
merge-ours.c Merge branch 'bw/diff-opt-impl-to-bitfields' 2017-11-09 14:31:27 +09:00
merge-recursive.c
merge-tree.c tree-walk: convert fill_tree_descriptor() to object_id 2017-08-14 12:38:54 -07:00
merge.c commit: convert commit_tree* to object_id 2018-01-30 10:42:36 -08:00
mktag.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
mktree.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
mv.c submodule: convert stage_updated_gitmodules to take a struct index_state 2017-12-12 12:35:20 -08:00
name-rev.c Merge branch 'mg/timestamp-t-fix' into maint 2017-10-18 14:19:09 +09:00
notes.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
pack-objects.c Merge branch 'bc/hash-algo' 2018-02-15 14:55:47 -08:00
pack-redundant.c pack: move pack name-related functions 2017-08-23 15:12:06 -07:00
pack-refs.c
patch-id.c
prune-packed.c Merge branch 'jt/packmigrate' 2017-08-26 22:55:09 -07:00
prune.c Merge branch 'jh/fsck-promisors' 2018-02-13 13:39:03 -08:00
pull.c Merge branch 'sb/pull-rebase-submodule' 2018-02-15 14:55:43 -08:00
push.c builtin/push.c: add push.pushOption config 2017-10-24 09:57:54 +09:00
read-tree.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
rebase--helper.c Merge branch 'gs/rebase-allow-empty-message' 2018-02-21 12:45:04 -08:00
receive-pack.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
reflog.c config: add --expiry-date 2017-11-18 12:31:29 +09:00
remote-ext.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
remote-fd.c
remote.c Merge branch 'mh/tidy-ref-update-flags' 2017-11-15 12:14:29 +09:00
repack.c gc: do not repack promisor packfiles 2017-12-08 09:52:42 -08:00
replace.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
rerere.c avoid "write_in_full(fd, buf, len) != len" pattern 2017-09-14 15:17:59 +09:00
reset.c Merge branch 'tg/reset-hard-show-head-with-pretty' 2018-02-15 14:55:45 -08:00
rev-list.c Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
rev-parse.c sq_quote_argv: drop maxlen parameter 2018-01-16 12:16:54 -08:00
revert.c sequencer: improve config handling 2017-12-13 11:15:14 -08:00
rm.c submodule: convert stage_updated_gitmodules to take a struct index_state 2017-12-12 12:35:20 -08:00
send-pack.c Merge branch 'ma/parse-maybe-bool' 2017-08-22 10:29:03 -07:00
shortlog.c shortlog: skip format/parse roundtrip for internal traversal 2017-09-09 01:57:03 +09:00
show-branch.c Merge branch 'ot/pretty' 2017-12-27 11:16:29 -08:00
show-ref.c refs: convert peel_ref to struct object_id 2017-10-16 11:05:51 +09:00
stripspace.c
submodule--helper.c submodule: port submodule subcommand 'deinit' from shell to C 2018-01-16 11:29:50 -08:00
symbolic-ref.c refs: rename constant REF_NODEREF to REF_NO_DEREF 2017-11-06 10:31:08 +09:00
tag.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
unpack-file.c Merge branch 'jk/write-in-full-fix' 2017-09-25 15:24:06 +09:00
unpack-objects.c Merge branch 'bc/hash-algo' 2018-02-15 14:55:47 -08:00
update-index.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
update-ref.c refs: rename constant REF_NODEREF to REF_NO_DEREF 2017-11-06 10:31:08 +09:00
update-server-info.c
upload-archive.c
var.c
verify-commit.c
verify-pack.c
verify-tag.c Merge branch 'jk/ref-filter-colors' 2017-08-11 13:26:58 -07:00
worktree.c worktree prune: improve prune logic when worktree is moved 2018-03-15 12:37:48 -07:00
write-tree.c