git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Cc: git@vger.kernel.org, pawel.sikora@agmk.net, Jens.Lehmann@web.de
Subject: Re: [PATCH v2 0/9] About the trailing slashes
Date: Fri, 24 Jan 2014 11:22:09 -0800	[thread overview]
Message-ID: <xmqqk3dprxr2.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1390570836-20394-1-git-send-email-pclouds@gmail.com> ("Nguyễn	Thái Ngọc Duy"'s message of "Fri, 24 Jan 2014 20:40:27 +0700")

Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:

> While looking at this, I found a funny behavior of fill_directory.
>
>   $ git init
>   $ mkdir b
>   $ >b/c
>   $ >b/d
>   $ git status b
>   Untracked files:
>           b/
>   $ git status b/
>   Untracked files:
>           b/c b/d
>
> Notice how the trailing slash produces different untracked listing.
> This is because of common_prefix_len(). In the "b" case,
> common_prefix_len() returns empty prefix, so read_directory reads top
> directory, traverses through, reaches "b" and eventually calls
> treat_directory() on it, which results in "b/" in the output.
>
> In the "b/" case, common_prefix_len() found the prefix "b", so
> read_directory() starts at "b" instead of b's parent.
> treat_directory() is never called on "b" itself, which results in
> "b/c" and "b/d".

Hmm, this feels like a borderline case.

If the user asked "git status ?", or even "git status '?'", it seems
to me that the user wanted to get "git status" output but with a
scope limited to top-level entries with a single letter.  And the
unlimited output asks to consolidate output for directories that
have nothing interesting.  "git status b" and "git status '[b]'" are
asking similar thing, but not just limiting the scope to any one
letter but to 'b'.  So the output you showed above looks correct to
me.  On the other hand, the other request "git status b/" seems to
me that the user is very aware that 'b' is a directory and wants to
look inside, so again the output you showed looks correct to me.

How does "git status '[b]/'" behave?

  parent reply	other threads:[~2014-01-24 19:22 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-20 18:25 problematic git log submodule-dir/ Paweł Sikora
2014-01-22 20:35 ` Jens Lehmann
2014-01-22 23:56   ` Duy Nguyen
2014-01-23 13:22 ` [PATCH 1/2] tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting() Nguyễn Thái Ngọc Duy
2014-01-23 13:22   ` [PATCH 2/2] t4010: match_pathspec_depth() and trailing slash after submodule Nguyễn Thái Ngọc Duy
2014-01-23 21:09     ` Junio C Hamano
2014-01-23 21:25       ` Jens Lehmann
2014-01-23 21:38         ` Junio C Hamano
2014-01-24  5:48           ` Duy Nguyen
2014-01-24 13:40   ` [PATCH v2 0/9] About the trailing slashes Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 1/9] Convert some match_pathspec_depth() to ce_path_match() Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 2/9] Convert some match_pathspec_depth() to dir_path_match() Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 3/9] Rename match_pathspec_depth() to match_pathspec() Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 4/9] dir.c: prepare match_pathspec_item for taking more flags Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 5/9] match_pathspec: match pathspec "foo/" against directory "foo" Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 6/9] Pass directory indicator to match_pathspec_item() Nguyễn Thái Ngọc Duy
2014-01-24 21:22       ` Eric Sunshine
2014-01-25  4:24         ` Duy Nguyen
2014-01-24 13:40     ` [PATCH v2 7/9] clean: replace match_pathspec() with dir_path_match() Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 8/9] clean: use cache_name_is_other() Nguyễn Thái Ngọc Duy
2014-01-24 13:40     ` [PATCH v2 9/9] tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting() Nguyễn Thái Ngọc Duy
2014-01-24 19:22     ` Junio C Hamano [this message]
2014-01-25  1:14       ` [PATCH v2 0/9] About the trailing slashes Duy Nguyen
2014-01-27 22:47     ` Junio C Hamano

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=xmqqk3dprxr2.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=Jens.Lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=pawel.sikora@agmk.net \
    --cc=pclouds@gmail.com \
    /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).