wiki:GitMigration

Version 1 (modified by brevilo, 12 years ago) (diff)

--

Git Migration

This page describes the SVN -> git migration. It should be considered as not yet complete so stay tuned for more...

Conversion

During conversion the different projects previously hosted in SVN git separated into dedicated repositories:

BOINC

Command:

git --bare svn init --trunk=trunk/boinc --tags=tags --branches=branches --ignore-refs="(SCHEDULER|boinc_app_release|boinc_release|boinc_server|checkin_notes|seti_boinc|start|vendor|unlabeled|setiathome|boinc_server|unlimited_stderr_out|staging|Pegasus|boinc_depends)" http://boinc.berkeley.edu/svn

Build dependencies VS 2005

Command:

git --bare svn init --trunk=trunk/boinc_depends_win_vs2005 --branches=branches --ignore-refs="(vendor|unlabeled|setiathome|boinc_server|unlimited_stderr_out|staging|Pegasus|boinc_core_release|boinc_depends_win_vs2008|boinc_depends_win_vs2010|server_stable)" http://boinc.berkeley.edu/svn

Build dependencies VS 2008

Command:

git --bare svn init --trunk=trunk/boinc_depends_win_vs2008 --branches=branches --ignore-refs="(vendor|unlabeled|setiathome|boinc_server|unlimited_stderr_out|staging|Pegasus|boinc_core_release|boinc_depends_win_vs2005|boinc_depends_win_vs2010|server_stable)" http://boinc.berkeley.edu/svn

Build dependencies VS 2010

Command:

git --bare svn init --trunk=trunk/boinc_depends_win_vs2010 --branches=branches --ignore-refs="(vendor|unlabeled|setiathome|boinc_server|unlimited_stderr_out|staging|Pegasus|boinc_core_release|boinc_depends_win_vs2005|boinc_depends_win_vs2008|server_stable)" http://boinc.berkeley.edu/svn

Cleaning / rewriting history

Binary removal

Binaries removed, path starting with:

  • curl
  • icu
  • openssl
  • zlib

Command:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch curl; git rm -rf --cached --ignore-unmatch icu; git rm -rf --cached --ignore-unmatch openssl; git rm -rf --cached --ignore-unmatch zlib' --tag-name-filter cat -- --all

Rewriting author details

SVN_USER - REAL_NAME/EMAIL mapping to be provided later (upon David's consent).

Command:

git filter-branch --env-filter 'if [ $GIT_AUTHOR_NAME="<SVN_USER>" ]; then GIT_AUTHOR_NAME="<REAL_NAME>"; GIT_AUTHOR_EMAIL="<EMAIL>"; fi; export GIT_AUTHOR_NAME; export GIT_AUTHOR_EMAIL' 

Removing SVN UUID from commit messages

Command:

git filter-branch --msg-filter 'sed "s/677681c0-c3c0-48b4-bd46-92119ef6d97a//g"' --tag-name-filter cat -- --all