{"thread":{"id":"38660","subject":"git probably bug","startedAt":"2015-02-26T19:39:44Z","lastAt":"2015-02-26T21:36:11Z","messageCount":2,"participants":["Виталий Бормотов","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"256700","messageId":"1424979584.784776482@f205.i.mail.ru","threadId":"38660","inReplyTo":null,"subject":"git probably bug","fromName":"Виталий Бормотов","fromEmail":"bormvit@mail.ru","sentAt":"2015-02-26T19:39:44Z","receivedAt":"2015-02-26T19:39:44Z","isPatch":false,"sender":{"key":"bormvit@mail.ru","avatar":null},"body":"\nHello. Thanks for the git, it is powerful, fast and nice to use.\nI've probably found a bug. When checking out into some different state, if there is no permissions to unlink files (if some files in the current state doesn't exist in the new) warnings are outputing, but then git says that checking out is successful, shows that we are in the new state and the non-unlinked files are marked as untracked. In my case. there was whole directories only, i don't know about this error when we cannot unlink different files or when the denied operation is not file removing (but it seems like the error is about unlinking only).\n\nMy git version is 2.1.0.\n\nI've found your email at  https://github.com/git/git/blob/master/README#L45  and don't know about any other bugtrackers.\n\nBest regards,\nVitaly Bormotov aka Quilfe.\n"},{"id":"256714","messageId":"xmqqegpcl5is.fsf@gitster.dls.corp.google.com","threadId":"38660","inReplyTo":"1424979584.784776482@f205.i.mail.ru","subject":"Re: git probably bug","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-26T21:36:11Z","receivedAt":"2015-02-26T21:36:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Виталий Бормотов  <bormvit@mail.ru> writes:\n\n> When checking out into some different\n> state, if there is no permissions to unlink files (if some files in\n> the current state doesn't exist in the new) warnings are outputing,\n> but then git says that checking out is successful, shows that we are\n> in the new state and the non-unlinked files are marked as\n> untracked.\n\nThis is done by reasonably old part of the codebase, and I think it\nis exactly working as designed.  Unlinking of an existing path in\nthe filesystem is done for one of the two reasons:\n\n - The old tree has the path, the new tree does not.\n\n - The old tree has the path, the new tree has it but with a\n   different content.\n\nIn both cases, we first attempt to unlink (and warn if we cannot)\nand then attempt to create the path with the new contents in the\nlatter case (and die if we cannot).\n\nThe checkout itself succeeds, because having untracked cruft in your\nworking tree is not an error, but warnings are given to let you know\nthat you may want to remove them after fixing the screwy permission\nproblem yourself.\n"}]}