git/builtin
Koji Nakamaru 435a6900d2 fsmonitor OSX: fix hangs for submodules
fsmonitor_classify_path_absolute() expects state->path_gitdir_watch.buf
has no trailing '/' or '.' For a submodule, fsmonitor_run_daemon() sets
the value with trailing "/." (as repo_get_git_dir(the_repository) on
Darwin returns ".") so that fsmonitor_classify_path_absolute() returns
IS_OUTSIDE_CONE.

In this case, fsevent_callback() doesn't update cookie_list so that
fsmonitor_publish() does nothing and with_lock__mark_cookies_seen() is
not invoked.

As with_lock__wait_for_cookie() infinitely waits for state->cookies_cond
that with_lock__mark_cookies_seen() should unlock, the whole daemon
hangs.

Remove trailing "/." from state->path_gitdir_watch.buf for submodules
and add a corresponding test in t7527-builtin-fsmonitor.sh. The test is
disabled for MINGW because hangs treated with this patch occur only for
Darwin and there is no simple way to terminate the win32 fsmonitor
daemon that hangs.

Suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-10-04 08:01:27 -07:00
..
add.c add: pass in repo variable instead of global the_repository 2024-09-13 14:33:30 -07:00
am.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
annotate.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
apply.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
archive.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
bisect.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
blame.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
branch.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
bugreport.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
bundle.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
cat-file.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
check-attr.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
check-ignore.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
check-mailmap.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
check-ref-format.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
checkout--worker.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
checkout-index.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
checkout.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
clean.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
clone.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
column.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
commit-graph.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
commit-tree.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
commit.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
config.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
count-objects.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
credential-cache--daemon.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
credential-cache.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
credential-store.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
credential.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
describe.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
diagnose.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
diff-files.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
diff-index.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
diff-tree.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
diff.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
difftool.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
fast-export.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
fast-import.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
fetch-pack.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
fetch.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
fmt-merge-msg.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
for-each-ref.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
for-each-repo.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
fsck.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
fsmonitor--daemon.c fsmonitor OSX: fix hangs for submodules 2024-10-04 08:01:27 -07:00
gc.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
get-tar-commit-id.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
grep.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
hash-object.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
help.c builtin: fix typos 2024-09-24 10:54:39 -07:00
hook.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
index-pack.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
init-db.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
interpret-trailers.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
log.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
ls-files.c builtin: fix typos 2024-09-24 10:54:39 -07:00
ls-remote.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
ls-tree.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
mailinfo.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
mailsplit.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
merge-base.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
merge-file.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
merge-index.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
merge-ours.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
merge-recursive.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
merge-tree.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
merge.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
mktag.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
mktree.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
multi-pack-index.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
mv.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
name-rev.c builtin: fix typos 2024-09-24 10:54:39 -07:00
notes.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
pack-objects.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
pack-redundant.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
pack-refs.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
patch-id.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
prune-packed.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
prune.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
pull.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
push.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
range-diff.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
read-tree.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
rebase.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
receive-pack.c Merge branch 'ak/typofix-builtins' 2024-09-25 18:24:50 -07:00
reflog.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
refs.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
remote-ext.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
remote-fd.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
remote.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
repack.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
replace.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
replay.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
rerere.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
reset.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
rev-list.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
rev-parse.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
revert.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
rm.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
send-pack.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
shortlog.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
show-branch.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
show-index.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
show-ref.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
sparse-checkout.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
stash.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
stripspace.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
submodule--helper.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
symbolic-ref.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
tag.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
unpack-file.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
unpack-objects.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
update-index.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
update-ref.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
update-server-info.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
upload-archive.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
upload-pack.c builtin: remove USE_THE_REPOSITORY for those without the_repository 2024-09-13 14:33:30 -07:00
var.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
verify-commit.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
verify-pack.c builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
verify-tag.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
worktree.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
write-tree.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00