You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Ch...@qimonda.com on 2006/08/16 20:59:23 UTC

svnmerge.py

Sorry if this is OT for this mailing list.

Can this tool merge changes from branch
to trunk? I was able to merge from trunk
to branch, but can't figure how to merge
the other way around.

--------------------------------------
Chris T Fouts
Qimonda NA
3000 CentreGreen Way
Cary, NC 27513
Phone: (919)677-3016
Fax:   (919)678-1929
Email: chris.fouts@qimonda.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: svnmerge.py

Posted by Jamie Wellnitz <Ja...@emulex.com>.
On Thu, Aug 17, 2006 at 04:55:21PM +0200, Chris.Fouts@qimonda.com wrote:
>  
> >-----Original Message-----
> >From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
> >Sent: Thursday, August 17, 2006 10:45 AM
> >To: Fouts Christopher (QNA RTP PT PREV)
> >Cc: users@subversion.tigris.org
> >Subject: Re: svnmerge.py
> >
> >On Thu, Aug 17, 2006 at 03:24:16PM +0200, 
> >Chris.Fouts@qimonda.com wrote:
> >>  
> >> >-----Original Message-----
> >> >From: Blair Zajac [mailto:blair@orcaware.com]
> >> >Sent: Wednesday, August 16, 2006 5:52 PM
> >> >To: Fouts Christopher (QNA RTP PT PREV)
> >> >Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
> >> >Subject: Re: svnmerge.py
> >> >
> >> >Chris.Fouts@qimonda.com wrote:
> >> >> I get...
> >> >> svnmerge: no integration info available for repository path 
> >> >> "/branches/cf"
> >> >> 
> >> >> Here's what I did.
> >> >> Merge from trunk to branch
> >> >>> cd to branch top dir
> >> >>> svnmerge init
> >> >>> svnmerge merge (merged from trunk) svn commit (Modify 
> >branch file) 
> >> >>> svn commit
> >> >> 
> >> >> Merge from branch to trunk
> >> >>> cd to trunk top dir
> >> >>> svnmerge init /myrepos/trunk
> >> >
> >> >You're telling init to merge changes from trunk back to itself.
> >> >
> >> >You need to tell it to merge from the branch and you'll need the -r 
> >> >command line option to tell it which revisions have "already been 
> >> >merged over".  Here, you'll want to use 1-N, where N is the 
> >revision 
> >> >that the branch was created at.
> >> >
> >> >You should revert the commits in your trunk with the svnmerge init 
> >> >command.
> >> >
> >> >Also, before committing, I suggest doing a diff to see exactly what 
> >> >changes svnmerge.py is making to your . directory and see 
> >if it makes 
> >> >sense.
> >> >
> >> >Regards,
> >> >Blair
> >> >
> >> 
> >> I was under the impression svnmerge helped rid the need for revision 
> >> numbers. Oh well...
> >
> >In simple cases svnmerge.py can hide the revision numbers.  If 
> >you have a fairly simple merge problem:
> >
> >      /-----+------+-----+--------> branch
> >     /       \      \     \
> >----+---------*------*-----*------> trunk
> >
> >If you run "svnmerge.py init -S branch" on the trunk (and commit the
> >change) just after creating the branch (wich "svn copy"), each 
> >of the periodic branch -> trunk merges shown should just be:
> >
> >(in trunk working dir)
> >svnmerge.py merge -S branch
> >(resolve conflicts, verify svn diff output and test) svn ci
> >
> >svnmerge.py will keep track of the already-merged revisions 
> >and not attempt to remerge them.
> >
> >However, with more complicated merge problems (especially 
> >cherry picking changes or blocking revs from merging) it's 
> >hard to avoid the revision numbers.
> >
> >> 
> >> -chris
> >
> >Regards,
> >	Jamie
> >
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> >> For additional commands, e-mail: users-help@subversion.tigris.org
> >> 
> >> 
> >
> 
> For some reason, the svnmerge.py tool I have, which I d/l'd just
> yesterday,
> does NOT have the -S option. What gives?

As Blair pointed out, the init command just takes the branch without a
-S.  Other svnmerge.py commands, like merge and avail, take -S, e.g.:

svnmerge.py avail -S release_branch

	Jamie

