问题标签 [tree-conflict]
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 - 删除/重新添加导致的 tee 冲突
我从 svn 中删除并忽略了一个我认为是用户特定的文件夹(如果你有兴趣,可以使用 nbproject)。
这很粗心,结果我错了,所以为了避免造成混乱,我惊慌失措,取消了忽略,添加了文件夹并提交。
这更粗心,我意识到我在旧文件夹所在的位置添加了一个“新”文件夹。这导致与随后更新的任何人发生合并冲突。这个文件夹有很多变化,而且我自己的版本可能也有变化,所以每个人都会遇到混乱的冲突,因为不清楚哪些变化值得保留。
我该怎么做才能避免给使用 svn 的每个人造成这种树冲突?
我确定会涉及到合并,但是我不知道如何合并以前的文件夹,普通的合并似乎不起作用(我没有经验也无济于事,大多数文档似乎都是对于简单的情况)。
我很想再次删除该文件夹然后合并,但我不确定这是否会导致更大的混乱。
任何建议都将不胜感激,包括相关问题的链接,我知识不足,无法识别答案适用于这种情况。我假设大量的“我在合并时遇到冲突”问题不是,但是我在其中找不到任何有用的东西。
git - 为什么当HEAD版本在该行没有内容时git显示合并冲突
我试图git merge master
从另一个分支做一个,然后我遇到了这个冲突:
我知道如何解决冲突,但我很好奇为什么 git 首先将其识别为冲突,因为 HEAD 版本在特定行上没有内容。
git 只是添加来自 master 的 3 行并合并它不是一个简单的案例吗?
更新:
@Marcin 是正确的。根据答案,我做了一个测试,假设我有一个如下所示的 git 树:
temp.txt
中的内容commit A
:
temp.txt
中的内容commit B
:
temp.txt
in的内容commit C
为空。
在这一点上,如果我这样做:
然后我会得到以下信息:
svn - SVN 看不到原始文件夹和移动版本之间的冲突
我在主干中有一个具有旧目录结构的文件夹,以及几个目录被分组为新文件夹的子文件夹的分支:
在new
目录中被svn move
命令移动。
dirA
旧文件和新文件之间存在文本冲突dirA.
当我执行svn merge --reintegrate http://url.to.the.branch
SVN 时,只需删除 old ,dirA
并给我新的目录结构,而不会注意到旧版本和新版本文件之间的冲突,就好像它是独立目录一样。新文件与状态合并。
SVN 默认支持这种合并吗?如果是,事实证明我错过了一些东西
如果不是 - 如何教 SVN 注意到这种冲突?dirB
dirC
dirA
dirA
A
svn - 为什么目录的“本地删除,更新时传入删除”会发生冲突?
这更像是一个假设性问题,但我一直想知道为什么这个案例被认为是冲突。如果我在本地删除了一个已经从存储库中删除的目录,为什么不能像您期望的那样解决?我没有想到哪些极端情况会使冲突状态成为必要?
svn - 有趣的“邪恶双胞胎”svn merge
今天我在尝试做一个看似简单的合并时遇到了一个非常有趣的问题。
假设我们有两个分支,B1 和 B2,其中 B2 在某个时间 T1 从 B1 分支。
在这些分支中的每一个上,(独立地)创建了一个新的“F”文件夹,这样一段时间后,每个分支都在自己的“F”版本中包含不同的文件(幸运的是)。
但是,当您尝试将 B1 合并到 B2 中(反之亦然)时,您会遇到树冲突,因为即使两个分支都有一个“F”文件夹,它也是完全不同的(svn-speaking)彼此。
这可能是“邪恶双胞胎”的情况 - 但是,在这种情况下,分支 B1 和 B2 在共同的“F”下具有完全不同的文件和文件夹。例如,B1 可以有“F\a.txt”和“F\b.txt”,而 B2 可以有“F\c.txt”。
我现在要做的是将B1合并到B2中,以便在合并后B2包含“F\a.txt”、“F\b.txt”和“F\c.txt”。在此之后,我还希望能够将 B2 合并回 B1,但不会发生冲突(因此 B1 还将包含“F\a.txt”、“F\b.txt”和“F\c.txt”)。
(这实际上是我简化的现实问题。B1 分支是主干,B2 是我需要准备的功能分支,以便集成商不必处理冲突)
唯一的解决方案 - 有点难看,就像 svn 反对一样 - 我发现是 svn 删除 B2/F,然后合并 B1/F,然后重新添加 B2/F。
谢谢!
PS。我们目前正在使用 Tortoise SVN 1.6.16(以防万一)
svn - 使用 TortoiseSVN 合并时如何处理树冲突,以防文件夹被删除?
我有这种情况:
- 包含内容的文件夹将从我们分支的本地副本中删除。更改在 SVN 分支中提交。(我们在 Trunk 中还有这个文件夹)
- 现在我想合并从分支到主干的所有内容
- 我从 SVN 转到 Trunk 的本地副本,然后选择我们的分支(首先将更改从 SVN-Branch 合并到 LocalCopy-Of-Trunk)
- 出现树冲突
- 我关闭了tortoiseSVN 窗口并转到资源管理器中的文件夹结构。
- 该文件夹在那里(但在 SVN 中标记为冲突)
- 我手动删除文件夹结构(因为这是我想要的)
- 我转到 TortoiseSVN 右键单击-> TortoiseSVN-> 已解决,在那里我看到了冲突,我将其标记为已解决,然后单击确定。
这是正确的方法吗?
此时此刻,每当我想在同一个根目录中使用 SVN 做更多事情时,我都会看到这个错误:
错误:缺少子树时不允许合并跟踪;尝试恢复项目
当我想将我在本地合并的所有内容(从 SVNBranch 到 LocalCopyOfTrunk)提交到 Trunk 时,我看到有问题的文件夹及其状态为缺失的内容。我标记了所有我想提交的东西(没有那些遗漏的东西),点击 OK,然后得到这个警告:
移动/重命名文件夹的非递归提交(此提交不是递归的,并且选择了已移动/重命名的文件夹进行提交。此类移动/重命名始终在存储库中递归执行。您仍然要提交吗?)
当我打开有问题的根目录的父文件夹 TortoiseSVN->Revert 并恢复它们时,SVN 再次运行没有问题。但是我如何删除它们?解决此树冲突的更好方法是什么?
xcode - 解决 Xcode 中的 SVN 树冲突
我正在尝试解决 Xcode 中来自 SVN 的树冲突。从这里的答案无法执行操作,因为“PROJECTNAME”有一个或多个树冲突我应该简单地使用命令行解决冲突。没问题,我对 SVN 命令行有一些经验,所以我就是这么做的
然后我回到 Xcode,只是为了确保一切都很愉快,并尝试测试一切“采取”。我执行“源代码管理-> 更新”,然后执行“源代码管理-> 项目-> 从分支合并...-> 主干”,我再次收到愚蠢的错误消息:“由于一个或多个树冲突,无法执行操作。” 以及附加消息“文件冲突文件 1.m、冲突文件 2.m 和冲突文件 3.m 存在树冲突。”
事实上,我的问题不是如何解决这个树冲突,而是如何告诉 Xcode 我已经解决了冲突?我需要刷新/删除的地方是否有一些过时的 svn 数据库?我首先解决了这个错误吗?
奖金问题:
继续使用 Xcode 的内置 SVN 功能进行合并等会非常好。我可以使用命令行,但当我的 IDE 中有内置的合并差异工具时,我真的不希望用于合并之类的事情。一般来说,非常感谢任何关于在 Xcode 中正确使用 SVN 的建议。因此,如果有人可以给我任何具体的建议以防止这种情况在未来发生,我将非常高兴。
我所做的是:(1)从主干分支到 Branch1(2)在 Branch1 上添加一个文件(以及其他编辑)(3)从 Branch1 分支到 Branch2(4)进行编辑(没有新文件)(5)合并从 Branch2 到树干 (6) 从树干合并到 Branch1 -> 树与最初在此处创建的文件冲突
svn - SVN混淆:“本地添加,合并时传入添加”这些词实际上指的是什么?
我对颠覆很陌生,文档对我来说没有意义。我想知道是否有人可以将此错误消息(来自svn st
)分解成简单的英语,以及我得到的另一个local delete, incoming delete upon merge
。
准确地说我的问题:
local add
(或local delete
)指的是什么?incoming add
(或incoming delete
)指的是什么?
让我感到困惑的是,分支与收到这些错误的文件完全无关。换句话说,它不会在本地添加或删除任何这些文件(我假设的local add/delete
意思)。此外,如果我在本地删除了文件,为什么这会与 repo ( incoming
) 中的删除冲突呢?
背景资料
我是如何到达这里的:我合并trunk
到branch
我的分支中并试图提交给我的分支。
PS我(试图)阅读管理主干和功能分支:本地删除,合并时传入删除,但术语太多。我在这里读到的关于 SO 的其他问题/答案似乎并不适用,否则很难理解。
svn - 解决 Tortoise SVN 中的树冲突
这是场景:
我在本地创建了一个名为“01.07.T1”的文件夹,其中包含一些内容,并在 Tortoise SVN 上对其进行了更新,我的一个朋友在他的本地创建了一个名为“01.07.t1”的文件夹,内容相同,并且还更新了乌龟SVN ..现在它显然是SVN中的树冲突,但为了解决这个问题,我在不知不觉中删除了我的文件夹(即01.07.T1那个)并进行了SVN更新,之后我提交文件..当其中一个文件被删除并且SVN不区分大小写时,这导致了新的冲突,不会在其他设备上更新这些文件..有人请提出必要的步骤来解决树冲突..
先感谢您..
svn - 运行 svn merge --dry-run 时有没有办法查看树冲突的原因?
当我在 SVN 中进行合并时,我通常喜欢先使用 --dry-run 选项运行它,这样我就可以看到我的冲突,查看它们,并在我实际操作时制定解决它们的计划合并。这对文件冲突很有用,但是对于树冲突,我似乎找不到关于它们的额外信息,例如本地删除、更新时的传入编辑。
有没有办法通过试运行获得这些信息?或者实际上不必用一堆冲突污染我的本地副本?我不想检查另一个本地副本来测试合并,因为它需要很长时间。