win10 我可以讓Subversion+TortoiseSVN對Windows不區分大小寫嗎?




visual svn (6)

Kit,你在上面評論說VFP的基於二進制的源文件很難在Subversion中使用。 我上面給出的鏈接提到了一些工具,使其更容易,但我使用的是Christof Wollenhaupt的TwoFox實用程序 - 它將VFP項目轉換為純文本。 你必須手動運行它,但我沒有問題。

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

在過去的幾個月裡,我一直使用Subversion進行代碼控制,使用TortoiseSVN與服務器連接,總的來說它一直很棒! 但是,偶爾我的FoxPro IDE將更改文件擴展名的情況,而不會發出警告,其中“ program.prg ”變為“ program.PRG ”)TortoiseSVN顯然認為這意味著第一個文件被刪除,被標記為“丟失”而第二個文件被標記為“丟失”名稱出現為“非版本化”,嚴重破壞了我跟踪文件更改的能力。 我知道Subversion起源於* nix的區分大小寫的世界但是,有沒有辦法在Subversion或TortoiseSVN中控制這種行為,當與Windows一起使用時,文件名不區分大小寫?


我相信擴展上的隨機大寫和小寫都不是隨機的。 我記得測試過這個。 如果您從項目經理修改程序。 點擊修改按鈕就可以了。 然後保存更改擴展名為小寫。 如果從命令窗口執行修改命令並保存更改,則擴展名為大寫。 顯然,微軟的編碼員並不擔心擴展案例是一樣的。


我們遇到了類似的問題,我找到了比這裡暴露的更好的解決方案 ,所以我現在分享它:

  • 對於manualy完成的提交 ,現在TortoiseSVN自動修復文件名的大小寫:它重命名本地文件以匹配版本化文件的情況(只需打開該路徑中的提交窗口),所以應該沒有問題

  • 對於自動提交,您不能使用TortoiseSVN,因為它要求您手動確認提交(它會打開提交窗口,其中包含特定消息,但您仍然需要單擊確定)。 但是如果您直接使用Subversion(svn)進行自動提交,那麼您將在該提交上遇到區分大小寫的問題,因為Subversion仍然區分大小寫......

如何解決這個問題進行自動提交? 好吧,我嘗試了一種混合方法:創建一個名為FixCaseSensitiveFileNames.bat的批處理文件,您可以在提交之前調用它來傳遞要修復的路徑,例如: call FixCaseSensitiveFileNames.bat C:\MyRepo 。 批處理文件打開TortoiseSVN進行手動提交,並自動修復文件名,但在預定義的暫停後關閉提交窗口,這樣您就可以繼續自動提交,並且已經修復了區分大小寫的文件名。 使用本地ping模擬暫停,您可以通過更改-n參數(即嘗試次數)來更改持續時間。 如果你沒有做足夠長的停頓,那麼在它進行魔法修復之前關閉TortoiseSVN窗口是存在風險的。 這是批處理文件的代碼

@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

這完全解決了我們的自動日常構建過程的問題。 我看到的唯一問題是窗口會打開幾秒鐘,這對我們的日常構建來說不是問題,但是如果這對你來說是一個問題,那麼也可能有解決方法......


不幸的是,Subversion區分大小寫。 這是因為可以在區分大小寫的文件系統(例如,* nix)和不區分大小寫的文件系統(例如,Windows,Mac)上檢出來自Subversion的文件。

這個預提交鉤子腳本可以幫助您在簽入文件時避免出現問題。 如果它沒有解決您的問題,我最好的建議是編寫一個小腳本,以確保所有擴展名都是小寫的,並在每次簽入/簽出之前運行它。 這將是一個PITA,但也許是你最好的選擇。


Windows支持區分大小寫,但您必須從Windows API在CreateFile上發送正確的POSIX標誌! 註冊表項可能需要更改(SFU / Tools for Unix和Ultimate Windows 7已設置此註冊表項,因此Windows支持區分大小寫的文件名)。

Windows是基於Unix設計的,但是諸如Explorer.exe和其他程序之類的東西被設計為不允許區分大小寫以實現向後兼容性和安全性(主要是在處理dos執行notepad.exe與NOTEPAD.EXE時,其中所有大寫都是病毒或惡意軟件)。

但是Vista +具有安全屬性,這使得它已經過時了。

TortiousSVN在製作和重命名文件時不支持傳遞此posix標誌。


我使用TortoiseSVN和VFP,它主要是無縫地處理案例翻轉。 它唯一沒有的是當我嘗試提交時在IDE中打開文件:文件鎖定VFP會使它混淆。 這是您的問題所在,還是有其他問題?

我去年在FoxForward上做了一個關於在Subversion中使用VFP的演示文稿:大部分演示文稿都涉及命令行,但最後有幾個幻燈片可以鏈接到幫助你在VFP中使用Subversion的工具。 http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4





tortoisesvn