如何从SVN中删除已从FS中删除的文件?

时间:2009-07-06 04:41:06

标签: svn tortoisesvn

在Windows上使用TortoiseSVN,如何从存储库中删除已在文件系统上删除的文件?我希望它们在我的下次提交时显示为“缺失”或“删除”,但情况似乎并非如此。

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

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

-Chris

9 个答案:

答案 0 :(得分:22)

您必须使用“Tortoise svn - > delete”删除该文件。

如果您错误地直接删除了,请执行svn更新以获取该文件,然后执行“tortoise svn-> delete”

: - )

答案 1 :(得分:3)

右键单击并打开TortoiseSVN存储库浏览器。您将在repo中看到该文件,并可以直接将其删除。

答案 2 :(得分:1)

文件在TortoiseSVN的提交对话框中显示为“缺失”,只有当删除它们的文件夹版本化并且仍然存在时。如果您删除了整个文件夹,它将不会显示为缺失。

答案 3 :(得分:1)

如果您意外删除了文件(不使用svn),您只需还原该修改以获取文件,然后使用svn将其删除。或者并行安装svn命令行并将其用于删除:)

答案 4 :(得分:1)

我通常只在Windows上安装cygwin,并从命令行使用svn。

答案 5 :(得分:1)

在linux上,也考虑带有空格的文件:

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

如果您安装git for windows(msys)或cygwin,这也适用于Windows。

答案 6 :(得分:0)

如果您在第一次提交文件之前删除了该文件,则无法从存储库恢复,然后将文件恢复为Tortise svn>按照Indhu的建议删除。

我刚遇到过使用Tortise svn的情况 - >添加几个文件,然后在我提交之前直接删除文件。可能是一个不常见的案例,但这是我如何解决我的问题:

首先,我创建了新的(空)文件,其文件名与现在“丢失”的文件相同。然后,我做了一个Tortise svn>撤消每个文件的添加。这导致svn停止尝试使用这些名称提交文件。

答案 7 :(得分:0)

我在“添加”之后但在“提交”

之前删除文件时遇到了同样的问题

通过右键单击不存在的文件并从该菜单中选择“删除”,我在执行提交时修复了此问题。然后提交。

答案 8 :(得分:0)

我知道这是一个死线程,但是我遇到了同样的问题。我“添加”了文件,然后在“提交”之前将其删除。因此,SVN还原将不起作用。

我通过右键单击目录中的文件并执行SVN->检查修改来解决此问题。修改后弹出一个对话框,允许我选择丢失的文件并将其从存储库中删除。

希望这可以帮助某人并为他们节省一些时间。