【问题标题】:Why are my dlls not included in my exported patches?为什么我的 dll 不包含在我导出的补丁中?
【发布时间】:2012-09-21 13:45:36
【问题描述】:

我使用 TortoiseHg 从 Mercurial 存储库中导出了一些变更集。

一切正常,只是 SignalR dll 未包含在我添加这些 dll 的变更集补丁中。

为什么不包括在内?如果我查看我机器上的变更集,我可以看到 dll 已添加到变更集中。

如何将这些 dll 添加到补丁中!?

我通过 nuget 安装了 SignalR。

提前致谢。

编辑:我还注意到对文件的另一个更改也不包含在该更改集的补丁中。

编辑:当我在 notepad++ 中打开补丁时,我看到了文件的提及:
diff -r b10c68a2d387 -r 74aa5e71d315 MyProject/_sln/packages/SignalR.Server.0.5.3/lib/net40/SignalR.dll
二进制文件 MyProject/_sln/packages/SignalR.Server.0.5.3/lib/net40/SignalR.dll 已更改

【问题讨论】:

  • 它们可能被 .hgignore 文件忽略了吗?
  • 不。太奇怪了,当我在我的 PC 上单击工作台中的变更集时,我看到了已更改文件中的文件。当我在导入后单击同事 PC 上的变更集时。我在更改的文件中没有看到它们。
  • 如果您将项目克隆到您确实可以看到文件的计算机上的其他文件夹中,会发生什么情况。文件是被克隆了还是丢失了?
  • 该文件存在于克隆中。我注意到在变更集中,未导出更改的源文件被标记为二进制文件。虽然它只是一个 .cs 文件。
  • 对不起,我不知道是什么原因造成的。听起来好像您正在使用不同的服务器,但话又说回来,您将无法看到彼此的变更集。 :-/

标签: mercurial tortoisehg


【解决方案1】:

您似乎没有将--git 选项传递给hg export。没有--git hg export 将不会包含对二进制文件(或权限等)的更改。

就个人而言,我认为现在这应该是所有以某种形式产生差异的东西的默认设置,但它仍然不是。

文件 -> 设置

【讨论】:

  • git=True添加到mercurial.ini/.hgrc中的[diff]部分,默认开启。
  • 是的 - 应该提到这一点 - 但除了 --config diff.git=False 这很难看之外,没有办法在命令行上关闭它。我觉得现在对 git diffs 的支持已经足够好了,它应该是默认模式(用--nogit 将其关闭)。这将消除不支持 git diffs 的工具中的这种类型的混淆和错误,因为它不会静默通过。
  • Mercurial 努力保持向后兼容性,所以这可能是它没有改变的原因。
  • 啊,听起来这就是解决方案,谢谢!。我将在明天或周一尝试一下。 PS:为什么我的 .cs 文件之一被视为二进制文件?或者这应该是一个全新的问题:)?
  • 是的!它有效,谢谢一百万!另外,我注意到在 TortoiseHg 中,可以在 UI 中设置设置:Settings->Diff and Annotate->Git Format->True。
猜你喜欢
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多