Fix git-update-index to work with relative pathnames.
In particular, it fixes the following (typical for cygwin) problem: $ git-update-index --chmod=-x ../wrapper/Jamfile fatal: git-update-index: cannot chmod -x '../wrapper/Jamfile' Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
4a91a1f37e
commit
9ebe6cf953
@ -501,6 +501,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
|||||||
|
|
||||||
for (i = 1 ; i < argc; i++) {
|
for (i = 1 ; i < argc; i++) {
|
||||||
const char *path = argv[i];
|
const char *path = argv[i];
|
||||||
|
const char *p;
|
||||||
|
|
||||||
if (allow_options && *path == '-') {
|
if (allow_options && *path == '-') {
|
||||||
if (!strcmp(path, "--")) {
|
if (!strcmp(path, "--")) {
|
||||||
@ -616,9 +617,12 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
|||||||
usage(update_index_usage);
|
usage(update_index_usage);
|
||||||
die("unknown option %s", path);
|
die("unknown option %s", path);
|
||||||
}
|
}
|
||||||
update_one(path, prefix, prefix_length);
|
p = prefix_path(prefix, prefix_length, path);
|
||||||
|
update_one(p, NULL, 0);
|
||||||
if (set_executable_bit)
|
if (set_executable_bit)
|
||||||
chmod_path(set_executable_bit, path);
|
chmod_path(set_executable_bit, p);
|
||||||
|
if (p < path || p > path + strlen(path))
|
||||||
|
free((char*)p);
|
||||||
}
|
}
|
||||||
if (read_from_stdin) {
|
if (read_from_stdin) {
|
||||||
struct strbuf buf;
|
struct strbuf buf;
|
||||||
|
Loading…
Reference in New Issue
Block a user