Browse Source

Document some implementation details, for the curious... :)

Signed-off-by: Simon Hausmann <simon@lst.de>
maint
Simon Hausmann 18 years ago
parent
commit
a844b7406f
  1. 17
      contrib/fast-import/git-p4.txt

17
contrib/fast-import/git-p4.txt

@ -121,3 +121,20 @@ Example @@ -121,3 +121,20 @@ Example
git-p4 rebase


Implementation Details...
=========================

* Changesets from Perforce are imported using git fast-import.
* The import does not require anything from the Perforce client view as it just uses
"p4 print //depot/path/file#revision" to get the actual file contents.
* Every imported changeset has a special [git-p4...] line at the
end of the log message that gives information about the corresponding
Perforce change number and is also used by git-p4 itself to find out
where to continue importing when doing incremental imports.
Basically when syncing it extracts the perforce change number of the
latest commit in the "p4" branch and uses "p4 changes //depot/path/...@changenum,#head"
to find out which changes need to be imported.
* git-p4 submit uses "git rev-list" to pick the commits between the "p4" branch
and the current branch.
The commits themselves are applied using git diff-tree ... | patch -p1


Loading…
Cancel
Save