Как правильно перемещать каталоги с помощью TortoiseSVN? - PullRequest
8 голосов
/ 03 августа 2009

Если я переместу каталог в другое место в том же репозитории, перетаскивая его на новое место в Черепахе, я не смогу извлекать ревизии до перемещения , поскольку URL-адрес этих старых ревизий недействителен больше.

Как вы перемещаете каталог и все еще сможете получить доступ к ревизиям до перемещения?


Пример : Если я перееду

trunk/folder1/source

до

trunk/folder2/source

затем я вижу папку «source» в папке folder2 и могу проверить ревизию заголовка, то есть ревизию, которая произвела ход.

Однако, если я пытаюсь извлечь более старую ревизию, которая была зафиксирована до перемещения, я получаю сообщение об ошибке, что URL-адрес не существует. Я думаю, это потому, что URL старой ревизии все еще указывает на старый путь.

Но должен быть способ это исправить, иначе переход не будет иметь смысла, если вы потеряете доступ к более старым ревизиям.

Ответы [ 6 ]

4 голосов
/ 03 августа 2009

Вы можете перемещать каталоги несколькими способами.

Самый простой способ - перетащить каталог правой кнопкой мыши и щелкнуть «SVN Переместить версированные файлы сюда», когда вы отпустите.

Вы можете использовать функцию переименования, чтобы переименовать файл из «blah.js» в «mydirectory / blah.js».

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

3 голосов
/ 03 августа 2009

То, что не упоминалось в предыдущих ответах, было функцией SVN, называемой «ревизия колышка». Используйте версию peg, если вы хотите сослаться на структуру каталогов, которая больше не существует. Из книги SVN:

В версии 1.1 введена Subversion способ сказать вам, какой именно Главная улица, которую вы имели в виду. Это называется привязка ревизии, и она предоставляется Subversion с единственной целью выявление уникальной линии истории. Потому что самое большее, один версионный объект может занимать путь в любой момент время - или, точнее, в любом пересмотр - сочетание пути и все, что нужно, это пересмотреть колышек ссылаться на конкретную строку история. Изменения колышка указаны клиенту командной строки Subversion используя синтаксис, так называемый, потому что синтаксис включает добавление «в знак» (@) и исправление привязки к концу путь, с которым ревизия ассоциированы.

т.д .: http://svn.example.com/skinproj@148

Подробнее см. В книге SVN: http://svnbook.red -bean.com / ru / 1.5 / svn.advanced.pegrevs.html

2 голосов
/ 03 августа 2009

Вместо простого перетаскивания, сделайте перетаскивание с помощью правой кнопки мыши , и когда вы отпустите, в всплывающем контекстном меню выберите «SVN Переместить версионные файлы сюда» ».

1 голос
/ 03 августа 2009

Откройте браузер хранилища, затем перетащите и отпустите правую кнопку мыши (только странно, когда вы делаете это в первый раз), или используйте пункт меню «Копировать в ...».

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

0 голосов
/ 03 августа 2009

Проблема была: Я попытался извлечь старую ревизию, глядя на дерево ревизии головы в браузере хранилища. В этом представлении я попытался извлечь trunk / folder2 / source более старой ревизии, которой не было в этой более ранней ревизии из-за перемещения.

Решение:

  • Проверьте журнал на нужную вам ревизию
  • переключить весь браузер хранилища к этой редакции
  • теперь вы можете увидеть нужную вам папку в своем первоначальном пути, где это было вернуться в этой редакции
  • проверить эту папку

Спасибо всем за подсказки, которые привели меня в правильном направлении.

0 голосов
/ 03 августа 2009

Я не уверен, правильно ли я понимаю вашу проблему. Для меня это звучит примерно так:

Если у вас есть папка

/svn/trunk/folder1

и переместите его на

/svn/trunk/folder2

тогда вы не можете получить доступ к folder1 с этим URL:

/svn/trunk/folder2

вы должны использовать

/svn/trunk/

в зависимости от ревизии вы увидите либо папку1, либо папку2.

...