【问题标题】:Can Mercurial create its own symbolic link format from Windows?Mercurial 可以从 Windows 创建自己的符号链接格式吗?
【发布时间】:2012-04-18 12:26:20
【问题描述】:

我知道 Mercurial 不支持 Windows 上的 repos 中的符号链接;我可以接受这一点,尽管使用 NTFS 符号链接的实现对于那些可以为非管理员在其 Windows 机器上启用权限的人来说会很好。

我想知道的是,当在 Windows 机器上看到存储库时,Mercurial 处理来自 Unix 存储库的实际链接的方式。如果我在 Windows 开发机器上使用符号链接从 repo 更新,我会看到链接已更改为实际文件,其中链接的目标为文本。

不知何故,即使在 Windows 上,Mercurial 也知道该文件最初是一个符号链接,即使它存储为真实文件也是如此。如果我在 Windows 中编辑文件的内容,我可以更改符号链接的目标,因为 Mercurial 仍将它记录为符号链接 - 当我推回 Unix 时,符号链接指向新位置。

所以。如何将我在 Windows 中创建的文件标记为符号链接?很明显 Mercurial 可以将这样的符号链接推送到 Unix 文件系统中,但我不知道如何在不首先在 Unix 下创建链接的情况下将其标记为这样。

有可以设置的标志吗?

【问题讨论】:

    标签: windows mercurial symlink


    【解决方案1】:

    恐怕有no work-around on Windows。不过,您可以编写一个扩展程序,让您在 Windows 上为文件设置符号链接位。此扩展可能必须覆盖dirstate.flagfunc,这是在请求文件的“标志”(执行和符号链接位)时使用的函数。

    另请参阅Issue 1825,了解让 Mercurial 在结帐时创建 Windows 符号链接的整体功能。它被标记为“完成,可能会更好”,因此不太可能很快改变。

    【讨论】:

    • 澄清一下,我不想创建 Windows 符号链接;我只想创建一个以目标为内容的单行文本文件,当我推送到 Unix 时,该文件将变成符号链接。 Mercurial 已将其称为符号链接的文件会作为正确的符号链接返回 - 我可以告诉 Mercurial 我创建的特定文本文件应该指向相同的内容吗?那是我可以为其编写扩展的位吗?如果可以,您是否有任何指示我应该从哪里开始查看 Mercurial 中的代码?谢谢。
    • @IainHallam:当然,我已经用一个指针更新了答案,指向我认为要覆盖的相关函数。
    猜你喜欢
    • 2010-11-30
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2019-10-28
    • 1970-01-01
    相关资源
    最近更新 更多