gitsvngit-svnsvn2gitgit-init

Converting SVN repo to Git alternative method


Can I convert a SVN repo to Git in the following method (asking this as an alternative to svn2git program or git-svn command):

  1. Export the folder/SVN content.
  2. CD into the top level folder and initialize a git repository using git init.
  3. Somehow change the SVN tags/branches to Git tags/branches e.g. How to import svn branches and tags into git-svn?

Would the above be possible or would it not convert correctly?

------------------ Adding files from svn2git ---------------

Rules:

create repository repo
end repository

####comp_refresh_config####

match /(comp_refresh_config/)
  repository repo
  prefix \1
  branch master
end match


####Company####

match /(Company/Source/Projects/[^/]+/)trunk/
  repository repo
  prefix \1
  branch master
end match

match /(Company/Source/Projects/[^/]+/)tags/([^/]+)/
  repository repo
  prefix \1
  substitute branch s/ /_/
  branch refs/tags/\2
end match

match /(Company/Source/Projects/[^/]+/)Trunk/
  repository repo
  prefix \1
  branch master
end match

match /(Company/Source/Projects/[^/]+/)Tags/([^/]+)/
  repository repo
  prefix \1
  substitute branch s/ /_/
  branch refs/tags/\2
end match

match /(Company/Source/Projects/[^/]+/[^/]+/)trunk/
  repository repo
  prefix \1
  branch master
end match

match /(Company/Source/Projects/[^/]+/[^/]+/)tags/([^/]+)/
  repository repo
  prefix \1
  substitute branch s/ /_/
  branch refs/tags/\2
end match

match /(Company/Source/Projects/[^/]+/[^/]+/)Trunk/
  repository repo
  prefix \1
  branch master
end match

match /(Company/Source/Projects/[^/]+/[^/]+/)Tags/([^/]+)/
  repository repo
  prefix \1
  substitute branch s/ /_/
  branch refs/tags/\2
end match

match /(Company/Source/EAR_PACKAGING/[^/]+/)trunk/
  repository repo
  prefix \1
  branch master
end match

match /(Company/Source/EAR_PACKAGING/[^/]+/)tags/([^/]+)/
  repository repo
  prefix \1
  substitute branch s/ /_/
  branch refs/tags/\2
end match