> 
> 
> > svnmerge help init
> usage: svnmerge init [OPTION...] [HEAD]
> 
> Initialize merge tracking from HEAD on the current working directory.
> 
> If HEAD is specified, all the revisions in HEAD are marked as already
> merged;
> if this is not correct, you can use --revision to specify the exact list
> of
> already-merged revisions.
> 
> If HEAD is omitted, then it is computed from the "svn cp" history of the
> current working directory (searching back for the branch point); in this
> case,
> svnmerge assumes that no revision has been integrated yet since the
> branch
> point (unless you teach it with --revision).
> 
> Command options:
>   -f [--commit-file] FILE : set the name of the file where the suggested
> log
>                             message is written to (default:
>                             svnmerge-commit-message.txt)
>   -r [--revision] REVLIST : specify a revision list, consisting of
> revision
>                             numbers and ranges separated by commas,
> e.g.,
>                             "534,537-539,540"
> 
> Global options:
>   -F [--force]        : force operation even if the working copy is not
> clean,
>                         or there are pending updates
>   -n [--dry-run]      : don't actually change anything, just pretend;
> implies
>                         --show-changes
>   -s [--show-changes] : show subversion commands that make changes
>   -v [--verbose]      : verbose mode: output more information about
> progress
>   -h [--help]         : show help for this command and exit
>   -V [--version]      : show version info and exit
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Jamie Wellnitz wrote:
> On Thu, Aug 17, 2006 at 10:24:53AM -0700, Blair Zajac wrote:
>> Jamie Wellnitz wrote:
>>> If you run "svnmerge.py init -S branch" on the trunk (and commit the
>>> change) just after creating the branch (wich "svn copy"), each of the
>>> periodic branch -> trunk merges shown should just be:
> 
> Thanks - that's right.  I forgot about that little inconsistency in
> the svnmerge.py options.
> 
>> Also, this won't work, "svnmerge.py init branch" because svnmerge.py will 
>> assume that revisions 1-HEAD have already been merged from the branch to 
>> the trunk and set the svnmerge:integrated property to be 1:HEAD, whatever 
>> revision HEAD is. In this case, you also need to supply the -r command line 
>> option to pick the revision when the branch was created, and pass -r 1:N as 
>> that.
> 
> That's why I said "just after creating the branch".  Then the
> integrated property will be set correctly.

Yes, you did say that :)

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: svnmerge.py

Posted by Jamie Wellnitz <Ja...@emulex.com>.
On Thu, Aug 17, 2006 at 10:24:53AM -0700, Blair Zajac wrote:
> Jamie Wellnitz wrote:
> >On Thu, Aug 17, 2006 at 03:24:16PM +0200, Chris.Fouts@qimonda.com wrote:
> >> 
> >>>-----Original Message-----
> >>>From: Blair Zajac [mailto:blair@orcaware.com] 
> >>>Sent: Wednesday, August 16, 2006 5:52 PM
> >>>To: Fouts Christopher (QNA RTP PT PREV)
> >>>Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
> >>>Subject: Re: svnmerge.py
> >>>
> >>>Chris.Fouts@qimonda.com wrote:
> >>>>I get...
> >>>>svnmerge: no integration info available for repository path 
> >>>>"/branches/cf"
> >>>>
> >>>>Here's what I did.
> >>>>Merge from trunk to branch
> >>>>>cd to branch top dir
> >>>>>svnmerge init
> >>>>>svnmerge merge (merged from trunk)
> >>>>>svn commit
> >>>>>(Modify branch file)
> >>>>>svn commit
> >>>>Merge from branch to trunk
> >>>>>cd to trunk top dir
> >>>>>svnmerge init /myrepos/trunk
> >>>You're telling init to merge changes from trunk back to itself.
> >>>
> >>>You need to tell it to merge from the branch and you'll need 
> >>>the -r command line option to tell it which revisions have 
> >>>"already been merged over".  Here, you'll want to use 1-N, 
> >>>where N is the revision that the branch was created at.
> >>>
> >>>You should revert the commits in your trunk with the svnmerge 
> >>>init command.
> >>>
> >>>Also, before committing, I suggest doing a diff to see exactly 
> >>>what changes svnmerge.py is making to your . directory and see 
> >>>if it makes sense.
> >>>
> >>>Regards,
> >>>Blair
> >>>
> >>I was under the impression svnmerge helped rid the need for
> >>revision numbers. Oh well...
> >
> >In simple cases svnmerge.py can hide the revision numbers.  If you
> >have a fairly simple merge problem:
> >
> >      /-----+------+-----+--------> branch
> >     /       \      \     \
> >----+---------*------*-----*------> trunk
> >
> >If you run "svnmerge.py init -S branch" on the trunk (and commit the
> >change) just after creating the branch (wich "svn copy"), each of the
> >periodic branch -> trunk merges shown should just be:

Thanks - that's right.  I forgot about that little inconsistency in
the svnmerge.py options.

> 
> Also, this won't work, "svnmerge.py init branch" because svnmerge.py will 
> assume that revisions 1-HEAD have already been merged from the branch to 
> the trunk and set the svnmerge:integrated property to be 1:HEAD, whatever 
> revision HEAD is. In this case, you also need to supply the -r command line 
> option to pick the revision when the branch was created, and pass -r 1:N as 
> that.

That's why I said "just after creating the branch".  Then the
integrated property will be set correctly.

