Понедельник, 10 Мая 2021, 09:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Subversion (Как не сломать мозг при управлении несколькими программистам)
Subversion
wernherДата: Воскресенье, 14 Ноября 2010, 09:44 | Сообщение # 1
Only God is Perfect
Сейчас нет на сайте
Subversion
Или «Как не сломать мозг при управлении несколькими программистами».

Что такое Subversion?

«Коротенько, но о самом гнусном.»
-к/ф. «Кромешная тьма»

Википедия поясняет нам что:
Subversion(также известная как «SVN») —свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc.
Система управления версиями (от англ. Version Control System, VCS или Revision Control System) —программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.
Теперь представим такую ситуацию:
Работают 2 (или более) программистов над игрой/сайтом. Один работает над одним модулем, другой над другим. Все у них хорошо и они весело обмениваются кодом с изменениями. Но вот один из них для работы своего модуля, слегка и немного поменял (дополнил) какой-то третий сторонний, уже давно написанный и «пофиксеный», модуль (функцию). У него все хорошо и прекрасно работает. Он скидывает свои изменения второму программисту и тот все смело копирует с перезаписью в свою рабочую копию. И вот незадача… Второй-то программист тоже использовал этот модуль (функцию) для своего модуля. И его модуль теперь отказывается нормально работать. А то и вообще не работает. И начинает он копаться в уже давно написанном и забытом коде в поисках ошибки. Находит, исправляет, и модуль опять работает нормально. Он (второй) радостный, что все работает, кидает свой код первому. Теперь ситуация повторяет снова, меняются только лица. И так до бесконечности.
Или другая ситуация:
Пишут те же программисты игру. Все у них хорошо. Все работает. Но вот пришла идея от геймдизйнера полностью поменять механику игры. Сделать из RPG-RTS просто RPG. На «совете» идея была обсуждена и принята к исполнению. И сидят теперь наши программисты и репу чешут. Они то рендер уже написали и начали «ваять» основу механики. Теперь надо им рыться в коде и удалять ставшие уже не нужными функции и модули. Можно конечно оставить, но потом им же придется ковыряться в «тоннах» не используемого кода в поисках ошибок в какой-то «нужной» функции.
Что нам дает Subversion в таких ситуациях.
В первой она дает возможность просмотреть, что именно изменил другой программист и сразу учесть изменения в «старом и забытом» коде.
Во второй она дает возможность 2-мя щелчками откатиться к любой предыдущей версии программы (сайта).
Удобно? Конечно. Как начать? Сейчас расскажу.

Как начать использовать?

«Где карта Джим?»
-«Остров сокровищ» Р.Стивенсон

Я расскажу процесс регистрации, установки необходимых программ, «заливки дефолта» и получение рабочей копии на примере GoogleCode и TortioseSVN.
1. Регистрируемся на Google.
Т.к. на Google все сервисы завязаны вокруг Gmail.com, то нам необходимо зарегистрировать почтовый ящик. Думаю, с этим проблем не возникнет. Там анкета на русском языке и все обильно прокомментировано. http://gmail.com/

2. Создаем новый проект на GoogleCode.
http://code.google.com/hosting/createProject

Project name – название проекта. Должно состоять из букв нижнего регистра и не содержать пробелов. Оно пойдет в адрес вашего репозитория.
Project summary – Краткое описание проекта. Тут ограничение только на длину строки smile
Project description – Подробное описание проекта. Вот тут вы можете дать волю своему воображению.
Version control system – Выбор системы которую будете использовать. Нам сейчас надо Subversion.
Source code license – лицензия под которой будет распространяться код. GoogleCode создан для хостинга Open Source проектов. Если у вас закрытый проект, то либо выбирайте другой хостинг. Либо «поднимайте» свой сервер Subversion. Можно конечно создать репозиторий и никому не говорить, что он есть, кроме участников команды и жестоко карать тех, кто его выдаст smile
Use a separate content license – Лицензия, под которой будет, распространятся контент проекта (музыка/модели/текстуры и т.п.)
Project labels – ключевые слова для поиска. Их сейчас принято называть «тегами»

После того как все ввели, смело жмем кнопку «Create Project» и нас перекидывает на главную страницу вашего проекта.

3. Краткая экскурсия по меню сайта проекта:

