Differences between revisions 1 and 2
Revision 1 as of 2011-10-31 15:39:10
Size: 1334
Editor: JulianFoad
Comment:
Revision 2 as of 2011-10-31 15:43:11
Size: 1777
Editor: JulianFoad
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Here's a simple way in which Subversion could "know about" branches in a simplistic way. Subversion could "know about" branches in the following way.
Line 15: Line 15:
 * [...]  * Introduce APIs for mapping (efficiently, of course) both ways - from names to the URL of a branch root, and from an arbitrary URL to the codebase and branch names and the relative URL within that branch.

 * (more?)

This gives Subversion the ability to map between branch names and URLs, which is certainly useful. This doesn't in itself cause any new or desirable behaviour with repect to merging and other management of branches; by itself this is just syntactic sugar.

Branch Names as Aliases for URLs

Subversion could "know about" branches in the following way.

  • Allow the user (or administrator) to configure a mapping between { codebase-name, branch-name } and { path-within-repository }. For example, in the ASF repository, we might configure that every path matching /subversion/trunk, /subversion/branches/* and /subversion/tags/* is to be known as a "branch" in the "code base" named "subversion", and its branch name is the last component of the pathname.
  • Branch names are to be unique within a codebase; codebase names are to be unique within a repository. Decide whether branch names and tag names should share the same namespace.
  • Introduce a command-line syntax for referring to { codebase-name, branch-name } instead of a URL (and with a relative URL); and for referring to { branch-name } in "this" codebase; and for referring to "this branch in this codebase".
  • Introduce the same or similar syntaxes for external definitions.
  • Introduce the same or similar syntaxes for viewspec files (svn-viewspec.py).
  • Introduce APIs for mapping (efficiently, of course) both ways - from names to the URL of a branch root, and from an arbitrary URL to the codebase and branch names and the relative URL within that branch.
  • (more?)

This gives Subversion the ability to map between branch names and URLs, which is certainly useful. This doesn't in itself cause any new or desirable behaviour with repect to merging and other management of branches; by itself this is just syntactic sugar.

Branches as First-Class Objects

Here's an attempt at defining the concept of "a branch" in terms of more advanced behaviour than simply substituting a URL into an existing subcommand.

[...]

BranchesAndBranchRoots (last edited 2011-10-31 15:43:11 by JulianFoad)