इस उत्तर में एक बहुत बड़ा त्याग के साथ आता है:
- There might be better/different ways than this one, harnessing only PowerShell code, but I'm no PowerShell expert
- I am the author of the following class library
मैं एक .NET वर्ग पुस्तकालय, Mercurial.Net कि इस कार्यक्रम को पूरा करने के लिए के लिए इंतज़ार कर, एक .NET कार्यक्रम है कि सब करने के सभी पेचीदगियों से निपटने के लिए बिना hg
कमांड लाइन ग्राहक के आसपास लपेटो करने की अनुमति देता है बना दिया है , आदि नोट: आपको Mercurial स्थापित करने की आवश्यकता होगी, और कक्षा पुस्तकालय के लिए काम करने के लिए पैथ के माध्यम से उपलब्ध होगा।
इसे Nugetpackage के माध्यम से स्थापित किया जा सकता है।
चूंकि मैं कोई पावरशेल विशेषज्ञ नहीं हूं, इसलिए मैं दिखाऊंगा कि सी # कोड और मेरी लाइब्रेरी के साथ ऐसा कैसे करें।
यह मानते हुए कि लाइब्रेरी सभी विकल्प (अभी तक) लागू नहीं करती है, दुख की बात है कि माता-पिता कमांड को मेरी लाइब्रेरी द्वारा उपयोग नहीं किया जा सकता है, लेकिन लॉग कमांड शायद अधिक ओवरहेड कर सकता है। आपको यह स्वीकार करना होगा कि यह स्वीकार्य है या नहीं।
माता-पिता कमांड का उपयोग नहीं किया जा सकता है, क्योंकि अब मैंने मर्कुरियल में टेम्पलेटिंग सिंटैक्स के लिए समर्थन लागू नहीं करने का फैसला किया है, क्योंकि तब मुझे पता है कि किस तरह का आउटपुट उम्मीद कर सकता है और इसे वापस उचित रूप से पार्स कर सकता है। नेट उदाहरण
var repo = new Repository(".");
var tags = repo.Log(new LogCommand().WithRevision("tag()")).First().Tags.ToArray();
इस टैग के नामों की एक सरणी के साथ tags
से स्थापित हो जाएगा:
यहाँ कि tipmost टैग मिलेगा नेट कोड है। लॉग कमांड लॉग इन रिवर्स ऑर्डर देता है, पहले सबसे नए बदलाव, इसलिए .First()
को नवीनतम परिवर्तन मिलेगा। कि यदि एक टैग है
repo.Log(new LogCommand().WithRevision("tag() and ancestors(.)")).First().Tags...
^---------------^
यह काम कर फ़ोल्डर में संशोधन शामिल हैं:
आप निकटतम टैग भी वर्तमान में काम कर रहे फ़ोल्डर के एक पूर्वज है कि जरूरत है, यहाँ बदली हुई कोड है।यदि आपको पूर्वजों की आवश्यकता है, तो कार्य फ़ोल्डर के संशोधन सहित:
repo.Log(new LogCommand().WithRevision("tag() and ancestors(.) and not .")).First().Tags...
^--------^
बिल्कुल सही धन्यवाद। इस मामले में, कोट्स के केवल एक सेट के साथ पहला उदाहरण काम करता था। –
मेरे लिए नवीनतम टैग नहीं देता है .. लेकिन एक पुराना टैग, क्या यह सभी शाखाओं की जांच करता है क्योंकि टैग वैश्विक हैं? – OZZIE