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

相關問題