]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Sync with 2.21.4
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 12 Feb 2021 14:49:41 +0000 (15:49 +0100)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 12 Feb 2021 14:49:41 +0000 (15:49 +0100)
* 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

1  2 
cache.h
compat/mingw.c
git-compat-util.h
run-command.c
unpack-trees.c

diff --cc cache.h
index 3e7cd0b4bc5528d00f3ec01d46db9e8a16d770e3,bfca86210238a245b4766573e5708fe67ab5b171..0595154ce9b7242fd48063f5f46185274ff828e0
+++ 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 compat/mingw.c
Simple merge
Simple merge
diff --cc run-command.c
index 3449db319b95d17133abcdb39048730a4c922515,d61638c3ddfe41c9ae84d021833331e0c03f8c24..b05ff61b111b6b79311f709daab083a7b57be975
@@@ -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;
  }
  
diff --cc unpack-trees.c
Simple merge