Package: mr
Version: 1.13
Severity: wishlist

I am leaning "mr" ... so I may be missing something.  

Here is my problem and wishlist (with my idea for the bug fix.):

== PROBLEM ==

The problem is significantly slow speed of "mr checkout" for the
registered git-svn repository than the registered svn repository.

I am using "mr" with
------
[DEFAULT]
include = cat /usr/share/mr/* 2>/dev/null || true
------

I had a repository checked out by git-svn (but not as the full-clone)
as:

  $ git svn clone -s -rHEAD '$url'

I used "git register ..." on it to register to "~/.mrconfig".  The
registered line for "checkout = ..." was not how I made a QUICK
shallow-checkout of subversion repository.  (The git-svn repository is
better than the standard svn repository because of easy off-line
operations as you know.)

I see a line in /usr/share/mr/git-svn:

mr -c "$MR_CONFIG" config "`pwd`" checkout="git svn clone '$url' '$MR_REPO'"

This is certainly a right line to put in .mrconfig if you are making
the full-clone of repository but too much for just checking out the
latest trunk.  If I copy this to another host to create a new mr managed
repository, then this full-clone causes very slow process for "mr
checkout" since it will try to read the entire history from the slow
subversion repository.  This is my problem.

(When "mr" is used with a "svn checkout" repository, it will copy only
the latest as "mr checkout".)

== WISHLIST ==

I know it is non-trivial to make distinction for the git-svn repository
if they are the full-clone or the shallow-checkout.  So I suggest to
register a line for the full-clone and an extra commented out line
for the shallow-checkout.  I have not tested but I wonder if the above
mentioned line in /usr/share/mr/git-svn can be substituted by something
like:

mr -c "$MR_CONFIG" config "`pwd`" "# slow full-clone for 'mr checkout'"
mr -c "$MR_CONFIG" config "`pwd`" checkout="git svn clone '$url' '$MR_REPO'"
mr -c "$MR_CONFIG" config "`pwd`" "# fast hallow-checkout for 'mr checkout' 
(commented out alternative)"
mr -c "$MR_CONFIG" config "`pwd`" "#checkout=\"git svn clone --stdlayout -rHEAD 
'$url' '$MR_REPO'\""

I did not check how exactly to create commented out entries but I hope
you understand my intent here :-)

It may be a good idea to add few lines at the top of git-svn to explan
these.

I know "-r" comes with warning in the git-svn(1) manpage as "This can
allow you to make partial mirrors when running fetch; but is generally
not recommended because history will be skipped and lost."  So this can
not be the default but offering this as commented out choice should
reduce many waisted bandwidth for old d-i svn checkout :-)

Here , "--stdlayout" is used so people should have easier time to figure
out this less used feature in the git-svn(1) manpage.

Osamu

-- System Information:
Debian Release: 7.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.8-trunk-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

mr depends on no packages.

Versions of packages mr recommends:
ii  libhtml-parser-perl  3.69-2
ii  libwww-perl          6.04-1
ii  perl                 5.14.2-21

Versions of packages mr suggests:
ii  bzr             2.6.0~bzr6526-1
ii  curl            7.28.0-3
ii  cvs             2:1.12.13+real-9
pn  darcs           <none>
ii  fossil          1:1.24+dfsg-0.1
ii  git [git-core]  1:1.7.10.4-2
ii  git-core        1:1.7.10.4-2
ii  liburi-perl     1.60-1
ii  mercurial       2.2.2-3
ii  subversion      1.7.5-1
pn  vcsh            <none>

-- no debconf information


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to