2010-02-23 29 views
10

Tôi có một loạt tệp không xác định trong cây làm việc Bazaar mà tôi không muốn nữa. Tôi có thể nhận được một danh sách của họ bằng cách sử dụng bzr stat, nhưng tôi muốn một cách dễ dàng để loại bỏ chúng. (Tôi mong đợi một lựa chọn cho bzr revert để làm điều này, nhưng tôi không tìm thấy một.)Xóa các tệp không xác định trong Bazaar

tôi luôn có thể viết một kịch bản nhỏ để phân tích đầu ra của bzr statrm hoặc mv những ẩn số, nhưng tôi nghĩ rằng một cái gì đó có thể đã tồn tại.

Tôi có Bazaar (bzr) 1.13.1.

Trả lời

13

bzr clean-tree sẽ loại bỏ tất cả các tệp không xác định trong cây đang hoạt động. Nó cũng có thiết bị chuyển mạch để loại bỏ các tập tin bị bỏ qua, sáp nhập sao lưu và các loại tập tin không mong muốn khác. Xem bzr clean-tree --usage để biết chi tiết đầy đủ.

Chỉnh sửa để thêm: Điều này đúng với Bazaar 2.0.0, tôi không chắc chắn về 1.13

+0

Tuyệt, tôi sẽ kiểm tra điều đó. –

+1

lệnh clean-tree đến từ plugin bzrtools và cũng có sẵn trong 1,13. – bialix

0

Made một kịch bản:

#!/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 

Tôi chỉ thử nghiệm nó một chút, nhưng nó dường như chỉ làm việc tốt. Vui lòng cho tôi biết nếu bạn tìm thấy sự cố qua nhận xét.

Trên một chủ đề riêng, tôi có nên tìm hiểu sed & awk? Tôi có xu hướng viết những thứ này bằng cách sử dụng ruby -e "some ruby code".

Các vấn đề liên quan