Привет, Гость!
Главная
Вход

Последняя активность

Форум / Вап-мастеру / ЛИКБЕЗ (для начинающих)
Поиск
  Учимся работать с SVN репозиториями.
1 2 >>
AlkatraZ AlkatraZ (SV!) [Off] [#] (14.04.2009 / 09:09)
Уездный предводитель Каманчей
Предисловие
Для начала, сразу хочу предупредить.
Тем, у кого просто телефон, дангную тему можно нечитать и просьба вопросы не задавать.
Перепечатывать материал можно, но ОБЯЗАТЕЛЬНО нужна ссылка на данный сайт (http://gazenwagen.com) и указание автора материалов (AlkatraZ).

Для нормальногоь освоения урока, нужен компьютер с установленной программой TortoiseSVN скачать которую можно бесплатно, по адресу http://tortoisesvn.net
Нужно скачать и установить саму программу + пакет руссификации (качается оттуда же).
---
Конечно, для работы с репозиториями есть много клиентов кроме TortoiseSVN как для Windows, так и для Linux, но мы будем учиться именно на той программе, что я сказал, ибо она бесплатна и является лучшей в своем классе.
---
Данный цикл уроков не является какой-либо перепечаткой с других ресурсов. Я это пишу ориентируясь исключительно на свой опыт работы, излагаю все своими словами и субъективно (ИМХО), так, что другие мнения приветствуются
Изм. AlkatraZ (04.05.2009 / 16:29) [3]
AlkatraZ AlkatraZ (SV!) [Off] [#] (14.04.2009 / 09:22)
Уездный предводитель Каманчей
Занятие -1
РЕПОЗИТОРИЙ

Для начала, давайте осмыслим. что же такое SVN и для чего он нужен? Чем собственно говоря он Вам может помочь?

1) Вы работаете в команде?
2) Случалось ли так, что вы работали с файлом, и кто-то ещё работал с ним же и в то же время? И не теряли ли вы внесённых вами в файл изменений из-за этого?
3) Бывало ли так, что после сохранения файла вам хотелось отменить только что сделанные изменения? И не хотелось ли вам узнать, как файл выглядел некоторое время назад?
4) Не желали ли вы узнать, когда именно появилась ошибка, обнаруженная в вашем проекте?
5) Желаете ли, чтоб все файлы и их версии находились в строгом порядке и в любой момент, можно достать любой файл любой версии?

Если вы ответили «да» хотя бы на один из этих вопросов, тогда SVN технология предназначена для вас!

Собственно говоря, SVN это система управления версиями, база данных и хранилище ваших файлов проекта. Она может располагаться как у Вас на компьютере, так и на каком-либо сервере. Управление версиями - это искусство управления изменениями информации. Этот инструмент давно стал критически важным для программистов, обычно тратящих свое время на создание небольших изменений в программе, некоторые из которых надо на другой день убрать или проверить. А теперь вообразите команду таких программистов, работающих одновременно, да ещё и над одними и теми же файлами! - и вы сможете понять, зачем нужна хорошая система для управления потенциальным хаосом.

