我已经成功地为Android镜像(包含多个git存储库)设置了gitosis。在gitosis.conf中的writable=之后添加新的.git路径时,我设法插入了一些换行符。当我收到以下解析错误时,保存、提交并推送到服务器:
运行回溯(最近一次调用):文件“/usr/bin/
-run-hook”,第8行,在load_entry_point中(‘gitosis==0.2’,'console_scripts',‘gitosis run-hook’)()
run "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py",app.main()中的文件返回第24行
文件"/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py",第38行,在主self.handle_args中(解析器、配置文件、选项、参数)
File "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py",第75行,在handle_args post_update中(cfg,git_dir)
文件导出第33行,在导出cfg.read中(os.path.join(os.path.join,'..','gitosis.conf'))
文件"/usr/lib/python2.5/ConfigParser.py",第267行,在read self._read(fp,filename)中
在_read raise e中,文件"/usr/lib/python2.5/ConfigParser.py",第490行
ConfigParser.ParsingError:文件包含分析错误:./gitosis-export/../gitosis.conf
(...)
我删除了换行符,并修改了提交
git commit -m“修复换行符”--修改
然而,git推送仍然会产生完全相同的错误。这让我相信牙龈病正在阻止我做任何进一步的努力。
我该如何从中恢复呢?
发布于 2009-08-23 06:19:28
我一直都在这么做。:-)答案是登录到gitosis服务器并编辑配置文件的副本。在拥有gitosis实例的用户的主目录中,应该有一个名为.gitosis.conf的链接(它实际上指向gitosis admin.git/gitosis.conf)。编辑该文件并修复那里的问题;然后,当您下一次推送时,它就会很好。
发布于 2010-04-02 06:43:25
实际上,您可以做一些稍微更聪明的事情。由于gitosis admin.git是一个git归档文件,您可以在本地克隆它,将其重置为工作版本并提交更改。其中一个技巧是,您必须以"git“用户的身份执行所有操作。
我们这样做了,但我们计划更改为gitolite,它会在合并更改之前检查错误,正是出于这个原因。
切换到"git“用户有写权限的空目录
sudo -H -u git克隆(存储库目录)/gitosis admin.git
cd gitosis admin
sudo -H -u git rebase -i (最后已知工作状态的提交id )
例如:
sudo -H -u git git rebase -i HEAD^^
使用交互式标志,很难犯错误;按照说明只选择正确的(已知有效的)提交
sudo -H -u git推送-f源站
-f标志强制git执行推送,即使存储库中的主分支不是新分支的祖先。这应该可以解决这个问题,并且您应该能够像往常一样从本地分支推送/拉取。
https://stackoverflow.com/questions/1300275
复制相似问题