2011-06-14 86 views
2

我已經從我的本地SVN:服務器簽出了一個目錄。更改一些文件後,我想提交更改。在這裏我得到的問題:更改的文件未被修改?

  • 在TortoiseSVN文件被標記爲已更改(紅色圖標)。
  • TortoiseSVN提交說'沒有文件被更改或添加...'
  • TotoiseSVN更新沒有任何變化。
  • svn stat不會列出被修改的文件。
  • svn cat顯示工作拷貝的明顯diffent含量比文件
  • svn diff沒有顯示出任何區別
  • svn update告訴我At revision 156.
  • TortoiseSVN的版本庫瀏覽器顯示,在庫中的文件是在修訂版153

svn stat hello.js顯示了這個:

Path: hello.js 
Name: hello.js 
URL: svn:///Projects/Sample/hello.js 
Repository Root: svn:///Projects 
Repository UUID: 2e99062c-3216-5d44-9338-d29899e4dc4b 
Revision: 156 
Node Kind: file 
Schedule: normal 
Last Changed Rev: 153 
Last Changed Date: 2011-06-13 10:45:42 +0200 (Mon, 13 Jun 2011) 
Text Last Updated: 2011-06-13 09:54:07 +0200 (Mon, 13 Jun 2011) 
Checksum: 4fed4d6472b30096cd00f8e1229ff833 

最近更新的日期與工作副本中的文件日期相同。

我該如何說服SVN提交更改?

+0

TortoiseSVN很可能使用文件上次修改的時間戳來顯示紅色圖標。一般情況下,SVN只在文件發生實際變化時才提交文件,即svn diff至少會產生一些內容。不是我知道的,但我懷疑你實際上並沒有修改這些文件,這就是爲什麼他們不會提交。如果您絕對堅持提交文件,請在頂部或底部添加一行空行,或者嘗試在文件上設置僞造的SVN屬性。 – 2011-06-14 05:48:13

+0

您是否使用過任何自動化工具來修改文件? – Yossi 2011-06-14 06:18:54

回答

3

我重新安裝了SVN,問題消失了。不幸的是,我沒有時間進一步調查。

2

有2件事情在這裏。首先,使用位於後臺的TSVNCache.exe繪製圖標,以觀察文件系統更改並相應地更新圖標。但是,它不如以前那麼好,所以不會一直顯示正確的圖標。除此之外,Windows在幫助它時非常糟糕,特別是在瀏覽器的樹狀部分,所以有很多次圖標疊加層錯誤並且保持錯誤。我發現解決這個問題的最簡單方法是停止TSVNCache(使用任務管理器)。停止是安全的,它會自動重新啓動。 希望微軟將修復瀏覽器,以便此功能可以更可靠地工作。

第二部分是,儘管圖標顯示爲紅色,但文件並沒有改變 - 您可以看到這一點,因爲svn diff報告沒有區別! (龜通過使用'檢查修改'命令可以告訴你完全相同的信息)。

我很想知道爲什麼svn cat顯示「明顯不同的內容」,但svn diff沒有。

+0

停止TSVNCache似乎工作,但我也不得不打開一個新的Windows資源管理器實例,讓樹圖標正確顯示。 – 2011-08-18 23:05:51

1

至於版本號,如果我沒有記錯的話,它會顯示該特定文件被修改的最後修訂版。因此,SVN文件在版本153上,而您的本地代碼在版本156上的事實僅僅意味着該文件在最近的3個版本中未被更改。

如果你檢查它,然後看一下這個文件的歷史,你會看到從153版本號跳到156

diff通常是相當挑剔/徹底默認情況下,標記甚至單一的空間差異作爲修改 - 如果它沒有選擇任何東西,我會說相信它。但要確保你在正確的版本(HEAD/working copy,很可能)之間實際上是差異的(我喜歡那個詞)。

我很想看到這個問題的根源,如果你真的搞清楚了。

-1

打開你項目 - >右鍵點擊 點擊斷開連接然後執行像使用SVN共享項目一樣的工作並提交它。

+0

-1「點擊該斷開連接」? – harper 2013-11-05 11:37:13