标签: tree-conflict

如果删除了文件夹,如何在使用TortoiseSVN进行合并时处理树冲突?

我有这种情况:

  • 具有内容的文件夹将从我们分支的本地副本中删除.更改将在SVN Branch中提交.(我们在Trunk中仍然有这个文件夹)
  • 现在我想合并从Branch到Trunk的所有内容
  • 我转到SVN的Trunk,Merge的本地副本,然后选择我们的分支(首先将SVN-Branch的更改合并到LocalCopy-Of-Trunk)
  • 出现树冲突
  • 我关闭了tortoiseSVN窗口并转到资源管理器中的文件夹结构.
  • 文件夹在那里(但在SVN中标记为冲突)
  • 我手动删除文件夹结构(因为这是我想要的)
  • 我去TortoiseSVN右键单击 - > TortoiseSVN->已解决,我看到了冲突,我将此标记为已解决,然后单击确定.

这是正确的方法吗?

在这个时刻,每当我想在同一个根中使用SVN时,我就会看到这个错误:

错误:错误的子树不允许合并跟踪; tryo恢复项目

当我想将我在本地合并的所有内容(从SVNBranch到LocalCopyOfTrunk)提交到Trunk时,我看到有问题的文件夹及其内容缺失状态.我标记了我想要提交的所有内容(没有丢失的东西),单击"确定",然后收到此警告:

移动/重命名文件夹的非递归提交(此提交不是递归的,并且已选择移动/重命名文件夹用于提交.此类移动/重命名始终在存储库中递归执行.您还要提交吗?)

当我打开有问题的根目录TortoiseSVN-> Revert的父文件夹并将其还原时,SVN再次运行没有问题.但我如何删除它们?解决这种树冲突的更好方法是什么?

svn version-control tortoisesvn merge tree-conflict

13
推荐指数
1
解决办法
3万
查看次数

SVN:如何通过接受传入添加(删除本地添加)来解决邪恶的双胞胎树冲突

在SVN中,我在合并两个分支时遇到了树冲突.出现树冲突是因为我在两个分支中添加了相同的文件或相同的目录.这里问的问题大致相同:

关于邪恶的双胞胎树冲突的其他Stackoverflow问题

但是我需要接受传入的添加.Subversion只允许我接受存储库的工作状态.所以我希望我可以从B1到B2合并,删除B2中的本地添加文件,告诉svn将文件从B1添加(重新合并?)到B2,然后提交合并.是否有可能解决与传入版本的邪恶双重冲突?

这里的要点是接受传入的版本,这样当下一次从B1合并到B2时,我将自动合并更改,而不必进行相反的B2-> B1合并.

svn merge tree-conflict

11
推荐指数
1
解决办法
3820
查看次数

为什么"本地删除,更新时传入删除"目录存在冲突?

这更像是一个假设的问题,但我一直想知道为什么这个案子被认为是冲突.如果我在本地删除了一个已经从存储库中删除的目录,为什么这不会像你期望的那样解决?我不知道哪个角落的案例会使冲突地位成为必要?

svn tree-conflict

11
推荐指数
1
解决办法
9791
查看次数

合并重命名文件夹时SVN树冲突

我正在使用TortoiseSVN将来自trunk的最新更改合并到branch-B中,包括文件夹重命名.

在此之前,我将分支-A重新整合到主干中.在该分支中,已重命名文件夹并对其中的文件进行了更改.Branch-B包含对这些文件的不同修订,但该文件夹仍具有原始名称.

trunk合并到branch-B时,SVN只是将重命名的文件夹添加为new,并在最初命名的文件夹上报告树冲突.文件修订本身永远不会合并,我留下了两个文件夹.我已经尝试了多个选项来获得最干净的合并,同时保留所有适当的svn:mergeinfo,但似乎没有任何效果.

有没有人知道干净地完成这个合并的正确方法?

TortoiseSVN 1.8.10,Subversion 1.8.11

这是一个视觉:

/trunk (before reintegrating branch-A)
  /Folder1
    file1
    file2
    file3

/trunk (after reintegrating branch-A)
  /Folder1-Renamed
    file1-change1
    file2-change1
    file3

/branch-B
  /Folder1
    file1-change2
    file2-change2
    file3
Run Code Online (Sandbox Code Playgroud)

TL; DR:当在其中一个分支中重命名包含文件夹时,如何在两个分支之间干净地合并文件修订?

svn tortoisesvn merge tree-conflict

10
推荐指数
1
解决办法
2914
查看次数

TortoiseSVN Tree Conflict:无法选择远程文件

这是场景:

  • User1,Branch1:添加"abc.def"; 提交.
  • User2,Branch2:添加"abc.def"(文件名相同,但文件中有更多细节); 提交.

