Принудительное использование Subversion для пометки «неверсированных» файлов как разрешенных и актуальных - PullRequest
0 голосов
/ 14 февраля 2012

У меня проблемы с сетью, поэтому вместо прямой проверки я скопировал рабочую копию сотрудника на свой компьютер. Однако он как-то забыл корневую папку .svn (все остальные папки .svn присутствуют). Я попробовал следующее:

$ svn checkout --depth empty <URL> .

И это заставило SVN распознать его как хранилище, но все помечено как не версионное. Как я могу сказать svn, по сути, «Нет, действительно, это тот же файл !!! Пожалуйста, просто пометьте его как обновленный !!!»

1 Ответ

1 голос
/ 14 февраля 2012

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

Выдержка из книги Свн:

Папка

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

enter image description here

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

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

enter image description here

Следовательно, без папки .svn невозможно определить, являются ли файлы в вашей рабочей копии одинаковыми или отличными от файлов в удаленном хранилище, даже если вы знаете, что они одинаковы - Subversion не знает .

Вывод: Вы должны скопировать точно такую ​​же папку .svn, как у вашего коллеги в его / ее рабочей копии. Нет другого способа заставить его работать.

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