2010-02-23 10 views
10

मेरे पास मेरे बाज़ार के पेड़ में अज्ञात फाइलों का एक गुच्छा है जो अब मैं नहीं चाहता हूं। मैं bzr stat का उपयोग करके उनमें से एक सूची प्राप्त कर सकता हूं, लेकिन मुझे उनसे छुटकारा पाने का एक आसान तरीका चाहिए। (मैं यह करने के bzr revert के लिए एक विकल्प उम्मीद थी, लेकिन मैं एक नहीं मिल रहा हूँ।)बाज़ार में अनजान फ़ाइलों को हटाएं

मैं हमेशा bzr stat और rm या mv अज्ञात के उत्पादन में पार्स करने के लिए एक छोटे से स्क्रिप्ट लिख सकते हैं, लेकिन मैं कुछ सोचा पहले से मौजूद हो सकता है।

मेरे पास बाज़ार है (bzr) 1.13.1।

उत्तर

13

bzr clean-tree एक काम करने वाले पेड़ में सभी अज्ञात फ़ाइलों से छुटकारा पा जाएगा। यह अनदेखा फ़ाइलों को हटाने के लिए स्विच करता है, बैकअप और अन्य प्रकार की अवांछित फ़ाइलों को विलय करता है। पूर्ण विवरण के लिए bzr clean-tree --usage देखें। जोड़ने के लिए

संपादित करें: यह बाज़ार 2.0.0 के लिए सच है, मैं 1.13

+0

कूल के बारे में निश्चित नहीं हूँ, मुझे लगता है कि बाहर की जाँच करेंगे। –

+1

क्लीन-पेड़ कमांड bzrtools प्लगइन से आ रहा है और 1.13 में भी उपलब्ध है। – bialix

0

एक स्क्रिप्ट बनाया:

#!/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" का उपयोग करके लिखता हूं।

संबंधित मुद्दे