उन सभी उपयोगकर्ताओं की सूची जो एसवीएन रिपॉजिटरी के लिए प्रतिबद्ध हैं


10

किसी दिए गए SVN रिपॉजिटरी के लिए मुझे उन सभी उपयोगकर्ताओं की सूची निर्धारित करने की आवश्यकता है, जिन्होंने कभी भी उस रिपॉजिटरी के लिए कुछ भी किया हो। यह रिपॉजिटरी एसवीएन सर्वर पर केवल एक ही नहीं है, लेकिन सूची उस रिपॉजिटरी तक सीमित होनी चाहिए।


क्या आप svn logउन उपयोगकर्ताओं के लिए पार्स कर सकते हैं जिन्होंने परिवर्तन किए हैं? या रेपो की जांच कर रहा है एक विकल्प नहीं है?
भौतिकीविद्या

इसके अलावा, क्या आपके पास अजगर है? =)
फिज़्मिकैलियन

जवाबों:


19

जब मैंने अपने अजगर के पार्सिंग को फिर से लिखना शुरू किया, तो मैंने जो कुछ भी पूछा उससे आपको बेहतर तरीके से पता चला (मैंने सप्ताहांत / कार्यदिवस जमा करने के अनुपात की गणना करने के लिए नाम और प्रस्तुत करने की तारीखें देखीं, जिनके पास कोई जीवन नहीं था!)

रेपो की जांच करें, फिर उस पर जाएं और निष्पादित करें:

svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq

यह उन सभी परिवर्तनों की एक सूची प्राप्त करता है, जो संशोधन और संख्या ( r[12341] | author | date-and-stuff...) के साथ शुरू होने वाली रेखाओं के लिए greps , तीसरे क्षेत्र (लेखक) को प्रिंट करता है, लेखकों को सॉर्ट करता है और डुप्लिकेट से छुटकारा दिलाता है।


@ user12889: आपका स्वागत है। मैं सिर्फ सही समय पर सही सवाल देखने के लिए हुआ था।
भौतिकीविद्या

मामले में नाम क्षेत्र (मेरे मामले में मुझे प्रयोक्ता की ओर प्रतिबद्ध था रिक्तियों के साथ कोई मान (no author)) जोड़ने -F ' [|] 'awk करने के लिए पूरे नाम हड़पने जाएगा: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq
क्विन कंटेंडर

3

@ Vgm64 की सादगी के साथ, रिक्त स्थान वाले उपयोगकर्ता नाम के लिए @DrummerB उत्तर का हल्का रूप

svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u


यह मेरे लिए भी काम करता है - जबकि @ DrummerB के संस्करण में कुछ भी आउटपुट नहीं हुआ
NickG

2

vgm64 का उत्तर अच्छा है, लेकिन यह उन नामों के साथ अच्छी तरह से काम नहीं करता है जिनमें रिक्त स्थान हैं। मैंने इसे बदल दिया है, इसलिए यह है:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq

1

मुझे पता है कि यह धागा पुराना है लेकिन चूंकि एसवीएन को जीआईटी में बदलने के लिए कुछ ट्यूटोरियल वहां लिंक कर रहे हैं, मैं एक कमांड जोड़ता हूं जो एक Auth.txt फ़ाइल उत्पन्न करेगा:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > Authors.txt

यदि यह एक आयातित SVN है, या यदि आप Not a working copyत्रुटि पर ठोकर खाते हैं, तो आप file:///tmp/svn-repoबाद में जोड़कर SVN फ़ोल्डर में स्थानीय पथ निर्दिष्ट कर सकते हैंsvn log -q

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