Русский ▾ Topics ▾ Latest version ▾ git-cvsexportcommit last updated in 2.35.0

НАЗВАНИЕ

git-cvsexportcommit — экспорт одного коммита в рабочую копию CVS

ОБЗОР

git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d <cvsroot>]
	[-w <рабочий-каталог-cvs>] [-W] [-f] [-m <префикс-сообщения>] [<родитель-коммит>] <id-коммита>

ОПИСАНИЕ

Экспортирует коммит из Git в рабочую копию CVS, упрощая слияние патчей из репозитория Git в репозиторий CVS.

Укажите имя рабочей копии CVS с помощью переключателя -w или выполните её из корня рабочей копии CVS. В последнем случае GIT_DIR должен быть определён. См. примеры ниже.

Он делает всё возможное, чтобы быть безопасным: проверяет, что файлы в рабочей копии CVS не изменены и актуальны, и по умолчанию не выполняет автоматическую фиксацию.

Поддерживает добавление, удаление файлов и коммиты, затрагивающие двоичные файлы.

Если коммит является коммитом слияния, вы должны указать git cvsexportcommit, от какого родителя должен быть выполнен набор изменений.

ПАРАМЕТРЫ

-c

Выполнить фиксацию автоматически, если патч применился чисто. Фиксация не будет выполнена, если какие-либо части не применились или были другие проблемы.

-p

Быть педантичным (параноидальным) при применении патчей. Вызывает patch с --fuzz=0

-a

Добавляет информацию об авторстве. Добавляет строку Author и Committer (если отличается от Author) в сообщение.

-d

Устанавливает альтернативный CVSROOT для использования. Это соответствует параметру CVS -d. Обычно пользователи не хотят устанавливать это, за исключением случаев использования CVS асимметричным способом.

-f

Принудительное слияние, даже если файлы не актуальны.

-P

Принудительное указание родительского коммита, даже если он не является прямым родителем.

-m

Добавляет указанный префикс в начало сообщения коммита. Полезно для серий патчей и тому подобного.

-u

Обновить затронутые файлы из репозитория CVS перед попыткой экспорта.

-k

Обратное раскрытие ключевых слов CVS (например, $Revision: 1.2.3.4$ становится $Revision$) в рабочей копии CVS перед применением патча.

-w

Указывает местоположение рабочей копии CVS для использования при экспорте. Этот параметр не требует установки GIT_DIR перед выполнением, если текущий каталог находится в репозитории Git. По умолчанию используется значение cvsexportcommit.cvsdir.

-W

Сообщает cvsexportcommit, что текущий рабочий каталог является не только рабочей копией Git, но и рабочей копией CVS. Поэтому Git сбросит рабочий каталог на родительский коммит перед продолжением.

-v

Подробный.

КОНФИГУРАЦИЯ

cvsexportcommit.cvsdir

Расположение рабочей копии CVS по умолчанию для использования при экспорте.

ПРИМЕРЫ

Слияние одного патча в CVS
$ export GIT_DIR=~/проект/.git
$ cd ~/проект_рабочая_копия_cvs
$ git cvsexportcommit -v <sha1-коммита>
$ cvs commit -F .msg <файлы>
Слияние одного патча в CVS (параметры -c и -w). Рабочий каталог находится внутри репозитория Git
	$ git cvsexportcommit -v -c -w ~/проект_рабочая_копия_cvs <sha1-коммита>
Автоматическое слияние ожидающих патчей в CVS — только если вы действительно знаете, что делаете
$ export GIT_DIR=~/проект/.git
$ cd ~/проект_рабочая_копия_cvs
$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v

GIT

Является частью пакета git[1]