2009-07-06 107 views
10

在Windows上使用TortoiseSVN,如何從存儲庫中刪除已在文件系統上刪除的文件?我希望他們在下一次提交時顯示爲「丟失」或「刪除」,但似乎並非如此。如何從FS中刪除已經從FS中刪除的文件?

在Linux/Mac上,我只是運行此命令:

svn st | grep ^! | cut -b7- | xargs svn delete 

克里斯

回答

20

您必須使用 「龜SVN - >刪除」 刪除該文件。

如果你錯誤地直接刪除,做一個svn update來獲取文件回來,然後做「烏龜svn->刪除」

:-)

1

文件顯示爲在「失蹤」 TortoiseSVN的提交對話框僅當它們被刪除的文件夾版本化且仍然存在時。如果您刪除了整個文件夾,它將不會顯示爲丟失。

1

如果您意外刪除了該文件(不使用svn),則可以簡單地恢復該修改以恢復該文件,然後使用svn將其刪除。或者並行安裝svn命令行並使用它刪除:)

+0

如果我沒有記錯的話,你甚至可以在恢復對話框的上下文菜單中選擇'svn delete'。 – 2009-07-06 07:46:39

2

右鍵單擊並打開TortoiseSVN存儲庫瀏覽器。您將在回購站中看到該文件,並可以直接刪除它。

1

我通常只在Windows上安裝cygwin,並在命令行中使用svn。

1

Linux,同時考慮到文件以空格:

svn st | grep ^! | cut -b9- | sed 's/^/"/;s/$/"/' | xargs svn rm 

,如果你安裝Windows(MSYS)混帳這適用於Windows一樣好,甚至cygwin的。

0

如果您在第一次提交文件之前刪除了該文件,則無法從存儲庫中恢復,然後將文件恢復爲Indhu建議的Tortise svn> delete。

我剛剛遇到過這種情況,我用Tortise svn - >在幾個文件上添加,然後在我提交之前直接刪除文件。可能是罕見的情況,但這裏是我如何解決我的問題:

首先,我創建了與現在「缺失」文件具有相同文件名的新(空)文件。然後,我接着做了一個Tortise svn>撤消在每個文件上添加。這導致svn停止嘗試提交這些名稱的文件。