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

Feature Req: sorthand urls for branches/tags in CLI

From: Laszlo Kishalmi <lkishalmi_at_ovi.com>
Date: Thu, 22 Aug 2013 23:15:04 +0200

Dear subversion users, developers,

I'm working on a project where we are actively working on many branches.
It works great. Despite all the IDE support I have, as a build and
release engineer, I need to work a lot from command line.

Addressing branches/tags could be a pain from command line especially
when you would like to compare or see log for a file deep in hierarchy.

I'd propose a -b [--branch] option or extend the meaning of "^" sign for
those commands which can work with URL-s. Extending ˇ would mean
that when used as ^/ it means repository root and using it as ^[branch]
then it would refer to a branch.

How would it work:

Let's imagine the following repository layout:
  /project1/trunk
  /project1/trunk/dir1/dir2/dir3/fileA
  /project1/branches/branchA
  /project1/branches/branchA/dir1/dir2/dir3/fileA
  /project1/branches/branchB
  /project1/branches/branchB/dir1/dir2/dir3/fileA
  /project1/tags/tag1
  /project1/tags/tag2

Use Case 1:
        We are in the WC root of checked out trunk and would like merge
        branchA back.
        svn merge -b branchA
        svn merge ^branchA

Use Case 2:
        We are in dir1/dir2/dir3 in WC of checked out branchB and would
        would like to see what has happened on trunk in this folder:
        svn log -l 3 -b trunk
        svn log -l 3 ^trunk

Use Case 3:
        We are in dir1/dir2/dir3 in WC of checked out branchB and would
        would like to see what is the difference in fileA between
        our working copy and branchA:
        svn diff -b branchA fileA
        svn diff ^branchA fileA

Implementation ideas:
        We put a specific property on project1 folder let's call it
        svn:branches for now. Here we could describe the layout of
        branches and tags for that part of repository. E.g.:
        a) Using prefixes:
                /
                /branches/
                /tags/
        b) Using some custom mapping/lists:
                trunk
                branches/*
                tags/*
        c) Using regexp captures:
                (trunk)
                branches/(\w+)
                tags/(\w+)
        Having this info, the path where this property is set, the name
        of the branch and the current path relative to wc root it is
        possible to construct a repository URL to be used.

As far as I currently see there would be no change required on server side.
Received on 2013-08-22 23:20:37 CEST

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