- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
经过多次尝试,我得到了这个简单的测试用例场景:
a --> b --> c -- (master)
\ \
--> d --> b' --> e (branch)
地点:
b'
是 b
e
是来自 master
的 merge 。b'
是在 c
之后完成的,并且 c
修改了与 b
相同的文件( d
可能无关紧要)。
e
很容易看起来非常出乎意料。
假设他们都在处理同一个文件“foobar.txt
”。这是文件在每次提交中的样子:
// ----------- a
foo
delme
bar
// ----------- b
foo
delme
new
bar
// ----------- c
foo
new
bar
// ----------- b'
foo
delme
new
bar
// ------------ e
foo
new
new
bar
现在,这是我刚才用这个精确设置进行的简短测试。
如果您删除所有 spaces在那里,没有这样的问题。正如我所料,Merge 只会指责冲突。但我不认为对空格使用任何 -X 设置是我们在这里寻找的......或者是吗?
与此同时,在我的生产代码中,这也是我开始研究这一切的原因,它几乎没有那么多空白,我看到 e
看起来像这样:
// ----------- e
foo
delme
new
bar
merge 发生的一切从不指责任何冲突!
如果 git 在这里做任何它的巫术魔法自动 merge ,这就是我期望的样子:
// ----------- e
foo
new
bar
但这也不会发生。
作为一个免责声明...
我也试过reading the f manual ,但是 merge 策略下的太多点我实在是看不懂。此外,它并没有真正说明 resolve
策略在幕后做了什么,例如:
It tries to carefully detect criss-cross merge ambiguities and is considered generally safe and fast.
什么都没说。
关于默认 recursive
的文本更大,但我也无法从中提取足够的信息:
This has been reported to result in fewer merge conflicts without causing mis-merges by tests done on actual merge commits taken from Linux 2.6 kernel development history.
报告?所以我们进行了 1 个非常繁重的单元测试,并根据一些报告假设它没问题?
嗯,这对我来说太模糊了。
我想我一定做错了什么!那么,我怎样才能做对呢?
我需要做什么才能无后顾之忧地重新开始 merge ?
最佳答案
基本问题是,对于在每种情况下都做正确事情的正确自动 merge 意味着什么,没有正式的模型。事实上,对于不同的用例,“正确的事情”可能会以 merge 算法不知道的方式有所不同。已经进行了多种尝试来提出一个始终做正确事情的单一、正确的 merge 算法(各种 Monotone merge 策略、Codeville、Precise Codeville、Darcs 等等),但它们都以某种方式失败了真实世界的用例。
因此,对于真实世界的 merge 算法,“它在具有大量 merge 的真实代码库上运行良好”大约是您将能够做的最好的事情。这意味着您永远不应该盲目地相信干净的自动 merge 的结果;虽然它可能已经完全 merge 而没有冲突,但它可能没有完全按照您的预期进行。您仍然需要查看 merge 做了什么,并测试结果。
我的一般方法是尝试几个不同的 merge 选项,就像您所做的那样,看看其中一个是否产生正确的 merge 。如果这不能使您获得正确的 merge (或产生您可以解决的适当冲突的 merge ),那么您应该执行 git merge --no-commit
,并修复在提交之前酌情 merge 。
关于Git merge 策略 : spaces make default shows no conflict and bring unexpected results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380013/
我正在使用 C# 拖放面板。面板不断出现和消失。此外,我需要有关面板框功能的帮助,例如“置于前面并置于后面”,我认为这就是我的面板困惑的原因。什么他们是什么意思? 最佳答案 Windows 窗体设计器
我刚刚创建了名为 website 的目录。这有几个图像、index.html 页面等。我运行了:git --bare init --shared=0777 现在,它成功地创建了一个空的共享仓库。 我现
我正在开发一个 Struts 2 应用程序。我有一个 JSP 页面,其中有一个普通的 html 表格。在其中一列中,我有一个名为“更新”的链接。当我单击“更新”时,将打开一个新的弹出窗口,弹出窗口将包
Angular 团队发布了 new router我试图了解一些动机。 与 ui-router 相比,它带来了什么? 它是否(或将)支持嵌套状态、 View 等(在文档中看不到)? 最佳答案 对我来说最
如果我在 Excel 中使用 VBA 制作具有多个系列的折线图,并且两个系列的数据非常相似,以至于它们的图表系列线部分重叠,最后写的在前面写的。 在 Worksheet_Change事件,我希望能够根
我试图让我的窗口集中在按键上(使用 jnativehook),但出现此错误: java.lang.IllegalStateException: This operation is permitted
我正在使用 userstylesheet 修改网页,因为我正在将所有图像移动到最右边。它工作正常,除了在我也使用 RES 的 reddit 上的 drag-zoom 和其他一些网站有点乱:http:/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我有一个 Windows 程序,其中有两个 2 个窗口: hwnd (main interface) hwnd2 (toplevel window, no parent, created by hwn
我正在使用 PeopleSoft 的查询管理器来构建一个包含经理姓名的新员工报告。不幸的是,Job - EE 表将报告捕获到位置而不是经理。为了获得经理的名字,我必须再次链接到 Job - EE 表,
我通过 google plus api 获取数据并将其保存在数据库中。 某些行中的字段文本为空,如下所示 我将使用文本字段进行情感分析。仅获取文本字段为空的字段的 sql 查询是什么? 最佳答案 假设
如题所示,有没有办法把网格线放到前台(即在图形前面,符号后面)?我现在拥有的是: 我的代码如下(使用Swift 3): let gridLineStyle = CPTMutableLineSt
我希望有人能告诉我如何在 Raphael JS 中将一整套元素放在前面。 我正在处理一些动态生成的 raphael 元素集,每个元素都存储在一个数组中,这样可以更轻松地与单个集进行交互和定位。当用户与
是否可以在不增加 z-index 的情况下将 html 元素置于最前面?根据 DOM 中的顺序,具有相同 z-index 的所有元素都会重叠。我可以删除该元素并将其再次附加到它的父级 - 但有更好的解
我正在实现一个简单的 iOS 单人纸牌游戏,允许用户以通常的方式拖动纸牌。卡片由 UIView 子类 CardView 表示。所有卡片 View 都是兄弟 View ,它们是 SolitaireVie
这是我的条形图图片,使用谷歌图表和右侧的相应值。 X 轴是日期轴 如您在表中所见,2017 年 1 月 16 日有两个值(100 和 60)。它们重叠,虽然 60 是最新读数(考虑时间),但它没有显示
我在一张 map 上有多个标记。其中一些重叠。 是否可以将某个标记带到前面? 最佳答案 是的。从 Mapbox Android SDK v4.1 开始,选定的标记将出现在前面。 您可以使用 mapbo
如果源文件是只读的,Android Studio 会显示一个对话框,询问我是否要清除文件的只读状态,以便它可以进行编辑。我曾经错误地选中了“不再显示此对话框”框,然后单击“确定”。从那时起,Andro
我在两个不同的布局中有两个 ImageView,一个 ImageView 在另一个 ImageView 上,我正在使用 RelativeLayout 和 ImageView 大小都是 Wrap Con
我可以在 mysql workbench 中看到 Stop Server 和 Bring Offline。 我希望两者都用于停止服务,但在何时使用 Stop Server 和 Bring Offlin
我是一名优秀的程序员,十分优秀!