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