2011-12-28 7 views
5

में चेक इन करने के लिए कोई शेष परिवर्तन नहीं है हमारे पास टीएफएस में हमारी "पूर्व-निर्मित" असेंबली को हमारी टीमसिटी बिल्ड परियोजनाओं में से एक के रूप में अपडेट करने के लिए एक NAnt स्क्रिप्ट है। निर्माण अन्य निर्माणों से ट्रिगर होता है। यह एक टीएफ चेकआउट करता है, कुछ फाइलों को ले जाता है, फिर एक टीएफ चेकइन करता है।टीएफ त्रुटि:

<target name="checkin.assemblies"> 
    <exec program="${tf}"> 
    <arg value="checkin" /> 
    <arg value="${dir.assemblies}" /> 
    <arg value="/comment:${message}." /> 
    <arg value="/noprompt" /> 
    <arg value="/recursive" /> 
    </exec> 
</target> 

नियमित रूप से हम पाते हैं::

प्रासंगिक लक्ष्य (tf TF.exe के पथ पर ले कर)

Checking in edit: ... 
The following changes were not checked in because the items were not modified. 
Undoing edit: ... 
There are no remaining changes to check in. 
External Program Failed: E:\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe (return code was 1) 
Process exited with code 1 
BUILD FAILED - 0 non-fatal error(s), 1 warning(s)

क्या मुझे लगता है कि क्या हो रहा है निर्माण ट्रिगर किया जाता है एक बार बहुत अधिक है कई बार (कई बिल्ड हैं जो इसे ट्रिगर कर सकते हैं)। अगर हम जिन फ़ाइलों को अपडेट करना चाहते हैं, वे नहीं बदले हैं, टीएफएस चेक-इन छोड़ देता है और "मददगार" त्रुटि कोड देता है। दुर्भाग्य से यह "चेक-आउट के लिए लॉक" त्रुटियों के लिए भी 1 लौटाएगा, जो गंभीर हैं।

संदर्भ के लिए: TF Command-Line Exit Codes

वैकल्पिक हल सरल लेकिन कष्टप्रद है - बनाता है कि एक विधानसभा की वर्शन संख्या टक्कर जाएगा और फिर इस बिल्ड को गति प्रदान में से एक बंद आग।

हम इस काम को विश्वसनीय तरीके से कैसे बना सकते हैं?

अद्यतन: हमने "चेन" बनाने के लिए टीमसिटी के लिए कॉन्फ़िगरेशन ट्रिगरिंग कॉन्फ़िगरेशन को संशोधित करने में संशोधन किया, यह सुनिश्चित करने के लिए कि चेकइन केवल एक बार ट्रिगर हो जाता है।

उत्तर

8

tf checkin के लिए /force नामक एक प्रकार का दस्तावेज कमांड लाइन पैरामीटर है। यह in the usage and on MSDN सूचीबद्ध है, लेकिन इसे कहीं भी वर्णित नहीं किया गया है।

यह CheckinParameters.AllowUnchangedContent ध्वज सेट करता है और आपको उस फ़ाइल में चेक-इन करने की अनुमति देता है जिसमें कोई परिवर्तन नहीं है। इससे आपकी समस्या का समाधान हो जाना चाहिए।

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