From: Johannes Schindelin Date: Fri, 12 Feb 2021 14:49:41 +0000 (+0100) Subject: Sync with 2.21.4 X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=bcf08f33d840b8a6bef347aea3ac2359874c888a;p=git.git Sync with 2.21.4 * maint-2.21: Git 2.21.4 Git 2.20.5 Git 2.19.6 Git 2.18.5 Git 2.17.6 unpack_trees(): start with a fresh lstat cache run-command: invalidate lstat cache after a command finished checkout: fix bug that makes checkout follow symlinks in leading path --- bcf08f33d840b8a6bef347aea3ac2359874c888a diff --cc cache.h index 3e7cd0b4bc,bfca862102..0595154ce9 --- a/cache.h +++ b/cache.h @@@ -1650,12 -1582,13 +1650,13 @@@ static inline void cache_def_clear(stru strbuf_release(&cache->path); } -extern int has_symlink_leading_path(const char *name, int len); -extern int threaded_has_symlink_leading_path(struct cache_def *, const char *, int); -extern int check_leading_path(const char *name, int len); -extern int has_dirs_only_path(const char *name, int len, int prefix_len); -extern void invalidate_lstat_cache(void); -extern void schedule_dir_for_removal(const char *name, int len); -extern void remove_scheduled_dirs(void); +int has_symlink_leading_path(const char *name, int len); +int threaded_has_symlink_leading_path(struct cache_def *, const char *, int); +int check_leading_path(const char *name, int len); +int has_dirs_only_path(const char *name, int len, int prefix_len); ++void invalidate_lstat_cache(void); +void schedule_dir_for_removal(const char *name, int len); +void remove_scheduled_dirs(void); struct pack_window { struct pack_window *next; diff --cc run-command.c index 3449db319b,d61638c3dd..b05ff61b11 --- a/run-command.c +++ b/run-command.c @@@ -987,8 -964,8 +987,9 @@@ end_of_spawn int finish_command(struct child_process *cmd) { int ret = wait_or_whine(cmd->pid, cmd->argv[0], 0); + trace2_child_exit(cmd, ret); child_process_clear(cmd); + invalidate_lstat_cache(); return ret; }