0

我正在尝试添加类似的内容:

subdir
  modules
    module1ext
    module2ext
    module3NOText
  other dir not from externals

其中 subdir/modules/module{1,2}ext 是专门在外部定义的,但不是 /subdir 或 /modules。这基本上将 module{1,2}ext 添加到 svn repo,但没有 subdir 和模块。

所以,现在我想在子目录(不是来自外部的其他目录)或模块(module3NOText)下添加一个目录,但我不能,因为父目录不在 svn 下。我应该只添加它们吗?这不会弄乱外部定义吗?

另外,假设我要修改 module1ext。我正在考虑删除外部定义,然后 svn 添加该目录。根据我的经验,这是可行的,但你能告诉我它是否有任何缺点或者是否应该这样做?

4

1 回答 1

1

你这里好像有什么东西混在一起了。

您的存储库应如下所示:

trunk
   subdir
     modules ---------> property svn:externals with links to module1ext and module2ext
        module3NOText
   otherdirnotfromexternals

检查主干时,所有文件夹(subdir、modules、module3NOTExt、otherdirnotfromexternals)都在 svn 版本控制之下。模块应该包含两个外部模块(如果 svn:externals 属性设置正确)。

所以在 subdir 或 modules 下添加目录应该通过 svn add 来完成。

如果您想修改外部代码,您可能还想跟上原始存储库中可能发生的变化。换句话说,你想创建一个分支。

  • 如果代码在相同的存储库中,您可以简单地使用svn copy创建一个分支,并使用svn merge
  • 如果代码在另一个存储库中,您可以将其作为供应商分支进行管理。简而言之:您在自己的存储库中导入代码,标记它以标记您开始的点,将其分支到您自己的项目并从那里进行修改。为了合并原始代码中的更改,您将新版本导入您的供应商分支,再次标记它并将更改合并到您的项目分支中。
于 2010-02-19T21:52:41.047 回答