diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-03-13 21:09:44 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-14 14:24:04 -0700 |
commit | df380d58ece2a745e4283ef4de8dfeea560546bb (patch) | |
tree | 87af63869eafb4ac13b55bc30c80e4e04e63cee2 | |
parent | setup_git_directory(): use is_dir_sep() helper (diff) | |
download | tgif-df380d58ece2a745e4283ef4de8dfeea560546bb.tar.xz |
setup: prepare setup_discovered_git_dir() for the root directory
Currently, the offset parameter (indicating what part of the cwd
parameter corresponds to the current directory after discovering the
.git/ directory) is set to 0 when we are running in the root directory.
However, in the next patches we will avoid changing the current working
directory while searching for the .git/ directory, meaning that the
offset corresponding to the root directory will have to be 1 to reflect
that this directory is characterized by the path "/" (and not "").
So let's make sure that setup_discovered_git_directory() only tries to
append the trailing slash to non-root directories.
Note: the setup_bare_git_directory() does not need a corresponding
change, as it does not want to return a prefix.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | setup.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -721,8 +721,10 @@ static const char *setup_discovered_git_dir(const char *gitdir, if (offset == cwd->len) return NULL; - /* Make "offset" point to past the '/', and add a '/' at the end */ - offset++; + /* Make "offset" point past the '/' (already the case for root dirs) */ + if (offset != offset_1st_component(cwd->buf)) + offset++; + /* Add a '/' at the end */ strbuf_addch(cwd, '/'); return cwd->buf + offset; } |