|
Программа cvswork версия 3.3.0
Программа cvswork версия 3.3.0
Дмитрий Хмелёв
Проект начат 2003-08-27; Последние изменения 2003-10-21
1 Загрузка
2 Файл readme.koi
3 Использование и сводка опций
4 Развитие программы
5 Лицензия
1 Загрузка
Исходники: src/cvswork-3.3.0.tgz [20 Кб ]
2 Файл readme.koi
cvswork.pl --- экспорт проектов из CVS
ПОДДЕРЖИВАЕМЫЕ ОКРУЖЕНИЯ
http://www.gnu.org GNU/Linux
см. также http://www.gnu.org/gnu/linux-and-gnu.html
УСТАНОВКА
Установите следующие программы:
* CVS http://www.cvshome.org/
* Perl 5.8 http://www.perl.org/
Скопируйте cvswork.pl в директорию, находящуюся в одной из директорий,
перечисленных в системной переменной $PATH
КРАТКАЯ ИНСТРУКЦИЯ
Чтобы проэкпортировать проект, наберите
cvswork.pl projectname
БОЛЕЕ ПОДРОБНАЯ ИНСТРУКЦИЯ
Что такое CVS --- читайте по адресу http://www.cvshome.org/
Чтобы использовать cvswork.pl надо проделать следующие действия:
1. СОЗДАТЬ РЕПОЗИТОРИЙ (ДИРЕКТОРИЮ С ИСТОРИЕЙ ВСЕХ МОДИФИКАЦИЙ)
ДЛЯ ПРОЕКТОВ
cvs -d $HOME/cvsroot init
Я создаю репозиторий в домашней директории в поддиректории cvsroot и
придерживаюсь этого соглашения до конца инструкции. Вы можете его
создавать и в каком-нибудь другом удобном месте)
2. ДЛЯ КОРРЕКТНОЙ ОБРАБОТКИ БИНАРНЫХ ФАЙЛОВ ОТРЕДАКТИРОВАТЬ ФАЙЛ
cvswrappers, в проекте CVSROOT:
cvs -d $HOME/cvsroot checkout CVSROOT
xemacs CVSROOT/cvswrappers
cvs -d $HOME/cvsroot commit -m "Added binary file types in cvswrappers" CVSROOT/cvswrappers
cvs -d $HOME/cvsroot release -d CVSROOT
В сеансе редактирования xemacs в хвост файла cvswrappers стоит
добавить следующие строки (они имеются в моём файле):
*.gif -k 'b'
*.jpg -k 'b'
*.png -k 'b'
*.bin -k 'b'
*.ary -k 'b'
*.exe -k 'b'
*.xcf -k 'b'
*.zip -k 'b'
*.tar -k 'b'
*.gz -k 'b'
*.jar -k 'b'
*.3ds -k 'b'
*.pdf -k 'b'
*.ps -k 'b'
*.gz -k 'b'
*.model -k 'b'
*.markup -k 'b'
*.filter -k 'b'
<конец пункта 2>
3. ЗАГРУЗИТЕ И ИСПОЛЬЗУЙТЕ ПРОГРАММУ template
В КАЧЕСТВЕ ШАБЛОНА ВАШЕЙ ПРОГРАММЫ:
http://www.math.toronto.edu/dkhmelev/PROGS/misc/template-rus.html
4. ПОЛУЧЕННУЮ ПЕРВУЮ РАБОЧУЮ КОПИЮ ПРОГРАММЫ ЗАГРУЗИТЕ В РЕПОЗИТОРИЙ:
cd $HOME/project_name
cvs -d $HOME/cvsroot import RDIRECTORY VENDOR RELEASE
где
RDIRECTORY
Новая поддиректория $HOME/cvsroot, которая будет содержать файлы
текущей директории. Например, в качестве RDIRECTORY можно использовать
имя проекта project_name (к сожалению, необходимо ограничиться
английскими буквами). Теперь RDIRECTORY будет именем Вашего проекта
(модуля).
$HOME/project_name
Директория, содержащая файлы проекта.
VENDOR
Создатель проекта. Я пишу Dima_Khmelev.
RELEASE
Я всегда пишу initial_release.
5. УДАЛИТЕ ДИРЕКТОРИЮ project_name
(менее радикально --- переименуйте её в project_name.old):
rm -rf $HOME/project_name
или
mv $HOME/project_name $HOME/project_name.old
6. СОЗДАЙТЕ РАБОЧУЮ КОПИЮ ПРОГРАММЫ НА ДИСКЕ:
cvs -d $HOME/cvsroot checkout MODULE
MODULE
Название проекта/программы/модуля. То, что было RDIRECTORY в пункте 4.
Рабочая копия будет создана в поддиректории MODULE. Пожалуйста,
ограничьтесь созданием только *одной* рабочей копии. Иначе будут
происходить трудно объяснимые глюки.
Создавать рабочую копию можно в любой поддиректории. Я по умолчанию
предполагаю, что эта директория --- домашняя.
7а. ЕЖЕДНЕВНАЯ РАБОТА С ИСХОДНИКАМИ
Все нижеприведённые команды необходимо набирать находясь в
поддиректории MODULE с именем редактируемого проекта/программы.
# перейти в директорию с программой
cd $HOME/MODULE
# Добавить файл
cvs add textfile.c
cvs add -kb binaryfile.foo
где
binaryfile.foo бинарный файл, но расширение .foo отсутствует в файле
cvswrappers (см. пункт 1)
# Удалить файл (изменения произойдут после того, как будут
# синхронизированы [commit] с репозиторием). Причём опция -f
# удаляет файл с диска. Иначе надо значала удалить файл, и лишь затем
# набрать "cvs remove file"
cvs remove -f file.ext
# Сравнить рабочую копию с тем, что находится в репозитории
cvs -n update
# Синхронизовать рабочую копию с репозиторием
cvs commit
7б. ИСПОЛЬЗУЙТЕ PCL-CVS
Я привык пользоваться (и вам советую) пакетом PCL-CVS в
(X)Emacs. Наберите
info PCL-CVS
чтобы проверить наличие пакета и прочитайте инструкцию.
8. НАЗНАЧЕНИЕ МЕТОК ДЛЯ РАЗНЫХ ВЕРСИЙ КОДА
Метки очень удобны. Они позволяют пометить весь имеющийся код номером
версии. Формат версий, принятый в cvswork.pl таков: vNN_MM_LL, где
NN, MM, LL --- некоторые числа. Т.е. версия состоит из трёх компонент
NN
основная версия (изменяется при внесении очень существенных
изменений в программе, например, смене алгоритма)
MM
подверсия (изменяется при наличии изменений в общении с пользователем).
LL
изменения чисто косметические, либо исправляют мелкую ошибку, не
изменяя функциональности программы)
Я стараюсь пользоваться приведёнными выше соглашениями при назначении
коду версий.
# перейти в директорию с программой
cd $HOME/MODULE
# назначить версию
cvs tag -R v0_0_1 # -R помечает рекурсивно
# назначить новую версию (и т.д.)
cvs tag -R v0_0_2
# посмотреть назначенные версии у файлов
cvs status -v
# получить код с заданной версией (почти не нужно, при использовании cvswork.pl)
cd $HOME #уйти из директории проекта
cvs -d $HOME/cvsroot/ -q export -r v0_0_2 -d MODULE-0.0.2 MODULE
# вместо v0_0_2 и MODULE подставьте нужную версию и имя проекта
9. ЭКСПОРТИРОВАНИЕ ТЕКСТА ПРОГРАММЫ С ОПИСАНИЕМ
ПРИМЕР 1:
cvswork.pl cvswork --noopt-description --no-rus-help --exe=cvswork.pl
Программа экспортирует:
cvswork-eng.tex Описание на английском
cvswork-rus.tex Описание на русском
src/cvswork-1.9.0.tgz Исходный код в сжатом виде
При этом описание включает следующие файлы, которые обнаружились в
рабочей директории MODULE:
а) файл readme (readme.koi) --- в английском (русском) описании;
б) краткую справку по программе (по опции --help);
в) полное описание программы (если через опцию
--opt-description="--man" задана опция программы, выдающая
полное описание: например, если --opt-description="--man", то
программа будет запущена с опцией --man и вывод будет показан);
г) историю модификации программы --- даты, когда изменялся исходный
код;
д) файл LICENSE.txt (LICENSE.koi) --- в английском (русском) описании
На мой взгляд, по такому описанию можно составить точное мнение о
программе, не загружая, и не запуская её.
При этом, скрипт cvswork.pl откомпилирует версию кода командой make и
запустит её, чтобы извлечь информацию по пунктам б) и в). Таким
образом, будет автоматически проверено, что программа хотя бы запускается.
В экспортируемом исходном коде в каждый *.c и *.h файл будет
подставлено содержимое файла MODULE/HEAD --- так можно автоматически
вставлять свидетельство об авторстве программы и прочие заметки.
ПРИМЕР 2:
cvswork.pl maxlcp --opt-description="--man" --no-rus-help
Программа экспортирует:
maxlcp-eng.tex Описание на английском
maxlcp-rus.tex Описание на русском
src/maxlcp-0.0.8.tgz Исходный код в сжатом виде
mingw/maxlcp.zip Выполнимый файл под Win32
Для наличия выполнимого файла под Win32 необходимо иметь
makefile.mingw, в котором запускается кросс-компилятор. В качестве
примера, см. любой проект с
http://www.math.toronto.edu/dkhmelev/PROGS/index-rus.html
УСЛОВИЯ ИСПОЛЬЗОВАНИЯ
См. файл LICENSE.koi
3 Использование и сводка опций
user@computer$ ./cvswork.pl --help
Usage:
cvswork.pl [options] program_name
Options:
--exe <name> name of executable file of the project
-p <path> --path <path> path to executable file
--opt-help=<s=--help> set help option
--opt-description=<str> set description option
--opt-rus-help=<str> which is Russian help option
--opt-rus-description=<str> option for description in Russian (if exists)
--noopt-description=<str> no full description, just a short help screen
--mingw_makefile=<str> set MinGW makefile
-? --help brief help message
DESCRIPTION
This program makes TeX description for a program from CVS repository
using the output of the program itself. It constructs .tgz tarball in
src/ subdirectory, tries to cross-compile MinGW version (and puts
upx-compressed .exe file into mingw subdirectory).
Example of use:
cvswork.pl suffsort --opt-description="--man" --no-rus-help
4 Развитие программы
Даты изменения файлов программы:
2003-08-27
2003-09-28
2003-10-02
2003-10-21
5 Лицензия
cvswork.pl
Программа доступна с
http://www.math.toronto.edu/dkhmelev/PROGS/misc/cvswork-rus.html
Автор:
Дмитрий Викторович Хмелёв
dkhmelev((at))math.toronto.edu
[замените ((at)) на @, чтобы получить настоящий адрес - антиспам]
119 992, Москва, Ленинские горы, МГУ, 1 Гум. корп.,
Филологический факультет,
Лаборатория общей и компьютерной лексикологии и лексикографии.
УСЛОВИЯ ИСПОЛЬЗОВАНИЯ
Эта программа может свободно распространяться на условиях лицензии GNU
версии два или выше (см. прилагаемый файл COPYING с условиями
распространения).
Используя эту программу Вы соглашаетесь с условиями
использования.
ОТСУТСТВИЕ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ
ПОСКОЛЬКУ НАСТОЯЩАЯ ПРОГРАММА РАСПРОСТРАНЯЕТСЯ БЕСПЛАТНО, ГАРАНТИИ
НА НЕЕ НЕ ПРЕДОСТАВЛЯЮТСЯ В ТОЙ СТЕПЕНИ, В КАКОЙ ЭТО ДОПУСКАЕТСЯ
ПРИМЕНИМЫМ ПРАВОМ. НАСТОЯЩАЯ ПРОГРАММА ПОСТАВЛЯЕТСЯ НА УСЛОВИЯХ "КАК
ЕСТЬ". ЕСЛИ ИНОЕ НЕ УКАЗАНО В ПИСЬМЕННОЙ ФОРМЕ, АВТОР И/ИЛИ ИНОЙ
ПРАВООБЛАДАТЕЛЬ НЕ ПРИНИМАЕТ НА СЕБЯ НИКАКИХ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ,
КАК ЯВНО ВЫРАЖЕННЫХ, ТАК И ПОДРАЗУМЕВАЕМЫХ, В ОТНОШЕНИИ ПРОГРАММЫ, В
ТОМ ЧИСЛЕ ПОДРАЗУМЕВАЕМУЮ ГАРАНТИЮ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ И
ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ, А ТАКЖЕ ЛЮБЫЕ ИНЫЕ
ГАРАНТИИ. ВСЕ РИСКИ, СВЯЗАННЫЕ С КАЧЕСТВОМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ
ПРОГРАММЫ, НЕСЕТ ЛИЦЕНЗИАТ. В СЛУЧАЕ ЕСЛИ В ПРОГРАММЕ БУДУТ ОБНАРУЖЕНЫ
НЕДОСТАТКИ, ВСЕ РАСХОДЫ, СВЯЗАННЫЕ С ТЕХНИЧЕСКИМ ОБСЛУЖИВАНИЕМ,
РЕМОНТОМ ИЛИ ИСПРАВЛЕНИЕМ ПРОГРАММЫ, НЕСЕТ ЛИЦЕНЗИАТ.
ЕСЛИ ИНОЕ НЕ ПРЕДУСМОТРЕНО ПРИМЕНЯЕМЫМ ПРАВОМ ИЛИ НЕ СОГЛАСОВАНО
СТОРОНАМИ В ДОГОВОРЕ В ПИСЬМЕННОЙ ФОРМЕ, АВТОР И/ИЛИ ИНОЙ
ПРАВООБЛАДАТЕЛЬ, КОТОРЫЙ МОДИФИЦИРУЕТ И/ИЛИ РАСПРОСТРАНЯЕТ ПРОГРАММУ
НА УСЛОВИЯХ НАСТОЯЩЕЙ ЛИЦЕНЗИИ, НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ПЕРЕД
ЛИЦЕНЗИАТОМ ЗА УБЫТКИ, ВКЛЮЧАЯ ОБЩИЕ, РЕАЛЬНЫЕ, ПРЕДВИДИМЫЕ И
КОСВЕННЫЕ УБЫТКИ (В ТОМ ЧИСЛЕ УТРАТУ ИЛИ ИСКАЖЕНИЕ ИНФОРМАЦИИ, УБЫТКИ,
ПОНЕСЕННЫЕ ЛИЦЕНЗИАТОМ ИЛИ ТРЕТЬИМИ ЛИЦАМИ, НЕВОЗМОЖНОСТЬ РАБОТЫ
ПРОГРАММЫ С ЛЮБОЙ ДРУГОЙ ПРОГРАММОЙ И ИНЫЕ УБЫТКИ). АВТОР И/ИЛИ ИНОЙ
ПРАВООБЛАДАТЕЛЬ В СООТВЕТСТВИИ С НАСТОЯЩИМ ПУНКТОМ НЕ НЕСУТ
ОТВЕТСТВЕННОСТИ ДАЖЕ В ТОМ СЛУЧАЕ, ОНИ БЫЛИ ПРЕДУПРЕЖДЕНЫ О
ВОЗМОЖНОСТИ ВОЗНИКНОВЕНИЯ ТАКИХ УБЫТКОВ.
1 Загрузка
2 Файл readme.koi
3 Использование и сводка опций
4 Развитие программы
5 Лицензия
|