- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 merge Lightswitch 分支时,通常同事会向我也修改过的实体添加属性,这会导致 merge 冲突,因为新的 XML 条目会添加到 lsml 文件中的相同位置。
我总是可以通过接受没有特定顺序的左右来有效地解决这些问题,所以一个在另一个之上,因为在这些特定情况下顺序并不重要。在极少数情况下,这是无效的,无论如何这都会在项目中产生错误,我认为这是一种风险(但没有遇到过)。
有没有办法(最好是文件扩展名)让 git 自动接受同一位置的源和目标更改,并简单地将一个放在另一个下面?
最佳答案
一般来说,这变得相当困难。
Some have attempted to use Git's union merge (现在比早期更容易访问;在那个问题中,您只需在 .gitattributes
文件中添加 merge=union
),但这不起作用一般来说。它可能有时会起作用。归根结底,如果您的 XML 始终是结构化的,以便简单的面向行的联合 merge 生成有效的 XML(基本上,将整个 XML 子元素都放在一行上),并且您总是在添加全新的 XML 子元素。
可以在 Git 中编写自定义 merge 驱动程序。为 XML 编写一个有用的文件很难。
首先我们需要一个XML差异引擎,比如Sylvain Thénault's xmldiff , 为三个 XML 文件构建两个字符串到字符串(或树到树)的编辑( merge 基础,本地或 --ours
,以及其他或 --theirs
文件:diff base-vs-local 和 base-vs-ours)。这个特殊的看起来与 Python 的 difflib 类似. (然而,由于引用的论文,它看起来像是产生树移动/嵌套级操作以及简单的插入和删除。对于树到树编辑算法来说,这是自然而合理的事情,并且可能这里实际上是可取的。)
然后,给定两个这样的差异,我们需要代码来组合它们。联合方法是忽略所有删除:简单地将所有添加添加到基本版本(或者,等效地,将“其他”添加添加到“本地”,或将“本地”添加添加到“其他”)。我们还可以将树插入/删除操作组合为“真正的”(非联合式) merge ,甚至可能声明冲突。 (并且允许对树嵌套级别更改进行不同的处理可能会很好,由 DTD 之类的模糊内容驱动。)
据我所知,最后这些部分并没有在任何地方完成。除此之外,我在此处链接的 Python xmldiff 是相当大的代码块(我没有仔细阅读它,也没有尝试安装它,我只是下载它并浏览了一下——它实现了类似 Myers 的算法,以及来自 the Stanford paper 的更高级的“快速匹配/编辑脚本”算法。
关于xml - 可以让 git 最多自动 merge XML 顺序不敏感文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37849771/
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH上调用setenv(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv 只是出于历
我在 SSIS 包上有一个敏感字符串参数,用于存储远程服务器的密码。 但是,当字符串值包含花括号时,作业代理会在配置该步骤的包参数时抛出错误: Microsoft SQL Server Managem
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
想象一下这个非常基本的可拖放设置: #dropArea 是可放置的。 #itemBox > .item 是可拖动对象。 由于某种原因,droppable
我有这样的网址: http://quickstart.local/public/category1/product2 并且在 url (category1/product2) 数字是 id ,从数据库
我是一名优秀的程序员,十分优秀!