On 7/30/05, Thomas Beale <thomas@deepthought.com.au> wrote:
> Robert P. J. Day wrote:
> > On Sat, 30 Jul 2005, Thomas Beale wrote:
> >
> > as more than one person has pointed out, there's nothing magical about
> > directories named "Branches" or "Tags" or "Releases" -- it's all in
> > the way you treat them, that's all.
>
> But there should. The formal semantics of these directories are not
> those of a normal project directory; they are there to separate out
> different branches of development, and also to implement tags. But the
> semantics of these things are not the semantics of directories.
>
> >
> > and while any client tool would most likely want to have some
> > pre-defined set of perspectives like main, branches, tags and so on,
>
> 'perspectives' is exactly the word I was looking for.
>
> > the directory structure effortlessly let's you define certain views of
> > the repository as, say, "Rob's Wild and Crazy Ideas" and stuff like
> > that.
> >
> > will your hypothetical client tool be able to handle that kind of
> > flexibility?
> >
> > rday
>
> "Rob's wild and crazy ideas" would probably be the name of a branch in
> the 'branches' perspective, but there is no reason why people couldn't
> invent their own perspective names as well.
>
> - thomas beale
While with some restrictions you could already create such a front-end
to Subversion.
I think this was actually already suggested when someone told you to
write your own
client. My suggestion would be similar with the idea to show how such thing
would work.
You can write a script in your favorite programming language that will
wrap the svn client (or using one of its bindings) so you have
command like this
mysvn co http://url_to_repo workspace
will actually check out http://url_to_repo/TRUNK to the
workspace directory
mysvn co http://url_to_repo --flow NAME workspace
will check out http://url_to_repo/BRANCHES/NAME
or http://url_to_repo/TAGS/NAME
or http://url_to_repo/RELEASES/NAME
to the workspace directory
We assume the same NAME cannot exist in two places and we enforce this by
our command line tool.
mysvn switch NAME
would switch to the named BRANCH/TAGS/RELEASE
mysvn --branch NAME
would be translated to
svn cp http://url_to_repo/TRUNK http://url_to_repo/BRANCHES/NAME
mysvn --tag NAME
mysvn --release NAME
mysvn --mergefrom NAME
would be translated to
svn merge http://url_to_repo/BRANCHES/NAME
or
svn merge http://url_to_repo/TAGS/NAME
or
svn merge http://url_to_repo/RELEASES/NAME
Gabor
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sun Jul 31 10:08:18 2005