ankhsvn: репозиторий свернут внутри

Я использую AnkhSVN с VS2010 для разработки нескольких проектов («решений»). Какое-то время мои коммиты шли нормально. Но недавно Ankhsvn изменил мой репозиторий на один из моих проектов, так что то, что должно быть дочерним проектом, теперь дублирует всю структуру репозитория. Это случалось более одного раза, когда текущий проект, который я должен проверить, находится в другом проекте, который сам находится в другом проекте. Я пошел в Файл -> Subversion -> Изменить систему управления версиями, но URL-адрес не может быть отредактирован. Когда я пытаюсь использовать Pending Changes, я получаю сообщение об ошибке о сломанной блокировке рабочей копии. Конечно, я пробовал Clean несколько раз. Я также попробовал Switch, который, как мне кажется, доставил мне больше проблем. Как репо было изменено в первую очередь? Любая идея, что я сделал неправильно (и как исправить)?


person viejo    schedule 30.03.2011    source источник


Ответы (1)


Что, вероятно, произошло, так это то, что путь привязки был изменен. Вы можете изменить это, выбрав решение в File -> Subversion -> Change Source Control и нажав кнопку .... Это значение хранится в sln-файле в разделе SCC Bindings.

Что происходит при извлечении решения с помощью File -> Open -> Subversion Project, так это то, что оно проверяется на уровне, определенном путем привязки SCC выше.

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

person Sander Rijken    schedule 30.03.2011
comment
Сначала я последовал вашему предложению с «непрерывным» проектом, чтобы посмотреть, что должно произойти. Когда я перешел к пути привязки SCC, в раскрывающемся списке отобразился правильный URL-адрес, но щелчок по нему не изменил существующий путь привязки SCC. В моем сломанном проекте я получил исключение Ankhsvn, когда я выбрал ChangeSourceControl: System.NullReferenceException: ссылка на объект не установлена ​​​​на экземпляр объекта [за которым следует трассировка стека]. Тем не менее, я могу отредактировать этот проект и сохранить его. - person viejo; 31.03.2011
comment
Что касается вашего ответа, что вы имеете в виду, говоря о «меньшей» рабочей копии? Должен ли репозиторий быть лучше как группа небольших репозиториев? - person viejo; 31.03.2011
comment
@Sander (К сожалению, забыл вас уведомить. Спасибо за вашу помощь.) - person viejo; 31.03.2011
comment
Я не рекомендую разделять репозиторий, но вы можете проверить его на более глубоком уровне, чем корень репозитория, уменьшив рабочую копию (то, что у вас есть локально). Обычной практикой является проверка ствола (или любого тега/ветки, который у вас может быть) - person Sander Rijken; 05.04.2011
comment
@viejo: Что касается исключения NullRef, можете ли вы отправить его по электронной почте? Вероятно, это ошибка, которую нужно исправить. Я не уверен, что может привести к тому, что путь привязки SCC останется прежним, даже если выбрать другое значение в раскрывающемся списке. Можете ли вы дать больше информации о вашем репозитории и на каком уровне находится ваша рабочая копия? - person Sander Rijken; 05.04.2011
comment
@Sander: я отправил ноль на форум Collabnet, который показался подходящим местом для ошибок. Мне удалось реструктурировать мой репозиторий, не теряя слишком много истории, путем экспорта и повторного добавления с помощью tortoisesvn. Мое хранилище представляет собой плоскую структуру, вмещающую около 20 детей. Каждый дочерний элемент — это проект, который содержит C# sln и все связанные с ним каталоги и файлы. Примерно у половины детей есть стволы (я здесь единственный разработчик). До недавнего времени большинство рабочих копий располагалось в каталоге VS2010 Projects. - person viejo; 06.04.2011