[PATCH 08/10] Make setup_git_directory() auto-setup worktree if found
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:44:19
Subsystem:
the rest · Maintainer:
Linus Torvalds
The semantic is simpler: if worktree is found, use it or die. Signed-off-by: Nguyễn Thái Ngọc Duy <redacted> --- builtin-ls-files.c | 4 ++-- builtin-rev-parse.c | 7 +++++-- builtin-rm.c | 5 ++--- setup.c | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/builtin-ls-files.c b/builtin-ls-files.c
index cf4c492..a53881d 100644
--- a/builtin-ls-files.c
+++ b/builtin-ls-files.c@@ -566,8 +566,8 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix) break; } - if (require_work_tree && !is_inside_work_tree()) - prefix = setup_work_tree(prefix); + if (require_work_tree && !get_git_work_tree()) + die("This operation must be run in a work tree"); if (prefix_offset == -1) prefix_offset = prefix ? strlen(prefix) : 0;
diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
index 3d3a309..5016890 100644
--- a/builtin-rev-parse.c
+++ b/builtin-rev-parse.c@@ -359,15 +359,16 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) return 0; } -int cmd_rev_parse(int argc, const char **argv, const char *prefix) +int cmd_rev_parse(int argc, const char **argv, const char *unused_prefix) { int i, as_is = 0, verify = 0; unsigned char sha1[20]; + const char *prefix = NULL; if (argc > 1 && !strcmp("--parseopt", argv[1])) return cmd_parseopt(argc - 1, argv + 1, prefix); - prefix = setup_git_directory(); + setup_git_directory_gently(NULL); git_config(git_default_config); for (i = 1; i < argc; i++) { const char *arg = argv[i];
@@ -487,6 +488,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) printf("%s\n", work_tree); continue; } + else + pfx = prefix = setup_work_tree(prefix); while (pfx) { pfx = strchr(pfx, '/'); if (pfx) {
diff --git a/builtin-rm.c b/builtin-rm.c
index 2c15d66..dedef9f 100644
--- a/builtin-rm.c
+++ b/builtin-rm.c@@ -155,10 +155,9 @@ int cmd_rm(int argc, const char **argv, const char *prefix) if (!argc) usage_with_options(builtin_rm_usage, builtin_rm_options); - if (!index_only) - prefix = setup_work_tree(prefix);