如何将区分大小写的SVN源代码分支签出到不区分大小写的系统?

时间:2010-06-07 02:31:28

标签: svn case-sensitive case-insensitive

我正在开发一个Macbook系统,它被格式化为不区分大小写的系统。问题是,我需要查看一个SVN分支,其中包含一些区分大小写的文件。 例如:

inbuilt-file.c
InBuilt-File.c

当两个文件位于同一个文件夹中时,如何检出此分支?当我尝试结帐时,它给出了一个错误,指出该名称的无版本文件已经存在。

3 个答案:

答案 0 :(得分:10)

立刻想到的方法是:

  1. 停止使用区分大小写的文件名。没有理由让Foo.c和foo.c有不同的东西。

  2. 停止使用不区分大小写的文件系统。您可以格式化HFS +卷在Mac OS X上不区分大小写,尽管Adobe Creative Suite和魔兽世界会抱怨它。

  3. 将其签出到使用区分大小写的HFS +格式化的DMG文件中。在“磁盘工具”中或使用以下命令创建它:hdiutil create -size 100m -fs "Case-sensitive HFS+" -volname CaseSensitive CaseSensitive.dmg

  4. 一个有点理智的想法:use git svn并编写一些钩子,当你检查时,会自动将区分大小写的问题的文件名转换为符合特定标准的修改后的文件名。 out,然后使用 right 文件名再次检入它们。当然,这会破坏您的构建脚本和依赖项等等,因为该文件仍然没有正确的名称。所以你需要启动一个分支,让你回到必须使用像git svn这样的东西。与(1)相比,这似乎是不必要的痛苦。

答案 1 :(得分:3)

我最近遇到了同样的问题(运行Windows),但无法弄明白。

对于Mac用户,有人写了指示:

  1. 使用Apple的“磁盘工具”应用程序创建Mac OS Extended类型的新稀疏磁盘映像(区分大小写,记录日期)
  2. 装入新磁盘映像
  3. 查看此图片的宠物来源

答案 2 :(得分:1)

Lauri Lehtinen的回答看起来不错。但是,如果您需要在不区分大小写的系统中处理文件,则无论如何都必须重命名它们。您可以在使用svn move命令检出它们之前在存储库中重命名它们。

$ svn help rename
move (mv, rename, ren): Move and/or rename something in working copy or repository.
usage: move SRC... DST