2010-10-12 36 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 

我非常满意的结果,除了那里面myProject/repo发出bzr status事实抱怨那些丢失的文件。

现在的问题是:我的方法可以接受吗?我应该如何处理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" 

ñ嗷嗷您可以创建功能分支或什么:

# 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

我认为这完全符合我的工作流程。谢谢 – 2010-10-12 11:52:44

相关问题