> On Tue, Apr 01, 2003 at 10:16:52PM -0500, Jean-Luc Wasmer wrote:
> [snip]
> > The svn guide says:
> > "Subversion's branches exist a normal filesystem directories in the
> > repository, not in some extra dimension."
>
> > But isn't the extra dimension the coolest thing about a version
> > control tool?
>
> > Having the same file system tree when switching between revisions or
> > branches avoids changing paths in make files, configuration files,
> > etc...
> [snip]
>
> The paths in make files etc. don't have to change. e.g.:
>
> Check out the trunk
> $ svn checkout file:///path/to/repos/trunk project
>
> Now you have a working copy in the "project" directory. Inside project
> you have a Makefile referring to various paths etc.
>
> Let's say you want to make a change on some branch that was created in
> the repository at /branches/version-1.0, you can do this (in the
> "project" directory):
>
> $ svn switch file:///path/to/repos/branches/version-1.0
>
> Now in project you have a Makefile referring to exactly the same paths
> as before. i.e. the Makefile refers to paths in your local filesystem,
> and these haven't changed (unless you've moved stuff around on the
> branch and not in /trunk or vice versa, of course.)
>
What I mean is that it's not flexible when you want to mix branches within
the same project.
Why would we do that? Because we don't put the source files with the
project. The reason is that we aim at developping reusable components. We
create a component for a project, but make it independent of it in order to
use it in future projects.
So we have a "projects" directory and a "components" directory.
Let's create a personnal branch and call it "jlwasmer".
trunk/projects/projectA/Makefile
trunk/components/componentA/
trunk/components/componentB/
branches/jlwasmer/projects/projectA/Makefile
branches/jlwasmer/components/componentA/
branches/jlwasmer/components/componentB/
I can compile
everything from trunk with trunk/projects/projectA/Makefile
everything from the jlwasmer branch with
branches/jlwasmer/projects/projectA/Makefile
If I want to compile
trunk/components/componentA/
branches/jlwasmer/components/componentB/
or
trunk/components/componentB/
branches/jlwasmer/components/componentA/
I need to change the makefile or create a new one.
JL
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Apr 2 23:55:38 2003