Буду делиться тем что делаю.
SVN
Запись от Герыч размещена 16.08.2009 в 02:27
Сомневаюсь, что тут все поголовно занимаются opensource'ом и соответственно не все знают, что такое svn.
Svn(SubVerioN) - это такая супер-мега технология, которая даёт возможность:
1)организовывать разработку проекта многими людьми
2)при разработке проекта не терять этапов и "нитей" разработки.
Расскажу о том, зачем svn средне-статистическому программисту(к примеру мне).
Я скачал себе SVN клиентик, который оч удобно встраивается в винду.
Зовётся он TortoiseSVN(качать тут)
Теперь предположим у нас есть некий проект, который может затянуться на долго и важно всегда иметь под рукой бэкап, чтобы отмотать назад.
Перед созданием проекта выбираем надёжную папку на компе, которую по глупости не удалишь. Ну для простоты будет C:/svn/project1/
Внутри этой только что созданной папки создаём так называемое SVN хранилище - там будет храниться весь проект и все стадии его разработки. Для этого кликаем правой мышой и там ищем менюшку TortoiseSVN -> Create Repository Here. появляется сообщение об успешном создании и мы можем навсегда забыть об этой папке(надо только помнить путь к ней).
Теперь идём в папку, где мы привыкли работать, например c:/projects/flash/ и создаём в ней папку для вашего проекта: c:/projects/flash/project1/. В ней рекомендуется сделать такую структуру папок:
c:/projects/flash/project1/trunk - текущая рабочая версия
c:/projects/flash/project1/tags - самые важные "снимки" проекта
c:/projects/flash/project1/branches - некоторые идеи(параллельные нити разработки), над которыми ведётся отдельная работа
Эта структура объясняется так: в trunk обычно пишется код основной линии разработки. Потом бац, вам пришла идея ввести новую функцию, но вы боитесь всё загадить. Тогда вы отделяете разработку в новую ветвь(в branches) там тестируете, а потом сливаете(merge) изменения в основную ветвь. tag'и нужны чтобы к примеру отметить важный момент разработки... ну скажем релиз demo-версии и конечный релиз
После этого всего мы создаём эту структуру папок в SVN хранилище, т.е. мы её импортируем(команда import). В этом окошке пишем file:///C:/svn/project1 в первой строке(это адрес нашего хранилища). Обратите внимание на 3 слэша в начале! В import message пишем некий коммент, например "проект стартовал". Потом окошко об успехе и мы радуемся).
Теперь нам надо сделать немного глупое действие.. прочитать эту структуру обратно. Для того, чтобы забрать текущую версию проекта из хранилища и привязать нашу папку c:/projects/flash/project1/ к хранилищу используется команда в меню под названием SVN Checkout. Ей опять указываем адрес хранилища и папку, куда получить данные(c:/projects/flash/project1/) и опять ждём отчёт об успехе. Там может быть ругательство от svn'а на тему того, что папка что-то содержит, но мы то знаем, что в ней всего 3 папки, поэтому игнорим.
Идём дальше. Теперь всю разработку мы будем вести в c:/projects/flash/project1/trunk/
Ну создаём там какие хотим файлы, делаем "костяк" проекта. И вот он наступает момент, когда уже становится страшно что-то важно потерять и мы знаем, что нужен 1-ый бэкап. Тогда мы в папке c:/projects/flash/project1/ кликаем в менюшке команду Commit.
Она заливает в хранилище изменённые файлы. Там мы можем выбрать файлы из списка изменённых и подписать коммент(пишите комменты-они помогают!). Всё, залили и как говорится в SVN-терминах, сделали новую ревизию. Ревизия - это как-бы этап проекта. 1-ая ревизия - это когда мы создали стуктуру папок. Так что это вторая. Ревизий можно делать сколь угодно много. Можно отмотать ревизии назад(команда Update to revision), при этом самые новые изменения не пропадают, если вы их сохранили в хранилище. Есть ещё HEAD revision - это самое новая.
У TortoiseSVN есть ещё такая фича-все файлы и папки в проводнике помечаются разноцветными значками, показывающие изменён ли файл(нужно ли залить файл Commit'ом) или нет.
Ну вроде базовые вещи я рассказал, а на сегодня всё, уже спать пора)
Ещё могу рассказать о том как делать branch/tag и merge. Но это по просьбам в комментах.
Всего комментариев 11
Комментарии
16.08.2009 14:23 | |
http://tortoisesvn.net/support - тут есть русская документация по TortoiseSVN (pdf и html)
|
17.08.2009 10:14 | |
Цитата:
мы можем навсегда забыть об этой папке(надо только помнить путь к ней).
Спасибо за рассказ. Да, и про branch/merge тоже интересно будет почитать, пишите. И еще, у меня почему-то не удается сделать импорт в сетевую папку, типа \\server\folder. Ругается на путь. Хотя репозиторий в ней создается успешно. UPD. Разобрался. Надо писать file://server/folder. |
|
Обновил(-а) alexcon314 19.08.2009 в 16:42
|
19.08.2009 13:00 | |
А в чем связь svn и opensource?
|
20.08.2009 22:43 | |
бесплатный приватный репозиторий можно завести на сайте www.xp-dev.com
|
21.08.2009 00:09 | |
о, а это я как раз хотел поискать, спасибо)
|
21.08.2009 09:40 | |
Fernando Costa, спасибо за ссыль. Очень внятный ресурс, новичкам в svn, типа меня, самое то.
|
21.08.2009 12:22 | |
Кстати, нужна прога svnadmin, чтобы сливать локальное хранилище в онлайн репозиторий.
Для самой новой версии TortoiseSVN svnadmin качайте тут, версия 1.6.4. А дальше по инструкции делайте дамп локального хранилиша и отсылайте на xp-dev. Всё работает, проверено. |
31.08.2009 08:07 | |
Незнал, что можно репозиторий создать на локальном компе — спасибо. Для Flex, если что, есть очень удобный клиент subversion.
|
Последние записи от Герыч
- Массив объектов или несколько массивов? (16.08.2009)
- SVN (16.08.2009)
- Box2D и магическое 30 (13.08.2009)
- Двойное деление vs Мозги (09.08.2009)
- Желе: убраны многие баги + появилась смена состояний (03.08.2009)