Назад | Перейти на главную страницу

TortoiseSVN отсутствует файл в обновлении

Время от времени у нас возникала проблема с TortoiseSVN (я предполагаю, что это Tortoise, а не наш репозиторий SVN), где файл будет возвращен в репозиторий (в репо-браузере вы можете увидеть файлы там) и будет существовать для человека кто их совершил, но когда другой человек выполняет обновление, эти файлы не будут добавлены в рабочую копию. Если я затем выберу «Копировать в рабочую копию ...» в браузере репо и попытаюсь выполнить фиксацию, файлы будут считаться новыми для меня, и мой клиент попытается добавить их, что приведет к ошибке. Обновление также приводит к некоторой ошибке (я не знаю, как это воспроизвести, поэтому я не знаю, что конкретно может вызвать это, и я не помню точных ошибок). Затем мне нужно удалить файлы из репозитория и зафиксировать файлы как новые. После этого все работает нормально, и у исходного человека нет проблем со своими файлами.

Доступ к репозиторию осуществляется по протоколу svn: // на сервере с версией 1.4.6. Он размещен на машине Windows Server 2003, работающей как служба Windows.

Репозиторий устроен следующим образом:

[repository]/Code/[projects]
[repository]/Code/[Website]/*some page in here*
[repository]/Data/[misc data files]
[repository]/References/[dlls/references]

Это почти всегда происходит с .aspx / .aspx.cs / .aspx.designer.cs, и обычно со всеми тремя одновременно. Как будто в мою папку не будет добавлена ​​вся «страница». Это произошло при открытой Visual Studio и выполнении Решения, а также при отсутствии открытой Visual Studio.

Кто-нибудь видел это раньше, и знаете ли вы причину / решение?

Иногда у меня тоже была описанная проблема. Как раз в этот момент это случилось снова. Та же ситуация: было несколько файлов, измененных / добавленных / удаленных / перемещенных на сервере SVN с клиента A SVN, и клиент B SVN обновил свою рабочую копию (с использованием Tortoise SVN). После обновления некоторые из файлов, которые были добавлены из A, отсутствуют в рабочей копии B, но браузер репозитория показывает их в правильном месте на сервере SVN. При повторном обновлении с помощью Tortoise всегда утверждается, что все находится в текущей версии. Также "svn up" в папке, в которой отсутствуют файлы, говорит, что все находится в текущей ревизии.

я использую

Tortoise SVN 1.6.6, сборка 17493 - 64-разрядная версия

Visual SVN 1.7 (интеграция SVN в Visual Studio 2008)

Изменить: похоже, это известная проблема, вот решение: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518

вы можете проверить, является ли это черепахой или svn, используя инструменты командной строки. введите "svn up" в корневом каталоге WC.

Поскольку вы говорите, что используете 1.4.6, у вас нет проблем с разреженными каталогами. Не игнорировали ли файлы в настройках вашего клиента? Вы уверены, что ваш WC указывает на правильный URL-адрес в репозитории и не был переключен на другую ветку? (вы можете увидеть это в свойствах папки - там есть вкладка Subversion)

Если вы сделаете svn status в своем WC, вы должны увидеть список измененных файлов в каталоге сервера.

У меня была такая же проблема с SVN 1.6.2 и 1.6.3 (командная строка, Tortoise и Subclipse). поэтому кажется, что проблема связана с самим SVN. Существует следующий обходной путь - попробуйте оформить заказ в тот же каталог - он просто добавляет недостающие файлы.

Я также столкнулся с этой ошибкой с Tortoise SVN по крайней мере с 1.6.2 до того, что я сейчас использую 1.6.5. «Получить последнюю» не будет получать файлы из репозитория. Мне пришлось удалить затронутый каталог и получить последнюю версию родительского каталога, чтобы заново создать каталог и его содержимое.

gbjbaanb, это определенно не случай игнорируемых файлов или переключенных веток.

Мне не удалось решить эту проблему, используя инструкции в ссылке Дэниела, но я согласен, что это, по крайней мере, основная проблема большинства реализаций SVN в Windows.

Чтобы исправить проблему с отсутствующей папкой, я сделал следующие шаги:

  1. «Обновить до ревизии», выбирая номер фиксации до того, как какой-либо файл в папке был изменен, добавлен или удален, и убедитесь, что вы выбрали «Полностью рекурсивный». (Это вызовет странную ошибку в Tortoise. Это ожидаемо!)
  2. Выполните очистку.
  3. Обновите папку еще раз, и вы должны получить всю папку!

Надеюсь, это поможет кому-то еще.

К сожалению, предыдущие ответы выше не помогли мне. У меня была та же проблема: в папке, над которой я работал, было несколько незафиксированных объектов. В эту папку было добавлено много объектов другим пользователем. Я мог видеть объекты этого пользователя в репозитории, но каждый раз, когда я делал обновление, я никогда не получал объекты этого пользователя.

Исправление, которое сработало, - использовать TortoiseSVN. Вернуть в папке.