You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Sven Richter <sv...@googlemail.com> on 2013/09/30 14:28:30 UTC

Copy changes from one branch to another

Hi,

I have the following setup

trunk   branch A (created from trunk)
 |             |
 |             |
 |             |

Now, what I want to do is only commit my changes to the trunk and make
sure that every committed change is replicated into branch A. This
should be an automatic commit, triggered by the commit to trunk, while
being aware of the fact that no other changes should be done in branch
A but the autocommit from trunk.
Another "would-like" requirement is that the commit metadata like
author and commit time/date are kept, but this is not a must have.

Is that possible with svn, maybe with autocommit hooks? If not, what
other way would you see to achieve that?

Best Regards,
Sven

Re: Copy changes from one branch to another

Posted by Sven Richter <sv...@googlemail.com>.
Hi,

thank you all for your input. I guess we are on the right track now.
Thinking about what you said we will go the different way, instead of
committing to branch A, the testsystem that should use branch A will
pull all changes from the trunk. If there is a merge error we can
handle this manually, however, this way around we guess it will be
easier to automate.

Thanks again,
Sven

On Mon, Sep 30, 2013 at 7:30 PM, Les Mikesell <le...@gmail.com> wrote:
> On Mon, Sep 30, 2013 at 12:13 PM, Bob Archer <Bo...@amsi.com> wrote:
>>>
>>> But that has the effect that i will have all the changes from trunk in branch A,
>>> which is not what I want. I only want some certain changes inside there, the
>>> changes committed from our team.
>>>
>>
>> Common stuff should be brought in with Externals rather than a merge. That may be a better use case considering what you are asking for.
>
> Yes, if different teams are working on different components, using
> externals is the way to go even if it takes some effort to arrange
> things into neat subdirectories for easy reference.  Besides giving
> you a way to pull in the changes cleanly, it also gives you a way to
> version those points separately and each component can have its own
> release/tagging process and the consuming projects can adjust their
> references when they are ready.
>
> --
>     Les Mikesell
>        lesmikesell@gmail.com

Re: Copy changes from one branch to another

Posted by Les Mikesell <le...@gmail.com>.
On Mon, Sep 30, 2013 at 12:13 PM, Bob Archer <Bo...@amsi.com> wrote:
>>
>> But that has the effect that i will have all the changes from trunk in branch A,
>> which is not what I want. I only want some certain changes inside there, the
>> changes committed from our team.
>>
>
> Common stuff should be brought in with Externals rather than a merge. That may be a better use case considering what you are asking for.

Yes, if different teams are working on different components, using
externals is the way to go even if it takes some effort to arrange
things into neat subdirectories for easy reference.  Besides giving
you a way to pull in the changes cleanly, it also gives you a way to
version those points separately and each component can have its own
release/tagging process and the consuming projects can adjust their
references when they are ready.

-- 
    Les Mikesell
       lesmikesell@gmail.com

Re: Copy changes from one branch to another

Posted by Rajesh Patwardhan <ra...@gmail.com>.

On 9/30/13 10:13 AM, "Bob Archer" <Bo...@amsi.com> wrote:

>> On Mon, Sep 30, 2013 at 3:14 PM, Andrew Reedick
>> <An...@cbeyond.net> wrote:
>> >
>> > Post commit script that deletes branch A and then recreates branch A
>>from
>> trunk, i.e. make branch A effectively a tag.  Since the delete and copy
>>are server
>> side commands, no workspace is needed to make it work.  However this
>>will fail
>> if (when) you need to make custom changes on branch A.
>> 
>> But that has the effect that i will have all the changes from trunk in
>>branch A,
>> which is not what I want. I only want some certain changes inside
>>there, the
>> changes committed from our team.
>> 
>> Best Regards,
>> Sven
>
>Common stuff should be brought in with Externals rather than a merge.
>That may be a better use case considering what you are asking for.
>	

  If I understood the question correctly Š
  then a contrarian approach is to not commit your Team A work to trunk
but rather to your Branch A and then merge up to trunk when you are ready
with your changes.
  That way branch A is what you need.
  With git this is the common workflow, with new subversion this should be
more easily possible. Any ways conflicts are \ will need to be resolved by
humans.
  My 2c .. Hope this helps.




RE: Copy changes from one branch to another

