Some docs :)
[fast-export.git] / git-p4.txt
blobb87efc6af9ebdaa7507fa2cab98cfb8dbffbc81f
1 git-p4.py - Perforce <-> Git converter using git-fast-import
3 Usage
4 =====
6 git-p4 supports two main modes: Importing from Perforce to a Git repository is
7 done using "git-p4.py sync". Submitting changes from Git back to Perforce is
8 done using "git-p4.py submit".
10 Importing
11 =========
13 The procedure is simple:
15   mkdir repo-git
16   cd repo-git
17   git init
18   git-p4.py sync //path/in/your/perforce/depot
20 This will import the current head revision of the specified depot path into the
21 master branch of your git repository. You can use the --branch=mybranch option
22 to let git-p4 import from Perforce into a git branch of your choice.
24 If you want to import the entire history of a given depot path just use
26   git-p4.py sync //path/in/depot@all
29 Support for Perforce integrations is still work in progress. Don't bother
30 trying it unless you want to hack on it :)
33 Incremental Imports
34 ===================
36 After an initial import you can easily synchronize your git repository with
37 newer changes from the Perforce depot by just calling
39   git-p4.p4 sync
41 in your git repository. git-p4 stores the depot path of the original import in
42 the .git/config file and remembers the last imported p4 revision as a git tag
43 called p4/<changenum> .
45 Submitting
46 ==========
48 git-p4 has EXPERIMENTAL support for submitting changes from a git repository
49 back to a Perforce depot. This requires a Perforce checkout separate to your
50 git repository. This is the basic procedure:
52     cd path/to/your/perforce/checkout
53     git-p4.py submit --git-dir=/path/to/your/git/repository
55 This will create a temporary git branch, use git-rev-list to find out which git
56 commits are in your current branch but not in the "origin" branch. You can
57 override the name of the "origin" branch by using the --origin=mybranch option.
58 The "origin" branch has to be the branch populated with git-p4's sync
59 operation.
61 After some preparations (which might take a while) git-p4 enters a loop where
62 it will first show a Perforce submit template and a diff of the change to
63 apply.  After quitting the pager with 'q' git-p4 asks for confirmation for
64 issuing the "p4 submit" command and also gives you the option of editing the
65 submit template using "e".
67 If a submit fails you may have to "p4 resolve" and submit manually. You can
68 continue importing the remaining changes with
70   git-p4.py submit --git-dir=/path/to/your/git/repository --continue
72 After submitting you should sync your origin branch from Perforce using
73 git-p4's sync command.