| git-cvsexportcommit(1) |
| ====================== |
| |
| NAME |
| ---- |
| git-cvsexportcommit - Export a single commit to a CVS checkout |
| |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| 'git cvsexportcommit' [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot] |
| [-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID |
| |
| |
| DESCRIPTION |
| ----------- |
| Exports a commit from GIT to a CVS checkout, making it easier |
| to merge patches from a git repository into a CVS repository. |
| |
| Specify the name of a CVS checkout using the -w switch or execute it |
| from the root of the CVS working copy. In the latter case GIT_DIR must |
| be defined. See examples below. |
| |
| It does its best to do the safe thing, it will check that the files are |
| unchanged and up to date in the CVS checkout, and it will not autocommit |
| by default. |
| |
| Supports file additions, removals, and commits that affect binary files. |
| |
| If the commit is a merge commit, you must tell 'git cvsexportcommit' what |
| parent the changeset should be done against. |
| |
| OPTIONS |
| ------- |
| |
| -c:: |
| Commit automatically if the patch applied cleanly. It will not |
| commit if any hunks fail to apply or there were other problems. |
| |
| -p:: |
| Be pedantic (paranoid) when applying patches. Invokes patch with |
| --fuzz=0 |
| |
| -a:: |
| Add authorship information. Adds Author line, and Committer (if |
| different from Author) to the message. |
| |
| -d:: |
| Set an alternative CVSROOT to use. This corresponds to the CVS |
| -d parameter. Usually users will not want to set this, except |
| if using CVS in an asymmetric fashion. |
| |
| -f:: |
| Force the merge even if the files are not up to date. |
| |
| -P:: |
| Force the parent commit, even if it is not a direct parent. |
| |
| -m:: |
| Prepend the commit message with the provided prefix. |
| Useful for patch series and the like. |
| |
| -u:: |
| Update affected files from CVS repository before attempting export. |
| |
| -k:: |
| Reverse CVS keyword expansion (e.g. $Revision: 1.2.3.4$ |
| becomes $Revision$) in working CVS checkout before applying patch. |
| |
| -w:: |
| Specify the location of the CVS checkout to use for the export. This |
| option does not require GIT_DIR to be set before execution if the |
| current directory is within a git repository. The default is the |
| value of 'cvsexportcommit.cvsdir'. |
| |
| -W:: |
| Tell cvsexportcommit that the current working directory is not only |
| a Git checkout, but also the CVS checkout. Therefore, Git will |
| reset the working directory to the parent commit before proceeding. |
| |
| -v:: |
| Verbose. |
| |
| CONFIGURATION |
| ------------- |
| cvsexportcommit.cvsdir:: |
| The default location of the CVS checkout to use for the export. |
| |
| EXAMPLES |
| -------- |
| |
| Merge one patch into CVS:: |
| + |
| ------------ |
| $ export GIT_DIR=~/project/.git |
| $ cd ~/project_cvs_checkout |
| $ git cvsexportcommit -v <commit-sha1> |
| $ cvs commit -F .msg <files> |
| ------------ |
| |
| Merge one patch into CVS (-c and -w options). The working directory is within the Git Repo:: |
| + |
| ------------ |
| $ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1> |
| ------------ |
| |
| Merge pending patches into CVS automatically -- only if you really know what you are doing:: |
| + |
| ------------ |
| $ 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 |
| --- |
| Part of the linkgit:git[1] suite |