Работа с Tortoise SVN. Часть 1
21.10.2006 at 06:05 23 комментариев(я)
После покупки аккаунта на hosted-projects.com я начал разбираться c Tortoise SVN. Для Subversion существует несколько клиентов, но я решил начать с этого, потому что когда то пользоваться Tortoise CVS.
В этой заметке я собрал несколько типовых задач, возникающих при работе с Subversion и Tortoise SVN. Поскольку я перешел на subversion после MS VSS, то многие моменты были для меня непривычными.
Структура репозитория
Здесь я почти повторю документацию по subversion, просто расскажу своими словами.
При создании репозитория можно воспользоывться рекомендациями из документации по Tortoise SVN или сделать по своему.
Рецепт из документации.
Создаются 3 корневые папки: trunk (ствол), branches (ветки) и tags. В каталоге trunk хранится исходный код приложения. Он всегда поддерживается в рабочем состоянии и представляет собой последнюю стабильную версию приложения. Если в какой то момент необходимо начать работу над второй версией, то создается branch в папке branches и разработчики могут спокойно модифицировать копию в branches, не опасаясь, что основная версия будет затронута. Когда наступает момент выпуска второй версии, выполняется слияние ее с основной версией, в результате в trunk мы получаем вторую версию в качестве основной.
Если вы разрабатываете программный продукт или веб сайт, что впринципе одно и тоже, то способ, рекомендованный в справке очень удобный.
Упрощенный подход
Если вы работаете с документами, где не планируются эксперименты и поддержание дополнительных ветвей, то стуктуру репозитория можно упростить до двух папок: documents и tags. Вместо documents можно написать, что угодно, это ваша рабочая папка. А вот tags есть смысл оставить, потому что, наверное, в любой работе возникает необходимость зафиксировать состояние всего репозитория.
И наконец третий вариант сокращается до одной рабочей папки, если идея с tags вам ненравится. Тем более, что добавить папку tags можно и позже.
Подробнее о tags во второй части.
Создание репозитория
Создание репозитория начинается с создания корневых папок описанных выше. Для этого создаем временный каталог c:\svntemp и в нем создаем нужную структуру репозитория, например папки trunk, branches и tags.
Теперь открываем контекстное меню для каталога svntemp (стоя на каталоге svntemp, но НЕ внутри него) и выбираем команду import. В появившемся диалоге вводим путь к репозиторию, например https://mydomain.com/svn/myproject/ . В результате в репозитории создаются папки вложенные в svntemp но сам svntemp не создается в репозитории.
Затем с:\svntemp можно удалить и перейти в каталог, в котором планируем работать. Например, d:\projects\myproject. Внутри myproject выбираем команду Check out, в результате в каталоге myproject появляются наши папки trunk, branches, tags и служебная папка .svn. Служебная папка – скрытая, поэтому если у вас отключен показ скрытых файлов, то вы ее не увидите.
И лишь теперь в каталог trunk можно скопировать рабочие файлы и выполнить команду add.
Используйте lock при работе с изображениями и файлами Word и Excel
Правило простое: при работе с любыми бинарными файлами необходимо использовать блокирование (locking). Этот режим включен по умолчанию в MS VSS и привычен пользователям этой системы. В ней любой check out блокирует файл от изменения другими пользователями. Поскольку Subversion по умолчанию позволяет работать с файлом нескольким людям одновременно, блокировать файл необходимо явно командой “Get lock…” в контекстном меню.
Блокирование бинарных файлов в Subversion обязательно, потому что Subversion не может выполнить слияние двух модифицированных бинарных файлов. Человеку для этого также необходимо приложить усилия, и зачастую работа бывает потеряна.
При импорте папки добавляется содержимое, но не сама папка
Если Вы кликнули на папку на локальном диске и выбрали команду import то в репозиторий попадут вложенные папки и файлы, но сама папка не появится.
Например папка doc, а внутри нее папка artworks. При импорте папка artworks попадет в репозиторий. А чтобы при этом появилась папка doc необходимо ее написать вручную в пути репозитория в диалоге импорта.
Т.е. просто указать путь к SVN репозиторию с добавлением папки doc. Если корень репозитория http://myserver/svn/ то пишем http://myserver/svn/doc
Импорт файлов в репозиторий не связывает их с репозиторием
В MS VSS после операции add можно выполнять check out в тот же локальный каталог, из которого они были импортированы.
В Subversion импорт файлов и папок лишь добавляет их в репозиторий. Но после этого для работы с этими файлами необходимо сделать check out. При этом check out в этот же каталог невозможен – Subversion не позволяет переписать неверсионные файлы данными из репозитория. Это значит, что check out необходимо делать в другой каталог или удалить локальные файлы после импорта и выполнить check out в тот же каталог.
Впечатления
Не зря говорят: “Первое впечатление – обманчиво”. Когда я посмотрел на Totoise SVN то подумал, что придется привыкать к чему то неудобному. Но чем больше я пользуюсь Subversion тем больше он мне нравится.
Ссылки по теме:
- Работа с Tortoise SVN. Часть 2
- Subversion на чужих серверах
- Использование Subversion для синхронизации документов дома и на работе черз флэшку
- Установка SVN Клиент+Сервер
Entry filed under: Управление проектом, Subversion. Tags: инструменты, svn.
Комментарии (23) Add your own
Добавить комментарий
Trackback this post | Подписаться на комментарии через RSS-ленту
1.
Алексей Горобчук | 11.01.2007 в 10:13
Пожалуйста, я рад что пригодилось!
Еще планирую исследовать SVN который предлагает Google и описать, как делать слияние конфликтующих файлов
2.
Incemnses | 17.05.2010 в 21:11
Как ныне и одинаковый у нас! оропись наскочить себе красивую девушку, ведь ты знаешь сколь их не дешевый быстро и множество в узы)
3.
Vitaly | 15.10.2007 в 12:32
Статья хорошая, но был бы безумно рад послушать как настраивается репозиторий на одной машине, и его пользуют через сеть/интернет другие
4.
Николай | 16.10.2007 в 11:58
Возможно немного не в тему вопрос…
А можно ли в SVN сделать checkout одного файла в указанный каталог?
Или это никому, кроме меня, не нужно?
5.
Алексей | 31.10.2007 в 05:56
То: Николай,
Можно попробовать такой вариант: сделать бранч нужного файла, это бранч использовать в другом каталоге, а при необходимости “вернуть” файл в основную ветку делать merge.
Получится то что вы хотите, но чуть больше действий придется делать.
6.
Rinat Abdullin | 18.11.2007 в 08:51
Hosted-projects – хороший очень ресурс. Сам его использую.
Насчет локов на документы не согласен. TortoiseSVN позволяет natively (используется revision механизм из Office) делать diff по doc, xls, ppt файлам. Doc еще и merge поддерживают.
7.
Алексей | 18.11.2007 в 09:26
To: Rinat Abdullin
А можно подробнее про механизм из Office? Ведь файлы офиса вроде бинарные (даже в офисе 2007 это XML в архиве).
8.
Rinat Abdullin | 14.12.2007 в 23:48
Два документа просто сравниваются силами Microsoft Office (через Merge & Review). Попробуй сам – увидишь))
9.
Дмитрий | 30.01.2008 в 12:18
To: Vitaly
Репозиторий настраивается очень просто. Собственно репозиторий представляет из себя обычную папку, где Subversion хранит всю информацию в своем формате. Для того, чтобы создать новый репозиторий, создайте пустую папку (например MyRepository) и в контекстном меню для нее выберите “TortoiseSVN” | “Create repository here…”. В появившемся диалоговом окне оставть все как есть (по умолчанию выбрана опция “Native filesystem (FSFS)”), и нажмите OK. После этого в указанной папке будут созданы необходимые служебные файлы нового репозитория и ему будет присвоена ревизия 0. Дальше работа происходит описанным выше способом. При обращении к репозиторию в первый раз для указания пути к нему воспользуйтесь кнопкой “…” и укажите на папку, которую вы создавали на первом шаге. В следующий раз вы сможете просто найти нужный вам путь в выпадающем списке.
10.
Дмитрий | 30.01.2008 в 12:35
To: Vitaly
Для того, чтобы репозиторием можно было пользоваться с других машин, нужно обеспечить доступ с этих машин к директории, в которой хранится этот репозиторий. Если речь идет о локальной сети под управлением Microsoft Windows, то для этого достаточно просто дать общий доступ к директории репозитория или одной из родительских директорий.
11.
Serg | 01.02.2010 в 14:38
Вообще-то это сильно не рекомендуется. Нужно либо поднимать сервер Apache, либо svnserve. После настройки каталогов и пользователей можно работать с других машин
12. Установка и настройка SVN в CentOS | Блог веб-разработчика | 05.09.2008 в 06:53
[...] SVN, подробнее прочитать о его использовании можно на http://outsourcing.wordpress.com/2006/10/21/working-with-tortoise-svn-part1/ Всем удачи в настройке, если возникли проблемы – логи в [...]
13. Установка и настройка SVN для Windows « Nano Tips | 11.11.2008 в 07:50
[...] На последок рекомендую почитать интересную серию статей Работа с Tortoise SVN. [...]
14. Nano Tips » Установка и настройка SVN для Windows | 11.11.2008 в 08:46
[...] На последок рекомендую почитать интересную серию статей Работа с Tortoise SVN. [...]
15. Ортоблог - | 08.01.2009 в 11:04
[...] Очень часто при разработке любого проекта, да и вообще при работе над каким-либо документом приходится задумываться: “А что будет если я изменю эти файлы?. Как вернуть обратно изменения, если мне они не понравятся?”. Приходится изучать специальные инструменты, например svn. Небольшая ссылка для начала работы [...]
16. Pirau Vladislav Blog » Blog Archive » Работа с Tortoise SVN | 30.06.2009 в 13:24
[...] в репозитории создавать две папки braches и tags. (Рекомендуемая структура репозитория описана в первой части.) В первой создаем настоящие [...]
17.
Surick | 28.10.2009 в 21:59
Хм… забавненько
18.
vipsites | 02.04.2010 в 03:49
Следует заметить, что, например, вторичные запчасти hyundai – намного более продаваемый товар, чем сами… …повышения пошлин, после которого цены на новые зарубежные автомобили серьезно выросли, – вполне логично, что в подобной ситуации намного…
19. РЫБЬ from KAZ » Архивы » Установка и настройка SVN в CentOS | 30.11.2010 в 01:16
[...] Хороший клиент для работы с SVN под виндой Tortoise SVN, подробнее прочитать о его использовании можно наhttp://outsourcing.wordpress.com/2006/10/21/working-with-tortoise-svn-part1/ [...]
20.
Нуб | 02.02.2011 в 00:02
Допустим, есть сайт и FTP доступ к нему. Можно ли его как-то зачекаутить локально, отредактировать (на локальном серваке), а потом зачекинить? Т.е. рабочий сайт выступает в роли репозитория, а локальная версия – в роли рабочей версии. Такое в принципе можно замутить? Как превратить существующий сайт в репозиторий?
21.
scatpeeD | 02.02.2011 в 22:48
scat dom tube sexy girls in nylons asian dirty sex videos
hot web cam sex erotic porn · chicas pillada con el tanga fuera en la calle ….. foros scat · culo abierto dilatado · solo upskirt infraganti … Hentai Scat Porn, Scat hentai gif, maid hentai, Hentai, another hentai, Hentai, A First for Hentai…, Lesbian shemale hentai surprise!, Sexy KIss, … Torrent : Scat porn There are 2 results for – Scat porn on Sumo Torrent !-SUMOTorrent.
toilet cam tube 2 girls eat shit fat lady porn
22.
Тарас | 10.05.2011 в 14:25
Не понимаю. Допустим я хочу сделать копию проэкта на сервер и потом работать с ним локально, подгружая файлы туда и сюда (на сервер и з сервера). Есть локальная версия сайта, как ее импортировать и куда, что вводить в окно import?????
23.
нубб | 30.05.2012 в 07:45
народ а что делать если я обновляю один мод а на текстурах стоит восклицательный знак че делать