[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: early reflections on subversion methodology

From: Gábor Szabó <szabgab_at_gmail.com>
Date: 2005-07-31 10:06:27 CEST

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

This is an archived mail posted to the Subversion Users mailing list.