从修订历史中删除特定文件

时间:2010-08-17 16:43:28

标签: svn svnadmin svnsync svndumpfilter

我正在尝试从修订历史中删除我不想提交的特定文件。有人可以提供这样做的方法吗?

3 个答案:

答案 0 :(得分:2)

您需要使用svndumpfilter工具。该过程涉及转储存储库,过滤(使用svndumpfilter)转储文件,并将结果重新加载到新存储库中。有关详细信息,请参阅SVNBook中的this chapter

答案 1 :(得分:2)

除了使用svndumpfilter过滤存储库转储外,还有另一种解决方案可以让您删除存储库中的特定文件和文件夹。请参阅Apache Subversion FAQ条目"How do I completely remove a file from the repository's history?"

该解决方案要求您执行以下步骤:

  1. 设置path-based authorization规则以拒绝 USERNAME 对该文件或文件夹的 PATHS 的读取权限您想要从存储库历史记录中删除。请注意复数名词路径。您要删除的文件或文件夹可以具有不同的名称,也可以位于存储库历史记录的不同位置。设置拒绝规则时请考虑这一点。

  2. 创建一个空存储库,

  3. 使用svnsync工具将源(即原始存储库)与帐户 USERNAME 下的目标存储库同步。有关使用svnsync进行存储库复制的详细信息,请参阅SVNBook章节"Repository Replication"
  4. svndumpfilter不同,svnsync会自动将具有不可读源路径的复制操作转换为正常添加,如果需要过滤涉及复制操作的历史记录,这将非常有用。

答案 2 :(得分:-2)

您无法删除修订历史记录。