在过去的几个月中,我一直在使用Subversion进行代码控制,使用TortoiseSVN与服务器进行交互,总的来说,这一切都进展顺利! 但是,有时我的FoxPro IDE会更改文件扩展名的情况,而不会发出警告,其中“ program.prg ”变成了“ program.PRG ”)TortoiseSVN显然意味着第一个文件被删除,标记为“missing”,第二个名字出现“非版本化”,对我追踪文件更改的能力造成严重破坏。 据我所知,Subversion起源于* nix这个区分大小写的世界,但是在Subversion或TortoiseSVN中,是否有任何方法可以控制这种行为,当与Windows一起使用时,文件名不区分大小写?
不幸的是,Subversion是区分大小写的。 这是由于Subversion的文件可以在大小写敏感的文件系统(例如* nix)和不区分大小写的文件系统(例如Windows,Mac)上检出。
这个预先提交的钩子脚本可以帮助您避免在签入文件时出现问题。 如果它不能解决你的问题,我最好的建议是写一个小脚本,以确保所有的扩展名都是小写字母,并且在你签入/签出之前每次都运行它。 这将是一个PITA,但也许你最好的选择。
Windows确实支持区分大小写,但您必须从Windows API向CreateFile发送正确的POSIX标志! 注册表项可能需要更改(SFU /工具为Unix和终极Windows 7有这个注册表项已经设置,所以Windows支持区分大小写的文件名)。
Windows是从Unix设计而来的,但是Explorer.exe和其他程序是为了向后兼容性和安全性而设计的(大部分是在处理dos执行notepad.exe与NOTEPAD.EXE,其中所有的大写都是病毒或恶意软件)。
但Vista +的安全属性,使这个过时。
TortiousSVN不支持在创建和重命名文件时传递这个posix标志。
我使用VFP的TortoiseSVN,它大多无缝处理案件翻转。 唯一不会的是当我尝试执行提交时在IDE中打开文件:文件锁定VFP持有混淆它。 这是你的问题出现在哪里,还是有其他问题?
去年,我在FoxForward做了关于在Subversion上使用VFP的演示文稿:大部分演示文稿涉及命令行,但是最后有几个幻灯片可以链接到帮助您在VFP中使用Subversion的工具。 http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4
我相信扩展的随机大小写不是随机的。 我记得在这方面进行测试。 如果您从项目经理修改程序。 通过点击修改按钮让我们说。 然后保存更改的扩展名是小写。 如果您从命令窗口执行修改命令并保存更改,则扩展名为大写。 显然,微软的编码人员并不担心这个扩展案例是一样的。
你在上面评论说,VFP的基于二进制的源文件在Subversion中很难使用。 上面给出的链接提到了一些工具,使其更容易,但是我所使用的工具是Christof Wollenhaupt的TwoFox实用程序 – 它将VFP项目转换为纯文本。 你必须手动运行,但我没有问题。
不,你确定不能。 SVN是区分大小写的,除非你以某种方式重写代码…它是开源的。