4. Добавление других участников проекта
На вкладке «Administer» в разделе «Project members» вводим почтовые ящики других пользователей через запятую:

5. Установка TortioseSVN.

TortoiseSVN – это клиентская программа для работы с репозиторием.
При установке она интегрируется в «Проводник» и «висит» в меню на правой кнопки мыши. Подробности установки, а так же про проблемы которые вы можете при установке встретить, описаны в мануале на русском языке и в картинках.
Отсюда качаем саму программу, русификатор и мануал:
http://tortoisesvn.net/downloads

Подготовительный этап закончен. Переходим к использованию.
Использование.

«-Почему тут летают самолеты?
Потому что они самолеты или потому что они летают?!
— Ты сам-то понял, что спросил?»
-«Падение Красного барона» Призрак

Процесс использования программы хорошо описан в мануале к ней.
Для начала надо «залить дефолт».
Открываем папку проекта и выбираем в контекстном меню мыши пункты «TortoiseSVN ->Импорт»

Вводим URL репозитория, краткое сообщение и жмем кнопку «Ок»:

У нас спросит логин и пароль. Для того чтобы узнать логин и пароль переходим по ссылке: https://code.google.com/hosting/settings

У каждого участника свой логин и пароль.
После нажатия кнопки «Ок» начнется импорт проекта в репозиторий. По окончании импорта мы увидим примерно такое сообщение:

Все. Теперь репозиторием могут пользоваться все члены команды.

Получение рабочей копии.
Перед непосредственным использованием, нам надо получить рабочую копию.
Для этого открываем пустую папку и в контекстном меню выбираем «SVN извлечь…».





Вот и все. Теперь можно спокойно работать.
Фиксация получение обновлений или фиксация изменений производится через тоже контекстное меню с уже знакомыми диалоговыми окнами.



Все последние изменения сделанные другими участниками команды можно посмотреть как на сайте:


Так и с помощью TortioseSVN:




Послесловие.

«Если вскроют мою черепную коробку.
То на мозгу увидят его отпечатки пальцев.»
-«451 градус по Фаренгейту» Р. Брэдбери

Вот собственно и все самое необходимое, что надо знать про использование Subversion.
Знающие люди, конечно, скажут, что я описал лишь малую долю возможностей.
О блокировке, ответвлениях и заплатках и прочем, вы сможете прочесть либо в мануале, либо, если уж совсем не "втерпежь", можете спрашивать прямо в теме.


ФилДата: Воскресенье, 14 Ноября 2010, 12:15 | Сообщение # 2
Томатный революционер
Сейчас нет на сайте
есть такая программа - dropbox. Функции те же но все гораздо проще.
wernherДата: Воскресенье, 14 Ноября 2010, 15:44 | Сообщение # 3
Only God is Perfect
Сейчас нет на сайте
dropbox - Это?

Если да. То это совершенно разные вещи.




Сообщение отредактировал wernher - Воскресенье, 14 Ноября 2010, 15:46
ФилДата: Воскресенье, 14 Ноября 2010, 16:55 | Сообщение # 4
Томатный революционер
Сейчас нет на сайте
ну да. А чем они отличаются?
zadrot_666Дата: Воскресенье, 14 Ноября 2010, 17:13 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Вместо Google Code предпочитаю BitBucket или Unfuddle.

Look at you, hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine? © SHODAN.
wernherДата: Воскресенье, 14 Ноября 2010, 17:59 | Сообщение # 6
Only God is Perfect
Сейчас нет на сайте
Фил,
Quote (wernher)
блокировке, ответвлениях и заплатках и прочем


bumДата: Воскресенье, 14 Ноября 2010, 20:09 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Quote (Фил)
есть такая программа - dropbox. Функции те же но все гораздо проще.

Dropbox - потрясная штука для бекапа и синхронизации файлов, но это же совсем не система контроля версий. Не знаю даже как можно их сравнивать, это вообще разные по своей цели продукты.
ФилДата: Воскресенье, 14 Ноября 2010, 20:13 | Сообщение # 8
Томатный революционер
Сейчас нет на сайте
да. Возможно сглупил.
Форум игроделов » Программирование » Общие обсуждения программистов » Subversion (Как не сломать мозг при управлении несколькими программистам)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг