Git

名称

git-cvsexportcommit - 将单个提交导出到 CVS 检出

概要

git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d <cvsroot>]
	[-w <cvs-workdir>] [-W] [-f] [-m <msgprefix>] [<parent-commit>] <commit-id>

描述

将 Git 中的提交导出到 CVS 检出,以便更轻松地将 Git 存储库中的补丁合并到 CVS 存储库。

使用 -w 开关指定 CVS 检出的名称,或从 CVS 工作副本的根目录执行。在后一种情况下,必须定义 GIT_DIR。请参阅下面的示例。

它尽力做到安全,它将检查 CVS 检出中的文件是否未更改且最新,并且默认情况下不会自动提交。

支持文件添加、删除和影响二进制文件的提交。

如果提交是合并提交,则必须告知git cvsexportcommit应针对哪个父级进行变更集。

选项

-c

如果补丁应用干净,则自动提交。如果任何块无法应用或存在其他问题,它将不会提交。

-p

在应用补丁时保持严格(偏执)。使用 --fuzz=0 调用补丁。

-a

添加作者信息。在消息中添加作者行和提交者(如果与作者不同)。

-d

设置要使用的备用 CVSROOT。这对应于 CVS -d 参数。通常用户不会想要设置它,除非以非对称的方式使用 CVS。

-f

即使文件不是最新的,也强制合并。

-P

强制父提交,即使它不是直接父提交。

-m

在提交消息前添加提供的前缀。这对补丁系列等很有用。

-u

在尝试导出之前从 CVS 存储库更新受影响的文件。

-k

在应用补丁之前,在工作 CVS 检出中反转 CVS 关键字扩展(例如,$Revision: 1.2.3.4$ 变为 $Revision$)。

-w

指定要用于导出的 CVS 检出的位置。如果当前目录在 Git 存储库内,则此选项在执行之前不需要设置 GIT_DIR。默认值为cvsexportcommit.cvsdir的值。

-W

告诉 cvsexportcommit 当前工作目录不仅是 Git 检出,而且还是 CVS 检出。因此,Git 将在继续之前将工作目录重置为父提交。

-v

详细模式。

配置

cvsexportcommit.cvsdir

要用于导出的 CVS 检出的默认位置。

示例

将一个补丁合并到 CVS 中
$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cvsexportcommit -v <commit-sha1>
$ cvs commit -F .msg <files>
将一个补丁合并到 CVS 中(-c 和 -w 选项)。工作目录在 Git 存储库内
	$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>
自动将待处理的补丁合并到 CVS 中 - 仅当您确切知道自己在做什么时
$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v

GIT

git[1] 套件的一部分

scroll-to-top