जवाबों:
एक सही समाधान नहीं है, मैं एक विशिष्ट फ़ाइल के संशोधन के माध्यम से निम्न 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
आउटपुट उस फ़ाइल की संशोधन संख्या की एक सूची है जिसमें स्ट्रिंग होती है।
जैसा कि grep से बहिष्कृत .svn निर्देशिकाओं में दिया गया है :
grep --exclude-dir=".svn"
इस svngrep
समारोह में मूल funtionality के समान प्रदान करता है git grep
:
svngrep() { grep --color=always --exclude-dir=".svn" -r "$1" . | less -R; }
अपने में पेस्ट करने के लिए .bashrc
।
स्रोत नियंत्रण के तहत Svn उन फ़ाइलों को सूचीबद्ध कर सकता है, और आप फ़ाइल सूची को xargs के साथ grep कमांड लाइन में पाइप कर सकते हैं। रिक्त स्थान के साथ फ़ाइल नाम को संभालने के लिए आप -d '\n'
xargs में " " विकल्प जोड़ें । Svn द्वारा बताई गई निर्देशिकाओं को चुपचाप छोड़ देने के लिए आप -d skip
grep के लिए विकल्प का उपयोग करते हैं । आप grep के बजाय egrep का उपयोग करना चाह सकते हैं, जिसमें अधिक नियमित वाक्यविन्यास होता है (perl की तरह)।
svn ls -R | xargs -d '\n' grep -d skip thingtogrepfor