"गिट grep" तोड़फोड़ में बराबर?


जवाबों:


1

एक सही समाधान नहीं है, मैं एक विशिष्ट फ़ाइल के संशोधन के माध्यम से निम्न grep का उपयोग करें:

for rev in `svn log FILE_TO_SEARCH | grep '^r[0-9][0-9]* ' | cut -f1 -d" "`; do svn cat -$rev FILE_TO_SEARCH 2>/dev/null | grep -q PATTERN_TO_FIND && echo $rev;done

आउटपुट उस फ़ाइल की संशोधन संख्या की एक सूची है जिसमें स्ट्रिंग होती है।


1

जैसा कि grep से बहिष्कृत .svn निर्देशिकाओं में दिया गया है :

grep --exclude-dir=".svn"

इस svngrepसमारोह में मूल funtionality के समान प्रदान करता है git grep:

svngrep() { grep  --color=always --exclude-dir=".svn" -r "$1" . | less -R; }

अपने में पेस्ट करने के लिए .bashrc


मुझे यह अधूरा लगता है क्योंकि git grep भी .gitignore में फ़ाइल को अनदेखा करता है। इसी तरह, एक svn grep में svn द्वारा अनदेखी की गई फाइलें शामिल नहीं होनी चाहिए।
वॉरिएंट चिंपांज़ी

0

स्रोत नियंत्रण के तहत Svn उन फ़ाइलों को सूचीबद्ध कर सकता है, और आप फ़ाइल सूची को xargs के साथ grep कमांड लाइन में पाइप कर सकते हैं। रिक्त स्थान के साथ फ़ाइल नाम को संभालने के लिए आप -d '\n'xargs में " " विकल्प जोड़ें । Svn द्वारा बताई गई निर्देशिकाओं को चुपचाप छोड़ देने के लिए आप -d skipgrep के लिए विकल्प का उपयोग करते हैं । आप grep के बजाय egrep का उपयोग करना चाह सकते हैं, जिसमें अधिक नियमित वाक्यविन्यास होता है (perl की तरह)।

svn ls -R | xargs -d '\n' grep -d skip thingtogrepfor
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.