| 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 |