What about branch from a branch ? In general you need a tuple of (base version, branch id, branch version) to identify a branch version. Similarly a branch on a branch would become ((base version, branch id, branch version), branch2 id, branch2 version). In VW we use the following convention base version + branch id - branch version which then naturally extends to base version + branch id - branch version + branch2 id - branch2 version In monticello, your 'version' is author.nr (to accommodate distributed development) so the scheme would become author0.nr0 + branch1 - author1.nr1 + branch2 - author2.nr2 People probably won't like that, but I think the notion of the version identification tuple is relevant to the discussion. For example neither of the schemes below indicates where the branch starts. "Lukas Renggli"<renggli@gmail.com> wrote:
You cannot get rid of branching, this is a central part of version control and extensively used in many large projects.
In Seaside we use the following pattern, also see the documentation at http://code.google.com/p/seaside/wiki/PackageNaming:
Package = PackageName "-" Author { "." Branch } "." Version
However I noticed that other projects (and earlier versions of Seaside) use a different scheme:
Package = PackageName { "." Branch } "-" Author "." Version
In this case I guess we must support:
Package = PackageName { "." Branch } "-" Author { "." Branch } "." Version
However, that doesn't change that $. and $- cannot be part of the PackageName or Author.