Svn отменить все изменения свойств - PullRequest
28 голосов
/ 21 июня 2010

У меня есть рабочая копия svn, в которую я попытался отменить слияние нескольких последних изменений. Я отменил слияние до его завершения, когда передумал. Теперь моя рабочая копия содержит несколько тысяч «изменений» от обновлений свойств, связанных с родословной, в большинстве файлов. У меня есть около 10 файлов с реальными изменениями кода, которые я не хочу отделять вручную.

Можно ли отменить все изменения свойств, не затрагивая изменения содержимого?

Ответы [ 6 ]

32 голосов
/ 22 ноября 2011
svn revert `svn status | grep '^ M' | sed 's/^ M \+//g'`
18 голосов
/ 21 июня 2010

Если вы используете опцию «--depth empty», вы будете возвращать изменения только к путям, явно указанным в командной строке, поэтому, если вы укажете все каталоги, в которых есть изменения свойств, но НЕТ файлов, изменения содержимого которых вы хотитесохранить.

например, если у вас есть каталог 'foo' с нежелательными изменениями свойств, но файл 'bar' внутри 'foo', то ниже следует сохранить моды для 'bar', но отменить изменения свойств на 'foo '.

$svn revert --depth empty foo
9 голосов
/ 22 июня 2010

Оказывается, что Tortoise SVN может делать это очень хорошо.В диалоге фиксации вы можете отсортировать «измененные» файлы по «текстовому статусу» или «статусу свойств».Я просто отсортировал текст по статусу, а затем отменил все «измененные» файлы, которые имели «нормальный» «текстовый статус».

0 голосов
/ 30 сентября 2015

Отменить все изменения свойств с помощью PowerShell.

> @(svn status) -match '^ M' | `
>>> % { ($_ -split 'M\s+')[1] } | `
>>> % { svn revert --depth empty $_ }

Кредит Джерому Джаглалу и TheJuice за общий подход.

Обратите внимание, что символ обратного хода ` указывает на новую строку.

0 голосов
/ 30 июля 2015

Вы можете отправить свои изменения и затем отменить изменения свойств из этой ревизии:

svn merge -c -REV -depth empty

где REV - ревизия, в которой вы хотите отменитьизменения свойства

0 голосов
/ 21 июня 2010

Я бы просто скопировал / сделал резервную копию 10 файлов с реальным изменением кода в другом месте, и просто svn revert -R весь проект, а затем скопировал бы обратно 10 файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...