From: Philip Oakley Date: Fri, 05 Dec 2014 21:52:36 GMT Subject: Re: bug report on update-index --assume-unchanged Message-ID: In-Reply-To: From: "Junio C Hamano" > "Philip Oakley" writes: > >> The problem here is that there is no guidance on what those actions >> are >> that may make git 'notice'.... > > I think the guidance the users need is the one j6t has given already > in the upthread: "If you are promising Git you are not going to > touch a path, do not touch it. Bad things may happen." > > There is no need to say "if you touched this way or that way, then > you might get lucky." because the "lucky" part is not designed. As > we find more codepaths that can rely on the promise by the user, we > may decide to take advantage of that promise even further and the > "lucky/unlucky" equation _will_ change when that happens. > However the man page's statement 'When the "assume unchanged" bit is on, Git stops checking the working tree files for possible modifications, so you need to manually unset the bit to tell Git when you change the working tree file.' can easily be understood the way Sergio has described. Git stops checking so it won't notice any changes, which is a contract it doesn't keep. Perhaps the man page itself needs rewording to be more firm that the user should NOT change the file. The contract is with the user not to change, rather than a contract by Git not to look. Even with that man page change, it would not solve many of the user X-Y problems where what they want is an "--ignore-this" flag for a file which does give that alternate contract that 'git won't look until the flag has been cleared. -- Philip