diff options
author | Simon Hausmann <simon@lst.de> | 2007-05-07 20:14:17 +0200 |
---|---|---|
committer | Simon Hausmann <simon@lst.de> | 2007-05-07 20:14:17 +0200 |
commit | a844b7406f17ac6e069e617509a2997d7e128500 (patch) | |
tree | ba9c0c1649d624085b81244a6002b9dc857220d5 | |
parent | Cleanup, removed the old tagging code (diff) | |
download | tgif-a844b7406f17ac6e069e617509a2997d7e128500.tar.xz |
Document some implementation details, for the curious... :)
Signed-off-by: Simon Hausmann <simon@lst.de>
-rw-r--r-- | contrib/fast-import/git-p4.txt | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/fast-import/git-p4.txt b/contrib/fast-import/git-p4.txt index d36a1cf18c..ff0da9d0c8 100644 --- a/contrib/fast-import/git-p4.txt +++ b/contrib/fast-import/git-p4.txt @@ -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 + |