git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Daudt <me@ikke.info>
To: Charles Strahan <charles@cstrahan.com>
Cc: git@vger.kernel.org
Subject: Re: Change in .gitignore handling: intended or bug?
Date: Fri, 4 Mar 2016 06:51:17 +0100	[thread overview]
Message-ID: <20160304055117.GB26609@ikke.info> (raw)
In-Reply-To: <1457057516.1962831.539160698.3C8B30BC@webmail.messagingengine.com>

On Thu, Mar 03, 2016 at 09:11:56PM -0500, Charles Strahan wrote:
> Hello,
> 
> I've found a change in the way .gitignore works, and I'm not sure if
> it's a bug
> or intended.
> 
> Previously, one could use the following .gitignore:
> 
>     *
>     !/foo
>     !/foo/bar.txt
>     !/baz
>     !/baz/quux
>     !/baz/quux/**/*
> 
> And these files would be seen by git:
> 
>     foo/bar.txt
>     baz/quux/grault.txt
>     baz/quux/corge/wibble.txt
> 
> And these files would be ignored:
> 
>     foo/garply.txt
>     baz/waldo.txt
> 
> At some point (between git 2.6.0 and 2.7.0, I think), the behavior
> changed such
> that _none_ of the files above would be ignored. Previously, git would
> treat
> !/foo as an indication that it should not prune /foo, but that
> _wouldn't_ be
> sufficient to un-ignore the contents thereof. Now, it seems the new
> scheme
> treats !/foo as functionally equivalent to !/foo followed by !/foo/**/*
> in the
> old scheme.
> 
> I manage my home directory by making it a git repo, and using
> ~/.gitignore to
> selectively permit certain files or subdirectories to be seen by git.
> The recent
> change in behavior has resulted in sensitive directories like ~/.gpg
> being
> un-ignored. For reference, I've appended my .gitignore to the end of
> this email.
> 
> So, is this behavior intended, or is this a bug? If the former, is there
> an
> announcement explaining this change?
> 
> -Charles
> 
> [snip]
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Works as intended for me:

├── baz
│   ├── quux
│   │   ├── corge
│   │   │   └── wibble.txt
│   │   └── grault.txt
│   └── waldo.txt
└── foo
    ├── bar.txt
    └── garply.txt

$ git status -s -uall
?? baz/quux/corge/wibble.txt
?? baz/quux/grault.txt
?? foo/bar.txt

garply.txt and waldo.txt are ignore, but the rest is still tracked.

I'm on 2.7.2.

  parent reply	other threads:[~2016-03-04  5:51 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04  2:11 Change in .gitignore handling: intended or bug? Charles Strahan
2016-03-04  3:09 ` Duy Nguyen
2016-03-04  5:51 ` Kevin Daudt [this message]
2016-03-04  6:12   ` Charles Strahan
2016-03-04 11:56     ` Kevin Daudt
2016-03-04 12:36       ` Duy Nguyen
2016-03-04 17:28         ` Junio C Hamano
2016-03-04 19:12           ` Junio C Hamano
2016-03-05  0:43           ` Duy Nguyen
2016-03-05  0:50             ` Duy Nguyen
2016-03-05  1:00               ` Charles Strahan
2016-03-05  1:35                 ` Junio C Hamano
2016-03-07 21:11             ` Junio C Hamano
2016-03-08  6:14               ` Junio C Hamano
2016-03-08 10:19                 ` Duy Nguyen
2016-03-08 18:10                   ` Junio C Hamano
2016-03-09  0:18                     ` Duy Nguyen
2016-03-09  0:32                       ` Junio C Hamano
2016-03-09  0:45                         ` Junio C Hamano
2016-03-09 11:08                           ` [PATCH] dir.c: fix dir re-inclusion rules with "NODIR" and "MUSTBEDIR" Nguyễn Thái Ngọc Duy
2016-03-09 17:55                             ` Junio C Hamano
2016-03-10  0:39                               ` Duy Nguyen
2016-03-09  9:48                     ` Change in .gitignore handling: intended or bug? Duy Nguyen
2016-03-09 18:02                       ` Junio C Hamano
2016-03-10  0:26                         ` Duy Nguyen
2016-03-10  0:37                           ` Junio C Hamano
2016-03-10  0:59                             ` Junio C Hamano
2016-03-10 10:56                               ` Duy Nguyen

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=20160304055117.GB26609@ikke.info \
    --to=me@ikke.info \
    --cc=charles@cstrahan.com \
    --cc=git@vger.kernel.org \
    /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).