2010-02-23 46 views
10

我的Bazaar工作樹中有一堆未知文件,我不再需要。我可以使用bzr stat得到他們的清單,但我想要一個簡單的方法來擺脫它們。 (我期待bzr revert一個選項來做到這一點,但我沒有找到一個。)刪除Bazaar中的未知文件

我可以寫一個小腳本來分析的bzr statrmmv未知的輸出,但我想的東西可能已經存在。

我有Bazaar(bzr)1.13.1。

回答

13

bzr clean-tree將擺脫工作樹中的所有未知文件。它還具有用於刪除忽略文件的開關,合併備份和其他類型的不需要的文件。有關完整的詳細信息,請參見bzr clean-tree --usage

編輯補充:這是集市2.0.0真的,我不知道1.13

+0

酷,我會檢查了這一點。 – 2010-02-23 16:55:25

+1

來自bzrtools插件的clean-tree命令也可以在1.13中使用。 – bialix 2010-02-24 22:26:17

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"來寫這些東西。