Предположим, что у вас есть каталог под управлением subversion, который содержит некоторые файлы и множество подкаталогов, например:
file1.txt
file2.txt
file3.txt
dir1/
dir2/
dir3/
dir4/
:
dirXX/
Теперь вам нужны файлы и некоторые из них, но не все. Это можно сделать с помощью SVN. Просто сделайте checkout нерекурсивным:
svn checkout -N <URL>
Это проверяет только первый каталог и файлы внутри. Никакие подкаталоги не включены. Даже если вы заходите в каталог оформления и запускаете "svn up
" , он будет только обновлять ранее проверенные файлы, он не будет добавлять каталоги. Теперь вы можете выборочно добавлять нужные вам каталоги, явно обновляя их. Например. если вам нужны только dir2 и dir4, вы можете войти в каталог оформления и выполнить
svn up dir2
svn up dir4
Если вы запустите общий "svn up
" в будущем, он будет обновлять только файлы и эти два каталога, он не добавит ни одного из других каталогов.
Теперь проблема: что, если я решаю в какой-то более поздний момент, что мне больше не нужен dir2? Как я могу избавиться от него? Кажется, нет никакого способа сделать это, кроме как удалить весь чек и начать с нуля.
Когда вы просто удаляете dir2, следующий "svn up
" вернет его, так как "svn status
", конечно, покажет его как пропавшую ( "!" перед своим именем). Запуск "svn remove
" удалит его, конечно, но в следующий коммит он также удалит его из репозитория, чего не должно быть.
Даже новая функция разреженного каталога ( "мелкая проверка" ) SVN 1.5 здесь бесполезна:
Реализация Subversion 1.5 мелкие проверки хороши, но не поддержать пару интересных поведения. Во-первых, вы не можете де-телескоп рабочего рабочего элемента. Выполнение svn update --set-depth empty в рабочей копии с бесконечной глубиной не имеют эффекта отбрасывания все, кроме самого верхнего каталог - это просто ошибка.
- http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html
Неужели это невозможно с SVN? Кто-нибудь когда-либо придумывал умную работу?
Просто создав каталог проверки (без SVN), а затем проверив отдельные подкаталоги из репозитория напрямую, поскольку подкаталоги в этот каталог будут работать для каталогов: теперь каждый каталог является самостоятельной проверкой, может быть обновлен и один раз не будет требуется больше, вы можете просто удалить его. Однако, как я могу получить файлы (например, file1.txt)? SVN не позволяет проверять отдельные файлы, вы можете проверять только целые каталоги.