Подтвердить что ты не робот

Svn вернет все изменения свойств

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

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

4b9b3361

Ответ 1

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

Ответ 2

svn revert `svn status | grep '^ M' | sed 's/^ M \+//g'`

Ответ 3

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

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

$svn revert --depth empty foo

Ответ 4

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

svn merge -c -REV -depth empty

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

Ответ 5

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

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

Кредит Джерома Яглая и TheJuice для общего подхода.

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

Ответ 6

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