【问题标题】:Mercurial Hg Clone fails on C# project with GUIDMercurial Hg Clone 在具有 GUID 的 C# 项目上失败
【发布时间】:2010-04-15 09:31:55
【问题描述】:

更新:在尝试再次复制此问题以回答您的问题时,我无法!我只能得出结论,我最初的 Mercurial 设置有问题和/或可能我试图签入在签入之前编译失败的构建。叹!非常感谢您的帮助。我对如何编写脚本的帮助表示赞赏。出于一般目的,我需要尝试一下。


大家好,我希望你能帮助我:)。我想看看 Mercurial 是否会成为我工作中项目的一个很好的 DCVS,而且我肯定是很多事情的新手。

我们有一个相当大的 C# 代码库(Dotnet3.0 而不是 3.5,WindowsXP),它利用了 GUID 功能。我承认对我们如何或为什么使用 GUID 知之甚少,但我知道我不能碰它。

所以,当我尝试 hg clone 时,它​​会失败,除非我更改克隆目录中的 GUID(即在 Visual Studio 中创建新的 GUID,然后粘贴新的 GUID 以替换旧的 GUID)。对我来说,这完全违背了快速轻松克隆的目的和实用性。它还使需要多个克隆的所有许多工作流程变得困难。

是否有解决方法,或者我做错了什么?如何简化和/或消除此问题?

Bazaar 会让这件事变得更容易吗?

谢谢!

【问题讨论】:

  • 您能否澄清一下:“C# 中的 GUID 功能”以及克隆失败时 Hg 会告诉您什么?如果你的代码中只有一个 Guid,我无法想象当你克隆一个存储库时 Hg 会被冒犯。
  • 听起来您需要了解如何以及为什么使用“GUID” - 可能有助于理解这个问题。

标签: c# mercurial guid bazaar


【解决方案1】:

您可能可以在更新挂钩中执行此操作。我不是 Windows 脚本编写者,但如果您可以编写一个调用 [system.guid].newguid() 并在该文件中替换它的 powershell 脚本,您可以使用如下钩子:

[hooks]
update=c:\scripts\replace-guid-in-file.PS1 path\to\file\with\guid

无论您在什么文件中更改这些 guid,都应该是未跟踪的(将其放在您的 .hgignore 中),否则您最终会在 repo 中提交大量意外的 guid 更改。

【讨论】:

    【解决方案2】:

    这个 GUID 是编辑器在项目文件中创建的吗?在这种情况下,不要签入项目文件,或者只签入那些不包含 GUID 的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2012-01-10
      • 1970-01-01
      • 2016-03-23
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多