2011-05-01 27 views
10

मेरे पास एक Mercurial भंडार है कि कई लोग अपने स्वयं के, स्थानीय भंडार से धक्का देते हैं। मैं, सभी परिवर्तनों के लिए इस केंद्रीय भंडार क्वेरी करने के लिए कि पिछले 24 घंटों में है कि भंडार पर पहुंचे सक्षम होने के लिए विशेष रूप से न सिर्फ परिवर्तन है कि थे पिछले 24 घंटों में प्रतिबद्ध चाहते हैं।Mercurial में, मैं पिछले 24 घंटों में रेपो में किए गए संशोधन कैसे देख सकता हूं?

एचजी लॉग --डेट विकल्प मुझे जो चाहिए वह नहीं करता है। यह केवल प्रतिबद्धता की तारीख के आधार पर चयन को परिशोधित करता है। तो, एचजी लॉग --डेट -1 मुझे कल से संशोधित किया गया है, लेकिन तीन दिन पहले संशोधित संशोधन नहीं, लेकिन केवल ने इस रेपो पर धक्का दिया।

यदि मुझे 24 घंटों से कम समय में रेपो में आने वाले सबसे पुराने संशोधन का संशोधन संख्या (या आईडी) मिल सकती है, तो यह चाल चलती है; लेकिन मैं कुछ भी नहीं देख सकता - यहां तक ​​कि एचजी सहायता में मदद करता है - ऐसा लगता है कि यह काम करेगा।

उत्तर

10

आप pushlog का उपयोग कर सकते हैं, जो Mercurial का विस्तार है जिसे आप सर्वर-साइड कॉन्फ़िगर करते हैं।

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

दुर्भाग्यवश मैं उस पृष्ठ पर जो कुछ भी करता हूं उससे ज्यादा नहीं जानता, मैंने मर्कुरियल के आईआरसी चैनल से पूछा और उस नाम को वहां मिला।

आप यहां लॉग का एक उदाहरण देख सकते हैं: calc pushlog

इसके अतिरिक्त, ऐसे वेब सिस्टम हैं जिनका उपयोग आप कर सकते हैं जिनमें ऐसे लॉग हैं। यहां बताया गया है कि मेरे Kiln लॉग आज के बदलावों के बाद जैसा दिखता है।

Kiln activity log

+0

यह अच्छा है, और मेरे विचार से कहीं अधिक स्वचालित! –

+1

पॉइंटर के लिए धन्यवाद [pushlog] (http://kenai.com/projects/sonichg/pages/Pushlog)।यह मेरी ज़रूरतों को पूरी तरह से पूरा नहीं करता है - जो मुझे वास्तव में पसंद है, वह "आगे बढ़ने" की बजाय इसे पीछे से करने का एक तरीका है - लेकिन यह टूलबॉक्स में उपयोगी आइटम की तरह लगता है। –

1

मुझे ऐसा करने के लिए एक अंतर्निहित विधि के बारे में पता नहीं है, लेकिन आप उस जानकारी को चौराहे के रास्ते में प्राप्त कर सकते हैं। प्रत्येक दिन अपने मुख्य रेपो क्लोन करने के लिए एक स्क्रिप्ट लिखें, और तदनुसार इसे नाम दें; project1-2011-4-31, project1-2011-5-1\ कहें। तो फिर यह क्या दूसरे के से आने वाली है को देखने का एक सरल बात है:

cd %projectdirectory%\dateclones 
cd project1-2011-3-25 
hg incoming ..\project1-2011-5-1 

आप जब project1-2011-3-25 क्लोन किया गया था और project1-2011-5-1 क्लोन किया गया था के बीच धक्का दिया सभी परिवर्तनों को मिलेगा।

+0

आप पूरे रेपो हर बार क्लोन करने के लिए जरूरत नहीं है। बस बार-बार 'एचजी पुल' का प्रयोग करें। यह आपको बताएगा कि स्थानीय रिपो में कितने बदलाव जोड़े जाते हैं। – Ringding

+0

यह मुझे एक दिलचस्प विचार देता है! मेरे पास वास्तव में रिपो का एक दैनिक क्लोन है जो कई महीनों में वापस जा रहा है। (हम क्लोन को हमारी दैनिक निर्माण प्रक्रिया में पहला कदम बनाते हैं, और डिस्क से पुराने क्लोन को हटाने का कोई कारण नहीं है।) आगे बढ़ते हुए, मैं दैनिक निर्माण पेड़ की नोक पर एक टैग जोड़ सकता हूं; तो मेरी क्वेरी कल के बनाम कल के टैग 'एचजी लॉग' कर सकती है। इतिहास के लिए, सभी पुराने क्लोनों के माध्यम से फिर से शुरू करना बहुत आसान होगा, प्रत्येक में टिप संशोधित करें, और इसे टैग करें। –

+1

टैग आम तौर पर इतिहास में होते हैं (एक टैग जोड़ना एक प्रतिबद्ध बनाता है), इसलिए @ टिमरुद्दीक के समाधान का प्रयास करने वाले किसी भी व्यक्ति को 'एचजी टैग' के लिए '-l' तर्क का उपयोग करने पर विचार करना चाहिए, जो उन्हें स्थानीय और इतिहास के बाहर बनाता है। – Kevin

संबंधित मुद्दे