nant

2009-09-12 12 views
5

से Mercurial का उपयोग कैसे करें मेरे पास एक छोटा निजी Google कोड प्रोजेक्ट है। एक एससीएम के लिए मैं Mercurial का उपयोग करें। और स्थानीय निर्माण के लिए मैं नेंट का उपयोग करना चाहता हूं।nant

तो मूल रूप से:

  1. मैं एक nant कार्य
  2. का उपयोग कर एक ज्ञात तेज रिपोजिटरी से मेरे स्रोत फ़ाइलों को डाउनलोड करने मैं इतना है कि मैं इकट्ठा कर सकते हैं किसी भी तरह भंडार का संशोधन संख्या प्राप्त करना चाहते हैं चाहते हैं एक अच्छा छोटा असेंबली संस्करण संख्या

बिल्ड स्क्रिप्ट निरंतर एकीकरण के लिए उपयोग नहीं की जाएगी बल्कि केवल रात के निर्माण और उत्पादन के निर्माण के लिए उपयोग की जाएगी।

मदद

उत्तर

4

मैं nant पता नहीं है, लेकिन में (वास्तविक) चींटी, हम बस एचजी द्विआधारी आह्वान करने के लिए <exec> कार्य का उपयोग करने के लिए धन्यवाद। जिस स्वच्छ आप को शुरू करना चाहते हैं, आप clone या केवल pull कर सकते हैं और hg id -i निष्पादित कर सकते हैं आपको संशोधन संख्या स्पष्ट रूप से मिलती है। विचार करने की एक और बात रिमोट वेब इंटरफेस (अनिवार्य रूप से HTTP के माध्यम से एचजी आर्काइव कमांड) पर संग्रह लिंक का उपयोग कर रही है और टिप आर्काइव को खींचने के लिए केवल wget (बराबर नेंट टास्क नहीं) का उपयोग करें, जिसमें एक आसान संगत लिंक है, और फिर आप संग्रह की hg_archival.txt फ़ाइल के अंदर से संशोधन आईडी प्राप्त कर सकते हैं।

+0

यह काम करेगा लेकिन साथ ही यह भी दर्शाता है कि स्क्रिप्ट के अंतिम उपयोगकर्ता को स्थानीय रूप से स्थापित स्थानीय रूप से स्थापित करना होगा। मैं ईमानदारी से उम्मीद थी कि कुछ taks एक्सटेंशन उपलब्ध – Dejan

+0

मुझे नहीं लगता कि आप किसी भी गैर अस्थिर कोड है कि तेज वायर प्रोटोकॉल वर्तमान में बोलती है बेहतर परिणाम हासिल करेंगे थे, और यह अजगर में है। तो आप इसे आयरनपीथन में चलाने का प्रयास कर सकते हैं, लेकिन उस समय आप एक Mercurial इंस्टॉल के रूप में ज्यादा काम कर रहे हैं। मैं एक अलग उत्तर में अपने प्राप्त आधारित soln फिर से लिखूंगा। –

2

आप तेज द्विआधारी के लिए रवाना बुला के बजाय NANT कोड की तलाश कर रहे हैं, मैं तो बस इस तरह से अपनी रेपो की नोक नीचे खींचने के लिए Nant के <get> कार्य उपयोग करने का सुझाव चाहते हैं:

<get src="http://bitbucket.org/tortoisehg/stable/get/tip.zip" dest="latest.zip" /> 
<unzip zipfile="latest.zip" todir="latest"/> 

और अंदर एक .hg_archival.txt फ़ाइल है कि कुछ इस तरह होता है वहाँ होना चाहिए:

repo: bac32db38e52fd49acb62b94730a55f4f4b0cdee 
node: 61482ea34fd0b9650e738eaebb2fe352c2f6315a 

जिसमें से आप एक निर्माण ब्रांडिंग में उपयोग के लिए उपयुक्त एक hashId मिल सकती है।

दुर्भाग्यवश, मुझे Google कोड पर संग्रह डाउनलोड लिंक नहीं मिल रहे हैं, लेकिन वे Mercurial (और बिटबकेट) वेब इंटरफेस में बहुत मानक हैं, इसलिए मुझे लगता है कि वे कहीं हैं।

0

हालांकि यह मूल रूप से प्रश्न पूछने वाले व्यक्ति पर लागू नहीं होता था, मुझे कुछ ऐसा करने की ज़रूरत थी ... लेकिन मुझे संख्यात्मक संशोधन की आवश्यकता थी (हाँ, मुझे पता है कि संख्या भंडार-विशिष्ट है, लेकिन इसमें संदर्भ जहां स्क्रिप्ट का उपयोग किया जा रहा था यह ठीक था)। मुझे hg.exe को कॉल करने में कोई समस्या नहीं थी, क्योंकि हर जगह यह hg.exe से चलाया जा सकता है।

NAnt स्क्रिप्ट मैं अंत में साथ समाप्त हो गया यह था:

<exec program="hg.exe" output="CurrentMercurialRevision.txt"> 
    <arg value="id" /> 
    <arg value="-n" /> 
</exec> 
<loadfile file="CurrentMercurialRevision.txt" property="buildNumber" /> 

दुर्भाग्य से, वहाँ NUnit में एक तरह से एक संपत्ति में सीधे पढ़ने के लिए होने के लिए प्रकट नहीं होता है, तो मैं मध्यवर्ती पाठ का उपयोग करने के लिए किया था लोडफाइल का उपयोग कर इसे एक संपत्ति में फ़ाइल करें और संसाधित करें। मुझे .hgignore फ़ाइल में "CurrentMercurialRevision.txt" भी जोड़ना पड़ा था ... लेकिन यदि आप Mercurial से परिचित हैं तो शायद आपने पहले ही अनुमान लगाया था। ;-)

उम्मीद है कि यह किसी की मदद करेगा।

+1

मेरे प्रश्नों में से एक को खोजते समय मैं इस धागे में आया। वहाँ एक शांत MSBuild समुदाय taks "मर्क्युरियल" [यहां] (http://msbuildhg.codeplex.com/) के लिए विशेष रूप से लिखा है। इसका उपयोग करने के लिए आपको इस कार्य के लिए किसी भी मध्यवर्ती फ़ाइल का उपयोग करने की आवश्यकता नहीं है। –