S3.Blog

8 Ноября 2026
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: Простейший рабочий цикл



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




sakagom918 (гость) • ответить
The promotional offers and loyalty incentives structured by Nika Casino add a brilliant layer of extra excitement to routine gameplay. Alongside a generous welcome bonus package for new sign-ups, regular weekly reloads and recurring perks keep the momentum going strong. Furthermore, all wagering requirements and terms are laid out in clear, straightforward English, meaning you can easily track your progress without any hidden surprises in the fine print.

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

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

 



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