* [PATCH] quote_path: convert empty path to "./" @ 2007-12-07 16:57 Jeff King 2007-12-07 18:54 ` Johannes Schindelin 0 siblings, 1 reply; 12+ messages in thread From: Jeff King @ 2007-12-07 16:57 UTC (permalink / raw) To: Junio C Hamano; +Cc: Johannes Schindelin, git Now that we are correctly removing leading prefixes from files in git status, there is a degenerate case: the directory matching the prefix. Because we show only the directory name for a directory that contains only untracked files, it gets collapsed to an empty string. Example: $ git init $ mkdir subdir $ touch subdir/file $ git status ... # Untracked files: # (use "git add <file>..." to include in what will be committed) # # subdir/ So far, so good. $ cd subdir $ git status .... # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Oops, that's a bit confusing. This patch prints './' to show that there is some output. --- I think it looks a bit ugly because it is so small (though just '.' was even worse). But I don't see what else would make sense. wt-status.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/wt-status.c b/wt-status.c index 02dbb75..31d83bf 100644 --- a/wt-status.c +++ b/wt-status.c @@ -121,6 +121,9 @@ static char *quote_path(const char *in, int len, } } + if (!out->len) + strbuf_addstr(out, "./"); + return out->buf; } -- 1.5.3.7.2156.g3d791-dirty ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] quote_path: convert empty path to "./" 2007-12-07 16:57 [PATCH] quote_path: convert empty path to "./" Jeff King @ 2007-12-07 18:54 ` Johannes Schindelin 2007-12-07 19:05 ` Thomas Harning 0 siblings, 1 reply; 12+ messages in thread From: Johannes Schindelin @ 2007-12-07 18:54 UTC (permalink / raw) To: Jeff King; +Cc: Junio C Hamano, git Hi, On Fri, 7 Dec 2007, Jeff King wrote: > # Untracked files: > # (use "git add <file>..." to include in what will be committed) > # > # subdir/ > > So far, so good. > > $ cd subdir > $ git status > .... > # Untracked files: > # (use "git add <file>..." to include in what will be committed) > # > # > > Oops, that's a bit confusing. > > This patch prints './' to show that there is some output. Sounds reasonable. Ciao, Dscho ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] quote_path: convert empty path to "./" 2007-12-07 18:54 ` Johannes Schindelin @ 2007-12-07 19:05 ` Thomas Harning 2007-12-07 20:49 ` Jeff King 0 siblings, 1 reply; 12+ messages in thread From: Thomas Harning @ 2007-12-07 19:05 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Jeff King, Junio C Hamano, git Johannes Schindelin wrote: > Hi, > > On Fri, 7 Dec 2007, Jeff King wrote: > >> ... >> > > Sounds reasonable. > > Ciao, > Dscho I concur. There is one case that this seems to dodge. What about the case where you are in: /test/test_2 where /test is not tracked... This should probably show "./../" not just "./" , right? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] quote_path: convert empty path to "./" 2007-12-07 19:05 ` Thomas Harning @ 2007-12-07 20:49 ` Jeff King 2007-12-07 21:26 ` [PATCH] add status.relativePaths config variable Jeff King 0 siblings, 1 reply; 12+ messages in thread From: Jeff King @ 2007-12-07 20:49 UTC (permalink / raw) To: Thomas Harning; +Cc: Johannes Schindelin, Junio C Hamano, git On Fri, Dec 07, 2007 at 02:05:15PM -0500, Thomas Harning wrote: > I concur. There is one case that this seems to dodge. What about the case > where you are in: > > /test/test_2 where /test is not tracked... > > This should probably show "./../" not just "./" , right? It already says "../", which is correct: $ git init $ mkdir test && cd test $ touch file $ mkdir test2 && cd test2 $ git status ... # Untracked files: # (use "git add <file>..." to include in what will be committed) # # ../ There's no point in ever saying "./" _except_ in the case where the output would be totally blank, since there is no way to tell that it is an output line. Personally, I don't like either the "../" or the "./", but I actually think the relative paths are less readable than the full paths in general. -Peff ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] add status.relativePaths config variable 2007-12-07 20:49 ` Jeff King @ 2007-12-07 21:26 ` Jeff King 2007-12-08 7:34 ` Junio C Hamano 0 siblings, 1 reply; 12+ messages in thread From: Jeff King @ 2007-12-07 21:26 UTC (permalink / raw) To: Junio C Hamano; +Cc: Johannes Schindelin, Thomas Harning, git The output of git-status was recently changed to output relative paths. Setting this variable to false restores the old behavior for any old-timers that prefer it. Signed-off-by: Jeff King <peff@peff.net> --- On Fri, Dec 07, 2007 at 03:49:37PM -0500, Jeff King wrote: > Personally, I don't like either the "../" or the "./", but I actually > think the relative paths are less readable than the full paths in > general. So here is a config option to turn it off; I don't think there should be any consistency problems, since git-status output is meant to be human-readable (and after all, we just changed it :) ). This patch also contains a small buglet fix in the neighboring code where we didn't stop trying to match "color.status.*" even after we used it to set the status color. Documentation/config.txt | 6 ++++++ builtin-commit.c | 3 +-- builtin-revert.c | 2 +- t/t7502-status.sh | 31 +++++++++++++++++++++++++++++++ wt-status.c | 10 +++++++++- wt-status.h | 2 +- 6 files changed, 49 insertions(+), 5 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index f0ffb9d..fabe7f8 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -776,6 +776,12 @@ showbranch.default:: The default set of branches for gitlink:git-show-branch[1]. See gitlink:git-show-branch[1]. +status.relativePaths:: + By default, gitlink:git-status[1] shows paths relative to the + current directory. Setting this variable to `false` shows paths + relative to the repository root (this was the default for git + prior to v1.5.4). + tar.umask:: This variable can be used to restrict the permission bits of tar archive entries. The default is 0002, which turns off the diff --git a/builtin-commit.c b/builtin-commit.c index 18c6323..04b3bf1 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -284,8 +284,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix) { struct wt_status s; - wt_status_prepare(&s); - s.prefix = prefix; + wt_status_prepare(&s, prefix); if (amend) { s.amend = 1; diff --git a/builtin-revert.c b/builtin-revert.c index 4bf8eb2..c285f8e 100644 --- a/builtin-revert.c +++ b/builtin-revert.c @@ -277,7 +277,7 @@ static int revert_or_cherry_pick(int argc, const char **argv) if (get_sha1("HEAD", head)) die ("You do not have a valid HEAD"); - wt_status_prepare(&s); + wt_status_prepare(&s, NULL); if (s.commitable) die ("Dirty index: cannot %s", me); discard_cache(); diff --git a/t/t7502-status.sh b/t/t7502-status.sh index d6ae69d..9ce50ca 100755 --- a/t/t7502-status.sh +++ b/t/t7502-status.sh @@ -88,4 +88,35 @@ test_expect_success 'status with relative paths' ' ' +cat > expect << \EOF +# On branch master +# Changes to be committed: +# (use "git reset HEAD <file>..." to unstage) +# +# new file: dir2/added +# +# Changed but not updated: +# (use "git add <file>..." to update what will be committed) +# +# modified: dir1/modified +# +# Untracked files: +# (use "git add <file>..." to include in what will be committed) +# +# dir1/untracked +# dir2/modified +# dir2/untracked +# expect +# output +# untracked +EOF + +test_expect_success 'status without relative paths' ' + + git config status.relativePaths false + (cd dir1 && git status) > output && + git diff expect output + +' + test_done diff --git a/wt-status.c b/wt-status.c index 02dbb75..b21b2c4 100644 --- a/wt-status.c +++ b/wt-status.c @@ -8,6 +8,7 @@ #include "revision.h" #include "diffcore.h" +int wt_status_relative_paths = 1; int wt_status_use_color = 0; static char wt_status_colors[][COLOR_MAXLEN] = { "", /* WT_STATUS_HEADER: normal */ @@ -42,7 +43,7 @@ static const char* color(int slot) return wt_status_use_color ? wt_status_colors[slot] : ""; } -void wt_status_prepare(struct wt_status *s) +void wt_status_prepare(struct wt_status *s, const char *prefix) { unsigned char sha1[20]; const char *head; @@ -53,6 +54,8 @@ void wt_status_prepare(struct wt_status *s) s->reference = "HEAD"; s->fp = stdout; s->index_file = get_index_file(); + if (wt_status_relative_paths) + s->prefix = prefix; } static void wt_status_print_cached_header(struct wt_status *s) @@ -397,6 +400,11 @@ int git_status_config(const char *k, const char *v) if (!prefixcmp(k, "status.color.") || !prefixcmp(k, "color.status.")) { int slot = parse_status_slot(k, 13); color_parse(v, k, wt_status_colors[slot]); + return 0; + } + if (!strcmp(k, "status.relativepaths")) { + wt_status_relative_paths = git_config_bool(k, v); + return 0; } return git_default_config(k, v); } diff --git a/wt-status.h b/wt-status.h index 225fb4d..0ed94f3 100644 --- a/wt-status.h +++ b/wt-status.h @@ -28,7 +28,7 @@ struct wt_status { int git_status_config(const char *var, const char *value); int wt_status_use_color; -void wt_status_prepare(struct wt_status *s); +void wt_status_prepare(struct wt_status *s, const char *prefix); void wt_status_print(struct wt_status *s); #endif /* STATUS_H */ -- 1.5.3.7.2159.gde63a-dirty ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-07 21:26 ` [PATCH] add status.relativePaths config variable Jeff King @ 2007-12-08 7:34 ` Junio C Hamano 2007-12-08 7:47 ` Junio C Hamano 2007-12-08 7:55 ` Jeff King 0 siblings, 2 replies; 12+ messages in thread From: Junio C Hamano @ 2007-12-08 7:34 UTC (permalink / raw) To: Jeff King; +Cc: Johannes Schindelin, Thomas Harning, git Jeff King <peff@peff.net> writes: > The output of git-status was recently changed to output > relative paths. Setting this variable to false restores the > old behavior for any old-timers that prefer it. > > Signed-off-by: Jeff King <peff@peff.net> > --- > On Fri, Dec 07, 2007 at 03:49:37PM -0500, Jeff King wrote: > >> Personally, I don't like either the "../" or the "./", but I actually >> think the relative paths are less readable than the full paths in >> general. > > So here is a config option to turn it off; I don't think there should be > any consistency problems, since git-status output is meant to be > human-readable (and after all, we just changed it :) ). I like the general idea (and suspect we might want to make it default to false to retain the original behaviour, but I'd refrain from suggesting it, to keep the user experience stable during the upcoming -rc period). We'd need an update to git-status documentation to mention the variable. > diff --git a/builtin-commit.c b/builtin-commit.c > index 18c6323..04b3bf1 100644 > --- a/builtin-commit.c > +++ b/builtin-commit.c > @@ -284,8 +284,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix) > { > struct wt_status s; > > - wt_status_prepare(&s); > - s.prefix = prefix; > + wt_status_prepare(&s, prefix); I have been wondering ever since receiving this patch if this is a good interface change. Was there a problem if instead: - The implementation of wt_status_prepare(&s) stays as before; - run_status(), after calling wt_status_prepare(&s), notices the configuration variable, and sets s.prefix conditionally; ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 7:34 ` Junio C Hamano @ 2007-12-08 7:47 ` Junio C Hamano 2007-12-08 8:02 ` Jeff King 2007-12-08 7:55 ` Jeff King 1 sibling, 1 reply; 12+ messages in thread From: Junio C Hamano @ 2007-12-08 7:47 UTC (permalink / raw) To: Jeff King; +Cc: Johannes Schindelin, Thomas Harning, git Junio C Hamano <gitster@pobox.com> writes: > I have been wondering ever since receiving this patch if this is a good > interface change. Was there a problem if instead: > > - The implementation of wt_status_prepare(&s) stays as before; > > - run_status(), after calling wt_status_prepare(&s), notices the > configuration variable, and sets s.prefix conditionally; Which would make the rewritten patch like this... -- >8 -- From: Jeff King <peff@peff.net> Date: Fri, 7 Dec 2007 16:26:07 -0500 Subject: [PATCH] add status.relativePaths config variable The output of git-status was recently changed to output relative paths. Setting this variable to false restores the old behavior for any old-timers that prefer it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> --- Documentation/config.txt | 6 ++++++ Documentation/git-status.txt | 5 ++++- builtin-commit.c | 3 ++- t/t7502-status.sh | 31 +++++++++++++++++++++++++++++++ wt-status.c | 6 ++++++ wt-status.h | 1 + 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 736fcd7..79d51f2 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -762,6 +762,12 @@ showbranch.default:: The default set of branches for gitlink:git-show-branch[1]. See gitlink:git-show-branch[1]. +status.relativePaths:: + By default, gitlink:git-status[1] shows paths relative to the + current directory. Setting this variable to `false` shows paths + relative to the repository root (this was the default for git + prior to v1.5.4). + tar.umask:: This variable can be used to restrict the permission bits of tar archive entries. The default is 0002, which turns off the diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt index b0cb6bc..bd4d787 100644 --- a/Documentation/git-status.txt +++ b/Documentation/git-status.txt @@ -42,7 +42,10 @@ template comments, and all the output lines are prefixed with '#'. The paths mentioned in the output, unlike many other git commands, are made relative to the current directory, if you are working in a -subdirectory (this is on purpose, to help cutting and pasting). +subdirectory (this is on purpose, to help cutting and pasting). You can +restore the older behaviour of showing the paths as relative to the top +of the work tree by setting `status.relativepaths` configuration +variable to `false`. CONFIGURATION diff --git a/builtin-commit.c b/builtin-commit.c index 2ec8223..19297ac 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -285,7 +285,8 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix) struct wt_status s; wt_status_prepare(&s); - s.prefix = prefix; + if (wt_status_relative_paths) + s.prefix = prefix; if (amend) { s.amend = 1; diff --git a/t/t7502-status.sh b/t/t7502-status.sh index d6ae69d..9ce50ca 100755 --- a/t/t7502-status.sh +++ b/t/t7502-status.sh @@ -88,4 +88,35 @@ test_expect_success 'status with relative paths' ' ' +cat > expect << \EOF +# On branch master +# Changes to be committed: +# (use "git reset HEAD <file>..." to unstage) +# +# new file: dir2/added +# +# Changed but not updated: +# (use "git add <file>..." to update what will be committed) +# +# modified: dir1/modified +# +# Untracked files: +# (use "git add <file>..." to include in what will be committed) +# +# dir1/untracked +# dir2/modified +# dir2/untracked +# expect +# output +# untracked +EOF + +test_expect_success 'status without relative paths' ' + + git config status.relativePaths false + (cd dir1 && git status) > output && + git diff expect output + +' + test_done diff --git a/wt-status.c b/wt-status.c index 05414bb..51c1879 100644 --- a/wt-status.c +++ b/wt-status.c @@ -8,6 +8,7 @@ #include "revision.h" #include "diffcore.h" +int wt_status_relative_paths = 1; int wt_status_use_color = 0; static char wt_status_colors[][COLOR_MAXLEN] = { "", /* WT_STATUS_HEADER: normal */ @@ -400,6 +401,11 @@ int git_status_config(const char *k, const char *v) if (!prefixcmp(k, "status.color.") || !prefixcmp(k, "color.status.")) { int slot = parse_status_slot(k, 13); color_parse(v, k, wt_status_colors[slot]); + return 0; + } + if (!strcmp(k, "status.relativepaths")) { + wt_status_relative_paths = git_config_bool(k, v); + return 0; } return git_default_config(k, v); } diff --git a/wt-status.h b/wt-status.h index 225fb4d..63d50f2 100644 --- a/wt-status.h +++ b/wt-status.h @@ -28,6 +28,7 @@ struct wt_status { int git_status_config(const char *var, const char *value); int wt_status_use_color; +int wt_status_relative_paths; void wt_status_prepare(struct wt_status *s); void wt_status_print(struct wt_status *s); -- 1.5.3.7-2182-g108b ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 7:47 ` Junio C Hamano @ 2007-12-08 8:02 ` Jeff King 2007-12-08 8:05 ` Junio C Hamano 0 siblings, 1 reply; 12+ messages in thread From: Jeff King @ 2007-12-08 8:02 UTC (permalink / raw) To: Junio C Hamano; +Cc: Johannes Schindelin, Thomas Harning, git On Fri, Dec 07, 2007 at 11:47:56PM -0800, Junio C Hamano wrote: > Which would make the rewritten patch like this... Looks like our patches just crossed paths. Yours looks OK, but we should add something to the 'configuration' section, and... > diff --git a/wt-status.h b/wt-status.h > index 225fb4d..63d50f2 100644 > --- a/wt-status.h > +++ b/wt-status.h > @@ -28,6 +28,7 @@ struct wt_status { > > int git_status_config(const char *var, const char *value); > int wt_status_use_color; > +int wt_status_relative_paths; > void wt_status_prepare(struct wt_status *s); > void wt_status_print(struct wt_status *s); Shouldn't both of these ints be marked "extern"? I'm surprised it worked at all (or perhaps the part of my brain that stores C linkage issues is rotting?). -Peff ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 8:02 ` Jeff King @ 2007-12-08 8:05 ` Junio C Hamano 2007-12-08 8:45 ` Jeff King 0 siblings, 1 reply; 12+ messages in thread From: Junio C Hamano @ 2007-12-08 8:05 UTC (permalink / raw) To: Jeff King; +Cc: Johannes Schindelin, Thomas Harning, git Jeff King <peff@peff.net> writes: > On Fri, Dec 07, 2007 at 11:47:56PM -0800, Junio C Hamano wrote: > >> Which would make the rewritten patch like this... > > Looks like our patches just crossed paths. Yours looks OK, but we > should add something to the 'configuration' section, and... > >> diff --git a/wt-status.h b/wt-status.h >> index 225fb4d..63d50f2 100644 >> --- a/wt-status.h >> +++ b/wt-status.h >> @@ -28,6 +28,7 @@ struct wt_status { >> >> int git_status_config(const char *var, const char *value); >> int wt_status_use_color; >> +int wt_status_relative_paths; >> void wt_status_prepare(struct wt_status *s); >> void wt_status_print(struct wt_status *s); > > Shouldn't both of these ints be marked "extern"? I'm surprised it worked > at all (or perhaps the part of my brain that stores C linkage issues is > rotting?). Yes, rotting very much. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 8:05 ` Junio C Hamano @ 2007-12-08 8:45 ` Jeff King 0 siblings, 0 replies; 12+ messages in thread From: Jeff King @ 2007-12-08 8:45 UTC (permalink / raw) To: Junio C Hamano; +Cc: Johannes Schindelin, Thomas Harning, git On Sat, Dec 08, 2007 at 12:05:49AM -0800, Junio C Hamano wrote: > >> index 225fb4d..63d50f2 100644 > >> --- a/wt-status.h > >> +++ b/wt-status.h > >> @@ -28,6 +28,7 @@ struct wt_status { > >> > >> int git_status_config(const char *var, const char *value); > >> int wt_status_use_color; > >> +int wt_status_relative_paths; > >> void wt_status_prepare(struct wt_status *s); > >> void wt_status_print(struct wt_status *s); > > > > Shouldn't both of these ints be marked "extern"? I'm surprised it worked > > at all (or perhaps the part of my brain that stores C linkage issues is > > rotting?). > > Yes, rotting very much. Nope, there's still a little grey matter left. It is not technically guaranteed by the standard to work, since the declaration in every source file which includes wt-status.h is a "tentative definition." Fortunately, the linker is nice enough to figure out what's going on as long as only one is actually initialized. This is listed in C99 Section J.5.11 as a "Common extension". The Summit C FAQ mentions it as well: http://c-faq.com/decl/decldef.html So "extern" is better, but apparently not required for any linkers we care about. Note that omitting "extern" _is_ illegal in C++, but fortunately we _really_ don't care about those linkers. :) But at least I'm not totally crazy. -Peff ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 7:34 ` Junio C Hamano 2007-12-08 7:47 ` Junio C Hamano @ 2007-12-08 7:55 ` Jeff King 2007-12-08 8:14 ` Junio C Hamano 1 sibling, 1 reply; 12+ messages in thread From: Jeff King @ 2007-12-08 7:55 UTC (permalink / raw) To: Junio C Hamano; +Cc: Johannes Schindelin, Thomas Harning, git On Fri, Dec 07, 2007 at 11:34:14PM -0800, Junio C Hamano wrote: > I like the general idea (and suspect we might want to make it default to > false to retain the original behaviour, but I'd refrain from suggesting > it, to keep the user experience stable during the upcoming -rc period). > > We'd need an update to git-status documentation to mention the variable. Patch is below; please squash it into the original. It seems kind of silly to manually write the "Configuration" section for git-status, though. It would be nice if our config.txt could be annotated to mention which commands use which config variables, and git-*.txt could automagically include the right sections. > > - wt_status_prepare(&s); > > - s.prefix = prefix; > > + wt_status_prepare(&s, prefix); > > I have been wondering ever since receiving this patch if this is a good > interface change. Was there a problem if instead: > > - The implementation of wt_status_prepare(&s) stays as before; > > - run_status(), after calling wt_status_prepare(&s), notices the > configuration variable, and sets s.prefix conditionally; That would work fine. My reasoning was: the point of wt_status_prepare is to initialize the wt_status object. I thought the "whether to use relative paths based on config" logic should be something that _every_ preparer uses. OTOH, when I wrote it, I never expected that anyone _but_ run_status would call it (I must confess to not really investigating why git-revert needed it; looks like it is to find a dirty index or working tree, which is a little silly, since as a side effect we will do a find on all untracked files). I am fine with either; your call. Documentation patch is below. --- diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt index b0cb6bc..645dc85 100644 --- a/Documentation/git-status.txt +++ b/Documentation/git-status.txt @@ -42,7 +42,8 @@ template comments, and all the output lines are prefixed with '#'. The paths mentioned in the output, unlike many other git commands, are made relative to the current directory, if you are working in a -subdirectory (this is on purpose, to help cutting and pasting). +subdirectory (this is on purpose, to help cutting and pasting). See +the status.relativePaths config option below. CONFIGURATION @@ -53,6 +54,10 @@ mean the same thing and the latter is kept for backward compatibility) and `color.status.<slot>` configuration variables to colorize its output. +If the config variable `status.relativePaths` is set to false, then all +paths shown are relative to the repository root, not to the current +directory. + See Also -------- gitlink:gitignore[5] ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] add status.relativePaths config variable 2007-12-08 7:55 ` Jeff King @ 2007-12-08 8:14 ` Junio C Hamano 0 siblings, 0 replies; 12+ messages in thread From: Junio C Hamano @ 2007-12-08 8:14 UTC (permalink / raw) To: Jeff King; +Cc: Johannes Schindelin, Thomas Harning, git Jeff King <peff@peff.net> writes: > On Fri, Dec 07, 2007 at 11:34:14PM -0800, Junio C Hamano wrote: > ... >> I have been wondering ever since receiving this patch if this is a good >> interface change. Was there a problem if instead: >> >> - The implementation of wt_status_prepare(&s) stays as before; >> >> - run_status(), after calling wt_status_prepare(&s), notices the >> configuration variable, and sets s.prefix conditionally; > > That would work fine. My reasoning was: the point of wt_status_prepare > is to initialize the wt_status object. Yes, just like diffopts and revs. They initialize the object to a plain vanilla defaults, and the caller uses other methods (either direct assignments to members or by calling helper functions such as diff_opt_parse() and setup_revisions()) to fill in specialized values. And s.prefix is very much special case. That's the reasoning behind my suggestion. > ..., which is a little silly, since as a side effect we will do a find > on all untracked files). Ah, that is probably the side effect of direct rewrite from shell script to C. We should drop that and replace with what Alex did recently to git-commit --no-edit codepath. > I am fine with either; your call. Documentation patch is below. Thanks. Will take it. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-12-08 8:46 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-12-07 16:57 [PATCH] quote_path: convert empty path to "./" Jeff King 2007-12-07 18:54 ` Johannes Schindelin 2007-12-07 19:05 ` Thomas Harning 2007-12-07 20:49 ` Jeff King 2007-12-07 21:26 ` [PATCH] add status.relativePaths config variable Jeff King 2007-12-08 7:34 ` Junio C Hamano 2007-12-08 7:47 ` Junio C Hamano 2007-12-08 8:02 ` Jeff King 2007-12-08 8:05 ` Junio C Hamano 2007-12-08 8:45 ` Jeff King 2007-12-08 7:55 ` Jeff King 2007-12-08 8:14 ` Junio C Hamano
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).