git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Bug when stashing previously-ignored file plus associated .gitignore change

From
Kevin Daudt <me@ikke.info>
Date
Aug 14, 2017, 04:47 UTC
Message-ID
<20170814044756.GA8587@alpha.vpn.ikke.info>
In-Reply-To
<CAPuLQgNq_7Kdeio-59cbDjZ5mWC1VRd_1_KK33Gbka9KJ13vfQ@mail.gmail.com>
On Fri, Aug 11, 2017 at 04:55:38PM +0100, Sam Partington wrote:
Show 62 quoted lines
> Hi there,
> 
> I'm running git 2.7.4 on Ubuntu 16.04.  I've found a couple of
> problems when "un-ignoring" files in tandem with git stash.
> 
> Here's how to reproduce:
> 
> Say you have a project using git, with a .gitignore file which
> contains the following line:
> 
> bin/*
> 
> You can then see the problems by doing this:
> 
> $ touch bin/mynewfile # this file will be ignored at this point > 
> and then updating .gitignore to look like this (adding that second line):
> 
> bin/*
> !bin/mynewfile
> 
> So far, so good; the new file is no longer ignored.
> 
> But now, try stashing the changes and including untracked files in the stash:
> 
> $ git stash save -u
> 
> Here's the first problem, bin/mynewfile is still there:
> 
> $ ls bin/mynewfile
> bin/mynewfile
> 
> But you'd expect it to not be there and be in the stash, I think.
> This is what would normally happen with the untracked-files option for
> git stash.
> 
> This leads to the second problem - you can't now pop the stash:
> 
> $ git stash pop
> bin/mynewfile already exists, no checkout
> Could not restore untracked files from stash
> 
> If you want to apply the stash, you have to remove the file:
> 
> $ rm bin/mynewfile
> $ git stash pop # this works, and re-creates bin/mynewfile
> 
> This is quite an unusual edge case, but I have hit it two or three
> times now and so thought it worth reporting, but I'll understand if
> it's deemed not worth fixing!
> 
> Do let me know if you need any more information from me here.
> 
> Thanks
> Sam
> 
> PS Sorry for the lack of formatting - I'm sending this as plain text
> as my original HTML emails was rejected as possible spam by your
> mailserver.
> 
> Sam Partington
> Senior Developer
> 
Hello Sam,

Is it the case that you did not commit the addition of '!bin/mynewfile' yet? I suspect that by running git stash save -u, you also are stashing this addition to the .gitigore file. Can you confirm this?

Kevin
Previous: Junio C HamanoNext: Sam Partington
Message 4 of 5 in “Bug when stashing previously-ignored file plus associated .gitignore change”
  1. Sam PartingtonAug 11, 2017
  2. stash: clean untracked files before resetNicolas Morey-Chaisemartin, Aug 11, 2017
  3. Junio C HamanoAug 11, 2017
  4. Kevin DaudtAug 14, 2017
  5. Sam PartingtonAug 14, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.