Удалите неизвестные файлы в Базаре

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

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

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

10
задан Cœur 7 January 2019 в 09:55
поделиться

2 ответа

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

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

14
ответ дан 3 December 2019 в 23:12
поделиться

Создал сценарий:

#!/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 "некоторый код рубина" .

0
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: