【问题标题】:Sharing a file between multiple locations在多个位置之间共享文件
【发布时间】:2011-11-17 12:58:10
【问题描述】:

我们目前正在使用 Subversion(在 Windows 上)进行源代码控制,但我们正在研究是否切换到 Mercurial。一个问题是我们在存储库中使用外部文件在多个子项目之间共享单个文件。如果编辑了此类文件的一个版本,则更改会在我们的签出时传播到其他版本。有没有办法在 Mercurial 中实现相同的目标,即多个位置的同一个文件?在 Unix 上,这可以使用某种链接来实现。但是 Windows 呢?

【问题讨论】:

  • 为什么不创建一个公共存储库来存储这些文件?在 Windows 中,您必须将它们放在某个公共位置,并配置子项目以访问该位置

标签: windows unix mercurial


【解决方案1】:

Mercurial 有Subrepository 功能,有点像svn externals。

在我看来,Mercurial 功能比外部功能更复杂,但您可以使用它实现相同的目标,而且更灵活。

您甚至可以将 Subversion 或 Git 存储库用作 Mercurial 中的子存储库,因此根据您现在的操作,您可以重复使用实际的外部存储库而无需任何更改。

链接文档中的所有内容都得到了很好的解释,以便使用此功能有一个良好的开端!

顺便说一句,符号链接也存在于 Windows 上:NTFS Symbolic link

【讨论】:

  • 感谢您的回答。我已经阅读了有关子存储库功能的信息,但不幸的是,它似乎只适用于文件夹而不适用于单个文件。而且我们的项目结构过于复杂,无法将可能在不同位置共享的所有文件放在一起。但是 subrepo 功能至少可以派上用场来处理我们的一些依赖项。我不知道 NTFS 符号链接(仅关于联结)。如果 Mercurial 可以处理它们,我想这将解决这个特殊问题。
  • @fschoenm AFAIK,Mercurial 处理 NTFS 符号链接。
  • 我尝试了 NTFS 符号链接(和硬链接),但 Mercurial 似乎也不支持。相反,当我复制我的原始存储库时,我只得到了副本而不是链接。
  • 正确,Mercurial 不支持 NTFS 符号链接。见Issue1825
猜你喜欢
  • 2012-01-22
  • 2023-03-25
  • 1970-01-01
  • 2017-05-29
  • 2016-05-31
  • 1970-01-01
  • 2019-03-17
  • 2012-07-22
  • 2021-06-01
相关资源
最近更新 更多