SVN хранилище с Вашим проектом называется Репозиторий
В нем хранятся все Ваши файлы всех версий, с комментариями разработчиека.
Изм. AlkatraZ (15.04.2009 / 15:29) [4]
AlkatraZ AlkatraZ (SV!) [Off] [#] (14.04.2009 / 09:34)
Уездный предводитель Каманчей
Занятие - 2
SVN КЛИЕНТ

В предыдущей статье мы рассмотрели сами хранилища - Репозитории.
Но как с ними работать? Как подключиться?
Вот для этого, нам приходят на помощь специальные программы - SVN клиенты.
Одна из лучших под Windows - это TortoiseSVN, которую мы далее и будем рассматривать.

SVN клиент умеет подключаться к нужному репозитроию и далее, в удобной графической форме предоставляет Вам все инструменты для работы:
Журнал (важнейшая часть, он нем мы поговорим отдельно)
Обозреватель хранилища
Контроль различий
Система экспорта
и многое другое...

Конечно можно работать и без SVN клиента, с помощью Subversion из режима коммандной строки, но это для мазохистов и очень неудобно.
Изм. AlkatraZ (15.04.2009 / 15:29) [2]
AlkatraZ AlkatraZ (SV!) [Off] [#] (15.04.2009 / 15:22)
Уездный предводитель Каманчей
Занятие - 3
Структура репозитория

Прочтя предыдущие посты и оф. мануалы по SVN, иногда может показаться:
"я работаю один, нахуя мне репозиторий?".
Однако, смею заверить (проверенно собственным опытом), это очень полезно, если использовать с умом.

В данном уроке мы рассмотрим стандартную структуру репозитория и перейдем от теории к практике и создадим свое SVN хранилище.

В принципе, структура каталогов в Вашем репозитории может быть любой.
Но существует общепринятая практика и если хотите следовать негласным стандартам и хотите, чтоб Вас поняли другие кодеры, то структура желательна следующая:

/trunk
/tags
/branches

В папке /trunk находится Ваш проект, именно то, над чем Вы работаете в данный момент.

Папка /tags предназначена для меток. К примеру, Вы разрабатываете какой-то скрипт и на 50 билде решили выпустить официальную версию Myscript 1.0
Для этого, в папке /tags создается подпапка с названием версии и туда (автоматически) копируется содержимое рабочей версии (trunk). Это очень удобно, так, как всегда все будет в порядке и Вы будете знать, на каком билде была выпушена в паблик официальная версия. Эта информация Вам понадобится позже, когда Вы продолжите разработку скрипта, выпустите новую версию и понадобится Патч (измененные файлы). Как это делается. мы разберем позже, пока просто возьмите на заметку.

В папке /branches находятся "ответвления" рабочей версии. Щас поясню, что это такое.
К примеру, выпускаете Вы скрипт. Потом. возникла идея сделать его немного по другому.
Чтоб провести эксперимент, Вы можете, не трогая основной линии разработки (/trunk) начать экспериментировать в отдельной ветке. Подобное также пригодится, если кто-то делает на основе Вашего скрипта свой мод. Вы выделяете ему свою ветку и он работает.
В последствии, наработки можно объединять "сливать" с основной веткой.

Ну все, данный урок закончен, в следующем мы перейдем к практическим занятиям.
Изм. AlkatraZ (15.04.2009 / 15:30) [1]
AlkatraZ AlkatraZ (SV!) [Off] [#] (15.04.2009 / 16:04)
Уездный предводитель Каманчей
Занятие - 4
Создаем репозиторий

Для начала напомню, что TortoiseSVN является расширением к стандартному Проводнику Windows (Windows Explorer). Поэтому, всякие Тоталкомандеры и прочие навороты придется отложить, ибо с ними работа не гарантируется. Это не значит, что не будет работать, попробуете потом сами, но учиться мы будем на стандартном инструменте Windows.

Итак, создадим наш первый, тестовый репозиторий
Для этого:

1) Откройте Проводник (Windows Explorer)
2) Создайте на диске D: (или если нет D:, то на C папку "MyREPO" это и будет папка с нашим репозиторием.
3) Щелкните правой клавишей мыши на созданной папке, откроется контекстное меню, в котором найдите пункт TortoiseSVN и далее, в подменю выбираете комманду "Создать здесь хранилище". В случае успешного создания, выскочит окошко, в котором сообщат, что хранилище создано.
4) Если мы сейчас заглянем в папку MyREPO, то увидим, что там появились какие-то файлы и папки. Это и есть наше хранилище. КАТЕГОРИЧЕСКИ запрещается что-либо менять, или удалять в этой папке. Также нельзя помещать туда посторонние файлы.
5) На всякий случай архивируем наше хранилище (всю папку MyREPO). Настоятельно рекомендую делать архивы как можно чаще, перед любым изменением. Ибо, если вы что-то напортачите, можете просто восстановить архив и все
6) Все, наше хранилище создано и готово к использованию.

