subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Laszlo Kishalmi <lkisha...@ovi.com>
Subject Feature Req: sorthand urls for branches/tags in CLI
Date Thu, 22 Aug 2013 21:15:04 GMT
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.



Mime
View raw message