本文介绍了Subversion合并需要使用“旧样式"即使一切似乎都是最新的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近从旧的Subversion服务器/存储库迁移到了最新版本1.8.9.新的存储库是在新服务器上从头开始构建的,旧数据是从头开始导入的(我们从旧的存储库中签出了代码,将其导出到本地以删除所有SVN绑定,然后将其重新检查到新的存储库中).

I recently moved from an old subversion server/repository to the latest version 1.8.9. The new repository was made from scratch on a new server and the old data was imported from scratch (we checked out the code from the old repository, exported it locally to remove all SVN bindings and checked it in a fresh into the new repository).

一切似乎都很好.

我们使用新的存储库已有几个月了.我最近去了一个分支合并到树干.它引发了可怕的树冲突.我听不懂主干和分支应该保持同步(主干中的所有内容也都在分支中,唯一的新代码是分支中的代码,这就是我们试图合并的代码).出于无奈,我单击了Do reintegrate instead of automatic merge (old style):

We've been using the new repository for a few months now. I recently went to merge a branch into the trunk. It threw up loads of the dreaded tree conflicts. I couldn't understand this. The trunk and branch should of been in sync (everything in the trunk was also in the branch the only new code was the code in the branch which was what we were trying to merge). Out of sheer frustration I clicked Do reintegrate instead of automatic merge (old style):

现在单击合并是否有效?!

Now clicking merge it worked?!

为什么我不明白?有人解释为什么会发生这种情况,和/或这两种合并类型之间的区别是什么?似乎没有关于这意味着什么的文档.

Why I don't get it? Anybody explain why this happened and/or what the differences are between these two merge types? There seems to be no documentation of what this means.

我唯一看到的可能有点不寻常的是,我们在某个时刻从主干合并到分支(可能已经进行了一些紧急"更改).

The only thing I can see that could be a little unusual is that we merged up from the trunk to the branch at some point (some "emergency" changes had probably been done to live).

相关版本号:

subversion : 1.8.9
Tortoise: 1.8.8
Repository : V6

推荐答案

TortoiseSVN手册尚未更新,以涵盖新的自动重新整合合并功能,并且仍然包含有关旧工作流程(称为旧样式")的说明.这是TortoiseSVN中旧样式和新样式的区别:

TortoiseSVN Manual hasn't been updated yet to cover the new automatic reintegration merge feature and still contains instructions for the old workflow (the one called 'old style') when you had explicitly specify that you are doing a reintegration merge. Here is the difference of old style and new style in TortoiseSVN:

  1. 旧样式 = svn merge --reintegrate.在Subversion 1.7及更早版本中,您必须通过在命令行中附加--reintegrate选项来明确指定要进行重新集成.

  1. Old style = svn merge --reintegrate. In Subversion 1.7 and older you had to explicitly specify that you do a reintegration merge by appending --reintegrate option to the command-line.

新样式 = svn merge.在Subversion 1.8+中不推荐使用--reintegrate选项.合并是否重新集成由Subversion客户端自动确定.不过,有3个前提条件–您的工作副本

New style = svn merge. --reintegrate option is deprecated in Subversion 1.8+. Whether the merge is reintegration or not is determined by Subversion client automatically. There are 3 preconditions, though -- your working copy

Subversion 1.8发行说明中描述了新的自动重新整合合并:自动重新集成合并(不建议使用-重新集成选项).

The new automatic reintegration merge is described in Subversion 1.8 Release Notes: Automatic reintegration merge (--reintegrate option deprecated).

SVNBook 1.8 |重新整合分支.您可以将本章与进行比较. SVNBook 1.7版本,以了解Subversion 1.7和1.8版本之间工作流程的区别.

The feature is also described in SVNBook 1.8 | Reintegrating a branch. You can compare the chapter to the SVNBook 1.7 version to understand the difference of the workflow between Subversion 1.7 and 1.8 releases.

TortoiseSVN 1.7(旧样式")与1.8(新样式")行为之间的差异 .

Differences in TortoiseSVN 1.7 ('old style') vs 1.8 ('new style) behavior were well summarized by Bob Archer in TortoiseSVN's users mailing list.

两个合并后(没有--reintegrate和没有它)都没有看到工作副本的状态,我很难分辨当时发生了什么以及为什么指定--reintegrate会显着更改行为.我想SVN 1.8无法检测到重新整合合并,因此您必须显式运行它.

Without seeing the status of the working copy after both merges (with --reintegrate and without it), it is hard for me to tell what happened then and why specifying --reintegrate explicitly changed the behavior). I guess that SVN 1.8 failed to detect reintegration merge, so you had to run it explicitly.

这篇关于Subversion合并需要使用“旧样式"即使一切似乎都是最新的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 22:30