我目前正在爲我的團隊設置一個小型持續集成服務器。我們最近將我們的源代碼切換到SVN服務器。SVN客戶端和API之間的主要區別是什麼?
我想知道SVN客戶端從一些腳本內部或使用Python腳本中的svn API之間的主要區別。除了我對一種語言或另一種語言的瞭解之外,爲什麼我會選擇其中一種。
我仍然是這個項目的開始,所以我認爲現在是這樣一個問題的正確時機。
謝謝!
我目前正在爲我的團隊設置一個小型持續集成服務器。我們最近將我們的源代碼切換到SVN服務器。SVN客戶端和API之間的主要區別是什麼?
我想知道SVN客戶端從一些腳本內部或使用Python腳本中的svn API之間的主要區別。除了我對一種語言或另一種語言的瞭解之外,爲什麼我會選擇其中一種。
我仍然是這個項目的開始,所以我認爲現在是這樣一個問題的正確時機。
謝謝!
SVN客戶端命令行工具是開發人員每天使用的工具。如果你只需要導出/檢出/緩衝版本和提交等簡單的事情,你可以用標準的Unix方式來連接命令行參數和解析輸出。這是最簡單的方法,如果發生中斷,您可以通過手動重複調試破壞的操作。我知道很少有這樣做的程序,它們似乎沒有任何問題。
SVN客戶端API(libsvnclient)包含的那些命令行客戶機提供,基本上1相同的命令編程接口:1,但它給出了該過程略微更多的控制。如果您期望將會操縱文件列表/樹,複雜的包含/排除規則,如果您希望某些文件的自動衝突解決方案,以及其他可能過於複雜的bash腳本或解析輸出的內容,那麼這個API將會有所幫助。學習和使用非常簡單(很簡單,可以立即開始使用)。
低級SVN API(如repository/workingcopy access api)提供了對Subversion過程所有方面的全部控制。如果你想使用repository作爲數據庫後端,如果你需要對repo/wc進行危險的低級操作(比如編輯日誌消息),那麼就可以使用它了。即使對於基本的東西,它也不是簡單也不容易使用的(實際上,libsvnclient的函數是這些API的快捷方式,只是簡單的事情而已)。我無法想象爲什麼CI系統會需要它。
這是一個很好的描述,你有一個參考(例如SVN紅色書)嗎,還是它是自制的? – mliebelt
@mliebelt Homebrew。我有一個項目將文件保存在SVN信息庫中,並且我從調用'svn'到使用libsvnclient。 – hamstergene
@hamstergene謝謝你的指導性答覆! –