{"thread":{"id":"34196","subject":"[Request] Git reset should be able to ignore file permissions","startedAt":"2013-06-18T13:25:22Z","lastAt":"2013-06-20T13:28:54Z","messageCount":18,"participants":["Alexander Nestorov","Matthieu Moy","John Keeping","Hilco Wijbenga","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"221215","messageId":"CACuz9s31OUWNxTqCmj7ukAo7=TpXK7zBv5kTFZ5obpXKOju9ng@mail.gmail.com","threadId":"34196","inReplyTo":null,"subject":"[Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T13:25:22Z","receivedAt":"2013-06-18T13:25:22Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Recently I had to write some automation scripts and I found\nthat git reset --hard actually restores each file's permissions.\n\nThat is causing both the created and the last-modified dates\nof the file to get changed to the time of the git reset.\n\nThis behavior is easy to demonstrate:\n\necho \"test\" > myfile\nchmod 777 myfile\ngit add myfile && git commit -m \"Test\" && git push\nchmod 775 myfile\ngit reset --hard origin/master\n\nAfter the git reset --hard command, the entire file was\ncheckout-ed. Instead, git should be able to check if the\ncontent of the file changed and only if it did, check it out.\n\nI do realize that checking the content of each file in a big\nrepo could result in a slow operation, but there should be a\nswitch/argument/option to make git reset actually check the\ncontent of each file instead of blindly replacing it.\n\nAfter reading man a few times I didn't saw any option\nthat'd let me do this; the only solution I'm able to think about\nis actually restoring the permissions of each file to the ones\ngit thinks they should have before doing the git reset.\n\nMaybe I'm wrong and there is a way for doing what I want, if\nso, please correct me.\nBut if there isn't, should this be implemented? Are there any\nreasons for not doing it?\n\n\nThank you for your attention\nRegards\n\n--\nalexandernst\n"},{"id":"221216","messageId":"vpqsj0fr19j.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s31OUWNxTqCmj7ukAo7=TpXK7zBv5kTFZ5obpXKOju9ng@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-18T13:34:16Z","receivedAt":"2013-06-18T13:34:16Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Alexander Nestorov <alexandernst@gmail.com> writes:\n\n> echo \"test\" > myfile\n> chmod 777 myfile\n> git add myfile && git commit -m \"Test\" && git push\n> chmod 775 myfile\n> git reset --hard origin/master\n\nThis doesn't tell what the permissions are in origin/master.\n\nIf the last line was \"git reset --hard HEAD\", then it wouldn't touch\nmyfile (it's executable in the worktree and in HEAD, so Git doesn't need\nto change it). Neither the x bit, nor the ctime or mtime.\n\nIf you reset the file to a point where it was not executable, then Git\nchanges its executable bit, and I don't see why it would do otherwise:\nGit tracks the executable bit, so when you say \"reset the file to how it\nwas in this revision\", this includes the content and executability.\n\nReading your message, I don't understand why you need to be able to\nignore the x bit.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221218","messageId":"CACuz9s1KGKsL-pGftAtAWyX5gUA5c-PYyJUSstf+xw151rZLtA@mail.gmail.com","threadId":"34196","inReplyTo":"vpqsj0fr19j.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T13:48:45Z","receivedAt":"2013-06-18T13:48:45Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Git does preserve file permissions, that is, git is aware of the\npermissions you can set with chmod.\n\nI'm not trying to ignore the x bit, what I'm trying to do is make\n\"git reset\" checkout only the files that actually changed instead\nof checking out all the files with different permissions than the\nones git thinks they should have.\n\nSaid with other word: when you run \"git reset\", git does a \"status\"\nand checkouts all the files that showed up from the \"status\".\nThat's exactly what I'm trying to avoid, as \"status\" is aware of both\ncontent changes and permissions changes.\n"},{"id":"221221","messageId":"20130618140120.GD4676@serenity.lan","threadId":"34196","inReplyTo":"CACuz9s31OUWNxTqCmj7ukAo7=TpXK7zBv5kTFZ5obpXKOju9ng@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-06-18T14:01:20Z","receivedAt":"2013-06-18T14:01:20Z","isPatch":false,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Jun 18, 2013 at 03:25:22PM +0200, Alexander Nestorov wrote:\n> Recently I had to write some automation scripts and I found\n> that git reset --hard actually restores each file's permissions.\n> \n> That is causing both the created and the last-modified dates\n> of the file to get changed to the time of the git reset.\n> \n> This behavior is easy to demonstrate:\n> \n> echo \"test\" > myfile\n> chmod 777 myfile\n> git add myfile && git commit -m \"Test\" && git push\n> chmod 775 myfile\n> git reset --hard origin/master\n> \n> After the git reset --hard command, the entire file was\n> checkout-ed. Instead, git should be able to check if the\n> content of the file changed and only if it did, check it out.\n\nDoes \"git reset --keep\" behave in the same way?  I would expect it to\nleave permissions as they were.\n"},{"id":"221222","messageId":"CACuz9s0zRoqnZEzxSbcCe74n+TubGBwcMqbuU+PP1-t4TKXeZA@mail.gmail.com","threadId":"34196","inReplyTo":"20130618140120.GD4676@serenity.lan","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T14:05:47Z","receivedAt":"2013-06-18T14:05:47Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Git reset --keep is not an option as it will abort the operation if\nthere are local changes,\nwhich is exactly what I want to do: replace files with local changes\nbut leave file\npermissions as they are.\n"},{"id":"221223","messageId":"vpq7ghrqzrv.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s1KGKsL-pGftAtAWyX5gUA5c-PYyJUSstf+xw151rZLtA@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-18T14:06:28Z","receivedAt":"2013-06-18T14:06:28Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Alexander Nestorov <alexandernst@gmail.com> writes:\n\n> I'm not trying to ignore the x bit, what I'm trying to do is make\n> \"git reset\" checkout only the files that actually changed instead\n> of checking out all the files with different permissions than the\n> ones git thinks they should have.\n\nAh, OK, you want \"git reset --hard\" to just do a chmod, which would not\ntouch the file's mtime (but only the ctime).\n\nThen, it's even easier to demonstrate: just \"touch\" instead of chmod.\nIndeed:\n\n$ touch myfile; sleep 2                        \n$ strace -f git reset --hard 2>&1 | grep myfile\nlstat(\"myfile\", {st_mode=S_IFREG|0755, st_size=5, ...}) = 0\nlstat(\"myfile\", {st_mode=S_IFREG|0755, st_size=5, ...}) = 0\nunlink(\"myfile\")                        = 0\nopen(\"myfile\", O_WRONLY|O_CREAT|O_EXCL, 0777) = 4\n\n(sleep 2 is needed in the demonstration to avoid the \"racy git\"\nsafeties, but it's not really important)\n\nGit doesn't even try to read the file content: once it detected that the\nstat information changed, it rewrite the file without looking at its\ncontent. It's faster this way for files that actually changed.\n\n> Said with other word: when you run \"git reset\", git does a \"status\"\n> and checkouts all the files that showed up from the \"status\".\n\nNo, it's indeed the opposite: \"status\" re-checks the content of changed\nfiles, and update the stat-cache in the index accordingly if the content\nactually didn't change.\n\nRuning \"git status\" before \"git reset --hard\" should solve your problem.\nThe part of \"git status\" of interest is \"git update-index --refresh\":\n\n$ touch myfile; sleep 2                        \n$ git update-index --refresh\n$ strace -f git reset --hard 2>&1 | grep myfile\nlstat(\"myfile\", {st_mode=S_IFREG|0755, st_size=5, ...}) = 0\n$\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221224","messageId":"CACuz9s0=7z-M1-zgRNUs2hS-4LcuXrsWbqyDaMnuvFXRnP7E-Q@mail.gmail.com","threadId":"34196","inReplyTo":"vpq7ghrqzrv.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T14:22:52Z","receivedAt":"2013-06-18T14:22:52Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Indeed, \"git update-index --refresh\" before \"git reset\" did the trick :)\nAnyways, what about the proposal? Should it be implemented?\n\nThank you\n"},{"id":"221228","messageId":"vpqppvjpjz3.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s0=7z-M1-zgRNUs2hS-4LcuXrsWbqyDaMnuvFXRnP7E-Q@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-18T14:33:04Z","receivedAt":"2013-06-18T14:33:04Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"[ The rule here is to keep everyone Cced, not just git@vger ]\n\nAlexander Nestorov <alexandernst@gmail.com> writes:\n\n> Indeed, \"git update-index --refresh\" before \"git reset\" did the trick :)\n> Anyways, what about the proposal? Should it be implemented?\n\nI'd say the current behavior is OK by default (it's not so common to\nhave stat-only changes, and re-checking the content would slow down the\nother operations).\n\nWe could add a flag to \"git reset\" asking it to refresh the index before\ncontinuing, but that would essentially end-up doing \"git update-index\n--refresh; git reset\".\n\nIt would make more sense to me to add something about update-index in\nthe documentation of git reset. Patches welcome ;-).\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221231","messageId":"CACuz9s2DfN5O91ZF8QOnWuA0V3bGFuUG5RVmkmjeL7Jien+fYg@mail.gmail.com","threadId":"34196","inReplyTo":"vpqppvjpjz3.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T14:39:05Z","receivedAt":"2013-06-18T14:39:05Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Sorry for not keeping everyone Cced, I wasn't aware of the rules.\n\nYes, writing about that in the docs seems more reasonable than patching reset,\nas as you said, that'd just run update-index before the reset.\nLet me get at home and I'll try to push a change :)\n\nRegards\n"},{"id":"221244","messageId":"CACuz9s1H2Gi+B7=Fc3yJ+PC9oDueLQzXstSX0C9uAy3_MN4Kag@mail.gmail.com","threadId":"34196","inReplyTo":"CACuz9s2DfN5O91ZF8QOnWuA0V3bGFuUG5RVmkmjeL7Jien+fYg@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T15:51:36Z","receivedAt":"2013-06-18T15:51:36Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"I'm home, https://github.com/alexandernst/git/commit/61f0a7d558e3cbae308fabdff66bd87569d6aa18\nIs that good? Should I PR?\n"},{"id":"221246","messageId":"vpqy5a7mmsg.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s1H2Gi+B7=Fc3yJ+PC9oDueLQzXstSX0C9uAy3_MN4Kag@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-18T16:00:31Z","receivedAt":"2013-06-18T16:00:31Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Alexander Nestorov <alexandernst@gmail.com> writes:\n\n> I'm home, https://github.com/alexandernst/git/commit/61f0a7d558e3cbae308fabdff66bd87569d6aa18\n> Is that good?\n\nPlease, post your patches inline, it eases review. More generally, read\nDocumentation/SubmittingPatches.\n\n+Ignore file permissions::\n\nIt's not only about permissions, and it does not \"ignore\" them, it just\nnotices when there's actually no change although the mtime has changed.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221264","messageId":"CACuz9s2KEne5_PwHwmsd1X7iE=GB3pC=iUzxSo=t6TbF+ZjCxA@mail.gmail.com","threadId":"34196","inReplyTo":"vpqy5a7mmsg.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-18T17:03:18Z","receivedAt":"2013-06-18T17:03:18Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"How about that:\n\n+Reset only files who's content changed (instead of mtime modification)::\n++\n+------------\n+$ git update-index --refresh               <1>\n+$ git reset --hard                         <2>\n+------------\n++\n+<1> Make git realize which files actually changed instead of\n+checking out all files whether their content changed or only\n+their mtime changed.\n+<2> Now git reset --hard will checkout only the files that\n+actually changed.\n"},{"id":"221329","messageId":"vpqsj0emzdu.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s2KEne5_PwHwmsd1X7iE=GB3pC=iUzxSo=t6TbF+ZjCxA@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-19T05:40:45Z","receivedAt":"2013-06-19T05:40:45Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Alexander Nestorov <alexandernst@gmail.com> writes:\n\n> How about that:\n>\n> +Reset only files who's content changed (instead of mtime modification)::\n\nMuch better, yes. I'd say \"stat information\" instead of mtime (that's\nwhat used in the description of update-index --refresh, and is a bit\nmore accurate since Git also checks the inode number IIRC).\n\n> +------------\n> +$ git update-index --refresh               <1>\n> +$ git reset --hard                         <2>\n> +------------\n> ++\n> +<1> Make git realize which files actually changed instead of\n\ns/git/Git/ when talking about \"The Git system\" (as opposed to \"The git\ncommand\"). git-gui or other Git clients would also see the index change.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221357","messageId":"CACuz9s0jqe9zErBLZ5+kv2OCKW5fFHq0sifc2GS=n4jFpDiQZw@mail.gmail.com","threadId":"34196","inReplyTo":"vpqsj0emzdu.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-19T08:00:04Z","receivedAt":"2013-06-19T08:00:04Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"Ok, this is how it looks. If everything is ok, I'm sending it to the ML\n\n>From 262bdfb5cc84fec7c9b74dc92bb604f9d168ef9a Mon Sep 17 00:00:00 2001\nFrom: Alexander Nestorov <alexandernst@gmail.com>\nDate: Wed, 19 Jun 2013 09:55:42 +0200\nSubject: [PATCH] Add example for reseting based on content changes instead of\n stat changes\n\n---\n Documentation/git-reset.txt | 12 ++++++++++++\n 1 file changed, 12 insertions(+)\n\ndiff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt\nindex a404b47..da639e9 100644\n--- a/Documentation/git-reset.txt\n+++ b/Documentation/git-reset.txt\n@@ -289,6 +289,18 @@ $ git reset --keep start                    <3>\n <3> But you can use \"reset --keep\" to remove the unwanted commit after\n     you switched to \"branch2\".\n\n+Reset only files who's content changed (instead of stat information)::\n++\n+------------\n+$ git update-index --refresh               <1>\n+$ git reset --hard                         <2>\n+------------\n++\n+<1> Make Git realize which files actually changed instead of\n+checking out all files whether their content changed or only\n+their mtime changed.\n+<2> Now git reset --hard will checkout only the files that\n+actually changed.\n\n DISCUSSION\n ----------\n--\n1.8.1.msysgit.1\n"},{"id":"221376","messageId":"vpqfvwel4bi.fsf@anie.imag.fr","threadId":"34196","inReplyTo":"CACuz9s0jqe9zErBLZ5+kv2OCKW5fFHq0sifc2GS=n4jFpDiQZw@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-19T11:37:05Z","receivedAt":"2013-06-19T11:37:05Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Alexander Nestorov <alexandernst@gmail.com> writes:\n\n> Ok, this is how it looks. If everything is ok, I'm sending it to the ML\n\nPlease, read Documentation/SubmittingPatches (you lack a sign-off and if\nyou think the patch is ready, you should Cc Junio). Also, it's better to\nhave the commit headers directly as mail headers (git send-email is your\nfriend).\n\n> +Reset only files who's content changed (instead of stat information)::\n\nThat's still not 100% accurate. Actual mode changes would trigger a\nrewrite of the file. Perhaps stg like\n\nReset only files which actually changed (not those with only stat information change)::\n\n(Sorry for nitpicking so much)\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"221383","messageId":"CAE1pOi36RDWXa_ESvh83Rpvq1AO-=njAxC9swMBetJxC+6Fbog@mail.gmail.com","threadId":"34196","inReplyTo":"CACuz9s0jqe9zErBLZ5+kv2OCKW5fFHq0sifc2GS=n4jFpDiQZw@mail.gmail.com","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Hilco Wijbenga","fromEmail":"hilco.wijbenga@gmail.com","sentAt":"2013-06-19T16:40:55Z","receivedAt":"2013-06-19T16:40:55Z","isPatch":false,"sender":{"key":"hilco.wijbenga@gmail.com","avatar":null},"body":"On 19 June 2013 01:00, Alexander Nestorov <alexandernst@gmail.com> wrote:\n> Ok, this is how it looks. If everything is ok, I'm sending it to the ML\n>\n> From 262bdfb5cc84fec7c9b74dc92bb604f9d168ef9a Mon Sep 17 00:00:00 2001\n> From: Alexander Nestorov <alexandernst@gmail.com>\n> Date: Wed, 19 Jun 2013 09:55:42 +0200\n> Subject: [PATCH] Add example for reseting based on content changes instead of\n>  stat changes\n>\n> ---\n>  Documentation/git-reset.txt | 12 ++++++++++++\n>  1 file changed, 12 insertions(+)\n>\n> diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt\n> index a404b47..da639e9 100644\n> --- a/Documentation/git-reset.txt\n> +++ b/Documentation/git-reset.txt\n> @@ -289,6 +289,18 @@ $ git reset --keep start                    <3>\n>  <3> But you can use \"reset --keep\" to remove the unwanted commit after\n>      you switched to \"branch2\".\n>\n> +Reset only files who's content changed (instead of stat information)::\n\nYou should use \"whose\" here instead of \"who's\".\n\n> ++\n> +------------\n> +$ git update-index --refresh               <1>\n> +$ git reset --hard                         <2>\n> +------------\n> ++\n> +<1> Make Git realize which files actually changed instead of\n> +checking out all files whether their content changed or only\n> +their mtime changed.\n> +<2> Now git reset --hard will checkout only the files that\n> +actually changed.\n>\n>  DISCUSSION\n>  ----------\n> --\n> 1.8.1.msysgit.1\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"},{"id":"221394","messageId":"7vobb2ym99.fsf@alter.siamese.dyndns.org","threadId":"34196","inReplyTo":"vpqfvwel4bi.fsf@anie.imag.fr","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-19T18:43:30Z","receivedAt":"2013-06-19T18:43:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> Alexander Nestorov <alexandernst@gmail.com> writes:\n>\n>> Ok, this is how it looks. If everything is ok, I'm sending it to the ML\n>\n> Please, read Documentation/SubmittingPatches (you lack a sign-off and if\n> you think the patch is ready, you should Cc Junio). Also, it's better to\n> have the commit headers directly as mail headers (git send-email is your\n> friend).\n>\n>> +Reset only files who's content changed (instead of stat information)::\n>\n> That's still not 100% accurate. Actual mode changes would trigger a\n> rewrite of the file. Perhaps stg like\n>\n> Reset only files which actually changed (not those with only stat information change)::\n>\n> (Sorry for nitpicking so much)\n\nI do not think the above clarifies anything to be of much help.\n\nIf you _know_ what \"actually changed\" means, i.e. either contents or\nthe executable-ness changed, then \"(not those ...)\" does not help\nyou at all.\n\nIf you don't, then \"only stat information change\" will invite \"I did\nchmod -x and the file does not have any actual change.\" confusion.\n\nIf this addition is to help people who do not know what \"actually\nchanged\" means, that part needs to be clarified, no?\n"},{"id":"221483","messageId":"CACuz9s3pkY+VL6ZaU7ruo-8y_Htvzp890XQbxoVs15vCQqqUgw@mail.gmail.com","threadId":"34196","inReplyTo":"7vobb2ym99.fsf@alter.siamese.dyndns.org","subject":"Re: [Request] Git reset should be able to ignore file permissions","fromName":"Alexander Nestorov","fromEmail":"alexandernst@gmail.com","sentAt":"2013-06-20T13:28:54Z","receivedAt":"2013-06-20T13:28:54Z","isPatch":false,"sender":{"key":"alexandernst@gmail.com","avatar":null},"body":"@Matthieu\n Ok, I'm replacing with \"Reset only files which actually changed (not\nthose with only stat information change)\"\n\n@Junio\n I'm not sure what you're asking, sorry, I'm not able to understand\nyour question.\n"}]}