2017-09-05 71 views
0

This question是有用的,但不完全,尋找更多這樣的:通過.NET可執行管理git倉庫

我們有生產代碼,我們需要最終用戶(非開發商)在各種版本的使用, (長篇故事),這是作爲不同的提交在git中追蹤。 git repo在本地機器上,我們(devs)確保它在每次部署時都被拉出。現在,他們使用各種快捷方式來檢查.bat文件,這些文件檢查他們爲某種類型的工作所需的提交。這是一個很長的故事,我沒有空間來描述這是爲什麼這是用法,但是它的工作原理,讓我們不要諱莫如深。

我們想用快捷方式替換bat文件的快捷方式到exe文件,以便編譯它。我們將使用配置文件來確定哪種類型的工作是哪個提交。我需要:將git命令(status/checkout)發送到命令行(或者直接git?是否有api?)並獲取(字符串)結果,以便確保結帳正常。思考?

+1

git的命令行本身的API,以及所有主要的IDE供應商使用它來自動執行任務。像libgit2sharp這樣的庫已經過時了。 –

+0

這裏的要點是,這不是在IDE中發生的,這是一個單獨的事情,需要成爲最終用戶的簡單exe,而不是開發人員。他們從不打開ide。坦率地說,他們甚至不知道什麼是源代碼控制,他們只知道每個快捷方式啓動不同的「方法」。你有沒有建議如何讀/寫/從cmd行git?我可以編寫並讀取用戶輸入,但讀取cmd的輸出......? – Keith

回答

1

你有2個解決方案...

  1. 呼叫git的exe文件,並解析文本結果。事實上,這可能是痛苦的。而且必須在每臺計算機上安裝的git

  2. 你可以使用https://github.com/libgit2/libgit2sharp這是一個完全正常的庫來做到這一點,並通過github上和微軟的傢伙保持

+0

謝謝,libgit2sharp是一個很好的答案,但我當然希望它更加功能完整。特別是它會自動使用'Commands.Checkout()'命令'git submodule update --all'並且我似乎無法改變這個 – Keith

+0

在項目上打開一個問題,至少保留一下你的功能請求的跟蹤。 .. – Philippe

+0

https://github.com/libgit2/libgit2sharp/issues/1494 – Keith