【问题标题】:Mercurial repository & MSVS - two projects & shared filesMercurial 存储库和 MSVS - 两个项目和共享文件
【发布时间】:2012-09-01 08:49:31
【问题描述】:

我目前正在 MS VS2010 中开发一个基于客户端-服务器架构的应用程序,VS 中的每个部分都有一个项目。直到最近,他们都在 Hg 中拥有自己的存储库,但我决定将它们移到一起,因为现在共享了很多文件。

我一直在使用硬链接来确保将一个文件上的更改传播到另一个文件夹/项目中的同一文件。但是,如果您克隆存储库或从在线存储库中签出,则硬链接会损坏。

我已经尽可能多地阅读了与 Hg 的软链接和硬链接,但在这一点上,它们似乎都不是一个好的、可移植的解决方案。你会推荐什么方法在两个项目之间共享文件,记住我希望有一个干净的结构,也反映在 VS 中?

最好的问候, 最大。

【问题讨论】:

    标签: visual-studio-2010 mercurial repository hardlink shared-file


    【解决方案1】:

    您可以使用 Mercurial 的 sub-repository feature 将您的共享文件放在外部存储库中,并在您需要的地方共享。还有guest repository extension,它比子存储库更新且重量更轻。

    但是,我不会在版本控制中解决它,而是重新安排您的 Visual Studio 项目,以便您的共享代码编译为您的客户端和服务器程序集使用和依赖的程序集。 在汇编级别而不是代码级别共享代码。

    如果您确实必须保留现有结构,我会使用 NTFS 连接(类似于 UNIX 风格的软链接)来连接共享代码需要去的地方。然后,您会将这些联结添加到存储库的忽略列表(在.hgignore 中)。创建一个您和其他开发人员可以运行的 PowerShell 脚本,该脚本将使用正确的联结初始化您的存储库。

    【讨论】:

    • 重点是将所有内容都放在一个存储库中,因此第一个选项已经行不通了。此外,在汇编级别共享代码也没有多大意义。共享文件不是库或类似文件,它们是双方使用的接口和模块。最后但同样重要的是,如果我错了,请纠正我,但是以这种方式使用联结会导致无法克隆存储库并使其成为完整副本?它也不便携?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 2012-03-02
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多