नोट:
Git अलग सिर के साथ बनाता है कोई बात नहीं क्या
हालांकि यह स्पष्ट नहीं है अगर: OP milkplus की टिप्पणी हाल Hudson bug 6856 (जून 2010) है, जो उल्लेख है को संदर्भित करता है उस विशेष मुद्दे को हल किया जाएगा (उत्तरों का सुझाव है कि यह वास्तव में "डिज़ाइन के रूप में काम कर सकता है"!), यह this version of hudson Git Plugin को भी संदर्भित करता है, जो स्थानीय शाखा को चेकआउट करने की अनुमति देता है।
आप क्योंकि, जैसा कि Git प्लगइन अब सही काम कर रहा है, यह चेकआउट सीधे एक प्रतिबद्ध SHA1 किया एक DETACHED HEAD
में हैं, और एक शाखा नहीं HEAD
।
आप जिस राज्य में हैं, HEAD
अलग है किसी भी शाखा द्वारा दर्ज नहीं किया गया है (जो प्राकृतिक है --- आप किसी भी शाखा में नहीं हैं)। इसका क्या अर्थ है कि आप अपनी अस्थायी प्रतिबद्धताओं को त्याग सकते हैं और मौजूदा शाखा में वापस स्विच करके विलय कर सकते हैं।
आपकी बिल्डिंग स्क्रिप्ट पहले find what branch the relevant commit is coming from पर आज़मा सकती है।
के रूप में ओ पी milkplussource code of the Hudson Git Plugin को देखकर महसूस किया:
public void buildEnvVars(AbstractBuild build, java.util.Map<String, String> env) {
super.buildEnvVars(build, env);
String branch = getSingleBranch(build);
if(branch != null){
env.put(GIT_BRANCH, branch);
}
}
एक वातावरण चर GIT_BRANCH
सेट कर दिया जाता है, लेकिन यह एक्सएमएल निर्माण स्क्रिप्ट में कोई मूल्य नहीं प्रतीत होता है:
<property environment="env"/>
<echo>GIT_BRANCH = ${env.GIT_BRANCH}</echo>
अगर ऐसा है, तो यह issue 7554 की वजह से हो सकता है:
GIT_BRANCH
सेट नहीं जब कई शाखाओं का निर्माण के लिए चुना जाता है
जब पहचान करने के लिए क्या शाखा वर्तमान बिल्ड पर हैं की कोशिश कर रहा, मैंने पाया कि GIT_BRANCH
वातावरण चर जब अधिक तो एक भी सेट नहीं है शाखा का निर्माण करने के लिए चुना जाता है।
यह वह जगह है नहीं वास्तव में एक बग एक सुविधा का अनुरोध के रूप में इतना, मुझे लगता है - GIT_BRANCH
env var केवल, सेट वहाँ एक एकल शाखा दी जाती है तो इस तरह के रूप में, यह प्रासंगिक नहीं है, तो/एक से अधिक शाखाएं हैं जब । मुझे यकीन नहीं है कि हम इस संदर्भ में कई शाखाओं के लिए एक env var कैसे प्रारूपित करेंगे।
मैंने सोचा कि GIT_BRANCH
वर्तमान में निर्माण की जा रही शाखा में सेट किया जाएगा। जैसे कि निर्माण मास्टर पर है, इसमें मास्टर शामिल होगा।
यह एक और दूरदराज कि शाखा है, जो इस बिल्ड दौरान बनाया गया था करने के लिए उदाहरण के लिए धक्का करने के लिए मदद मिलेगी। या सही शाखा सेट के साथ एक और बिल्ड ट्रिगर करा सकते हैं।
दर्पण NPE described here
किसी कारण का प्रकार Git प्लगइन GIT_BRANCH
वातावरण चर के लिए शून्य मान पारित करने के लिए शुरू कर दिया।
इस वजह से Maven प्लगइन System.getProperties().putAll(systemProps)
कॉल में विफल।
समाधान "master
" का उपयोग "**
" या खाली स्ट्रिंग के बजाय डिफ़ॉल्ट गिट शाखा के रूप में करना था।
http://github.com/hudson/Hudson-GIT-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java मुझे लगता है कि Git पता चला Hudson के लिए एससीएम प्लगइन GIT_BRANCH पर्यावरण चर सेट करने के लिए buildEnvVars() विधि को ओवरराइड करता है लेकिन यह GIT_BRANCH = $ {env.GIT_BRANCH} –
milkplus
अच्छा बिंदु का उपयोग करके एंटी स्क्रिप्ट के माध्यम से नहीं आ रहा है, मैंने इसे अपने उत्तर में एकीकृत किया है, साथ ही किसी समस्या का संदर्भ जो आपकी वर्तमान स्थिति को समझा सकता है। – VonC
http://issues.hudson-ci.org/browse/HUDSON-6856 का अर्थ है कि हडसन पर पृथक शाखा मुद्दे को ठीक किया जा सकता है। मैं यह सुनिश्चित करने जा रहा हूं कि मेरे पास हडसन और गिट प्लगइन का नवीनतम संस्करण है। – milkplus