Windows下从SVN导入Git时如何添加空文件夹?

Posted

技术标签:

【中文标题】Windows下从SVN导入Git时如何添加空文件夹?【英文标题】:How to add empty folders when importing from SVN to Git under Windows? 【发布时间】:2019-12-14 19:56:38 【问题描述】:

我需要将多个存储库从 SVN 迁移到 Windows 下的 Git。部分存储库有空文件夹,它们对项目至关重要,如果不破坏项目,则无法删除这些文件夹。

我用--preserve-empty-dirs --placeholder-filename = .gitkeep 键尝试了git svn clone 命令,但这根本不起作用。

因此,该文件夹没有添加到提交历史记录中 - 这是一个大问题,因为无法更新到旧版本。完全迁移后也不会添加文件夹。

我试图为机制制作拐杖,但我不明白如何正确制作:

此代码创建 Git 不处理的零大小文件: for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do (fsutil file createnew %d/.gitkeep 0 && echo.>%%d/.gitkeep)

此代码创建大小为 2 个字节的文件: for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do (echo.>%d/.gitkeep)

在这两种情况下,文件都是在所有文件夹中创建的,而不仅仅是空文件夹。此外,我对如何从处理中排除.git 文件夹缺乏了解。

请帮忙。

【问题讨论】:

【参考方案1】:

没办法,不过我在Ubuntu 18.04下写了个拐杖,在WSL下可以成功:

echo The crutches for git svn clone --preserve-empty-dirs command, because it is not working properly.

找到 . -type d -empty -not -path "./.git/*" -exec echo blablabla>.gitkeep \;

git add --all

【讨论】:

以上是关于Windows下从SVN导入Git时如何添加空文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在windows上安装部署设置SVN服务器

如何使用Git

如何设置SVN提交时强制添加注释

使用Git SVN删除SVN存储库中的空文件夹

svn 代码导入到 git 操作指引

如何把项目导入到svn服务器上