Re: update-cache ./test.c
On Sun, May 01, 2005 at 10:54:27AM +0200, Lennert Buytenhek wrote:
> But that wasn't quite the point :) It makes sense that update-cache
> doesn't like ambiguous path names, but it's easier for update-cache to
> detect and strip "^./" than for me to remember to type sed "s#^./##"
> every time.
Something like this:
--- git/update-cache.c.orig 2005-05-01 10:56:17.859313581 +0200 +++ git/update-cache.c 2005-05-01 10:57:31.634897508 +0200
@@ -328,6 +328,7 @@
for (i = 1 ; i < argc; i++) {
char *path = argv[i];
+ char *_path;
if (allow_options && *path == '-') {
if (!strcmp(path, "--")) {
@@ -358,12 +359,15 @@
}
die("unknown option %s", path);
}
- if (!verify_path(path)) {
+ _path = path;
+ if (!strncmp(_path, "./", 2))
+ _path += 2;
+ if (!verify_path(_path)) {
fprintf(stderr, "Ignoring path %s\n", argv[i]);
continue;
}
- if (add_file_to_cache(path))
- die("Unable to add %s to database", path);
+ if (add_file_to_cache(_path))
+ die("Unable to add %s to database", _path);
}
if (write_cache(newfd, active_cache, active_nr) || rename(lockfile, indexfile))
die("Unable to write new cachefile");