Sync with 2.44.1

* maint-2.44: (41 commits)
  Git 2.44.1
  Git 2.43.4
  Git 2.42.2
  Git 2.41.1
  Git 2.40.2
  Git 2.39.4
  fsck: warn about symlink pointing inside a gitdir
  core.hooksPath: add some protection while cloning
  init.templateDir: consider this config setting protected
  clone: prevent hooks from running during a clone
  Add a helper function to compare file contents
  init: refactor the template directory discovery into its own function
  find_hook(): refactor the `STRIP_EXTENSION` logic
  clone: when symbolic links collide with directories, keep the latter
  entry: report more colliding paths
  t5510: verify that D/F confusion cannot lead to an RCE
  submodule: require the submodule path to contain directories only
  clone_submodule: avoid using `access()` on directories
  submodules: submodule paths must not contain symlinks
  clone: prevent clashing git dirs when cloning submodule in parallel
  ...
This commit is contained in:
Johannes Schindelin
2024-04-24 09:11:55 +02:00
42 changed files with 1275 additions and 86 deletions

7
dir.h
View File

@ -548,6 +548,13 @@ int fspatheq(const char *a, const char *b);
int fspathncmp(const char *a, const char *b, size_t count);
unsigned int fspathhash(const char *str);
/*
* Reports whether paths collide. This may be because the paths differ only in
* case on a case-sensitive filesystem, or that one path refers to a symlink
* that collides with one of the parent directories of the other.
*/
int paths_collide(const char *a, const char *b);
/*
* The prefix part of pattern must not contains wildcards.
*/