Mercurial:提交路径长度超过255个字符的文件(Windows)?

Win*_*ker 13 mercurial tortoisehg mercurialeclipse

我尝试将文件夹层次结构提交到Mercurial存储库中,该存储库包含文件,绝对路径长度超过255个字符(Windows最大路径长度).

对于这些文件,我收到一条错误消息说

该系统找不到指定的路径

我们使用TortoiseHG和Mercurial的Eclipse插件,两者都不起作用.

有没有人为此找到解决方案?(我不想在我的HD上更改存储库的位置)

Aar*_*hen 19

存在旨在解决该确切问题的扩展.它是:https: //www.mercurial-scm.org/wiki/Win32LongFileNamesExtension

它使用\\?\样式名称来透明地处理长文件.

我是作者,让我知道它是否适合你.

  • 究竟.我们在整个公司都做到了这一点.上面的链接已经死了.请使用这个:https://bitbucket.org/remleduff/win32lfn (2认同)

Igo*_*gor 7

正如他所说,我刚刚安装了Aaron Cohen的扩展程序.它完全适用于我的TortoiseHG 2.6.1!谢谢,亚伦!

虽然,我想在这里添加详细的指南,因为我找不到一个......

(至少这是我在Win7 x64上所做的 - 我不确定这是最短的方式)

1. 下载Mercurial-py

  • 请注意所需的Python版本
  • 我已经下载了"Mercurial-2.4.2(64位py2.7)"

2. 下载Python

  • 确保您正在下载兼容版本.
  • 我使用了"Windows X86-64 MSI Installer(2.7.3)"链接

3.安装Python

  • 我把它安装到"D:\ Python27"

4. 下载pywin32

  • 它是Win32LongFileNamesExtension所必需的.
  • 请注意pywin32文件名中的Python版本号.
  • 我用的是"pywin32-218.win32-py2.7.exe"

5.安装pywin32

  • 确保安装程序检测到正确的Python安装
  • 就我而言,它安装在"d:\ Python27\Lib\site-packages\pywin32_system32 \"中

6.安装Mercurial

  • 确保安装程序检测到正确的Python安装
  • 就我而言,它安装在"d:\ Python27\Lib\site-packages\mercurial \"中

7.设置PYTHONPATH环境变量

setx PYTHONPATH d:\Python27\Lib\site-packages\win32lfn\src;d:\Python27\Lib\site-packages\mercurial\
Run Code Online (Sandbox Code Playgroud)
  • 使用此cli命令,或使用其他方法执行相同操作
  • 当然,您应该根据自己的需求调整路径
  • 在此之后重新启动你的cli,以确保环境.变量现在已正确设置

8.下载win32lfn

9.做interanal win32lfn测试

cd /D D:\Python27
python d:\Python27\Lib\site-packages\win32lfn\tests\testwin32lfn.py
Run Code Online (Sandbox Code Playgroud)

10.创建存储库的备份.

  • 对我来说,一切都只是发生了,但你永远都不知道......

11.将win32lfn添加到hgrc

[extensions]
win32lfn = d:\Python27\Lib\site-packages\win32lfn\src\win32lfn.py
Run Code Online (Sandbox Code Playgroud)
  • 您可以在存储库中的".hg"文件夹中找到"hgrc"

12.测试一下!

  • 只是一个注释,但我刚刚提交了一个删除pywin32的需要. (3认同)