आपके प्रश्न के आधार पर, आप हटाए गए फ़ाइलों को हटाए गए अनुरोध को पूरी तरह से अर्हता प्राप्त कर रहे हैं (संभवत: यदि इसे हटाया नहीं गया है तो एक साधारण निर्देशिका खोज इसे प्रकट करेगी)। आलसी बैजर की टिप्पणी योग्य है: किसी भी सटीकता को खोए बिना योग्यता को हटाकर और कमांड को सरल बनाते हुए। मैं सब कुछ सरल बनाने के पक्ष में हूं लेकिन किसी भी समस्या को देखते हुए मैं थोड़ा अतिरिक्त लागत पर समाधान से अधिक लाभ उठाने पर विचार करना चाहता हूं।
तो अपने प्रस्तावित समाधान के साथ शुरू:
svn log -v a/b/ | grep " D .*a/b/c.xml"
मैं पहली बार -q
विकल्प जोड़ना होगा, जो उत्पादन पर कटौती है कि आप बस वैसे भी निकाल रहे हैं:
svn log -v -q a/b/ | grep " D .*a/b/c.xml"
और फिर मैं चाहेगा को जानने के लिए ऐसी फ़ाइल हटा दी गई थी, लेकिन जब हटा दिया गया था (यानी जिसमें संशोधन)। जब से तुम भी परोक्ष यूनिक्स/लिनक्स के लिए अपने वातावरण में योग्य, यहाँ awk के साथ एक समाधान (इस blog entry से रूपांतरित) है:
svn log -q -v a/b/ | awk '
/^r[0-9]* \|/ { REVISION=$1; }
/D/ { print REVISION": "$0; }
' | grep " D .*a/b/c.xml"
कि svn log
उत्पादन का स्वरूप की वजह से काम करता है जब –v
पैरामीटर का उपयोग किया जाता है: यह उस संशोधन में सभी फाइलों के बाद एक संशोधन की रिपोर्ट करता है। यहाँ दिखा रहा है कि फ़ाइल Page.cs संशोधन 10506 में नष्ट कर दिया गया एक उदाहरण है:
r10506 | msorens | 2011-02-14 12:58:56 -0800 (Mon, 14 Feb 2011) | 1 line
Changed paths:
A /Projects/Test/Common
A /Projects/Test/Common/Setup.cs
A /Projects/Test/Common/Utility.cs
D /Projects/Test/Page.cs
इस प्रारूप में पार्स उत्पादन ऊपर awk आदेशों शीर्ष पंक्ति से संशोधन संख्या निकालने तो किसी भी फाइल के रूप में नष्ट ('डी चिह्नित "रेखाएं)। बस अपने काम के रूट पर लॉग विंडो खोलने
$(switch -Regex (svn log -q -v a/b) {
'^(r[0-9]*) \|' { $rev = $Matches[1] }
'^ D\s+(.*)' { "{0,-6} {1}" -f $rev, $Matches[1] }
}) | Select-String "a/b/c.xml"
लेकिन वहाँ TortoiseSVN के साथ एक आसान तरीका है ---: Windows के लिए, PowerShell स्विच बयान उपयोग करके एक ही शक्ति और awk के रूप में उपयोग में आसानी प्रदान करता है खोज बॉक्स में फ़ाइल नाम में कॉपी और टाइप करें। संशोधनों की सूची तुरंत जो भी आप टाइप करते हैं उसे फ़िल्टर करती है। यदि यह आउटपुट की एक से अधिक पंक्तियों को दिखाता है, तो नवीनतम (शीर्षतम) संशोधन हमेशा वह होगा जहां फ़ाइल हटा दी गई थी।
svn log -q -v | grep filename | wc -l –