Предположим, что я переименовал файл A
в файл B
с помощью проводника Windows и создал новый файл C
.Отменить ремонт в TortoiseSVN
В Tortoise SVN, я случайно использовать "Ремонт Move" на файл A
и C
вместо A
и B
. Есть ли простой способ отменить ремонт (и переделать его с правильными файлами)? Изменения не выполняются в этот момент.
Единственный способ, которым я в настоящее время осведомлен о возврате удаления и добавления, который восстановит файл A
, затем вручную удалить файл снова и правильно изменить ассоциации. При использовании нескольких файлов это несколько связано с риском случайного изменения локальных изменений, поэтому мне интересно, есть ли лучший способ.
Примечание: даже если TortoiseSVN используется для создания проблемы, также разрешен ответ с консолью svn.
Вот пример с файлами A.txt
, B.txt
и C.txt
шаг за шагом:
После A
переименовывается в B
и C
добавляют локально
>svn st
! A.txt
? B.txt
? C.txt
После Tortoise SVN «Ремонт переезда "неправильно введено A
->C
>svn st
D A.txt
> moved to C.txt
? B.txt
A + C.txt
> moved from A.txt
Мой рабочий, чтобы исправить ситуацию, который я не очень доволен:
>ren C.txt C.txt.bak
>svn revert C.txt A.txt
>ren C.txt.bak C.txt
>del A.txt
в результате чего в стартовом положении, где я могу повторить ремонт с правильными файлами
>svn st
! A.txt
? B.txt
? C.txt
Что бы я хотел, но не существует
svn mv --force --ignore-files A.txt B.txt
svn add --force C.txt
таким образом, что она игнорирует, что А уже помечено удален и позволяет передачу истории от А до В, переосмысливая C как чистый оных вместо истории перенося из А.
Возможно, я ошибаюсь, но то, что вы НЕ хотите делать, это удалить изменения из этапа, а затем вручную исправить переименование, а затем выполнить этап. Это правильно? Если это так, то какова будет автоматическая версия этого процесса - то есть - как вы собираетесь сообщать SVN о том, какие изменения вы действительно хотите? –
Еще несколько вещей - на самом деле это риск? Вы теряете данные/работу, если вы совершаете неправильные файлы? Сколько файлов мы говорим? –
@LeftyGBalogh Я как-то надеюсь, что есть способ вернуть состояние SVN (например, 'deleted') без фактического восстановления файла позади. Это позволило бы правильно переделать ассоциации. Риск состоит в том, чтобы получить несогласованное состояние между метафайлами проектов и кодовыми файлами, закрутить историю версий или потерять локальные изменения. Мы говорим о том, что случилось со мной в прошлом и, вероятно, повторится в будущем. Я позаботился об этом для прошлых инцидентов, но я не доволен своей работой. – grek40