Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Идеи и творения

Буду делиться тем что делаю.
Оценить эту запись

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 iNils вне форума
iNils
 
Аватар для iNils
http://tortoisesvn.net/support - тут есть русская документация по TortoiseSVN (pdf и html)
Старый 17.08.2009 10:14 alexcon314 вне форума
alexcon314
Цитата:
мы можем навсегда забыть об этой папке(надо только помнить путь к ней).
Лучше и не скажешь .
Спасибо за рассказ. Да, и про branch/merge тоже интересно будет почитать, пишите.
И еще, у меня почему-то не удается сделать импорт в сетевую папку, типа \\server\folder. Ругается на путь. Хотя репозиторий в ней создается успешно.
UPD. Разобрался. Надо писать file://server/folder.
Обновил(-а) alexcon314 19.08.2009 в 16:42
Старый 17.08.2009 11:05 Герыч вне форума
Герыч
 
Аватар для Герыч
да) именно поэтому 3 слэша если локальная папка.. типа имя сервера пропускается.
Сегодня напишу чё-нибудь ещё про branch'и. Только я сам во всём этом не ас) Пишу как сам понял, так сказать делюсь с народом полезными знаниями
Старый 19.08.2009 13:00 etc вне форума
etc
 
Аватар для etc
А в чем связь svn и opensource?
Старый 19.08.2009 15:04 Герыч вне форума
Герыч
 
Аватар для Герыч
А в том что SVN прежде всего предназначен для организации совместной разработки несколькими людьми одного продукта. Зайди в любой проект на SourceForge или GoogleCode - там есть раздел SVN. Вот оттуда можно скачивать файлы, а если ты участник, то и редактировать файлы. Для этого по сути и нужен TortoiseSVN - то клиент для таких вещей.
Старый 20.08.2009 22:43 Fernando Costa вне форума
Fernando Costa
 
Аватар для Fernando Costa
бесплатный приватный репозиторий можно завести на сайте www.xp-dev.com
Старый 21.08.2009 00:09 Герыч вне форума
Герыч
 
Аватар для Герыч
о, а это я как раз хотел поискать, спасибо)
Старый 21.08.2009 09:40 alexcon314 вне форума
alexcon314
Fernando Costa, спасибо за ссыль. Очень внятный ресурс, новичкам в svn, типа меня, самое то.
Старый 21.08.2009 12:22 Герыч вне форума
Герыч
 
Аватар для Герыч
Кстати, нужна прога svnadmin, чтобы сливать локальное хранилище в онлайн репозиторий.
Для самой новой версии TortoiseSVN svnadmin качайте тут, версия 1.6.4.
А дальше по инструкции делайте дамп локального хранилиша и отсылайте на xp-dev.
Всё работает, проверено.
Старый 31.08.2009 08:07 Яски вне форума
Яски
Незнал, что можно репозиторий создать на локальном компе — спасибо. Для Flex, если что, есть очень удобный клиент subversion.
Старый 23.02.2010 23:14 LOS2008 вне форума
LOS2008
Не получается у меня сделать импорт. В самом конце ругается что не может получить доступ к файлу 0-2.rev-lock
Такого файла нет вообще. Если его создать, то меняет имя на 0-3 и всё по новому.
 

 


Часовой пояс GMT +4, время: 00:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.