--- Branko Čibej <brane@xbc.nu> wrote:
> Why don't you try? I don't know if you get a
> deadlock or not (I guess
> not); but it should take you about 10 minutes to
> write a simple script
> that'll answer your question.
Judging from other answers, the post-commit occurs
outside of the transaction.
> >I think differentiating between branches and tags
> is
> >aside from enforcing a repository layout since, in
> >essence, branches and tags can be thought of as
> >different types of repository elements.
> >
> The're not. Yes, I know ClearCase has different
> namespaces for them; but
> to Subversion, they're just directories.
Actually, ClearCase has them in the same namespace.
The difference is that they are different types
whereas in Subversion, they're both directories.
> I think you have to rethink your layout a bit. How
> about this:
>
> /project
> /main
> /HEAD
> /_BR_
> /dev
> /HEAD
> /_BR_
> /_LB_
> /_VN_
> /_LB_
> /LATEST
> /_VN_
> /0
> /1
>
>
> That keeps branches and labels nicely separate, you
> get a hierarchical
> namespace of branhes, and you can tell the
> difference between a branch
> and a label simply by looking at the path. So, what
> ClearCase would call
>
> foo.c@@/main/dev/LATEST
>
> would in this schema become
>
> /project/main/_BR_/dev/_LB_/LATEST/foo.c
>
> and
>
> foo.c@@/main/1
>
> would map to
>
> /project/main/_VN_/1
I prefer the ClearCase layout better. I have an idea
(ie wrap the svn client to create "branch" and "label"
commands) that I think can make this work.
> Note that the ClearCase version numbers are in a
> different namespace
> than labels and branches, and that for your purpose
> they behave like
> labels, not like branches. Also, you don't need
> top-level namespaces,
> because the main branch is required anyway, and
> labels are always
> applied within branches.
I've given some thought to eliminating the main branch
and decided to keep it since it does signify a branch
rather than a project name.
> I'm not sure how you intend to apply the same label
> to different
> branches of the same object, the way ClearCase does.
Just like the following:
/project
/main
/HEAD
/0
/1
/LABEL
/branch0
/HEAD
/0
/1
/LABEL
/branch1
/HEAD
/0
/1
/LABEL
Note that, in Subversion, there's really only one
object.
> If I were you, I'd
> impose some restrictions on the CC-to-SVN mapping in
> this respect; if
> you do that, then you only need a single global
> namespace for labels.
Hmmm. Global namespace for labels. I'll keep this in
mind.
> Huh, why do you want to do that in a post-commit
> hook? Instead, you
> should use a start-commit hook, then you can examine
> and modify the
> transaction _before_ it's committed, and all your
> problems go away. Of
> course, to modify the transaction, you'd have to use
> either the SWIG
> bindings, or write a C program that links with the
> libsvn_fs library.
I didn't know I could do that. I'll look into doing
this. It would also partially solve the atomicity I
need in figuring out the next branch revision number
and creating the corresponding label.
Thanks,
Noel
__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Oct 15 04:15:20 2002