2012-01-27 57 views
1

我需要使用最新版本(工作副本)來標記我的項目。我想過使用svn info命令,但我正在做選擇性更新,所以我擁有的是一個工作複製混合版本,同時做svn信息它顯示一些舊版本。請幫助標記我的來源是混合版本。有什麼區別b/w svn info和svnversion

我還發現svnversion,它會幫助嗎? 這是更好的工作svn信息或svnversion

回答

1

svnversion公開了svn info的相同信息(修訂號),但進行了總結。

我總是使用svn info來獲取這些信息。

+0

它實際上不公開相同的信息。或者,也許更正確地說,svnversion可能不會給你你想要的。 ** svnversion **提供您已更新的存儲庫的修訂版,以及其他一些內容。這與上次修改版本不同。 ** svn info **提供您已更新到的最新修訂版本,以及上次更改的修訂版本。 嘗試此做一個從很久以前的標籤簽出。你會看到svninfo給出的修訂版本是你的版本庫中的最後一個版本。 – 2015-09-03 16:20:54

-2

應用svn info您的回購網址,而不是您的工作副本。這一定是最新的:

svn info http://server/svn/repo 

svnversion不是svn命令,它是第三方腳本。它應該使用svn info迭代你的工作副本並獲得修訂。

+3

(一)它不是一個腳本,它是一個二進制(B)這不是第三方,它的顛覆計劃的一部分。 – greggo 2012-05-04 21:41:37

0

要標記混合修訂WC只使用拷貝從WC命令:

svn copy WC URL -m "Tagged version x.x.x". 

svnversion打印如果工作是單一版本,未經切換單一版本號,並與可選TRAIL_URL arguemen相匹配。如果URL工作 副本是不尋常的版本號將更加複雜:當你想要寫這使信息化爲AA串構建腳本

4123:4168  mixed revision working copy 
4168M   modified working copy 
4123S   switched working copy 
4123P   partial working copy, from a sparse checkout 
4123:4168MS mixed revision, modified, switched working copy 
0

svnversion,如果是最有用的,比如你r構建過程可以創建一個編譯到應用程序中的版本字符串,其中包含svnversion的輸出,應用於工作副本的基本目錄。與'svn info'不同,它只提供單個文件或目錄的信息,svnversion將查看所有子目錄並修改其輸出(請參閱Ivan Zhakov的答案),以反映任何本地mod或不同版本的混合。如果它只是說「4123」,你就知道你可以(如果所有的設置都正確)通過檢查rev 4123重新生成相同的版本。

2

儘管svnversion可以方便地按照@Ivan Zhakov的回答,但它不起作用100%的時間,特別是與SVN版本7工作副本子文件夾(我只得到結果'導出')

要在構建腳本兼容,我使用svn信息。

REVISION=$(svn info | grep -i revision | cut -f2 -d: | tr -d [:space:]) 

您可以通過獲得類似「本地修改」標誌

OUTSTANDING=$(svn status | grep '^[M!DA]')