Subject: Re: fatal: Unable to mark file .ruby-version

From: Arup Rakshit <[email-masked]>
Date: Mon, 16 Mar 2015 05:29:12 +0000 (UTC)

On Sunday, 15 March 2015 11:15 PM, Kevin D <[email-masked]> wrote:
On Sun, Mar 15, 2015 at 05:58:19PM +0100, [email-masked] wrote:
> On 03/15, Arup Rakshit wrote:
> > On Sunday, March 15, 2015 01:30:04 PM you wrote:
> > > 
> > > With --assume-unchanged you're promising git that you will not change
> > > a file that is already in the repository.  Git doesn't check those
> > > files for changes anymore, which can improve performance.
> > > 
> > 
> > I didn't understand your point. Could you please elaborate more on it ?
> 
> --assume-unchanged only works on files that you added on the
> repository, not on untracked files.  Because you don't seem to want
> these files in the repository, update-index --assume-unchanged will
> not work for you.
> 

And to elaborate what on what t.gummerer meant earlier: git update-index
--assume-unchanged is often abused to ignore already tracked files,
thinking that they can change the file while git happily ignores it.

--assume-unchanged was neaver built for this purpose, it's built for
large code bases where parts of the code base never changes, and git
checking this part would only slow it down. So that's why it's called a
promise to git that the file never changes, because git doesn't check
the status of the file everytime you run git status.

But because the file is still tracked, any commit that changes the file
causes git to still update that file, but git will then protest, because
it found it the file actually changed in the mean time, and you broke
that promise.

But also already said, this only applies to tracked files, so not to files
that aren't being tracked in the first place.

Kevin

Thanks both of you. As per your suggestions I resolved it. I found a good link on this topic too 
https://help.github.com/articles/ignoring-files/.

Regards,
Arup Rakshit