RE: Sub modules? - svn:externals + branching
From: <andy.glew_at_amd.com>
Date: 2004-04-29 23:22:52 CEST
> This allowed us to manage shared files across multiple
Using svn:externals seems to be the recommended way.
E.g. I maintain several fairly large libraries,
* libag
There are, of course, tests in each subdir.
I like each of directories to be freestanding,
Therefore, it looks like I am heading - I have started
When checked out, this yields a directory tree that looks
* libag
You get the picture...
Each of the import subtrees in the workspace is separate files,
If filespace is cheap, not too much of a problem.
Fortunately, most of my libraries do not depend on each other,
---
Now, my real question:
The above seems to work, profligate as it may be with filespace.
I do seem to have minor problems relating to divergences
between the external subtrees. These divergences occur for
two reasons:
(1) I have made an edit to one such tree, but not propagated
it everywhere. The workaround is obvious: checkin,
and then cvs update everywhere. Nevertheless, it leads
to fun bugs.
(2) Worse, when one import subtree has branched but the others
have not. Typically, all of the instances of a library
module are required to be consistent. One module may only
work with a branched version of a librray; other modules
will work with either the branched or non-branched version.
I haven't found a good way to manage the branching case.
I am thinking of having my checkout wrappers check out only a
single version of the imported libraries, creating symlinks
as necessary.
I.e. instead of
* libag
*libag/test
* libag/test.hh
* libag/fmt
* libag/fmt.hh
EXTERNAL: import/libag/test
* libag/bitpattern
* libag/bitpattern/bitpattern.hh
EXTERNAL: import/libag/test
EXTERNAL: import/libag/fmt
* libag/uarchlib
* libag/uarchlib/bpred
* libag/uarchlib/bpred/{Smith,McFarling,...}-bpred.hh
EXTERNAL: import/libag/test
EXTERNAL: import/libag/fmt
EXTERNAL: import/libag/bitpattern
when you check ot libag you may get the tree without any
imports/externals; the import subtrees will be symlinkd,
But if you check out just a submodule, you get the
imports not as symlinks but as real files:
E.g/. checking out bitpattern in isolation:
* libag/bitpattern
* libag/bitpattern/bitpattern.hh
EXTERNAL: import/libag/test
EXTERNAL: import/libag/fmt
Q: has anyone done something like this?
Hints/scriprs to share?
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Apr 29 23:25:25 2004
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.