
Can I make Subversion + TortoiseSVN case-insensitive for Windows?在过去的几个月中,我一直在使用Subversion与TortoiseSVN进行代码控制,以与服务器接口,并且总体来说进展顺利!但是,偶尔我的FoxPro IDE会更改文件扩展名的大小写,而不会发出警告,其中" program.prg"变为" program.PRG"。TortoiseSVN显然将其表示删除了第一个文件,并标记为"丢失",第二个被标记为"丢失"。名称显示为"非版本",这严重破坏了我跟踪文件更改的能力。我知道Subversion起源于* nix的区分大小写的世界,但是在与Windows一起使用时,是否有任何方法可以控制Subversion或TortoiseSVN中的这种行为使其文件名不区分大小写? 不幸的是,Subversion区分大小写。这是由于可以在区分大小写的文件系统(例如* nix)和不区分大小写的文件系统(例如Windows,Mac)上检出Subversion中的文件。 此预提交的钩子脚本可以帮助您避免在签入文件时出现问题。如果它不能解决您的问题,我最好的建议是编写一个小脚本,以确保所有扩展名都是小写的,并在每次签入/签出之前运行它。这将是PITA,但也许是最好的选择。 Windows确实支持区分大小写,但是您必须通过Windows API在CreateFile上向其发送正确的POSIX标志!注册表项可能需要更改(SFU / Unix和Ultimate Windows 7工具已经设置了此注册表项,因此Windows支持区分大小写的文件名)。 Windows是基于Unix设计的,但是诸如Explorer.exe和其他程序之类的东西旨在禁止区分大小写,以实现向后兼容性和安全性(主要是在处理dos执行notepad.exe与NOTEPAD.EXE时,所有大写字母都大写)是病毒或恶意软件)。 但是Vista具有安全性属性,因此过时了。 TortiousSVN只是不支持在创建和重命名文件时传递posix标志。 我将TortoiseSVN与VFP一起使用,它几乎无缝地处理大小写翻转。唯一的例外是,当我尝试执行提交时是否在IDE中打开了文件:VFP持有的文件锁将其混淆。这是您的问题出现的地方,还是其他问题? 我去年在FoxForward上做了一个有关将VFP与Subversion一起使用的演示:大部分演示都是关于命令行的,但是最后有几张幻灯片,其中包含指向可帮助您在VFP中使用Subversion的工具的链接。 。 http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4 我认为扩展名的大小写完全不是随机的。 工具包,您在上面评论说,VFP基于二进制的源文件很难在Subversion中使用。我在上面给出的链接中提到了一些简化工具,但我使用的工具是Christof Wollenhaupt的TwoFox实用程序-它将VFP项目转换为纯文本。您必须手动运行它,但是我没有这个问题。 http://www.foxpert.com/docs/cvs.en.htm TortoiseSVN具有修复文件重命名功能。它需要人工干预,并且实际上会发出要执行的文件重命名操作,但是仍然通过保留文件历史记录来解决当前用例。 我们遇到了类似的问题,我发现了比此处公开的解决方案更好的解决方案,因此,我现在将其共享:
如何解决自动提交问题?好吧,我尝试了一种混合方法:创建一个名为
这完全解决了我们的每日自动构建过程中的问题。我看到的唯一问题是一个窗口将打开几秒钟,这对我们的日常构建来说不是问题,但是如果这对您来说是一个问题,那么也可能有解决方法... 不,您确定不能。 SVN区分大小写,除非您以某种方式重写代码...它是开源的。 |