Posted by Bob Archer <Bo...@amsi.com>.
> On Mon, Sep 30, 2013 at 3:14 PM, Andrew Reedick
> <An...@cbeyond.net> wrote:
> >
> > Post commit script that deletes branch A and then recreates branch A from
> trunk, i.e. make branch A effectively a tag.  Since the delete and copy are server
> side commands, no workspace is needed to make it work.  However this will fail
> if (when) you need to make custom changes on branch A.
> 
> But that has the effect that i will have all the changes from trunk in branch A,
> which is not what I want. I only want some certain changes inside there, the
> changes committed from our team.
> 
> Best Regards,
> Sven

Common stuff should be brought in with Externals rather than a merge. That may be a better use case considering what you are asking for.

RE: Copy changes from one branch to another

Posted by Andrew Reedick <An...@cbeyond.net>.
> -----Original Message-----
> From: Sven Richter [mailto:sveri80@googlemail.com] 
> Sent: Monday, September 30, 2013 9:43 AM
> To: users@subversion.apache.org
> Subject: Re: Copy changes from one branch to another
>
> Hi,
>
>
>
> On Mon, Sep 30, 2013 at 3:14 PM, Andrew Reedick <An...@cbeyond.net> wrote:
> >
> > Post commit script that deletes branch A and then recreates branch A from trunk, i.e. make branch A effectively a tag.  Since the delete and copy are server side commands, no workspace is needed to make it work.  However this will fail if (when) you need to make custom changes on branch A.
>
> But that has the effect that i will have all the changes from trunk in branch A, which is not what I want. I only want some certain changes inside there, the changes committed from our team.

Go with Thorsten Schöning's svn:externals solution.  If you can't use svn:externals then you'll most likely need to merge, which requires a workspace and runs the risk of merge conflicts, which tends to preclude automation.  Either way, be careful that you're not trying to replace a complicated workflow/process with overly simplistic automation, i.e. don't replace merging or a formal delivery process with mindless automated commit replication.



Re: Copy changes from one branch to another

Posted by Sven Richter <sv...@googlemail.com>.
Hi,



On Mon, Sep 30, 2013 at 3:14 PM, Andrew Reedick
<An...@cbeyond.net> wrote:
>
> Post commit script that deletes branch A and then recreates branch A from trunk, i.e. make branch A effectively a tag.  Since the delete and copy are server side commands, no workspace is needed to make it work.  However this will fail if (when) you need to make custom changes on branch A.

But that has the effect that i will have all the changes from trunk in
branch A, which is not what I want. I only want some certain changes
inside there, the changes committed from our team.

Best Regards,
Sven

RE: Copy changes from one branch to another

Posted by Andrew Reedick <An...@cbeyond.net>.
> -----Original Message-----
> From: Sven Richter [mailto:sveri80@googlemail.com] 
> Sent: Monday, September 30, 2013 8:29 AM
> To: users@subversion.apache.org
> Subject: Copy changes from one branch to another
>
> Hi,
>
> I have the following setup
>
> trunk   branch A (created from trunk)
>  |             |
>  |             |
>  |             |
>
> Now, what I want to do is only commit my changes to the trunk and make sure that every committed change is replicated into branch A. This should be an automatic commit, triggered by the commit to trunk, while being aware of the fact that no other changes should be done in branch A but the autocommit from trunk.
> Another "would-like" requirement is that the commit metadata like author and commit time/date are kept, but this is not a must have.
>
> Is that possible with svn, maybe with autocommit hooks? If not, what other way would you see to achieve that?

Post commit script that deletes branch A and then recreates branch A from trunk, i.e. make branch A effectively a tag.  Since the delete and copy are server side commands, no workspace is needed to make it work.  However this will fail if (when) you need to make custom changes on branch A.



Re: Copy changes from one branch to another

Posted by Thorsten Schöning <ts...@am-soft.de>.
Guten Tag Sven Richter,
am Montag, 30. September 2013 um 14:53 schrieben Sie:

> Well, the way has come a long way and to reproduce it would take me a
> lot of time so i would please you and the others to just take it as
> given.

That implies that your description is the best or maybe even only
solution to your problem, what may be the case, but maybe more easier
things would work, too. We don't know, what we know is that there are
different possibilities to achieve your goal.

> Well, in case of our teams code base this is true. But our teams code
> base only makes up a small part of the whole trunk, so there are some
> dependencies (code and compiled libs) which are different in the two
> branches.
> And we do have to run tests against both branches to make sure it
> works with the different dependencies.
> Does that make sense?

