Удалить неизвестные файлы на базаре - PullRequest
10 голосов
/ 23 февраля 2010

У меня в рабочем дереве Bazaar есть куча неизвестных файлов, которые мне больше не нужны. Я могу получить их список, используя bzr stat, но я бы хотел простой способ избавиться от них. (Я бы ожидал вариант для bzr revert, чтобы сделать это, но я не нахожу один.)

Я всегда могу написать крошечный скрипт для анализа вывода bzr stat и rm или mv неизвестных, но я подумал, что что-то уже может существовать.

У меня есть базар (bzr) 1.13.1.

Ответы [ 2 ]

14 голосов
/ 23 февраля 2010

bzr clean-tree избавит от всех неизвестных файлов в рабочем дереве. Он также имеет переключатели для удаления игнорируемых файлов, объединяет резервные копии и другие типы нежелательных файлов. См. bzr clean-tree --usage для получения полной информации.

Изменить, чтобы добавить: Это верно для Bazaar 2.0.0, я не уверен насчет 1.13

0 голосов
/ 23 февраля 2010

Сделал скрипт:

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

...