match /(Company/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(Company/)
  repository repo
  prefix \1
  branch master
end match


####Projects####

match /(Projects/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(Projects/)
  repository repo
  prefix \1
  branch master
end match


####certs####

match /(certs/[^/]+/)
  repository repo
  prefix \1
  branch master
end match


####configuration####

match /(configuration/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(configuration/)
  repository repo
  prefix \1
  branch master
end match


####design documents####

match /(design documents/)
  repository repo
  prefix \1
  branch master
end match


####installables####

match /(installables/[^/]+/)
  repository repo
  prefix \1
  branch master
end match


####installables-bundle####

match /(installables-bundle/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(installables-bundle/)
  repository repo
  prefix \1
  branch master
end match


####platform####

match /(platform/[^/]+/)
  repository repo
  prefix \1
  branch master
end match


####reference documents####

match /(reference documents/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(reference documents/)
  repository repo
  prefix \1
  branch master
end match


####referencedocuments####

match /(referencedocuments/[^/]+/)
  repository repo
  prefix \1
  branch master
end match


####releases####

match /(releases/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(releases/)
  repository repo
  prefix \1
  branch master
end match


####scripts####

match /(scripts/[^/]+/)
  repository repo
  prefix \1
  branch master
end match

match /(scripts/)
  repository repo
  prefix \1
  branch master
end match

# Ignore all other directories.
match /
end match

The log file:

progress SVN r1 branch refs/tags/ServiceProblem_epic2_MR3_bce_release_1.0.0 = :1
progress SVN r1 branch refs/tags/sos_ZA_Release_1.0.0_Oct2017 = :2
progress SVN r1 branch refs/tags/Incident_leet_1.0.0_bce_release_1.0.0 = :3
progress SVN r1 branch refs/tags/WON-4FP-XSLT_Special_characterFix_May_2017 = :4
progress SVN r1 branch refs/tags/CPF_HU_Release_1.0_May_2017 = :5
progress SVN r1 branch refs/tags/CbceService-Group1 = :6
progress SVN r1 branch refs/tags/CPF-HU_INC000022903380-LineItemsFix_Release_Oct2017 = :7
progress SVN r1 branch refs/tags/4FP_Italy_Release_Sep_2016 = :8
progress SVN r1 branch refs/tags/CustomerRequest_epic2_drop1.1_bce_release_1.0.0 = :9
progress SVN r1 branch refs/tags/CPF_OctFT_Release = :10
progress SVN r1 branch refs/tags/SalbceidService = :11
progress SVN r1 branch refs/tags/ele_Release_14.0_Feb2018 = :12
progress SVN r1 branch refs/tags/Certs = :13
progress SVN r1 branch refs/tags/CustomerRequestService = :14
progress SVN r1 branch refs/tags/PBI00001047-COPSfieldsFix_March_2017 = :15
progress SVN r1 branch refs/tags/communication-services = :16
progress SVN r1 branch refs/tags/Incident_vcc_2.0.0_bce_release_1.0.0 = :17
progress SVN r1 branch refs/tags/TacticalFix = :18
progress SVN r1 branch refs/tags/LMF-IngramResponseValidation_Fix_Release_1.0_Sept2017 = :19
progress SVN r1 branch refs/tags/CustomerRequest_LMF_1.0.0_bce_release_1.1.0 = :20
progress SVN r1 branch refs/tags/WON_DecimalValidationFix_Release_1.0_Nov2017 = :21
progress SVN r1 branch refs/tags/CustomerRequest_epic2_MR3_bce_release_1.0.0 = :22
progress SVN r1 branch refs/tags/ChangeRequest_LMF_Release_1.0.0 = :23
progress SVN r1 branch refs/tags/Incident_LMF_Release_1.0.0 = :24
progress SVN r1 branch refs/tags/Incident_Sailpoint_1.0.0_bce_release_1.0.0 = :25
progress SVN r1 branch refs/tags/WON_Release_March2017 = :26
progress SVN r1 branch refs/tags/england_Release_1.0.0 = :27
progress SVN r1 branch refs/tags/ele_Release10.0_Dec2017_1.0.0 = :28
progress SVN r1 branch refs/tags/CPF-BR116_Release_1.0_Sep_2017 = :29
progress SVN r1 branch refs/tags/ServiceProblem_LMF_Release_1.0.1 = :30
progress SVN r1 branch refs/tags/4FPShieldUpgradeURLFix_Release_Januray_2018 = :31
progress SVN r1 branch refs/tags/CustomerServiceInventoryItem_ele_MR4.1_MayRelease_1.0.0 = :32
progress SVN r1 branch refs/tags/Incident_smo_epic2_drop1_bce_release_1.0.0 = :33
progress SVN r1 branch refs/tags/connectivity-services = :34
progress SVN r1 branch refs/tags/ServiceFeasibilityService = :35
progress SVN r1 branch refs/tags/ChangeRequest_LMF_Release_1.0.1 = :36
progress SVN r1 branch refs/tags/4FP_FT_Release = :37
progress SVN r1 branch refs/tags/GE_gerco_bce_Release_V1.0_April_2017 = :38
progress SVN r1 branch refs/tags/sos_TLS1.2_Migration_Release_1.0.0_Jan18 = :39
progress SVN r1 branch refs/tags/4FP_partnerWSDL_lightning_release_Feb_2017 = :40
progress SVN r1 branch refs/tags/WON-4FP_DecimalValidationFix_Release_May_2017 = :41
progress SVN r1 branch refs/tags/england_INC000023057409_Fix = :42
progress SVN r1 branch refs/tags/GV = :43
progress SVN r1 branch refs/tags/CustomerRequest_smo_1.0.0_bce_release_1.0.0 = :44
progress SVN r1 branch refs/tags/CustomerRequest_LMF_1.0.0_bce_release_1.0.0 = :45
progress SVN r1 branch refs/tags/Incident_smo_epic2_MR3_bce_release_1.0.0 = :46
progress SVN r1 branch refs/tags/LMF_Release_1.0_June2017 = :47
progress SVN r1 branch refs/tags/ele_Release11.2_Jan2017_1.0.0 = :48
progress SVN r1 branch refs/tags/PBI000010137875-MyOrder_UAT_BugFix_Release_Feb_2017 = :49
progress SVN r1 branch master = :50
progress SVN r1 branch refs/tags/4FP_Spring_Release_2016 = :51
progress SVN r1 branch refs/tags/LMF-INC000022262587_Fix_Release_1.0_Aug2017 = :52
progress SVN r1 branch refs/tags/Incident_smo_1.0.0_bce_release_1.0.0 = :53
progress SVN r1 branch refs/tags/ResourceTest_ele_Release8.2_1.0.0 = :54
progress SVN r1 branch refs/tags/EAR = :55
progress SVN r1 branch refs/tags/4FP_partnerWSDL_lightning_Release_Feb_2017 = :56
progress SVN r1 branch refs/tags/orgacom_Release_2015 = :57
progress SVN r1 branch refs/tags/LMF_EmergencyHotFix_Release_1.0_Jun_2017 = :58
progress SVN r1 branch refs/tags/CbceService-Group2 = :59
progress SVN r1 branch refs/tags/LMF_release = :60
progress SVN r1 branch refs/tags/CPF-Logout_API-Fix-Sep_2017 = :61
progress SVN r1 branch refs/tags/CPF-BREQ144_Release_1.0_Dec_2017 = :62
progress SVN r1 branch refs/tags/LMFRelease1.0.0 = :63
progress SVN r1 branch refs/tags/Incident_smo_epic2_drop1.1_bce_release_1.0.0 = :64
progress SVN r1 branch refs/tags/VCSSalesOrderAdapterService = :65
progress SVN r1 branch refs/tags/SLAMobile_IntialRelease_July2015 = :66
progress SVN r1 branch refs/tags/SalesOrderService = :67
progress SVN r1 branch refs/tags/4FPShield_Release_1.0_Sept_2017 = :68
progress SVN r1 branch refs/tags/OrderEntryService = :69
progress SVN r1 branch refs/tags/LMF_EmergencyHotFix_Release_2.0_Jun_2017 = :70
progress SVN r1 branch refs/tags/SCO_Release_1.0_March_2017 = :71
progress SVN r1 branch refs/tags/WON-SalesOpportunity_TCVCurrencyFix_Release-1.0_Jan2018 = :72
progress SVN r1 branch refs/tags/GE_gerco_bce_Release_V1.2_April_2017 = :73
progress SVN r1 branch refs/tags/SAPP_Mobile_4.0_Release = :74
progress SVN r1 branch refs/tags/CPFr3_3.1_bce_release_1.0.0 = :75
progress SVN r1 branch refs/tags/4FPShield_UpgradeURLFix_Release_Dec_2017 = :76
progress SVN r1 branch refs/tags/ele_Release9.1_Dec2017_1.0.0 = :77
progress SVN r1 branch refs/tags/ChangeRequest_epic2_MR3_bce_release_1.0.0 = :78
progress SVN r1 branch refs/tags/4FP_lightning_Release_Feb_2017 = :79
progress SVN r1 branch refs/tags/4FPShield_Release_1.0_July_2017 = :80
progress SVN r1 branch refs/tags/england_Release_1.0.0_Oct2017 = :81
progress SVN r1 branch refs/tags/Incident_LMF_Release_1.0.1 = :82
progress SVN r1 branch refs/tags/ChangeRequest_epic2_drop1.1_bce_release_1.0.0 = :83
progress SVN r1 branch refs/tags/WON-4FP-DateField_ValidationFix_May_2017 = :84
progress SVN r1 branch refs/tags/CustomerRequest_epic2_drop1_bce_release_1.0.0 = :85
progress SVN r1 branch refs/tags/LMF_Release_1.0_Jun_2017 = :86
progress SVN r1 branch refs/tags/CPF_ES_HU_Fixes_Release_June_2017 = :87
progress SVN r1 branch refs/tags/WON_Release_March_2017 = :88
progress SVN r1 branch refs/tags/ele_CIAM_Fix_Jan2018_release1.0.0 = :89
progress SVN r1 branch refs/tags/Ear = :90
progress SVN r1 branch refs/tags/ServiceProblem_LMF_Release_1.0.0 = :91
progress SVN r1 branch refs/tags/CbceService-Group5 = :92
progress SVN r1 branch refs/tags/CbceService-Group4 = :93
progress SVN r1 branch refs/tags/ele-Catalogue_Release-1.0_July2017 = :94
progress SVN r1 branch refs/tags/PBI_gercoConnectivityFixes_July2017 = :95
progress SVN r1 branch refs/tags/CbceService-Group3 = :96
progress SVN r1 branch refs/tags/CPF_HU_Release1.0_May_2017 = :97
progress SVN r1 branch refs/tags/LMF_Release_1.1_July2017 = :98
progress SVN r1 branch refs/tags/bceRelease_1.0.0 = :99
progress SVN r1 branch refs/tags/CPF-Logout_API-Fix_Sep_2017 = :100

Solution

  • If you want the history of the files, there is no way to not use a migration tool like svn2git.
    If you want to nuke history ( :-( ), you can just checkout trunk, commit to newly created Git repository, checkout the branches, commit them to Git, checkout the tags, commit them to Git and tag them and so on.
    But that is not really a nice migration.
    Didn't you get svn2git running properly in the meantime after my help?