> 
> Regards,
> Blair
> 

	Jamie

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Jamie Wellnitz wrote:
> On Thu, Aug 17, 2006 at 03:24:16PM +0200, Chris.Fouts@qimonda.com wrote:
>>  
>>> -----Original Message-----
>>> From: Blair Zajac [mailto:blair@orcaware.com] 
>>> Sent: Wednesday, August 16, 2006 5:52 PM
>>> To: Fouts Christopher (QNA RTP PT PREV)
>>> Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>>> Subject: Re: svnmerge.py
>>>
>>> Chris.Fouts@qimonda.com wrote:
>>>> I get...
>>>> svnmerge: no integration info available for repository path 
>>>> "/branches/cf"
>>>>
>>>> Here's what I did.
>>>> Merge from trunk to branch
>>>>> cd to branch top dir
>>>>> svnmerge init
>>>>> svnmerge merge (merged from trunk)
>>>>> svn commit
>>>>> (Modify branch file)
>>>>> svn commit
>>>> Merge from branch to trunk
>>>>> cd to trunk top dir
>>>>> svnmerge init /myrepos/trunk
>>> You're telling init to merge changes from trunk back to itself.
>>>
>>> You need to tell it to merge from the branch and you'll need 
>>> the -r command line option to tell it which revisions have 
>>> "already been merged over".  Here, you'll want to use 1-N, 
>>> where N is the revision that the branch was created at.
>>>
>>> You should revert the commits in your trunk with the svnmerge 
>>> init command.
>>>
>>> Also, before committing, I suggest doing a diff to see exactly 
>>> what changes svnmerge.py is making to your . directory and see 
>>> if it makes sense.
>>>
>>> Regards,
>>> Blair
>>>
>> I was under the impression svnmerge helped rid the need for
>> revision numbers. Oh well...
> 
> In simple cases svnmerge.py can hide the revision numbers.  If you
> have a fairly simple merge problem:
> 
>       /-----+------+-----+--------> branch
>      /       \      \     \
> ----+---------*------*-----*------> trunk
> 
> If you run "svnmerge.py init -S branch" on the trunk (and commit the
> change) just after creating the branch (wich "svn copy"), each of the
> periodic branch -> trunk merges shown should just be:

Also, this won't work, "svnmerge.py init branch" because svnmerge.py will assume 
that revisions 1-HEAD have already been merged from the branch to the trunk and 
set the svnmerge:integrated property to be 1:HEAD, whatever revision HEAD is. 
In this case, you also need to supply the -r command line option to pick the 
revision when the branch was created, and pass -r 1:N as that.

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Jamie Wellnitz wrote:
> On Thu, Aug 17, 2006 at 03:24:16PM +0200, Chris.Fouts@qimonda.com wrote:
>>  
>>> -----Original Message-----
>>> From: Blair Zajac [mailto:blair@orcaware.com] 
>>> Sent: Wednesday, August 16, 2006 5:52 PM
>>> To: Fouts Christopher (QNA RTP PT PREV)
>>> Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>>> Subject: Re: svnmerge.py
>>>
>>> Chris.Fouts@qimonda.com wrote:
>>>> I get...
>>>> svnmerge: no integration info available for repository path 
>>>> "/branches/cf"
>>>>
>>>> Here's what I did.
>>>> Merge from trunk to branch
>>>>> cd to branch top dir
>>>>> svnmerge init
>>>>> svnmerge merge (merged from trunk)
>>>>> svn commit
>>>>> (Modify branch file)
>>>>> svn commit
>>>> Merge from branch to trunk
>>>>> cd to trunk top dir
>>>>> svnmerge init /myrepos/trunk
>>> You're telling init to merge changes from trunk back to itself.
>>>
>>> You need to tell it to merge from the branch and you'll need 
>>> the -r command line option to tell it which revisions have 
>>> "already been merged over".  Here, you'll want to use 1-N, 
>>> where N is the revision that the branch was created at.
>>>
>>> You should revert the commits in your trunk with the svnmerge 
>>> init command.
>>>
>>> Also, before committing, I suggest doing a diff to see exactly 
>>> what changes svnmerge.py is making to your . directory and see 
>>> if it makes sense.
>>>
>>> Regards,
>>> Blair
>>>
>> I was under the impression svnmerge helped rid the need for
>> revision numbers. Oh well...
> 
> In simple cases svnmerge.py can hide the revision numbers.  If you
> have a fairly simple merge problem:
> 
>       /-----+------+-----+--------> branch
>      /       \      \     \
> ----+---------*------*-----*------> trunk
> 
> If you run "svnmerge.py init -S branch" on the trunk (and commit the
> change) just after creating the branch (wich "svn copy"), each of the
> periodic branch -> trunk merges shown should just be:

svnmerge.py init doesn't take -S as an argument.  You just pass the source URL 
as the last argument:

$ svnmerge help init
usage: svnmerge init [OPTION...] [HEAD]

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: svnmerge.py

Posted by Ch...@qimonda.com.
 
