= Bazaar-Perforce TODO = == Introduction == See also the NEWS file in the same directory as this file. == User Stories == The User Stories below appear in priority order. The estimated relative size of each story appears in square brackets ([]) following the story. * As a user, I want to use bzr2p4 to migrate a given range of changes one-by-one from a Bazaar branch to a Perforce server. [3] [3 hours] * As a user, I want p4-fast-export to import/export marks files so that it can perform robust incremental exports. [8] * As a developer, I want to make git_p4.P4Sync.importHeadRevision share code with importChanges and importNewBranch, especially so that it propagates the user of the Perforce changelist. [1] * As a developer, I want the application code not to depend on the p4 command-line client. [8] [6 hours] * As a user, I want to submit my changes from a Bazaar branch to the upstream Perforce depot in one step. [8] * As a user, I want Bazaar-Perforce to be installed as p4 instead of bzrp4 so that it is consistent with other Bazaar plugins. [1] * As a user, I want the Bazaar-Perforce Launchpad branch to be named bzr-p4 instead of bzrp4 so that it is consistent with other Bazaar plugins. [1] * As a user, I want p4-fast-export.py packaged with bzr-fastimport so that I don't have to install an additional plugin (bzrp4) to use it. [3] * Note: Given the current physical structure of the code, fulfilling this story would require moving the following files: p4-fast-export.py p4_fast_export.py git_p4.py tests/test_p4_fast_export.py tests/test_git_p4.py tests/test_git_p4_imported.py tests/test_intermediate_file.py tests/p4_for_test * As a developer, I want to remove unused code. [2] * As a user, I want bzr fast-import to handle a Perforce path with a large number of files, and with very large individual files, without running out of memory. [8] * I attempted to import a head containing 22,909 files, where one particular file was bigger than 600 MB. The bzr fast-import command raised MemoryError in parser.LineBasedParser.read_bytes. * As a user, I want to migrate the complete current head of a Perforce path to a Bazaar branch. [1] * I need to change the way pull.py computes and passes changelist ranges to git_p4.py. * As a user, I want to migrate the complete head as of a given changelist number from a Perforce path to a Bazaar branch. [5] * I need to change the way git_p4 receives and interprets changelist ranges. * As a developer, I want to cover pull.py with tests. [2] * As a user, I want documentation for pull.py. [1] * As a user, I want pull.py to work when I'm using standalone Bazaar for Windows. [2] * As of 2009/02/10, p4-fast-export.py can't import bzrlib.plugin. * As a developer, I want the test code not to depend on Git. [5] * As a developer, I want to store Perforce metadata in mirrored Bazaar branches, using Jelmer's Bazaar code to store foreign revision identifiers in Bazaar branches, so that I can reuse that functionality. [3] * As a user, I want bzrp4 to use the same UI as bzr-svn. [8] * As a user, I want bzrp4 to migrate a Perforce view to a Bazaar branch. [5] * As a developer, I want continuous integration, automatically triggered, for Linux test execution. [2] * As a developer, I want continuous integration, automatically triggered, for Cygwin test execution. [3] * As a user, I want bzr2p4 to show only the progress I care about instead of logging verbosely to the console. [3] * As a user, I want the line endings of my files not to change during migration, so that my data is exactly the same before and after migration. (I'm not sure Perforce can do this.) [13] * bzr2p4.py needs to set standard input and standard output to binary mode on Windows, I think. * As a user, I want the author of each Bazaar revision migrated to Perforce, so that I can easily see who created revisions in Perforce. [3] * As a user, I want migration of revisions with Perforce keywords to work correctly, so that I can migrate projects that use Perforce keywords. (Does this just need tests that demonstrate it works?) [3] * As a user, I want a suite of tools that facilitate creating a Bazaar branch from a Perforce depot, and submitting to a Perforce depot from a Bazaar branch. [?]