You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by John Owens <jo...@yahoo.com> on 2009/08/23 22:36:46 UTC
2 repositories, how to branch into one, work there, then merge
back?
I work on a project that's stored on Google Code via svn.
I'd like to do a big change and store that in a local
svn server as I develop it, and then merge the whole big
change back onto Google Code when I'm done (with none of
the intermediate changes visible on Google Code). Didn't
find anything that dealt with the 2-server problem in the
FAQ and the book; sorry if I missed it.
I am guessing this is the sequence; can I get some feedback?
1) On my local repository, set up a svn externals for the
Google Code repository and check it out. (Is this right?
If I check in changes, will they go to Google Code or to
my local repository? I want the latter.)
2) Make changes, checking into my local repository.
3) Keep up to date with changes on the Google Code respository
with a simple svn update.
4) When I'm done, run a svn merge from my local repository
with an argument of the Google Code repository to push
the changes back to Google Code.
Those are I think the steps I want, but I'm unclear if I am
doing the right mechanics to make 'em work.
Also, my local repository is still running 1.4.2; should I be
pushing the admins to upgrade it >= 1.5 before I start this
process? (I know externals got better with 1.5.)
Thanks -
JDO
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2386591
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: 2 repositories, how to branch into one, work there, then merge
back?
Posted by James Mansion <ja...@mansionfamily.plus.com>.
John Owens wrote:
> I work on a project that's stored on Google Code via svn.
> I'd like to do a big change and store that in a local
> svn server as I develop it, and then merge the whole big
> change back onto Google Code when I'm done (with none of
> the intermediate changes visible on Google Code). Didn't
>
You might find some support from this in bzr - try asking there. (Tho on my
PC, the integration doesn't work properly and I disable it).
James
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2389935
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: 2 repositories, how to branch into one, work there, then merge
back?
Posted by Ulrich Eckhardt <ec...@satorlaser.com>.
On Monday 24 August 2009, John Owens wrote:
> I work on a project that's stored on Google Code via svn.
> I'd like to do a big change and store that in a local
> svn server as I develop it, and then merge the whole big
> change back onto Google Code when I'm done (with none of
> the intermediate changes visible on Google Code).
Why shouldn't the intermediate changes be visible? I find smaller steps easier
to understand and someone suggesting a giant, monolithic patch will have a
hard time getting it accepted upstream.
> I am guessing this is the sequence; can I get some feedback?
>
> 1) On my local repository, set up a svn externals for the
> Google Code repository and check it out. (Is this right?
> If I check in changes, will they go to Google Code or to
> my local repository? I want the latter.)
The changes will be committed externally, so this doesn't work.
Options:
0. Get access upstream. This is actually the preferred way IMHO, because it
integrates with upstream's development. Changes are seen earlier and, if
necessary, vetoed earlier, too.
1. Check out svn_load_dirs. This script takes a sourcetree and imports/updates
it into a repository. This is used for tracking vendor branches, which is
effectively what you want.
2. http://bitbucket.org/nikhilm/cq/src/tip/README
This is pretty similar to option 1, but it uses a different repository for
the local changes. The main advantage is the offline work, not so much the
independence from the upstream repository. I just added this here for
completeness, because I'm not 100% sure what your goals are.
Uli
--
ML: http://subversion.tigris.org/mailing-list-guidelines.html
FAQ: http://subversion.tigris.org/faq.html
Docs: http://svnbook.red-bean.com/
Sator Laser GmbH
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Sator Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Visit our website at <http://www.satorlaser.de/>
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Sator Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2386668
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: 2 repositories, how to branch into one, work there, then merge
back?
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Aug 23, 2009, at 18:03, John Owens wrote:
> Ryan Schmidt writes:
>
>> You should request commit access to the Google Code project, and
>> create a branch there, which can then be merged back to the trunk
>> when it's done.
>
> Oh, that'll work fine, I can totally do that. Duh. Didn't know
> Google Code could support that. Thanks Ryan.
Good. :) It will of course be up to the owners of the Google Code
project in question whether they give you commit access or not. But
doing your work there would be much better from a collaboration and
communication standpoint. Google Code is for open-source projects,
meaning they are developed in the open, so it's better that you don't
hide your work away in some separate repository. Do it in the main
repository, and commit to your branch early and often, so that other
project members see your changes and can provide feedback on them.
It's always good to have more eyes on your code, looking at it in
different ways than you might. They might point out issues you never
thought of. And it's much easier for someone to review small
individual changes as you're developing them than a single huge
change once you're done.
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2386596
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: 2 repositories, how to branch into one, work there, then merge
back?
Posted by John Owens <jo...@yahoo.com>.
Ryan Schmidt <subversion-2009b <at> ryandesign.com> writes:
> You should request commit access to the Google Code project, and
> create a branch there, which can then be merged back to the trunk
> when it's done.
Oh, that'll work fine, I can totally do that. Duh. Didn't know
Google Code could support that. Thanks Ryan.
JDO
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2386595
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: 2 repositories, how to branch into one, work there, then merge
back?
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Aug 23, 2009, at 17:36, John Owens wrote:
> I work on a project that's stored on Google Code via svn.
> I'd like to do a big change and store that in a local
> svn server as I develop it, and then merge the whole big
> change back onto Google Code when I'm done (with none of
> the intermediate changes visible on Google Code). Didn't
> find anything that dealt with the 2-server problem in the
> FAQ and the book; sorry if I missed it.
That's really not a workflow that's going to be possible with
Subversion.
You should request commit access to the Google Code project, and
create a branch there, which can then be merged back to the trunk
when it's done.
> I am guessing this is the sequence; can I get some feedback?
>
> 1) On my local repository, set up a svn externals for the
> Google Code repository and check it out. (Is this right?
> If I check in changes, will they go to Google Code or to
> my local repository? I want the latter.)
Changes to the contents of an external will go to the place the
external points to -- in this case, to the Google Code repository. So
that's not what you want.
> 2) Make changes, checking into my local repository.
>
> 3) Keep up to date with changes on the Google Code respository
> with a simple svn update.
>
> 4) When I'm done, run a svn merge from my local repository
> with an argument of the Google Code repository to push
> the changes back to Google Code.
>
> Those are I think the steps I want, but I'm unclear if I am
> doing the right mechanics to make 'em work.
>
> Also, my local repository is still running 1.4.2; should I be
> pushing the admins to upgrade it >= 1.5 before I start this
> process? (I know externals got better with 1.5.)
Relative externals are possible with 1.5 but externals are probably
not relevant to what you want to accomplish.
If you cannot gain commit access to the main repository, you could
handle it like a vendor branch. There is a chapter in the book on
vendor branches. Basically you import the entire existing code into
your repository at /vendor/PROJECT/current (this is akin to trunk,
except you never make your own changes here or anywhere else inside /
vendor; this is meant to be an exact unmodified copy of the vendor
software). Then you copy it to /vendor/PROJECT/VERSION (this is akin
to a tag). Then you copy it to /SOMEWHERE/PROJECT. Then you start
making changes in /SOMEWHERE/PROJECT. Once you're done, you can ask
your repository for a diff between /vendor/PROJECT/VERSION and /
SOMEWHERE/PROJECT and send that as a patch to the owners of the main
repository.
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2386593
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].