如何在文件名中使用特殊字符进行git cvsimport?

时间:2013-04-22 09:11:14

标签: git cp1252 cvsimport

我们有大约100个CVS存储库,我们想转换为git。我们尝试使用git cvsimport,效果很好。

但我们的文件名中有一些特殊字符的文件。特殊字符最终作为新git存储库中文件名中的不可打印字符。

CVS客户端和CVS服务器都在Windows上运行。 Windows客户端正在为所有文件使用cp1252字符集。使用cygwin调用git cvsimport,因为它不适用于Windows。

运行git cvsimport之后在git中获取正确文件名的任何想法?

1 个答案:

答案 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

根据操作系统和终端,您无法输入某些字符。大多数情况下,您只需在第一个模式中键入?即可。脚本假定文件/目录在当前结帐分支中可见。