Git Migration for PureCM

Overview

PureCM can be migrated to Git/GitHub/BitBucket using 'git fast-import'.

Usage

Usage: purecm-fast-export [--sqlserver ] [--sqlinstance ] [--sqlschema ] [--sqldatabase ] [--sqluser ] [--sqlpassword ] [--forced-mainlines ] [--ignored-streams ] [--flatten] [--preview] Server Database Path Repository Database Path Stream to use as the trunk for export
  --sqlserver=             Specify the hostname of the SQL Server to use
  --sqlinstance=           Specify the instance of the SQL Server to use
  --sqlschema=             Specify the schema of the SQL Server to use
  --sqldatabase=           Specify the database of the SQL Server to use
  --sqluser=               Specify the username of the SQL Server to use
  --sqlpassword=           Specify the password of the SQL Server to use
  --forced-mainlines=      Specify a semicolon delimitted list of streams that are forced onto the mainline
  --ignored-streams=       Specify a semicolon delimitted list of streams that are ignored
  --flatten                     Flatten the streams into just a master stream
  --preview                     Preview changes only, don't process file data
        

Sample Usage

Migrate a project from a PureCM Server using a SQL Server database

purecm-fast-export.exe "server" myrepos "MyApp/v0.1/v0.1" --sqlserver=localhost --sqldatabase=purecm --sqlschema=dbo --flatten | git fast-import
        

Migrate a project from a PureCM Server using SQLite databases

purecm-fast-export.exe "c:\purecm\data\server" c:\purecm\data\myrepos "MyApp/v0.1/v0.1" --flatten | git fast-import
        

Flatten Option

If you specify '--flatten' the migration tries to follow the 'waterfall' (v0.1 -> v0.2 -> v0.3 etc.) but keep the code in 'master' (Git mainline). The streams become git 'tags' instead.

If you opt to not use '--flatten' you will end up with branches for 'v0.1', 'v0.2' etc. with the final stream (e.g. 'v1.0') becoming 'master'

Downloads

The tool can be downloaded from the Downloads section.