SteveKing wrote:
>
> Currently, it simply ignores all externals completely.
>
> I'm wondering: how would you have SubWCRev handle those externals?
>
Maybe we use externals differently to other people. We have multiple
applications in our repo, but they all share some common code. We check
out the application from trunk, and it drags in externals from a
'common' directory in trunk.
Basically the source is all in the same repo, so we treat it as such.
Commits are atomic, and an update runs through all externals as well as
the wc.
The only reason for using externals is because some code is shared
amongst projects and externals seems the only way to get it out in a wc.
Therefore, the way we use the externals, subwcrev would treat the
externals as part of the source and calculate the highest revision
number through all externals as well as the main wc, providing that:
a) The external has the same repo root as the wc (we do have another
repo containing 3rdparty source copies such as boost, VTK etc which we
wouldn't want including in this)
b) The external isn't tagged at a particular revision. It is is, then
it wouldn't make sense to include it in the highest rev calculation.
But this may be different to how others use external. Our use is
different from TSVN's in that we don't check out trunk because that
would check out all applications, and each app is versioned and built
independently, they just share a large amount of common code. What we
really want is 'relative externals' that have been discussed on svn
lists, but currently this is the best solution for us.
Options to achieve what we are looking for are:
a) We call subwcrev multiple times, once for each external and the main
wc and calculate the highest rev
b) Allow passing of multiple folders to subwcrev and let it do this
calculation for us
c) If externals aren't locked at a specific rev and have the same repo
root, then subwcrev would crawl them as if they were part of the wc itself.
FYI: Our repo is
trunk
|
|--- Common
| |-- Shared1
| |-- Shared2
| ...
| |---Sharedn
|
|--- Proj1
|--- Proj2
|--- Proj3
A developer only checks out Proj1, Proj2 or Proj3 (not trunk). That wc
drags in some of the Shared folders from Common as externals but we
basically treat them as part of the wc. When we branch project 1, we
copy the externals in to the wc before branching and remove the external
properties so that the branch has its own branch of the necessary shared
libraries e.g.
branches
|
|--- Proj1-1.1.x
|
|--- Shared1
|--- Shared3
Cheers
Russell
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Wed Jul 20 18:45:54 2005