You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by emerson <ec...@gmail.com> on 2010/06/16 18:06:39 UTC

Applying multiple commits done to a branch to another branch

Hi

We are moving from a single trunk to a layered approach, with a
unstable (same as the old trunk), and a stable branch. The code should
be promoted to the stable branch only when a certain story would be
done (finished and tested).
When creating the story, several commits might had been necessary to
complete it, and in all of them would have the story code (eg:#3145)
on the commit message.

Now my question: what is the best way to apply just the changes that
were part of a specific story, and still keep all the individual
commit comments?

At a first thought, I think we would have to first locate all the
changes to svn that had that code on the commit message, and then
re-apply them to the stable branch, just not sure how to do it.

Any ideas?

regards
Emerson

Re: Applying multiple commits done to a branch to another branch

Posted by Andy Levy <an...@gmail.com>.
On Wed, Jun 16, 2010 at 14:20, Bob Archer <Bo...@amsi.com> wrote:
>
>> You're describing a normal usage of merging.
>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
>>
>> You don't want to redo all those commit messages, you want the merge
>> to be aware of the history behind everything that's been done (which,
>> if you're using 1.5 or later, is taken care of), so that svn log can
>> trace back & all those messages fall right in line.
>
> Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?

I thought it did, maybe I'm misremembering. It's been ages since I've
done a merge.

RE: Applying multiple commits done to a branch to another branch

Posted by Tony Sweeney <ts...@omnifone.com>.
 svn merge [source svn location] -c 444,469,480

> -----Original Message-----
> From: emerson [mailto:echofloripa.yell@gmail.com] 
> Sent: 05 July 2010 17:38
> To: Andy Levy; users@subversion.apache.org
> Subject: Re: Applying multiple commits done to a branch to 
> another branch
> 
> Hi
> 
> I was told that I could use the following syntax to merge 
> different revisions at once:
> 
> svn merge [source svn location] -c 444 -c 469 -c 480
> 
> However, when I tried using this syntax I found out that all 
> merges are done against the initial state of the current 
> folder which resulted in conflicts, as in some cases the 
> differents commits were related to the same bit of code.
> 
> Is there anyway to have in one command line a behaviour that 
> would take in account the previous revisions?
> 
> thanks
> Emerson
> 
> On 17 June 2010 14:53, emerson <ec...@gmail.com> wrote:
> > On 17 June 2010 13:29, Andy Levy <an...@gmail.com> wrote:
> >> On Thu, Jun 17, 2010 at 05:38, emerson 
> <ec...@gmail.com> wrote:
> >>> Hi Guys
> >>>
> >>> Thanks for the answers.
> >>> First Andy, yes, we put more than the story code on the 
> commits :) 
> >>> We are using svn 1.4.4 ont he server, so to be able to 
> keep track of 
> >>> the ancestors logs we will probably need to upgrade.
> >>
> >> Note that the 1.4 series has not been supported for quite 
> some time, 
> >> and when 1.7 is released, 1.5 support will be dropped. You 
> definitely 
> >> ought to upgrade.
> >>
> >
> > We are going to move to the latest stable 1.6.11.
> >
> >>> Still, I believe we need some tool to search the logs for that 
> >>> especific #xxxx code of the story.
> >>> Correct me if I am wrong, but from there I would have to 
> collect all 
> >>> the revision numbers, and apply them in a single merge 
> manually? Is 
> >>> there any way to automate this?
> >>
> >> If each story gets its own branch, then you don't have to 
> worry about that.
> >
> > We might in the future go for a bigger isolation level like 
> this, but 
> > at this point we will work with two different branches, a unstable 
> > (which would be our current trunk) and a stable, which will get 
> > promoted a story at a time.
> >
> > We needed something like this:
> >
> > Ex: searchsvnapp http://[repo location root] #s1322
> >
> > result:
> > revisions: 4233,4249,4313
> >
> > This would then be copied and pasted in a merge command that would 
> > allow to apply all the revisions at once.
> >
> > I know that tortoise can do that, how can that be done on 
> the command 
> > line? Or through some API maybe?
> >
> > BTW, Is there any way to use the merge command to apply several 
> > revisions at once?
> >
> > Thanks
> > Emerson
> >
> >>> On 16 June 2010 22:40, Daniel Becroft 
> <dj...@gmail.com> wrote:
> >>>> On Thu, Jun 17, 2010 at 4:20 AM, Bob Archer 
> <Bo...@amsi.com> wrote:
> >>>>>
> >>>>>> You're describing a normal usage of merging.
> >>>>>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
> >>>>>>
> >>>>>> You don't want to redo all those commit messages, you want the 
> >>>>>> merge to be aware of the history behind everything that's been 
> >>>>>> done (which, if you're using 1.5 or later, is taken 
> care of), so 
> >>>>>> that svn log can trace back & all those messages fall 
> right in line.
> >>>>>
> >>>>> Really... I didn't know this happened. If you look at 
> the log of trunk where you have merged in from branch won't 
> it only show the merge as a single rev with the message you 
> made in the merge commit. How will you be able to trace the 
> log back through the changes made in branch?
> >>>>
> >>>> It does, but not by default. You need to use the 
> >>>> '-g/--use-merge-history' switch.
> >>>>
> >>>> 
> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.htm
> >>>> l#svn.branchmerge.advanced.logblame
> >>>>
> >>>> Cheers,
> >>>> Daniel B.
> >>>>
> >>>
> >>
> >
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit 
> http://www.messagelabs.com/email 
> ______________________________________________________________________
> 

