2009-05-20 39 views
126

當您嘗試檢入Subversion時,「阻塞」是什麼意思?我看到兩個紅色文件夾的文本狀態爲「阻塞」。我沒有看到這意味着文檔中的任何地方。Subversion中的受阻文件夾

當我嘗試cleanup命令時,我得到「文件夾名稱不是工作目錄」。這是我剛剛在VS中創建的一個文件夾,當我嘗試將它添加到Subversion時,它給了我這個錯誤。所有其他文件夾都很好。

+0

你上添加操作 '梗阻性'? – 2009-05-20 22:16:43

回答

106

它發生在刪除或移動.svn子目錄(不通過SVN命令)時,所以SVN的工作副本視圖已損壞。

先嚐試清理,如果沒有解決問題,請還原(或更新)目錄以還原子目錄.svn文件夾。

+1

很奇怪。我最終不得不做這個文件夾的結帳。該文件夾之前存在於存儲庫中。然後我刪除它,而不使用svn delete命令。通過檢查退出並提交,問題得到解決。然後在另一個.css文件中,我沒有重命名,刪除,只是編輯它,它必須做一個svn更新,因爲我得到了一些奇怪的問題(不同的消息)。 – PositiveGuy 2009-05-20 22:20:20

+1

好上帝,我試圖基於我在外部驅動器上的這個項目的副本提交,而不是從本地驅動器的工作副本。咄。 – PositiveGuy 2009-05-20 22:23:58

+8

如果您將目錄從一個地方移動到另一個地方,並且不使用SVN移動命令,通常會發生這種情況。隱藏的.svn文件隨它一起移動但不更新。刪除.svn文件可以解決問題。 – user85259 2010-04-10 23:46:43

1

這意味着,由於某種原因,在操作過程中發生了衝突。檢查是否存在與版本化版本相同名稱的現有未版本控制的文件或文件夾。

(從龜SVN客戶端幫助文件轉述)

9

不知道什麼原因此,該解決方案可以是工作副本(您可以選擇本地整個結賬)出口到別的地方去。

如果您使用的是tortoisesvn,您可以選擇「導出未版本化的文件」,但我認爲如果從命令行執行該操作,它只會導出版本化文件,因此您可能需要執行一些複雜的任務 - 手動版本化文件。

完成後,簽出一份乾淨的工作副本,然後將導出的備份放在頂部。備份中沒有.svn文件夾是非常重要的。

以前我看過這些錯誤,當人們檢查出其他工作副本或其他任何損壞.svn條目的工作副本時。

4

如果您使用的是* nix系統,請確保您未創建文件,將其添加到SVN,然後將其刪除,並將其替換爲相同名稱的文件夾。沒有幫助OP,但希望它可以爲別人挽救一些壓力。

0

我遇到了這個問題時,粘貼到我的FTP客戶端的工作副本的子目錄的文件夾 - 我知道我只要我點擊轉移按鈕就搞砸了......工作方式的危險太晚了。

我嘗試了上面的所有建議和其他網上找到的無濟於事。每個選項都產生了我的目錄被鎖定並且操作無法執行的錯誤。

我走進了我的Time Machine副本,恢復了目錄,很好走。我作爲預防措施清理了工作副本,正確更新了文件並重新開始工作。

5

有同樣的問題,並固定它像這樣:

  • 改名阻礙DIR
  • 在SVN創建的目錄,其原有的名稱(例如:SVN MKDIR)
  • 更新父文件夾,所以新創建的目錄會出現在我的工作拷貝
  • 複製從阻塞到新創建的目錄中的文件和COMMITED他們
1

沒有爲我工作,所以我已經做了以下內容:

  • 在新的位置
  • 與版本文件導出更名現有的文件夾
  • 舉動d
  • 從項目的出口位置的文件夾重命名爲新的文件夾
  • 添加,提交
  • 刪除舊的,更名文件夾
  • 改名爲新的文件夾
  • 提交
0

我們通常在同一時間內有多個分支,爲了節省我的切換或弄亂IIS配置,我將每個分支檢查到一個單獨的文件夾。然後,我使用目錄鏈接將這些文件夾連接回IIS中配置的主路徑。

