我的Bazaar工作树中有一堆我不再需要的未知文件。我可以使用bzr stat
获取它们的列表,但我想要一种简单的方法来摆脱它们。 (我希望bzr revert
可以选择这样做,但我找不到。)
我总是可以编写一个小脚本来解析未知数的bzr stat
和rm
或mv
的输出,但我认为可能已存在某些内容。
我有Bazaar(bzr
)1.13.1。
答案 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"
来编写这些内容。