2010-07-31 46 views

回答

2

如果你在Linux上,並且你知道在哪個文件中看,你可以使用該shell腳本來輸出該文件的所有版本。

#!/bin/bash 
svn log "$1" -q | grep -oE r[0-9]+ | xargs -t -n1 -r -d '\n' svn cat "$1" -r 

將工作副本文件名或存儲庫URL作爲參數傳遞給此腳本。

如果一切都失敗了,並且您正在使用svnadmin dump而不使用--incremental開關進行常規轉儲,則可以grep查找最新轉儲文件中的文本。

非增量轉儲包含每個文件的每個修訂版的全文。

2

我知道這不是很漂亮,但它會相對較快:我會建議使用「人工」二分查找手動檢查該文件的svn修訂版。如果你有2000次修改,你只需要看看12個修訂版本就可以縮小到違規版本的範圍。

假設該行已添加到r1000中,最新版本是r3000。然後檢查r2000,如果該線仍然存在,請在r2000和r3000之間(即r2500)中途選擇一個修訂版,否則在r1000和r2000之間(即r1500)中途選擇修訂版。只需繼續使用此手動搜索算法縮小範圍即可。用2000版本的窗口,你應該在12次迭代中得到它。 (2000,1000,500,250,125,64,32,16,8,4,2,1,賓果!)

相關問題