问题标签 [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.

0 投票
1 回答
4396 浏览

version-control - 在初始无根据的合并后,我可以使用 Team Explorer 来合并两个分支之间的更改吗?

我对 TFS 中毫无根据的合并的理解是,这是一次性交易,之后可以进行合并而不必毫无根据:

http://msdn.microsoft.com/en-us/library/bd6dxhfy(VS.80).aspx

/baseless - 执行没有基础版本的合并。即,允许用户合并不具有合并关系的文件和文件夹。在无根据的合并之后,存在合并关系并且未来的合并不必是无根据的。

但是,我今晚使用以下设置进行了尝试:

该命令运行良好,文件已合并。但是,如果我返回源代码管理资源管理器并右键单击并在 Dev 分支上选择合并,则 QA 不是一个选项 - 只有主干是。

那么我是否误解了文档,他们真正说的是你总是必须在命令行中执行它,但不必包含 /baseless 开关?

0 投票
2 回答
7236 浏览

database - 如何使用 DataSet 将数据从一个数据库传输到另一个数据库?

像往常一样,先介绍一些背景信息:

数据库 A(Access 数据库)- 保存一个表,其中包含我只需要两列的信息。无法访问数据库 A 的人将使用应用程序需要这两列中的信息。

数据库 B(Access 数据库)- 保存一个只包含两列的表(反映我们需要从表 A 中获取的内容)。数据库 B 可供应用程序的所有用户访问。一个问题是,其中一个列名与数据库 A 中的表中的不同。

我需要做的是通过一个会自动运行的实用程序传输必要的数据,比如每周一次(两个数据库不需要完全同步,只需关闭即可)。传输实用程序将从有权访问两个数据库的用户帐户运行(显然)。

这是我采取的方法(如果有更好的方法,请提出建议):

  1. 从数据库 A 中获取数据。它只是必要表中的两列。

  2. 使用 DataReader 对象和 WriterStream 对象将数据写入 [tablename].txt 文件。我已经这样做了,所以我可以使用 schema.ini 文件并强制数据列具有与数据库 B 中相同的名称。

  3. 创建一个 DataSet 对象,其中包含一个镜像数据库 B 中的表的 DataTable。

  4. 使用具有文本扩展属性 hdr=yes 和 fmt=delimited 的 Microsoft.Jet.OLEDB.4.0 提供程序将 .txt 文件中的信息吸入 DataTable(以匹配我的 schema.ini 文件设置和 .txt文件设置)。我正在使用 DataAdapter 来填充 DataTable。

  5. 创建另一个 DataSet 对象,其中包含一个镜像数据库 B 中的表的 DataTable。

  6. 从数据库 B 中获取信息,使其包含表中需要从数据库 A 更新的所有当前数据。我再次使用 DataAdapter 填充此 DataTable(与步骤 5 不同,因为它们是两者都使用不同的数据源)。

  7. 合并包含来自数据库 A(或 .txt 文件,技术上)数据的 DataTable。

  8. 使用更改更新数据库 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

0 投票
5 回答
5741 浏览

windows - Windows 中的 Mercurial 应该使用哪种合并工具?

我刚开始使用 Mercurial,我应该做的一件事就是选择一个合并工具。我正在考虑为此目的使用 WinMerge,但我找不到特别选择它的方法。有所有其他合并工具的参考,但没有 WinMerge。

所以,我应该使用 WinMerge 还是有更好的工具来完成这项工作(请记住,我使用的是 Windows)。

0 投票
11 回答
476566 浏览

sql - Oracle:如何 UPSERT(更新或插入表?)

UPSERT 操作更新或插入表中的行,具体取决于表是否已有与数据匹配的行:

由于 Oracle 没有特定的 UPSERT 语句,那么最好的方法是什么?

0 投票
2 回答
3731 浏览

svn - 颠覆合并删除命令

当我将主干合并到功能分支时,主干上发生的删除将不会复制到我的工作副本中。

为什么合并时主干上的删除不会删除分支上的相同文件?我正在使用颠覆 1.5 客户端和服务器。

我假设重新集成分支时将跳过对分支中文件的更改?

在主干上兑换文件的最佳方法是什么,因为一位同事从主干中删除了文件,只是因为它还没有“准备好”。

情况:

因此,即使我在文件已被主动删除的主干中合并,该文件仍然存在于我的工作副本中。非常出乎意料。就我而言,我什至没有对文件进行任何更改,这是我能想到为什么 svn 会保存文件的唯一原因。

0 投票
6 回答
2871 浏览

svn - Tortoise SVN 在分支之间将文件标记为不同但不存在差异

所以我的项目有一个主干,我们可以在其中进行所有开发更改。我们还有一个分支,其参数稍作修改,以适应另一个部门。我们分批工作,一旦完成对主干的一组更改,就切换到分支并合并所有适当的修订。这已经持续了一段时间,但我注意到一些奇怪的行为。如果我打开修订图并比较两个主要修订(主干和分支,我也可以通过 repo 浏览器执行此操作),它会显示两者之间不同的所有文件的列表。问题是当我双击某些文件时,文件中实际上没有文本差异。不应该有任何差异,但应该 t 将其标记为不同,对吗?这使得审计两个分支和跟踪差异变得更加困难,因为大量文件出现在“更改的文件”对话框中。

我注意到了一些事情:

  • 两个文件的修订号不同(如预期的那样)

  • 我尝试通过合并然后比较分支在测试存储库中重现此问题,但它工作正常(没有差异)

  • 我最初认为这可能与 svn:mergeinfo 属性之间的差异有关,但我不再那么确定了。

任何帮助,将不胜感激。

0 投票
13 回答
25167 浏览

python - 如何合并两个 python 迭代器?

我有两个迭代器,一个list和一个itertools.count对象(即一个无限值生成器)。我想将这两者合并到一个结果迭代器中,它将在两者之间交替产生值:

最简单、最简洁的方法是什么?

0 投票
1 回答
3447 浏览

oracle - Oracle 单表常量使用 JDBC 与 CLOB 合并

作为这个问题的后续行动,我需要以下情况的帮助:

在 Oracle 中,给定一个简单的数据表:

我正在使用以下合并命令:

我正在通过 Java 应用程序中的 JDBC 调用查询。

当 "value" 字符串很大时,上面的查询会导致以下 Oracle 错误:

我什至设置了此处记录的“SetBigStringTryClob”属性,结果相同。

鉴于“价值”是 CLOB,是否有可能实现我想要的行为?

编辑:客户端环境是 Java

0 投票
5 回答
14273 浏览

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 上“

关于历史重写技巧:

所有这些追溯解决方案的问题如下:

  1. 我们有 9000 个提交。
  2. 因此,新鲜克隆需要半小时
  3. 如果在某处甚至存在一个错误的存储库克隆,它就有可能重新与原始存储库联系,并再次将其撞毁。
  4. 每个人都已经克隆了这个存储库,现在已经过去了几天,正在进行提交。
  5. 一个这样的克隆恰好是一个实时站点,所以“擦除那个并从头开始”=“大诺诺”

(我承认,以上许多内容有点愚蠢,但它们不在我的控制范围内)。

唯一可行的解​​决方案是假设人们可以并且将会做错所有事情,并且有一种方法可以“消除”这种错误。

0 投票
3 回答
3177 浏览

git - git:如何将来自远程的提交合并到不同的路径?

我有一个带有远程 foo 的 git 存储库。

foo 是一个网络应用程序,它直接在其根目录中包含一些文件和目录:

我的主要 git 存储库是一个更大的系统,其中包含这个 Web 应用程序。我想从 foo 中提取提交,但我需要将文件驻留在web目录中。所以它们应该变成web/app,web/public等等。

我不想使用 foo 作为子模块。我想将 foo 合并到主存储库中,然后摆脱它。