2012-01-20 72 views
1

我使用進程生成器類並運行各種git命令從我的Java程序調用Git可執行文件。 Java程序正在從命令提示符運行。 但是,我沒有找到一種方法來只提取輸出的特定部分。從Java程序操作GIT版本控制系統的輸出

+0

這是什麼特定的部分。? – RanRag

+0

例如,看一個提交後。我使用gitdiff命令查看對存儲庫所做的更改。我只需要提取更改的部分,而gitdiff的輸出包含以前和當前版本。 – HelloWorld

+2

Git不是用Python編寫的 – basszero

回答

0

我會假設你使用StreamGobbler線程來獲得輸入。
只要在那裏過濾輸出的邏輯。

+0

不,我只是通過命令gitdiff作爲參數。我在gitbash /命令行中看到了哪些輸出。 你能告訴我怎樣過濾輸出嗎? – HelloWorld

+0

可以應用什麼邏輯來過濾不符合模式的輸出? – HelloWorld

0

像其他人一樣我會推薦使用java庫,如果您需要非常精確的東西,JGit允許許多低級操作。

但也許你正在尋找的Git命令是:「git diff commit_parent提交-U0」只給出變化和沒有上下文。

你也可以閱讀手冊:「git help diff」,你會發現Git提供了什麼。

但是,我認爲使用Java Git庫不是一個好主意:如果Git開發人員明天決定更改輸出格式會怎樣?你需要重新開始你的程序嗎?