2013-05-21 107 views
1

我已經寫了一個批處理腳本來使用Windows命令行SVN在兩個修訂之間做差異。目錄名稱有一個空格(我詛咒開發人員用空格創建目錄名稱)。Windows上的SVN diff問題

SVN版本:1.7
操作系統:Windows XP

例如,/ svnrepo/XYZ /項目/ C#代碼 /文件/

麻煩的是C#代碼目錄名,我假設空間導致了這個問題 - 當我試圖運行diff命令時,輸出很不尋常:

svn diff -r633:700 /svnrepo/xyz/project/***C# Code***/files/ 

A/svnrepo/xyz/project/C%23%20Code/files/

如何解決此問題?

我希望得到的輸出,如:

A/svnrepo/XYZ /項目/ C#代碼/文件/所以,我可以將輸出寫入一些文本文件。 PS:我是一個Linux用戶。還有新的批處理腳本。

回答

2

沒有「問題」。這是標準的URL字符編碼(%23指十六進制230x23,這是十進制35,其是用於#的ASCII代碼,並%20是十六進制200x20,這是十進制32,其爲空格字符的ASCII碼)。如果您嘗試導航到包含這些字符作爲網站地址一部分的網址,則您在網絡瀏覽器的地址欄中會看到相同的內容。

要登錄的差異文件,只需使用命令行重定向:

svn diff -r633:700 /svnrepo/xyz/project/C# Code/files/ > diffs.txt 
+0

我明白了!你是對的。但是,當我試圖將目錄路徑重定向到文本文件時,它具有這些ASCII字符。現在我的要求是將dir路徑重定向到文本文件並將dir路徑與本地路徑進行比較。例如我在我的Windows D:\ C#代碼\文件上有相同的結構,當我進行比較時,它正在尋找一個帶有ASCII代碼的目錄,並且由於無法識別C#代碼文件夾而失敗。有沒有辦法在進行比較時將ASCII轉換爲實際路徑? –

+0

我不確定什麼時候「我做比較」的意思。你的意思是真正的「差異」操作本身?如果是這樣,你只是區分本地版本,它應該自動對存儲庫版本進行區分。 (這正是我所做的測試我的答案,是區分本地文件以查看存儲庫中的更改,並確保重定向起作用。您能澄清您現在遇到的問題嗎? –