>-----Original Message-----
>From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
>Sent: Thursday, August 17, 2006 10:45 AM
>To: Fouts Christopher (QNA RTP PT PREV)
>Cc: users@subversion.tigris.org
>Subject: Re: svnmerge.py
>
>On Thu, Aug 17, 2006 at 03:24:16PM +0200, 
>Chris.Fouts@qimonda.com wrote:
>>  
>> >-----Original Message-----
>> >From: Blair Zajac [mailto:blair@orcaware.com]
>> >Sent: Wednesday, August 16, 2006 5:52 PM
>> >To: Fouts Christopher (QNA RTP PT PREV)
>> >Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>> >Subject: Re: svnmerge.py
>> >
>> >Chris.Fouts@qimonda.com wrote:
>> >> I get...
>> >> svnmerge: no integration info available for repository path 
>> >> "/branches/cf"
>> >> 
>> >> Here's what I did.
>> >> Merge from trunk to branch
>> >>> cd to branch top dir
>> >>> svnmerge init
>> >>> svnmerge merge (merged from trunk) svn commit (Modify 
>branch file) 
>> >>> svn commit
>> >> 
>> >> Merge from branch to trunk
>> >>> cd to trunk top dir
>> >>> svnmerge init /myrepos/trunk
>> >
>> >You're telling init to merge changes from trunk back to itself.
>> >
>> >You need to tell it to merge from the branch and you'll need the -r 
>> >command line option to tell it which revisions have "already been 
>> >merged over".  Here, you'll want to use 1-N, where N is the 
>revision 
>> >that the branch was created at.
>> >
>> >You should revert the commits in your trunk with the svnmerge init 
>> >command.
>> >
>> >Also, before committing, I suggest doing a diff to see exactly what 
>> >changes svnmerge.py is making to your . directory and see 
>if it makes 
>> >sense.
>> >
>> >Regards,
>> >Blair
>> >
>> 
>> I was under the impression svnmerge helped rid the need for revision 
>> numbers. Oh well...
>
>In simple cases svnmerge.py can hide the revision numbers.  If 
>you have a fairly simple merge problem:
>
>      /-----+------+-----+--------> branch
>     /       \      \     \
>----+---------*------*-----*------> trunk
>
>If you run "svnmerge.py init -S branch" on the trunk (and commit the
>change) just after creating the branch (wich "svn copy"), each 
>of the periodic branch -> trunk merges shown should just be:
>
>(in trunk working dir)
>svnmerge.py merge -S branch
>(resolve conflicts, verify svn diff output and test) svn ci
>
>svnmerge.py will keep track of the already-merged revisions 
>and not attempt to remerge them.
>
>However, with more complicated merge problems (especially 
>cherry picking changes or blocking revs from merging) it's 
>hard to avoid the revision numbers.
>
>> 
>> -chris
>
>Regards,
>	Jamie
>
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>> For additional commands, e-mail: users-help@subversion.tigris.org
>> 
>> 
>

Ok, much better. thanks!!!

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Chris.Fouts@qimonda.com wrote:
> Not for primetime yet. See below 
> 
>> -----Original Message-----
>> From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
>> Sent: Thursday, August 17, 2006 10:45 AM
>> To: Fouts Christopher (QNA RTP PT PREV)
>> Cc: users@subversion.tigris.org
>> Subject: Re: svnmerge.py
>>
>> On Thu, Aug 17, 2006 at 03:24:16PM +0200, 
>> Chris.Fouts@qimonda.com wrote:
>>>  
>>>> -----Original Message-----
>>>> From: Blair Zajac [mailto:blair@orcaware.com]
>>>> Sent: Wednesday, August 16, 2006 5:52 PM
>>>> To: Fouts Christopher (QNA RTP PT PREV)
>>>> Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>>>> Subject: Re: svnmerge.py
>>>>
>>>> Chris.Fouts@qimonda.com wrote:
>>>>> I get...
>>>>> svnmerge: no integration info available for repository path 
>>>>> "/branches/cf"
>>>>>
>>>>> Here's what I did.
>>>>> Merge from trunk to branch
>>>>>> cd to branch top dir
>>>>>> svnmerge init
>>>>>> svnmerge merge (merged from trunk) svn commit (Modify 
>> branch file) 
>>>>>> svn commit
>>>>> Merge from branch to trunk
>>>>>> cd to trunk top dir
>>>>>> svnmerge init /myrepos/trunk
>>>> You're telling init to merge changes from trunk back to itself.
>>>>
>>>> You need to tell it to merge from the branch and you'll need the -r 
>>>> command line option to tell it which revisions have "already been 
>>>> merged over".  Here, you'll want to use 1-N, where N is the 
>> revision 
>>>> that the branch was created at.
>>>>
>>>> You should revert the commits in your trunk with the svnmerge init 
>>>> command.
>>>>
>>>> Also, before committing, I suggest doing a diff to see exactly what 
>>>> changes svnmerge.py is making to your . directory and see 
>> if it makes 
>>>> sense.
>>>>
>>>> Regards,
>>>> Blair
>>>>
>>> I was under the impression svnmerge helped rid the need for revision 
>>> numbers. Oh well...
>> In simple cases svnmerge.py can hide the revision numbers.  If 
>> you have a fairly simple merge problem:
>>
>>      /-----+------+-----+--------> branch
>>     /       \      \     \
>> ----+---------*------*-----*------> trunk
>>
>> If you run "svnmerge.py init -S branch" on the trunk (and commit the
>> change) just after creating the branch (wich "svn copy"), each 
>> of the periodic branch -> trunk merges shown should just be:
>>
>> (in trunk working dir)
>> svnmerge.py merge -S branch
>> (resolve conflicts, verify svn diff output and test) svn ci
>>
>> svnmerge.py will keep track of the already-merged revisions 
>> and not attempt to remerge them.
>>
>> However, with more complicated merge problems (especially 
>> cherry picking changes or blocking revs from merging) it's 
>> hard to avoid the revision numbers.
>>
>>> -chris
>> Regards,
>> 	Jamie
>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>>> For additional commands, e-mail: users-help@subversion.tigris.org
>>>
>>>
> 
> Thanks to all here's what I did
> 
> Create cf branch and check out a local copy
>> svn cp -m "bla" /repos/trunk/ /repos/branches/cf
>> cd .../branches (sandbox)
>> svn co /repos/branches/cf
>> cd cf
>> svnmerge init
> 
> Modify a file in the trunk copy and commit
>> cd .../trunk
>> (modify file)
>> svn commit
> 
> Go back to branch copy and merge from trunk
>> cd .../branch/cf
>> svnmerge avail (shows avail updates)
>> svnmerge merge
>> svn commit
> 
> Go back to trunk copy and init trunk to prepare
> branch-to-trunk merges
>> cd .../trunk
>> svnmerge init /repos/branches/cf
> 
> I get the following...
> Traceback (most recent call last):
>   File "/sw/local/bin/svnmerge", line 1924, in ?
>     main(sys.argv[1:])
>   File "/sw/local/bin/svnmerge", line 1864, in main
>     check_old_prop_version(branch_dir, branch_props)
>   File "/sw/local/bin/svnmerge", line 868, in check_old_prop_version
>     h = rstrip(head, "/")
>   File "/sw/local/bin/svnmerge", line 107, in rstrip
>     if s[-1] != ch:
> IndexError: string index out of range

