[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