2009-07-06 79 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停止尝试提交这些名称的文件。