Os passos abaixo foram feitos para que pessoas trabalhem em paralelo num determinado branch e que este branch, assim como outros, sejam integrados no trunk posteriormente.
$ ssh ccsl.ime.usp.br
ccsl$ cd /var/local/bzr/integrade/
if ( (bzr --version) > 1.12) ) {
ccsl$ bzr branch --no-tree trunk/ branches/novoBranch/
} else {
ccsl$ bzr branch trunk/ branches/novoBranch/
ccsl$ bzr remove-tree branches/novoBranch/
}
local$ bzr init-repo --rich-root-pack integrade-bzr
local$ cd integrade-bzr/
local$ mkdir branches
local$ cd branches
local$ bzr branch bzr+ssh://ccsl.ime.usp.br/var/local/bzr/integrade/branches/novoBranch novoBranch-master
local$ cd integrade-bzr/branches
local$ bzr branch novoBranch-master novoBranch-work
local$ cd integrade-bzr/branches/novoBranch-work
code, coffee, code, ...
local$ bzr commit
local$ cd integrade-bzr/branches/novoBranch-master/
local$ bzr pull
local$ cd ../novoBranch-work
local$ bzr pull
(se houver conflitos neste último comando, resolva-os e faça o commit como no passo anterior)
Receba as atualizações como no passo anterior. Depois:
local$ cd integrade-bzr/branches/novoBranch-master/
local$ bzr merge ../novoBranch-work/
local$ bzr commit -m "Merging with master branch"
local$ bzr push (na primeira vez, acrescente bzr+ssh://ccsl.ime.usp.br/var/local/bzr/integrade/branches/novoBranch/)
Seguimos alguns passos anteriores. A nossa cópia de trabalho será novoBranch-master (ao invés de novoBranch-work) e o espelho será trunk (ao invés de novoBranch-master).
Certifique-se que o novoBranch-master está atualizado (passo 6). Depois:
local$ cd integrade-bzr/
local$ bzr branch bzr+ssh://ccsl.ime.usp.br/var/local/bzr/integrade/trunk/
local$ cd trunk/
local$ bzr merge ../branches/novoBranch-master
(se houver conflitos, resolva-os)
local$ bzr commit -m "Merging with novoBranch"
local$ bzr push (na primeira vez, acrescente bzr+ssh://ccsl.ime.usp.br/var/local/bzr/integrade/trunk/)