10

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

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

我有 Bazaar ( bzr) 1.13.1。

4

2 回答 2

14

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

编辑添加:Bazaar 2.0.0 是这样,我不确定 1.13

于 2010-02-23T16:49:41.010 回答
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".

于 2010-02-23T15:36:12.623 回答