Есть ли способ отменить изменения свойств svn для файла, не возвращая изменения в содержимое файла?
После слияния я могу иметь как изменения содержимого, так и изменения свойств файла:
> svn st foo.h
ММ foo.h
Есть ли способ сохранить изменения контента, но вернуть изменения свойств?
Я мог бы скопировать файл во временное место, вернуться, а затем скопировать обратно:
> cp foo.h/tmp
> svn revert foo.h
> mv -f/tmp/foo.h foo.h
> svn st foo.h
M foo.h
Но это было бы громоздким для многих файлов без написания отдельного script.
Я надеялся, что может быть опция svn, которую я пропустил.
Ответы
Ответ 1
Извините, я не знаю, как просто вернуть свойства... Но если бы я столкнулся с такой ситуацией, я бы начал работать:
$ svn proplist -v -r $REV foo.h
... # output, which I would copy to the clipboard
$ svn propedit foo.h
... paste in properties ...
И это может быть даже написано сценарием, если вам нужно вернуть свойства для кучи файлов.
Ответ 2
Сегодня утром я оказался в этой ситуации. Здесь bash script, который выполняет трюк...
for f in $( svn st . | grep '^MM' | cut -c 3- )
do
cp $f $f.$$ && svn revert $f && mv $f.$$ $f
done
Ответ 3
Невозможно просто вернуть свойства. Svn Commits - это как транзакция, либо все возвращены, либо ничего не вернулось. Если вы все еще настаиваете на этой работе, попробуйте, что Давид опубликовал в качестве первого ответа.