From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, matled@gmx.net
Subject: Re: [PATCH 3/8] Clean up work-tree handling
Date: Sat, 28 Jul 2007 01:21:57 +0100 (BST) [thread overview]
Message-ID: <Pine.LNX.4.64.0707280115370.14781@racer.site> (raw)
In-Reply-To: <7vk5sly3h9.fsf@assigned-by-dhcp.cox.net>
Hi,
On Fri, 27 Jul 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > Not only because of ohloh am I proud that in spite of removing
> > more lines than I added, there were more comments added than
> > removed...
>
> > diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
> > index 497903a..3f787a8 100644
> > --- a/builtin-rev-parse.c
> > +++ b/builtin-rev-parse.c
> > @@ -320,15 +320,9 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
> > continue;
> > }
> > if (!strcmp(arg, "--show-cdup")) {
> > - const char *pfx = prefix;
> > - while (pfx) {
> > - pfx = strchr(pfx, '/');
> > - if (pfx) {
> > - pfx++;
> > - printf("../");
> > - }
> > - }
> > - putchar('\n');
> > + const char *work_tree = get_git_work_tree();
> > + if (work_tree)
> > + printf("%s\n", work_tree);
> > continue;
>
> This changes semantics, I think.
>
> It used to be relative "up" path when no funny work-tree stuff
> is used, but get_git_work_tree() now seems to return absolute,
> hence this option as well. If it introduces regression to
> existing callers is up to what the caller does to the resulting
> path, though. If it only is used to prefix other things
> (i.e. path="$(git rev-parse --show-cdup)$1"), the caller would
> be safe, but if the caller counted number of ../ in the return
> value to see how deep it is, or if the caller expected to see
> empty string in order to see if the process is at the toplevel,
> this change would become a regression.
I am somewhat negative on keeping _that_ much backwards compatibility.
Scripts which depend on show-cdup being a relative path _will_ be broken
by work-tree. Is it worth it to detect those errors late?
> > @@ -62,15 +66,8 @@ static void setup_git_env(void)
> >
> > int is_bare_repository(void)
> > {
> > + /* if core.bare is not 'false', let's see if there is a work tree */
> > + return is_bare_repository_cfg && !get_git_work_tree();
> > }
>
> I thought about making core.bare a tertiary, true/false/depends,
> but I think this makes more sense.
Actually, you made me think again, and I am more along those lines now:
return is_bare_repository_cfg >= 0 ?
is_bare_repository_cfg : !get_git_work_tree();
and according patch to get_git_work_tree to return NULL if
is_bare_repository_cfg == 1.
Ciao,
Dscho
next prev parent reply other threads:[~2007-07-28 0:23 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-27 18:55 [PATCH 0/8 REVISION2] work-tree cleanups Johannes Schindelin
2007-07-27 18:56 ` [PATCH 1/8] Add is_absolute_path() and make_absolute_path() Johannes Schindelin
2007-07-27 20:51 ` Junio C Hamano
2007-07-28 1:03 ` Johannes Schindelin
2007-07-27 18:56 ` [PATCH 2/8] Add functions get_relative_cwd() and is_inside_dir() Johannes Schindelin
2007-07-27 20:51 ` Junio C Hamano
2007-07-28 1:03 ` Johannes Schindelin
2007-07-27 18:56 ` [PATCH 3/8] Clean up work-tree handling Johannes Schindelin
2007-07-27 20:51 ` Junio C Hamano
2007-07-28 0:21 ` Johannes Schindelin [this message]
2007-07-28 0:42 ` Junio C Hamano
2007-07-28 0:56 ` Johannes Schindelin
2007-07-28 5:18 ` Junio C Hamano
2007-07-28 9:01 ` Johannes Schindelin
2007-07-28 11:15 ` Junio C Hamano
2007-07-28 19:38 ` Johannes Schindelin
2007-07-29 15:53 ` Johannes Schindelin
2007-07-29 19:54 ` Junio C Hamano
2007-07-29 20:02 ` Johannes Schindelin
2007-07-27 18:57 ` [PATCH 4/8] Add set_git_dir() function Johannes Schindelin
2007-07-27 18:57 ` [PATCH 5/8] work-trees are allowed inside a git-dir Johannes Schindelin
2007-07-27 20:51 ` Junio C Hamano
2007-07-28 0:38 ` Johannes Schindelin
2007-07-28 0:48 ` Junio C Hamano
2007-07-28 1:01 ` Johannes Schindelin
2007-07-27 18:58 ` [PATCH 6/8] init: use get_git_work_tree() instead of rolling our own Johannes Schindelin
2007-07-27 18:58 ` [PATCH 7/8] Make t1501 a little saner, and fix it Johannes Schindelin
2007-07-27 18:59 ` [PATCH 8/8] Fix t1500 for sane work-tree behavior Johannes Schindelin
2007-07-27 20:51 ` Junio C Hamano
2007-07-28 0:46 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0707280115370.14781@racer.site \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=matled@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).