从外部subversion存储库下载并合并自己的代码

时间:2015-01-22 20:36:09

标签: svn merge tortoisesvn svn-externals

我的project "A"位于我自己的svn存储库中。我的project A需要引用外部project "B"。但我需要修改project B的代码。我无法将代码提交给project B,因为这不是我的项目。我想结帐project B并将代码合并到project B

到目前为止我尝试过:

  • project B作为外部链接添加到名为B_source的文件夹中。 (更新命令下载外部代码。此步骤有效)
  • 我使用Windows资源管理器将B_source的内容复制到名为B_changes的文件夹中,并应用了我需要的源代码更改。 (作品)
  • 我将project B签出到名为B_patched的文件夹中。 (作品)
  • 在TortoiseSVN中右键单击B_patched,单击“合并”,选择“合并两个不同的树”,设置“From:B_source”和“To:B_changes”和“Working Copy:B_patched”。
  • “测试合并”显示消息“未找到svn / B_source路径”。我想这是因为外部链接!?

我做错了什么?

1 个答案:

答案 0 :(得分:1)

合并是为了在同一个存储库中获取两个,并将它们合并到来自同一存储库的工作副本 。然后,您将该合并提交到存储库。

您要做的是将自定义更改应用于存储库,而无法提交这些更改。你不能用" merge"命令。

您可能正在寻找的是vendor branch。供应商分支的想法是将项目保存在您的存储库(称之为#34;供应商")中,您只需通过从外部项目复制未修改的代码进行更新,并提交这些项目更新。您可以在一个方便您进入构建的位置创建该项目的分支(在任何地方调用它#34;修补")。您将任何自定义更改应用于此分支。定期,当外部项目进行更新时,您将这些更新复制到" vendor",commit,然后合并" vendor"去修补"并提交这些更改。

当您右键单击并从一个未版本控制的文件夹拖放到 维护的存储库中的文件夹时,TortoiseSVN可以通过上下文菜单条目轻松实现。在这种情况下,您不会使用svn:exterals,只需提交代码,其中大部分更改都来自客户。