2017-06-23 97 views
0

我有一個bash腳本,它使用SVN歷史記錄來創建在部署腳本中使用的文件列表。今天我發現了一個小問題,但我想解決。但是,SVN沒有幫助。獲取已刪除文件/文件夾的svn信息

下面是情形:

  1. 提交1 - 的文件夾和文件
    • /中繼/文件夾/文件1
    • /中繼/文件夾/文件2
  2. 提交2 - 刪除整個文件夾和所有文件
    • /主幹/文件夾

當我建立我已經刪除刪除的文件的文件列表,但在這種情況下,刪除的文件實際上是一個文件夾。長話短說,我需要確定被刪除的svn節點的類型,以便我可以適當地處理它。

SVN提供信息的命令,可以告訴你,這樣的信息:

svn info TARGET 

但這似乎並沒有與刪除的文件的工作。在我上面的例子,如果我嘗試運行上已刪除的文件夾信息,我得到一個錯誤:

svn info trunk/folder 

svn: warning: W155010: The node 'trunk/folder' was not found.

svn: E200009: Could not display info for all targets because some targets don't exist

如果我通過從提交的版本號,當它被刪除了,我得到了同樣的錯誤:

svn info -r2 trunk/folder 

如果我嘗試組合中的任何許多我得到同樣的錯誤:

​​

反正是有得到這些信息在刪除的文件夾?

FYI: SVN,編譯二○一五年十一月二十○日版本1.7.14(r1542130),19時25分09秒

編輯:這是問題的一個簡單的解釋。我正在使用7000提交的活動回購協議,任何問題都可以分佈在多個非連續修訂版本中。我無法升級svn版本。

回答

1

我不確定你的目標和任務到底是什麼,爲什麼你必須手動構建文件列表 - Subversion提供svn list,你也可以使用--xml選項運行。如果您可以直接訪問存儲庫,則還可以嘗試使用svnlook treesvnlook changed

順便說一句,更新你的客戶端。 SVN 1.7.x很舊,目前的版本是1.9.x,你應該計劃升級。

+0

我確實可以直接訪問回購協議,但使用腳本執行工作的人不會。所以svn看出來。我會更深入地研究svn列表。謝謝。 –