|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
TITLE: CVS для OS/2
DATE: 2001-08-13 01:21:44
AUTHOR: nickk
Если вы хотите серьезно заниматься программированием, то без CVS вам не обойтись.
Что есть CVS и зачем вам оно нужно?
Эти общие вопросы основательно и подробно освещены в документации к CVS, русскую
версию которой вы можете прочитать на http://www.cvs.ru. От себя могу добавить,
что если вы запутались в своих исходниках, тратите по полчаса в день на поиск
нужного компакта со старой, работающей, версией своей либы, да и просто часто
работаете с множеством файлов текстового формата, то вам сей инструмент может
очень пригодиться.
Как поставить CVS клиент в OS/2
Скачать CVS можно здесь.
CVS хранит все свои (точнее ваши) файле в репозитории, который может располагаться
либо на локальной машине, либо где-нибудь в глубине вашей tcp/ip сети. Во втором
случае требуется поставить CVS на локальной машине и на сервере, где хранится
репозиторий. CVS распространяется в виде одного единственного исполняемого файла,
который удобно положить в место, откуда вы потом сможете его запускать, например
куда-нибудь в %PATH%. OS/2 версия CVS требует наличия библиотек EMX.
Каждый CVS желает знать, где находится его репозиторий. Эту информацию можно
сообщать CVS'у посредством ключика '-d' в командной строке, либо значением
переменной окружения CVSROOT. Формат строки указания репозитория в локальном случае:
:local:путь/к/репозиторию. Сетевые репозитории задаются как:
:метод:пользователь@машина:/путь/к/репозиторию
CVS клиент может соединятся с сервером используя методы server (используется встроенный
rsh), ext (используется внешний rsh или любая другая аналогичная программа, совместимая
с rsh по ключам и задающаяся переменной окружения CVS_RSH, например ssh),
pserver (встроенная в CVS парольная аутентификация, CVS сервер запускается
посредством inetd), gserver (то же самое что и pserver, на аутентификация с
использованием GSSAPI), kserver (аналогично, аутентификация по протоколу kerberos).
OS/2 порт CVS поддерживает только ext, server и pserver методы. Методы server и
pserver рассматриваться здесь не будут из-за недостаточной (на взгляд автора статьи)
security. Настройка CVS для работы методом pserver подробно описана в документации.
Метод ext применим только в случае замены rsh на ssh. Для этого надо установить
переменную окружения CVS_RSH=ssh.
Но и это еще не все. Дело в том, что OS/2 порт CVS пропатчен на предмет добавления
OS/2 specific ключика '-b' при вызове rsh. Естественно, для вызова ssh этот ключик
не нужен. Поэтому CVS необходимо пересобрать. К счастью, это дело нетрудное.
Патчи для исходников можно взять здесь, уже собранный бинарник
здесь.
Как работать с CVS
Работать с CVS проще, чем устанавливать :). Подробное описание всех команд CVS с
примерами есть в русской документации. Поэтому здесь приведен лишь краткий список
простых действий, который, впрочем покрывает большинство потребностей при работе с CVS.
Во всех примерах предполагается, что CVSROOT не задан. Поэтому, если в команде отсутствует
ключ '-d', то это означает, что задавать репозиторий для этой команды не надо - CVS
сама его в состоянии определить в данном случае :)
Создание репозитория
Перед началом работы с репозиторием его необходимо создать. Осуществляется это с помощью
команды cvs -d <репозиторий> init. Можно таким образом создавать как локальные,
так и сетевые репозитории (если, конечно, хватает прав на удаленной машине).
Помещение проекта в репозиторий
Под проектом понимается любая совокупность файлов, объединенных вами по некоторым
признакам. Это может быть и один файл. Следующая команда помещает все содержимое
текущего каталога в репозиторий.
cvs -d <репозиторий> import -m "Сообщение для журнала" <каталог> <имя автора> <имя проекта>
где каталог - место в репозитории, куда будет помещен ваш проект.
Получение проекта из репозитория в текущий каталог
cvs -d <репозиторий> checkout <каталог>
После этой команды в текущем каталоге чудесным образом появятся все файлы проекта,
ранее помещенного в репозиторий командой import. При этом также появится каталог CVS,
в котором будет содержаться служебная информация, в том числе и
Фиксирование изменений в полученных из CVS исходниках
После редактирования исходников, вытащенных из CVS'а командой checkout, неплохо бы
сообщить CVS'у, что исходники изменились. Делается это с помощью
cvs update
Данная команда просматривает файлы из текущего каталога и сравнивает их с находящимися
в репозитории CVS. Местонахождение репозитория определяется содержимым служебного
каталога CVS, появляющегося после команды checkout.
Cvs update не помещает изменившиеся файлы обратно в репозиторий, а лишь ставит
отмечает их для последующей команды cvs commit, которая непосредственно апдейтит
содержимое репозитория.
Добавление файлов в проект
Команда
cvs add -m "Описание файла"
помечает указанные файлы и/или директории для помещения в репозиторий. Аналогично
update'у, cvs add не помещает их сама в репозиторий, а оставляет это commit'у.
Удаление файлов из проекта
Для удаления файлов из проекта необходимо сначала удалить эти файлы из текущего
каталога и затем воспользоваться командой
cvs remove,
которая проверит содержимое текущего каталога и пометит отсутствующие в нем файлы для
удаления в репозитории, производимого в ходе cvs commit. Cvs remove не может удалять
каталоги. Другой специализированной команды для удаления каталогов в cvs не предусмотрено.
Поэтому их проходится удалять либо вручную в репозитории cvs стандартными средствами операционной
системы. Либо пользоваться ключом -P для команд checkout, update, export, который удаляет все
пустые каталоги в текущей директории. Либо вовсе забить на пустые каталоги :)
Фиксирование изменений в репозитории
Чтобы зафиксировать все изменения после команд update, add, remove необходимо
выполнить команду
cvs commit -m "Сообщение для журнала"
которая и занимается непосредственно обновлением, добавлением, удалением файлов
из репозитория.
Освобождение текущего проекта
После того, как вы вытащили проект из репозитория, поработали с ним, зафиксировали
изменения, полезно выполнить
cvs release.
Эта команда проверяет, нет ли незафиксированных изменений и заносит запись в журнал CVS
об окончании работы с данным проектом. Однако, поскольку CVS не блокирует полученные
командой checkout файлы, не следит за ними иначе кроме как командами cvs update
и cvs commit, то cvs release не является обязательной к выполнению. Вы вполне можете ее
опускать не боясь за здоровье репозитория. Максимум, что вы можете потерять - изменения
внесенные в исходники проекта, сделанные после последней команды commit.
Логи
CVS может предоставлять отчет о событиях произошедших и происходящий в репозитории.
Для получения справки об истории работы с репозиторием в целом служит команда
cvs -d <репозиторий> history
Для получения истории изменений файлов в текущей проекте, полученном из репозитория
с помощью cvs checkout, используйте cvs log.
Также имеется возможность просмотреть статус файлов проекта, полученного из репозитория
командой cvs status. Она расскажет вам, в каком состоянии находятся файлы данного
проекта, работает ли кто-нибудь еще над ними в настоящий момент и тп.
Заключение
Вот, в общем-то, и все :) Многие другие важные возможности CVS остались нерасмотренными
здесь (например работа с разными ревизиями, получение diff'ов и т.д.), но это не
беда, коли есть документация на русском.
Работайте с CVS и ваши исходники будут мягкими и шелковистыми!
Автор статьи: nickk
Редактор: Eugene Gorbunoff
Попробуй программу:
|
Lucide - просмотр документов PDF/DjVu в eComStation.
|
Комментарии: Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
eComStation - реактивная система, удобная для работы. Вытесняющая многозадачность + поддержка многопроцессорности с 1994 года + Большинство программ используют многопоточность. |
|
|