= Bazaar-Perforce NEWS =


== Introduction ==

The user stories listed below are complete.

See also the TODO file in the same directory as this file.

The estimated relative size of each story appears in square brackets ([])
following the story.  The actual effort to complete the story follows the
estimate.


== 2009/09/24 ==

    * 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] [4 hours]


== 2009/09/20 ==

    * As a user, I want p4-fast-export to emit "from" fast-import commands
      so that `bzr fast-import` can use a marks file to perform robust
      incremental imports. [2] [3 hours]

    * As a user, I want to see no deprecation warnings when I run
      p4-fast-export.py. [3] [0.5 hours]


== 2009/08/23 ==

    * As a developer, I want the tests to use an "rsh" P4PORT instead of
      invoking p4d in the fixture, so that the remaining code is
      simpler. [1] [1 hour]

    * As a developer, I want to configure the port that p4d uses, so that I
      can run multiple instances of the test suite simultaneously on a
      single machine. [1] [0 hours]


== 2009/08/16 ==

    * As a developer, I want all tests to pass on Linux. [2] [2 hours]


== 2009/02/22 ==

    * As a user, I want p4-fast-export.py to handle a Perforce path with a
      large number of files at its head, without running out of memory. [5]
      [6 hours]


== 2009/02/14 ==

    * As a user, I want an automated tool to keep a Bazaar mirror in sync
      with a Perforce depot, without exporting all changes from Perforce on
      every sync. [1] [8 hours]
      

== 2009/02/07 ==

    * As a developer I want to automate mirroring the bzrp4 source in the
      Bazaar branch on Launchpad. [2] [2.5 hours]


== 2009/02/01 ==

    * As a developer, I want to improve the accuracy of test coverage
      information by importing Python modules rather than forking processes, so
      that I have more accurate information about what code is covered. [1]
      [14 hours]
      

== 2009/01/19 ==

    * As a developer, I want to fix a test regression that caused the test
      "test_git_p4__dogfood" to stop finding any Git revisions. [1] [2 hours]


== 2009/01/14 ==

    * As a developer, I want test coverage information, so that I know what
      legacy code most needs additional tests. [1] [7.5 hours]
      
        * Obtaining test coverage information for bzrp4 using BZR_PLUGIN_PATH
          requires a patch to Python's trace.py.  See
          http://bugs.python.org/issue4943


== 2009/01/02 ==

    * As a user, I want p4-fast-export to emit 'mark' commands, so that my
      Bazaar branch mirrors can remember Perforce changelist numbers in a 
      structured way. [1] [1 hour]

    * As a developer I want to create a new bzrp4 Bazaar branch on
      Launchpad to mirror the new Perforce-hosted source history. [0.5] [2
      hours]


== 2009/01/01 ==

    * As a developer, I want to identify a Perforce hosting service, if one
      exists, that I can use as the public, primary host for the bzrp4
      source. [0.5] [0.5 hours]

    * As a developer, I want to migrate the bzrp4 source to the Perforce
      hosting service. [0.5] [0.5 hours]

    * As a developer, I want to use the following process to create and
      commit changes to bzrp4's source:

        1. Mirror the bzrp4 source from a Perforce host to a Bazaar branch.

        2. Branch from the Bazaar mirror branch.

        3. Commit changes to the working branch.

        4. Rebase changes onto new changes in the upstream mirror branch.

        5. Repeat steps 3-4 as necessary.

        6. Create a patch.

        7. Apply the patch to a Perforce workspace.

        8. Submit the change to the Perforce host.

        Note: Steps 6-8 will later be changed to use bzr2p4 or a similar
        tool to replay the changes one-by-one onto the Perforce server. [2]
        [10 hours]


== 2008/12/29 ==

    * As a user, I want bzr2p4 to migrate revisions in the order displayed by
      'bzr log'. [1] [3.5 hours]


== 2008/12/27 ==

    * As a developer, I want to convert all bzrp4 source files to use UNIX
      line endings, so that there will be no migration ambiguity between
      Perforce and Bazaar. [0.5] [0.5 hours]


== 2008/12/21 ==

    * As a developer, I want to implement changes in bzr2p4 so that it can
      do a one-time migration of the bzrp4 source history from Bazaar to
      Perforce, where the migration preserves enough metadata to start
      using the Perforce server as the primary host for the bzrp4
      source. [2] [7.75 hours]


== 2008/12/10 ==

    * As a user, I want p4-fast-export to work with bzr.dev, including revno
      3841. [1] [1.5 hours]


== 2008/12/01 ==

    * As a user, I want p4-fast-export's output to use UNIX line endings. [1]
      [2 hours]

    * As a developer, I want bzr2p4 to be silent during tests that exercise
      it. [2] [1 hour]


== 2008/11/14 ==

    * As a user, I want a command-line program that produces a fast-export
      representation of a Perforce depot directory. [13] [12 hours]

    * As a user, I want p4-fast-export to export a content length prefix,
      instead of delimiters, to identify a content section, so that I can
      use it with importers that only support content length prefixes. [3]
      [0.5 hours]


== 2008/10/30 ==

    * As a developer, I want continuous integration, automatically
      triggered, for Windows test execution. [3] [11 hours]


== 2008/08/16 ==

    * As a user, I want bzr2p4 to migrate Bazaar revisions containing both
      a delete "file_a" and a rename from "file_b" to "file_a". [1] [6
      hours]

    * As a user, I want bzr2p4 to migrate correctly Bazaar merge revisions
      that require undoing and redoing a rename. [3] [2 hours]


== 2008/08/10 ==

    * As a user, I want bzr2p4 to migrate Bazaar revisions containing both
      a rename and an add of the renamed file. [1] [2.5 hours]


== 2008/08/09 ==

    * As a developer, I want the tests to pass when run from the root of
      the branch, instead of assuming the current working directory is the
      tests subdirectory. [1] [1 hour]

    * As a developer, I want a test suite covering git-p4 sufficient to
      provide a safety net for refactoring. [8] [5 hours]


== 2008/08/03 ==

    * As a developer, I want bzr2p4 to migrate branches with merge
      revisions, so that test_dogfood passes.

        Previously, bzr2p4 failed on Bazaar revisions that had no changes.

    * As a developer, I want a way to easily run all tests.

        Now, `bzr selftest bzrp4` does the trick, assuming Bazaar can find
        bzr-p4 as a plugin named bzrp4.


== 2008/08/02 ==

    * As a developer, I want all tests to pass from a Windows DOS shell.

    * As a developer, I want all tests to pass from a Cygwin Bash shell.