Во многих проектах я проверяю полный репозиторий и имею затем стандартную структуру каталогов:
project/
branches/
tags/
trunk/
Если я делаю svn up project
, это - весь штраф с branches
и trunk
папки, но, конечно, tags
папка обновляется также и заполняется (главным образом) большим количеством теговых версий, которые не представляют ценности для моей работы и только занимают дисковое пространство.
Как может я кроме tags
папка от svn update
? Особенно, как я могу сделать это локально только, то есть, не передавая тот назад репозиторию, как решение с svn:ignore
ключевое слово сделало бы?
Сначала вы проверяете верхнюю часть проекта нерекурсивным способом (-N или --non-recursive)
svn co https://server/project -N my_project_checkout
Теперь на этом этапе вы можете обновить только ствол:
svn up my_project_checkout/trunk
В Subversion для этого случая есть функция Sparse Checkout.
svn up --set-depth empty project/tags
Это удалит все извлеченные теги, оставив только каталог «теги».
Другой вариант:
svn up --set-depth immediates project/tags
, который проверяет сами каталоги тегов, но не их содержимое.
Таким образом, вы можете легко увидеть новые теги и получить содержимое отдельных тегов с помощью:
svn up --set-depth infinity project/tags/mytag
Изменить:
Это также работает с решением elcucos, и вы даже можете использовать его для своего каталога веток.
Чтобы обновить только определенную папку, передайте их команде svn update.
svn update project/branches project/trunk
Вы должны извлекать и работать в магистрали или в определенной ветке. Похоже, вы проверили все дерево проекта.