Работа с Tortoise SVN. Часть 2
26.10.2006 at 07:10 7 комментариев
Tag это вовсе и не tag, а branch
Об этом хорошо написано в документации. Просто поясню в двух словах. При помощи tag или label (для MS VSS) можно пометить срез репозитория на текущий момент. Это позволяет позже получить состояние репозитория на момент создания тэга. Это удобно если надо «зафиксировать» очередной выпуск продукта, чтобы при необходимости можно было вернуться к нему. Надо сказать из MS VSS, CVS и Subversion, последний наиболее точно фиксирует состояние репозитория.
Но в Subversion нет выделенного понятия Tag. Вместо этого можно создать Branch, потому что он также фиксирует состояния репозитория, и все последующие изменения в репозитории не затрагивают branch.
Branch практически не увеличивает размер репозитория, потому что использует лишь ссылки.
Единственное, для того чтобы отличить branch который тэг от настоящего branch рекомендуется в репозитории создавать две папки braches и tags. (Рекомендуемая структура репозитория описана в первой части.) В первой создаем настоящие ветки для внесения новой функциональности, а во второй ветки-тэги.
Хранение в репозитории части проекта
Иногда необходимо хранить в репозитории только часть проекта. Например, я работаю в рамках CMS системы, которую не хочу класть в репозиторий для каждого проекта, а хочу хранить лишь те файлы, которые добавил.
Добавление в репозиторий части проекта
В принципе речь пойдет об импорте и check out только нужных каталогов.
Предположим, что у нас в каталоге d:\projects\project1\ находятся файлы системы, в рамках которой мы работаем.
1. Мы добавляем локальную папку d:\projects\project1\themes\mytheme, в репозиторий.
Для этого делаем import с сохранением структуры каталогов.
- Становимся на папку mytheme
- Выбираем impot. И, ВНИМАНИЕ, в диалоговом окне в URL репозитория обязательно добавляем каталог mytheme, иначе добавится содержимое mytheme но сам каталог не появится в репозитории.
Не стесняйтесь дописать нужные каталоги в URL репозитория в диалоге импорта. Несуществующие каталоги создадуться в репозитории автоматически.
2. Теперь, чтобы продолжить работать с файлами, которые мы импортировали, необходимо сделать checkout. В части 1 я писал, что checkout невозможно сделать в каталог из которого делался import в репозиторий. Потому что subversion не позволяет переписать неверсионные файлы файлами из репозитория.
Для этого необходимо удалить локальную папку mytheme, и, находясь в каталоге themes сделать checkout.
Обратите внимание, что во время chekout, в диалоговом окне, путь должен оканчиваться themes и не должен содержать каталог mytheme. Иначе возьмуться только файлы из mytheme, а сам каталог mytheme не создастся локально.
Можно продолжать работать.
Ссылки по теме:
Entry filed under: Управление проектом, Subversion. Tags: инструменты.
1.
Денис | 05.03.2008 в 11:24
Бесплатный SVN плугин к Visual Studio 2008 —
http://garrys-brain.blogspot.com/2007/07/tortoisesvn-and-visual-studio.html
Платный — VisualSVN (www.visualsvn.com)
2.
Денис | 08.04.2008 в 16:08
CommitMonitor малнькая программа которая висит в трэе и пингует SVN репозиторий на наличие новых комитов
http://tools.tortoisesvn.net/CommitMonitor
3.
Aryeh | 30.10.2008 в 12:18
Спасибо!!! Начинаю работать с СВН и Ваши посты оччень помогли!!!
4.
Владимир | 06.11.2009 в 15:54
Доброго времени суток!!
А как «раскоммитить» папку, так, чтобы на сервере SVN ее небыло, а на локальном диске она осталась.
Копирование и удаление не интересно, так как фишка в скрытых папках .svn, которые остаются локально и очень много весят.
5.
Aliaksei | 06.11.2009 в 17:46
Хороший вопрос, я бы попробовал добавить папку в ignore list. ДО него можно добраться если в кликнуть на свойства в родительской папке, там есть кнопка Edit которая позволяет редактировать ignore list. Признаюсь у меня не получилось, папка осталась под контролем SVN, но может появится идея как применить этот ingore list?
6.
crynano | 21.07.2011 в 22:31
По идее нужно сделать export в нужную папку, там появится «чистый» проект, без папок .svn
7.
Виталий | 13.01.2017 в 10:30
Доброго времени суток.
Подскажите как правильно прописать команду TortoiseProc.exe /command:checkout /-depth empty /path:ХХХ.
Мне нужно извлечь репозиторий с глубиной «только этот компонент», но не вручную, а через командную строку.