emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Switching to bzr: what Emacs developers should know?


From: Óscar Fuentes
Subject: Re: Switching to bzr: what Emacs developers should know?
Date: Sun, 09 Aug 2009 04:24:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

Bastien <address@hidden> writes:

>> Presumably, you've seen this, yes?:
>> http://www.emacswiki.org/emacs/BzrForEmacsDevs
>
>> First, initialize a repository in which to store all your branches:
>> 
>>       bzr init-repo --2a emacs/
>
> (I hope we won't need this "--2a" option anytime soon.)

Why?

The 2a format speeds up some operations and will be the default format
for bzr 2.0 (to be released some weeks from now).

>> Create a branch that will just be a mirror of the mainline. You’ll
>> never make any changes to this branch; its job is just to reflect the
>> upstream master:
>> 
>>       cd emacs/
>>       bzr branch http://bzr.savannah.gnu.org/sources/emacs/trunk/ trunk/
>
> Is this "trunk" branch necessary, or just a convenience?  

A big convenience.

> Why isn't the default branch enough for the trunk-tasks described 
> in this page?

If you work with feature branches, having a local mirror saves a lot of
network traffic when creating the branches and allows branching while
off-line.

>> And after refreshing the mirror, you’ll want to get those changes into
>> your task branch, by merging them:
>> 
>>       cd SOME-TASKNAME/
>>       bzr merge
>>       bzr commit -m "Merge from mainline."
>
> Is this merge happening between the local branch and the trunk or the
> local branch and the default branch?  

By default, the merge will happen between the branch you are working on
(what you call "local branch") and your mirror branch.

>> If you’re one of the Emacs maintainers, then you can just push it
>> directly to the upstream master:
>> 
>>       bzr push %%bzr+ssh://bzr.savannah.gnu.org/sources/emacs/trunk/%%
>
> Any chance to reduce this to "bzr push"?  

bzr will remember the location you used for push, pull, etc and will use
it as the default for the next same operation.

> IIUC this sequence will do:
>
> ,----
> | cd SOME-TASK/
> | echo "public_branch = http://bzr.savannah.gnu.org/sources/emacs/trunk"; >> 
> .bzr/branch/config
> | bzr bind http://bzr.savannah.gnu.org/sources/emacs/trunk/
> | cd ..
> `----
>
> Then "bzr push" will push to the public_branch location.  Am I right?

Yes, but this is no different from what CVS does: every commit goes
straight away to the central repo.

BTW, I wouldn't recommend the echo trick quoted abobe. If in doubt, use
the --remeber option to store the location.

-- 
Óscar





reply via email to

[Prev in Thread] Current Thread [Next in Thread]