Re: Applying multiple commits done to a branch to another branch

Posted by emerson <ec...@gmail.com>.
Hi

I was told that I could use the following syntax to merge different
revisions at once:

svn merge [source svn location] -c 444 -c 469 -c 480

However, when I tried using this syntax I found out that all merges
are done against the initial state of the current folder which
resulted in conflicts, as in some cases the differents commits were
related to the same bit of code.

Is there anyway to have in one command line a behaviour that would
take in account the previous revisions?

thanks
Emerson

On 17 June 2010 14:53, emerson <ec...@gmail.com> wrote:
> On 17 June 2010 13:29, Andy Levy <an...@gmail.com> wrote:
>> On Thu, Jun 17, 2010 at 05:38, emerson <ec...@gmail.com> wrote:
>>> Hi Guys
>>>
>>> Thanks for the answers.
>>> First Andy, yes, we put more than the story code on the commits :)
>>> We are using svn 1.4.4 ont he server, so to be able to keep track of
>>> the ancestors logs we will probably need to upgrade.
>>
>> Note that the 1.4 series has not been supported for quite some time,
>> and when 1.7 is released, 1.5 support will be dropped. You definitely
>> ought to upgrade.
>>
>
> We are going to move to the latest stable 1.6.11.
>
>>> Still, I believe we need some tool to search the logs for that
>>> especific #xxxx code of the story.
>>> Correct me if I am wrong, but from there I would have to collect all
>>> the revision numbers, and apply them in a single merge manually? Is
>>> there any way to automate this?
>>
>> If each story gets its own branch, then you don't have to worry about that.
>
> We might in the future go for a bigger isolation level like this, but
> at this point we will work with two different branches, a unstable
> (which would be our current trunk) and a stable, which will get
> promoted a story at a time.
>
> We needed something like this:
>
> Ex: searchsvnapp http://[repo location root] #s1322
>
> result:
> revisions: 4233,4249,4313
>
> This would then be copied and pasted in a merge command that would
> allow to apply all the revisions at once.
>
> I know that tortoise can do that, how can that be done on the command
> line? Or through some API maybe?
>
> BTW, Is there any way to use the merge command to apply several
> revisions at once?
>
> Thanks
> Emerson
>
>>> On 16 June 2010 22:40, Daniel Becroft <dj...@gmail.com> wrote:
>>>> On Thu, Jun 17, 2010 at 4:20 AM, Bob Archer <Bo...@amsi.com> wrote:
>>>>>
>>>>>> You're describing a normal usage of merging.
>>>>>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
>>>>>>
>>>>>> You don't want to redo all those commit messages, you want the merge
>>>>>> to be aware of the history behind everything that's been done (which,
>>>>>> if you're using 1.5 or later, is taken care of), so that svn log can
>>>>>> trace back & all those messages fall right in line.
>>>>>
>>>>> Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?
>>>>
>>>> It does, but not by default. You need to use the
>>>> '-g/--use-merge-history' switch.
>>>>
>>>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.logblame
>>>>
>>>> Cheers,
>>>> Daniel B.
>>>>
>>>
>>
>

Re: Applying multiple commits done to a branch to another branch

Posted by Andy Levy <an...@gmail.com>.
On Thu, Jun 17, 2010 at 05:38, emerson <ec...@gmail.com> wrote:
> Hi Guys
>
> Thanks for the answers.
> First Andy, yes, we put more than the story code on the commits :)
> We are using svn 1.4.4 ont he server, so to be able to keep track of
> the ancestors logs we will probably need to upgrade.

Note that the 1.4 series has not been supported for quite some time,
and when 1.7 is released, 1.5 support will be dropped. You definitely
ought to upgrade.

