我正在将一个 svn 存储库转换为一个 git 存储库,我们有许多二进制文件,这些文件多年来一直被 checkin ,这些文件不应该有,还有图像和其他文件,我真的不想要这些文件存在于 git 仓库中占用空间。
我已经尝试使用 git-svn 来转换 repo 并使用了它的 -ignorepaths 属性,但我希望能够将列表馈送到忽略路径中,而不是必须为每个模式/目录指定一个忽略路径我想排除,如果我可以在转换过程中使用 svnignore/gitignore 文件来消除这些垃圾,那就更好了。
有没有办法做到这一点,还是我必须硬着头皮单独指定每个模式/路径?
编辑:更新问题以更清楚地说明我在问什么
最佳答案
如果您习惯了 git,Subversion 会有点复杂。 svn:ignore
是一个基于每个文件夹的属性。在特定文件夹中,您只能忽略特定文件或直接子文件夹。
您可以将文件传递给在 DIRECTORY 上设置忽略属性的命令,也可以将 .gitignore 文件传递给它:
svn propset svn:ignore -F .gitignore DIRECTORY
但由于上述原因,.gitignore 中真正实用的部分,如 */build
在 Subversion 中将不起作用。
你唯一能做的就是为 svn propset
使用 --depth
参数,例如,如果你传递 --depth immediates
,它将设置 DIRECTORY 和每个直接子文件夹的属性。还有一些方法可以指定深度或只是使其无限化 - 我认为 TAB 补全在那里有效或查看帮助。
但仍有一个主要缺点:每次添加包含要忽略的文件的文件夹时,都必须再次运行 svn propset
命令。
关于git svn 忽略路径使用忽略文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12102836/