summaryrefslogtreecommitdiff
path: root/Documentation/git-p4.txt
diff options
context:
space:
mode:
authorLuke Diamand <luke@diamand.org>2012-04-11 15:21:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-04-11 18:04:53 (GMT)
commit06804c76e8f7a61c7c9473decdf9b210d3238e9d (patch)
tree29aac73bce738cbd42fda4ae8c36b9894d1d86c4 /Documentation/git-p4.txt
parent7bbaf11f356c7ae731ed33e157f1fbe1a75aa6f0 (diff)
downloadgit-06804c76e8f7a61c7c9473decdf9b210d3238e9d.zip
git-06804c76e8f7a61c7c9473decdf9b210d3238e9d.tar.gz
git-06804c76e8f7a61c7c9473decdf9b210d3238e9d.tar.bz2
git p4: import/export of labels to/from p4
The existing label import code looks at each commit being imported, and then checks for labels at that commit. This doesn't work in the real world though because it will drop labels applied on changelists that have already been imported, a common pattern. This change adds a new --import-labels option. With this option, at the end of the sync, git p4 gets sets of labels in p4 and git, and then creates a git tag for each missing p4 label. This means that tags created on older changelists are still imported. Tags that could not be imported are added to an ignore list. The same sets of git and p4 tags and labels can also be used to derive a list of git tags to export to p4. This is enabled with --export-labels in 'git p4 submit'. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-p4.txt')
-rw-r--r--Documentation/git-p4.txt43
1 files changed, 38 insertions, 5 deletions
diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt
index 3fac413..612d51d 100644
--- a/Documentation/git-p4.txt
+++ b/Documentation/git-p4.txt
@@ -198,7 +198,11 @@ git repository:
--detect-labels::
Query p4 for labels associated with the depot paths, and add
- them as tags in git.
+ them as tags in git. Limited usefulness as only imports labels
+ associated with new changelists. Deprecated.
+
+--import-labels::
+ Import labels from p4 into git.
--import-local::
By default, p4 branches are stored in 'refs/remotes/p4/',
@@ -263,6 +267,16 @@ These options can be used to modify 'git p4 submit' behavior.
Re-author p4 changes before submitting to p4. This option
requires p4 admin privileges.
+--export-labels:
+ Export tags from git as p4 labels. Tags found in git are applied
+ to the perforce working directory.
+
+Rebase options
+~~~~~~~~~~~~~~
+These options can be used to modify 'git p4 rebase' behavior.
+
+--import-labels::
+ Import p4 labels.
DEPOT PATH SYNTAX
-----------------
@@ -427,6 +441,18 @@ git-p4.branchList::
enabled. Each entry should be a pair of branch names separated
by a colon (:). This example declares that both branchA and
branchB were created from main:
+
+git-p4.ignoredP4Labels::
+ List of p4 labels to ignore. This is built automatically as
+ unimportable labels are discovered.
+
+git-p4.importLabels::
+ Import p4 labels into git, as per --import-labels.
+
+git-p4.validLabelRegexp::
+ Only p4 labels matching this regular expression will be imported. The
+ default value is '[A-Z0-9_\-.]+$'.
+
-------------
git config git-p4.branchList main:branchA
git config --add git-p4.branchList main:branchB
@@ -481,10 +507,17 @@ git-p4.skipUserNameCheck::
submission regardless.
git-p4.attemptRCSCleanup:
- If enabled, 'git p4 submit' will attempt to cleanup RCS keywords
- ($Header$, etc). These would otherwise cause merge conflicts and prevent
- the submit going ahead. This option should be considered experimental at
- present.
+ If enabled, 'git p4 submit' will attempt to cleanup RCS keywords
+ ($Header$, etc). These would otherwise cause merge conflicts and prevent
+ the submit going ahead. This option should be considered experimental at
+ present.
+
+git-p4.exportLabels::
+ Export git tags to p4 labels, as per --export-labels.
+
+git-p4.validLabelRegexp::
+ Only p4 labels matching this regular expression will be exported. The
+ default value is '[A-Z0-9_\-.]+$'.
IMPLEMENTATION DETAILS
----------------------