我一直在使用颠复代码控制与如今接与服务器过去几个月,一般它已经持续伟大的!然而,偶尔我的系统IDE会改变的情况下文件的扩展没有警告那里"程序。prg"变成"程序。PRG")如今显然需要这意味着第一个文件已被删除,成为标记为"失踪"和第二个名字来作为"非版本化",造成严重破坏我的能力来追踪更改的文件。我明白,颠复了它的起源的情况下敏感的世界*nix但是,是否有任何方式控制这种行为在任何颠复或如今要的文件名称的情况不敏感的时使用的Windows?

有帮助吗?

解决方案

不幸的是,颠复是情况的敏感性。这是由于事实的文件,从颠复可检出两种情况下敏感文件系统(例如*nix),情况不敏感的文件的系统(例如Windows,Mac)。

这种预先承诺挂钩脚本 可以帮你避免的问题时,检查在文件。如果它不能解决你的问题,我的最好建议是编写一个小小的脚本,以确保所有扩展大写和运行它的每一次之前你检查/检查。这将是一个饼,但也许你最好的选择。

其他提示

Windows并支持情况的敏感性,但是你必须发送正确的POSIX的标志,在调用从窗户API!一个注册的关键可能需要改变(交换网板/Tools for Unix and Windows最终7有此注册条目已经设置使windows支持的情况下敏感的文件的名称)。

窗户是专断的Unix,但事情比如Explorer.exe 和其他程序设计成不允许的情况下灵敏度为向后兼容性和安全性(主要是在处理dos执行notepad.exe 与NOTEPAD.EXE那里所有的帽子是一种病毒或恶意软件).

但是Vista有安全特性,这使得这个过时。

TortiousSVN只是不支持通过这posix标而作出并重新命名的文件。

我用如今有照片,这主要是-无缝地处理情况翻转。唯一的一次它不是如果我有打开文件,在IDE当我试图做的承诺:该文件锁非常拥有混淆。这是你的问题来,或者是否还有其他问题?

我做了一个介绍在FoxForward去年关于使用非常有颠复:大部分的介绍处理的命令行,但有几个幻灯片结束时,有链接的工具,有助于你的工作与颠复在照片. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4

我相信随机上下情况的扩展是不是随机的。我记得测试。如果你修改程序从项目经理。通过点击"修改"按钮,让我们说的话。然后拯救变化的扩展低的情况。如果你做了修改命令从命令窗户和保存的变化的扩展是上层的情况。显然,该程序员在Microsoft不担心扩展情况是相同的。

Kit,你上面的评论,照片是二进制的基于源文件是艰难的工作与在颠复活动。链接我给了上述提到了几个工具,使它更加容易,但是我工作的是克里斯托弗*Wollenhaupt的TwoFox用--它把一个照片项目来文。你必须手动运行,但我没有问题。

http://www.foxpert.com/docs/cvs.en.htm

不,你肯定不能。SVN是情况的敏感性,除非你要重写代码以某种方式...它的 开放源。

我们有一个类似的问题和我 发现了一个更好的解决方案 比那些暴露在这里,所以我分享它现在:

  • 对于 提交完成点检, 现在如今的修正的情况下文件的名字自动:它重新命名的地方的文件情况相匹配的版本控制的文件(由开放的承诺的窗口,在这条道路),所以应该有 没有问题 这一点。

  • 对于 自动提交 你如今不能使用,因为它需要你在手动确认的提交(它打开了窗口提交与特定的消息,但是你仍然单的确定)。但如果你直接使用颠复(svn)使一个自动化的承诺,那么你会有的情况下,敏感的问题上,提交,作为颠复仍然是情况的敏感...

如何解决这个为自动犯?好吧,我试图混合方法:创造的一批文件 FixCaseSensitiveFileNames.bat 你可以呼吁通过的路你想要的修复之前的承诺,例如: call FixCaseSensitiveFileNames.bat C:\MyRepo.批文件将打开,如今为手册提交,这自动修复该文件的名称,但随后它就关闭提交窗口后,一个预定停顿,所以你可以继续自动化承诺的情况敏感的文件名称中已经固定的。暂停是效仿的一个本地平,你可以改变的持续时间可通过改变 -n 参数,这是数量的尝试。如果你不做一个足够长期的停顿,它存在的风险,接近如今窗口之前使它的神奇的解决。在这里这是 代码的批文件:

@echo off
REM *** This BAT uses TortoiseSVN to fix the case-sensitive names of the files in Subversion
REM *** Call it before an automated commit. The Tortoise commit fixes this issue for manual commits,
REM *** so the trick is opening the commit window and close it automatically after a pause (with ping).
REM *** %1 = path to be fixed

start TortoiseProc.exe /command:commit /path:"%1"
ping localhost -n 10 >nul
taskkill /im TortoiseProc.exe

这完全解决了这个问题对于我们的自动化日建立过程。唯一的问题,我看到的是一个窗口打开了几秒钟,这不是一个问题为我们的每日建立,但如果这是你的一个问题有可能解决方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top