some of this duplicates thoughts from other messages in this thread. apologies for the duplication, but I want to be clear the response to Junio's concerns here as well On Sun, 16 Sep 2007, Junio C Hamano wrote:as I understand it, at this point you already choose between three options. 1. write to a file (and set the write bit if needed) 2. write to stdout 3. write to a pager program I am suggesting adding 4. write to a .gitattributes defined program and pass it some parameters. (and only if the .gitattributes tell you to) this should be a very small change to the codepath or am I missing something major here? if this program can get the contents of the permission file out of the index, then the requirement I listed before to make sure the permission file gets written before anything else goes away, and the only requirement left is the ability to specify a different write method I had not thought of this condition. however, I think this may be easier then you are thinking we have two conditions. 1. the permission file hasn't changed. Solution: do nothing 2. the permission file has changed Solution: set all the permissions to match the new file this could be done by useing .gitattributes to specify a different program for checking out the permission file, and that program goes through the file and sets the permssions on everything. yes this is a bit inefficiant compared to diffing the two permission files and only touching the files that have changed, but is the efficiancy at this point that critical? if so then instead of feeding the program the contents of the new file you could feed it the diff between the old and the new file. in theory you could do this for any file, and it would be a win for some files (a large file that has a few changes to it would possibly be more efficiant to modify in place then to re-write), but I'm not sure the results would be worth the complications. if .gitattributes gains the ability to specify the program to be used to write the file, it could also gain the ability to specify feeding that file the diff instead of the full contents. the one drawback to just setting all the permissions is that this will overrule any local changes to files that weren't otherwise modified. how big of a problem is this? nobody is suggesting anything that wouldn't be at least conditional based on some config variable. this is an area I wasn't aware of, but it doesn't seem that difficult to do. the issue (as I address above) is if this needs to be done as a diff or if it can be done simply by setting all the permissions according to the new file. this is saying you want a wrapper around git instead of a hook in git. no matter how small the change? (see the above comments) If so this converstion isn't worth continuing, if you are just concerned about maintainability and are willing to consider small changes that won't cause big maintinance problems then we can continue to discuss if the changes I am suggesting are small enough. the need to be able to close the vunerability window is a showstopper to many uses. you don't always have a makefile. if other tools that you use make modifications to the files in the locations where they reside, having to pull those changes back before you can do a checking is a complication as well but you are not willing to allow the hook to be created, you are saying that there would need to be an external wrapper instead. at this point it appears that having a hook to be able to specify external programs at a point where you are already deciding between different options would be sufficiant. this is why I was asking about this approach. do changes like this seem small enough to be worth the effort of coding and submitting? David Lang - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Linus Torvalds | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Tony Lindgren | [PATCH 37/90] ARM: OMAP: MPUIO wake updates |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Miklos Szeredi | -rt doesn't compile for UML |
git: | |
| Florian Weimer | Re: Handling large files with GIT |
| Dana How | [PATCH] Prevent megablobs from gunking up git packs |
| Denis Bueno | Recovering from repository corruption |
| Peter Stahlir | Git as a filesystem |
| Richard Stallman | Real men don't attack straw men |
| Brian A. Seklecki | sshd_config(5) PermitRootLogin yes |
| Theo de Raadt | Re: dmesg IBM x3650 OpenBSD 4.3 |
| Stuart Henderson | Re: Actual BIND error - Patching OpenBSD 4.3 named ? |
| Auke Kok | [PATCH 5/6] e1000: Secondary unicast address support |
| Jon Nelson | tg3: strange errors and non-working-ness |
| Indan Zupancic | Re: Realtek 8111C transmit timed out |
| Brandeburg, Jesse | RE: 2.6.24 BUG: soft lockup - CPU#X |
| usb mic not detected | 3 hours ago | Applications and Utilities |
| Problem in Inserting a module | 4 hours ago | Linux kernel |
| Treason Uncloaked | 10 hours ago | Linux kernel |
| Shared swap partition | 21 hours ago | Linux general |
| high memory | 2 days ago | Linux kernel |
| semaphore access speed | 2 days ago | Applications and Utilities |
| the kernel how to power off the machine | 2 days ago | Linux kernel |
| Easter Eggs in windows XP | 2 days ago | Windows |
| Root password | 3 days ago | Linux general |
| Where/when DNOTIFY is used? | 3 days ago | Linux kernel |
