2015-10-12 3 views
1

Следующая команда мерзавец работает в Android-студия Terminalкоманда работает Git в терминале, но не от заводной сценария

git --no-pager show -s --format='%an <%ae>' c1ff6aa

Но это не работает, когда вызывается из заводной сценария, как это:

def getGitCommitAuthor(commitId){ 
def cmd2 = 'git --no-pager show -s --format=\'%an <%ae>\' ' + commitId 

def proc2 = cmd2.execute() 
proc2.text.trim() 
} 
+0

, что, скажите на милость, это выход? Кроме того, доказали ли вы, что ** любые команды ** git работают из сценария градации? –

+0

@ShawnMehan выход пуст. Да, я пробовал другие команды git, т. Е. 'Git log -1',' git rev-parse --short HEAD', который отлично работает. – Mehedi

+0

Что происходит, когда вы удаляете опцию формата из сценария python? –

ответ

2

Используйте "массив" синтаксис для его выполнения:

groovy:000> ["git", "--no-pager", "show", "-s", "--format='%an <%ae>'"].execute().text 
===> 'John Doe <[email protected]>' 

Без правильно отделенных Params есть некоторые hickup и результаты команды с ошибкой:

groovy:000> sout = new StringBuilder() 
===> 
groovy:000> serr = new StringBuilder() 
===> 
groovy:000> p="git --no-pager show -s --format='%an <%ae>'".execute() 
===> [email protected] 
groovy:000> p.consumeProcessOutput(sout,serr) 
===> null 
groovy:000> p.waitFor() 
// XXX exit code! 
===> 128 
groovy:000> serr 
// XXX error 
===> fatal: ambiguous argument '<%ae>'': unknown revision or path not in the working tree. 
Use '--' to separate paths from revisions, like this: 
'git <command> [<revision>...] -- [<file>...]' 
+0

Спасибо, это сработало! – Mehedi

Смежные вопросы