2011-05-19 17 views
11

Después de una fusión, podría haber dos content-cambios, así como la propiedad cambios en un archivo:¿Hay alguna forma de revertir los cambios de la propiedad svn para un archivo sin revertir los cambios al contenido del archivo?

> svn st foo.h

MM             foo.h

¿Hay alguna manera de mantener los cambios de contenido, pero revertir los cambios de propiedad?

que podría copiar el archivo en una ubicación temporal, volver, a continuación, copiar de nuevo:

> cp foo.h/tmp

> svn revert foo.h

> MV - f /tmp/foo.h foo.h

> svn st foo.h

M               foo.h

Pero eso sería engorroso con muchos archivos, sin escribir una secuencia de comandos independiente.

Estaba esperando que haya una opción svn que me he perdido.

Respuesta

5

Lo sentimos, no sé de ninguna manera de volver simplemente propiedades ... Pero si me enfrentaba a esa situación, creo que lo haría funcionar:

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

Y eso podría probablemente incluso ser escrito, si Debes revertir las propiedades de un grupo de archivos.

-3

No es posible revertir las propiedades. Los commits de Svn son como transacciones, todos se revierten, ni se revierte nada. Si todavía se lo insiste en este trabajo, pruebe lo que David ha publicado como primera respuesta.

3

Me he metido en esta situación esta mañana. Aquí hay una secuencia de comandos bash que hace el truco ...

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

Buena idea, pero esta secuencia de comandos no funcionará con archivos que tienen espacios (u otros caracteres IFS). –

Cuestiones relacionadas