Prefer git command over git-command.
[fast-export.git] / git-p4.txt
blob8bf0805c74fb46b4ab26da3d61842951111df7d6
1 git-p4 - 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 sync". Submitting changes from Git back to Perforce is
8 done using "git-p4 submit".
10 Importing
11 =========
13 The procedure is simple:
15   mkdir repo-git
16   cd repo-git
17   git init
18   git-p4 sync //path/in/your/perforce/depot
20 This will import the current head revision of the specified depot path into a
21 "p4" branch of your git repository. You can use the --branch=mybranch option
22 to use a different branch.
24 If you want to import the entire history of a given depot path just use
26   git-p4 sync //path/in/depot@all
28 To achieve optimal compression you may want to run 'git repack -a -d -f' after
29 a big import. This may take a while.
31 Support for Perforce integrations is still work in progress. Don't bother
32 trying it unless you want to hack on it :)
35 Incremental Imports
36 ===================
38 After an initial import you can easily synchronize your git repository with
39 newer changes from the Perforce depot by just calling
41   git-p4 sync
43 in your git repository.
45 It is recommended to run 'git repack -a -d -f' from time to time when using
46 incremental imports to optimally combine the individual git packs that each
47 incremental import creates through the use of git-fast-import.
49 Submitting
50 ==========
52 git-p4 has EXPERIMENTAL support for submitting changes from a git repository
53 back to a Perforce depot. This requires a Perforce checkout separate to your
54 git repository. All it should take is calling
56     git-p4 submit
58 in your git repository. This will attempt to locate the perforce checkout
59 corresponding to your imported depot path. By default the changes between your
60 current branch and the "p4" branch will be submitted. If there is no "p4"
61 branch the "origin" branch will be used as reference instead. You can override
62 this with the --origin=mysourcebranch option. The "origin" branch has to be the
63 branch populated with git-p4's sync operation.
65 After some preparations (which might take a while) git-p4 enters a loop where
66 it will first show a Perforce submit template and a diff of the change to
67 apply in the editor. After saving and exiting the editor you will be asked whether
68 you really want to submit the change or not.
70 If a submit fails you may have to "p4 resolve" and submit manually. You can
71 continue importing the remaining changes with
73   git-p4 submit --continue
75 After submitting you should sync your perforce import branch ("p4" or "origin")
76 from Perforce using git-p4's sync command.