2011-05-15 10 views
16

पर एचजी रिपोजिटरी के वर्तमान वर्किंग कॉपी संस्करण को कैसे प्रदर्शित करें I अपनी अधिकांश परियोजनाओं के लिए Mercurial का उपयोग करता हूं और जब मैं एक वेबसाइट पर तैनाती करता हूं, तो मैं बस उत्पादन सर्वर पर hg clone और hg pull -u पर करता हूं। मैं जो करना चाहता हूं वह मेरी साइट के पाद लेख में एक छोटा स्निपेट जोड़ना है जो वर्तमान संशोधन संख्या (दशमलव और हेक्स दोनों) के साथ-साथ शायद वर्तमान शाखा को प्रदर्शित करता है। स्टैक ओवरफ़्लो और बिटबकेट दोनों जो मैं ढूंढ रहा हूं उसकी भिन्नता करता हूं।PHP पृष्ठ

मैंने संक्षेप में exec('hg summary') के आउटपुट को पार्स करने का प्रयास किया, लेकिन यह सोचने से पहले कि मैं इसे करने का कोई बेहतर तरीका था, मैं कुछ अनुमति समस्याओं में भाग गया। क्या कोई बेहतर तरीका है, या exec मेरा सबसे अच्छा विकल्प है?

उत्तर

21

आप जानकारी को फ़ाइल में रखने के लिए एक पोस्ट-अपडेट हुक का उपयोग कर सकते हैं। साइट की .hg/hgrc में आप कुछ इस तरह डाल चाहते हैं:

[hooks] 
post-update = hg id --rev > VERSION ; hg id --id >> VERSION 

तो आप अपने php अंदर से उस फ़ाइल को एक्सेस कर सकते हैं। आपको अभी भी यह सुनिश्चित करने की आवश्यकता होगी कि hg pull -u चला रहे उपयोगकर्ता hgrc फ़ाइल पर भरोसा करते हैं और VERSION फ़ाइल में अनुमतियां हैं जैसे कि वेबसर्वर इसे पढ़ सकता है।

+7

संशोधन का एक अच्छा विवरण 'hg log -r जैसे कुछ के साथ प्राप्त किया जा सकता है। - टेम्पलेट "v {latesttag} - {latesttagdistance} - {node | short} \ n" '। यह "v1.0.0-2-5e51254a" जैसे एक स्ट्रिंग देता है (यानी परिवर्तन आईडी '5e51254a' के साथ टैग' 1.0.0' के बाद 2 काम करता है। –

+0

अच्छा उत्तर - मुझे यह पसंद है। 'Exec' पर भरोसा नहीं है, आसान लागू करने के लिए पर्याप्त। धन्यवाद! –

+0

'एचजी आईडी -आर 'एक तर्क की अपेक्षा करता है, मुझे लगता है कि आपका मतलब' -n'? –

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