Репозиторій Subversion на своєму комп'ютері

З чого все починається

Коли запрошуєш на роботу першого програміста, досить швидко задаєшся питанням, як краще організувати його працю. Для мене першим кроком до налагодження роботи фахівця стала установка онлайнової системи реєстрації та відстеження помилок - Mantis ( www.mantisbt.org ). Вона надає зручний інтерфейс, для того щоб можна було відстежувати виправлення конкретної помилки програми та коментувати цей процес. База даних Mantis розташовується на сервері, тому для роботи потрібно лише підключитися до Інтернету.

Якщо застосовується Mantis, то процес розробки продукту буде відбуватися так:

  1. Технічне завдання розбивається на підзадачі, кожна з яких заноситься в Mantis і призначається програмісту.
  2. Програміст в свою чергу отримує список завдань (за термінологією системи іменований ToDo) і виконує їх відповідно до нього.
  3. Періодично робиться збірка програми, яка потім тестується. Всі завдання перевіряються. Ті, що успішно виконані, закриваються, а забраковані відкриваються заново.
  4. Кроки з 1-го по 3-й повторюються до тих пір, поки технічне завдання не буде завершена повністю і все завдання не будуть закриті.

Таким чином, Mantis забезпечує мінімум можливостей, що дозволяють відслідковувати процес роботи над проектом і приблизно планувати терміни поетапної здачі. Але дана система не покращує роботу з текстом програми. Розробнику доводиться чекати збірку, в якій акумульовано десяток-другий змін. Однак проконтролювати корективи в тексті програми неможливо. А оскільки повернутися до версій, зробленим раніше, дуже складно, то доводиться постійно робити резервні копії, скрупульозно відстежувати зміни і уважно нумерувати кожну нову збірку. Все це ускладнює роботу над проектом, навіть якщо в ній беруть участь лише два програміста, не кажучи вже про цілу команду.

З такими недоліками допомагає впоратися інша система - Subversion. Тому я вирішив об'єднати Mantis і Subversion. Про отриманому результаті ви дізнаєтеся трохи пізніше, а поки давайте розберемося, що таке Subversion і як з нею працювати.

Subversion - це система управління версіями з відкритим вихідним кодом. Вона допомагає керувати файлами та каталогами в часі. Дерево файлів поміщається в центральне сховище, схоже на звичайний сервер файлів, але відрізняється від нього тим, що запам'ятовує кожну зміну, внесену в файл або каталог. Це дозволяє відновити ранні версії даних і досліджувати історію їх зміни, внаслідок чого багато хто вважає систему управління версіями своєрідною «машиною часу».

Найчастіше Subversion називають коротко - svn, на ім'я клієнтської програми, що входить в її дистрибутив.

Що ще нам знадобиться

Зовсім трохи потрібно для того, щоб організувати працю кількох програмістів над одним проектом. Фактично досить лише комп'ютера з підключенням до Інтернету. Чи не потрібен навіть виділений IP-адреса. Втім, для установки Mantis знадобиться самий звичайний віртуальний хостинг, що стоїть не дорожче 5 дол. На місяць. Але він у вас напевно вже є.

Для установки системи на сервері якихось особливих навичок не потрібно. Сам процес займе від 20 хв до 1 год, а розібратися з Mantis можна за один день.

Припустимо, ви вже встановили систему на віртуальному хостингу, і тепер перейдемо до використання Subversion, що допомагає організувати роботу декількох програмістів над одним проектом.

Де встановити Subversion

В ідеалі Subversion повинна функціонувати на сервері, що обслуговує тільки внутрікорпоративну локальну мережу. Але якщо всі співробітники працюють віддалено (саме так було в моєму випадку), сервер повинен надавати доступ до сховища через Інтернет.

Але якщо всі співробітники працюють віддалено (саме так було в моєму випадку), сервер повинен надавати доступ до сховища через Інтернет

Якщо встановити Subversion на сервері у провайдера, то доступ до сховища можна буде отримувати 24 год на добу, причому з пристойною швидкістю. Але, на жаль, у такого підходу є свої недоліки. Наприклад, якщо ви розробляєте комерційний проект, то викрадення початкових кодів може завдати дуже відчутна втрата бізнесу. Щоб захиститися від крадіжки, потрібен не віртуальний хостинг, а як мінімум віртуальний сервер. Але подібне задоволення коштує від 30 дол. На місяць. Крім того, розміщення початкових кодів навіть на віртуальному сервері не врятує від нечесного адміністратора, який може переписати весь репозиторій на флешку прямо з комп'ютера. І жоден провайдер не гарантуватиме збереження інформації.

Тому я вирішив тримати дані у себе на комп'ютері, що працює під управлінням Windows XP. У цього способу є безсумнівний плюс - все вихідні зберігаються тільки у вас. Але швидкість доступу до вашого комп'ютера напевно буде менше тієї, яку може забезпечити провайдер, та й працювати репозиторій у ваших співробітників буде тільки тоді, коли ваша машина включена.

А тепер розглянемо установку Subversion на комп'ютер.

Покрокова інструкція по установці Subversion

Крок 1. Завантажте необхідне ПЗ.

Встановіть сам сервер і клієнт для роботи з ним. Як клієнт рекомендую використовувати русифіковану програму TortoiseSVN, в ній без зусиль розбереться навіть початківець. Потім завантажте останню стабільну версію сервера Subversion з сайту subversion.tigris.org. Клієнтську програму TortoiseSVN, а також русифікацію для нього візьміть з сайту TortoiseSVN.net.

Ще знадобляться маленька програма No-IP Client ( www.no-ip.com ), Завдяки якій не потрібно мати виділений IP-адреса, а також утиліти SVN + Mantis tools, необхідні для створення зв'язки Mantis + Subversion (вони викладені на сайті www.icons4swrus.com/?discount=article_svn ; пряме посилання, по якій їх можна скачати: icons4swrus.com/images/article-svn/svn-mantis-tools.rar). До складу SVN + Mantis tools входять наступні елементи:

  • post-commit - bat-файл, що запускається кожного разу під час фіксації змін і видобуває дані зі сховищ Subversion;
  • SVN + Mantis Shell - моя програма з відкритим вихідним кодом, яка форматує отримані дані Subversion в вид, зручний для вставки в Mantis, і відправляє їх на сервер;
  • SVN Checkin - модифікований PHP-скрипт з Mantis, вставляють коментар, відправлений з SVN + Mantis Shell.

Крок 2. Увійдіть на No-IP і встановіть No-IP Client.

Якщо у вас є виділений IP-адреса, то цей крок слід пропустити. Якщо ж IP-адреса динамічно формується провайдером, то без подібної програми не обійтися: працюючи на вашому комп'ютері, вона постійно дізнається ваш IP-адресу і, якщо він змінюється, відправляє дані на сервер. Таким чином, звернення до вашого комп'ютера відбувається через постійний «серверний адреса» (ви самі вибираєте його), пов'язаний з вашим реальним в той же момент IP-адресою.

Отже, зайдіть на сайт www.no-ip.com і створіть там безкоштовний аккаунт. Потім натисніть кнопку Add Host. Як HostName вкажіть назву своєї компанії. У списку виберіть вподобане ім'я домену, наприклад no-ip.biz. Потім встановіть на комп'ютері No-IP Client і запишіть в налаштуваннях дані щойно створеної облікового запису. Тепер, для того щоб хтось міг звернутися до вашого комп'ютера, досить вказати адресу на кшталт YourCompanyName.no-ip.biz.

Крок 3. Встановіть сервер Subversion і клієнт.

Інсталяція проходить дуже легко, досить в потрібний момент натискати кнопку Next. Спочатку слід встановлювати сервер, потім клієнтську програму, а потім, якщо необхідно, русифікацію до клієнта. Врахуйте, що не можна міняти стандартні шляхи, пропоновані інсталятором.

Крок 4. Створіть перший репозиторій.

Перш за все створіть папку C: \ svn-store \. Зайдіть в консоль (Пуск • Виконати, cmd) і напишіть:

svnadmin create c: / svn-store / my_project

Зверніть увагу на те, щоб Слеш були вказані саме так, на манер Unix. У разі успішного створення сховища ніяких помилок не з'явиться.

Відкрийте файл C: /svn-store/my_project/conf/svnserve.conf і зніміть коментарі в рядках:

anon-access = none
auth-access = write

Таким чином ви дозволяєте завантажувати / закачувати файли зі сховищ тільки зареєстрованим користувачам, а анонімні взагалі не отримають доступу до нього. Найчастіше здійснюється саме така політика.

Дані про користувачів лежать в файлі, вказаному в рядку password-db = passwd. Її також потрібно розкоментувати. Сам файл знаходиться в папці C: \ svn-store \ my_project \ conf, в ньому зберігаються логіни і паролі зареєстрованих користувачів.

Відкрийте цей файл будь-яким текстовим редактором і створіть в секції users облікові записи користувачів. Формат їх такий:

UserName1 = UserPassword1
UserName2 = UserPassword2

Крок 5. Заповніть репозиторій вихідними даними.