现在User1想要合并"abc.def"文件的更新版本.所以(使用TortoiseSVN 1.7.10),User1在Branch1的工作副本中启动,选择Merge...- > Reintegrate a Branch,然后选择Branch2并选择Merge.可以预见的是,"树冲突"的结果是这样的:

最后一次合并操作尝试从Branch2添加文件'abc.def',但该文件已在本地添加.你想如何解决这个冲突?

但唯一的选择是标有单个按钮Keep the local file.没有选择远程文件的选项,这是User1真正想要的.

在此输入图像描述

我在这里做错了什么,我该如何解决?更具体地说,如何将User2的文件版本导入Branch1?

(当然,我确信User1可以在合并之前手动删除该文件,但这会消除User1可能想要保留的任何历史记录.此外,它只是一个笨重的工作流程,特别是在这种困境中存在大量文件时.)

不幸的是,在TortoiseSVN关于树冲突的文档中甚至没有提到这种情况

更新:

除了选择" Reintegrate a Branch"我还试过" Merge a Range of Revisions"和" Merge two different trees".对于后一种情况,我选择远程分支(Branch2)作为"开始",将本地分支作为目标(Branch1; 在添加文件之前选择修订版.)我在所有情况下得到了相同的结果:树冲突没有选择文件的User2版本的选项.

更新#2:

根据文档,应该在"合并进度对话框中有一个名为"的复选框Merge non-interactive,如果未选中,则应该在合并期间打开"合并冲突回调对话框".但是,我在合并过程中找不到任何此类复选框.它在哪里?

tortoisesvn merge tree-conflict

10
推荐指数
1
解决办法
464
查看次数

如何自动解决所有SVN冲突?(Windows CLI)

我正在尝试自动化一些Subversion进程,我遇到了冲突问题.当我合并两个分支时,有时我会遇到树冲突和常规(文本)冲突.我希望能够使用存储库副本解决所有问题:

svn resolve . -R --accept theirs-full
Run Code Online (Sandbox Code Playgroud)

但如果有树木冲突,它会对我大喊大叫,并说我必须将它们解决到工作状态.

svn:警告:树冲突只能解析为"工作"状态; '文件'没有解决

有没有解决一个简单的方法只是树冲突"工作",这样我就可以继续解决与他们的满文的冲突?或者也许完全实现我的目标的另一种方式?我希望通过Windows命令行执行此操作.谢谢!


Subversion服务器是版本1.6.6

我正在使用CollabNet Subversion命令行客户端v1.6.13(适用于Windows)

svn tree-conflict

6
推荐指数
1
解决办法
2万
查看次数

SVN混淆:"本地添加,合并时传入添加"这些词实际上是指什么?

我对颠覆很新,而且文档对我来说没有意义.我想知道是否有人可以将此错误消息(从svn st)分解为简单的英语,以及我得到的另一个local delete, incoming delete upon merge.

准确地说我的问题:

  1. 是什么local add(或local delete)是指什么?
  2. 是什么incoming add(或incoming delete)是指什么?

令我感到神秘的是,分支与接收这些错误的文件完全无关.换句话说,它不会在本地添加或删除任何这些文件(我认为这local add/delete意味着).此外,如果我在本地删除了文件,为什么这会与repo(incoming)中的删除冲突呢?

背景资料

我是如何到达这里的:我合并trunk到了我的branch手中,并试图提交给我的分支机构.

PS我已经(尝试)阅读管理主干和功能分支:本地删除,合并时的传入删除,但是有太多的术语.我在这里读到的其他问题/答案似乎并不适用,或者很难理解.

svn merge conflict tree-conflict

6
推荐指数
1
解决办法
1万
查看次数

SVN:"树冲突已经存在",但在我尝试合并之前没有

我从SVN收到此错误消息:

svn:尝试添加已存在的树冲突

现在,已经在此站点上询问过这个问题,并且给出的解释是在上一次合并之后尚未解决树冲突,现在SVN正在尝试再次添加相同的树冲突.

所以我调用了"svn status"并将所有树冲突标记为已解决.然后我做了*svn revert -R**并仔细检查"svn status"的输出是否完全为空.然后我再次尝试合并,在完全相同的地方使用完全相同的错误消息.

在我看来,像svn尝试在同一个合并操作期间在同一个地方添加两次树冲突,在所有应有的尊重下,这将是SVN中的严重错误.

svn merge tree-conflict

5
推荐指数
1
解决办法
8468
查看次数

与Subclipse合并时出现树冲突

