Release Notes for P4BBI - Perforce Baseline & Branch Import A Migration Tool Introduction P4BBI is a lightweight import tool that enables a fast, low-tech, low-risk migration strategy from your existing version control system into Perforce Helix Core. Unlike detailed history import (DHI) tools that must comprehend the details of both the legacy system and Helix Core, the BBI approach glosses over details, enalbing a hand-crafted selection of key baselines. P4BBI is savvy about the right way to do things in Helix Core, and uses Perforce "reconcile offline work" features to import a distilled representation history from the legacy SCM system into Perforce Helix Core. These release notes document changes to P4BBI. This tool kit includes two separate but similar BBI tools, both of which process similar config files. The bash shell script version, bbi.sh, is shiny and new, and includes feature like Streams support and rename detection. The older p4bbi.py implementation is a proven tool, but hasn't kept up with newer Perforce features such as p4 reconcile, p4 copy, p4 populate, etc. -------------------------------------------------------------------------- CHANGE HISTORY: P4BBI/MultiArch/2024.2/30973 (2024/12/07): * Adapted to new home in //p4bbi stream depot. P4BBI/MultiArch/2024.1/30962 (2024/12/06): * bbi.sh v3.5.8: * Fixed issue with Streams for P4D 2020.2+ servers (ParentView field required). * Script modernizations for bbi.sh. * Tweaked DOS2UNIX logic to apply to adds, edits, and move/adds. * Updated README.md becaues the blog article referenced is gone. * Added Legacy SCM Strategies doc to this package, to replace the old blog article. * Tested with P4D 2024.2. P4BBI/MultiArch/2016.3/19070 (2016/04/21): * Fixed bug with UPDATE action when StreamDepth>1. P4BBI/MultiArch/2016.3/18716 (2016/03/20): * bbi.sh v3.5.5: * Robustness improvements for UPDATE actions when adding files with atypical permissions that cause 'rm' updates to fail. * Added warnings in documentation to avoid chars in descriptions that are known not to work. * Added check for 'diff' utility to check that it has the required --no-dereference option (if using VERIFY option of the UPDATE action). * Various improvements to ASTYLE and custom JavaScript beutify optioms. * Fixed bugs in MOVE action processing in certain Streams usage scenarios. * Added handling for files with '...' in the name. P4BBI/MultiArch/2016.2/18504 (2016/03/04): * bbi.sh v3.5.4: * Added support for hand-crafted 'injections' to work around issues that break UPDATE actions for particular baselines due to reproducble issues, such as symlink refactoring converions (e.g. file replaced by symlink of the same name, not detected by 'p4 reconcile'). * The p4bbi Swarm project URL and 'jobspec' project were refactored from: perforce-software-baseline-and-branch-import to the new Workshop standard: perforce_software-p4bbi * Enhanced test suite usability, adding 'rts.sh' wrapper. * Enhanced test coverage. * Added CLIENT_SPEC action, allowing hand-crafted client specs to be added, simplifying demo prep. * Added VERIFY option to UPDATE action, allowing built-in verifications! * Fixed RENAME option, renamed RENAME to MOVE, and added RENAME synonym. * Enhanced auditing and fixed issues with parallel submits. * Updated BBI Config File require version to 3.6.0. P4BBI/MultiArch/2016.1/18424 (2016/02/29): * bbi.sh v3.5.1! * Added support for parallel submits if net.parallal.max is set. * Added support for hand-crafted depot specs, branch specs, and stream specs. This allows the BBI import process to simulate the evolution of stream/branch specs over time, e.g. to reflect reparenting, and to account for things like non-branching files and CBD workflows that use sophisticated, hand-crafted stream specs. * Added support for StreamDepth > 1 (via usage of a hand-crafted depot spec). * Implemented 'CMD:' baseline feature. * BBI Config File format updated to 3.5.1. * RENAME action support has been re-added. * Implemented LABEL:MyLabelName as an option to the UPDATE action, to create automatic labels during import. * Implemented DOS2UNIX as an option to the UPDATE action. * Added support for using branch specs for POPULATE, COPY, and RECORD_MERGE actions. * Enhanced ASTYLE action support. * Simplified testing/development on Mac platform. P4BBI/MultiArch/2016.1/18220 (2016/02/19): * Added ASTYLE support. * Fixed bug in RECORD_MERGE processing (tamper issue). * Added '-R' flag to attempt rename dection (with potentially large performance impact with large data sets and patterns involving many deletes). * Enhanced test suite. P4BBI/MultiArch/2015.3/12498 (2015/04/24): * Fixed a workspace definition bug associated with parallel processing. * Fixed a test suit support script, start_p4d.sh, to work on Mac. * Added BASH_VERSION check, which fails on Mac OSX, at least up to 10.10.3 (due to older bash shell versions). An error message describes a workaround. Requires bash 4.0. * Added workaround for false-positive 'p4 rec' checkouts. P4BBI/MultiArch/2015.3/12393 (2015/04/16): * Updated BBI Config File format to v3.1, introduction NAME tag. * Enables parallel imports into a single target P4D. * Enhanced command and other error checking. * Enhanced docs. * Added -V flag to query version of bbi.sh and libs. * Fixed bug in test suite script, start_p4d.sh. * Changed suffix on standard distribution tar file, p4bbi.tar.gz -> p4bbi.tgz. P4BBI/MultiArch/2015.2/11984 (2015/03/07): * Fixed "Argument list too long" errors. * Added exclusions to the .p4ignore file. P4BBI/MultiArch/2015.2/11959 (2015/03/04): * Patch to address issues with bbi.sh importing large data sets. * Minor enhancemnts to bbi.sh and start_p4d.sh. P4BBI/MultiArch/2015.2/11812 (2015/02/20): * Added a BBI config file version identifier. * Added bbi.sh, with: * Streams Support * Uses 'p4 reconcile' for simpler and faster processing. * Built-in rename detection as a feature of 'p4 reconcile'. * Improved error messages; easier to track down failures. * Better error messages. P4BBI/MultiArch/2015.1/11584 (2015/02/05): * Added Release Notes and Version Identifier. * README.md and generated README.html files.