[tex-live] request: rsync & non-usable svn repository URL

Mojca Miklavec mojca.miklavec.lists at gmail.com
Mon Aug 15 23:26:56 CEST 2011


Hello,

When I want to do SVN checkout (and assuming that I want to commit
later), I have two options:

1.) svn co svn://tug.org/texlive/trunk/<subpath>

2.) rsync -a --delete tug.org::tldevsrc/<subpath> .

The second option is suboptimal and I have a request that would
simplify usage of SVN a lot, at least for me.

I will provide a minimal example to demonstrate the problem. (On this
minimal example it doesn't matter whether one uses rsync or svn; in
fact svn is faster, but when checking out the whole TL tree rsync is
considerably faster.)

Assume that I want to submit some translation for TL. I can use
    rsync -a tug.org::tldevsrc/Master/tlpkg/translations .
instead of
    svn co svn://tug.org/texlive/trunk/Master/tlpkg/translations
but the problem with the first approach is that I cannot use commands
such as svn log, svn up, svn diff, ... afterwards. If I use rsync to
fetch the latest SVN checkout then the file .svn/entries lists
    file:///home/svn/texlive/trunk/Master/tlpkg/translations
    file:///home/svn/texlive
instead of
    svn://tug.org/texlive/trunk/Master/tlpkg/translations
    svn://tug.org/texlive

Of course I could use
    svn switch --relocate \
        file:///home/svn/texlive/trunk/Master/tlpkg/translations \
        svn://tug.org/texlive/trunk/Master/tlpkg/translations
(which takes ages on complete repository), but once I do that, rsync
becomes useless again (or I have to go through the slow process of
"svn switch").

Rsync may be several times faster than svn on occasions, in particular
when working with the whole TL repository. Also, I sometimes do "svn
up" and then decide that I cannot afford to wait until it finishes. If
I stop it with Ctrl+C, it is a nightmare to get the repository back in
a consistent state later with all the files locked and it takes twice
the original time to resolve all that. If rsync was working, I could
stop syncing at any given time (of course that would leave SVN in
inconsistent state) and finish syncing later from where I left. Yes,
I'm fully aware that this may leave the repository inconsistent when
running rsync during "svn up" on the server, but I'm ok with that.

So a humble request from me: would it be possible to run
    svn switch --relocate \
        file:///home/svn/texlive \
        svn://tug.org/texlive
a single time on the server where rsync://tug.org/tldevsrc fetches its
files from? Or does anyone depend on file:///home/svn?

The webpage suggests us to use
    rsync -a --delete --exclude=.svn tug.org::tldevsrc .

For those who use "--exclude=.svn" this change on the server would not
change antyhing. For the others it would be very useful if contents of
.svn were usable out-of-the-box.

And yes, I'm aware that svn also changes contents of .svn/entries
(adds my username to repository URL) as soon as I login. But that is a
minor issue since I don't really commit that often (but I do sync
often).

Thank you,
    Mojca


More information about the tex-live mailing list