From: Junio C Hamano <gitster@pobox.com>
To: "Robert P. J. Day" <rpjday@crashcourse.ca>
Cc: Jeff King <peff@peff.net>, Theodore Ts'o <tytso@mit.edu>,
Paul Smith <paul@mad-scientist.net>,
Git Mailing list <git@vger.kernel.org>
Subject: Re: "git rm" seems to do recursive removal even without "-r"
Date: Tue, 10 Oct 2017 17:58:04 +0900
Message-ID: <xmqqpo9vpeg3.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <alpine.LFD.2.21.1710100432220.16182@localhost.localdomain>
"Robert P. J. Day" <rpjday@crashcourse.ca> writes:
> underlying weirdness. but it still doesn't explain the different
> behaviour between:
>
> $ git rm -n 'Makefile*'
> $ git rm -n '*Makefile'
>
> in the linux kernel source tree, the first form matches only the
> single, top-level Makefile, while the second form gets *all* of them
> recursively, even though those globs should be equivalent in terms of
> matching all files named "Makefile".
>
> am i misunderstanding something?
We are matching what Git cares/knows about aka "the paths in the
index" to pathspec patterns.
What are these paths in the index? In Linux kernel sources, there
are quite a many but here are examples that are enough to explain
the above:
Makefile
COPYING
fs/Makefile
fs/ext4/Makefile
Which one of these four match patterh "Makefile*", which is "the
first letter is 'M', the second letter is 'a', ....,, the eighth
letter is 'e', and anything else can follow to the end"? Yes, only
the first one.
Which one of these four match pattern "*Makefile", then? "Anything
can appear as leading substring, but then 'M', 'a', 'k', ..., and
finally 'e' must appear at the end"?
Note that these "start from the paths in the index that match the
pathspec patterns" have nothing to do with "recursive". It happens
way before we decide to go recursive (or not).
We are not going down recursively from the paths in the index that
are matched by pathspec patterns with the above two "git rm"
requests (because there is no "-r" there), but even if we were,
because these three Makefile files are not directories, there is
nothing to remove recursively underneath them.
next prev parent reply index
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-07 18:39 Robert P. J. Day
2017-10-07 19:04 ` Todd Zullinger
2017-10-07 19:12 ` Robert P. J. Day
2017-10-07 19:29 ` Jeff King
2017-10-07 19:32 ` Robert P. J. Day
2017-10-07 19:38 ` Jeff King
2017-10-07 19:43 ` Robert P. J. Day
2017-10-07 21:05 ` Theodore Ts'o
2017-10-07 21:40 ` Robert P. J. Day
2017-10-07 21:44 ` Paul Smith
2017-10-07 21:55 ` Robert P. J. Day
2017-10-08 4:20 ` Junio C Hamano
2017-10-08 9:07 ` Robert P. J. Day
2017-10-08 11:37 ` Kevin Daudt
2017-10-08 11:56 ` Robert P. J. Day
2017-10-08 12:23 ` Martin Ågren
2017-10-08 12:39 ` René Scharfe
2017-10-08 12:45 ` Robert P. J. Day
2017-10-10 11:52 ` Heiko Voigt
2017-10-11 8:31 ` Robert P. J. Day
2017-10-08 14:32 ` Paul Smith
2017-10-08 18:40 ` Theodore Ts'o
2017-10-08 19:44 ` Robert P. J. Day
2017-10-08 20:42 ` Theodore Ts'o
2017-10-09 17:52 ` Jeff King
2017-10-10 8:36 ` Robert P. J. Day
2017-10-10 8:58 ` Junio C Hamano [this message]
2017-10-10 12:19 ` Paul Smith
2017-10-10 19:44 ` Robert P. J. Day
Reply instructions:
You may reply publically 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqpo9vpeg3.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=paul@mad-scientist.net \
--cc=peff@peff.net \
--cc=rpjday@crashcourse.ca \
--cc=tytso@mit.edu \
/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
git@vger.kernel.org mailing list mirror (one of many)
Archives are clonable:
git clone --mirror https://public-inbox.org/git
git clone --mirror http://ou63pmih66umazou.onion/git
git clone --mirror http://czquwvybam4bgbro.onion/git
git clone --mirror http://hjrcffqmbrq6wope.onion/git
Newsgroups are available over NNTP:
nntp://news.public-inbox.org/inbox.comp.version-control.git
nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
nntp://news.gmane.org/gmane.comp.version-control.git
note: .onion URLs require Tor: https://www.torproject.org/
or Tor2web: https://www.tor2web.org/
AGPL code for this site: git clone https://public-inbox.org/ public-inbox