2011-05-19 58 views
11

合併後,我可能有兩個內容的變化以及對文件屬性-變化:有沒有辦法恢復文件的svn屬性更改而不會恢復文件內容的更改?

> SVN ST foo.h中

MM             foo.h中

有沒有辦法保持內容的變化,但恢復屬性的變化?

我可以將文件複製到一個臨時位置,恢復,然後再複製回:

> CP foo.h中的/ tmp

> SVN還原了foo.h

> MV - ˚F/tmp/foo.h foo.h中

> SVN ST foo.h中

 中號         foo.h中

但是,這會很麻煩有很多文件,而無需編寫單獨的腳本。

我希望可能有一個svn選項,我錯過了。

回答

5

對不起,我不知道有什麼辦法,只是恢復性......但是,如果我面臨着這種情況下,我想我會運行:

$ svn proplist -v -r $REV foo.h 
... # output, which I would copy to the clipboard 
$ svn propedit foo.h 
... paste in properties ... 

而這很可能甚至可以編寫腳本,如果你必須恢復一堆文件的屬性。

-3

這是不可能的,只是恢復屬性。 Svn提交就像交易一樣,或者全部被還原,也沒有任何東西被還原。如果您仍然堅持這項工作,請嘗試David發佈的第一個答案。

3

今天早上我自己進入這種情況。這是一個bash腳本,它可以做到這一點...

for f in $(svn st . | grep '^MM' | cut -c 3-) 
do 
    cp $f $f.$$ && svn revert $f && mv $f.$$ $f 
done 
+2

好主意,但是這個腳本不適用於具有空格(或其他IFS字符)的文件。 – 2013-07-24 21:44:44