Svn 如何删除以前版本中的重复文件

Svn 如何删除以前版本中的重复文件,svn,tortoisesvn,trac,duplicate-removal,Svn,Tortoisesvn,Trac,Duplicate Removal,我错误地提交了两次文件-唯一的区别是其中一个文件的名称中有一个大写字母: Myfile.txt MyFile.txt 使用Ortoise,我可以在以前的版本中看到这两个文件,我可以选择它们,当我按delete键时,它会要求我发表评论,提交时,它会告诉我URL不存在。我不再需要这两个文件了 我们用于项目管理,但自从我提交了这两个文件后,它就无法与我们的代码同步 如何删除这些麻烦的文件?这不是一个简单的方法,因为svn被设计成永远不会忘记任何东西。 你可以尝试一下。我理解你的问题,重点不在于让S

我错误地提交了两次文件-唯一的区别是其中一个文件的名称中有一个大写字母:

  • Myfile.txt
  • MyFile.txt
使用Ortoise,我可以在以前的版本中看到这两个文件,我可以选择它们,当我按delete键时,它会要求我发表评论,提交时,它会告诉我URL不存在。我不再需要这两个文件了

我们用于项目管理,但自从我提交了这两个文件后,它就无法与我们的代码同步


如何删除这些麻烦的文件?

这不是一个简单的方法,因为svn被设计成永远不会忘记任何东西。
你可以尝试一下。

我理解你的问题,重点不在于让Subversion忘记你的文件(正如Dennis在回答中所讨论的),而在于纠正一种情况,即你有两个不可用的文件,因为它们的名称只是大小写不同。解决方案非常简单——打开存储库浏览器并删除或重命名一个有问题的文件。即使在本质上不区分大小写的系统(即Windows)上也可以这样做,因为存储库本身仍然区分大小写。(关于这一点的手册参考,虽然没有说得更多,但是是。)

对于类似这样的路径错误,我强烈建议使用命令行SVN客户端,而不是像Ortoise这样的图形客户端。您可以使用“svn list”命令获取存储库看到的确切文件/文件夹名称,然后将其复制/粘贴到“svn delete”命令中。这样,您将最大限度地减少遇到与案例相关问题的机会


根据您对msorens回答的评论,该文件似乎不存在于存储库的当前头部。如果是这样,你就无能为力了。Subversion将存储库历史视为单个线性提交序列。所有修改都是对存储库的负责人进行的;一般来说,您不能“回到过去”并更改过去的存储库状态。删除提交是可能的(但不容易),但它会丢弃它之后的所有内容。因此,建议只对最近提交到存储库的内容执行此操作(以最小化副作用)。其他一些版本控制系统(例如git)在更改存储库历史记录方面具有额外的功能。不幸的是,Subversion并没有这样做。

我已经找到了解决方案,但我希望有一种更简单的方法:)是的,这似乎足够简单。问题是,当我试图删除或重命名其中一个副本时,Tortoise会给我一个路径错误。当我将其中一个重命名为修订版767时,乌龟实际上抱怨修订版977(最新版本)的路径。在977版本,该文件甚至不再存在。当重命名时,乌龟实际上报告找不到文件:版本977,路径。