#svn #subclipse
#svn #subclipse
Вопрос:
Я только E
что впервые получил код состояния SVN. Что это значит? В update
документации говорится, что это означает «Существовал», но не дает более подробной информации.
С другой стороны, что такое «препятствующий путь»? В длинном файле справки указано, что «Пути, препятствующие работе, сообщаются в первом столбце с кодом ‘E'».
Немного предыстории: я удалил файл из своей рабочей копии, который я не должен был удалять. Обновление из SVN не восстановило его, поэтому я создал новый файл с тем же именем файла и скопировал в него копию файла репозитория.
Затем я добавил его в систему управления версиями, но это дало ему статус «версионный файл, который необходимо добавить в удаленный репозиторий», а не статус «нет локальных изменений».
Используя Subclipse, я выбрал Replace с> Latest из репозитория в родительской папке, и это произошло:
revert -N C:/foo/Bar.java
Reverted C:/foo/Bar.java
update C:/foo/Bar.java -r HEAD --force
E C:/foo/Bar.java
Updated to revision 396.
===== File Statistics: =====
Existing: 1
Ответ №1:
«Препятствующий путь» относится к существующему неверсированному файлу или папке по пути, по которому команде обновления необходимо скопировать версированный файл или папку.
Статус E появляется только при --force
использовании флага, без флага обновление просто завершится неудачей. С помощью флага он оставляет файл в покое и позволяет вам решать, что с ним делать.
Загадочная вещь в этой ситуации заключается в том, как в итоге оказалось, что файл был неверсирован сразу после успешного возврата.
Ссылка: svn help update
Если препятствующий путь имеет тот же тип (файл или каталог), что и соответствующий путь в репозитории, он становится версионным, но его содержимое остается «как есть» в рабочей копии.
Комментарии:
1. Кроме того, статус E будет отображаться во время обновления внешнего файла . В этом случае статус E является стандартным поведением,
--force
флаг не требуется.
Ответ №2:
E = Файл существовал до обновления.
http://plind.dk/2009/06/26/svn-status-cheatsheet/
«Неверсионные пути, препятствующие в рабочей копии, автоматически не вызывают сбой, если обновление пытается добавить тот же путь. Если препятствующий путь имеет тот же тип (файл или каталог), что и соответствующий путь в репозитории, он становится версионным, но его содержимое остается «как есть» в рабочей копии. Это означает, что неверсионные дочерние элементы каталога, препятствующие работе, также могут создавать препятствия и становиться версионными. Для файлов любые различия в содержимом между обструкцией и репозиторием рассматриваются как локальная модификация рабочей копии. Все свойства из репозитория применяются к препятствующему пути. Пути, препятствующие работе, сообщаются в первом столбце с кодом ‘E’.
Используйте параметр —set-depth, чтобы установить новую глубину рабочей копии для целей этой операции «.