我可以访问某个项目的只读SVN存储库。
我想用自己的修改/添加来扩展这个项目。如果我可以完全访问这个仓库,我可以简单地创建自己的开发分支。但是,我没有(也不会获得写访问权限)。
我希望将我的修改存储在(内部)存储库中,以便我可以跟踪自己的发展。
是否可以使用可以处理此问题的SVN来设置构造?
最初我正在考虑使用如下结构创建(内部)SVN存储库:
主干
分支
但是,我很快发现基于“外部”文件夹创建分支并不简单(如果不是不可能?)。 我还希望能够将外部存储库中的更改合并到我自己的开发分支中。我也怀疑使用这种结构是否可行。
这种结构是否可行?或者我应该以完全不同的方式处理这个问题?关于这个问题的任何建议都非常感谢。
感谢
彼得
答案 0 :(得分:1)
你在“谁在哪里”中犯了小错误
您不时从分支(供应商分支)合并到主干
此方法对大型和复杂的上游项目有一些限制,但适用于小型中型
答案 1 :(得分:-1)
是否可以使用可以处理的SVN设置构造 此?
是的,你可以。作为选项之一,可以使用svnsync复制远程存储库。但我不建议这样做,因为在尝试合并本地存储库和远程存储库中的更改时会遇到麻烦。
您的案例似乎非常适合使用git-svn
。它将允许您使用本地存储库进行自己的修改/添加。问题在于,您可以使用本地git
repo(执行推送和拉动)跟踪您自己的发展,并在需要时从远程svn
仓库获取更改(进行更新)。但是,当然,您仍然无法提交远程svn
repo,因为它具有只读访问权限。
这是git-svn上的short tutorial。
答案 2 :(得分:-1)
就个人而言,我也会使用svn:externals,但我会以不同的方式设置我的存储库
repo/trunk/src/mycode
repo/trunk/src/theircode
repo/branch/1.1/src/mycode
repo/branch/1.1/src/theircode
(依此类推)
所有"他们的代码"分支可以很容易地通过svn绑定到它们的存储库外部(它们的转速)。我不会将对整个行李箱的控制权交给外部存储库,因为如果你决定需要沿着某个方向移动行李箱,那么你就会被错误地绑在一个存储库中,而你却没有直接掌控。是的,那么你可以进行重组,但是当你需要做一些重要的事情时,你很可能需要进行重组,这意味着在更短的可用时间内会产生更大的压力。
如果你必须"补丁"他们的代码,把它放在"你的代码"分支并扩展您的构建系统,将其代码复制到"来源"建筑面积。然后应用您的补丁。不要修改他们的代码,它要求在很多层面上遇到麻烦,包括许多不明显的级别,直到为时已晚。