我的project "A"
位于我自己的svn存储库中。我的project A
需要引用外部project "B"
。但我需要修改project B
的代码。我无法将代码提交给project B
,因为这不是我的项目。我想结帐project B
并将代码合并到project B
。
到目前为止我尝试过:
project B
作为外部链接添加到名为B_source
的文件夹中。 (更新命令下载外部代码。此步骤有效)B_source
的内容复制到名为B_changes
的文件夹中,并应用了我需要的源代码更改。 (作品)project B
签出到名为B_patched
的文件夹中。 (作品)B_patched
,单击“合并”,选择“合并两个不同的树”,设置“From:B_source”和“To:B_changes”和“Working Copy:B_patched”。我做错了什么?
答案 0 :(得分:1)
合并是为了在同一个存储库中获取两个,并将它们合并到来自同一存储库的工作副本 。然后,您将该合并提交到存储库。
您要做的是将自定义更改应用于存储库,而无法提交这些更改。你不能用" merge"命令。
您可能正在寻找的是vendor branch。供应商分支的想法是将项目保存在您的存储库(称之为#34;供应商")中,您只需通过从外部项目复制未修改的代码进行更新,并提交这些项目更新。您可以在一个方便您进入构建的位置创建该项目的分支(在任何地方调用它#34;修补")。您将任何自定义更改应用于此分支。定期,当外部项目进行更新时,您将这些更新复制到" vendor",commit,然后合并" vendor"去修补"并提交这些更改。
当您右键单击并从一个未版本控制的文件夹拖放到 维护的存储库中的文件夹时,TortoiseSVN可以通过上下文菜单条目轻松实现。在这种情况下,您不会使用svn:exterals,只需提交代码,其中大部分更改都来自客户。