2013-02-18 89 views
0

我有一個基本的SVN存儲庫和此場景:svn查找具有不同修訂版本的文件

我有一個共享服務器使用SVN來更新源代碼。起初,我使用svn up更新了整個回購協議的最新版本,例如:12。但在某人(不要問我爲什麼)之後很少有時間在一個文件上使用svn up -rXX(其中XX!= 12)。

svn up -r10 public/style.css 

我回來的文件夾,當我使用svn info修訂總是12,但我需要列出不同的版本比根文件夾中的所有文件?

我正在尋找一個更好的解決方案,所有glob的文件和使用SVN信息:)

+0

三個問題: 爲什麼要使用混合版本的工作副本? 爲什麼要使用共享工作副本? 服務器是什麼操作系統? – thekbb 2013-02-18 19:18:22

+0

對於像我說的兩個第一個問題,不要問我爲什麼:)我沒有選擇atm。 Linux操作系統。 – Kakawait 2013-02-18 20:52:30

+0

我聽說你,我也是爲了生活而工作。繼續打好戰鬥。這個工作副本是否提供了prod服務? – thekbb 2013-02-18 22:17:27

回答

0

首先第一件事情 - 開始戰鬥了一場艱苦的戰鬥,以擺脫你已經扔進亂。您應該能夠在共享和混合工作副本的鏈條上出售風險。

你可以做這樣的事情,從你的工作拷貝

svn status -v | grep -v 12

列出的工作副本中的所有文件的轉速並打印那些沒有12

+0

謝謝完美。我知道情況比壞差,但atm我沒有選擇,我儘量保持我可以與這種情況:) – Kakawait 2013-02-19 08:40:30

+0

錯誤的假設產生錯誤的解決方案 – 2013-02-19 08:56:51

+0

這不是一個錯誤的解決方案 - 它不是一個解決方案所有,這實際上是一個額外的問題。我認爲OP意識到這一點。 – thekbb 2013-02-19 20:05:38

0

我需要列出與根文件夾不同的所有文件?

不,你不需要這一點 - 不要混淆術語「庫修訂」(全球)和「文件修訂版」(任何版本和時間的文件中被改變)

  • 全球修訂在倉庫所有對象的歷史片在某一時刻(及其修訂可能會有所不同,只是因爲存儲在庫中的改變/修改/ 可能影響不是每個文件

  • 文件修訂是在某一時刻這個文件的狀態(與不變自己的版本的文件可能,並且可以在不同的全球版本存在)

    SVN LS -v http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/

    36 lazybadg    янв 09 11:45 ./ 
    
    34 lazybadg   42 мар 24 2012 Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt 
    
    32 lazybadg   88 дек 27 2011 Hello.de.txt 
    
    33 lazybadg   82 фев 28 2012 Hello.en.txt 
    
    36 lazybadg   88 янв 09 11:45 Hello.eo.txt 
    
    35 lazybadg   90 янв 09 11:35 Hello.fr.txt 
    

(正如你所看到的,在HEAD中的主幹文件有不同的修訂版 - 它沒關係)

>svn info http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/ 
... 
Revision: 37 
... 
Last Changed Rev: 36 
... 

如果你想從目前的混合回報你工作拷貝到存儲庫R12的狀態,你剛纔svn up -r 12或者,如果12如果HEAD - svn up

演示過程中(同一網址以上)

>svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/ 
A trunk\Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt 
A trunk\Hello.en.txt 
A trunk\Hello.eo.txt 
A trunk\Hello.fr.txt 
A trunk\Hello.de.txt 
U trunk 
Checked out revision 37. 

驢友我們WC

>svn up -r 30 Hello.de.txt 
Updating 'Hello.de.txt': 
U Hello.de.txt 
Updated to revision 30. 

(我們更新文件的狀態,它是在庫修訂 30,Hello.de.txt修訂可能< = 30)

檢查WC

>svn status 

(無輸出 - 廁所是乾淨的,可以在不頭痛更新)

返回純HEAD

>svn up 
Updating '.': 
U Hello.de.txt 
Updated to revision 37. 

(再次:37是回購協議的修改,在此狀態下Hello.de.txt可能/和有/修改自己 - 32根據LS - 但我們可以不完全知道這個版本,Subversion爲我們存儲這個數據並在需要時使用)

相關問題