This reads slightly different than how I understood your question in
the first way, I thought branch A is a replication of trunk, too. From
what it sounds like now I would try to version only those things in
branch A which a really needed because they are different than your
trunk-based test setup and use svn:externals to always pull in the
most recet code changes from trunk into a working copy to test based
on that. This will assure your to alwaays test with the latest changes
from trunk, while minimizing the need to merge something around, but
keeping you able to commit changes on branch A-specific libs,
configuration or whatever.

Mit freundlichen Grüßen,

Thorsten Schöning

-- 
Thorsten Schöning       E-Mail:Thorsten.Schoening@AM-SoFT.de
AM-SoFT IT-Systeme      http://www.AM-SoFT.de/

Telefon...........05151-  9468- 55
Fax...............05151-  9468- 88
Mobil..............0178-8 9468- 04

AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow


RE: Copy changes from one branch to another

Posted by Bob Archer <Bo...@amsi.com>.
> On Mon, Sep 30, 2013 at 2:45 PM, Grierson, David
> <Da...@bskyb.com> wrote:
> > Um ... why?
> Well, the way has come a long way and to reproduce it would take me a lot of
> time so i would please you and the others to just take it as given.
> 
> > Wouldn't this mean that trunk and branch A are identical at all times - in
> which case what's the purpose of branch A over trunk?
> Well, in case of our teams code base this is true. But our teams code base only
> makes up a small part of the whole trunk, so there are some dependencies
> (code and compiled libs) which are different in the two branches.
> And we do have to run tests against both branches to make sure it works with
> the different dependencies.
> Does that make sense?

Then this should not be automated. There is always the possibility of a conflict during the merge, and a person will have to resolve those. 

BOb


> 
> Best Regards,
> Sven
> 
> >
> >> -----Original Message-----
> >> From: Sven Richter [mailto:sveri80@googlemail.com]
> >> Sent: 30 September 2013 13:29
> >> To: users@subversion.apache.org
> >> Subject: Copy changes from one branch to another
> >>
> >> Hi,
> >>
> >> I have the following setup
> >>
> >> trunk   branch A (created from trunk)
> >>  |             |
> >>  |             |
> >>  |             |
> >>
> >> Now, what I want to do is only commit my changes to the trunk and
> >> make sure that every committed change is replicated into branch A.
> >> This should be an automatic commit, triggered by the commit to trunk,
> >> while being aware of the fact that no other changes should be done in
> >> branch A but the autocommit from trunk.
> >> Another "would-like" requirement is that the commit metadata like
> >> author and commit time/date are kept, but this is not a must have.
> >>
> >> Is that possible with svn, maybe with autocommit hooks? If not, what
> >> other way would you see to achieve that?
> >>
> >> Best Regards,
> >> Sven
> >
> >
> > Information in this email including any attachments may be privileged,
> confidential and is intended exclusively for the addressee. The views expressed
> may not be official policy, but the personal views of the originator. If you have
> received it in error, please notify the sender by return e-mail and delete it from
> your system. You should not reproduce, distribute, store, retransmit, use or
> disclose its contents to anyone. Please note we reserve the right to monitor all
> e-mail communication through our internal and external networks. SKY and the
> SKY marks are trademarks of British Sky Broadcasting Group plc and Sky
> International AG and are used under licence. British Sky Broadcasting Limited
> (Registration No. 2906991), Sky-In-Home Service Limited (Registration No.
> 2067075) and Sky Subscribers Services Limited (Registration No. 2340150) are
> direct or indirect subsidiaries of British Sky Broadcasting Group plc
> (Registration No. 2247735). All of the companies mentioned in this paragraph
> are incorporated in England and Wales and share the same registered office at
> Grant Way, Isleworth, Middlesex TW7 5QD.
> >
> >

Re: Copy changes from one branch to another

Posted by Sven Richter <sv...@googlemail.com>.
Hi,

On Mon, Sep 30, 2013 at 2:45 PM, Grierson, David
<Da...@bskyb.com> wrote:
> Um ... why?
Well, the way has come a long way and to reproduce it would take me a
lot of time so i would please you and the others to just take it as
given.

> Wouldn't this mean that trunk and branch A are identical at all times - in which case what's the purpose of branch A over trunk?
Well, in case of our teams code base this is true. But our teams code
base only makes up a small part of the whole trunk, so there are some
dependencies (code and compiled libs) which are different in the two
branches.
And we do have to run tests against both branches to make sure it
works with the different dependencies.
Does that make sense?

