English ▾ Themen ▾ Neueste Version ▾ git-cvsexportcommit zuletzt aktualisiert in 2.35.0

NAME

git-cvsexportcommit - Exportiert einen einzelnen Commit in ein CVS-Checkout

SYNOPSIS

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

BESCHREIBUNG

Exportiert einen Commit aus Git in ein CVS-Checkout, was das Zusammenführen von Patches aus einem Git-Repository in ein CVS-Repository erleichtert.

Geben Sie den Namen eines CVS-Checkouts mit der Option -w an oder führen Sie es vom Stammverzeichnis der CVS-Arbeitskopie aus. Im letzteren Fall muss GIT_DIR definiert sein. Siehe Beispiele unten.

Es wird sein Bestes getan, um die sichere Methode zu wählen. Es wird überprüft, ob die Dateien im CVS-Checkout unverändert und aktuell sind. Standardmäßig wird kein automatisches Commit durchgeführt.

Unterstützt das Hinzufügen, Entfernen und Committen von Dateien, die Binärdateien betreffen.

Wenn der Commit ein Merge-Commit ist, müssen Sie git cvsexportcommit mitteilen, gegen welchen Elternteil der Änderungssatz erfolgen soll.

OPTIONEN

-c

Commit automatisch, wenn der Patch sauber angewendet wurde. Es wird nicht committet, wenn Hunks fehlschlagen oder andere Probleme auftreten.

-p

Seien Sie pedantisch (paranoid) beim Anwenden von Patches. Ruft patch mit --fuzz=0 auf.

-a

Fügt Autorenschaftsinformationen hinzu. Fügt die Zeile "Author" und "Committer" (falls abweichend von Author) zur Nachricht hinzu.

-d

Setzt eine alternative CVSROOT, die verwendet werden soll. Dies entspricht dem CVS -d Parameter. Normalerweise möchten Benutzer dies nicht setzen, es sei denn, sie verwenden CVS auf asymmetrische Weise.

-f

Erzwingt den Merge, auch wenn die Dateien nicht auf dem neuesten Stand sind.

-P

Erzwingt den Eltern-Commit, auch wenn es kein direkter Elternteil ist.

-m

Stellt der Commit-Nachricht das bereitgestellte Präfix voran. Nützlich für Patch-Serien und ähnliches.

-u

Aktualisiert betroffene Dateien aus dem CVS-Repository, bevor der Export versucht wird.

-k

Kehrt die CVS-Schlüsselwortexpansion um (z.B. $Revision: 1.2.3.4$ wird zu $Revision$) im Arbeits-CVS-Checkout, bevor der Patch angewendet wird.

-w

Gibt den Speicherort des CVS-Checkouts an, das für den Export verwendet werden soll. Diese Option erfordert nicht, dass GIT_DIR vor der Ausführung gesetzt ist, wenn sich das aktuelle Verzeichnis innerhalb eines Git-Repositorys befindet. Der Standardwert ist der Wert von cvsexportcommit.cvsdir.

-W

Teilt cvsexportcommit mit, dass das aktuelle Arbeitsverzeichnis nicht nur ein Git-Checkout, sondern auch das CVS-Checkout ist. Daher setzt Git das Arbeitsverzeichnis vor dem Fortfahren auf den Eltern-Commit zurück.

-v

Ausführlich.

KONFIGURATION

cvsexportcommit.cvsdir

Der Standard-Speicherort des CVS-Checkouts, das für den Export verwendet werden soll.

BEISPIELE

Einen Patch in CVS mergen
$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cvsexportcommit -v <commit-sha1>
$ cvs commit -F .msg <files>
Einen Patch in CVS mergen (-c und -w Optionen). Das Arbeitsverzeichnis befindet sich innerhalb des Git-Repo.
	$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>
Ausstehende Patches automatisch in CVS mergen – nur wenn Sie wirklich wissen, was Sie tun.
$ 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

Teil der git[1] Suite