我使用Eclipse 8.6和Subclipse 1.6,以及svn 1.6.x服务器.我创建了一个分支,在分支和主干上做了一些更改,现在我正在尝试从trunk到这个分支合并.我得到的只是每个目录和分支根目录下的每个文件的树冲突.即使我的测试项目,除了编辑一个文件,我什么都没做,我得到了.问题是我不明白这些树冲突是什么意思,因为我没有改变任何东西.我只更改了一个文件进行测试,我应该在合并期间获取文件更新,但这只是被忽略了.我在合并窗口中看到的只是每个目录的树冲突图标和根目录下的每个文件.同样在Tree Conflics窗口下,它告诉我每个树冲突的"本地添加,合并时的传入添加".

subclipse svn merge tree-conflict

4
推荐指数
1
解决办法
3442
查看次数

子模块中的Git Merge冲突.我只想承诺他们的版本.怎么样?

基本上我已经阅读了git merge冲突指南,我不确定它是否直接解决了我的情况.我在子模块中存在冲突,我只想使用他们的版本,我理解的是git diff -3 app/bundles如何使用子模块的版本,解决冲突并提交?

~/projects/sms/admin(rc)$ git diff
diff --cc app/bundles
index 999fd0a,ae6acdc..0000000
--- a/app/bundles
+++ b/app/bundles
~/projects/sms/admin(rc)$ git diff -1 app/bundles
* Unmerged path app/bundles
diff --git a/app/bundles b/app/bundles
index b34a733..999fd0a 160000
--- a/app/bundles
+++ b/app/bundles
@@ -1 +1 @@
-Subproject commit b34a73375b4dfed6086d26d205ab5535acece053
+Subproject commit 999fd0a307e6d8d517ddf3dd6fab28a3ac0ec2c9
~/projects/sms/admin(rc)$ git diff -2 app/bundles
* Unmerged path app/bundles
~/projects/sms/admin(rc)$ git diff -3 app/bundles
* Unmerged path app/bundles
diff --git a/app/bundles b/app/bundles
index ae6acdc..999fd0a 160000
--- a/app/bundles
+++ b/app/bundles
@@ -1 …
Run Code Online (Sandbox Code Playgroud)

git tree-conflict git-merge git-submodules

3
推荐指数
1
解决办法
1万
查看次数

svn树冲突:我做错了什么?

无论何时我尝试在SVN中合并,我都会遇到大量的树冲突.好吧,在这个示例脚本的情况下只有一个,但仍然.

#!/bin/bash
svnadmin create repo
svn checkout file://`pwd`/repo wc
cd wc
mkdir trunk branches
svn add trunk branches
svn commit -m 'created trunk and branches'
echo red > trunk/colors
svn add trunk/colors
svn commit trunk -m 'created trunk/colors with red inside'
svn copy trunk branches/a
svn commit branches/a -m 'created branches/a'
echo green >> trunk/colors
svn commit trunk -m 'added green to trunk/colors'
echo blue >> branches/a/colors
svn commit branches/a -m 'added blue to branches/a/colors'
svn update
svn merge ^/trunk …
Run Code Online (Sandbox Code Playgroud)

svn merge tree-conflict

2
推荐指数
1
解决办法
3430
查看次数

当HEAD版本在该行没有内容时,为什么git会显示合并冲突

我正试图git merge master从另一个分支做一个,然后我遇到了这个冲突:

<<<<<<< HEAD
=======
    t.text     "label_en"
    t.text     "help_text_en"
    t.text     "options_en"
>>>>>>> master
Run Code Online (Sandbox Code Playgroud)

我知道如何解决冲突,但我很好奇为什么git首先认为这是冲突,因为HEAD版本在特定行上没有内容.

<<<<<<< HEAD
=======
Run Code Online (Sandbox Code Playgroud)

git只是从master中添加3行并合并它不是一个简单的例子吗?


更新:

@Marcin是对的.基于答案,我做了一个测试,假设我有一个如下所示的git树:

 A ---- B  (master)
      \
        C  (another branch)
Run Code Online (Sandbox Code Playgroud)

的内容temp.txtcommit A:

    t.text    "LALALA"
Run Code Online (Sandbox Code Playgroud)

的内容temp.txtcommit B:

    t.text    "label_en"
    t.text    "help_text_en"
    t.text    "options_en"
Run Code Online (Sandbox Code Playgroud)

temp.txtin的内容commit C是空的.


在这一点上,如果我这样做:

git checkout another_branch
git merge master
Run Code Online (Sandbox Code Playgroud)

然后我会得到以下内容:

<<<<<<< HEAD
=======
    t.text     "label_en"
    t.text     "help_text_en"
    t.text     "options_en"
>>>>>>> master
Run Code Online (Sandbox Code Playgroud)

git tree-conflict git-merge merge-conflict-resolution

1
推荐指数
1
解决办法
214
查看次数