问题标签 [svn-merge-reintegrate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - 多次“重新集成”是否安全(使用现代 Subversion)?
如果我35.1-extra
从分支创建一个分支35.1
(显然是发布分支),做一些工作,然后在一段时间后将 35.1-extra 中的内容合并回 35.1,是否可以多次合并?
我记得这在旧版本的 Subversion 中是有问题的,所以每当我重新集成时,如果我必须做一些额外的工作,我要么创建一个新分支,要么重新创建“额外”分支,然后继续在那里工作。
svn - 如果在最后一次合并和 SVN 中的重新集成合并之间有提交,会发生什么?
通常,在将 SVN 分支重新集成到主干时,我们会创建如下历史记录:
其中G
是合并,H
是重新整合合并,X
删除特征分支。我还了解到 SVN 用于G
和的合并算法存在差异H
。到现在为止还挺好。
然而,有一件事困扰着我:这个答案引用了关于重新集成合并会发生什么的 SVN 文档:“事实上,它通过将最新的主干树与最新的分支树进行比较来做到这一点:由此产生的差异正是你的分支更改!”
由于trunc + changes from branch = trunc + (branch - trunk) = branch
,我得出结论,重新集成合并后的记录状态始终与分支结束时的记录状态完全相同。
现在考虑这段历史:
根据上面的推理,我假设如果I
是重新集成合并,来自提交 H 的更改就会丢失。这是正确的,还是我错过了什么?
tortoisesvn - TortoiseSVN 树冲突合并没有预览
我刚刚安装了 VisualSVN 3.5.6,我正在使用 Tortoise SVN 1.8.11。
我按照以下步骤操作:
- 使用 VisualSVN 管理器,我创建了一个名为“test”的新存储库
- 在这个存储库中,我创建了 project_1/trunk 和 project_1/branches
- 我检查了 project_1/trunk
- 我在主干(foo.c)中添加了一个新文件,第一行只是读取“初始提交”
- 我 SVN 添加/提交这个文件
- 使用 TortoiseSVN 从主干创建一个新分支并将其命名为 project_1/branches/001
- 在主干中,我修改 foo.c 并更改第一行和 svn commit 到主干
- 在分支中,我还用不同的值修改了 foo.c 的第 1 行,并提交到分支
- 我现在尝试从分支合并到主干
正如预期的那样,我遇到了树冲突。我还看到一个错误,上面写着“将 r3:4 合并到 'D:\svn local tests\project_1 trunk' 时产生了一个或多个冲突 - 解决所有冲突并重新运行合并以应用剩余的未合并修订版”
在我的主干工作副本中,我有 .svn 文件夹和标记为冲突的 foo.c。没有其他文件。
如果我在 foo.c 上右键单击和 SVN 编辑冲突,我会看到:
我想我必须手动使用 Winmerge(或类似的)来比较来自分支和主干的文件,将我想要的任何更改应用于主干文件,将其标记为已解决,然后再次合并?我曾期望编辑冲突窗口会向我显示并排差异,以便我可以将更改移动到 %resolved 窗格。
我还注意到源左 URL 是: https ://foo.bar.com:444/svn/test/project_1/trunk/foo.c@3 这给了我一个 404 错误,但如果我删除 @3 则 URL 是很好(我想也许 VisualSVN 不支持显示修订?)
svn - SVN wants to reintegrate on a sync merge
Some time ago a created a feature branch:
svn cp ^/trunk ^/branches/feature
This was done quite a while ago (almost 2 years). The feature branch was put on hold and I now want to recover it. So the first thing I tried was to sync up the work done in the meanwhile.
In my working copy (the branch checkout):
svn merge ^/trunk
When I do this it seems to me it's trying to do a reintegrate merge instead of a sync merge:
The revisions it mentions are the ones made in the branch. I've always done sync merges this way. How can I fix this? What am I doing wrong?
Thanks in advance.
svn - 如何在重新集成时删除挥之不去的 svn:mergeinfo 属性?
我想独立于我对项目的其他开发进行一小部分更改。我一直在使用它作为指南。
我从 /trunk/app/module 到 /branches/pete/feature-branch 的 svn cp 开始,这是 r393
经过一些更改,并在主干和分支之间来回合并以保持最新状态,我完成了我的功能,并回到主干上工作。
几次修改后,我决定也许我应该清理我的功能分支,所以我尝试重新集成它。
- 我检查了功能分支和主干的新副本。
- 我将主干更改合并到功能分支并提交它们
- 然后我在主干上做了一个合并 --reintegrate ^/branches/pete/feature-branch 导致 r434
从代码的角度来看,一切看起来都不错,但现在我的 trunk/app/module 仍然有一个 svn:mergeinfo 属性。
据我了解, svn:mergeinfo 应该是空的,这些修订应该被“省略”或者这样可以吗?
svn - SVN 合并 svn:externals 从主干到分支
我们不时合并从主干到当前分支的更改。我们使用 SVN 1.7.6 并尝试使用 SmartSVN 和 Tortoise SVN。
将主干中的 svn:externals 属性(新的外部组件,提高外部组件的固定修订版)中所做的更改合并到分支中不起作用。它只是不合并更改,而是完全忽略它们。
但是,当将 svn:externals 中的更改从分支重新集成到主干时,它可以工作。
该问题只能通过在第一次合并后将属性“忽略祖先”设置为 true 并仅选择与第一次合并合并的修订范围进行第二次合并来解决。
但在我们看来,从主干到分支的正常合并也应该合并 svn:externals 属性内的更改,还是我们走错了路?
svn - 如何使用命令行对分支进行 svn 重新集成
我从分支 A 创建了一个新的功能分支 B。
现在我想将分支 B 合并回 A 并删除分支 B。
但我对这两个术语感到困惑
- 合并分支
- 重新整合分支
我不明白这两者有何不同,以及如何使用 svn 命令行来做到这一点。
欢迎任何有用的建议
svn - 如何在提交到主干之前合并来自两个分支的更改并进行测试?
我在两个分支中工作,一个取决于另一个分支的更改,即我想在继续将主干提交到存储库之前测试两个分支的组合。我尝试的是 --reintegrate 分支 A 到分支 B (目的是我可以提交分支 B,然后将这些组合更改集成到主干中进行测试)但我得到了这个:
为什么它不让我这样做加上这是什么'/svn/NextGen/!svn/rvr/25347/branch/A' path not found
?这是因为分支在过去的某个版本中并不存在吗?我该怎么做?
svn - SVN:巨大的合并;可以加速吗?
大约一年前,一位开发人员离开了我们,在主干中留下了一些尚未准备好发布的工作。我们将我们的主要开发线移到了一个分支,并以小部分的形式推出了许多子部分。错误修复随之而来。
现在我们已准备好接手副业,但首先我们需要将分支重新整合到主干。几百个文件大约有 1000 次提交。在主干和分支中删除了一些文件夹。
我已经开始合并,它似乎工作得很好,但它很慢。对于每个已删除的文件夹,都会存在一个需要 45 分钟到几个小时才能解决的树冲突。我时不时会弹出一个窗口,单击正确的分辨率,然后它就会恢复工作。我是四天前开始的,大约完成了 25%。
有什么方法可以更快地做到这一点,也许是通过手动完成一些工作?失去一些历史是可以忍受的(尽管最好不是全部!)。
我正在使用最新版本的 SVN 和 TortoiseSVN。非常感谢您的任何建议。