我最近使用SSH密钥和其他所有东西在Cygwin环境中安装了Gitolite。
我成功安装了Gitolite,并且可以访问gitolite-admin
存储库,配置并放入新密钥。当我commit
和push
编辑时,一切都很好,直到我发现我无法再访问新的存储库或gitolite-admin
存储库...
然后我通过ssh进入我的服务器并注意到gitolite删除了authorized_keys
中的所有公钥,除了我使用SSH配置的默认SSH密钥。
我检查了钩子是否正在传播并且一切都很好 - Gitolite创建了新的存储库并编译了新的gitolite.conf
我不知道我错过了什么 - 有些不对劲但我不知道它是什么。
我看到的最后一个是文件~/.gitolite/src/sshkeys-lint
管理authorized_keys
文件,但我不太了解shell脚本语言。
答案 0 :(得分:6)
当你提交时,你是否在控制台(从你提交的机器)中收到以下错误?
remote: FIND: Parameter format not correct
remote: FIND: Parameter format not correct
如果是,则问题是find.exe。
Windows的\ windows \ system32文件夹中有一个find.exe,cygwin有自己的find.exe。通常\ windows \ system32首先出现在环境变量'path'中。
Gitolite在其脚本中使用“find”,但不幸的是,来自windows而不是cywin的find.exe被执行。
现在解决问题,转到环境变量选项卡并在system32之前添加cygwin的bin目录。
在此之后,您将不会再遇到“授权_keys文件在提交时被清除”的问题。
我在windows server 2008机器上使用gitolite,镜像工作正常。 (我已将此配置为从属设备,主设备是中心机器。) 更多信息, 由于你已经安装了sshd作为windows服务,所以cygwin路径将被赋予较少的优势,因为windows路径将会启动。