2010-07-12 2 views
1

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

svn up --accept=theirs-full 

но версия svn слишком старая и не поддерживает опцию «принять». Есть ли простой способ обхода, кроме обновления подрывной деятельности? Версия, установленная там, есть 1.4

В принципе, я хочу обновить папку и вернуть все конфликтующие изменения, оставив другие изменения неповрежденными.

ответ

1

Вы могли бы svn up --non-interactive обновить и оставить все конфликтующим, а затем вернуть все с конфликтом впоследствии.

Если вы используете Unix, вы можете использовать svn st |gawk '/^C/ {print $2}', чтобы перечислить все конфликтующие файлы, а затем svn st |gawk '/^C/ {print $2}' |xargs svn revert или аналогичные (непроверенные), чтобы на самом деле сделать возврат.

Если вы работаете в Windows, я не могу придумать простой способ сделать это без grep/sed/awk, извините. Если у вас есть один из них, но не xargs, тогда легко преобразовать список имен файлов в командную строку, используя, например, редактор визуальной студии (alt-drag, чтобы обрезать Cs, а затем удалить в конце каждой строки, чтобы создать список).

+0

Я закончил тем, что сделал это. Я надеялся, что есть еще одна команда svn, о которой я не знаю, что может сделать трюк одним ударом. – clorz

0

Почему бы не обновить свой клиент? Новые клиенты (последние в настоящее время 1,6.12) будут продолжать работать отлично со старыми серверами.

Кроме того, мы работаем с сервером версии 1.4.5 и --accept работает нормально для нас.

+0

У меня 1,4.4 на linux. Обновление это тянет много зависимостей, а затем не разрешает некоторые из них. Учитывая тот факт, что сервер получил другие вещи, и я мало знаю о том, на что он полагается, я не чувствую себя комфортно в отношении обновления. Если бы это были окна, я бы это сделал. – clorz

Смежные вопросы