2013-03-06 6 views
6

मुझे गिट जानकारी लिखने की आवश्यकता है: कमिट नाम, टैग, शाखा, आदि एक बाइनरी (exe) फ़ाइल में।फ़ाइल को निकालने के लिए गिट जानकारी स्ट्रिंग लिखें C#

तार चलाने के लिए आवश्यक है * | grep git, उस फ़ाइल पर बस इसके बारे में नवीनतम गिट जानकारी देखने के लिए। मुझे पता है कि जब मैं (ग्रेप) के बिना इस आदेश चला AssemblyInfo प्रदर्शित किया जाता है, लेकिन मैं दो संभावित समस्याओं का सामना कर रहा हूँ:

  1. मैं अगर मैं चलाने के लिए 'कोड से AssemblyInfo को लिख सकते हैं, यकीन नहीं है गिट लॉग 'कमांड और उसके बाद आउटपुट प्राप्त करें और Assembly इन्फ्लोइंटर में लिखें।

  2. अगर मैं कमांड 'गिट लॉग' का उपयोग करना चाहता हूं तो यह विंडोज पर काम नहीं करेगा, लेकिन यह संभव है कि मेरा ऐप विंडोज़ पर बनाया जाएगा, न कि यूनिक्स पर्यावरण पर।

शायद आप ऐसा करने के लिए एक और तरीका जानते हैं?

+2

जब आप ऐसा करना चाहते हैं - निर्माण या सबमिट पर? –

+0

मैं इसे –

+0

बनाने पर करना चाहता हूं, मैंने पाया कि असेंबलीइन्फो 'स्ट्रिंग' प्रारूप में exe फ़ाइल के अंत में लिखा गया है, इसलिए 'स्ट्रिंग्स' कमांड मुझे दिखाता है कि वहां क्या है। यह इस असेंबलीइन्फो 'गिट लॉग' आउटपुट में बस जोड़ने का एक सही तरीका है, लेकिन मैं विंडोज मशीन पर 'गिट लॉग' नहीं चला सकता। –

उत्तर

2

यह आमतौर पर आपकी बिल्डिंग स्क्रिप्ट में किया जाता है, जो आपके असेंबलीइन्फो के टेम्पलेट संस्करण को भरता है (मूंछें, एक templating भाषा देखें)।

यह निर्माण कदम करता है निम्नलिखित:

फिर आपका सॉफ़्टवेयर निर्माण सामान्य रूप से जारी रहता है।

+0

ठीक है, मैं वास्तव में समझ में नहीं आया कि आपका मतलब क्या है 'मूंछें देखें'। लेकिन जब मैं विंडोज़ मशीन पर अपना ऐप बनाने की कोशिश करता हूं तो मुझे समस्या का सामना करना पड़ रहा है, क्योंकि मैं 'git' कमांड नहीं चला सकता क्योंकि वे cmd में नहीं बनाए गए हैं। –

+1

@ user1243496: बस अपने 'पथ' पर्यावरण चर में git.exe के पथ को जोड़ें। –

+0

जो अच्छा लगता है, लेकिन मुझे अधिक सार्वभौमिक तरीके की आवश्यकता है, उदाहरण के लिए यदि मैं इसे मशीन पर बनाना चाहता हूं जहां पाथ पर्यावरण चर में कोई git.exe नहीं है। एक और तरीका है .git फ़ोल्डर में फ़ाइलों को पढ़ने के लिए, लेकिन मुझे यह अव्यवहारिक लगता है .. –

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