Ruggero Turra
Ruggero Turra

Reputation: 17720

protect svn externals

I have a project in a svn with externals, for example

- myproject
|
|--------stuff1
|--------stuff2
|--------external-lib    // svn::external

I need to add a file (a Makefile) inside the external-lib directory, I want to commint it inside my repository (myproject), not the external one. It's very important to don't modify the external repository. Is it possible? I want to use the head revision of the external repository.

Upvotes: 0

Views: 178

Answers (3)

jgifford25
jgifford25

Reputation: 2154

Based upon the response to my comment under your question, if your server and client(s) are using Subversion 1.6.x, you can do this. With Subversion 1.6.x, the support of externals for file is now available. So for each file and directory contained at the svn::external path, you'll need to create and entry in the svn:externals property for the myproject directory.

The svn:externals property will look something like this:

^/external-lib/file1 file1
^/external-lib/directoryA directoryA
^/external-lib/file2 file2
^/external-lib/directoryB directoryB

You can read more about svn:externals here: http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html

Now, as long as external-lib and myproject exist in the same repository, the working copies will allow you to commit changes to files and directories in external-lib.

Upvotes: 0

jeroenh
jeroenh

Reputation: 26782

What you want is not possible, unless you create a branch of the external repository in your own and ditch the svn:externals altogether. Of course, that would mean that you have to maintain updates to the external lib yourself, by merging (which could be probably be automated relatively easily, since you don't modify anything other than adding this file).

That said, Martin's solution seems the path of least resistance in your case...

Upvotes: 0

Martin v. Löwis
Martin v. Löwis

Reputation: 127497

I suggest to store the Makefile into myproject directly. Then you can run it from external-lib using

make -f ../Makefile.external

Upvotes: 1

Related Questions