Discussion:
Ignore svn:externals definition in some clients?
Thorsten Schöning
2017-07-06 08:15:16 UTC
Permalink
Hi all,

I have a large SVN repo containing various libs. Some of those are
versioned as files within our own repo, some only referenced using
svn:externals to be available in a local file tree always at the same
place for all users. Some of those externals refer to native SVN
repos, some use the GitHub SVN bridge.

One of those GitHub repos is special, because it's only a read-only
mirror of a native Git repo hosted elsewhere. So I reference that
read-only mirror using the SVN bridge of GitHub to be able to provide
it's content to my colleagues, while I have write access to the native
Git repo.

The problem is that I mostly work in the SVN tree at that special lib
as well for various setup reasons, but can't commit using the SVN
bridge of GitHub, because this project is read-only. So after things
work I copy them manually to the Git clone and commit them there,
update using SVN afterwards etc.

That's not a good solution, so I decided to simply replace the working
copy created for the svn:external of the read-only GitHub mirror with
a native Git clone. The dir structure and everything is the same of
course, it's only SVN vs. Git.

This works in general, but whenever I update my SVN working copy I get
an error message from the SVN client related the one svn:external I
replaced with a Git clone. That error makes sense of course, because I
broke things, but in this special case I would like to suppress the
error somehow because I simply don't care.

So, is there some way for a SVN client to be configured in a way that
some svn:externals of some paths are ignored or something like that?

I don't want to create some fancy scripts or such, in the end I could
live with the error and simply ignore it myself. I'm talking about the
C:\[...]\0.11.0-SNAPSHOT>dir
Datenträger in Laufwerk C: ist System
Volumeseriennummer: 266B-2863
Verzeichnis von C:\[...]\0.11.0-SNAPSHOT
06.07.2017 09:25 <DIR> .
06.07.2017 09:25 <DIR> ..
19.04.2017 18:27 <DIR> build
13.10.2015 11:55 2.256 README.txt
06.07.2017 10:06 <DIR> src
02.07.2016 15:50 <DIR> web
1 Datei(en), 2.256 Bytes
5 Verzeichnis(se), 1.550.992.760.832 Bytes frei
C:\[...]\0.11.0-SNAPSHOT>svn up
svn: warning: W155007: Can't obtain lock on non-directory 'C:\[...]\0.11.0-SNAPSHOT\src'.
External at revision 1015044.
At revision 5780.
svn: E205011: Failure occurred processing one or more externals definitions
Thanks for your input!

Mit freundlichen Grüßen,

Thorsten Schöning
--
Thorsten Schöning E-Mail: ***@AM-SoFT.de
AM-SoFT IT-Systeme http://www.AM-SoFT.de/

Telefon...........05151- 9468- 55
Fax...............05151- 9468- 88
Mobil..............0178-8 9468- 04

AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
Daniel Shahaf
2017-07-06 09:24:15 UTC
Permalink
Post by Thorsten Schöning
So, is there some way for a SVN client to be configured in a way that
some svn:externals of some paths are ignored or something like that?
Edit the svn:externals property in your working copy to remove that external,
then run 'update', and don't commit the property edit.

We also have a branch that enables svn to checkout git trees natively [1],
but it's not even merged to trunk yet.

[1] https://svn.apache.org/viewvc/subversion/branches/ra-git/

Cheers,

Daniel
Ryan Schmidt
2017-07-10 09:01:14 UTC
Permalink
Post by Daniel Shahaf
We also have a branch that enables svn to checkout git trees natively [1],
but it's not even merged to trunk yet.
[1] https://svn.apache.org/viewvc/subversion/branches/ra-git/ <https://svn.apache.org/viewvc/subversion/branches/ra-git/>
Whoa, cool! I'm using GitHub's Subversion bridge now, but having support for git repositories right in the Subversion client would be great.
Loading...