2012-04-04 32 views
3

我知道Mercurial不支持Windows回购协议中的符号链接;我可以忍受这一点,尽管使用NTFS符号链接的实现对于那些可以在非Windows系统管理员的Windows机器上启用特权的用户来说很不错。可以Mercurial从Windows创建自己的符号链接格式吗?

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

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

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

有没有可以设置的标志?

回答

1

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

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

+0

为了澄清,我不想创建Windows符号链接;我只想创建一个单行文本文件,其中包含一个目标作为其内容,当我推送到Unix时,它将变成一个符号链接。通过Mercurial已知为符号链接的文件可以恢复为正确的符号链接 - 我可以告诉Mercurial我创建的特定文本文件应该是相同的吗?这是我可以写一个扩展的位,如果是的话,你有什么指针可以开始在Mercurial中查看代码吗?谢谢。 – 2012-04-12 16:50:50

+0

@IainHallam:当然,我已经用一个指向我认为将会覆盖的相关函数的指针更新了答案。 – 2012-04-13 06:45:15

相关问题