因此,對於我來說,鏈接的目錄總是有一個黃色的感嘆號,並被標記爲阻塞。我相信這是因爲它在技術上創建/移出了SVN。

1

有可能導致這種情況的情況的不同變化。 下面是一個例子:

我結束了!標記上,將其從WWW到www_a更名,而無需使用「svn的重命名」命令一個目錄:

  1. 重命名承載原始名稱當前目錄,例如以www_b
  2. 重命名www_a回萬維網
  3. 確保你做「SVN更新」或www目錄內使用「svn恢復」
  4. 使用「SVN刪除」
  5. 轉到父目錄及發行刪除了最新www目錄沒有「SVN更新'
  6. 這將恢復原來的www目錄
  7. 這次使用「SVN重命名」重命名www會www_a
  8. 重命名www_b回WWW
  9. 使用「SVN添加」,將其添加到庫中

此時你應該得到一個正確的svn工作目錄。並學習一兩件事如何解決svn目錄混淆。

0

當我通過Web界面更新到CMS(WordPress或Drupal)時,我在目錄上獲得了這個「阻塞」狀態 - 應用程序不知道它的代碼實際上是一個顛覆工作副本,因此更新插件時它會刪除該插件的目錄(包括.svn目錄),並從插件的新版本中刪除一個新目錄。

爲了得到.svn目錄,從包含受阻目錄的目錄返回。我使用--force進行結賬。例如,如果plugin_dir被標記爲「〜」,從它的父目錄我運行:

svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir 

的所有文件已經在那裏被單獨留在家中,並標有「E」上的checkout命令的輸出(標記爲「M」當我運行svn status)。

我有時必須返回並添加新的更新文件;或刪除作爲更新的一部分應刪除的文件,因爲它們在我結帳時重新出現。我相信這些在結帳時標記爲「A」,但隨後的svn status不會提及它們。

0

我在Eclipse中遇到了一些文件標有紅色感嘆號的文件。問題是源目錄中的一個雜亂的.svn文件夾。我刪除了.svn文件夾,刷新了eclipse,並能夠檢查文件。

0

當您將Subversion升級到XCode不支持的版本時,也會發生這種情況。

1

在Windows機器上面臨此問題。

在檢出它所屬的整個項目之前,我已檢出目錄。它給我造成了「阻礙」的問題。

我只是刪除該文件夾,並從根目錄(該文件夾)運行更新。它運行良好。

像清理等命令沒有爲我工作。

謹慎一些話:

  1. 這是昂貴的,如果該文件夾是很大的。
  2. 如果有任何改變,它會導致你失去所有的改變。

一切順利。

0

下面是我找到解決這個最簡單的(和最安全)的方式:即受阻

  1. 臨時重命名有問題的文件或目錄(或父目錄)(例如,添加「的.backup」) 。
  2. 刪除重命名目錄內的任何.svn目錄(如果適用)。
  3. svn revert來自步驟1的重命名(並且現在丟失)對象。
  4. svn delete被還原的對象。
  5. 將步驟1中的備份重新重命名爲其原始名稱。
  6. 將重命名的對象添加並簽入回svn作爲新對象。
0

當我使用具有完全相同名稱的文件夾替換文件時,發生了這種情況。 通過刪除舊文件解決,提交,然後添加新文件。 有點哈克,但爲我工作:)

1

我也看到這在Windows上,當我創建了一個符號鏈接到存儲庫目錄;在這種情況下,存儲庫根目錄被視爲「受阻」。雖然這似乎沒有任何影響。

重現步驟:

  1. Checkout的回購

    svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir 
    
  2. 檢查你的目錄是OK

    cd plugin_dir 
    svn st -u 
    

    輸出應該是

    Status against revision: 1234 
    
  3. 創建符號鏈接(這說明了什麼問題)

    cd .. 
    mklink /d link_dir plugin_dir 
    cd link_dir 
    svn st -u 
    

    輸出將被

    ~   1234 . 
    Status against revision: 1234 
    
相關問題