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.