[SciPy-dev] The future of SciPy and its development infrastructure

Pauli Virtanen pav at iki.fi
Mon Feb 23 17:16:41 EST 2009


Mon, 23 Feb 2009 15:11:06 -0600, Robert Kern wrote:

> On Mon, Feb 23, 2009 at 15:06, Charles R Harris
> <charlesr.harris at gmail.com> wrote:
> 
>> I think git-svn takes care of most of the branching problem on a local
>> basis. Where it fall down, IMHO, is in testing a branch on the
>> builtbots and sharing a branch among two or three people.
> 
> Why is that? Push your git branch to github.

git-svn relies much on rebasing (for merging with SVN), and AFAIK doesn't 
work well in a multi-user scenario. Quote from the manual page:

	The recommended method of exchanging code between git branches
	and users is git-format-patch and git-am, or just dcommiting to
	the SVN repository.

That is, the recommended way to collaborate when using git-svn is to send 
patches via mail. Also, if you want to merge, there are caveats:

	Running git-merge or git-pull is NOT recommended on a branch you
	plan to dcommit from. Subversion does not represent merges in any
	reasonable or useful fashion; so users using Subversion cannot see
	any merges you've made. Furthermore, if you merge or pull from a
	git branch that is a mirror of an SVN branch, dcommit may commit
	to the wrong branch.

So I don't think it's very simple to use it for sharing work with people. 
Working on an SVN branch is IMO better than this.

    ***

I'm wondering if we would benefit from an official, pull-only, 
automatically updating, Git mirror of the SVN repository:

- Easy "feature branches" also for those who don't have SVN commit rights.

- Rebasing against SVN is not necessary, merges will just work.

- Easier to work with than dealing with patches.

Some issues turn up when changes are committed back to SVN:

- There's some minor manual work before dcommit works, if you clone
  a git-svn repository from somewhere else:

  http://subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone

  But this needs to be done only once.

- cherry-pick + rebase is likely necessary before changes can be
  committed to SVN.

- Merge is necessary on the feature branch, if further work needs to be
  done on it.

The last point is probably the biggest factor undermining usability of 
this workflow. But this still probably would beat updating patches, and 
it does not seem to be any worse than SVN branches.

-- 
Pauli Virtanen




More information about the SciPy-Dev mailing list