Как с ним работать и просмотреть его содержимое?
Очень просто.
1) Открываем проводник (не забываем, что TortoiseSVN является расширением к проводнику и нам придется постоянно им пользоваться).
2) На любой папке щелкаем правой клавишей и в меню TortoiseSVN выбираем комманду "Обзор хранилища"
3) Выскочит окошко, в котором Вам предложат ввести URL адрес Вашего хранилища.
В случае с WEB репозиториями (например JohnCMS) вам туда нужно вставить ту ссылку, что Вам дали разработчики проекта. После нажатия "ОК" откроется окно, в котором через некоторое время (зависит от скорости связи) появится вся структура проекта со всеми файлами.
4) Но у нас пока хранилище локальное, что же вводить в качестве URL?
Очень просто.
Для локальных хранилищ используется следующий формат:
file:///D:/MyREPO/
Обратите внимание, что ОБЯЗАТЕЛЬНО используется прямая косая черта (а не обратная, как в Windows). Вызов file:/// и потом путь к созданному нами репозиторию.
Он может быть в любом месте диска, даже на флэшке, но чтоб небыло гемороя с прописыванием пути к папке, рекомендую ее глубоко не прятать
5) В открывшемся "Обозревателе хранилища" вы можете делать разные действия, однако на данном этапе я настоятельно не рекомендую что-либо там менять.
В крайнем случае, можете поиграться, дать волю любопытству, но потом восстановите исходную копию репозитория (я надеюсь вы ее сделали, как я писал выше? гг)

На этом, данный урок закончен.
Мы создали репозиторий и научились в него заклядывать.
В следующем уроке мы перейдем к самой интересной части - работе с проектами.
AlkatraZ AlkatraZ (SV!) [Off] [#] (18.04.2009 / 21:08)
Уездный предводитель Каманчей
Занятие 5
Структура репозитория

Ну чтож, настало время перейти от теории к практике и заняться самым интересным.
В этом занятии мы создадим тестовый проект, выгрузим его в Репозиторий (который создали в прошлом занятии) и научимся вести журнал и отслеживать версии.

Для начала, мы должны подготовить наш репозиторий для работы с проектом. Как Вы помните, на прошлом занятии мы создали пустой репозиторий, но по правилам (хотя необязательно) нам нужны там папки /trunk /tags и /branches
Сделайте следующее:
1) В любом удобном месте создайте папку с любым именем, например structure
2) Внутри этой папки, создайте три подпапки с именами
trunk
tags
branches
3) Правой клавишей мыши щелкните на папке /structure и в подменю TortoiseSVN выберите комманду "Импорт"
4) Откроется окно, в котором в поле "URL в хранилище" Вы должны ввести адрес Вашего репозитория.
---
По прошлому занятию Вы должны помнить, как пишутся локальные адреса:
file:///D:/MyREPO/ все слэши должны быть не обратными (как в Windows) а прямыми.
Если на прошлом занятии Вы уже вводили адрес и просматривали репозиторий, то в поле выбора уже будет запомненный ранее адрес. Если нажмете кнопку "..." рядом с полем адреса, то откроется обозреватель хранилища. Если адрес был введен неправильно, то вылезет сообщение с ошибкой.
---
5) Поле "Сообщение импорта" оставьте пустым. Просто жмите кнопку "ОК"
6) Откроется новое окно, в котором будет отображен процесс импорта. Если все сделали правильно, то никаких ошибок (красных записей) в этом окне не должно быть.
В конце будет сообщение "Завершено до ревизии 1". Жмем кнопку "ОК" и закрываем окно.
7) Для того, чтобы убедиться, что мы сделали все правильно, заглянем в наш репозиторий.
По прошлому уроку Вы должны знать, как это делается
В Проводнике Windows правой клавишей щелкаем на любой папке и в подменю TortoiseSVN выбираем пункт "Обозреватель хранилища"
В поле адреса там уже должен быть записан URL нашего хранилища. Жмем кнопку "ОК" и откроется окно обозревателя. В хранилище должны уже находиться папки, которые мы импортировали в этом занятии (trunk, tags, branches)

