एसवीएन रिपॉजिटरी में फाइल से लाइन हटाने वाले को कैसे खोजें?


12

मैं एक बहुत बड़ी परियोजना (10000+ संस्करण) पर काम करता हूं और कभी-कभी ऐसा होता है कि मुझे यह जानने की जरूरत है कि अन्य उपयोगकर्ताओं में से किसने एक फाइल में कुछ लाइन हटा दी। क्या ऐसा करने का कोई तरीका है? मैं svn blameसंशोधन संख्या के साथ यह जांचने के लिए कर सकता हूं कि क्या उस संशोधन में कोई रेखा मौजूद है, तो देखें कि किस संशोधन में रेखा गई है और देखें कि किसने उस संशोधन की शुरुआत की है, लेकिन यह प्रक्रिया उस बड़ी परियोजना के साथ लंगड़ी है।

क्या ऐसा करने का कोई स्मार्ट तरीका है?

जवाबों:


5

यह वही है जो आपको स्वचालित रूप से चाहिए, हालांकि बहुत तेज़ नहीं है क्योंकि यह बाइनरी खोज का उपयोग नहीं करता है जैसा कि ऊपर बताया गया है:

svn log FILE | egrep '^r[0-9]' | sed -e 's/ .*//' | while read rev; do echo $rev ; svn cat FILE -"$rev" | grep "case STRING" && break  ; done 

5

मैं फ़ाइल के इतिहास की जाँच करूँगा और कोशिश करूँगा कि जल्दी से एक संशोधन मिल जाए जहाँ वह रेखा मौजूद है और फिर HEAD और उस संशोधन के बीच दोष लगता है।

यदि फ़ाइल स्थापना के समय से 100 संशोधनों के माध्यम से चली गई है, तो यदि आप उस पंक्ति की तलाश में संशोधन के माध्यम से द्विआधारी खोज करते हैं, तो आपको 10 से अधिक विभिन्न संशोधनों को नहीं देखना चाहिए।


मैं राय नहीं देखता, यह सब मुझे अच्छी सलाह की तरह लगता है: P
Phoshi

1
यह मेरे दृष्टिकोण के समान है। मैं 10 संशोधनों में देखने की तुलना में कुछ सरल / तेज चाहता हूं।
इवान पेत्रुसदेव

... यह 10 संशोधन हैं। जब तक आप उपरोक्त प्रश्न पोस्ट करते हैं तब तक आप कर सकते हैं। जब तक यह कुछ ऐसा नहीं है, आपको फिर से करना होगा, जिस स्थिति में मेरी टिप्पणियों की अवहेलना होगी।
ta.speot.is

2
हां, यह एक ही शॉट के लिए उत्कृष्ट है, लेकिन मुझे ऐसी चीज की जरूरत है जिसका उपयोग नियमित रूप से किया जा सके।
इवान पेत्रुसदेव

3

svn log --diffकॉलम शून्य में "-" से हटाता है। "आर" के लिए ग्रीप भी ताकि आप संशोधन देख सकें।

% svn log --diff src/fozbo.cpp -r22222:HEAD | grep -e '^r' -e '^-.*xyzzy'
r22222 | jruser | 2016-07-19 20:16:07 -0400 (Tue, 19 Jul 2016) | 1 line
-   else if ( password== "xyzzy") {

वहाँ भी है, svn log --searchलेकिन यह केवल प्रतिबद्ध संदेश की खोज करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.