Re: [RFC] Build in clone

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

 



On Tue, 26 Feb 2008, Johan Herland wrote:

> Other than the failing tests, it seems to work fairly well. I've been
> playing around with it for a few minutes, and on a test repo I have with
> 1001 branches and 10000 tags, it cuts down the runtime of a local git-clone
> from 25 seconds to ~1.5 seconds. (simply by eliminating the overhead of
> invoking git-update-ref for every single ref) :)

Good to hear. A certain amount of the point is performance, and I've only 
got relatively simple repositories on Linux to test with, where everything 
is too fast to tell anyway.

> I've tried to test this by diffing a cloned repo against an equivalent
> clone done by the old script. Below I pasted in a few immediate fixes I
> found. With these fixes, the only remaining diff between the clones is
> that refs/remotes/origin/HEAD used to be a symbolic ref (with no reflog),
> but is now a "regular" ref (with reflog).

I think that's just a call to the wrong function (and a lack of very very 
explicit documentation).

> The fixes are, in order of importance:
> - Call git_config(git_default_config) in order to properly set up
>   user.name and user.email for reflogs (This BREAKS test #9 in
>   t1020-subdirectory.sh. Have yet to figure out why)

I should have read email last night; I could have identified a bunch of 
the odd errors for you, but you've figured most of them out by now.

I need to look into the config system further; things should be configured 
such that the local config is in the new directory and the global config 
is unchanged. If no environment variable is set and pwd is a certain way, 
git_config_set() will write to the wrong file.

> - Fix "clone from $repo" reflog messages (using strbufs; something tells
>   me more of this code would benefit from using strbufs)

Most likely. I think Kristian wrote most of this before strbuf existed or 
something of the sort.

> - Høgsberg's name should be in UTF-8 (not sure if this will survive this
>   mail)

It is for me; I bet it didn't survive the mail from me to you. (That is, 
your mailer got my UTF-8 message and converted it to Latin-1 on export, 
and so applying it gave a Latin-1 ø in your tree, which you changed to 
UTF-8, and then your mailer again thought your patch was changing 
one Latin-1 character to two, and sent the patch like that.)

> - The two whitespace errors you mentioned
> 
> I'm sorry that my patch below sucks from a style POV. Feel free to ignore.
> Will redo when it's not in the middle of the night.

I haven't gotten to the level of style in this code myself, so no worries 
there. :) And whitespace noise is welcome at this point, since I'm still 
incorporating changes and evaluating the resulting state, instead of 
evaluating the changes themselves.

	-Daniel
*This .sig left intentionally blank*

[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]

  Powered by Linux