Regardless of this error, you didn't pass the -r command line option to svnmerge 
init to get trunk properly set up.  It needs to be 1-(the revision from the svn 
cp -m "bla" /repos/trunk/ /repos/branches/cf command).

And are you using the latest version from trunk?

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: svnmerge.py

Posted by Ch...@qimonda.com.
Not for primetime yet. See below 

>-----Original Message-----
>From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
>Sent: Thursday, August 17, 2006 10:45 AM
>To: Fouts Christopher (QNA RTP PT PREV)
>Cc: users@subversion.tigris.org
>Subject: Re: svnmerge.py
>
>On Thu, Aug 17, 2006 at 03:24:16PM +0200, 
>Chris.Fouts@qimonda.com wrote:
>>  
>> >-----Original Message-----
>> >From: Blair Zajac [mailto:blair@orcaware.com]
>> >Sent: Wednesday, August 16, 2006 5:52 PM
>> >To: Fouts Christopher (QNA RTP PT PREV)
>> >Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>> >Subject: Re: svnmerge.py
>> >
>> >Chris.Fouts@qimonda.com wrote:
>> >> I get...
>> >> svnmerge: no integration info available for repository path 
>> >> "/branches/cf"
>> >> 
>> >> Here's what I did.
>> >> Merge from trunk to branch
>> >>> cd to branch top dir
>> >>> svnmerge init
>> >>> svnmerge merge (merged from trunk) svn commit (Modify 
>branch file) 
>> >>> svn commit
>> >> 
>> >> Merge from branch to trunk
>> >>> cd to trunk top dir
>> >>> svnmerge init /myrepos/trunk
>> >
>> >You're telling init to merge changes from trunk back to itself.
>> >
>> >You need to tell it to merge from the branch and you'll need the -r 
>> >command line option to tell it which revisions have "already been 
>> >merged over".  Here, you'll want to use 1-N, where N is the 
>revision 
>> >that the branch was created at.
>> >
>> >You should revert the commits in your trunk with the svnmerge init 
>> >command.
>> >
>> >Also, before committing, I suggest doing a diff to see exactly what 
>> >changes svnmerge.py is making to your . directory and see 
>if it makes 
>> >sense.
>> >
>> >Regards,
>> >Blair
>> >
>> 
>> I was under the impression svnmerge helped rid the need for revision 
>> numbers. Oh well...
>
>In simple cases svnmerge.py can hide the revision numbers.  If 
>you have a fairly simple merge problem:
>
>      /-----+------+-----+--------> branch
>     /       \      \     \
>----+---------*------*-----*------> trunk
>
>If you run "svnmerge.py init -S branch" on the trunk (and commit the
>change) just after creating the branch (wich "svn copy"), each 
>of the periodic branch -> trunk merges shown should just be:
>
>(in trunk working dir)
>svnmerge.py merge -S branch
>(resolve conflicts, verify svn diff output and test) svn ci
>
>svnmerge.py will keep track of the already-merged revisions 
>and not attempt to remerge them.
>
>However, with more complicated merge problems (especially 
>cherry picking changes or blocking revs from merging) it's 
>hard to avoid the revision numbers.
>
>> 
>> -chris
>
>Regards,
>	Jamie
>
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>> For additional commands, e-mail: users-help@subversion.tigris.org
>> 
>> 
>

