go to the first, previous, next, last section, table of contents.
@dircategory средства разработки * cvs-ru: (cvs-ru). система управления параллельными версиями управление версиями с помощью cvs для cvs 1.10.8 per cederqvist et al перевод на русский язык -- алексей махоткин
copyright (c) 1992, 1993 signum support ab permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the free software foundation. перевод того же самого уведомления на русский язык (перевод, в отличие от уведомления на английском языке, законной силы не имеет): разрешается создавать и распространять неизмененные копии этого руководства, при условии, что на всех копиях сохраняется уведомление о копирайте и это разрешение об использовании. разрешается копировать и распространять измененные версии этого руководства на условиях копирования без изменений, а также при условии, что вся порожденная работа распространяется с разрешением использования, идентичному этому разрешению. разрешается копировать и распространять переводы этого руководства на другой язык, с точно такими же условиями использования измененных версий, за исключением того, что это разрешение может быть переведено, а перевод должен быть одобрен фондом свободного программного обеспечения. @macro cvsver{ver} cvs \ver\ обзорэта глава предназначена для людей, никогда ранее не использовавших cvs и, возможно, никогда не использовавших управление версиями. если вы уже знакомы с cvs и просто хотите изучить конкретную возможность или вспомнить определенную команду, вы, вероятно, можете пропустить всю главу. что такое cvs?не помнящие прошлого обречены повторять его. -- джордж сантаяна cvs -- это система контроля версий. используя ее, вы можете вести историю ваших файлов с исходными текстами. например, иногда при определенном изменении в коде могут появиться ошибки, которые вы не сможете обнаружить в течение длительного времени. с помощью cvs вы легко можете обратиться к старым версиям, чтобы точно выяснить, что именно привело к ошибке. иногда это сильно помогает. конечно, вы можете хранить каждую версию каждого файла, которые вы создаете. это будет стоить вам невероятного объема дискового пространства. cvs хранит все версии файла в одном файле таким образом, что запоминаются лишь изменения между версиями. cvs также поможет, если вы являетесь членом группы разработчиков одного проекта. очень легко попортить чужие изменения, если только вы не крайне аккуратны. некоторые редакторы, такие как gnu emacs, стараются проследить, чтобы два человека не изменяли одновременно один и тот же файл. к сожалению, если кто-то использует другой редактор, эта предосторожность не сработает. cvs решает эту проблему, изолируя разработчиков друг от друга. каждый работает в своем собственном каталоге, а затем cvs объединяет законченные работы.
cvs появился из набора sh-скриптов, автором которых был dick
grune, опубликованных в группе новостей в апреле 1989 года brian berliner спроектировал и реализовал cvs. jeff polk позднее помог ему с поддержкой модулей и ветвей поставщика. получить cvs можно разными способами, включая свободное получение в интернете. за информацией о получении и по другим вопросам обращайтесь на: http://www.cyclic.com/ http://www.loria.fr/~molli/cvs-index.php
имеется список рассылки
если вы предпочитаете группы новостей usenet, найдите
можно также подписаться на список рассылки чем не является cvs?cvs сделает для вас множество вещей, но не пытается быть всем сразу.
пример работы с cvsв качестве введения в cvs мы приведем здесь типичную сессию работы с cvs. первое, что необходимо понимать, это то, что cvs хранит все файлы в централизованном репозитории (see section репозиторий); в этой главе предполагается, что репозиторий настроен. предположим, что вы работаете над простым компилятором. исходный текст состоит из нескольких c-файлов и `makefile''а. компилятор называется `tc' (тривиальный компилятор), а репозиторий настроен так, что имеется модуль `tc'. получение исходного кодасначала вам надо получить рабочую копию исходного кода для `tc'. используйте команду $ cvs checkout tc при этом будет создан каталог `tc', в который будут помещены все файлы с исходными текстами. $ cd tc $ ls cvs makefile backend.c driver.c frontend.c parser.c каталог `cvs' используется для внутренних нужд cvs. обычно вам не следует редактировать или удалять файлы, находящиеся в этом каталоге. вы запускаете свой любимый редактор, работаете над `backend.c' и через пару часов вы добавили фазу оптимизации в компилятор. замечание для пользователей rcs и rccs: не требуется блокировать файлы, которые вы желаете отредактировать. see section несколько разработчиков, где приведены дополнительные объяснения. фиксирование измененийпосле того, как вы проверили, что компилятор все еще компилируется, вы решили создать новую версию `backend.c'. при этом в репозитории появится ваш новый `backend.c', который станет доступным всем, использующим этот репозиторий. $ cvs commit backend.c cvs запускает редактор, чтобы позволить вам ввести журнальную запись. вы набираете "добавлена фаза оптимизации", сохраняете временный файл и выходите из редактора.
переменная окружения
вдобавок, cvs проверяет переменную окружения
когда cvs запускает редактор, в шаблоне для ввода журнальной
записи перечислены измененные файлы. для клиента cvs этот
список создается путём сравнения времени изменения файла с его
временем изменения, когда он был получен или обновлен. таким
образом, если время изменения файла изменилось, а его содержимое
осталось прежним, он будет считаться измененным. проще всего в
данном случае не обращать на это внимания -- в процессе
фиксирования изменений cvs определит, что содержимое файла
не изменилось и поведет себя должным образом. следующая команда
если вы хотите избежать запуска редактора, укажите журнальную запись в командной строке, используя флаг `-m', например: $ cvs commit -m "добавлена фаза оптимизации" backend.c уборка за собой
перед тем, как перейти к другим занятиям, вы решаете удалить
рабочую копию $ cd .. $ rm -r tc
но лучшим способом будет использование команды $ cd .. $ cvs release -d tc m driver.c ? tc you have [1] altered files in this repository. are you sure you want to release (and delete) directory `tc': n ** `release' aborted by user choice.
команда
если вы используете команду
в вышеприведенном примере команда `m driver.c' -- более серьезное сообщение. оно означает, что файл `driver.c' был изменен с момента последнего получения из репозитория.
команда
вы решаете перестраховаться и отвечаете n ret, когда
просмотр измененийвы не помните, что изменяли файл `driver.c', поэтому хотите посмотреть, что именно случилось с ним. $ cd tc $ cvs diff driver.c эта команда сравнивает версию файла `driver.c', находящейся в репозитории, с вашей рабочей копией. когда вы рассматриваете изменения, вы вспоминаете, что добавили аргумент командной строки, разрешающий фазу оптимизации. вы фиксируете это изменение и высвобождаете модуль. $ cvs commit -m "добавлена фаза оптимизации" driver.c checking in driver.c; /usr/local/cvsroot/tc/driver.c,v <-- driver.c new revision: 1.2; previous revision: 1.1 done $ cd .. $ cvs release -d tc ? tc you have [0] altered files in this repository. are you sure you want to release (and delete) directory `tc': y go to the first, previous, next, last section, table of contents. |