5f7251c2d6d626da9d2e16771df5ab6f486895d9
   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. By default the "p4" branch is updated.
  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
  49Updating
  50========
  51
  52A common working pattern is to fetch the latest changes from the Perforce depot
  53and merge them with local uncommitted changes. The recommended way is to use
  54git's rebase mechanism to preserve linear history. git-p4 provides a convenient
  55
  56  git-p4 rebase
  57
  58command that calls git-p4 sync followed by git rebase to rebase the current
  59working branch.
  60
  61Submitting
  62==========
  63
  64git-p4 has support for submitting changes from a git repository back to the
  65Perforce depot. This requires a Perforce checkout separate to your git
  66repository. To submit all changes that are in the current git branch but not in
  67the "p4" branch (or "origin" if "p4" doesn't exist) simply call
  68
  69    git-p4 submit
  70
  71in your git repository. If you want to submit changes in a specific branch that
  72is not your current git branch you can also pass that as an argument:
  73
  74    git-p4 submit mytopicbranch
  75
  76You can override the reference branch with the --origin=mysourcebranch option.
  77
  78If a submit fails you may have to "p4 resolve" and submit manually. You can
  79continue importing the remaining changes with
  80
  81  git-p4 submit --continue
  82
  83After submitting you should sync your perforce import branch ("p4" or "origin")
  84from Perforce using git-p4's sync command.