2008-10-02 38 views
61

在svn中,我創建了一個分支,在修訂號22334處說。在分支上提交提交。什麼svn命令會列出在分支上修改的所有文件?

如何獲取分支上相比干線上的內容更改的所有文件的列表?我不想看到分支創建和「現在」之間在主幹上發生更改的文件。

+0

我經常回到這個問題,最有幫助的答案是從@AndrewMedico中刪除的一個,用'svn log` :-D – DanFromGermany 2017-12-11 13:13:49

回答

67

這將做到這一點,我認爲:

svn diff -r 22334:HEAD --summarize <url of the branch> 
+0

完美。正是我在找什麼。謝謝。 – Trenton 2008-10-02 00:49:39

+0

謝謝,這正是我正在尋找的。 – nRk 2011-07-08 10:38:00

+2

謝謝。我甚至不知道我的分支是什麼版本,所以我做了`svn log <分支的url> |尾巴「以獲得最小的修訂版本號。 – BornToCode 2012-08-08 04:56:00

31

您也可以更改文件的快速列表,如果多數民衆贊成你正在尋找使用帶有-u選項

svn status -u 
status命令

這將顯示當前代碼庫中文件與版本庫中最新版本的修訂版本。當我真的想看到文件本身的差異時,我只使用diff。

有在這裏的svn命令一個很好的教程,說明不少,這些常見的場景:SVN Command Reference

2

-u選項將顯示包括對象的文件,如果在編譯過程中加入它們。

所以,爲了克服這一點,你可以使用這樣的。

svn status -u | grep -v '\?' 
9

這將只列出修改過的文件:

svn status -u | grep M 
2
echo You must invoke st from within branch directory 
SvnUrl=`svn info | grep URL | sed 's/URL: //'` 
SvnVer=`svn info | grep Revision | sed 's/Revision: //'` 
svn diff -r $SvnVer --summarize $SvnUrl 
0

您可以使用下面的命令:

svn status -q 

根據:

With --quiet (-q), it prints only summary information about locally modified items.

警告:此命令的輸出僅顯示您的修改。所以我建議你做一個svn up來獲得最新版本的文件,然後用svn status -q來獲取你修改過的文件。

相關問題