Demote git-p4import to contrib status.
Move git-p4import.py and Documentation/git-p4import.txt into a contrib/p4import directory. Add a README there directing people to contrib/fast-import/git-p4 as a better alternative. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
@ -1,167 +0,0 @@
|
||||
git-p4import(1)
|
||||
===============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-p4import - Import a Perforce repository into git
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
`git-p4import` [-q|-v] [--notags] [--authors <file>] [-t <timezone>]
|
||||
<//p4repo/path> <branch>
|
||||
`git-p4import` --stitch <//p4repo/path>
|
||||
`git-p4import`
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Import a Perforce repository into an existing git repository. When
|
||||
a <//p4repo/path> and <branch> are specified a new branch with the
|
||||
given name will be created and the initial import will begin.
|
||||
|
||||
Once the initial import is complete you can do an incremental import
|
||||
of new commits from the Perforce repository. You do this by checking
|
||||
out the appropriate git branch and then running `git-p4import` without
|
||||
any options.
|
||||
|
||||
The standard p4 client is used to communicate with the Perforce
|
||||
repository; it must be configured correctly in order for `git-p4import`
|
||||
to operate (see below).
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-q::
|
||||
Do not display any progress information.
|
||||
|
||||
-v::
|
||||
Give extra progress information.
|
||||
|
||||
\--authors::
|
||||
Specify an authors file containing a mapping of Perforce user
|
||||
ids to full names and email addresses (see Notes below).
|
||||
|
||||
\--notags::
|
||||
Do not create a tag for each imported commit.
|
||||
|
||||
\--stitch::
|
||||
Import the contents of the given perforce branch into the
|
||||
currently checked out git branch.
|
||||
|
||||
\--log::
|
||||
Store debugging information in the specified file.
|
||||
|
||||
-t::
|
||||
Specify that the remote repository is in the specified timezone.
|
||||
Timezone must be in the format "US/Pacific" or "Europe/London"
|
||||
etc. You only need to specify this once, it will be saved in
|
||||
the git config file for the repository.
|
||||
|
||||
<//p4repo/path>::
|
||||
The Perforce path that will be imported into the specified branch.
|
||||
|
||||
<branch>::
|
||||
The new branch that will be created to hold the Perforce imports.
|
||||
|
||||
|
||||
P4 Client
|
||||
---------
|
||||
You must make the `p4` client command available in your $PATH and
|
||||
configure it to communicate with the target Perforce repository.
|
||||
Typically this means you must set the "$P4PORT" and "$P4CLIENT"
|
||||
environment variables.
|
||||
|
||||
You must also configure a `p4` client "view" which maps the Perforce
|
||||
branch into the top level of your git repository, for example:
|
||||
|
||||
------------
|
||||
Client: myhost
|
||||
|
||||
Root: /home/sean/import
|
||||
|
||||
Options: noallwrite clobber nocompress unlocked modtime rmdir
|
||||
|
||||
View:
|
||||
//public/jam/... //myhost/jam/...
|
||||
------------
|
||||
|
||||
With the above `p4` client setup, you could import the "jam"
|
||||
perforce branch into a branch named "jammy", like so:
|
||||
|
||||
------------
|
||||
$ mkdir -p /home/sean/import/jam
|
||||
$ cd /home/sean/import/jam
|
||||
$ git init
|
||||
$ git p4import //public/jam jammy
|
||||
------------
|
||||
|
||||
|
||||
Multiple Branches
|
||||
-----------------
|
||||
Note that by creating multiple "views" you can use `git-p4import`
|
||||
to import additional branches into the same git repository.
|
||||
However, the `p4` client has a limitation in that it silently
|
||||
ignores all but the last "view" that maps into the same local
|
||||
directory. So the following will *not* work:
|
||||
|
||||
------------
|
||||
View:
|
||||
//public/jam/... //myhost/jam/...
|
||||
//public/other/... //myhost/jam/...
|
||||
//public/guest/... //myhost/jam/...
|
||||
------------
|
||||
|
||||
If you want more than one Perforce branch to be imported into the
|
||||
same directory you must employ a workaround. A simple option is
|
||||
to adjust your `p4` client before each import to only include a
|
||||
single view.
|
||||
|
||||
Another option is to create multiple symlinks locally which all
|
||||
point to the same directory in your git repository and then use
|
||||
one per "view" instead of listing the actual directory.
|
||||
|
||||
|
||||
Tags
|
||||
----
|
||||
A git tag of the form p4/xx is created for every change imported from
|
||||
the Perforce repository where xx is the Perforce changeset number.
|
||||
Therefore after the import you can use git to access any commit by its
|
||||
Perforce number, e.g. git show p4/327.
|
||||
|
||||
The tag associated with the HEAD commit is also how `git-p4import`
|
||||
determines if there are new changes to incrementally import from the
|
||||
Perforce repository.
|
||||
|
||||
If you import from a repository with many thousands of changes
|
||||
you will have an equal number of p4/xxxx git tags. Git tags can
|
||||
be expensive in terms of disk space and repository operations.
|
||||
If you don't need to perform further incremental imports, you
|
||||
may delete the tags.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
You can interrupt the import (e.g. ctrl-c) at any time and restart it
|
||||
without worry.
|
||||
|
||||
Author information is automatically determined by querying the
|
||||
Perforce "users" table using the id associated with each change.
|
||||
However, if you want to manually supply these mappings you can do
|
||||
so with the "--authors" option. It accepts a file containing a list
|
||||
of mappings with each line containing one mapping in the format:
|
||||
|
||||
------------
|
||||
perforce_id = Full Name <email@address.com>
|
||||
------------
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Sean Estabrooks <seanlkml@sympatico.ca>
|
||||
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the gitlink:git[7] suite
|
||||
Reference in New Issue
Block a user