Re: make update-index --chmod work with multiple files and --stdin
- From
Alex Riesen <raa.lkml@gmail.com>
- Date
- Apr 23, 2006, 07:08 UTC
- Message-ID
- <20060423070843.GB5802@steel.home>
- In-Reply-To
- <7v1wvpi010.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano, Sun, Apr 23, 2006 02:54:51 +0200:
Show 12 quoted lines
> Alex Riesen <raa.lkml@gmail.com> writes: > > > I had a project where lots of files were "accidentally" marked +x, and > > doing plain "git-update-index --chmod=-x" for each file was too slow. > > Besides, it's somewhat inconsistent, that --chmod does work only for > > one subsequent file. > > If you are doing that on the command line, people may want to > have a way to mean "from here on do not do chmod, just do normal > update-index and nothing else" by resetting the chmod_mode thing > back to zero. Nothing major, and we do not do that to allow_add > and allow_remove either, but just a thought.
I am unsure about this. I'm even attaching instead of inlining the patches, to make it clear how unsure I am :)
I have a feeling that it's more understandable to just use two separate commands. Besides, the reset switch makes it impossible to use pathname disambiguation ("--"). Unsure...
>From nobody Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net> Date: Sun Apr 23 08:38:04 2006 +0200 Subject: git-update-index --no-chmod
Message-ID: <7v1wvpi010.fsf@assigned-by-dhcp.cox.net>
Alex Riesen <raa.lkml@gmail.com> writes:
> I had a project where lots of files were "accidentally" marked +x, and > doing plain "git-update-index --chmod=-x" for each file was too slow. > Besides, it's somewhat inconsistent, that --chmod does work only for > one subsequent file.
If you are doing that on the command line, people may want to have a way to mean "from here on do not do chmod, just do normal update-index and nothing else" by resetting the chmod_mode thing back to zero. Nothing major, and we do not do that to allow_add and allow_remove either, but just a thought.
---
update-index.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
2972ef33fa4b04f07d4f4dbb9e13d5b9b2d593b4
diff --git a/update-index.c b/update-index.c index a8582ea..1ed36fa 100644 --- a/update-index.c +++ b/update-index.c @@ -551,6 +551,10 @@ int main(int argc, const char **argv) set_executable_bit = path[8]; continue; } + if (!strcmp(path, "--no-chmod")) { + set_executable_bit = 0; + continue; + } if (!strcmp(path, "--assume-unchanged")) { mark_valid_only = MARK_VALID; continue;
--
1.3.0.gc2941
>From nobody Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Sun Apr 23 08:43:42 2006 +0200
Subject: git-update-index: add --no-add and --no-remove
Message-ID: <7v1wvpi010.fsf@assigned-by-dhcp.cox.net>
Alex Riesen <raa.lkml@gmail.com> writes:
> I had a project where lots of files were "accidentally" marked +x, and
> doing plain "git-update-index --chmod=-x" for each file was too slow.
> Besides, it's somewhat inconsistent, that --chmod does work only for
> one subsequent file.
If you are doing that on the command line, people may want to
have a way to mean "from here on do not do chmod, just do normal
update-index and nothing else" by resetting the chmod_mode thing
back to zero. Nothing major, and we do not do that to allow_add
and allow_remove either, but just a thought.
---
update-index.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
89bceee48996f366a779b0c95ba230ec24fea340
diff --git a/update-index.c b/update-index.c
index 1ed36fa..cbee859 100644
--- a/update-index.c
+++ b/update-index.c
@@ -509,6 +509,10 @@ int main(int argc, const char **argv)
allow_add = 1;
continue;
}
+ if (!strcmp(path, "--no-add")) {
+ allow_add = 0;
+ continue;
+ }
if (!strcmp(path, "--replace")) {
allow_replace = 1;
continue;
@@ -517,6 +521,10 @@ int main(int argc, const char **argv)
allow_remove = 1;
continue;
}
+ if (!strcmp(path, "--no-remove")) {
+ allow_remove = 0;
+ continue;
+ }
if (!strcmp(path, "--unmerged")) {
allow_unmerged = 1;
continue;
--
1.3.0.gc2941