- = Bazaar-Perforce User Guide =
- Author: Matt McClure <mlm@aya.yale.edu>
- Date: 2009/01/01
- == Contents ==
- 1. Introduction
- 2. Status
- 3. Installation
- 4. p4-fast-export
- 5. bzr2p4
- 6. Workflow
- 7. Other Documents
- 8. Credits
- == 1. Introduction ==
- Bazaar-Perforce facilitates source control workflows that use both
- Perforce and Bazaar.
- == 2. Status ==
- The first release of Bazaar-Perforce will perform one-way migrations
- from Perforce depots to Bazaar branches.
- As of 2008/11/14, Bazaar-Perforce is pre-release software. In the
- spirit of releasing early and often to inspire feedback, I invite you
- to try it. Beware that Bazaar-Perforce may force you to become a
- tester and a developer before it will let you be a user. Please let me
- know how spectacularly it fails, so that future users may have more
- success in their attempts.
- The p4-fast-export tool is ready for you to be a tester.
- The bzr2p4 tool is ready for you to be a developer.
- The command-line interfaces and APIs are subject to change.
- == 3. Installation ==
- === 3.1. Prerequisites ==
- To use Bazaar-Perforce, you will need:
- Bazaar
- Perforce command-line client (p4)
- Perforce C/C++ API
- Perforce Python library (P4Python)
- To run the self-test, you will additionally need:
- Git
- Perforce server (p4d)
- === 3.2. Setup ===
- Copy the bzrp4 directory to your Bazaar plugins directory.
- Set the BZR_PLUGIN_PATH environment variable to the location of your
- Bazaar plugins.
- Set the P4PORT environment variable to the host and port of your
- Perforce server.
- === 3.3. Self-test ===
- Synopsis
- bzr selftest bzrp4
- Description
- The self-test runs Bazaar-Perforce's unit tests and functional
- tests.
- Prerequisites
- setup_env.bat (Windows)
- . setup_env.sh (Cygwin)
- === 3.4. Complementary Tools ===
- The bzr-fastimport Bazaar plugin can consume the output of
- p4-fast-export to produce a Bazaar branch.
- == 4. p4-fast-export ==
- Synopsis
- p4-fast-export.py perforce_depot_path
- Description
- The p4-fast-export tool produces a fast-export representation of a
- Perforce depot.
- The perforce_depot_path can be:
- //an/example/path
- Exports the current head.
- //an/example/path@all
- Exports all changelists.
- //an/example/path@6,9
- Exports changelists 6-9.
- P4-fast-export is based on git-p4. It may support additional
- undocumented behavior.
- == 5. bzr2p4 ==
- Synopsis
- bzr2p4.py [options] bzr_branch_path p4_client_workspace_path
- Description
- The bzr2p4 tool submits Bazaar revisions to a Perforce depot.
- Bzr2p4 may support additional undocumented behavior.
- Options
- -q Display no information as bzr2p4 works.
- -v Display verbose information as bzr2p4 works.
- == 6. Workflow ==
- === 6.1. One-time migration from Bazaar to Perforce ===
- To perform a one-time migration from Bazaar to Perforce, use the bzr2p4
- tool.
- The following example assumes you have:
- * a Bazaar branch to migrate in C:\bzrp4\bzrp4.dev
- * a Perforce client workspace named "mlm" in C:\p4
- * an empty directory within the Perforce client workspace at
- C:\p4\bzrp4
- * a Perforce server listening on perforce:1666
- * a Perforce user name: "mlm"
- * the bzr2p4.py tool installed at C:\bzrp4\stable\bzr2p4.py
- Example, using a DOS shell:
- 1. > set P4PORT=perforce:1666
- 2. > set P4USER=mlm
- 3. > set P4CLIENT=mlm
- 4. > p4 login
- 5. > python C:\bzrp4\stable\bzr2p4.py C:\bzrp4\bzrp4.dev C:\p4\bzrp4
- === 6.2. One-time migration from Perforce to Bazaar ===
- To perform a one-time migration from Perforce to Bazaar, use the
- p4-fast-export and bzr fast-import tools.
- The following example assumes you have:
- * a Perforce server listening on perforce:1666
- * a Perforce user name: "mlm"
- * a Perforce depot directory to migrate in //depot/bzrp4
- * an empty directory C:\bzrp4\p4 to store a Bazaar shared repository
- that will contain the destination Bazaar branch C:\bzrp4\p4\trunk.remote
- * bzrp4 installed at C:\bzrp4\plugin\bzrp4
- * Bazaar installed at C:\bzr\stable\bzr
- * the fast-import plugin installed at
- C:\bzr\stable\bzrlib\plugins\fastimport
- Example, using a DOS shell:
- 1. > set P4PORT=perforce:1666
- 2. > set P4USER=mlm
- 3. > set P4CLIENT=mlm
- 4. > p4 login
- 5. > set BZR_PLUGIN_PATH=C:\bzrp4\plugin
- 6. > python C:\bzr\stable\bzr init-repo C:\bzrp4\p4
- 7. > python C:\bzrp4\plugin\bzrp4\p4-fast-export.py //depot/bzrp4@all \
- | python C:\bzr\stable\bzr fast-import -
- === 6.3. Cycle: Perforce, Bazaar, Patch, Submit, ... ===
- Mirror the Perforce depot directory, using a one-time migration. See
- "One-time migration from Perforce to Bazaar" above, for instructions to
- set up your environment.
- 1. > python C:\bzrp4\plugin\bzrp4\p4-fast-export.py //depot/bzrp4@all \
- | bzr fast-import -
- Create a work branch.
- 1. > python bzr branch C:\repo1\trunk.remote C:\repo2\work
- Note: As of 2008/12/27, bzr fast-import does not handle updating a
- branch in a shared repository that also contains native Bazaar
- commits. Keep your working branch in a separate repository to work
- around this limitation.
- Commit new revisions to your work branch.
- Push your work branch to your Perforce client workspace.
- 1. > bzr push C:\p4\bzrp4
- Check consistency in your Perforce client workspace to open files for
- add/edit/remove.
- Submit the change to the Perforce depot.
- 1. > p4 submit
- Update an existing Bazaar branch that mirrors a Perforce depot
- directory.
- 1. > python C:\bzrp4\plugin\bzrp4\p4-fast-export.py //depot/bzrp4@all \
- | bzr fast-import -
- Rebase the Bazaar branch in your Perforce client workspace.
- 1. > cd C:\p4\bzrp4
- 2. > bzr rebase C:\repo1\trunk.remote
- Rebase changes in a working Bazaar branch that was branched from a
- branch that mirrors a Perforce depot directory.
- 1. > cd C:\repo2\work
- 2. > bzr rebase C:\repo1\trunk.remote
- == 7. Other Documents ==
- See also:
- NEWS, release notes
- TODO, planned future work
- == 8. Credits ==
- Bazaar-Perforce is based on:
- git-p4 by Simon Hausmann <simon@lst.de>
- bzr2p4 by Robey Pointer <robey@lag.net>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#13 | 7358 | Matt McClure | Updates mirror script and README to reflect the new mapping that fast-import uses for the... branch: trunk.remote. « | 16 years ago | |
#12 | 7351 | Matt McClure | Updates bzrp4 to pass tests with Bazaar revno 4615. | 16 years ago | |
#11 | 7125 | Matt McClure | Removes need for patch from cycle workflow. | 16 years ago | |
#10 | 7099 | Matt McClure |
Moves several stories to NEWS. Updates date on README. |
16 years ago | |
#9 | 7092 | Matt McClure | Converts all source files to UNIX line endings. bzr: revno 88.2.25, part 1 of 1 bzr: a...uthor Matt McClure <mlm@aya.yale.edu> bzr: committed Sat 2008-12-27 14:36:39 -0500 « |
16 years ago | |
#8 | 7090 | Matt McClure | Documents steps of a cyclical workflow using Bazaar on a project hosted in Perforce. b...zr: revno 88.2.23, part 1 of 1 bzr: author Matt McClure <mlm@aya.yale.edu> bzr: committed Sat 2008-12-27 14:06:26 -0500 « |
16 years ago | |
#7 | 7088 | Matt McClure | Fixes heading style. bzr: revno 88.2.21, part 1 of 1 bzr: author Matt McClure <mlm@ay...a.yale.edu> bzr: committed Sun 2008-12-21 16:27:07 -0500 « |
16 years ago | |
#6 | 7085 | Matt McClure | Documents a workflow for one-time migrations from Perforce to Bazaar. bzr: revno 88.2.1...8, part 1 of 1 bzr: author Matt McClure <mlm@aya.yale.edu> bzr: committed Fri 2008-12-19 14:21:43 -0500 « |
16 years ago | |
#5 | 7082 | Matt McClure | Documents workflow for one-time migration from Bazaar to Perforce. bzr: revno 88.2.15,... part 1 of 1 bzr: author Matt McClure <mlm@aya.yale.edu> bzr: committed Fri 2008-12-19 13:31:48 -0500 « |
16 years ago | |
#4 | 7041 | Matt McClure | Notes need for Git. bzr: revno 77.1.4, part 1 of 1 bzr: author Matt McClure <mlm@aya....yale.edu> bzr: committed Sat 2008-11-15 12:35:02 -0500 « |
16 years ago | |
#3 | 7040 | Matt McClure | Notes bzr-fastimport. bzr: revno 77.1.3, part 1 of 1 bzr: author Matt McClure <mlm@ay...a.yale.edu> bzr: committed Fri 2008-11-14 19:25:05 -0500 « |
16 years ago | |
#2 | 7039 | Matt McClure | Documents the self-test and the need for p4d. bzr: revno 77.1.2, part 1 of 1 bzr: auth...or Matt McClure <mlm@aya.yale.edu> bzr: committed Fri 2008-11-14 19:19:41 -0500 « |
16 years ago | |
#1 | 7038 | Matt McClure | Adds a brief user guide. bzr: revno 77.1.1, part 3 of 3 bzr: author Matt McClure <mlm...@aya.yale.edu> bzr: committed Fri 2008-11-14 09:58:48 -0500 « |
16 years ago |