The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Настройка и использование CVS-репозитория для разработки приложений (cvs )


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cvs,  (найти похожие документы)
From: Владимир В. Павлюк <vvp@dgs.ru.> Newsgroups: email Date: Mon, 18 Jan 2005 14:31:37 +0000 (UTC) Subject: Настройка и использование CVS-репозитория для разработки приложений Настройка и использование CVS-репозитория для разработки приложений CVS (concurrent versioning system, система контроля версий) является одним из удобнейших инструментов разработчика программных продуктов. Это могут сказать как программисты пользующиеся этим инструментом, так и знающие о нем понаслышке, и даже рядовые пользователи Unix-подобных систем, поскольку именно в Unix-подобных ОС система CVS получила самое широкое распространение. Одним из наиболее частых заблуждений является то, что для использования CVS необходим так называемый "сервер" CVS. На самом деле, хотя CVS может работать и в режиме сервера ("pserver", "kserver"), наиболее часто CVS используются с локальным репозиторием, или же репозиторием на удаленном сервере с доступом с помощью клиента SSH. Одной из причин по которой CVS редко используется в режиме "pserver" - это сниженная безопасность такого репозитория, поскольку и имена пользователей и пароли передаются в plain text с тривиальным шифрованием, которое способно обезопасить ваши учетные данные лишь от беглого взгляда соседа-злоумышленника. Режим "kserver" имеет более сложную систему авторизации. Для начала работы с CVS вам необходимо создать репозиторий (repository) - хранилище ваших будущих проектов. Нужно понимать, что то что называется хитрым и непонятным словом "репозиторий" - ничто иное как просто директория на локальном или удаленном компьютере. Итак, приступим к созданию CVS-репозитория. Настройка локального репозитория Если вы планируете использовать этот репозиторий единолично, достаточно будет создать в своей домашней директории папку (к примеру, пусть это будет папка .cvs): [vvp@vvp]$ mkdir ~/.cvs Директория создана. Для того чтобы сделать ее репозиторием, необходимо создать в ней субдиректорию CVSROOT: [vvp@vvp]$ mkdir ~/.cvs/CVSROOT Обобщая вышесказанное: в корневом каталоге каждого репозитория должна быть директория CVSROOT которая хранит специальные служебные файлы программы CVS. Теперь, я думаю, вам захочется создать в вашем новом репозитории какой-нибудь проект. Не спешите - сначала (конечно для удобства пользования) стоит задать несколько переменных окружения: 1) CVSROOT=~/.cvs - указывает на корень репозитория; 2) CVSEDITOR=vi (ваш любимый текстовый редактор) - редактор который будет использоваться для редактирования заметок при сохранении изменений проекта в репозиторий. Итак: [vvp@vvp]$ export CVSROOT=~/.cvs [vvp@vvp]$ export CVSEDITOR=vi Настройка удаленного репозитория Допустим, ваш основной репозиторий находится в домашней директории в каталоге .cvs на машине vvp. Вы на своей машине vvp-home хотите настроить CVS так чтобы он использовал ваш основной репозиторий. Чтобы избежать излишней мороки с паролями я пользуюсь авторизацией с помощью ключей. Для настройки такой авторизации вам нужно: 1) сгенерировать ключ; 2) указать этот ключ в списке авторизируемых на удаленной машине. Последовательность действий будет такова: [vvp@vvp-home]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/vvp/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/vvp/.ssh/id_rsa. Your public key has been saved in /home/vvp/.ssh/id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx vvp@vvp-home.dgs.ru Если вы уверены, что к вашему аккаунту больше никто не имеет доступа, можно оставить passphrase пустой, что существенно упрощает жизнь. Сгенерировав ключи, нужно один из них (публичный) поместить в файл authorized_keys расположенном в папке .ssh вашей домашней директории на удаленной машине. Это можно сделать множеством способов. К примеру так: [vvp@vvp-home]$ cd ~/.ssh [vvp@vvp-home]$ sftp vvp@vvp Connecting to vvp... Password: sftp> cd .ssh sftp> ls . .. id_rsa id_rsa.pub known_hosts sftp> lls authorized_keys id_rsa id_rsa.pub known_hosts sftp> put id_rsa.pub authorized_keys sftp> ls . .. authorized_keys id_rsa id_rsa.pub known_hosts sftp> quit [vvp@vvp-home]$ ssh vvp Если после этого удаленный хост не стал спрашивать у вас пароль, а просто пустил вас, значит все прошло удачно, и пришло время настроить собственно CVS. Указываем: export CVSROOT=:ext:vvp@vvp:/home/vvp/.cvs - ext в спецификации пути к репозиторию указывает что для входа на удаленную машину будет использована внешняя программа (в нашем случае это будет ssh). Для указания какую именно программу необходимо использовать служит переменная окружения CVS_RSH. Итак, export CVS_RSH=ssh. Использование репозитория, или курс молодого бойца Репозиторий настроен. Дело осталось за малым - создать проект. Для этого во-первых нужно перейти в каталог который впоследствии станет вашим рабочим каталогом. Во-вторых необходимо выполнить последовательность команд: [vvp@vvp]$ cvs checkout -l . cvs checkout: Updating . Затем создаем рабочую папку проекта: [vvp@vvp]$ mkdir hiworld И добавляем ее в репозиторий: [vvp@vvp]$ cvs add hiworld Directory /home/vvp/.cvs/hiworld added to the repository Проект готов! Вы можете добавлять в него новые файлы командой cvs add (например: cvs add hiworld/hiworld.c). Запомните, что файлы готового проекта НЕ добавляются в репозиторий немедленно. Почти все изменения в готовом проекте вступают в силу после команды сохранения изменений в репозиторий (cvs commit). Работая с cvs не забывайте, что вы должны находиться в корневом каталоге локального дерева исходников (в вашем "рабочем" каталоге). Итак: [vvp@vvp]$ pwd /home/vvp/work [vvp@vvp]$ ls CVS/ hiworld/ [vvp@vvp]$ touch hiworld/hiworld.c [vvp@vvp]$ cvs add hiworld/hiworld.c cvs add: scheduling file `hiworld/hiworld.c' for addition cvs add: use 'cvs commit' to add this file permanently [vvp@vvp]$ cvs commit hiworld Далее вам предлагается ввести заметки о изменениях внесенных в проект в текстовом редакторе. Строки начинающиеся с CVS: будут проигнорированы. Введя ваш комментарий и сохранив файл, выходим из редактора. RCS file: /home/vvp/.cvs/hiworld/hiworld.c,v done Checking in hiworld/hiworld.c; /home/vvp/.cvs/hiworld/hiworld.c,v <-- hiworld.c initial revision: 1.1 done В нашем дереве исходных кодов появился еще один файл с номером ревизии 1.1. Номер ревизии может используется для последующего отката изменений сделанных в файле. Теперь изменим файл hiworld.c: ---------------------------- #include <stdio.h> int main() { printf("Hello, world."); return 0; } ---------------------------- Проверив, компилируется ли код и работает ли получившаяся программа так как предполагалось, мы решаем что нас все устраивает и стоит сохранить текущее состояние программы в репозитории: [vvp@vvp]$ cvs commit hiworld.c (или просто, cvs commit, если мы хотим сохранить изменения сделанные во всех файлах всех субдиректорий текущей директории) Вам опять будет предложено ввести заметки о сохраняемых изменениях. Отредактировав и сохранив комментарий, выходим. Checking in hiworld.c; /home/vvp/.cvs/hiworld/hiworld.c,v <-- hiworld.c new revision: 1.2; previous revision: 1.1 done Итак, наш файл был сохранен с номером ревизии 1.2. Впоследствии можно будет откатить любой файл проекта, или весь проект к необходимой точке ревизии. Мы рассмотрели создание репозитория CVS и начало работы с ним. Для более подробного описания работы с CVS вы можете обратиться к многочисленной документации в Интернет. В частности полное руководство по работе с CVS находится по адресу http://alexm.here.ru/cvs-ru/html_chapter/cvs-ru_toc.html Владимир В. Павлюк

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, _Ale_, 15:41, 24/01/2005 [ответить] [смотреть все]
  • +/
    Могу ли я использовать CVS для обновления существующих портов в установленной OpenBSD 3.6?
    Если да, то каким образом?
     
     
  • 2, Di, 13:10, 27/01/2005 [^] [ответить] [смотреть все]
  • +/
    >Могу ли я использовать CVS для обновления существующих портов в установленной OpenBSD
    >3.6?
    >Если да, то каким образом?

    Что то вы не совсем по теме...
    http://openbsd.org/anoncvs.html

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor