Linux: CVS/SVN - взлететь за 5 секунд
CVS и SVN - это системы контроля версий программного проекта.
Используя одну из этих систем, вы сможете вести историю ваших файлов с исходными текстами, а так же производить разработку проекта несколькими программистами не мешая друг другу.
В этом материале я не буду рассказывать о всех прелестях и возможностях CVS и SVN, так как это займет не один час и мы не вложимся в установленные 5 секунд.
Итак, что нам надо знать, что бы начать работать с CVS и/или SVN не вникая во все тонкости и нюансы?
Я буду приводить примеры сразу для обоих систем, а какую из них выбрать, решайте сами.
Пункт первый. Авторизация (только для CVS).
USER_LOGIN - ваш логин в CVS,
SERVER - айпи или домен сервера, на котором находится CVS
Пункт второй. Извлечение исходников.
Пункт третий. Работаем с кодом.
Поработали, переходим к пункту четвертому
Пункт четвертый. Фиксируем изменения.
После выполнения пунктов A, B, C теперь нужно зафиксировать все изменения/добавления/удаления на сервере
Для этого выполняем команду:
Пункт пятый. Несколько полезных cvs-команд.
посмотреть информацию и статус о выбранном файле.
Пункт шестой. Хочу знать больше!
Как видите, команды CVS и SVN практически идентичны, за исключением некоторых моментов.
Если данного экскурса вам показалось мало, то более подробно про работу с CVS вы можете прочитать здесь: CVS - Система Управления Параллельными Версиями
А для тех, кто использует SVN, я б посоветовал сходить сюда:
Начало работы с SVN
Wiki: Subversion
Управление версиями в Subversion
Экскурсия по Subversion: Простейший рабочий цикл
Используя одну из этих систем, вы сможете вести историю ваших файлов с исходными текстами, а так же производить разработку проекта несколькими программистами не мешая друг другу.
В этом материале я не буду рассказывать о всех прелестях и возможностях CVS и SVN, так как это займет не один час и мы не вложимся в установленные 5 секунд.
Итак, что нам надо знать, что бы начать работать с CVS и/или SVN не вникая во все тонкости и нюансы?
Я буду приводить примеры сразу для обоих систем, а какую из них выбрать, решайте сами.
Пункт первый. Авторизация (только для CVS).
Надеюсь вы уже перешли в нужную директорию на своём жестком диске,
в которой мы будем разворачивать исходники нашего проекта из CVS или SVN
в которой мы будем разворачивать исходники нашего проекта из 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.
Пункт третий. Работаем с кодом.
Поработали, переходим к пункту четвертому
Пункт четвертый. Фиксируем изменения.
- Если правили файл.
С начало убедимся в том, что никто не правил эти же файлы и, соответственно, не произойдет конфликта версий.
- 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
- CVS
- Если хотите добавить новый файл
- CVS
cvs add имя_файла
- SVN
svn add имя_файла
- CVS
- Если хотите удалить файл
- CVS
cvs remove имя_файла
- SVN
svn remove имя_файла
- CVS
После выполнения пунктов 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: Простейший рабочий цикл