Re: metastore

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Daniel Barkalow <barkalow@...>
Cc: Junio C Hamano <gitster@...>, Johannes Schindelin <Johannes.Schindelin@...>, martin f krafft <madduck@...>, <git@...>, Thomas Harning Jr. <harningt@...>, Francis Moreau <francis.moro@...>, Nicolas Vilz <niv@...>, David <david@...>
Subject: Re: metastore
Date: Sunday, September 16, 2007 - 5:12 pm

On Sun, 16 Sep 2007, Daniel Barkalow wrote:


my initial thoughts were to have git do all it's normal work and hook into 
git at the point where it's writing the file out (where today it chooses 
between writing the data to a file on disk, pipeing to stdout, or pipeing 
to a pager) by adding the option to pipe into a different program that 
would deal with the permission stuff. this program would only have to 
write the file and set the permissions, it wouldn't have to know anything 
about git other then where to find the permissions it needs to know.

it sounds like you are suggesting that the hook be much earlier in the 
process, and instead of one copy of git running and calling many copies of 
the writing program, you would have one copy of the writing program that 
would call many copies of git.

I'll admit that my initial reaction is that it's probably a lot more 
expensive to do all the calls into git. git just has a lot more complex 
things to do.


if this functionality does shift to earlier in the process, how much of 
the git logic needs to be duplicated in this program?

if this program needs to do the merge, won't it have to duplicate the 
merge logic, including the .gitattributes checking for custom merge calls?


I have been thinking primarily in terms of doing a complete checkout, 
overwriting all files, and secondarily how do do a checkout of just a few 
files, but again where all files selected overwrite the existing files.

I wasn't thinking of the fact that git optimizes the checkout and avoids 
writing a file that didn't change.

this changes things slightly

prior to this I was thinking that the permission file needed to be handled 
differently becouse writing it out needed to avoid doing any circular 
refrences where you would need to check the contents of it to write it 
out.

