Ticket Change Details
Not logged in
Overview

Artifact ID: 10ee5b166d5abed91c85f43dc79dd6e692d9152d
Ticket: 6c5471445173a17fffa6aaf867f2f7d3da8f8151
fossil clone is slow
User & Date: anonymous 2011-05-10 12:42:40
Changes

  1. Appended to comment:
    
    
    <hr /><i>anonymous added on 2011-05-10 12:42:40 UTC:</i><br />
    The DragonFly BSD project maintains a git mirror of pkgsrc at <tt>git://git.dragonflybsd.org/pkgsrcv2.git</tt>
    
    Here are some git clone times for comparison.  First from the network (slow connection 389 KB/s) and then from local.
    
    <pre>
    $ cd /tmp
    </pre>
    <pre>
    $ time git clone --mirror git://git.dragonflybsd.org/pkgsrcv2.git pkgsrcgit
    </pre>
    <pre>
    Cloning into bare repository pkgsrcgit...
    remote: Counting objects: 1590487, done.
    remote: Compressing objects: 100% (470270/470270), done.
    remote: Total 1590487 (delta 1117330), reused 1564721 (delta 1096191)
    Receiving objects: 100% (1590487/1590487), 473.92 MiB | 389 KiB/s, done.
    Resolving deltas: 100% (1117330/1117330), done.
    </pre>
    <pre>
    real	26m57.789s
    user	2m35.646s
    sys	0m45.874s
    </pre>
    <pre>
    $ time git clone --mirror file:///tmp/pkgsrcgit pkgsrcgit2
    </pre>
    <pre>
    Cloning into bare repository pkgsrcgit2...
    remote: Counting objects: 1590487, done.
    remote: Compressing objects: 100% (449131/449131), done.
    Receiving objects: 100% (1590487/1590487), 473.92 MiB | 8.93 MiB/s, done.
    remote: Total 1590487 (delta 1117330), reused 1590487 (delta 1117330)
    Resolving deltas: 100% (1117330/1117330), done.
    </pre>
    <pre>
    real	7m0.143s
    user	3m24.122s
    sys	0m47.543s
    </pre>
    
    Then the equivalent of a "fossil open" which actually checked out 63027 files into the local directory.
    
    <pre>
    $ time git clone /tmp/pkgsrcgit pkgsrcopen
    </pre>
    <pre>
    Cloning into pkgsrcopen...
    done.
    </pre>
    <pre>
    real	0m56.812s
    user	0m5.374s
    sys	0m15.589s
    </pre>
    
    Then a "git status"
    
    <pre>
    $ cd pkgsrcopen
    </pre>
    <pre>
    $ time git status
    </pre>
    <pre>
    # On branch master
    nothing to commit (working directory clean)
    </pre>
    <pre>
    real	0m10.397s
    user	0m0.818s
    sys	0m3.721s
    </pre>