Вот и все. Как Вы поняли, мы импортировали структуру каталогов и запустили счетчик наших Билдов (ревизий). Мы готовы работать с проектом, чем и займемся в следующем занятии.
Изм. AlkatraZ (04.05.2009 / 17:02) [2]
AlkatraZ AlkatraZ (SV!) [Off] [#] (04.05.2009 / 18:39)
Уездный предводитель Каманчей
Да простят меня читатели за задержку, но продолжим наши занятия.

Занятие-6
Подготавливаем проект

Итак, приступим к практически полезному делу. Создадим проект, загрузим его в наш SVN репозиторий и научимся главному: извлекать пользу из открывшихся нам возможностей.
Напнминаю: в прошлом уроке мы создали свой SVN репозиторий и подготовили его структуру (trunk, tags, branches)

Содержимое проекта - в основном любые текстовые и графические файлы. Язык программирования не имеет значения, все равно, практически все исходники в текстовом формате. В нашем случае, мы будем работать с языком программирования РНР.

Для удобства тестирования, проект можно создать непосредственно в директории для сайтов Денвера, будем считать, что Вы работаете именно с ним. Если используете другой тест-сервер (например Topserver, или другой), следуйте его инструкциям.

Назовем наш проект (воображаемый домен) test.com
Наш проект - это сайт с анекдотами.
Для этого в директории Денвера /home создаем каталог test.com и в нем подкаталог /www
Полный путо будет таков: /home/test.com/www/ именно тут и будет располагаться наш проект. В дальнейшем, данный каталог будем называть "папка проекта".
Для работы с исходным кодом, используйте любой (на Ваш выбор) редактор РНР кода, или на крайний случай, простой текстовый редактор.

Итак, приступим.
В папке проекта создаем пустой текстовый файл с именем index.php это и будет главная страница нашего файла. В сам файл записываем примитивный РНР код:

<?php

echo 'Test";

?>

Запускаем Денвер, набираем в браузере адрес http://test.com и проверяем работу нашего сайта. В окне браузера должна выводиться надпись "Test". Если все в порядке, значит сайт работает и мы займемся импортом проекта в SVN репозиторий.

ПРИМЕЧАНИЕ:
Когда вы будете работать с реальными проектами, вовсе необязательно начинать все с нуля. как мы делаем сейчас. Можно разместить в каталог проекта готовый скрипт, импортировать его в репозиторий и потом уже дорабатывать.
AlkatraZ AlkatraZ (SV!) [Off] [#] (04.05.2009 / 18:40)
Уездный предводитель Каманчей
Занятие-7
Загрузка проекта в репозиторий

В предыдущем уроке мы создали тестовый проект сайта.
Теперь собственно говоря, нам нужно его как-то связать с SVN репозиторием и начать пользоваться всеми преимуществами контроля версий.

Вначале, нам нужно импортировать наш проект в репозиторий.
Примечание: не забываем, что вся работа с TortoiseSVN происходит через контекстное меню Проводника Windows (по правому щелчку).
Для загрузки нашего проекта в репозиторий сделаем следующее:

1) Щелкаем правой клавишей на папке проекта (/home/test.com/www/)
2) В подменю TortoiseSVN выбираем команду "Импорт..."
3) В открывшемся меню, в поле "URL в хранилище" мы должны ввести путь, где будет храниться наш проект. После прошлых занятий, там уже должен был запомниться адрес репозитория. Если его нет, то пользуясь предыдущими уроками, укажите путь к локальному репозиторию, что мы создавали (file:///D:/MyREPO/)
Поле "Сообщение импорта" пока оставляем пустым.
4) Рядом с полем "URL в хранилище" жмем кнопку обзора "..."
5) Если адрес был введен правильно, откроется обозреватель хранилища в нашем репозитории.
6) Как Вы помните из предыдущих уроков, хранить текущие разработки мы будем в каталоге /trunk репозитория. Для этого, в обозревателе хранилища щелкните на папке /trunk и потом снизу жмите кнопку ОК
7) Вы увидите, что к адресу хранилища добавился путь /trunk и общий адрес теперь выглядит так file:///D:/MyREPO/trunk
8) Жмем кнопку ОК и начнется импорт наших файлов проекта в репозиторий. Откроется окно с логами, где детально будет показан весь процесс импорта. Если нет ошибок, то в конце будет написано "Завершено До ревизии 2". Это уже начали считаться Билды (builds) нашего проекта. Каждая запись в хранилище, увеличивает счетчик билдов на единицу. Потому, аккуратно подходите к этой процедуре, не делайте непродуманных шагов. Я позже напишу список рекомендаций по работе...
9) Жмем кнопку ОК, окно логов закроется. Все, наш проект теперь находится в репозитории. Проверить это мы можем так: щелкаем правой клавишей на папке проекта и выбираем в подменю TortoiseSVN комманду "Обозреватель хранилища". В поле адреса должен быть запомнен URL нашего хнанилища (если не так, то введите адрес). Жмем кнопку ОК и в открывшемся окне обозревателя видим файлы нашего проекта, которые уже находятся в репозитории (в нашем случае это index.php). Закрываем окно обозревателя.

Вот и все, проект загружен в репозиторий.
В следующем уроке мы научимся как извлечь наши файлы из репозитория и сделать привязку к проекту.
LogIN LogIN [Off] [#] (04.05.2009 / 19:28)
Блин, у меня из тортойса русский ланг пропал после обновы проги...
AlkatraZ AlkatraZ (SV!) [Off] [#] (04.05.2009 / 19:33)
Уездный предводитель Каманчей
LogIN (04.05.2009/23:28)
Блин, у меня из тортойса русский ланг пропал после обновы проги...
Не страшно.
Когда ты качал обнову, ты к ней, именно ее версии Лангпак тоже должен был поставить.
---
Если это сделал, то щелкни правой клавишей на любой папке и в меню TortoiseSVN выбери Settings и там переключи на Русский.
LogIN LogIN [Off] [#] (04.05.2009 / 21:31)
В том то и дело,
что в сеттингс вообще пропал русский,
только инглиш...
LogIN LogIN [Off] [#] (04.05.2009 / 21:33)
В том то и дело,
что в сеттингс вообще пропал русский,
только инглиш...
AlkatraZ AlkatraZ (SV!) [Off] [#] (04.05.2009 / 21:36)
Уездный предводитель Каманчей
Значит ты не установил Лангпак.
---
Убедись, что версия TortoiseSVN и пакета Руссификации - одна и та же.
Разные версии друг к другу не подходят.
LogIN LogIN [Off] [#] (04.05.2009 / 23:33)
Всё, спасиба,
скачал ланг с сайта,
установил и всё русиш !
LogIN LogIN [Off] [#] (04.05.2009 / 23:34)
пиля, забодало уже,
дубль мессаги,
а исчо скоростной инет называетса.
Всё, в конце месяца отключусь, деньги хорошие,
а скорость гавно...
Опять на офтопили...
Алька, зачищай..ггг...
Изм. LogIN (04.05.2009 / 23:36) [1]
Stv@d Stv@d [Off] [#] (04.05.2009 / 23:59)
Аццкей Линугзоид
http://lib.custis.ru/index.php ... Talks торвальдс пытаеццо абьяснить пачиму гит рулед...
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2009 / 09:42)
Уездный предводитель Каманчей
Stv@d, ну с GIT в принципе все ясно, там основной напор именно на "распределенность" репозиториев и совместный контроль. То есть, для ОЧЕНЬ больших проектов, которым занимается куча народу и в котором есть много репозиториев и как то нужно все это контроллировать.
---
Для РНР разработчика, наиболее удобным является именно SVN, не перегружена, легка в освоении.
Stv@d Stv@d [Off] [#] (05.05.2009 / 10:48)
Аццкей Линугзоид
AlkatraZ (05.05.2009/13:42)
Stv@d, ну с GIT в принципе все ясно, там основной напор именно на "распределенность" репозиториев и совместный контроль. То есть, для ОЧЕНЬ больших проектов, которым занимается куча народу и в котором
я читал отзывы людей которые работают в одиночку или небольшой групой говорят нравитсо да и по освоению говорят легко ужо... Я попытаясь в ближайшее время асилить напишу свое мнение...
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2009 / 12:42)
Уездный предводитель Каманчей
Собственно говоря, данный урок посвящен не самой системе управления репозиторием, а клиентской программе.
Для GIT к примеру тоже существует портированный TortoiseGIT http://code.google.com/p/tortoisegit/
То есть, мы рассматриваем не саму систему контроля версий (Subversion, или CSV, или GIT), а клиентское приложение с графической оболочкой.
---
Работа с репозиторием посредством коммандной строки - это еще тот геморой и для настоящих мазохистов командострочников, типа Ксерга

Данное пособие я пишу для "ленивых" людей (лентяи двигают прогресс), которым похуй на коммандные строки и нужно быстро и качественно написать РНР код.
XsErG XsErG [Off] [#] (06.05.2009 / 21:15)
Ну про меня не упомянуть нельзя было? :-D
Я кстати вполне успешно юзаю git для своей кмски не выходя из редактора
:!git add
:!git commit
И все дела.. Не надо мешать покоиться на коврике манипулятору типа мышь Ыы. А 130 страниц гитбука осиливаеться за два три дня чтения на лекциях по каким нибуть системам распознавания образова Ыы
  Всего: 24
1 2 >>

Фильтр по автору
Скачать тему

Форум

Новые вверху
0 / 259

Gazenwagen Gegenkulturelle Gemeinschaft