[英]Capturing git log output on Windows XP with Python
此代碼段可在我可以訪問的大多數Unix(Linux,Solaris,AIX)以及Windows 7 / Server 2008 R2以及我用來獲取git log輸出的更高版本上使用:
from subprocess import Popen, PIPE
import platform
cmd = ["git", "--no-pager"]
if platform.system() == "Windows":
cmd.append("--work-tree=/path/to/working/copy")
cmd.extend(["log", "--pretty=format:\"%cd %h\"", "--date=short", "--", "/path/to/working/copy/filename/to/check"])
proc = Popen(cmd, stdout=PIPE, stderr=PIPE)
proc.wait()
f = proc.stdout
some_stuff = f.read()
f.close()
但是,在使用msysgit的Windows XP上,我沒有獲得some_stuff變量的任何值,這很奇怪,因為在Windows的命令行上運行生成的命令即可。
關於我在這里應該做什么的任何提示?
經過研究后,發現的是:
git.cmd
而不是直接指定git.exe
。 通過測試上述內容,似乎:
--work-tree
選項 os.path.normpath()
來“規范化”路徑名將不起作用,因為它將假定不區分大小寫並將驅動器號更改為小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.