Mercurial和Visual Studio

4
我有一个在Mercurial下的Visual Studio 2010项目。我使用Mercurial通过命令行或TortoiseHG。我想要处理一个新功能,所以我克隆了仓库。但是现在我感到困惑,我是否应该导入整个新项目到VS2010中去处理这个新功能?我尝试导入克隆的VS解决方案,但是得到了许多构建错误,因为找不到依赖项,我猜测这是因为我正在像原始解决方案一样加载此克隆的解决方案,而某些路径是错误的(虽然我不知道错在哪里)。
你应该如何使用Mercurial和VS2010?
4个回答

5
克隆会产生原始存储库的精确副本。
克隆应该与原始存储库完全相同,因此您可以像打开原始存储库一样打开克隆的解决方案。
如果在克隆的解决方案中出现构建错误而原始解决方案中没有,则可能存在某些依赖项(=第三方程序集,您的应用程序需要这些程序集才能正常工作),这些依赖项存在于原始解决方案中,但未提交到存储库中。
因此,在克隆存储库时,引用的文件在克隆中丢失...因此克隆不起作用。
如果您以包括所有依赖项的完整解决方案方式进行检入,则源代码控制的效果最佳:
在解决方案的某个地方创建一个“Libs”文件夹,将所有依赖项放在其中,从解决方案引用那些文件,并将整个“Libs”文件夹提交到存储库中。
如果您按照这种方式操作,可以从不同的计算机克隆存储库并打开解决方案,而不必担心任何依赖项...它只是可以使用。

3

看起来你的根本问题是你正在使用完整路径而不是相对路径添加引用。在分支之前,您需要纠正这一点。我通常会创建一个“References”文件夹,该文件夹与.sln文件处于同一级别,但比个别项目高一级,然后将整个东西分支。

Example Folder Structure
    MySolution
      MySolution.sln
      References
      MyProject1
      MyProject2

关于VS集成,我使用TortoiseHG和VisualHG相结合,效果很好。
还有Mercurial工具栏其他工具

0
这可能与此有关,但我不得不加载hotfix KB2286556才能消除在构建我们代码的新检出时从VS2010中出现的“无法更新项目依赖项”错误。似乎只有在从命令行调用编译(例如在我们的构建系统中)时,才会发生这种情况,但当它发生时,找到解决方案是非常令人沮丧的问题。
另外,VisualHg是一种很好的跟踪和在Visual Studio内调用版本控制的方法。

0

虽然经过这么多年,VisualHG 仍然是一个很棒的工具,但我也建议 HgSccPackage 作为所有 Visual Studio 版本(包括 VS2015)的一个非常可行的替代品。

  • 优点:独立包(不需要 TortoiseHg)。
  • 缺点:没有 TortoiseHg 的所有方便功能,例如 Git 支持(我发现这对于处理托管在 GitHub 上的项目非常方便)和Mercurial Keyring

它们都是免费软件,可以通过 Visual Studio GUI(工具 > 扩展和更新...)安装。

如果您想要更详细地比较它们,您还可以阅读 我的博客上的这篇文章


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接