问题标签 [merge]
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.
version-control - 在初始无根据的合并后,我可以使用 Team Explorer 来合并两个分支之间的更改吗?
我对 TFS 中毫无根据的合并的理解是,这是一次性交易,之后可以进行合并而不必毫无根据:
从http://msdn.microsoft.com/en-us/library/bd6dxhfy(VS.80).aspx
/baseless - 执行没有基础版本的合并。即,允许用户合并不具有合并关系的文件和文件夹。在无根据的合并之后,存在合并关系并且未来的合并不必是无根据的。
但是,我今晚使用以下设置进行了尝试:
该命令运行良好,文件已合并。但是,如果我返回源代码管理资源管理器并右键单击并在 Dev 分支上选择合并,则 QA 不是一个选项 - 只有主干是。
那么我是否误解了文档,他们真正说的是你总是必须在命令行中执行它,但不必包含 /baseless 开关?
database - 如何使用 DataSet 将数据从一个数据库传输到另一个数据库?
像往常一样,先介绍一些背景信息:
数据库 A(Access 数据库)- 保存一个表,其中包含我只需要两列的信息。无法访问数据库 A 的人将使用应用程序需要这两列中的信息。
数据库 B(Access 数据库)- 保存一个只包含两列的表(反映我们需要从表 A 中获取的内容)。数据库 B 可供应用程序的所有用户访问。一个问题是,其中一个列名与数据库 A 中的表中的不同。
我需要做的是通过一个会自动运行的实用程序传输必要的数据,比如每周一次(两个数据库不需要完全同步,只需关闭即可)。传输实用程序将从有权访问两个数据库的用户帐户运行(显然)。
这是我采取的方法(如果有更好的方法,请提出建议):
从数据库 A 中获取数据。它只是必要表中的两列。
使用 DataReader 对象和 WriterStream 对象将数据写入 [tablename].txt 文件。我已经这样做了,所以我可以使用 schema.ini 文件并强制数据列具有与数据库 B 中相同的名称。
创建一个 DataSet 对象,其中包含一个镜像数据库 B 中的表的 DataTable。
使用具有文本扩展属性 hdr=yes 和 fmt=delimited 的 Microsoft.Jet.OLEDB.4.0 提供程序将 .txt 文件中的信息吸入 DataTable(以匹配我的 schema.ini 文件设置和 .txt文件设置)。我正在使用 DataAdapter 来填充 DataTable。
创建另一个 DataSet 对象,其中包含一个镜像数据库 B 中的表的 DataTable。
从数据库 B 中获取信息,使其包含表中需要从数据库 A 更新的所有当前数据。我再次使用 DataAdapter 填充此 DataTable(与步骤 5 不同,因为它们是两者都使用不同的数据源)。
合并包含来自数据库 A(或 .txt 文件,技术上)数据的 DataTable。
使用更改更新数据库 B 的表。
我已经为 DataAdapter 手动编写了更新、删除和插入命令,该命令负责与数据库 B 通信。但是,这个逻辑从未使用过,因为 DataSet-From-Database-B.Merge(Dataset-From-TxtFile[tableName] ) 不会翻转 HasChanges 标志。这意味着 DataSet-From-Database-B.Update 不会触发任何命令。
那么有什么方法可以使用我正在使用的方法从 DataSet-From-TxtFile 获取数据以合并并应用于数据库 B?我在这里错过了关键的一步吗?
我知道我总是可以从数据库 B 的表中删除所有记录,然后只插入文本文件中的所有记录(即使我必须遍历 DataSet 中的每条记录并应用 row.SetAdded 以确保它触发 HasChanges 标志) ,但我宁愿让它每次只应用更改。
我正在使用 c# 和 2.0 框架(我意识到这意味着我可以使用 DataTables 和 TableAdapters 而不是 DataSets 和 DataAdapters,因为我只处理一个表,但无论如何)。
TIA
windows - Windows 中的 Mercurial 应该使用哪种合并工具?
我刚开始使用 Mercurial,我应该做的一件事就是选择一个合并工具。我正在考虑为此目的使用 WinMerge,但我找不到特别选择它的方法。有所有其他合并工具的参考,但没有 WinMerge。
所以,我应该使用 WinMerge 还是有更好的工具来完成这项工作(请记住,我使用的是 Windows)。
sql - Oracle:如何 UPSERT(更新或插入表?)
UPSERT 操作更新或插入表中的行,具体取决于表是否已有与数据匹配的行:
由于 Oracle 没有特定的 UPSERT 语句,那么最好的方法是什么?
svn - 颠覆合并删除命令
当我将主干合并到功能分支时,主干上发生的删除将不会复制到我的工作副本中。
为什么合并时主干上的删除不会删除分支上的相同文件?我正在使用颠覆 1.5 客户端和服务器。
我假设重新集成分支时将跳过对分支中文件的更改?
在主干上兑换文件的最佳方法是什么,因为一位同事从主干中删除了文件,只是因为它还没有“准备好”。
情况:
因此,即使我在文件已被主动删除的主干中合并,该文件仍然存在于我的工作副本中。非常出乎意料。就我而言,我什至没有对文件进行任何更改,这是我能想到为什么 svn 会保存文件的唯一原因。
svn - Tortoise SVN 在分支之间将文件标记为不同但不存在差异
所以我的项目有一个主干,我们可以在其中进行所有开发更改。我们还有一个分支,其参数稍作修改,以适应另一个部门。我们分批工作,一旦完成对主干的一组更改,就切换到分支并合并所有适当的修订。这已经持续了一段时间,但我注意到一些奇怪的行为。如果我打开修订图并比较两个主要修订(主干和分支,我也可以通过 repo 浏览器执行此操作),它会显示两者之间不同的所有文件的列表。问题是当我双击某些文件时,文件中实际上没有文本差异。不应该有任何差异,但应该 t 将其标记为不同,对吗?这使得审计两个分支和跟踪差异变得更加困难,因为大量文件出现在“更改的文件”对话框中。
我注意到了一些事情:
两个文件的修订号不同(如预期的那样)
我尝试通过合并然后比较分支在测试存储库中重现此问题,但它工作正常(没有差异)
- 我最初认为这可能与 svn:mergeinfo 属性之间的差异有关,但我不再那么确定了。
任何帮助,将不胜感激。
python - 如何合并两个 python 迭代器?
我有两个迭代器,一个list
和一个itertools.count
对象(即一个无限值生成器)。我想将这两者合并到一个结果迭代器中,它将在两者之间交替产生值:
最简单、最简洁的方法是什么?
mercurial - 在 Mercurial 上退出向后合并
你如何在不痛苦的情况下扭转合并对极化分支的影响?
这个问题困扰了我好几个月,终于放弃了。
您有 1 个存储库,有 2 个 命名分支。A和B。
发生在 A 上的变化将不可避免地发生在 B 上。
直接发生在 B 上的更改绝不能发生在 A 上。
在这样的配置中,将“B”合并到“A”中会在存储库中产生一个可怕的问题,因为对 B 的所有更改都出现在 A 中,就好像它们是在 A 中进行的一样。
从这种情况中恢复的唯一“正常”方法似乎是“退出”合并,即:
看起来一切都很好而且花花公子,直到你决定稍后在正确的方向上合并,你最终会发生各种令人讨厌的事情,并且在专门的分支 B 上被删除/注释掉的代码突然变得未删除或未注释。
到目前为止,除了“让它做它的事情,然后手动解决所有问题”之外,还没有一个可行的解决方案,老实说,这有点令人难以置信。
这是澄清问题的图像:
[原图丢失]
文件 C & E (或更改 C & E ) 必须只出现在分支 b 上,而不能出现在分支 a 上。此处的修订版 A9(分支 a,revno 9)是问题的开始。
修订 A10 和 A11 是“回退合并”和“合并回退”阶段。
修订版 B12 是反复无常的,错误地反复删除了一个不打算删除的更改。
这种困境引起了很多挫折和蓝烟,我想结束它。
笔记
尝试禁止反向合并发生可能是显而易见的答案,无论是使用钩子还是使用策略,我发现解决这个问题的能力相当高,而且发生这种情况的可能性很大,即使有对策,你仍然必须假设它不可避免地会发生,以便您可以在它发生时解决它。
详细说明
在模型中,我使用了单独的文件。这些使问题听起来很简单。这些仅代表可能是单独的行的任意更改。
此外,雪上加霜的是,分支 A 发生了重大变化,这留下了长期存在的问题“分支 A 中的更改是否与分支 B 中刚刚出现(并退出)的变化相冲突,这看起来像是一个变化改为在分支 A 上“
关于历史重写技巧:
所有这些追溯解决方案的问题如下:
- 我们有 9000 个提交。
- 因此,新鲜克隆需要半小时
- 如果在某处甚至存在一个错误的存储库克隆,它就有可能重新与原始存储库联系,并再次将其撞毁。
- 每个人都已经克隆了这个存储库,现在已经过去了几天,正在进行提交。
- 一个这样的克隆恰好是一个实时站点,所以“擦除那个并从头开始”=“大诺诺”
(我承认,以上许多内容有点愚蠢,但它们不在我的控制范围内)。
唯一可行的解决方案是假设人们可以并且将会做错所有事情,并且有一种方法可以“消除”这种错误。
git - git:如何将来自远程的提交合并到不同的路径?
我有一个带有远程 foo 的 git 存储库。
foo 是一个网络应用程序,它直接在其根目录中包含一些文件和目录:
我的主要 git 存储库是一个更大的系统,其中包含这个 Web 应用程序。我想从 foo 中提取提交,但我需要将文件驻留在web
目录中。所以它们应该变成web/app
,web/public
等等。
我不想使用 foo 作为子模块。我想将 foo 合并到主存储库中,然后摆脱它。