Thanks to all here's what I did

Create cf branch and check out a local copy
> svn cp -m "bla" /repos/trunk/ /repos/branches/cf
> cd .../branches (sandbox)
> svn co /repos/branches/cf
> cd cf
> svnmerge init

Modify a file in the trunk copy and commit
> cd .../trunk
> (modify file)
> svn commit

Go back to branch copy and merge from trunk
> cd .../branch/cf
> svnmerge avail (shows avail updates)
> svnmerge merge
> svn commit

Go back to trunk copy and init trunk to prepare
branch-to-trunk merges
> cd .../trunk
> svnmerge init /repos/branches/cf

I get the following...
Traceback (most recent call last):
  File "/sw/local/bin/svnmerge", line 1924, in ?
    main(sys.argv[1:])
  File "/sw/local/bin/svnmerge", line 1864, in main
    check_old_prop_version(branch_dir, branch_props)
  File "/sw/local/bin/svnmerge", line 868, in check_old_prop_version
    h = rstrip(head, "/")
  File "/sw/local/bin/svnmerge", line 107, in rstrip
    if s[-1] != ch:
IndexError: string index out of range

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


RE: svnmerge.py

Posted by Ch...@qimonda.com.
 
>-----Original Message-----
>From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
>Sent: Thursday, August 17, 2006 10:45 AM
>To: Fouts Christopher (QNA RTP PT PREV)
>Cc: users@subversion.tigris.org
>Subject: Re: svnmerge.py
>
>On Thu, Aug 17, 2006 at 03:24:16PM +0200, 
>Chris.Fouts@qimonda.com wrote:
>>  
>> >-----Original Message-----
>> >From: Blair Zajac [mailto:blair@orcaware.com]
>> >Sent: Wednesday, August 16, 2006 5:52 PM
>> >To: Fouts Christopher (QNA RTP PT PREV)
>> >Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>> >Subject: Re: svnmerge.py
>> >
>> >Chris.Fouts@qimonda.com wrote:
>> >> I get...
>> >> svnmerge: no integration info available for repository path 
>> >> "/branches/cf"
>> >> 
>> >> Here's what I did.
>> >> Merge from trunk to branch
>> >>> cd to branch top dir
>> >>> svnmerge init
>> >>> svnmerge merge (merged from trunk) svn commit (Modify 
>branch file) 
>> >>> svn commit
>> >> 
>> >> Merge from branch to trunk
>> >>> cd to trunk top dir
>> >>> svnmerge init /myrepos/trunk
>> >
>> >You're telling init to merge changes from trunk back to itself.
>> >
>> >You need to tell it to merge from the branch and you'll need the -r 
>> >command line option to tell it which revisions have "already been 
>> >merged over".  Here, you'll want to use 1-N, where N is the 
>revision 
>> >that the branch was created at.
>> >
>> >You should revert the commits in your trunk with the svnmerge init 
>> >command.
>> >
>> >Also, before committing, I suggest doing a diff to see exactly what 
>> >changes svnmerge.py is making to your . directory and see 
>if it makes 
>> >sense.
>> >
>> >Regards,
>> >Blair
>> >
>> 
>> I was under the impression svnmerge helped rid the need for revision 
>> numbers. Oh well...
>
>In simple cases svnmerge.py can hide the revision numbers.  If 
>you have a fairly simple merge problem:
>
>      /-----+------+-----+--------> branch
>     /       \      \     \
>----+---------*------*-----*------> trunk
>
>If you run "svnmerge.py init -S branch" on the trunk (and commit the
>change) just after creating the branch (wich "svn copy"), each 
>of the periodic branch -> trunk merges shown should just be:
>
>(in trunk working dir)
>svnmerge.py merge -S branch
>(resolve conflicts, verify svn diff output and test) svn ci
>
>svnmerge.py will keep track of the already-merged revisions 
>and not attempt to remerge them.
>
>However, with more complicated merge problems (especially 
>cherry picking changes or blocking revs from merging) it's 
>hard to avoid the revision numbers.
>
>> 
>> -chris
>
>Regards,
>	Jamie
>
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>> For additional commands, e-mail: users-help@subversion.tigris.org
>> 
>> 
>

For some reason, the svnmerge.py tool I have, which I d/l'd just
yesterday,
does NOT have the -S option. What gives?


> svnmerge help init
usage: svnmerge init [OPTION...] [HEAD]

Initialize merge tracking from HEAD on the current working directory.

If HEAD is specified, all the revisions in HEAD are marked as already
merged;
if this is not correct, you can use --revision to specify the exact list
of
already-merged revisions.

If HEAD is omitted, then it is computed from the "svn cp" history of the
current working directory (searching back for the branch point); in this
case,
svnmerge assumes that no revision has been integrated yet since the
branch
point (unless you teach it with --revision).

Command options:
  -f [--commit-file] FILE : set the name of the file where the suggested
