У меня есть набор неизвестных файлов в моем Базаре рабочее дерево, которое я больше не хочу. Я могу получить список того, что они использовали bzr stat
, но я хотел бы простой способ избавиться от них. (Я ожидал бы опцию для bzr revert
чтобы сделать это, но я не нахожу то.)
Я могу всегда писать крошечный сценарий для парсинга вывода bzr stat
и rm
или mv
неизвестные, но я думал, что что-то могло бы уже существовать.
У меня есть Базар (bzr
) 1.13.1.
bzr clean-tree
избавится от всех неизвестных файлов в рабочем дереве. В нем также есть переключатели для удаления игнорируемых файлов, слияния резервных копий и других типов нежелательных файлов. Подробную информацию смотрите в bzr clean-tree --usage
.
Изменить, чтобы добавить: Это верно для Bazaar 2.0.0, я не уверен насчет 1.13
Создал сценарий:
#!/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 "некоторый код рубина"
.