S3.Blog

21 Декабря 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Linux: CVS/SVN - взлететь за 5 секунд

Дата последнего изменения: 24 Января 2011
Метки статьи: Документация, Linux, Shell/Bash
CVS и SVN - это системы контроля версий программного проекта.
Используя одну из этих систем, вы сможете вести историю ваших файлов с исходными текстами, а так же производить разработку проекта несколькими программистами не мешая друг другу.

В этом материале я не буду рассказывать о всех прелестях и возможностях CVS и SVN, так как это займет не один час и мы не вложимся в установленные 5 секунд.

 

Итак, что нам надо знать, что бы начать работать с CVS и/или SVN не вникая во все тонкости и нюансы?
Я буду приводить примеры сразу для обоих систем, а какую из них выбрать, решайте сами.


Пункт первый. Авторизация (только для CVS).
Надеюсь вы уже перешли в нужную директорию на своём жестком диске,
в которой мы будем разворачивать исходники нашего проекта из CVS или SVN

cvs -d :pserver:USER_LOGIN@SERVER:/home/cvs/CVS login
где,
USER_LOGIN - ваш логин в CVS,
SERVER - айпи или домен сервера, на котором находится CVS


Пункт второй. Извлечение исходников.

  • CVS
    cvs -d :pserver:USER_LOGIN@SERVER:/home/cvs/CVS checkout ИМЯ_ПРОЕКТА
    
    В дальнейшем, при работе с этим проектом, длинную строчку "-d :pserver:USER_LOGIN@SERVER:/home/cvs/CVS" можно опустить, так как внутри каждой директории проекта будет находиться папка CVS, в которой есть информация с какого именно репозитория были взяты файлы.
     
  • SVN
    svn checkout http://example.com/svn/projectname/some/path/html/ .
    Если это твой первый checkout, то скорее всего тебе будет предложено указать имя пользователя и пароль для доступа к репозиторию, а так же будет предложено сохранить эти данные на твоём компе, чтобы не вводить их каждый раз. Соглашайся. А логин  и пароль спрашивай у администратора svn.
     
После выполнения команды checkout на вашем диске появится папка с названием ИМЯ_ПРОЕКТА, в которой будут находиться только что полученные исходники из CVS или SVN


Пункт третий. Работаем с кодом.

Поработали, переходим к пункту четвертому


Пункт четвертый. Фиксируем изменения.

  1. Если правили файл.
    С начало убедимся в том, что никто не правил эти же файлы и, соответственно, не произойдет конфликта версий.

    • CVS
      cvs -q update -d имя_файла
    • SVN
      svn update имя_файла
      svn status имя_файла
      
    "имя_файла" - опция. Если его не задавать, то update будет выполнен во всей текущей и вложенных директориях
    после выполнения этой команды мы получим список файлов, которые были изменены вами или другими разработчиками.
    вывод на экран будет примерно такой:
    M file1.txt
    C file2.txt
    A file3.txt
    R file4.txt (для CVS)
    D file4.txt (для SVN)

    где, M/C/A/R/D - это атрибуты, которые указывают на:
    M - этот же файл был изменен другим разработчиком. Изменения объединены. Конфликтов нет.
    С - этот же файл был изменен другим разработчиком. Изменения объединены. Есть конфликты.
          в таком случае открываем на редактирование file2.txt, ищем строки <<<<<<< и >>>>>>>.
          устраняем спорные места и делаем update еще раз.
    A - это новый файл, который вы хотите добавить в CVS или SVN
    R - этот файл вы желаете удалить из CVS
    D - этот файл вы желаете удалить из SVN
     
  2. Если хотите добавить новый файл
    • CVS
      cvs add имя_файла
    • SVN
      svn add имя_файла
  3. Если хотите удалить файл

    • CVS
      cvs remove имя_файла
    • SVN
      svn remove имя_файла

После выполнения пунктов A, B, C теперь нужно зафиксировать все изменения/добавления/удаления на сервере
Для этого выполняем команду:
  • CVS
    cvs -q commit -m 'комментарий к изменениям' имя_файла
  • SVN
    svn -q commit -m 'комментарий к изменениям' имя_файла

"имя_файла" - опция. Если его не задавать, то commit  будет выполнен во всей текущей и вложенных директориях



Пункт пятый. Несколько полезных cvs-команд.


посмотреть информацию и статус о выбранном файле.
cvs -q status имя_файла
svn info имя_файла
сравнить локальный файл и его версию, находящуюся в CVS или SVN
cvs -q diff имя_файла
svn diff имя_файла
сравнить версии файла, находящиеся в CVS
cvs -q diff -r номер_версии_1  -r номер_версии_2 имя_файла
создать новый проект в CVS на локальном компьютере
cvs import -m "комментарий" имя_проекта  yoyo start
создать новый проект в CVS на удаленном сервере
cvs -d :pserver:USER_LOGIN@SERVER:/home/cvs/CVS import -m "комментарий" имя_проекта yoyo start


Пункт шестой. Хочу знать больше!
Как видите, команды CVS и SVN практически идентичны, за исключением некоторых моментов.
Если данного экскурса вам показалось мало, то более подробно про работу с CVS вы можете прочитать здесь: CVS - Система Управления Параллельными Версиями
А для тех, кто использует SVN, я б посоветовал сходить сюда:
Начало работы с SVN
Wiki: Subversion
Управление версиями в Subversion
Экскурсия по Subversion: Простейший рабочий цикл



Похожие материалы:




 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.