Щоб почати спільну роботу над проектом, необхідно провести імпорт для початкового наповнення вашого сховища. Створіть папку C: \ Repository, а в ній - три порожні папки: trunk, branches і tags. Зайдіть в папку C: \ Repository, клацніть правою кнопкою миші на вільному місці і в контекстному меню виберіть пункт TortoiseSVN • Import. ...

У вікні, в якості URL вкажіть svn: // YourCompanyName.no-ip.biz/my_project/, який ви визначили на другому кроці, плюс ім'я папки, де зберігається репозиторій.

Натисніть OK, введіть логін і пароль. Вкажіть дані, які ви внесли в файл C: \ svn-store \ my_project \ conf \ passwd. Але якщо вікно для введення логіна і пароля не з'явилося, повертайтеся до кроку 4, оскільки ви або не Розкоментувати рядки, або не вказали логіни / паролі.

Якщо ж все пройшло успішно, на екрані з'явиться вікно з інформацією про доданих каталогах.

Крок 6. Налаштуйте Subversion для роботи з Mantis.

Створіть тимчасову папку C: \ Temp. Виділіть папку правою кнопкою миші і в контекстному меню виберіть пункт SVN Checkout ...

Як значення параметра URL of repository введіть svn: // YourCompanyName.no-ip.biz/my_project/. В поле Checkout directory вкажіть папку C: \ Temp. Інші налаштування залиште без змін і натисніть OK. В результаті в папці C: \ Temp з'являться три папки, аналогічні створеним на попередньому кроці, і службова папка .svn. Не чіпайте її в майбутньому.

Знову натисніть правою кнопкою миші на C: \ Temp і виберіть пункт TortoiseSVN • Properties. У вікні виставите властивості так, як показано на рис. 2. Кожен раз, коли будете додавати нову властивість, обов'язково виставляйте галочку Apply property recursively.

Кожен раз, коли будете додавати нову властивість, обов'язково виставляйте галочку Apply property recursively

Знову натисніть правою кнопкою миші на C: \ Temp і виберіть SVN Commit ... У вікні, введіть коментар, відповідний помилку, і натисніть Оk. Програма TortoiseSVN видасть попередження про те, що ви не ввели номер помилки, але його можна проігнорувати.

Завантажте на сервер скрипт svncheckin.php. Він повинен знаходитися в папці core тієї папки, де встановлена ​​Mantis. В результаті шлях звернення до скрипту буде таким:

http: //URL-TO-MANTIS/core/svncheckin.php

В каталозі Mantis на сервері внесіть коригування в файл config_inc.php. Додайте рядки:

$ g_source_control_account = 'svn';
$ g_source_control_regexp = '/ \ b (?: bug | issue) \ s * [#] {0,1} (\ d +) \ b / i';

Тепер зайдіть в папку C: \ svn-store \ my_project \ hooks і скопіюйте в неї файли post-commit.bat, svn_checkin_shell.exe і svn_checkin_shell.ini.

Відкрийте svn_checkin_shell.ini і вкажіть там правильний шлях до svncheckin.php. Перевірте і інші шляхи в ini-файлі. Якщо ви чітко слідували запропонованим інструкціям, то нічого виправляти не доведеться. Якщо ж ви міняли якісь шляхи, то їх також треба буде підправити в файлі post-commit.bat.

bat

А зараз налаштуйте належним чином систему Mantis, яка встановлена ​​у вас на хостингу. Увійдіть в систему під обліковим записом адміністратора, створіть нового користувача і назвіть його SVN Bot. Визначте йому права розробника (Developer) і призначте на активні проекти. Всі автоматичні коментарі тепер будуть писатися від імені SVN Bot.

Також створіть в проекті нову задачу і назвіть її, наприклад, «Тестування зв'язки SVN + Mantis». Запам'ятайте номер завдання. Імпорт вихідну програму проекту в репозиторій. В папці з проектом клацніть правою кнопкою миші на вільному місці і виберіть пункт TortoiseSVN • Import ...

Як URL введіть svn: // YourCompanyName.no-ip.biz/my_project/trunk.

Зверніть увагу, що в кінці вказана папка trunk. Натисніть Оk.

Перенесіть дані в репозиторій. Якщо у вас великий проект і багато файлів, то цей процес швидше за все займе багато часу. Після того як побачите напис Completed at revision ..., можете зітхнути з полегшенням. Підготовчий етап робіт закінчився.

Чого вдалося досягти

Ви виконали всі необхідні дії, і у вас з'явився повноцінний інструмент для роботи з текстом програми. Щоденна діяльність розробника тепер зводиться до кількох операцій: оновити робочу копію (SVN Update), внести зміни в текст програми, відправити зроблені корективи в репозиторій (SVN Commit).

Детальний їх опис є в Інтернеті. В результаті керівник отримає схему організації роботи програмістів, яка буде виглядати наступним чином:

  1. Складається технічне завдання, розбивати на кілька підзадач, що заносяться в Mantis. Крім того, можна оцінити, скільки часу знадобиться для вирішення кожного завдання, і зберегти отриманий результат, наприклад, у файлі Excel.
  2. Для кожної нової програми створюється новий репозиторій Subversion (сховище для вихідних текстів). Крім того, в Subversion додаються облікові записи для керівника і розробника.
  3. Програміст створює у себе робочу копію сховища, в якій і працює в подальшому.
  4. Виконавши якусь підзадачу, програміст фіксує зміни (сommit) в репозиторії і закриває завдання в Mantis. Під час їх збереження електронний блок робить наступне:
  • в сховище вихідних текстів зберігаються всі зміни в исходниках, що стосуються тільки даної підзадачі;
  • в Mantis на сторінку, пов'язану з даною підзадачею, автоматично додається коментар, в якому зазначено, хто і коли здійснював фіксацію і в які саме файли були внесені зміни;
  • на поштову адресу керівника приходить повідомлення про зміни, зроблених з підзадачею в Mantis.

5. Отримавши листа, керівник може відразу ж оновити у себе робочу версію тексту програми, перевірити змінену частину програми (тобто пов'язану з конкретним завданням) і написати відповідний коментар чи заново відкрити в Mantis завдання з виявленою помилкою.

Такий спосіб організації забезпечує наступне:

  • над проектом можуть працювати багато фахівців одночасно;
  • тестеру не треба чекати нової версії, а програміст витрачає менше часу на те, щоб її додатково виправити (коли завдання відкривається заново), оскільки робить це по гарячих слідах;
  • реалізуються всі переваги від використання Subversion (резервне копіювання текстів програм, відстеження змін, можливість залучити до роботи кілька людей, які не мають доступу до вихідних текстів один одного і т.д.), а також створюється правильно і логічно сформований журнал змін. До речі, в більшості фірм програміст додає коментар під час фіксації змін так, як він хоче. У нас же, крім застосування самого коментаря, відбувається чітка прив'язка до подзадаче в Mantis, що навіть після декількох місяців допомагає зрозуміти, навіщо робилися зміни в текстах;
  • для кожної помилки автоматично створюється історія змін, пов'язана з нею, що дозволяє крок за кроком простежити, як вона виправлялася;
  • в коментарях, автоматично додає на сторінку підзадачі, присутній номер ревізії, завдяки чому можна прочитати докладний опис підзадачі (а не скупий коментар при фіксації змін) і усвідомлено переглянути текст програми.

Бажаю вам успіхів у роботі.

Subversion - це система управління версіями з відкритим вихідним кодом. Вона допомагає керувати файлами та каталогами в часі. Дерево файлів поміщається в центральне сховище, схоже на звичайний сервер файлів, але відрізняється від нього тим, що запам'ятовує кожну зміну, внесену в файл або каталог.

Якщо встановити Subversion на сервері у провайдера, то доступ до сховища можна буде отримувати 24 год на добу, причому з пристойною швидкістю. Але, на жаль, у такого підходу є свої недоліки. Наприклад, якщо ви розробляєте комерційний проект, то викрадення початкових кодів може завдати дуже відчутна втрата бізнесу. Щоб захиститися від крадіжки, потрібен не віртуальний хостинг, а як мінімум віртуальний сервер.

Ви виконали всі необхідні дії, і у вас з'явився повноцінний інструмент для роботи з текстом програми. Щоденна діяльність розробника тепер зводиться до кількох операцій: оновити робочу копію (SVN Update), внести зміни в текст програми, відправити зроблені корективи в репозиторій (SVN Commit).

Subversion - це система управління версіями з відкритим вихідним кодом. Вона допомагає керувати файлами та каталогами в часі. Дерево файлів поміщається в центральне сховище, схоже на звичайний сервер файлів, але відрізняється від нього тим, що запам'ятовує кожну зміну, внесену в файл або каталог. Це дозволяє відновити ранні версії даних і досліджувати історію їх зміни, внаслідок чого багато хто вважає систему управління версіями своєрідною «машиною часу»

Для установки системи на сервері якихось особливих навичок не потрібно. Сам процес займе від 20 хв до 1 год, а розібратися з Mantis можна за один день

Ви виконали всі необхідні дії, і у вас з'явився повноцінний інструмент для роботи з текстом програми. Щоденна діяльність розробника тепер зводиться до кількох операцій: оновити робочу копію (SVN Update), внести зміни в текст програми, відправити зроблені корективи в репозиторій (SVN Commit). Детальний їх опис є в Інтернеті

Com/?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: