假设您有一个提交到CVS的目录结构:
DIRA / DIRB / DIRC
dirB已使用分支名称“development”进行分支。
是否可以删除dirB上的“开发”分支,然后在dirA上创建一个新的“开发”分支?
我们目前在传统的CVS回购中有这个,其中回购的一小部分有一个“开发”分支。我们希望删除此分支并在整个存储库中创建一个全局“开发”分支。现有分支的历史和状态是微不足道的,可以处理掉。
如果我们执行“cvs -dB development dirB”,那么会有什么破坏,然后在dirA上重新创建分支吗?
答案 0 :(得分:0)
你有两个问题:
'是否可以删除dirB上的“开发”分支,然后在dirA上创建一个新的“开发”分支?
答案是“是”,但这意味着不同的事情取决于dirA / dirB / dirC提交到CVS的目录结构的含义。
如果您有一个存储库,并且目录结构全部包含在以dirA为根的单个cvsroot下,那么从dirB删除“development”分支将意味着删除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下,此时,通过添加“开发”不会有任何破坏“分支。