1

Could someone share some info or reference links which sheds some in-depth information on how SVN handles 'external' folders / files. I did get some links from SO and some other sites, but none of them explain it in detail. I am developing a generic API that need to support most of the available CM tools (SVN, PTC Integrity, TFS etc).

Regards, Joe.

Joe Varghese
  • 59
  • 1
  • 9
  • Are you sure that you ask about externals definitions `svn:externals` which are in-depth described in the SVNBook? http://svnbook.red-bean.com/en/1.8/svn.advanced.externals.html – bahrep Jun 30 '14 at 15:01
  • 3
    As far as I know there's no such thing as "shared file or folder" in SVN, so to me this question makes no sense. – Dialecticus Jun 30 '14 at 15:06
  • @Dialecticus I guess he's asking about externals definitions, but in such case these 3 questions are "invalid". – bahrep Jun 30 '14 at 15:08
  • 1
    Or it is just that in SVN every file and folder in the repository can be considered "shared" as it is called by Joe. – Robert Jun 30 '14 at 15:11
  • @Robert reading manual is still the best way to get proper answer to the question, IMHO. – bahrep Jun 30 '14 at 15:14
  • @Dialecticus : Sorry, I forgot to mention that. Yes, I'm referring to svn:externals.
    By sharing what I intended to mean was a scenario where in you have common files (say libraries) stored in a single folder and referenced in various projects.
    – Joe Varghese Jul 01 '14 at 08:30

3 Answers3

1

As Dialecticus already commented, there is no such thing as a 'shared folder' or a 'shared file' in Subversion.

You can bring something else in your working copy using svn:externals but that doesn't really make it shared.

If you are wrapping your own api around it, you could just as well use multiple working copies in a single tree... As that is really all what an external adds you: making it easy to checkout and update from multiple locations.

Bert Huijben
  • 19,525
  • 4
  • 57
  • 73
1

Must read the documentation. svn:externals is just a property of the folder, and other property for instance is svn:ignore. These two have special meaning for SVN, but there are other as well (with prefix different from svn:)

Downside to a SVN external is that if it belongs to a different repository then it is not possible to commit changes in both root working copy and external's WC in a single action. If external actually belongs to the same repository as the root WC then TortoiseSVN does some magic to actually make it possible to commit them in single action.

svn:externals property can pin the revision of the working copy, but this feature is usually only used for tagging folders.

Dialecticus
  • 16,400
  • 7
  • 43
  • 103
0

If you ask about how svn:externals versioned property operates, then the best resource to learn about this feature is SVNBook, see SVNBook | Externals Definitions. The book covers this topic very well, in fact.

For SharpSVN's documentation see http://docs.sharpsvn.net/current/.

bahrep
  • 29,961
  • 12
  • 103
  • 150