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