我们有大约100个CVS存储库,我们想转换为git。我们尝试使用git cvsimport
,效果很好。
但我们的文件名中有一些特殊字符的文件。特殊字符最终作为新git存储库中文件名中的不可打印字符。
CVS客户端和CVS服务器都在Windows上运行。 Windows客户端正在为所有文件使用cp1252字符集。使用cygwin调用git cvsimport
,因为它不适用于Windows。
运行git cvsimport
之后在git中获取正确文件名的任何想法?
答案 0 :(得分:1)
我们最终写了两个脚本来修复所有提交中的文件和目录名。
对于文件:
#!/bin/bash
echo "$1 --> $2"
cmd="if [ -f '$1' ]
then
mv '$1' '$2'
fi"
git filter-branch --tree-filter "$cmd" --force -- --all
目录:
#!/bin/bash
echo "$1 --> $2"
cmd="if [ -d '$1' ]
then
mv '$1' '$2'
fi"
git filter-branch --tree-filter "$cmd" --force -- --all
根据操作系统和终端,您无法输入某些字符。大多数情况下,您只需在第一个模式中键入?
即可。脚本假定文件/目录在当前结帐分支中可见。