diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-01-02 10:36:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-01-02 10:36:59 -0800 |
commit | f470e901f21d7a2b408c3e54e33e07bcc94913b1 (patch) | |
tree | 4b4c91cd6bbf23000e95af2b3d3ed2ab3832b6db /cache.h | |
parent | 5d417842efeafb6e109db7574196901c4e95d273 (diff) | |
parent | 059b37934c611b1b9b735e0310ba282a0c7f5eba (diff) | |
download | git-f470e901f21d7a2b408c3e54e33e07bcc94913b1.tar.gz |
Merge branch 'mh/ceiling'
An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.
* mh/ceiling:
string_list_longest_prefix(): remove function
setup_git_directory_gently_1(): resolve symlinks in ceiling paths
longest_ancestor_length(): require prefix list entries to be normalized
longest_ancestor_length(): take a string_list argument for prefixes
longest_ancestor_length(): use string_list_split()
Introduce new function real_path_if_valid()
real_path_internal(): add comment explaining use of cwd
Introduce new static function real_path_internal()
Diffstat (limited to 'cache.h')
-rw-r--r-- | cache.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -714,10 +714,11 @@ static inline int is_absolute_path(const char *path) } int is_directory(const char *); const char *real_path(const char *path); +const char *real_path_if_valid(const char *path); const char *absolute_path(const char *path); const char *relative_path(const char *abs, const char *base); int normalize_path_copy(char *dst, const char *src); -int longest_ancestor_length(const char *path, const char *prefix_list); +int longest_ancestor_length(const char *path, struct string_list *prefixes); char *strip_path_suffix(const char *path, const char *suffix); int daemon_avoid_alias(const char *path); int offset_1st_component(const char *path); |