From: Junio C Hamano Date: Wed, 3 Sep 2008 22:35:37 +0000 (-0700) Subject: Merge branch 'nd/worktree' into maint X-Git-Tag: v1.6.0.2~22 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/6a42cfe86c485675987b64690e75d8821567d328?ds=inline;hp=-c Merge branch 'nd/worktree' into maint * nd/worktree: setup_git_directory(): fix move to worktree toplevel directory update-index: fix worktree setup read-tree: setup worktree if merge is required grep: fix worktree setup diff*: fix worktree setup --- 6a42cfe86c485675987b64690e75d8821567d328 diff --combined builtin-grep.c index f59f95f175,3ded1ba9da..3a51662a35 --- a/builtin-grep.c +++ b/builtin-grep.c @@@ -774,7 -774,7 +774,7 @@@ int cmd_grep(int argc, const char **arg /* Make sure we do not get outside of paths */ for (i = 0; paths[i]; i++) if (strncmp(prefix, paths[i], opt.prefix_length)) - die("git-grep: cannot generate relative filenames containing '..'"); + die("git grep: cannot generate relative filenames containing '..'"); } } else if (prefix) { @@@ -783,8 -783,11 +783,11 @@@ paths[1] = NULL; } - if (!list.nr) + if (!list.nr) { + if (!cached) + setup_work_tree(); return !grep_cache(&opt, paths, cached); + } if (cached) die("both --cached and trees are given."); diff --combined builtin-update-index.c index e5bb2a03cb,f2c90ff1cd..5637d417aa --- a/builtin-update-index.c +++ b/builtin-update-index.c @@@ -262,7 -262,7 +262,7 @@@ static void chmod_path(int flip, const report("chmod %cx '%s'", flip, path); return; fail: - die("git-update-index: cannot chmod %cx '%s'", flip, path); + die("git update-index: cannot chmod %cx '%s'", flip, path); } static void update_one(const char *path, const char *prefix, int prefix_length) @@@ -280,7 -280,7 +280,7 @@@ if (force_remove) { if (remove_file_from_cache(p)) - die("git-update-index: unable to remove %s", path); + die("git update-index: unable to remove %s", path); report("remove '%s'", path); goto free_return; } @@@ -351,7 -351,7 +351,7 @@@ static void read_index_info(int line_te if (line_termination && path_name[0] == '"') { strbuf_reset(&uq); if (unquote_c_style(&uq, path_name, NULL)) { - die("git-update-index: bad quoting of path name"); + die("git update-index: bad quoting of path name"); } path_name = uq.buf; } @@@ -364,7 -364,7 +364,7 @@@ if (!mode) { /* mode == 0 means there is no such path -- remove */ if (remove_file_from_cache(path_name)) - die("git-update-index: unable to remove %s", + die("git update-index: unable to remove %s", ptr); } else { @@@ -374,7 -374,7 +374,7 @@@ */ ptr[-42] = ptr[-1] = 0; if (add_cacheinfo(mode, sha1, path_name, stage)) - die("git-update-index: unable to update %s", + die("git update-index: unable to update %s", path_name); } continue; @@@ -614,10 -614,12 +614,12 @@@ int cmd_update_index(int argc, const ch continue; } if (!strcmp(path, "--refresh")) { + setup_work_tree(); has_errors |= refresh_cache(refresh_flags); continue; } if (!strcmp(path, "--really-refresh")) { + setup_work_tree(); has_errors |= refresh_cache(REFRESH_REALLY | refresh_flags); continue; } @@@ -626,12 -628,12 +628,12 @@@ unsigned int mode; if (i+3 >= argc) - die("git-update-index: --cacheinfo "); + die("git update-index: --cacheinfo "); if (strtoul_ui(argv[i+1], 8, &mode) || get_sha1_hex(argv[i+2], sha1) || add_cacheinfo(mode, sha1, argv[i+3], 0)) - die("git-update-index: --cacheinfo" + die("git update-index: --cacheinfo" " cannot add %s", argv[i+3]); i += 3; continue; @@@ -639,7 -641,7 +641,7 @@@ if (!strcmp(path, "--chmod=-x") || !strcmp(path, "--chmod=+x")) { if (argc <= i+1) - die("git-update-index: %s ", path); + die("git update-index: %s ", path); set_executable_bit = path[8]; continue; } @@@ -684,6 -686,7 +686,7 @@@ goto finish; } if (!strcmp(path, "--again") || !strcmp(path, "-g")) { + setup_work_tree(); has_errors = do_reupdate(argc - i, argv + i, prefix, prefix_length); if (has_errors) @@@ -702,6 -705,7 +705,7 @@@ usage(update_index_usage); die("unknown option %s", path); } + setup_work_tree(); p = prefix_path(prefix, prefix_length, path); update_one(p, NULL, 0); if (set_executable_bit) @@@ -714,6 -718,7 +718,7 @@@ strbuf_init(&buf, 0); strbuf_init(&nbuf, 0); + setup_work_tree(); while (strbuf_getline(&buf, stdin, line_termination) != EOF) { const char *p; if (line_termination && buf.buf[0] == '"') {