0

我可以访问某个项目的只读 SVN 存储库。

我想用我自己的修改/添加来扩展这个项目。如果我可以完全访问这个 repo,我可以简单地创建自己的开发分支。但是,我没有(也不会获得写入权限)。

我希望将我的修改存储在(内部)存储库中,以便跟踪我自己的开发。

是否可以使用可以处理此问题的 SVN 进行构造?

最初,我正在考虑创建一个(内部)SVN 存储库,其结构如下:

  • 树干

    • 包含使用 svn:externals 的外部 repo 的副本
  • 分支

    • 我基于主干的开发分支

但是,我很快发现基于“外部”文件夹创建分支并不简单(如果不是不可能的话?)。我还希望能够将外部存储库中的更改合并到我自己的开发分支中。我也怀疑使用这种结构是否可行。

有没有可能让这个建筑工作?或者我应该以完全不同的方式处理这个问题?非常感谢有关此问题的任何建议。

谢谢

彼得

4

3 回答 3

1

你在“谁在哪里”中犯了一个小错误

  • 您有没有 peg-revision的供应商分支(svn:external)
  • 您自己的开发发生在主干中(最初创建为供应商分支的 svn 副本)

有时您会从分支(供应商分支)合并到主干

这种方法对于大型复杂的上游项目有一些限制,但适用于中小型项目

于 2012-02-16T19:41:31.807 回答
-1

就个人而言,我也会使用 svn:externals,但我会以不同的方式设置我的存储库

repo/trunk/src/mycode
repo/trunk/src/theircode
repo/branch/1.1/src/mycode
repo/branch/1.1/src/theircode

(等等)

所有“他们的代码”分支都可以通过 svn 轻松绑定到他们的存储库(他们的版本号)。我不会将整个主干的控制权交给外部存储库,因为如果您决定需要将主干移动到某个方向,那么您将被绑定到您无法直接控制的存储库的错误位置。是的,你可以在那时进行重组,但是当你需要做其他重要的事情时,你可能需要正确地进行重组,这意味着在更少的可用时间下压力更大。

如果您必须“修补”他们的代码,请将其放在“您的代码”分支中并扩展您的构建系统以将他们的代码复制到“源”构建区域。然后应用你的补丁。不要就地修改他们的代码,这会在许多层面上造成麻烦,包括许多直到为时已晚才明显的层面。

于 2012-02-16T19:59:45.243 回答
-1

是否可以使用可以处理此问题的 SVN 进行构造?

是的你可以。作为选项之一,可以使用svnsync复制远程存储库。但我不建议这样做,因为当您尝试合并本地存储库和远程存储库中的更改时会遇到麻烦。

看来您的案例非常适合使用git-svn. 它将允许使用您的本地存储库进行自己的修改/添加。git问题是您将能够使用本地存储库(进行推送和拉取)跟踪自己的开发,并svn在需要时从远程存储库获取更改(进行更新)。但是,当然,您仍然无法提交到远程svn仓库,因为它具有只读访问权限。

这是关于 git-svn的简短教程。

于 2012-02-16T17:26:28.037 回答