我有一个Atlassian git存储服务器。在
我希望编写一个脚本,将java代码格式化程序作为预接收钩子运行(在它将更改推送到存储库之前)。在
所以,我要做的是不是在存储服务器本身上执行工作,而是在另一个服务器上执行工作,并将状态(0或1)发送回存储服务器。在
我用Python编写了这个脚本,其中它调用远程服务器上的cgi(Python)脚本,并使用“ref oldrev newrev”作为httpget方法。在远程服务器上获得STDIN值(ref oldrev newrev)后,我创建了一个dir、git init、git remote add origin URL和git fetch(我甚至尝试过git pull)来获取存储库的最新内容/对象,以期获取尚未推送到存储库但处于预推阶段环境中的对象。在
预推阶段中对象的哈希或SHA键或“newrev”键:36ac63fe7b15049c132c310e1ee153e044b236b7
现在,当我运行'git ls tree 36ac63fe7b15049c132c310e1ee153e044b236b7时测试.java'在我上面创建的目录中,它给了我错误。在
'致命:不是树对象'
现在,我的问题是:
如何在远程服务器上获取该对象?在
我运行的git命令会在那个阶段给我这个对象什么呢?在
还有别的办法吗?在
这对我上面的要求有意义吗。如果我不清楚请告诉我,我会尽量把事情弄清楚。在
非常感谢您的任何/所有帮助?在
别这么做。您试图在开发人员的背后运行
git filter-branch
的等效程序。别这么做。在如果要以特定方式格式化入站代码,请验证入站文件。如果有没有做对,列出他们和拒绝推。在
不能获取任意对象,只能通过ref(分支或标记)名称获取。pre-receive钩子在更新任何引用之前运行,因此没有ref命名入站提交。在
相关问题 更多 >
编程相关推荐