2010-08-10 16 views
5

क्या गिट रिपोजिटरी में दूसरों द्वारा किए गए सभी कामों को सूचीबद्ध करने का कोई मानक तरीका है (यानी स्वयं नहीं)?दूसरों द्वारा किए गए सूची (यानी मुझे नहीं)?

मैंने git log --not --author=username की कोशिश की, लेकिन ऐसा लगता है कि --not केवल संशोधन पर लागू होता है। git log के लिए मैनपेज --author जैसे भविष्यवाणियों को उलटने का तरीका प्रदान नहीं करता है।

(मैं काम पर git-svn उपयोग करें, और देखने के लिए क्या अपने सहयोगियों को बदल दिया है के बाद से मैं पिछले पिछले X दिनों में git svn rebase भाग गया, या अधिक आम तौर पर एक तरह से करना चाहते हैं। आम तौर पर मैं जानता हूँ कि मैं क्या बदल गया है, मैं तो बस देखना चाहता हूँ जो फ़ाइलों दूसरों के द्वारा छुआ गया है/पढ़ उनके लोग इन संदेशों/शायद की समीक्षा दिलचस्प पैच/आदि)

संपादित प्रतिबद्ध:रिफाइंड गुंजाइश, मैं वास्तव में "पिछले git svn rebase के बाद से" की तुलना में में "हाल ही में" अधिक दिलचस्पी रखता हूँ।

+0

ऐसा लगता है कि इस लेखक-खोज से बचने के लिए सक्षम होना चाहिए। मैं गिट-एसवीएन का उपयोग नहीं करता, लेकिन 'गीट एसवीएन रीबेज' को फिर से रिबेज करने के रूप में दस्तावेज किया गया है, इसलिए निश्चित रूप से यह 'refs/remotes/git-svn' में refs को अद्यतन करता है। क्या आप कुछ 'गिट लॉग मास्टर @ {1} .. git-svn' जैसे कुछ नहीं कर सकते? – Cascabel

+0

मैं आसानी से 'गिट लॉग गिट-एसवीएन..'' के साथ अपने "अप्रशिक्षित" पैच देख सकता हूं, और इसके विपरीत, लेकिन जो मैं वास्तव में चाहता हूं वह है कि पिछले 3 दिनों में "हाल ही में" किए गए परिवर्तनों को देखने में सक्षम होना चाहिए। लेखक खोज एकमात्र तरीका प्रतीत होता है, क्योंकि वचन वस्तुएं/ब्लब्स और इतने पर 'गीट svn rebase' द्वारा फिर से लिखा जाता है, जैसा कि आप कहते हैं। – RobM

+0

तो फिर, 'गिट लॉग गिट-एसवीएन' या' गिट लॉग मास्टर @ {1} .. गिट-एसवीएन' के साथ क्या गलत है? इतिहास को '-o-o-o (git-svn) -o-o-o (मास्टर)' जैसी कुछ दिखानी नहीं चाहिए? – Cascabel

उत्तर

5

यह एक वास्तविक समाधान नहीं है, लेकिन क्या इसके लायक है के लिए, आप कुछ तथ्य यह है कि --author एक regex मैच का उपयोग करता है का उपयोग कर kludge सकता है। यदि आपका नाम थे, कहते हैं, Jefromi:

git log --author='^[^J]\|J[^e]\|Je[^f]' # and so on 

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

हाल ही में के रूप में, अपने रेंज (start..end, ^stop1 ^stop2 branch, आदि) संकीर्ण करने के लिए शाखाओं का उपयोग कर के अलावा, आप बस --since=<date> विकल्प का उपयोग कर सकते हैं।

+0

कोई बुरा विचार नहीं है! क्या आपको पता है कि रेगेक्स 'गिट लॉग' का स्वाद क्या उपयोग करता है? – RobM

+0

@RobM: गिट रेगेक्स मूल रूप से grep की तरह व्यवहार करता है - इसका उपयोग करने वाले सभी आदेशों के साथ, यह मूल रूप से मूल रेगेक्स है, फिर '-i' (केस अनदेखा करें), '-E' (विस्तारित regex), और' -F '(निश्चित तार) विकल्प। – Cascabel

2
git log --perl-regexp --author='^(?!RobM)' 

स्पष्टीकरण: ^ साथ स्ट्रिंग की शुरुआत कराने के लिए regexp लंगर; फिर उस स्थिति के बाद अपना नाम आने से रोकने के लिए (?!whatever) देखें। इस तरह, आप भी कई लेखकों द्वारा प्रतिबद्ध बाहर कर सकते हैं:

git log --perl-regexp --author='^(?!jack|jill)' 
संबंधित मुद्दे