Skip to Content.
Sympa Menu

sm-discuss - [SM-Discuss] svnmerge.py

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Pieter Lenaerts <e-type AT sourcemage.org>
  • To: "sm-discuss AT lists.ibiblio.org" <sm-discuss AT lists.ibiblio.org>
  • Subject: [SM-Discuss] svnmerge.py
  • Date: Tue, 18 Apr 2006 12:36:33 +0200

hi all,

I got merge tracking going using the svnmerge.py script.

in short: getting test and devel into sync works in both directions with
cherrypicking and without knowing any revision numbers.

anyone can play around a bit on my grimoire sandbox to make it trip :)

procedure:
1) '$ cast subversion' (duuh)
2) get latest svnmerge.py: '$ svn export
http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.py'
3) checkout my sandbox: '$ svn co
http://e-home.ath.cx:8080/repos/grimoire-sandbox'
4) make some changes in devel or test or both
5) commit them
6) repeat 4 and 5 N times :)

to see what changes are available to be pulled in:
'$ cd devel/' or '$ cd test/' (you need to be at the bottom of the
branch you want to pull changes to)
'$ svnmerge.py -b avail' (you need the -b flag or you'll get conflicts!)

to merge them all:
'$ svnmerge.py -b merge'
('$ svn update')
'$ svn commit'

cherrypicking: do a couple of commits in either branch, cd to other
branch and then:
'$ svnmerge.py -b avail' and choose some revision number(s) or range(s)
'$ svnmerge.py -b -r N,M,Q-S merge'
('$ svn update')
'$ svn commit'

everybody pull out the guns and stresstest this! :)


downsides atm:
1) you need to run '$ svn update' quite a lot if you complicate your
workcycle to make it fall.

2) you need to add the -b flag on every call of svnmerge.py. I
immediately added myself an alias around this: '$ alias
svnbimerge='path/to/svnmerge.py -b''

3) if a change in devel is not supposed to get merged into test then the
developer committing that revision should block it for tracking. if not
'$ svnmerge.py -b avail' will show zounds of revisions ready to be
integrated and finding out which one you want to integrate turns into
nightmare. '$ svnmerge.py block -r N' is an answer, use '$ svnmerge.py
unblock -r N' to get it listed again.


--
Pieter Lenaerts
Source Mage GNU/Linux

http://www.sourcemage.org
"Linux so advanced it may well be magic"

Attachment: signature.asc
Description: Dit berichtdeel is digitaal ondertekend



  • [SM-Discuss] svnmerge.py, Pieter Lenaerts, 04/18/2006

Archive powered by MHonArc 2.6.24.

Top of Page