НАЗВАНИЕ
rcsmerge - объединение изменений, сделанных в разных версиях
файла в системе отслеживания версий RCS
СИНТАКСИС
rcsmerge [флаги] имя-файла ...
ОПИСАНИЕ
Команда rcsmerge производит объединение изменений, сделанных с разными версиями одного файла и помещает их в новый рабочий файл. С формальной точки зрения, над рабочим файлом совершаются изменения, ведущие от первой указанной в командной строке версии ко второй (см. флаг -j команды co ).
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. ci(1) .
Должны быть явно заданы одна или две версии с одним из описанных ниже флагов, обычно, -r . Если задана одна версия, то в качестве второй берется последняя ветвь на ветви, заданной по умолчанию (обычно -- главной). Версия может быть задана в явном виде, численно, или в символьном виде.
Команда rcsmerge сообщает о наложении изменений, сделанных с одними строками, разделяя накладывающиеся участки, как объяснено в merge(1) .
ФЛАГИ
-A | Если команда diff3(1) на вашем компьютере поддерживает флаг -A , то сообщения выдаются именно в этом стиле. В итоге, применение изменений ведущих от первой версии ко второй, к рабочему файлу, порождая при этом самую подробную информацию. Утилита diff3 из соответствующего пакета GNU этот флаг поддерживает, поэтому имеет смысл указать при построении RCS на вашем компьютере, что используется именно эта версия утилиты. |
---|---|
-E, -e | Эти флаги задают стиль сообщений о наложении изменений, менее подробный, чем -A. См. diff3(1) . По умолчанию используется -E. Флаг -e не порождает никаких предупреждений. |
-ksubst | Устанавливает правила подстановки ключевых символов при извлечении для сравнения. Возможные правила subst описаны в co(1). Явное задание флага -k подавит заданное по умолчанию значение. Например, -kk -r1.1 -r1.2 игнорирует разницу связанную с разными значениями ключевых символов в версиях 1.1 to 1.2. Если задан флаг -kb , команда rcsmerge не будет работать. |
-p[rev] | Результат записывается не в рабочий файл, а в стандартный вывод. |
-q[rev] | Все сообщения подавляются. Используется в фоновом режиме. |
-r[rev] | Изменения отсчитывать от версии rev . Если rev не задан, то берется последняя версия ветви, используемой по умолчанию. |
-T | Присутствует исключительно для совместимости с другими командами RCS. |
-V | Посылает номер версии RCS на стандартный вывод. |
-Vn | Имитирует поведение версии n комплекса программ RCS . См. co(1) . |
-xsuffixes | Задает суффикс, добавляемый к имени архивного файла. См. ci(1) . |
-zzone | Задает формат даты и часовой пояс при подстановке ключевых слов в маркеры. См. co(1) . |
ПРИМЕРЫ
Предположим, предыдущий выпуск программы задавался версией 2.8 файла f.c . Предположим далее, что создав версию 3.4 , Вы получаете сообщение об ошибке содержащейся в программе, и исправления, внесенные в версию 2.8 от третьего лица. Для того, чтобы собрать исправления к версии 2.8 и те изменения, которые Вы сделали между версиями 2.8 и 3.4 , поместите исправленную весию 2.8 в файл f.c выполните
rcsmerge -p -r2.8 -r3.4 f.c > f.merged.cи проверьте файл f.merged.c . Другой способ объединения изменений состоит в том, чтобы занести исправления к версии 2.8 в архивный файл как версию 2.8.1.1 и применить co -j :
ci -r2.8.1.1 f.c co -r3.4 -j2.8:2.8.1.1 f.cВ следующем примере в рабочем файле f.c , скажем, версии 3.4 , отменяются все изменения сделанные между версиями 2.4 и 2.8 этого файла:
rcsmerge -r2.8 -r2.4 f.cОбратите внимание на порядок аргументов и на то, что рабочий файл затрется.
ПЕРЕМЕННЫЕ СРЕДЫ
set LOGNAME=имя-пользователя
СООБЩЕНИЯ
Возвращает операционной системе 0 если нет накладок, 1 если есть небольшие проблемы, с которыми программа справляется по ее мнению, и 2 если накладки слишком серьезны для работы.
СМ. ТАКЖЕ
ci(1), co(1), ident(1), merge(1), rcs(1), rcsdiff(1),
rcsintro(1), rlog(1), rcsfile(5)
Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.
Copyright (C) Walter F. Tichy, Paul Eggert.