1git-p4 - Perforce <-> Git converter using git-fast-import 2 3Usage 4===== 5 6git-p4 supports two main modes: Importing from Perforce to a Git repository is 7done using "git-p4 sync". Submitting changes from Git back to Perforce is 8done using "git-p4 submit". 9 10Importing 11========= 12 13The procedure is simple: 14 15 mkdir repo-git 16 cd repo-git 17 git init 18 git-p4 sync //path/in/your/perforce/depot 19 20This 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 22to use a different branch. 23 24If you want to import the entire history of a given depot path just use 25 26 git-p4 sync //path/in/depot@all 27 28To achieve optimal compression you may want to run 'git repack -a -d -f' after 29a big import. This may take a while. 30 31Support for Perforce integrations is still work in progress. Don't bother 32trying it unless you want to hack on it :) 33 34 35Incremental Imports 36=================== 37 38After an initial import you can easily synchronize your git repository with 39newer changes from the Perforce depot by just calling 40 41 git-p4 sync 42 43in your git repository. 44 45It is recommended to run 'git repack -a -d -f' from time to time when using 46incremental imports to optimally combine the individual git packs that each 47incremental import creates through the use of git-fast-import. 48 49Submitting 50========== 51 52git-p4 has support for submitting changes from a git repository back to the 53Perforce depot. This requires a Perforce checkout separate to your git 54repository. To submit all changes that are in the current git branch but not in 55the "p4" branch (or "origin" if "p4" doesn't exist) simply call 56 57 git-p4 submit 58 59in your git repository. If you want to submit changes in a specific branch that 60is not your current git branch you can also pass that as an argument: 61 62 git-p4 submit mytopicbranch 63 64You can override the reference branch with the --origin=mysourcebranch option. 65 66If a submit fails you may have to "p4 resolve" and submit manually. You can 67continue importing the remaining changes with 68 69 git-p4 submit --continue 70 71After submitting you should sync your perforce import branch ("p4" or "origin") 72from Perforce using git-p4's sync command.