I am new to git
and in the process of migrating from SVN
to github. I have been using Visual SVN Server+TortoiseSVN on Windows for years.
I found a few guides like this How do I migrate an SVN repository with history to a new Git repository? and https://alastaircrabtree.com/converting-an-svn-repository-to-git-on-windows/
However, I have problems with the push command only submitting some of the SVN revisions and not all. In "MyProject"
, the latest revision is 654 but git
only push'es
until rev. 633 and does not include all previous revisions (i.e. there are gaps in revisions).
SVN log:
Repo browser:
Here is what I do in git bash (https://git-scm.com/):
I have a main folder created to contain all source code, i.e. c:\web\git
.
I run the following commands:
$ git svn clone "https://<myip>/svn/myproject/" "C:\Web\git\myproject"
--stdlayout --authors-file="c:\web\authors.txt"
Log says:
Initialized empty Git repository in C:/Web/git/myproject/.git/
Found possible branch point: https://<myip>/svn/myproject/myproject =>
https://<myip>/svn/myproject/branches/newdash, 630
Initializing parent: refs/remotes/origin/newdash@630
A somefile.txt
A somefile2.txt
r1 = d6d733625726656a8e4f6a4fcc3394ee6dc6b5c9 (refs/remotes/origin/newdash@630)
...
r629 = 020c46bbcd50ecefd57ed9f49cd0d2def8444af3 (refs/remotes/origin/newdash@630)
Found branch parent: (refs/remotes/origin/newdash)
020c46bbcd50ecefd57ed9f49cd0d2def8444af3
Following parent with do_switch
Successfully followed parent
r631 = 9564fcb7966649428ec7775cf6ccf4d66e1305c4 (refs/remotes/origin/newdash)
M Properties/launchSettings.json
M web.config
r633 = 4ebce676525bfeb8f1d8d680c706b7d9c4e872c3 (refs/remotes/origin/newdash)
branch_from: /branches => /branches/newdash
Found possible branch point: https://<myip>/svn/myproject/branches/newdash =>
https://<myip>/svn/myproject/branches/newdash, 652
Found branch parent: (refs/remotes/origin/newdash)
4ebce676525bfeb8f1d8d680c706b7d9c4e872c3
Following parent with do_switch
Successfully followed parent
r654 = 336c75066b52c5d0a45e5e14e891a132d6e361e6 (refs/remotes/origin/newdash)
fatal: refs/remotes/origin/trunk: not a valid SHA1
update-ref HEAD refs/remotes/origin/trunk: command returned error: 128
As can be seen from above log, there is a jump from r633 -> r653
. In addition, there are other gaps in the clone process e.g. r498 -> 505
is also missing as well as others:
M Startup.cs
M myproject.csproj
M web.config
r497 = aba855a1c283a263d563ccec486c1042e6757cfb (refs/remotes/origin/newdash@630)
M Views/Shared/_Layout.cshtml
r506 = b8f107ab597eb74549fa75e02cd980b367c61684 (refs/remotes/origin/newdash@630)
Anyways, I continue just to see what happens so I do:
$ cd myproject
User@MyPC MINGW64 /c/Web/git/MyProject (master)
$ git branch -a
remotes/origin/newdash
remotes/origin/newdash@630
Then
User@MyPC MINGW64 /c/Web/git/MyProject (master)
$ git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname;
do git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d
"$branchname"; done
User@MyPC MINGW64 /c/Web/git/MyProject (master)
$ git branch -a
origin/newdash
remotes/origin/newdash@630
And then finally pushing it to github (after I have created the repo at github.com).
User@MyPC MINGW64 /c/Web/git/MyProject (master)
$ git remote add origin https://github.com/myuser/myproject.git
$ git branch -M master
$ git push -u origin master
The repo is pushed to github but as mentioned earlier not all the revisions are included. I figure this has something to do with branches but I am not sure how to fix this so that everything is uploaded to github (all revisions).
Hoping someone knows what is going on and how to fix it.