0

假设您有一个提交到 CVS 的目录结构:

目录A/目录B/目录

dirB 已使用分支名称“development”进行了分支。

是否可以从 dirB 中删除“开发”分支,然后在 dirA 上创建一个新的“开发”分支?

我们目前在一个遗留的 CVS 存储库中有这个,其中一小部分存储库有一个“开发”分支。我们想删除这个分支并在整个存储库中创建一个全局“开发”分支。现有分支的历史和状态是微不足道的,可以被处理掉。

那么,如果我们执行“cvs -dB development dirB”,然后在 dirA 上重新创建分支,是否会出现问题?

4

1 回答 1

0

你有两个问题:

'是否可以从 dirB 中删除“开发”分支,然后在 dirA 上创建一个新的“开发”分支?

对此的回答是“是”,但根据提交到 CVS 中的目录结构 dirA/dirB/dirC 的含义,它的含义会有所不同。

如果您有一个存储库,并且目录结构都包含在一个以 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 下是必不可少的,此时,添加“开发”不会破坏任何内容“ 分支。

于 2012-07-17T03:02:47.857 回答