log
                            message is written to (default:
                            svnmerge-commit-message.txt)
  -r [--revision] REVLIST : specify a revision list, consisting of
revision
                            numbers and ranges separated by commas,
e.g.,
                            "534,537-539,540"

Global options:
  -F [--force]        : force operation even if the working copy is not
clean,
                        or there are pending updates
  -n [--dry-run]      : don't actually change anything, just pretend;
implies
                        --show-changes
  -s [--show-changes] : show subversion commands that make changes
  -v [--verbose]      : verbose mode: output more information about
progress
  -h [--help]         : show help for this command and exit
  -V [--version]      : show version info and exit

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: svnmerge.py

Posted by Jamie Wellnitz <Ja...@emulex.com>.
On Thu, Aug 17, 2006 at 03:24:16PM +0200, Chris.Fouts@qimonda.com wrote:
>  
> >-----Original Message-----
> >From: Blair Zajac [mailto:blair@orcaware.com] 
> >Sent: Wednesday, August 16, 2006 5:52 PM
> >To: Fouts Christopher (QNA RTP PT PREV)
> >Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
> >Subject: Re: svnmerge.py
> >
> >Chris.Fouts@qimonda.com wrote:
> >> I get...
> >> svnmerge: no integration info available for repository path 
> >> "/branches/cf"
> >> 
> >> Here's what I did.
> >> Merge from trunk to branch
> >>> cd to branch top dir
> >>> svnmerge init
> >>> svnmerge merge (merged from trunk)
> >>> svn commit
> >>> (Modify branch file)
> >>> svn commit
> >> 
> >> Merge from branch to trunk
> >>> cd to trunk top dir
> >>> svnmerge init /myrepos/trunk
> >
> >You're telling init to merge changes from trunk back to itself.
> >
> >You need to tell it to merge from the branch and you'll need 
> >the -r command line option to tell it which revisions have 
> >"already been merged over".  Here, you'll want to use 1-N, 
> >where N is the revision that the branch was created at.
> >
> >You should revert the commits in your trunk with the svnmerge 
> >init command.
> >
> >Also, before committing, I suggest doing a diff to see exactly 
> >what changes svnmerge.py is making to your . directory and see 
> >if it makes sense.
> >
> >Regards,
> >Blair
> >
> 
> I was under the impression svnmerge helped rid the need for
> revision numbers. Oh well...

In simple cases svnmerge.py can hide the revision numbers.  If you
have a fairly simple merge problem:

      /-----+------+-----+--------> branch
     /       \      \     \
----+---------*------*-----*------> trunk

If you run "svnmerge.py init -S branch" on the trunk (and commit the
change) just after creating the branch (wich "svn copy"), each of the
periodic branch -> trunk merges shown should just be:

(in trunk working dir)
svnmerge.py merge -S branch
(resolve conflicts, verify svn diff output and test)
svn ci

svnmerge.py will keep track of the already-merged revisions and not
attempt to remerge them.

However, with more complicated merge problems (especially cherry
picking changes or blocking revs from merging) it's hard to avoid the
revision numbers.

> 
> -chris

Regards,
	Jamie

> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Chris.Fouts@qimonda.com wrote:
>  
>> -----Original Message-----
>> From: Blair Zajac [mailto:blair@orcaware.com] 
>> Sent: Wednesday, August 16, 2006 5:52 PM
>> To: Fouts Christopher (QNA RTP PT PREV)
>> Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>> Subject: Re: svnmerge.py
>>
>> Chris.Fouts@qimonda.com wrote:
>>> I get...
>>> svnmerge: no integration info available for repository path 
>>> "/branches/cf"
>>>
>>> Here's what I did.
>>> Merge from trunk to branch
>>>> cd to branch top dir
>>>> svnmerge init
>>>> svnmerge merge (merged from trunk)
>>>> svn commit
>>>> (Modify branch file)
>>>> svn commit
>>> Merge from branch to trunk
>>>> cd to trunk top dir
>>>> svnmerge init /myrepos/trunk
>> You're telling init to merge changes from trunk back to itself.
>>
>> You need to tell it to merge from the branch and you'll need 
>> the -r command line option to tell it which revisions have 
>> "already been merged over".  Here, you'll want to use 1-N, 
>> where N is the revision that the branch was created at.
>>
>> You should revert the commits in your trunk with the svnmerge 
>> init command.
>>
>> Also, before committing, I suggest doing a diff to see exactly 
>> what changes svnmerge.py is making to your . directory and see 
>> if it makes sense.
>>
>> Regards,
>> Blair
>>
> 
> I was under the impression svnmerge helped rid the need for
> revision numbers. Oh well...

It does.

The reason you need to set this up is that svnmerge.py can't determine the 
source URL and revision range since you didn't copy trunk from the branch.  When 
you copy the branch from the trunk, svnmerge.py can figure that out automatically.

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: svnmerge.py

Posted by Ch...@qimonda.com.
 
