git2svn 无法创建符号链接(文件名太长)
git2svn unable to create symlink (File name too long)
我安装了 svn2git 以快速将 SVN 存储库转换为 GIT。我在另一台机器 (Ubuntu 16.04) 和一个不同的 SVN 存储库上尝试了转换过程,但没有问题。
现在我在 Linux Mint Cinnamon 上使用不同(但非常相似)的 SVN 存储库。
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
我已经阅读了关于 /home 加密的可能性(作为文件长度限制),但我的情况并非如此。
尝试触摸随机字符串
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
这是 256 个字符并创建文件。
如何处理?
编辑: macOS Sierra 也会出现这个问题。
您使用的 svn2git
工具在后台使用 git-svn
,因此它不适合 "quickly convert" SVN 存储库。
有很多名为 svn2git
的工具,最好的可能是来自 https://github.com/svn-all-fast-export/svn2git 的 KDE。我强烈建议使用 svn2git
工具。它是我所知道的最好的,而且你可以非常灵活地使用它的规则文件。
您使用的 svn2git
基于 git-svn
而 git-svn
不是 一次性转换存储库或存储库部分。如果您想使用 Git 作为现有 SVN 服务器的前端,这是一个很好的工具,但是对于一次性转换,您应该 而不是 使用 git-svn
,但是svn2git
这更适合这个用例。
如果您不是 100% 了解存储库的历史,http://blog.hartwork.org/?p=763 中的 svneverever
是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查其历史.
尽管 git-svn
(或者在您的情况下是错误的 svn2git
)更容易开始,但这里有一些使用 KDE svn2git
而不是 [=11] 的进一步原因=] 更胜一筹,除了它的灵活性:
svn2git
(如果使用了正确的),历史重建得更好更干净,对于具有分支和合并等的更复杂的历史尤其如此
- 这些标签是真正的标签,而不是 Git
中的分支
- with
git-svn
标签包含一个额外的空提交,这也使它们不属于分支,所以一个正常的 fetch
不会得到它们,直到你给 --tags
命令,因为默认情况下也只获取指向已获取分支的标签。使用适当的 svn2git 标签是它们所属的地方
- 如果您更改了 SVN 中的布局,您可以使用
svn2git
轻松配置它,使用 git-svn
您最终将丢失历史记录
- 使用
svn2git
您还可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库
- 或将同一个 SVN 根中的多个 SVN 存储库轻松合并为一个 Git 存储库
- 正确
svn2git
的转换速度比 git-svn
快无数倍
git-svn
更差而 KDE svn2git
更好的原因有很多。 :-)
转换破坏了符号链接试试这个:
git clone --no-checkout https://my.git.com/repository.git
cd repository
git config core.symlinks false
git checkout <branch>
毕竟它似乎是同时是符号链接和文件的特定文件的问题?
无论如何在 SVN 中手动修复文件然后执行转换解决了问题。
我安装了 svn2git 以快速将 SVN 存储库转换为 GIT。我在另一台机器 (Ubuntu 16.04) 和一个不同的 SVN 存储库上尝试了转换过程,但没有问题。
现在我在 Linux Mint Cinnamon 上使用不同(但非常相似)的 SVN 存储库。
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
我已经阅读了关于 /home 加密的可能性(作为文件长度限制),但我的情况并非如此。 尝试触摸随机字符串
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
这是 256 个字符并创建文件。
如何处理?
编辑: macOS Sierra 也会出现这个问题。
您使用的 svn2git
工具在后台使用 git-svn
,因此它不适合 "quickly convert" SVN 存储库。
有很多名为 svn2git
的工具,最好的可能是来自 https://github.com/svn-all-fast-export/svn2git 的 KDE。我强烈建议使用 svn2git
工具。它是我所知道的最好的,而且你可以非常灵活地使用它的规则文件。
您使用的 svn2git
基于 git-svn
而 git-svn
不是 一次性转换存储库或存储库部分。如果您想使用 Git 作为现有 SVN 服务器的前端,这是一个很好的工具,但是对于一次性转换,您应该 而不是 使用 git-svn
,但是svn2git
这更适合这个用例。
如果您不是 100% 了解存储库的历史,http://blog.hartwork.org/?p=763 中的 svneverever
是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查其历史.
尽管 git-svn
(或者在您的情况下是错误的 svn2git
)更容易开始,但这里有一些使用 KDE svn2git
而不是 [=11] 的进一步原因=] 更胜一筹,除了它的灵活性:
svn2git
(如果使用了正确的),历史重建得更好更干净,对于具有分支和合并等的更复杂的历史尤其如此- 这些标签是真正的标签,而不是 Git 中的分支
- with
git-svn
标签包含一个额外的空提交,这也使它们不属于分支,所以一个正常的fetch
不会得到它们,直到你给--tags
命令,因为默认情况下也只获取指向已获取分支的标签。使用适当的 svn2git 标签是它们所属的地方 - 如果您更改了 SVN 中的布局,您可以使用
svn2git
轻松配置它,使用git-svn
您最终将丢失历史记录 - 使用
svn2git
您还可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库 - 或将同一个 SVN 根中的多个 SVN 存储库轻松合并为一个 Git 存储库
- 正确
svn2git
的转换速度比git-svn
快无数倍
git-svn
更差而 KDE svn2git
更好的原因有很多。 :-)
转换破坏了符号链接试试这个:
git clone --no-checkout https://my.git.com/repository.git
cd repository
git config core.symlinks false
git checkout <branch>
毕竟它似乎是同时是符号链接和文件的特定文件的问题?
无论如何在 SVN 中手动修复文件然后执行转换解决了问题。