git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's cooking in git.git (Apr 2011, #04; Tue, 12)

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Apr 15, 2011, 08:31 UTC
Message-ID
<4DA80253.6010204@alum.mit.edu>
In-Reply-To
<BANLkTimeiH_ohJ6yGTU0Ei3t2xvUz0zCUA@mail.gmail.com>
On 04/15/2011 08:24 AM, Piotr Krukowiecki wrote:
Show 26 quoted lines
> On Thu, Apr 14, 2011 at 5:21 PM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
>> On 04/14/2011 03:38 PM, Piotr Krukowiecki wrote:
>>> On Wed, Apr 13, 2011 at 12:43 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>>> * mh/git-svn-automkdirs (2011-04-01) 1 commit
>>>>  (merged to 'next' on 2011-04-03 at 7fa4978)
>>>>  + git-svn: add an option to skip the creation of empty directories
>>>>
>>>> Should be safe, but I'd like an Ack from git-svn folks.
>>>
>>> I wanted to test performance of this change - what's the best way to do it?
>>>
>>> I tried some ideas, but rebase was too fast for performance measurements.
>>> I did not have new commits, but just some old, already in trunk changes, which
>>> I tried to rebase - probably it was just fast forward?
>>
>> The unhandled.log.gz file for trunk of our main project is 14 Mb and
>> uncompresses to 233 Mb.  About 90% of it consists of svn:mergeinfo
>> properties for file that were copied or renamed within the repository;
>> most of the rest is other random SVN file properties.
>>
>> With such a huge unhandled.log file, "git svn mkdirs" took about 10s for
>> me.  I believe that "git svn rebase" should take at least as long, even
>> if it is a fast-forward.
> 
> That might be the reason - my unhandled.log is 17MB (unpacked) and mkdirs
> takes 0.5s

Yes, it is also my assumption that parsing so much text in Perl is what causes the slowdown. But as long as git-svn insists on plonking so much information in unhandled.log but then handling it anyway, it seems like a good policy to prevent it from reading this file any more than necessary. And for me, the creation of empty directories is not worth 10s. (Even your 0.5s is pretty slow by git standards :-) ).

An alternative might be to move the emptydir information from unhandled.log to a separate file. The "empty_dir" lines in my unhandled log are only about 0.1% of the file contents, and should be parseable in a negligible amount of time. But moving the data would presumably have implications for backwards compatibility.

[Are there any design documents for git-svn? I have had a hard time deciphering the code and understanding what data it stores and where.]

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Piotr KrukowieckiNext: Jakub Narebski
Message 6 of 8 in “What's cooking in git.git (Apr 2011, #04; Tue, 12)”
  1. Junio C HamanoApr 12, 2011
  2. Piotr KrukowieckiApr 14, 2011
  3. Piotr KrukowieckiApr 14, 2011
  4. Michael HaggertyApr 14, 2011
  5. Piotr KrukowieckiApr 15, 2011
  6. Michael HaggertyApr 15, 2011
  7. Jakub NarebskiApr 14, 2011
  8. Junio C HamanoApr 14, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.