>-----Original Message-----
>From: Blair Zajac [mailto:blair@orcaware.com] 
>Sent: Wednesday, August 16, 2006 5:52 PM
>To: Fouts Christopher (QNA RTP PT PREV)
>Cc: Jamie.Wellnitz@emulex.com; users@subversion.tigris.org
>Subject: Re: svnmerge.py
>
>Chris.Fouts@qimonda.com wrote:
>> I get...
>> svnmerge: no integration info available for repository path 
>> "/branches/cf"
>> 
>> Here's what I did.
>> Merge from trunk to branch
>>> cd to branch top dir
>>> svnmerge init
>>> svnmerge merge (merged from trunk)
>>> svn commit
>>> (Modify branch file)
>>> svn commit
>> 
>> Merge from branch to trunk
>>> cd to trunk top dir
>>> svnmerge init /myrepos/trunk
>
>You're telling init to merge changes from trunk back to itself.
>
>You need to tell it to merge from the branch and you'll need 
>the -r command line option to tell it which revisions have 
>"already been merged over".  Here, you'll want to use 1-N, 
>where N is the revision that the branch was created at.
>
>You should revert the commits in your trunk with the svnmerge 
>init command.
>
>Also, before committing, I suggest doing a diff to see exactly 
>what changes svnmerge.py is making to your . directory and see 
>if it makes sense.
>
>Regards,
>Blair
>

I was under the impression svnmerge helped rid the need for
revision numbers. Oh well...

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: svnmerge.py

Posted by Blair Zajac <bl...@orcaware.com>.
Chris.Fouts@qimonda.com wrote:
> I get...
> svnmerge: no integration info available for repository path
> "/branches/cf"
> 
> Here's what I did.
> Merge from trunk to branch
>> cd to branch top dir
>> svnmerge init
>> svnmerge merge (merged from trunk)
>> svn commit
>> (Modify branch file)
>> svn commit
> 
> Merge from branch to trunk
>> cd to trunk top dir
>> svnmerge init /myrepos/trunk

You're telling init to merge changes from trunk back to itself.

You need to tell it to merge from the branch and you'll need the -r command line 
option to tell it which revisions have "already been merged over".  Here, you'll 
want to use 1-N, where N is the revision that the branch was created at.

You should revert the commits in your trunk with the svnmerge init command.

Also, before committing, I suggest doing a diff to see exactly what changes 
svnmerge.py is making to your . directory and see if it makes sense.

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: svnmerge.py

Posted by Ch...@qimonda.com.
I get...
svnmerge: no integration info available for repository path
"/branches/cf"

Here's what I did.
Merge from trunk to branch
> cd to branch top dir
> svnmerge init
> svnmerge merge (merged from trunk)
> svn commit
> (Modify branch file)
> svn commit

Merge from branch to trunk
> cd to trunk top dir
> svnmerge init /myrepos/trunk
> svnmerge merge -S /myrepos/branches/cf

I get the above error.

>-----Original Message-----
>From: Jamie Wellnitz [mailto:Jamie.Wellnitz@emulex.com] 
>Sent: Wednesday, August 16, 2006 5:23 PM
>To: Fouts Christopher (QNA RTP PT PREV)
>Cc: users@subversion.tigris.org
>Subject: Re: svnmerge.py
>
>On Wed, Aug 16, 2006 at 10:59:23PM +0200, 
>Chris.Fouts@qimonda.com wrote:
>> Sorry if this is OT for this mailing list.
>> 
>> Can this tool merge changes from branch to trunk? I was able 
>to merge 
>> from trunk to branch, but can't figure how to merge the other way 
>> around.
>
>svnmerge.py's help should tell you.  The -S option is what you want.
>
>[in trunk working directory]
>svnmerge.py merge -S branch_name
>
>You'll "svnmerge.py init" run on the trunk beforehand, of course ...
>
>Thanks,
>	Jamie
>> 
>> --------------------------------------
>> Chris T Fouts
>> Qimonda NA
>> 3000 CentreGreen Way
>> Cary, NC 27513
>> Phone: (919)677-3016
>> Fax:   (919)678-1929
>> Email: chris.fouts@qimonda.com
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>> For additional commands, e-mail: users-help@subversion.tigris.org
>> 
>> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: svnmerge.py

Posted by Jamie Wellnitz <Ja...@emulex.com>.
On Wed, Aug 16, 2006 at 10:59:23PM +0200, Chris.Fouts@qimonda.com wrote:
> Sorry if this is OT for this mailing list.
> 
> Can this tool merge changes from branch
> to trunk? I was able to merge from trunk
> to branch, but can't figure how to merge
> the other way around.

svnmerge.py's help should tell you.  The -S option is what you want.

[in trunk working directory]
svnmerge.py merge -S branch_name

You'll "svnmerge.py init" run on the trunk beforehand, of course ...

Thanks,
	Jamie
> 
> --------------------------------------
> Chris T Fouts
> Qimonda NA
> 3000 CentreGreen Way
> Cary, NC 27513
> Phone: (919)677-3016
> Fax:   (919)678-1929
> Email: chris.fouts@qimonda.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org