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@xxxxxxxxx> --- builtin-update-index.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
From e43acd17ccdd0b045a92fe1439554b310e3579c4 Mon Sep 17 00:00:00 2001 From: Alex Riesen <raa.lkml@xxxxxxxxx> Date: Wed, 31 Jan 2007 14:34:17 +0100 Subject: [PATCH] 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@xxxxxxxxx> --- builtin-update-index.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/builtin-update-index.c b/builtin-update-index.c index 182331d..82364c1 100644 --- a/builtin-update-index.c +++ b/builtin-update-index.c @@ -501,6 +501,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) for (i = 1 ; i < argc; i++) { const char *path = argv[i]; + char *p; if (allow_options && *path == '-') { if (!strcmp(path, "--")) { @@ -616,9 +617,12 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) usage(update_index_usage); 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) - chmod_path(set_executable_bit, path); + chmod_path(set_executable_bit, p); + if (p < path || p > path + strlen(path)) + free(p); } if (read_from_stdin) { struct strbuf buf; -- 1.5.0.rc2.150.gd174e