Re: make update-index --chmod work with multiple files and --stdin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano, Sun, Apr 23, 2006 02:54:51 +0200:
> Alex Riesen <raa.lkml@xxxxxxxxx> 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@xxxxxxx>
Date: Sun Apr 23 08:38:04 2006 +0200
Subject: git-update-index --no-chmod

Message-ID: <7v1wvpi010.fsf@xxxxxxxxxxxxxxxxxxxxxxxx>

Alex Riesen <raa.lkml@xxxxxxxxx> 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@xxxxxxx>
Date: Sun Apr 23 08:43:42 2006 +0200
Subject: git-update-index: add --no-add and --no-remove

Message-ID: <7v1wvpi010.fsf@xxxxxxxxxxxxxxxxxxxxxxxx>

Alex Riesen <raa.lkml@xxxxxxxxx> 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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]