自己编译对Cygwin友好的git

首先,我承认我使用的Cygwin版本很老,1.5.24(使用uname -r显示)。如果你在Cygwin下使用git没有遇到我的问题,那很好,恭喜你。

由于Cygwin的版本很老,它自带的git版本就更不用说了,所以我都是自己编译的。随便用用没什么,后来用了自己搭建的gitorious,发现push上去后在别处clone,执行文件的执行属性都不见了。研究发现,原来是在.git/config文件中core.filemode设置为false,意味着权限都被忽略了。

简单但略微繁琐的解决方法是(无论使用git init还是git clone)每次创建新的git repository,都不要忘记执行

$ git config core.filemode true

或者修改git根目录下的Makefile,然后重新编译。修改很简单(此处以git 1.7.2.1为例),即注释掉Makefile:889行,

# NO_TRUSTABLE_FILEMODE = UnfortunatelyYes

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据