Best Regards,
Sven

>
>> -----Original Message-----
>> From: Sven Richter [mailto:sveri80@googlemail.com]
>> Sent: 30 September 2013 13:29
>> To: users@subversion.apache.org
>> Subject: Copy changes from one branch to another
>>
>> Hi,
>>
>> I have the following setup
>>
>> trunk   branch A (created from trunk)
>>  |             |
>>  |             |
>>  |             |
>>
>> Now, what I want to do is only commit my changes to the trunk and make
>> sure that every committed change is replicated into branch A. This
>> should be an automatic commit, triggered by the commit to trunk, while
>> being aware of the fact that no other changes should be done in branch
>> A but the autocommit from trunk.
>> Another "would-like" requirement is that the commit metadata like
>> author and commit time/date are kept, but this is not a must have.
>>
>> Is that possible with svn, maybe with autocommit hooks? If not, what
>> other way would you see to achieve that?
>>
>> Best Regards,
>> Sven
>
>
> Information in this email including any attachments may be privileged, confidential and is intended exclusively for the addressee. The views expressed may not be official policy, but the personal views of the originator. If you have received it in error, please notify the sender by return e-mail and delete it from your system. You should not reproduce, distribute, store, retransmit, use or disclose its contents to anyone. Please note we reserve the right to monitor all e-mail communication through our internal and external networks. SKY and the SKY marks are trademarks of British Sky Broadcasting Group plc and Sky International AG and are used under licence. British Sky Broadcasting Limited (Registration No. 2906991), Sky-In-Home Service Limited (Registration No. 2067075) and Sky Subscribers Services Limited (Registration No. 2340150) are direct or indirect subsidiaries of British Sky Broadcasting Group plc (Registration No. 2247735). All of the companies mentioned in this paragraph are incorporated in England and Wales and share the same registered office at Grant Way, Isleworth, Middlesex TW7 5QD.
>
>

RE: Copy changes from one branch to another

Posted by "Grierson, David" <Da...@bskyb.com>.
Um ... why?

Wouldn't this mean that trunk and branch A are identical at all times - in which case what's the purpose of branch A over trunk?

Dg.
--
David Grierson - SDLC Tools Specialist 
Sky Broadcasting - Customer Business Systems - SDLC Tools
Tel: +44 1506 325100 / Email: David.Grierson@bskyb.com / Chatter: CBS SDLC Tools
Watermark Building, Alba Campus, Livingston, EH54 7HH
 

> -----Original Message-----
> From: Sven Richter [mailto:sveri80@googlemail.com]
> Sent: 30 September 2013 13:29
> To: users@subversion.apache.org
> Subject: Copy changes from one branch to another
> 
> Hi,
> 
> I have the following setup
> 
> trunk   branch A (created from trunk)
>  |             |
>  |             |
>  |             |
> 
> Now, what I want to do is only commit my changes to the trunk and make
> sure that every committed change is replicated into branch A. This
> should be an automatic commit, triggered by the commit to trunk, while
> being aware of the fact that no other changes should be done in branch
> A but the autocommit from trunk.
> Another "would-like" requirement is that the commit metadata like
> author and commit time/date are kept, but this is not a must have.
> 
> Is that possible with svn, maybe with autocommit hooks? If not, what
> other way would you see to achieve that?
> 
> Best Regards,
> Sven


Information in this email including any attachments may be privileged, confidential and is intended exclusively for the addressee. The views expressed may not be official policy, but the personal views of the originator. If you have received it in error, please notify the sender by return e-mail and delete it from your system. You should not reproduce, distribute, store, retransmit, use or disclose its contents to anyone. Please note we reserve the right to monitor all e-mail communication through our internal and external networks. SKY and the SKY marks are trademarks of British Sky Broadcasting Group plc and Sky International AG and are used under licence. British Sky Broadcasting Limited (Registration No. 2906991), Sky-In-Home Service Limited (Registration No. 2067075) and Sky Subscribers Services Limited (Registration No. 2340150) are direct or indirect subsidiaries of British Sky Broadcasting Group plc (Registration No. 2247735). All of the companies mentioned in this paragraph are incorporated in England and Wales and share the same registered office at Grant Way, Isleworth, Middlesex TW7 5QD.