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

时间:2011-12-21 07:31:00

标签: svn tortoisesvn trac duplicate-removal

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

  
      
  • myfile.txt文件
  •   
  • MyFile.txt的
  •   

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

我们使用Trac进行项目管理,但由于我提交了两个文件,因此无法与我们的代码同步。

如何删除麻烦的文件?

3 个答案:

答案 0 :(得分:2)

在这样的路径错误上,我强烈建议使用命令行SVN客户端而不是像Tortoise这样的图形客户端。您可以使用'svn list'命令获取存储库看到的确切文件/文件夹名称,然后将它们复制/粘贴到'svn delete'命令中。这样,您就可以最大限度地减少遇到案例相关问题的可能性。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

没有一种简单的方法,因为svn旨在永远不会忘记任何事情。 您可以尝试a workaround