2010-10-12 7 views
2

Я единственный разработчик небольшого проекта. Я продаю этот проект с базаром. На начальных этапах я сделал следующее:Создание ветвей внутри существующего проекта bzr

mkdir myProject 
cd myProject 
bzr init 
bzr mkdir src 
bzr mkdir data 
bzr mkdir foo 
.... 

Я имел некоторый прогресс в этом проекте, и он уже содержит несколько десятков фиксаций. Теперь я понял, что мне нужно создать филиалы для этого проекта. Что-то вроде

trunk 
rel 
testFeature1 
testFeature2 
... 

Каков наилучший способ для этого?

Что я сделал:

cd myProject 
mkdir repo 
mv .bzr repo 
mv .bzrignore repo 
del src data foo 

mkdir trunk 
cd trunk 
bzr branch ../repo ./ --use-existing-dir 

Я довольно много доволен результатом, за исключением того, что bzr status выдан в myProject/repo кроме жалуется обо всех тех, отсутствующие файлы.

Теперь на вопросы: подходит ли мой подход? Что делать с отсутствующими файлами в каталоге repo?

ответ

2

Путь я бы об этом было бы сделать это: начать с проекта, как тот, который вы создали:

mkdir myProject 
cd myProject 
bzr init 
bzr mkdir src 
bzr mkdir data 
bzr mkdir foo 
.... 
# (As per your steps above) 
bzr add 
bzr ci -m "Done stuff" 

Теперь создать репозиторий и нажмите ветку в него:

# Now make it into a multi-branch project 
cd .. 
# Make a new repository with no working trees 
bzr init-repo --no-trees repo 
# Branch the project into the repository 
bzr branch myProject repo/trunk 
# Get rid of the project (by moving, to keep a backup) 
mv myProject myProject_backup 

Сейчас начинает работать на кассе (легкую или иначе в зависимости от ваших предпочтений):

# Now get a working copy and put it in a separate folder to the repo 
bzr co --lightweight repo/trunk myProject 
# Now do stuff 
cd myProject 
# Hack hack hack 
bzr ci -m "Done stuff" 

N ой вы можете создавать филиалы для функций или любой другой:

# Time to change branch (-b creates the new branch in the repository): 
bzr switch -b testFeature1 
# Now it is a lightweight checkout of ../repo/testFeature1, which is branched off trunk 
# Hack hack hack 
bzr ci -m "Done stuff with testFeature1: seems to work" 

и объединить изменения обратно в ствол:

bzr switch trunk 
bzr merge ../repo/testFeature1 
bzr ci -m "Merged testFeature1 development." 

Обратите внимание, что bzr switch принимает либо путь, который является либо относительно текущего каталога, абсолютный, или относительно репозитория, когда вы связаны с репозиторием, но для bzr merge требуется путь, относящийся к текущему каталогу или абсолютный (не относительно репозитория).


Это не может соответствовать своему рабочему процессу (извлечения и т.п.), но это довольно эффективным способ достижения того, что вы хотите сделать. Надеюсь, поможет.

+0

Я думаю, что он идеально подходит для моего рабочего процесса. спасибо –

Смежные вопросы