views:

96

answers:

2

I first want to say I've read the Subversion manual. I've read this question. I've also read this question. Here's my dilemma.

Let's say I have 3 repositories laid out like this:

  • DataAccessObject/
    • branches/
    • tags/
    • trunk/
      • DataAccessObject/
      • DataAccessObjectTests/
  • PlanObject/
    • branches/
    • tags/
    • trunk/
      • PlanObject/
      • PlanObjectTests/
  • WinFormsPlanViewer/
    • branches/
    • tags/
    • trunk/
      • WinFormsPlanViewer/

The PlanObject and DataAccessObject repositories contain shared projects. They are used by the WinFormsPlanViewer, but also by several other projects in several other repositories.

Bear with me here. I put an svn:externals definition on the WinFormsPlanViewer/trunk folder like this:

https://server/svn/PlanObject/trunk Objects
https://server/svn/DataAccessObject/trunk Objects

And here's what I see after I do an svn update.

  • WinFormsPlanViewer/
    • branches/
    • tags/
    • trunk/
      • WinFormsPlanViewer/
      • Objects/
        • DataAccessObject/
        • DataAccessObjectTests/

The PlanObject stuff doesn't even come down in the update! I don't know if this has anything to do with it, but there's an externals definition on the PlanObject/trunk folder also:

https://server/svn/DataAccessObject/trunk Objects

What's going on here? What am I doing wrong? Are there bad consequences of referencing the PlanObject and the DataAccessObject from the WinFormsPlanViewer using svn:externals when the PlanObject references the DataAccessObject using svn:externals also?

+1  A: 

You have configured the svn:externals property to populate the Objects directory with the contents of two different URLs. Try creating the two svn:externals with different directory names:

https://server/svn/PlanObject/trunk PlanObjects
https://server/svn/DataAccessObject/trunk DataAccessObjects
cleek
If I do this, then I have a copy of DataAccessObject inside the WinFormsPlanViewer/trunk/WinFormsPlanViewer/PlanObject directory, and then also inside the WinFormsPlanViewer/trunk directory. The PlanObject would reference the DataAccessObject inside the PlanObject directory, and the WinformsPlanViewer would reference the one inside the trunk directory. Right? Not what I'm looking for...
Brandon Montgomery
You're right, Billie. Can't have multiple externals with the same target folder. (See my answer for how I solved the problem in the comment above)
Brandon Montgomery
A: 

Ah, just thought of this this morning and wanted to kicked myself because I didn't think of it before. I'm going to define my svn:externals like this:

https://server/svn/PlanObject/trunk/PlanObject Objects/PlanObject https://server/svn/DataAccessObject/trunk/DataAccessObject Objects/DataAccessObject

I'm marking Billie's answer as accepted because he did answer my question about why the svn:externals definition wasn't working.

Brandon Montgomery