删除Bazaar中的未知文件

时间:2010-02-23 15:15:45

标签: bazaar

我的Bazaar工作树中有一堆我不再需要的未知文件。我可以使用bzr stat获取它们的列表,但我想要一种简单的方法来摆脱它们。 (我希望bzr revert可以选择这样做,但我找不到。)

我总是可以编写一个小脚本来解析未知数的bzr statrmmv的输出,但我认为可能已存在某些内容。

我有Bazaar(bzr)1.13.1。

2 个答案:

答案 0 :(得分:14)

bzr clean-tree将删除工作树中的所有未知文件。它还具有删除被忽略文件,合并备份和其他类型的不需要文件的开关。有关详细信息,请参阅bzr clean-tree --usage

编辑添加:Bazaar 2.0.0也是如此,我不确定1.13

答案 1 :(得分:0)

制作剧本:

#!/usr/bin/env ruby
# Move unknown files in a Bazaar repository to the trash.
# 
# Author: Benjamin Oakes

require 'fileutils'

TRASH_DIRECTORY = File.expand_path('~/.Trash/')

stdout = %x(bzr stat)

within = false

stdout.each_line do |line|
  if line.match(/^unknown:$/)
    within = true 
    next
  elsif line.match(/^[a-z]+:$/i)
    within = false
    next
  end

  if within
    FileUtils.move(line.match(/^\s+(.*?)$/)[1], TRASH_DIRECTORY)
  end
end

我只测试了一下,但似乎工作得很好。如果您通过评论发现问题,请通知我。

在另一个主题上,我应该学习sed& awk?我倾向于使用ruby -e "some ruby code"来编写这些内容。