it now appears as if what really needs to happen is that if the permission 
file changes a different program needs to be called when it's written out 
then when the other files are written out. by itself this isn't hard as 
.gitattributes can have a special entry for this filename and that entry 
can specify a different program, and that program fixes all the 
permissions (and/or detects that they can't be fixed due to 
user/filesystem limits, records the error, checks if the repository is set 
appropriately, and screams to the user if it isn't)

it would be a nice optimization to this permission checkout for it to 
compare the old and the new permissions so that it only tries to change 
the permissions where it needs to, but is that really nessasary? the 
program can look at the permissions of the existing files to see what they 
are and decide if it needs to change them (this would tromp on local 
changes that aren't checked in. how big of a problem is this?) my initial 
reaction is that having to know the two commits and do the comparison 
between them is adding a lot of logic and git interaction that I'd rather 
avoid if I could.

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
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Track /etc directory using Git, Francis Moreau, (Thu Sep 13, 8:11 am)
Re: Track /etc directory using Git, martin f krafft, (Thu Sep 13, 8:31 am)
Re: Track /etc directory using Git, Francis Moreau, (Fri Sep 14, 4:08 am)
Re: Track /etc directory using Git, martin f krafft, (Fri Sep 14, 5:15 am)
Re: Track /etc directory using Git, Thomas Harning Jr., (Fri Sep 14, 1:31 pm)
metastore (was: Track /etc directory using Git), martin f krafft, (Sat Sep 15, 9:26 am)
Re: metastore (was: Track /etc directory using Git), Johannes Schindelin, (Sat Sep 15, 10:10 am)
Re: metastore (was: Track /etc directory using Git), martin f krafft, (Sat Sep 15, 10:54 am)
Re: metastore (was: Track /etc directory using Git), Daniel Barkalow, (Sat Sep 15, 3:56 pm)
Re: metastore (was: Track /etc directory using Git), martin f krafft, (Sun Sep 16, 2:08 am)
Re: metastore (was: Track /etc directory using Git), martin f krafft, (Tue Oct 2, 3:53 pm)
Re: metastore (was: Track /etc directory using Git), Daniel Barkalow, (Tue Oct 2, 5:02 pm)
Re: metastore, David Kastrup, (Tue Oct 2, 4:04 pm)
Re: metastore, David , (Tue Oct 2, 5:15 pm)
Re: metastore, Julian Phillips, (Tue Oct 2, 7:32 pm)
Re: metastore, , (Tue Oct 2, 8:52 pm)
Re: metastore, Johannes Schindelin, (Tue Oct 2, 8:52 pm)
Re: metastore, martin f krafft, (Tue Oct 2, 5:44 pm)
Re: metastore, , (Tue Oct 2, 4:18 pm)
Re: metastore, martin f krafft, (Tue Oct 2, 4:23 pm)
Re: metastore, , (Tue Oct 2, 4:29 pm)
Re: metastore, martin f krafft, (Tue Oct 2, 4:39 pm)
Re: metastore, , (Tue Oct 2, 4:54 pm)
Re: metastore, martin f krafft, (Tue Oct 2, 5:42 pm)
Re: metastore (was: Track /etc directory using Git), Johannes Schindelin, (Sat Sep 15, 6:14 pm)
Re: metastore (was: Track /etc directory using Git), martin f krafft, (Sun Sep 16, 2:14 am)
Re: metastore (was: Track /etc directory using Git), Jan Hudec, (Sun Sep 16, 11:51 am)
Re: metastore (was: Track /etc directory using Git), martin f krafft, (Mon Sep 17, 9:31 am)
Re: metastore (was: Track /etc directory using Git), Jan Hudec, (Sun Sep 16, 11:59 am)
Re: metastore, Junio C Hamano, (Sun Sep 16, 4:06 am)
Re: metastore, , (Sun Sep 16, 5:45 pm)
Re: metastore, Junio C Hamano, (Sun Sep 16, 6:11 pm)
Re: metastore, , (Sun Sep 16, 6:52 pm)
Re: metastore, Junio C Hamano, (Sun Sep 16, 8:58 pm)
Re: metastore, , (Sun Sep 16, 10:31 pm)
Re: metastore, Junio C Hamano, (Mon Sep 17, 12:23 am)
Re: metastore, Daniel Barkalow, (Mon Sep 17, 1:42 pm)
Re: metastore, Junio C Hamano, (Mon Sep 17, 3:19 pm)
Re: metastore, , (Mon Sep 17, 12:35 am)
Re: metastore, Junio C Hamano, (Mon Sep 17, 2:06 am)
Re: metastore, Daniel Barkalow, (Sun Sep 16, 11:51 am)
Re: metastore, , (Sun Sep 16, 5:12 pm)
Re: metastore, Daniel Barkalow, (Sun Sep 16, 6:02 pm)
Re: metastore, , (Sun Sep 16, 6:37 pm)
Re: metastore, martin f krafft, (Mon Sep 17, 9:30 am)
Re: metastore, , (Mon Sep 17, 1:17 pm)
Re: metastore, Josh England, (Mon Sep 17, 3:46 pm)
Re: metastore, Junio C Hamano, (Sun Sep 16, 5:28 pm)
Re: metastore, , (Sun Sep 16, 5:53 pm)
Re: metastore, Daniel Barkalow, (Sun Sep 16, 5:45 pm)
Re: metastore, David Kastrup, (Sun Sep 16, 4:30 am)
Re: metastore, , (Sun Sep 16, 4:19 pm)
Re: metastore (was: Track /etc directory using Git), Johannes Schindelin, (Sat Sep 15, 10:48 pm)
Re: metastore (was: Track /etc directory using Git), Grzegorz Kulewski, (Sat Sep 15, 12:22 pm)
Re: metastore, Randal L. Schwartz, (Sat Sep 15, 7:33 pm)
Re: metastore, Francis Moreau, (Mon Sep 17, 9:04 am)
Re: metastore, Randal L. Schwartz, (Mon Sep 17, 11:32 am)
Re: metastore, , (Sat Sep 15, 8:37 pm)
Re: metastore, Randal L. Schwartz, (Sat Sep 15, 9:10 pm)
Re: metastore, , (Sat Sep 15, 9:49 pm)
Re: metastore (was: Track /etc directory using Git), Johannes Schindelin, (Sat Sep 15, 1:43 pm)
Re: metastore, David Kastrup, (Sat Sep 15, 10:16 am)
Re: Track /etc directory using Git, Nicolas Vilz, (Fri Sep 14, 5:26 pm)
Re: Track /etc directory using Git, Pierre Habouzit, (Sat Sep 15, 10:29 am)
Re: Track /etc directory using Git, martin f krafft, (Sat Sep 15, 11:24 am)
Re: Track /etc directory using Git, Pierre Habouzit, (Sat Sep 15, 11:27 am)
Re: Track /etc directory using Git, martin f krafft, (Sat Sep 15, 11:42 am)
Re: Track /etc directory using Git, Miklos Vajna, (Thu Sep 13, 8:20 am)
Re: Track /etc directory using Git, Francis Moreau, (Fri Sep 14, 4:20 am)
Re: Track /etc directory using Git, martin f krafft, (Sat Sep 15, 12:32 pm)
Re: Track /etc directory using Git, David Kastrup, (Sat Sep 15, 12:57 pm)