* [PATCH 00/18] Search and set up repository early for builtin commands
@ 2010-03-07 4:55 Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 01/18] builtin: introduce startup_info struct Nguyễn Thái Ngọc Duy
` (17 more replies)
0 siblings, 18 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
This is a simpler part of my Git setup cleanup WIP [1], to introduce
RUN_SETUP_GENTLY and make most of commands use it.
The commands that do not have RUN_SETUP* are:
- Init/Clone commands
- Server commands
- Helpers that have nothing to do with repositories
- git-rev-parse
[1] http://mid.gmane.org/1266336317-607-1-git-send-email-pclouds@gmail.com
Nguyễn Thái Ngọc Duy (18):
builtin: introduce startup_info struct
builtin: Support RUN_SETUP_GENTLY to set up repository early if found
config: use RUN_SETUP_GENTLY
hash-object: use RUN_SETUP_GENTLY
shortlog: use RUN_SETUP_GENTLY
grep: use RUN_SETUP_GENTLY
builtin: USE_PAGER should not be used without RUN_SETUP*
archive: use RUN_SETUP_GENTLY
mailinfo: use RUN_SETUP_GENTLY
check-ref-format: use RUN_SETUP_GENTLY
verify-pack: use RUN_SETUP_GENTLY
apply: use RUN_SETUP_GENTLY
bundle: use RUN_SETUP_GENTLY
diff: use RUN_SETUP_GENTLY
help: use RUN_SETUP_GENTLY
ls-remote: use RUN_SETUP_GENTLY
var: use RUN_SETUP_GENTLY
merge-file: use RUN_SETUP_GENTLY
builtin/apply.c | 7 ++---
builtin/archive.c | 2 +-
builtin/bundle.c | 6 +---
builtin/config.c | 6 +---
builtin/diff.c | 6 +---
builtin/grep.c | 9 ++-----
builtin/hash-object.c | 9 ++++---
builtin/help.c | 2 -
builtin/ls-remote.c | 3 --
builtin/mailinfo.c | 3 --
builtin/merge-file.c | 4 +--
builtin/shortlog.c | 4 +--
builtin/var.c | 2 -
cache.h | 7 +++++
environment.c | 1 +
git.c | 61 ++++++++++++++++++++++++++++---------------------
setup.c | 14 ++++++++++-
17 files changed, 76 insertions(+), 70 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 01/18] builtin: introduce startup_info struct
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 02/18] builtin: Support RUN_SETUP_GENTLY to set up repository early if found Nguyễn Thái Ngọc Duy
` (16 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
The purpose of this struct is to make it easier to extend parameters
passed to builtin commands from run_builtin(), and let libgit aware of
some global states in future.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
cache.h | 6 ++++++
environment.c | 1 +
git.c | 9 +++++----
setup.c | 12 +++++++++++-
4 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/cache.h b/cache.h
index 89f6a40..30fddf1 100644
--- a/cache.h
+++ b/cache.h
@@ -1054,4 +1054,10 @@ void overlay_tree_on_cache(const char *tree_name, const char *prefix);
char *alias_lookup(const char *alias);
int split_cmdline(char *cmdline, const char ***argv);
+/* git.c */
+struct startup_info {
+ const char *prefix;
+};
+extern struct startup_info *startup_info;
+
#endif /* CACHE_H */
diff --git a/environment.c b/environment.c
index 876c5e5..c36c902 100644
--- a/environment.c
+++ b/environment.c
@@ -52,6 +52,7 @@ enum object_creation_mode object_creation_mode = OBJECT_CREATION_MODE;
char *notes_ref_name;
int grafts_replace_parents = 1;
int core_apply_sparse_checkout;
+struct startup_info *startup_info;
/* Parallel index stat data preload? */
int core_preload_index = 0;
diff --git a/git.c b/git.c
index 6bae305..4be34e4 100644
--- a/git.c
+++ b/git.c
@@ -13,6 +13,7 @@ const char git_usage_string[] =
const char git_more_info_string[] =
"See 'git help COMMAND' for more information on a specific command.";
+static struct startup_info git_startup_info;
static int use_pager = -1;
struct pager_config {
const char *cmd;
@@ -237,13 +238,13 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
{
int status, help;
struct stat st;
- const char *prefix;
- prefix = NULL;
+ memset(&git_startup_info, 0, sizeof(git_startup_info));
+ startup_info = &git_startup_info;
help = argc == 2 && !strcmp(argv[1], "-h");
if (!help) {
if (p->option & RUN_SETUP)
- prefix = setup_git_directory();
+ setup_git_directory();
if (use_pager == -1 && p->option & RUN_SETUP)
use_pager = check_pager_config(p->cmd);
@@ -257,7 +258,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
trace_argv_printf(argv, "trace: built-in: git");
- status = p->fn(argc, argv, prefix);
+ status = p->fn(argc, argv, startup_info->prefix);
if (status)
return status;
diff --git a/setup.c b/setup.c
index 5716d90..cf1b37d 100644
--- a/setup.c
+++ b/setup.c
@@ -315,7 +315,7 @@ const char *read_gitfile_gently(const char *path)
* We cannot decide in this function whether we are in the work tree or
* not, since the config can only be read _after_ this function was called.
*/
-const char *setup_git_directory_gently(int *nongit_ok)
+static const char *setup_git_directory_gently_1(int *nongit_ok)
{
const char *work_tree_env = getenv(GIT_WORK_TREE_ENVIRONMENT);
const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT);
@@ -443,6 +443,16 @@ const char *setup_git_directory_gently(int *nongit_ok)
return cwd + offset;
}
+const char *setup_git_directory_gently(int *nongit_ok)
+{
+ const char *prefix;
+
+ prefix = setup_git_directory_gently_1(nongit_ok);
+ if (startup_info)
+ startup_info->prefix = prefix;
+ return prefix;
+}
+
int git_config_perm(const char *var, const char *value)
{
int i;
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 02/18] builtin: Support RUN_SETUP_GENTLY to set up repository early if found
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 01/18] builtin: introduce startup_info struct Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 03/18] config: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
` (15 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Attempts to access gitdir are everywhere, even before cmd_*() is
called. Because repository has not been found, repository-specific
information (i.e. $GIT_DIR/config) may not be read. This leads to
obscure bugs.
So the sooner we setup gitdir, the less trouble we may have to deal with.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
cache.h | 1 +
git.c | 11 ++++++++---
setup.c | 4 +++-
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/cache.h b/cache.h
index 30fddf1..68412c0 100644
--- a/cache.h
+++ b/cache.h
@@ -1057,6 +1057,7 @@ int split_cmdline(char *cmdline, const char ***argv);
/* git.c */
struct startup_info {
const char *prefix;
+ int have_repository;
};
extern struct startup_info *startup_info;
diff --git a/git.c b/git.c
index 4be34e4..9e0e2d0 100644
--- a/git.c
+++ b/git.c
@@ -220,13 +220,14 @@ static int handle_alias(int *argcp, const char ***argv)
const char git_version_string[] = GIT_VERSION;
-#define RUN_SETUP (1<<0)
-#define USE_PAGER (1<<1)
+#define RUN_SETUP (1<<0)
+#define USE_PAGER (1<<1)
/*
* require working tree to be present -- anything uses this needs
* RUN_SETUP for reading from the configuration file.
*/
-#define NEED_WORK_TREE (1<<2)
+#define NEED_WORK_TREE (1<<2)
+#define RUN_SETUP_GENTLY (1<<3)
struct cmd_struct {
const char *cmd;
@@ -245,6 +246,10 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
if (!help) {
if (p->option & RUN_SETUP)
setup_git_directory();
+ if (p->option & RUN_SETUP_GENTLY) {
+ int nongit_ok;
+ setup_git_directory_gently(&nongit_ok);
+ }
if (use_pager == -1 && p->option & RUN_SETUP)
use_pager = check_pager_config(p->cmd);
diff --git a/setup.c b/setup.c
index cf1b37d..bb3648c 100644
--- a/setup.c
+++ b/setup.c
@@ -448,8 +448,10 @@ const char *setup_git_directory_gently(int *nongit_ok)
const char *prefix;
prefix = setup_git_directory_gently_1(nongit_ok);
- if (startup_info)
+ if (startup_info) {
startup_info->prefix = prefix;
+ startup_info->have_repository = !nongit_ok || !*nongit_ok;
+ }
return prefix;
}
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 03/18] config: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 01/18] builtin: introduce startup_info struct Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 02/18] builtin: Support RUN_SETUP_GENTLY to set up repository early if found Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 04/18] hash-object: " Nguyễn Thái Ngọc Duy
` (14 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/config.c | 6 ++----
git.c | 4 ++--
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/builtin/config.c b/builtin/config.c
index 4bc46b1..ecc8f87 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -326,11 +326,9 @@ static int get_colorbool(int print)
return get_colorbool_found ? 0 : 1;
}
-int cmd_config(int argc, const char **argv, const char *unused_prefix)
+int cmd_config(int argc, const char **argv, const char *prefix)
{
- int nongit;
char *value;
- const char *prefix = setup_git_directory_gently(&nongit);
config_exclusive_filename = getenv(CONFIG_ENVIRONMENT);
@@ -409,7 +407,7 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
}
else if (actions == ACTION_EDIT) {
check_argc(argc, 0, 0);
- if (!config_exclusive_filename && nongit)
+ if (!config_exclusive_filename && !startup_info->have_repository)
die("not in a git directory");
git_config(git_default_config, NULL);
launch_editor(config_exclusive_filename ?
diff --git a/git.c b/git.c
index 9e0e2d0..4c99319 100644
--- a/git.c
+++ b/git.c
@@ -309,7 +309,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE },
{ "commit", cmd_commit, RUN_SETUP | NEED_WORK_TREE },
{ "commit-tree", cmd_commit_tree, RUN_SETUP },
- { "config", cmd_config },
+ { "config", cmd_config, RUN_SETUP_GENTLY },
{ "count-objects", cmd_count_objects, RUN_SETUP },
{ "describe", cmd_describe, RUN_SETUP },
{ "diff", cmd_diff },
@@ -366,7 +366,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "reflog", cmd_reflog, RUN_SETUP },
{ "remote", cmd_remote, RUN_SETUP },
{ "replace", cmd_replace, RUN_SETUP },
- { "repo-config", cmd_config },
+ { "repo-config", cmd_config, RUN_SETUP_GENTLY },
{ "rerere", cmd_rerere, RUN_SETUP },
{ "reset", cmd_reset, RUN_SETUP },
{ "rev-list", cmd_rev_list, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 04/18] hash-object: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (2 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 03/18] config: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 05/18] shortlog: " Nguyễn Thái Ngọc Duy
` (13 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
hash-object needs to inspect repository's config, so it must try to
find a repository regardless the object will be written in object
store.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/hash-object.c | 9 +++++----
git.c | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/builtin/hash-object.c b/builtin/hash-object.c
index 6a5f5b5..57330b8 100644
--- a/builtin/hash-object.c
+++ b/builtin/hash-object.c
@@ -76,7 +76,7 @@ static const struct option hash_object_options[] = {
int cmd_hash_object(int argc, const char **argv, const char *prefix)
{
int i;
- int prefix_length = -1;
+ int prefix_length;
const char *errstr = NULL;
type = blob_type;
@@ -84,9 +84,10 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, NULL, hash_object_options,
hash_object_usage, 0);
+ prefix_length = prefix ? strlen(prefix) : 0;
if (write_object) {
- prefix = setup_git_directory();
- prefix_length = prefix ? strlen(prefix) : 0;
+ if (!startup_info->have_repository)
+ die("No repository found");
if (vpath && prefix)
vpath = prefix_filename(prefix, prefix_length, vpath);
}
@@ -121,7 +122,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
for (i = 0 ; i < argc; i++) {
const char *arg = argv[i];
- if (0 <= prefix_length)
+ if (prefix_length)
arg = prefix_filename(prefix, prefix_length, arg);
hash_object(arg, type, write_object,
no_filters ? NULL : vpath ? vpath : arg);
diff --git a/git.c b/git.c
index 4c99319..2069ef3 100644
--- a/git.c
+++ b/git.c
@@ -327,7 +327,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "gc", cmd_gc, RUN_SETUP },
{ "get-tar-commit-id", cmd_get_tar_commit_id },
{ "grep", cmd_grep, USE_PAGER },
- { "hash-object", cmd_hash_object },
+ { "hash-object", cmd_hash_object, RUN_SETUP_GENTLY },
{ "help", cmd_help },
{ "index-pack", cmd_index_pack },
{ "init", cmd_init_db },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 05/18] shortlog: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (3 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 04/18] hash-object: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 06/18] grep: " Nguyễn Thái Ngọc Duy
` (12 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
shortlog has USE_PAGER set. setup_pager() may read config even
setup_git_dir* is not run yet. This tries to find a repository before
the config is read.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/shortlog.c | 4 +---
git.c | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 06320f5..bdf3402 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -249,7 +249,6 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
{
static struct shortlog log;
static struct rev_info rev;
- int nongit;
static const struct option options[] = {
OPT_BOOLEAN('n', "numbered", &log.sort_by_number,
@@ -265,7 +264,6 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
struct parse_opt_ctx_t ctx;
- prefix = setup_git_directory_gently(&nongit);
git_config(git_default_config, NULL);
shortlog_init(&log);
init_revisions(&rev, prefix);
@@ -292,7 +290,7 @@ parse_done:
log.user_format = rev.commit_format == CMIT_FMT_USERFORMAT;
/* assume HEAD if from a tty */
- if (!nongit && !rev.pending.nr && isatty(0))
+ if (startup_info->have_repository && !rev.pending.nr && isatty(0))
add_head_to_pending(&rev);
if (rev.pending.nr == 0) {
if (isatty(0))
diff --git a/git.c b/git.c
index 2069ef3..29489e6 100644
--- a/git.c
+++ b/git.c
@@ -374,7 +374,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
{ "rm", cmd_rm, RUN_SETUP },
{ "send-pack", cmd_send_pack, RUN_SETUP },
- { "shortlog", cmd_shortlog, USE_PAGER },
+ { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
{ "show-branch", cmd_show_branch, RUN_SETUP },
{ "show", cmd_show, RUN_SETUP | USE_PAGER },
{ "status", cmd_status, RUN_SETUP | NEED_WORK_TREE },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 06/18] grep: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (4 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 05/18] shortlog: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 07/18] builtin: USE_PAGER should not be used without RUN_SETUP* Nguyễn Thái Ngọc Duy
` (11 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
grep has USE_PAGER set. setup_pager() may read config even
setup_git_dir* is not run yet. This tries to find a repository before
config is read.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/grep.c | 9 +++------
git.c | 2 +-
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/builtin/grep.c b/builtin/grep.c
index 40b9a93..fb82ff8 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -765,7 +765,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
const char **paths = NULL;
int i;
int dummy;
- int nongit = 0, use_index = 1;
+ int use_index = 1;
struct option options[] = {
OPT_BOOLEAN(0, "cached", &cached,
"search in index instead of in the work tree"),
@@ -853,8 +853,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
OPT_END()
};
- prefix = setup_git_directory_gently(&nongit);
-
/*
* 'git grep -h', unlike 'git grep -h <pattern>', is a request
* to show usage information and exit.
@@ -893,9 +891,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
PARSE_OPT_STOP_AT_NON_OPTION |
PARSE_OPT_NO_INTERNAL_HELP);
- if (use_index && nongit)
- /* die the same way as if we did it at the beginning */
- setup_git_directory();
+ if (use_index && !startup_info->have_repository)
+ die("No git repository found");
/*
* skip a -- separator; we know it cannot be
diff --git a/git.c b/git.c
index 29489e6..3904fe2 100644
--- a/git.c
+++ b/git.c
@@ -326,7 +326,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "fsck-objects", cmd_fsck, RUN_SETUP },
{ "gc", cmd_gc, RUN_SETUP },
{ "get-tar-commit-id", cmd_get_tar_commit_id },
- { "grep", cmd_grep, USE_PAGER },
+ { "grep", cmd_grep, RUN_SETUP_GENTLY | USE_PAGER },
{ "hash-object", cmd_hash_object, RUN_SETUP_GENTLY },
{ "help", cmd_help },
{ "index-pack", cmd_index_pack },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 07/18] builtin: USE_PAGER should not be used without RUN_SETUP*
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (5 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 06/18] grep: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 08/18] archive: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
` (10 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
USE_PAGER may need core.pager from repository. So a repository search
should be done before core.pager is read.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
git.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/git.c b/git.c
index 3904fe2..84dd78e 100644
--- a/git.c
+++ b/git.c
@@ -253,8 +253,11 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
if (use_pager == -1 && p->option & RUN_SETUP)
use_pager = check_pager_config(p->cmd);
- if (use_pager == -1 && p->option & USE_PAGER)
+ if (use_pager == -1 && p->option & USE_PAGER) {
+ if ((p->option & (RUN_SETUP | RUN_SETUP_GENTLY)) == 0)
+ die("Internal error: USE_PAGER must be together with RUN_SETUP*");
use_pager = 1;
+ }
}
commit_pager_choice();
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 08/18] archive: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (6 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 07/18] builtin: USE_PAGER should not be used without RUN_SETUP* Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 09/18] mailinfo: " Nguyễn Thái Ngọc Duy
` (9 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/archive.c | 2 +-
git.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/builtin/archive.c b/builtin/archive.c
index 6a887f5..ef0bef8 100644
--- a/builtin/archive.c
+++ b/builtin/archive.c
@@ -125,5 +125,5 @@ int cmd_archive(int argc, const char **argv, const char *prefix)
setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
- return write_archive(argc, argv, prefix, 1);
+ return write_archive(argc, argv, prefix, 0);
}
diff --git a/git.c b/git.c
index 84dd78e..2b59f06 100644
--- a/git.c
+++ b/git.c
@@ -295,7 +295,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
{ "annotate", cmd_annotate, RUN_SETUP },
{ "apply", cmd_apply },
- { "archive", cmd_archive },
+ { "archive", cmd_archive, RUN_SETUP_GENTLY },
{ "bisect--helper", cmd_bisect__helper, RUN_SETUP | NEED_WORK_TREE },
{ "blame", cmd_blame, RUN_SETUP },
{ "branch", cmd_branch, RUN_SETUP },
@@ -384,7 +384,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "stripspace", cmd_stripspace },
{ "symbolic-ref", cmd_symbolic_ref, RUN_SETUP },
{ "tag", cmd_tag, RUN_SETUP },
- { "tar-tree", cmd_tar_tree },
+ { "tar-tree", cmd_tar_tree, RUN_SETUP_GENTLY },
{ "unpack-file", cmd_unpack_file, RUN_SETUP },
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
{ "update-index", cmd_update_index, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 09/18] mailinfo: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (7 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 08/18] archive: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 10/18] check-ref-format: " Nguyễn Thái Ngọc Duy
` (8 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
mailinfo may use repo config, so setup gitdir first.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/mailinfo.c | 3 ---
git.c | 2 +-
2 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c
index ce2ef6b..3d2c650 100644
--- a/builtin/mailinfo.c
+++ b/builtin/mailinfo.c
@@ -1026,9 +1026,6 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix)
{
const char *def_charset;
- /* NEEDSWORK: might want to do the optional .git/ directory
- * discovery
- */
git_config(git_mailinfo_config, NULL);
def_charset = (git_commit_encoding ? git_commit_encoding : "UTF-8");
diff --git a/git.c b/git.c
index 2b59f06..326f7c7 100644
--- a/git.c
+++ b/git.c
@@ -339,7 +339,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "ls-files", cmd_ls_files, RUN_SETUP },
{ "ls-tree", cmd_ls_tree, RUN_SETUP },
{ "ls-remote", cmd_ls_remote },
- { "mailinfo", cmd_mailinfo },
+ { "mailinfo", cmd_mailinfo, RUN_SETUP_GENTLY },
{ "mailsplit", cmd_mailsplit },
{ "merge", cmd_merge, RUN_SETUP | NEED_WORK_TREE },
{ "merge-base", cmd_merge_base, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 10/18] check-ref-format: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (8 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 09/18] mailinfo: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:55 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 11/18] verify-pack: " Nguyễn Thái Ngọc Duy
` (7 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:55 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
When --branch is used, check-ref-format will look into repository for
branch name. Therefore repository search is needed.
The call flow is:
- cmd_check_ref_format
- strbuf_check_branch_ref
- strbuf_branchname
- interpret_branch_name
- branch_get
- read_config
- resolve_ref
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
git.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git.c b/git.c
index 326f7c7..a8660f4 100644
--- a/git.c
+++ b/git.c
@@ -304,7 +304,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "checkout", cmd_checkout, RUN_SETUP | NEED_WORK_TREE },
{ "checkout-index", cmd_checkout_index,
RUN_SETUP | NEED_WORK_TREE},
- { "check-ref-format", cmd_check_ref_format },
+ { "check-ref-format", cmd_check_ref_format, RUN_SETUP_GENTLY },
{ "check-attr", cmd_check_attr, RUN_SETUP },
{ "cherry", cmd_cherry, RUN_SETUP },
{ "cherry-pick", cmd_cherry_pick, RUN_SETUP | NEED_WORK_TREE },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 11/18] verify-pack: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (9 preceding siblings ...)
2010-03-07 4:55 ` [PATCH 10/18] check-ref-format: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 12/18] apply: " Nguyễn Thái Ngọc Duy
` (6 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
git.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git.c b/git.c
index a8660f4..0e052c8 100644
--- a/git.c
+++ b/git.c
@@ -396,7 +396,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "version", cmd_version },
{ "whatchanged", cmd_whatchanged, RUN_SETUP | USE_PAGER },
{ "write-tree", cmd_write_tree, RUN_SETUP },
- { "verify-pack", cmd_verify_pack },
+ { "verify-pack", cmd_verify_pack, RUN_SETUP_GENTLY },
{ "show-ref", cmd_show_ref, RUN_SETUP },
{ "pack-refs", cmd_pack_refs, RUN_SETUP },
};
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 12/18] apply: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (10 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 11/18] verify-pack: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 13/18] bundle: " Nguyễn Thái Ngọc Duy
` (5 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/apply.c | 7 +++----
git.c | 2 +-
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/builtin/apply.c b/builtin/apply.c
index 3af4ae0..d27aac6 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -3516,7 +3516,6 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix)
{
int i;
int errs = 0;
- int is_not_gitdir;
int binary;
int force_apply = 0;
@@ -3589,7 +3588,7 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix)
OPT_END()
};
- prefix = setup_git_directory_gently(&is_not_gitdir);
+ prefix = startup_info->prefix;
prefix_length = prefix ? strlen(prefix) : 0;
git_config(git_apply_config, NULL);
if (apply_default_whitespace)
@@ -3604,10 +3603,10 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix)
apply = apply_verbosely = 1;
if (!force_apply && (diffstat || numstat || summary || check || fake_ancestor))
apply = 0;
- if (check_index && is_not_gitdir)
+ if (check_index && !startup_info->have_repository)
die("--index outside a repository");
if (cached) {
- if (is_not_gitdir)
+ if (!startup_info->have_repository)
die("--cached outside a repository");
check_index = 1;
}
diff --git a/git.c b/git.c
index 0e052c8..7820d22 100644
--- a/git.c
+++ b/git.c
@@ -294,7 +294,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "add", cmd_add, RUN_SETUP | NEED_WORK_TREE },
{ "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
{ "annotate", cmd_annotate, RUN_SETUP },
- { "apply", cmd_apply },
+ { "apply", cmd_apply, RUN_SETUP_GENTLY },
{ "archive", cmd_archive, RUN_SETUP_GENTLY },
{ "bisect--helper", cmd_bisect__helper, RUN_SETUP | NEED_WORK_TREE },
{ "blame", cmd_blame, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 13/18] bundle: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (11 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 12/18] apply: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 14/18] diff: " Nguyễn Thái Ngọc Duy
` (4 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/bundle.c | 6 ++----
git.c | 2 +-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/builtin/bundle.c b/builtin/bundle.c
index 2006cc5..80649ba 100644
--- a/builtin/bundle.c
+++ b/builtin/bundle.c
@@ -18,7 +18,6 @@ static const char builtin_bundle_usage[] =
int cmd_bundle(int argc, const char **argv, const char *prefix)
{
struct bundle_header header;
- int nongit;
const char *cmd, *bundle_file;
int bundle_fd = -1;
char buffer[PATH_MAX];
@@ -31,7 +30,6 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
argc -= 2;
argv += 2;
- prefix = setup_git_directory_gently(&nongit);
if (prefix && bundle_file[0] != '/') {
snprintf(buffer, sizeof(buffer), "%s/%s", prefix, bundle_file);
bundle_file = buffer;
@@ -54,11 +52,11 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
return !!list_bundle_refs(&header, argc, argv);
}
if (!strcmp(cmd, "create")) {
- if (nongit)
+ if (!startup_info->have_repository)
die("Need a repository to create a bundle.");
return !!create_bundle(&header, bundle_file, argc, argv);
} else if (!strcmp(cmd, "unbundle")) {
- if (nongit)
+ if (!startup_info->have_repository)
die("Need a repository to unbundle.");
return !!unbundle(&header, bundle_fd) ||
list_bundle_refs(&header, argc, argv);
diff --git a/git.c b/git.c
index 7820d22..a90e0c3 100644
--- a/git.c
+++ b/git.c
@@ -299,7 +299,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "bisect--helper", cmd_bisect__helper, RUN_SETUP | NEED_WORK_TREE },
{ "blame", cmd_blame, RUN_SETUP },
{ "branch", cmd_branch, RUN_SETUP },
- { "bundle", cmd_bundle },
+ { "bundle", cmd_bundle, RUN_SETUP_GENTLY },
{ "cat-file", cmd_cat_file, RUN_SETUP },
{ "checkout", cmd_checkout, RUN_SETUP | NEED_WORK_TREE },
{ "checkout-index", cmd_checkout_index,
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 14/18] diff: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (12 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 13/18] bundle: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 15/18] help: " Nguyễn Thái Ngọc Duy
` (3 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/diff.c | 6 ++----
git.c | 2 +-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/builtin/diff.c b/builtin/diff.c
index ffcdd05..e4bd855 100644
--- a/builtin/diff.c
+++ b/builtin/diff.c
@@ -252,7 +252,6 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
int ents = 0, blobs = 0, paths = 0;
const char *path = NULL;
struct blobinfo blob[2];
- int nongit;
int result = 0;
/*
@@ -278,7 +277,6 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
* Other cases are errors.
*/
- prefix = setup_git_directory_gently(&nongit);
git_config(git_diff_ui_config, NULL);
if (diff_use_color_default == -1)
@@ -287,7 +285,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
init_revisions(&rev, prefix);
/* If this is a no-index diff, just run it and exit there. */
- diff_no_index(&rev, argc, argv, nongit, prefix);
+ diff_no_index(&rev, argc, argv, !startup_info->have_repository, prefix);
/* Otherwise, we are doing the usual "git" diff */
rev.diffopt.skip_stat_unmatch = !!diff_auto_refresh_index;
@@ -296,7 +294,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
DIFF_OPT_SET(&rev.diffopt, ALLOW_EXTERNAL);
DIFF_OPT_SET(&rev.diffopt, ALLOW_TEXTCONV);
- if (nongit)
+ if (!startup_info->have_repository)
die("Not a git repository");
argc = setup_revisions(argc, argv, &rev, NULL);
if (!rev.diffopt.output_format) {
diff --git a/git.c b/git.c
index a90e0c3..02ba3b2 100644
--- a/git.c
+++ b/git.c
@@ -315,7 +315,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "config", cmd_config, RUN_SETUP_GENTLY },
{ "count-objects", cmd_count_objects, RUN_SETUP },
{ "describe", cmd_describe, RUN_SETUP },
- { "diff", cmd_diff },
+ { "diff", cmd_diff, RUN_SETUP_GENTLY },
{ "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
{ "diff-index", cmd_diff_index, RUN_SETUP },
{ "diff-tree", cmd_diff_tree, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 15/18] help: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (13 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 14/18] diff: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 16/18] ls-remote: " Nguyễn Thái Ngọc Duy
` (2 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/help.c | 2 --
git.c | 2 +-
2 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/builtin/help.c b/builtin/help.c
index 3182a2b..4988629 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -414,7 +414,6 @@ static void show_html_page(const char *git_cmd)
int cmd_help(int argc, const char **argv, const char *prefix)
{
- int nongit;
const char *alias;
enum help_format parsed_help_format;
load_command_list("git-", &main_cmds, &other_cmds);
@@ -437,7 +436,6 @@ int cmd_help(int argc, const char **argv, const char *prefix)
return 0;
}
- setup_git_directory_gently(&nongit);
git_config(git_help_config, NULL);
if (parsed_help_format != HELP_FORMAT_NONE)
diff --git a/git.c b/git.c
index 02ba3b2..6a29756 100644
--- a/git.c
+++ b/git.c
@@ -331,7 +331,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "get-tar-commit-id", cmd_get_tar_commit_id },
{ "grep", cmd_grep, RUN_SETUP_GENTLY | USE_PAGER },
{ "hash-object", cmd_hash_object, RUN_SETUP_GENTLY },
- { "help", cmd_help },
+ { "help", cmd_help, RUN_SETUP_GENTLY },
{ "index-pack", cmd_index_pack },
{ "init", cmd_init_db },
{ "init-db", cmd_init_db },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 16/18] ls-remote: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (14 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 15/18] help: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 17/18] var: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 18/18] merge-file: " Nguyễn Thái Ngọc Duy
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/ls-remote.c | 3 ---
git.c | 4 ++--
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c
index 70f5622..998f2c8 100644
--- a/builtin/ls-remote.c
+++ b/builtin/ls-remote.c
@@ -31,7 +31,6 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
{
int i;
const char *dest = NULL;
- int nongit;
unsigned flags = 0;
const char *uploadpack = NULL;
const char **pattern = NULL;
@@ -40,8 +39,6 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
struct transport *transport;
const struct ref *ref;
- setup_git_directory_gently(&nongit);
-
for (i = 1; i < argc; i++) {
const char *arg = argv[i];
diff --git a/git.c b/git.c
index 6a29756..e0c8904 100644
--- a/git.c
+++ b/git.c
@@ -338,7 +338,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "log", cmd_log, RUN_SETUP | USE_PAGER },
{ "ls-files", cmd_ls_files, RUN_SETUP },
{ "ls-tree", cmd_ls_tree, RUN_SETUP },
- { "ls-remote", cmd_ls_remote },
+ { "ls-remote", cmd_ls_remote, RUN_SETUP_GENTLY },
{ "mailinfo", cmd_mailinfo, RUN_SETUP_GENTLY },
{ "mailsplit", cmd_mailsplit },
{ "merge", cmd_merge, RUN_SETUP | NEED_WORK_TREE },
@@ -359,7 +359,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "pack-objects", cmd_pack_objects, RUN_SETUP },
{ "pack-redundant", cmd_pack_redundant, RUN_SETUP },
{ "patch-id", cmd_patch_id },
- { "peek-remote", cmd_ls_remote },
+ { "peek-remote", cmd_ls_remote, RUN_SETUP_GENTLY },
{ "pickaxe", cmd_blame, RUN_SETUP },
{ "prune", cmd_prune, RUN_SETUP },
{ "prune-packed", cmd_prune_packed, RUN_SETUP },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 17/18] var: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (15 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 16/18] ls-remote: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 18/18] merge-file: " Nguyễn Thái Ngọc Duy
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
"git var" needs to read repository config, so setup gitdir first.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/var.c | 2 --
git.c | 2 +-
2 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/builtin/var.c b/builtin/var.c
index 70fdb4d..26324ef 100644
--- a/builtin/var.c
+++ b/builtin/var.c
@@ -75,12 +75,10 @@ static int show_config(const char *var, const char *value, void *cb)
int cmd_var(int argc, const char **argv, const char *prefix)
{
const char *val;
- int nongit;
if (argc != 2) {
usage(var_usage);
}
- setup_git_directory_gently(&nongit);
val = NULL;
if (strcmp(argv[1], "-l") == 0) {
diff --git a/git.c b/git.c
index e0c8904..3292627 100644
--- a/git.c
+++ b/git.c
@@ -391,7 +391,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "update-ref", cmd_update_ref, RUN_SETUP },
{ "update-server-info", cmd_update_server_info, RUN_SETUP },
{ "upload-archive", cmd_upload_archive },
- { "var", cmd_var },
+ { "var", cmd_var, RUN_SETUP_GENTLY },
{ "verify-tag", cmd_verify_tag, RUN_SETUP },
{ "version", cmd_version },
{ "whatchanged", cmd_whatchanged, RUN_SETUP | USE_PAGER },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 18/18] merge-file: use RUN_SETUP_GENTLY
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
` (16 preceding siblings ...)
2010-03-07 4:56 ` [PATCH 17/18] var: " Nguyễn Thái Ngọc Duy
@ 2010-03-07 4:56 ` Nguyễn Thái Ngọc Duy
17 siblings, 0 replies; 19+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-03-07 4:56 UTC (permalink / raw)
To: git; +Cc: Nguyễn Thái Ngọc Duy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/merge-file.c | 4 +---
git.c | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/builtin/merge-file.c b/builtin/merge-file.c
index 1e70073..474c6c2 100644
--- a/builtin/merge-file.c
+++ b/builtin/merge-file.c
@@ -30,7 +30,6 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
int level = XDL_MERGE_ZEALOUS_ALNUM;
int style = 0, quiet = 0;
int favor = 0;
- int nongit;
struct option options[] = {
OPT_BOOLEAN('p', "stdout", &to_stdout, "send results to standard output"),
@@ -45,8 +44,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
OPT_END(),
};
- prefix = setup_git_directory_gently(&nongit);
- if (!nongit) {
+ if (startup_info->have_repository) {
/* Read the configuration file */
git_config(git_xmerge_config, NULL);
if (0 <= git_xmerge_style)
diff --git a/git.c b/git.c
index 3292627..88408c8 100644
--- a/git.c
+++ b/git.c
@@ -343,7 +343,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "mailsplit", cmd_mailsplit },
{ "merge", cmd_merge, RUN_SETUP | NEED_WORK_TREE },
{ "merge-base", cmd_merge_base, RUN_SETUP },
- { "merge-file", cmd_merge_file },
+ { "merge-file", cmd_merge_file, RUN_SETUP_GENTLY },
{ "merge-index", cmd_merge_index, RUN_SETUP },
{ "merge-ours", cmd_merge_ours, RUN_SETUP },
{ "merge-recursive", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE },
--
1.7.0.195.g637a2
^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2010-03-07 5:07 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-07 4:55 [PATCH 00/18] Search and set up repository early for builtin commands Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 01/18] builtin: introduce startup_info struct Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 02/18] builtin: Support RUN_SETUP_GENTLY to set up repository early if found Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 03/18] config: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 04/18] hash-object: " Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 05/18] shortlog: " Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 06/18] grep: " Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 07/18] builtin: USE_PAGER should not be used without RUN_SETUP* Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 08/18] archive: use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 09/18] mailinfo: " Nguyễn Thái Ngọc Duy
2010-03-07 4:55 ` [PATCH 10/18] check-ref-format: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 11/18] verify-pack: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 12/18] apply: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 13/18] bundle: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 14/18] diff: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 15/18] help: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 16/18] ls-remote: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 17/18] var: " Nguyễn Thái Ngọc Duy
2010-03-07 4:56 ` [PATCH 18/18] merge-file: " Nguyễn Thái Ngọc Duy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).