Ответ 1
Вы должны добавить папку с опцией "--non-recursive":
svn add --non-recursive folder1/folder2
Контекст заключается в том, что у меня есть готовая CMS, к которой я хочу выполнить настройки; поэтому я хочу сохранить файлы, которые я модифицирую под управлением версии, но я не вижу необходимости поставить все дерево файлов под контроль версий.
Моя проблема заключается в том, что мне нужно добавить файл, который будет храниться под контролем версий, который находится в нескольких подкаталогах вниз, но я не хочу добавлять что-либо еще в репозитории из файла и его родительских папок.
Чтобы проиллюстрировать, скажем, у меня есть следующий файл в моем проекте:
Проект/folder1/folder2/file.txt
Я хочу добавить file.txt в репозиторий, а папка1 находится под управлением версии, но folder2 - нет. Существуют существующие файлы в папке1 и папке2, которые я не хочу, чтобы все было поставлено под контроль версий.
Выполнение svn import folder1/folder2/file.txt
, похоже, не работает, так как тогда мне нужно проверить файл, и даже если я сначала удалю локальную версию, SVN сообщит, что существует его родительская папка. Я предполагаю, что это означает, что если я использую параметр -force, это просто скроет содержимое этих папок.
Проблема с svn add folder1/folder2/file.txt
заключается в том, что она требует, чтобы каждая родительская папка уже была в репозитории (я понимаю, что он не может найти файл folder2/.svn/entries), но только папка1 находится в репозиторий. Поэтому я решил, что смогу сделать svn add folder1/folder2
в первую очередь. Проблема в том, что это помещает все содержимое папки2 в репозиторий, чего я не хочу. Кажется, решение должно состоять в том, чтобы сделать svn add --depth=empty folder1/folder2
, который просто добавляет папку и никакого содержимого, но опция -depth - это новая функция в Subversion 1.5, тогда как я использую 1.4.2, и было бы неплохо избежать обновления на этот пункт.
Итак, мне интересно, есть ли способ избежать опции -depth в более старых версиях Subversion? Или есть другой способ решения этой проблемы: "Мне также интересно, возможно ли, пожалуй, то, как я начал настраивать его, было не так полезно.
Вы должны добавить папку с опцией "--non-recursive":
svn add --non-recursive folder1/folder2
Если ваша версия клиента равна 1,5 или выше, вы можете просто использовать
svn add --parents folder1/folder2/file.txt
чтобы добавить файл и его родительские каталоги.
Вы также можете использовать быструю версию "-N", которая является короткой формой "--non-recursive", как в
svn add -N folder1/folder2