I installed svn2git to quickly convert SVN repositories to GIT. I tried the converting procedure on a different machine (Ubuntu 16.04) and a different SVN repository which worked without a problem.
Right now I am on Linux Mint Cinnamon with a different (but very simillar) SVN repository.
git clone https://my.git.com/repository.git
cd repository
svn2git svn://my.svn.com/repository --authors ../authors_transform.txt
.
.
.
error: unable to create symlink asp/layer/man/rep/onewith_totalmax_victory.php (File name too long)
read-tree -m -u -v HEAD HEAD: command returned error: 128
I have read about the /home encryption possibility (as a file length limit), which is not my case. Tried touching random string
touch Etiam_tortor_est0_placerat_sit_amet_dolor_in0_ultricies_malesuada_nisi-_Aenean_et_urna_enim-_Vivamus_porta0_velit_et_pulvinar_fermentum0_urna_lacus_tempor_sapien0_et_laoreet_tellus_elit_nec_ligula-_Nulla_iaculis0_libero_eget_rutrum_mattis0_nisl_velit_vive
Which is 256 characters and creates the file.
How to deal with this?
EDIT: The problem occurs on macOS Sierra aswell.
Conversion broke the symlink try this:
git clone --no-checkout https://my.git.com/repository.git
cd repository
git config core.symlinks false
git checkout <branch>
After all it seems it has been an issue with a specific file that was symlink and a file at the same time?
Anyways manually fixing the file in SVN and then performing the conversion fixed the issue.
The svn2git
tool you used uses git-svn
under the hood, so it is not suitable for "quickly convert" an SVN repository.
There are pleny tools called svn2git
, the probably best one is the KDE one from https://github.com/svn-all-fast-export/svn2git . I strongly recommend using that svn2git
tool. It is the best I know available out there and it is very flexible in what you can do with its rules files.
The svn2git
you used is based on git-svn
and git-svn
is not the right tool for one-time conversions of repositories or repository parts. It is a great tool if you want to use Git as frontend for an existing SVN server, but for one-time conversions you should not use git-svn
, but svn2git
which is much more suited for this use-case.
If you are not 100% about the history of your repository, svneverever
from http://blog.hartwork.org/?p=763 is a great tool to investigate the history of an SVN repository when migrating it to Git.
Even though git-svn
(or the wrong svn2git
in your case) is easier to start with, here are some further reasons why using the KDE svn2git
instead of git-svn
is superior, besides its flexibility:
svn2git
(if the correct one is used), this is especially the case for more complex histories with branches and merges and so on git-svn
the tags contain an extra empty commit which also makes them not part of the branches, so a normal fetch
will not get them until you give --tags
to the command as by default only tags pointing to fetched branches are fetched also. With the proper svn2git tags are where they belong svn2git
, with git-svn
you will loose history eventually svn2git
you can also split one SVN repository into multiple Git repositories easily svn2git
than with git-svn
There are many reasons why git-svn
is worse and the KDE svn2git
is superior. :-)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.