2011-05-19 102 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