contrib / fast-import / git-p4.txton commit Added support for mapping p4 labels to git tags (1f4ba1c)
   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 EXPERIMENTAL support for submitting changes from a git repository
  53back to a Perforce depot. This requires a Perforce checkout separate to your
  54git repository. All it should take is calling
  55
  56    git-p4 submit
  57
  58in your git repository. This will attempt to locate the perforce checkout
  59corresponding to your imported depot path. By default the changes between your
  60current branch and the "p4" branch will be submitted. If there is no "p4"
  61branch the "origin" branch will be used as reference instead. You can override
  62this with the --origin=mysourcebranch option. The "origin" branch has to be the
  63branch populated with git-p4's sync operation.
  64
  65After some preparations (which might take a while) git-p4 enters a loop where
  66it will first show a Perforce submit template and a diff of the change to
  67apply in the editor. After saving and exiting the editor you will be asked whether
  68you really want to submit the change or not.
  69
  70If a submit fails you may have to "p4 resolve" and submit manually. You can
  71continue importing the remaining changes with
  72
  73  git-p4 submit --continue
  74
  75After submitting you should sync your perforce import branch ("p4" or "origin")
  76from Perforce using git-p4's sync command.
  77