[英]Git Python log with grep
在命令行上我正在運行
git log \
--merges \
--grep='^Merge pull request .* in repo/foo from' \
--grep='^Merged .* to master' \
tag1..tag2
這給了我兩個給定標簽之間要掌握的合並提交的列表。
到目前為止我嘗試過的是:
git.Git(os.getcwd()).log(
'--merges',
'--grep="^Merge pull request .* in repo/foo from"',
'--grep="^Merged .* to master"',
'tag1..tag2')
僅當我刪除grep
此方法才有效。 使用grep
它返回一個空字符串。 這里的行為相同:
git.Git(os.getcwd()).execute(['git', 'log',
'--merges',
'--grep="^Merge pull request .* in repo/foo from"',
'--grep="^Merged .* to master"',
'tag1..tag2'])
我嘗試過的另一件事:
git.repo.fun.rev_parse(repo=git.Repo(), rev='tag1..tag2')
BadName
出錯,因為tag1..tag2
無法解析為對象。
外殼要求使用引號,以防止其解釋字符串中的元字符。 但是在這里,您沒有外殼。
git.Git(os.getcwd()).execute(['git', 'log',
'--merges',
'--grep=^Merge pull request .* in repo/foo from',
'--grep=^Merged .* to master',
'tag1..tag2'])
我猜您也可以將os.getcwd()
替換為簡單的'.'
。
找到了答案。 這是關於不好的報價。 這有效:
git.Git(os.getcwd()).log(
'--merges',
'--grep=^Merge pull request .* in repo/foo from',
'--grep=^Merged .* to master',
'tag1..tag2')
我認為必須在命令行上使用引號將參數保持在一起,但是在Python中傳遞參數時,每個參數都是一個字符串,因此已經被“引用”了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.