msys git和长path

我正在尝试使用git来更有效地pipe理使用CVS进行源代码控制的项目的工作,但是我遇到了问题,那就是add一个文件,这个文件的path确实很长 – 有276个字符。

不幸的是,这个文件是由自定义的IDE生成的,我正在使用的工具随附在工具中,因此无法重命名或移动。

使用以下来尝试使这个半可读的:

<projectpath> – 保存该项目所有组件的path
<hugepath>的path<hugepath> – 从<projectpath>到我遇到问题的第一个文件的path
<filename> – 我遇到问题的文件的名称

 me@work <projectpath> $ git init Initialized empty Git repository in <projectpath>/.git/ me@work <projectpath> (master) $ git add <hugepath>/<filename> fatal: unable to stat '<hugepath>/<filename>': No such file or directory me@work <projectpath> (master) $ ls -al <hugepath> ls: <hugepath>/<filename>: File or path name too long total 3 drwxr-xr-x 3 me Administ 0 May 3 2010 . drwxr-xr-x 4 me Administ 4096 May 3 2010 .. drwxr-xr-x 2 me Administ 0 May 3 2010 CVS 

msys的工具使用UNC前缀的path工作,通常可以让你在Windows上使用长文件,但是这似乎并没有解决path限制:

 me@work <projectpath> (master) $ git add //?/<projectpath>/<hugepath>/<filepath> fatal: Too long path: //?/<projectpath>/<hugep (intin - the path displayed is trimmed) me@work <projectpath> (master) $ ls-al //?/<projectpath>/<hugepath>/ ls: //?/<projectpath>/<hugepath>/.: No such file or directory ls: //?/<projectpath>/<hugepath>/<filepath>: No such file or directory total 2 drwxr-xr-x 4 me Administ 4096 May 3 2010 .. drwxr-xr-x 0 me Administ 0 May 3 2010 CVS 

是否有任何解决方法使用Windows上的git跟踪具有长path的文件?

我在Windows Vista Business SP1上使用1.7.4.msysgit.0。

Solutions Collecting From Web of "msys git和长path"

限制是259个字符,所以你不远处。 如果<hugepath>/<filename>长度小于256个字符,那么你可以使用“subst”技巧:

一个选择是从Windows命令行程序中使用subst

 subst P: <projectpath> 

然后用mysysgit:

 cd /p <git commands> 

或者,如果这不起作用,从Windows Vista / 7/2008命令行(RunAs管理员),您可以创建一个硬链接:

 mklink /DC:\p <projectpath> 

然后用mysysgit:

 C: cd \p <git commands> 

Cygwin,因此它的git包,通过自动映射到UNC路径,可以透明地支持这样的长路径。

这不是Windows的限制,实际上它支持任意长的文件名,并且只要我记得就这样做了。

我看到你正在使用//?/ 。 根据文档,你应该使用\\?\ 。 使用\\?\ ,正斜杠不会转换为反斜杠。

有一个允许你处理长路径的git选项:core.longpaths。 从git 1.9.0开始可用。