2012-07-17 52 views
0

比方說你有提交到CVS的目錄結構:CVS分支可以覆蓋同名的現有較小分支嗎?

迪拉/ DIRB/DIRC

DIRB已經支與分支命名爲「發展」。

可以從dirB中刪除「開發」分支,然後在dirA上創建一個新的「開發」分支?

我們目前在傳統的CVS回購上有這樣的情況,其中一小部分回購有一個「開發」分支。我們想要刪除這個分支並在整個存儲庫中創建一個全局的「開發」分支。現有分支的歷史和現狀是微不足道的,可以進行處理。

那麼,如果我們做一個「cvs -dB開發dirB」,然後在dirA上重新創建分支,那麼會有什麼破?

回答

0

你有兩個問題:

「是否可以刪除‘發展’分支DIRB,然後創建一個DIRA新的‘開發’分支?

對此的回答是「是」,但這將意味着不同的事情,具體取決於您的目錄結構dirA/dirB/dirC提交到CVS的含義。

如果您有一個存儲庫,並且目錄結構全部包含在以dirA爲根的單個cvsroot下,那麼從dirB中移除「開發」分支將意味着將「開發」分支從cvsroot下的所有內容中移除。那麼在dirA上創建一個新的「開發」分支將導致整個層次結構中的所有文件按照您的需要進行分支。如果你的意思是你有一個本地目錄結構dirA/dirB/dirC,並且你有dirA提交給一個CVSROOT託管的CVS並且dirB提交給另一個cvsroot託管的CVS,那麼你對dirA和dirB將互相獨立,以至於你不讓dirB承擔dirA的cvsroot。如果你以這種方式設置了某些東西,那麼最好不要管理你所說的存檔,從dirB所有深度的所有文件夾中刪除所有CVS子文件夾,然後將它提交給dirA,以便它成爲同一個cvsroot的一部分,然後只需添加「開發」作爲你想要的分支。

你的第二個問題:'如果我們做了「cvs -dB development dirB」,會不會破壞,然後在dirA上重新創建分支?

對此的回答基本上是'不行,除了你不能通過檢查分支「開發」來訪問事物;你仍然可以通過個人承諾獲得他們,正如你所說,歷史和國家是微不足道的'。如果你已經有了第一種方法,那麼就會像你所建議的那樣,快速移除然後在適當的層次上重新創建。如果你有第二種方式設置,刪除是不必要的,但是清理CVS子目錄,然後在dirA下面提交dirB將是必不可少的,將所有東西放在一個cvsroot下,在這一點上,通過添加「development 「分支。