Subversion - проверка родительского каталога

В моем репозитории, скажем, у меня есть это:

Animal
  Dog
     Beagle
     Hound
     ...

Позволяет сказать, что я проверил Собака в рабочем каталоге, и я понял, кричит, я действительно хотел проверить Animal.

Я могу удалить свою рабочую копию, каталог Dog и выезд Animal, но есть ли способ сделать это, не удаляя и не проверяя снова?

Если в моей рабочей копии Dog есть Animal в качестве родительской папки, и я проверяю Animal без удаления Dog, я получаю что-то вроде: "subversion не удалось добавить каталог с версией, то же имя уже существует".

Я тоже использую черепаху. Спасибо.

Ответ 1

Это невозможно напрямую.

Самый простой способ - удалить рабочую копию и выполнить новый checkout Animal.

Если у вас есть какие-либо изменения в Dog, которые вы хотите сохранить, переместите Dog во временное место, проверьте Animal, а затем скопируйте Dog обратно в каталог Animal.

Ответ 2

Вы ищете svn switch, который обновляет вашу рабочую копию, чтобы отобразить новый путь. Однако модифицированные файлы не затрагиваются. В TortoiseSVN щелкните правой кнопкой мыши и выберите "Switch..." в контекстном меню.

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

Ответ 3

Я обнаружил, что не удалось загрузить с сервера svn то, что уже есть на моем диске, а затем обновление или проверка выполняется с помощью --depth empty. Так что-то вроде: svn co --depth empty Animal ; cd Animal ; svn update --depth empty Dog

В любом случае, идея состоит в том, чтобы получить Dog как каталог в Animal/.svn/entries.

Этот "--depth empty" сохраняет svn от фактического содержимого, но svn делает подкаталог (в данном случае Dog), а svn помещает запись для подкаталога Dog в Animal/.svn/entries.

Затем замените подкаталог Dog на уже имеющуюся копию.

Вы можете проверить, что это работает, удаляя один из файлов где-то в Dog и делая svn update в каталоге Animal. Удаленный файл следует снести с сервера svn.

Ответ 4

Да, вы можете сопоставить родительский каталог.

Для этого вам просто нужно удалить каталог .svn из каталога "Dog" (дочерний) и сделать SVN Update в родительском каталоге. Он будет делать существующий файл как Versioned copy и будет загружать содержимое delta из каталога Dog с сервера SVN.

Обратите внимание: у вас должна быть точная структура каталогов как структура каталога SVN.