Это на Win2k3sp2 с использованием TortoiseSVN 1.6.5 и SlikSVN 1.6.3.
У меня есть папка в репо, назовите ее / a / b, и я хочу, чтобы она стала / a / c / d в том же репо. Я попытался просто переместить папку и переименовать ее, а затем выполнить фиксацию, и, очевидно, это сбивает с толку, потому что папка .svn думает, что она все еще под старым именем, и если это сработает, это вещь с двумя фиксациями, где / a / b удален, а / a / c / d новый, что нехорошо, потому что тогда я теряю историю, прикрепленную к каждому файлу.
Я начал ковыряться и нашел «relocate», который содержит огромное предупреждение и убеждает меня не использовать его. Затем есть «переключение», которое, хотя я думал, что «переместить» было более интуитивным способом описания того, что я хотел сделать, мне показалось подходящим вариантом. Я так и сделал, и это заняло много времени, хотя в / a / b было всего несколько файлов (например, 8 папок, каждая из которых содержала один или два файла), а теперь:
Тогда мой вопрос состоит из двух частей:
Ваша проблема в том, что вы использовали неправильную команду; «Switch» в точности дополняет то, что вы хотели - он изменяет местоположение репозитория, на которое «указывает» ваша рабочая копия, без изменения репозитория. (Switch тогда фиксация произвела бы некоторые результат, но по-настоящему ломаный, что вы не имели в виду. Ты был прав; заманчиво звучащее «Relocate» является частным случаем «Switch», и его следует избегать по той же причине.)
Затем команда «Обновить» обновила рабочую копию, чтобы она соответствовала тому, что было в репозитории в «новом» месте - ничего!
В Subversion пока нет настоящего перемещения / переименования. Безопасный для подрывной деятельности способ сделать это - скопировать, а затем удалить. TortoiseSVN включает удобную опцию «переместить», которая выполняет копирование и удаление как одну операцию.
Самый простой способ сделать то, что вы хотели:
1. Откройте репо-браузер в TortoiseSVN.
2. Правильно-щелкните и перетащите папку из старого местоположения в новое.
3. В контекстном меню выберите «Переместить».
Это также работает внутри вашей рабочей копии и является безопасным способом Tortoise / Subversion для перемещения или переименования файлов и папок в wc без потери истории.
чтобы ответить на ваш второй вопрос, вот как я перемещаю папки с Tortoise-SVN:
При обновлении Tortoise SVN удалит папку, в которой она была, и заново создаст ее там, где вы ее переместили.
Для правильного перемещения файлов используйте команда перемещения.
РЕДАКТИРОВАТЬ:
Обратите внимание, move, mv, rename, ren - это псевдонимы для одной и той же команды. Его можно найти в TortoiseSVN в разделе «TortoiseSVN» -> «Переименовать ...» посмотреть здесь
У меня была похожая проблема. Но в моем случае каталоги / a / b и / a / c проверялись отдельно.
это решение с разреженной (частичной) кассой решило проблему.