> Still, I believe we need some tool to search the logs for that
> especific #xxxx code of the story.
> Correct me if I am wrong, but from there I would have to collect all
> the revision numbers, and apply them in a single merge manually? Is
> there any way to automate this?

If each story gets its own branch, then you don't have to worry about that.

> On 16 June 2010 22:40, Daniel Becroft <dj...@gmail.com> wrote:
>> On Thu, Jun 17, 2010 at 4:20 AM, Bob Archer <Bo...@amsi.com> wrote:
>>>
>>>> You're describing a normal usage of merging.
>>>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
>>>>
>>>> You don't want to redo all those commit messages, you want the merge
>>>> to be aware of the history behind everything that's been done (which,
>>>> if you're using 1.5 or later, is taken care of), so that svn log can
>>>> trace back & all those messages fall right in line.
>>>
>>> Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?
>>
>> It does, but not by default. You need to use the
>> '-g/--use-merge-history' switch.
>>
>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.logblame
>>
>> Cheers,
>> Daniel B.
>>
>

Re: Applying multiple commits done to a branch to another branch

Posted by emerson <ec...@gmail.com>.
Hi Guys

Thanks for the answers.
First Andy, yes, we put more than the story code on the commits :)
We are using svn 1.4.4 ont he server, so to be able to keep track of
the ancestors logs we will probably need to upgrade.

Still, I believe we need some tool to search the logs for that
especific #xxxx code of the story.
Correct me if I am wrong, but from there I would have to collect all
the revision numbers, and apply them in a single merge manually? Is
there any way to automate this?

thanks
emerson

On 16 June 2010 22:40, Daniel Becroft <dj...@gmail.com> wrote:
> On Thu, Jun 17, 2010 at 4:20 AM, Bob Archer <Bo...@amsi.com> wrote:
>>
>>> You're describing a normal usage of merging.
>>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
>>>
>>> You don't want to redo all those commit messages, you want the merge
>>> to be aware of the history behind everything that's been done (which,
>>> if you're using 1.5 or later, is taken care of), so that svn log can
>>> trace back & all those messages fall right in line.
>>
>> Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?
>
> It does, but not by default. You need to use the
> '-g/--use-merge-history' switch.
>
> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.logblame
>
> Cheers,
> Daniel B.
>

Re: Applying multiple commits done to a branch to another branch

Posted by Daniel Becroft <dj...@gmail.com>.
On Thu, Jun 17, 2010 at 4:20 AM, Bob Archer <Bo...@amsi.com> wrote:
>
>> You're describing a normal usage of merging.
>> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
>>
>> You don't want to redo all those commit messages, you want the merge
>> to be aware of the history behind everything that's been done (which,
>> if you're using 1.5 or later, is taken care of), so that svn log can
>> trace back & all those messages fall right in line.
>
> Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?

It does, but not by default. You need to use the
'-g/--use-merge-history' switch.

http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.logblame

Cheers,
Daniel B.

RE: Applying multiple commits done to a branch to another branch

Posted by Bob Archer <Bo...@amsi.com>.
 
> You're describing a normal usage of merging.
> http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html
> 
> You don't want to redo all those commit messages, you want the merge
> to be aware of the history behind everything that's been done (which,
> if you're using 1.5 or later, is taken care of), so that svn log can
> trace back & all those messages fall right in line.

Really... I didn't know this happened. If you look at the log of trunk where you have merged in from branch won't it only show the merge as a single rev with the message you made in the merge commit. How will you be able to trace the log back through the changes made in branch?

BOb

Re: Applying multiple commits done to a branch to another branch

Posted by Andy Levy <an...@gmail.com>.
On Wed, Jun 16, 2010 at 14:06, emerson <ec...@gmail.com> wrote:
> Hi
>
> We are moving from a single trunk to a layered approach, with a
> unstable (same as the old trunk), and a stable branch. The code should
> be promoted to the stable branch only when a certain story would be
> done (finished and tested).
> When creating the story, several commits might had been necessary to
> complete it, and in all of them would have the story code (eg:#3145)
> on the commit message.

I hope your commits have more than just a number in them, maybe
describing the changes that were made to the code.

> Now my question: what is the best way to apply just the changes that
> were part of a specific story, and still keep all the individual
> commit comments?
>
> At a first thought, I think we would have to first locate all the
> changes to svn that had that code on the commit message, and then
> re-apply them to the stable branch, just not sure how to do it.

You're describing a normal usage of merging.
http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html

You don't want to redo all those commit messages, you want the merge
to be aware of the history behind everything that's been done (which,
if you're using 1.5 or later, is taken care of), so that svn log can
trace back & all those messages fall right in line.