gpt4 book ai didi

svn - Subversion 合并来自不同存储库的更改

转载 作者:行者123 更新时间:2023-12-02 05:51:09 25 4
gpt4 key购买 nike

我真的很困惑。我想做一些 a) 看起来应该非常简单,b) 其他人必须一直做的事情,但我无法在任何地方找到最好的方法。

有一个外部存储库,其中包含一些第三方代码。我想获取代码版本 1 的副本并将其放入我自己的存储库中,然后根据我自己的需要对其进行自定义。当该代码的版本 2 发布时,我希望能够使用版本 2 的所有更改来升级我的自定义版本,同时保留我的自定义设置。

我读过有关供应商分支( http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html )的信息,但我不明白为什么合并供应商代码的先前副本和供应商代码的新副本需要如此复杂(即 svn_load_dirs.pl) 。当然,如果第 3 方代码存储在 SVN 存储库中,则有关哪些文件已移动/已删除的所有历史记录都是已知的,那么为什么需要手动告诉它更改了什么?

引用:

For example, you will have the opportunity to tell the script that you know that the file math.c in version 1.0 of libcomplex was renamed to arithmetic.c in libcomplex 1.1.

我还读过( http://svn.haxx.se/users/archive-2006-04/0285.shtml ),可以简单地在不同存储库之间运行合并,但我认为这是不可能的,并且每当我尝试它时它都会失败(尽管我可以做错了什么)。

有人可以帮我澄清这一点,并提出最佳解决方案吗?

最佳答案

我刚刚尝试了 TortoiseSVN 的一个简短实验:

创建测试存储库

  1. 在rep1和rep2中创建两个新存储库
  2. 将rep1 checkin co1
  3. 向 co1 添加一个文本文件并 checkin
  4. 将rep1导出到ex1
  5. 将 ex1 导入到rep2

在此阶段,您将处于在新存储库中创建本地“分支”的状态。最后两个步骤是现有项目所需的全部内容。

要模拟对原始存储库的一些更改,请修改 co1 中的文本文件并提交更改。

合并更改

现在,要创建您自己的工作副本,请将rep2 check out 到co2中。

我们应该准备好尝试从rep1合并到co2。

打开 co2 的合并对话框并将其指向rep1。

对于“来自”修订版,请选择您导出副本时所在的修订版(在本例中为修订版 1),或您上次将本地副本更新到的修订版。

对于“目标”修订版,请选择 HEAD 或您要应用的最新更新。

结果

这似乎按预期工作,rep1 的修改应用于 co2 中的rep2 的工作副本。然后需要将这些提交回您的本地存储库。

关于svn - Subversion 合并来自不同存储库的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/471618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com