Mac 上最好用的 SVN 客戶端是什麼?
GUI 界面的 App 推薦: Cornerstone.app 和 Versions.app 都可以,但是我推薦前者,因為功能更為強大,個人在使用。
你可以參考這裡的收集列表:
hzlzh/Best-App · GitHub另外大家可以來提交和推薦優秀的 Apps 和 服務嘗試使用了Versions1.3和Cornerstone3,強烈建議使用Cornerstone3。
Versions僅提供了基本功能,完全比不上強大的Cornerstone。
比如說代碼合併功能,價格$60的Versions並不支持,你還需要在其基礎上集成價格$70的Kaleidoscope,簡直坑爹。
反觀Cornerstone3,雖然價格$70,但很優雅地實現了代碼比較、合併等功能,和Versions比起來不要太實惠!
另外新版Cornerstone在UI上也表現喜人,算是徹底把Versions比下去了。
其實某些方面,Versions還不如免費的svnX2,比如svnX在提交時可以比較查看,Versions則是乾巴巴的文件列表。
無圖無真相,祭圖:
①Versions的代碼比較是調用系統的FileMerge功能,雖實用但醜陋:
②Cornerstone的代碼比較則是精心設計的:
③Cornerstone還支持圖片的比較哦:
④再來看看Cornerstone對代碼合併的完美支持:
⑤代碼提交時,Versions提供的僅僅是乾巴巴的文件列表,並未提供比較查看功能:
⑥這點可是連免費的svnX都支持的哦:
⑦Cornerstone不用說支持得更優雅:
⑧當然也包括圖片修改的比較了:
⑨除此之外呢,Cornerstone提供的華麗麗的日誌、時間線、注釋功能真讓人垂涎三尺啊:
好了,我的結論是,在macOS上使用SVN:
- 不想花銀子,選擇svnX2;
- 要砸錢的主兒,選擇Cornerstone3;
- 無視Versions1.3。
吐槽一下,Cornerstone3一直未支持Subversion1.9,而免費的svnX2早就支持了……
看官自己抉擇吧(╯" - ")╯︵ ┻━┻
針對Mac下的一般性SVN用戶(追求操作便利)的方案:
目前主要的問題:
Mac上的SVN客戶端主要存在兩個問題:- 自帶的SVN(包括CornerStone這類SVN客戶端內置的)都存在對有CJK字元的路徑名的處理問題,結果就是明明一個文件存在並已經納入版本管理,但是卻被認為是個新文件。這點在管理代碼時問題不大,但是在管理多語言文檔時非常麻煩。
- 無法做到Windows下的TortoiseSVN這樣和Explorer集成的便利。無論免費的svnX或收費的CornerStone都是自己一套界面而無法和Finder結合,遠不如在Windows下瀏覽文件時同時通過右鍵操作的方便。
SVN對CJK路徑名處理問題的解決(只管理代碼的可以忽略這個問題)
Mac版本的SVN對包含了CJK字元的Unicode文件名的處理存在問題是個長期已知的問題,不可思議的是這個bug早被解決了,但是一直沒有被歸併到主流版本中,包括通過Mac自帶版本以及通過homebrew或者MacPort安裝的默認版本。還好的是通過homebrew或者MacPort都可以通過指定選項來解決這個問題。
# for homebrew
$ brew tap tholu/tap
$ brew install --with-unicode-path tholu/tap/subversion18
# for MacPort
$ sudo port install subversion +unicode_path
在此,我們推薦用homebrew安裝。
能和Finder集成的SVN軟體
Mac下之前也有類似於「SVN Status」這樣的能和Finder集成的軟體,但是只能顯示SVN狀態,並不能進行SVN操作,而且其內置SVN同樣存在對CJK文件名處理的問題。然而,最近發現的一個新軟體終於幾乎完美解決了這個問題:「SnailSVN」。這個軟體的特點在於:- 和TortoiseSVN完全類似的界面和操作方式:在Finder中直接顯示文件/目錄的SVN狀態,並在右鍵菜單中加入了SVN的相關操作
- 能夠設置為使用外部的SVN。儘管其內置的SVN同樣存在對CJK文件名處理的問題,但是由於其可以使用外部的SVN命令(儘管需要費相當一番功夫),從而可以解決CJK文件名處理的問題。
SnailSVN在Mac AppStore上可以購買(¥60),在Finder下的樣子大概如下:
然而,要讓SnailSVN使用外置的svn命令,由於MAC的SIP功能、SnailSVN本身(庫搜尋路徑等)的種種問題導致並不能直接使用之前用homebrew安裝的svn。總而言之,需要我們自己製作一個portable的svn,並在SnailSVN中使用這個svn。這其中涉及到使用otool/install_name_tool等去修改庫的路徑等。為了避免大家的麻煩,我製作了一個,可供大家下載:
https://pan.baidu.com/s/1bpuWbXd (提取密碼:jpri)使用方法如下:- 下載該SVN,並解壓到Application目錄中(由於SIP,放到這裡比較好)
- 如下圖所示設置SnailSVN:
Versions
慣用 Git ,無奈還是需要用到 SVN 。以前沒找到好用的,就一直用 svn(1) 和 svnX 。前幾天試了試 git-svn(1) 配合 SourceTree 之後終於舒服多了。
svnX?
如果熟悉Git用SourceTree連接,如果不熟悉用Versions;如果不熟悉Git又嫌Versions太貴,用SmartSVN的免費版。
直接用命令行吧
用過Versions1.33,Cornerstone3.02和SmartSVN9.1。個人感受Versions最不好用,還經常崩潰卡死。推薦後兩者,都很不錯,功能比Versions強大很多。個人現在正在用SmartSVN,功能完善,比較符合自己的需求:
目前用到最好用的竟然還是 Intellij 自帶的 SVN.......同時遇到無數坑後, 複雜任務都直接在命令行做了
用的eclipse加上subverison插件 , 習慣了
用過Versions、CornerStone,最終都放棄,用終端+subclipse。
如果你是從git轉過來的。推薦倆命令,也許你就會放棄使用客戶端:
查看一個文件每一行最後更改的詳情(版本、作業)svn blame filename
查看一個文件所有更改歷史詳情
svn log --diff filename
git svn的命令行
說一個受眾面可能不大的答案,如果你在用JetBrains IDEA的開發環境的話,那你大可必不考慮這個事情。IDEA裡面集成的Version Control功能非常強大,代碼合併也是很好用的,誰用誰知道。PS:Windows下面還能支持ssh的git push
個人用過幾個產品
Cornerstone,Versions, SmartSVN其中Cornerstone最佳,領先其它一個身位。但是它有個小缺點:更新到衝突後第一時間沒有明顯的警告提示。當然了,如果對命令行非常熟悉,還是敲命令吧。樓上說的幾種都用過,最終是一直在用 SmartSvn,因為功能最全.
一直在用svnX
我在win下用的是RapidSVN,但現在這軟體停止開發了,mac無法使用,上面的我用了Cornerstone,svnX,但都無法適應,今天終於被我找到個mac os 10.9上可以用的版本,這下舒服了,呵呵!在github上搜索RapidSVN-IntelMac,比較工具我用的是beyond Compare,但mac下還是個測試版本,到無所謂了,比較工具比較多。
smartsvn沒有之一 跨n個平台,支持svn1.7
推薦閱讀:
※SVN repository found,關於AWVS掃描出的SVN漏洞?
※Word Office 2016 for mac啟動就崩潰?
※xcode中的project.pbxproj衝突怎麼解決
TAG:MacBookPro | macOS應用 | MacAppStore | SVNSubversion |