2010-12-02 11 views
7

मैं स्वचालित निर्माण के लिए CruiseControl.NET 1.5.7256.1 सेट अप करने का प्रयास कर रहा हूं। मेरे परियोजना मर्क्युरियल में संग्रहीत किया जाता है, और मैं उपयोग कर रहा हूँ निम्नलिखित ccnet.config:Mercurial के साथ काम कर रहे CruiseControl.NET को कैसे प्राप्त करें: "स्रोत नियंत्रण विफलता (GetModifications)"

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 
    <project name="Slider" webURL="http://localhost/ccnet"> 
     <triggers> 
      <intervalTrigger seconds="3600" /> 
     </triggers> 
     <sourcecontrol type="hg" autoGetSource="true"> 
      <executable>C:\Python26\Scripts\hg.bat</executable> 
      <repo>c:\repos\slider</repo> 
      <workingDirectory>c:\ccnet\slider</workingDirectory> 
     </sourcecontrol> 
     <tasks> 
      <msbuild> 
       <executable>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe</executable> 
       <workingDirectory>c:\ccnet\slider</workingDirectory> 
       <projectFile>Slider.sln</projectFile> 
       <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> 
       <targets>Slider</targets> 
       <timeout>900</timeout> 
       <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger> 
      </msbuild> 
     </tasks> 
    </project> 
</cruisecontrol> 

लेकिन जब मैं एक निर्माण के लिए मजबूर है, मैं इस त्रुटि मिलती है:

[Slider:WARN] Source control failure (GetModifications): Source control operation failed: < was unexpected at this time. 
. Process command: C:\Python26\Scripts\hg.bat log -r 0:123 --template <modification><node>{node|short}</node><author>{author|user}</author><date>{date|rfc822date}</date><desc>{desc|escape}</desc><rev>{rev}</rev><email>{author|email|obfuscate}</email><files>{files}</files></modification> --noninteractive 
[Slider:INFO] Integration complete: Exception - 12/2/2010 1:19:08 PM 

त्रुटि संभवतः गैर उद्धृत के कारण होता है --template पैरामीटर में कोण ब्रैकेट, लेकिन मैं उस पैरामीटर के आस-पास CC.NET को उद्धरण कैसे बना सकता हूं?

@echo off 
rem Windows Driver script for Mercurial 

setlocal 
set HG=%~f0 

rem Use a full path to Python (relative to this script) as the standard Python 
rem install does not put python.exe on the PATH... 
rem %~dp0 is the directory of this script 

%~dp0..\python "%~dp0hg" %* 
endlocal 
+0

hg.bat की सामग्री कैसा दिखता है? – bluevoodoo1

+0

यह एचजी चलाने के लिए पायथन दुभाषिया को बुलाता है। आईआईआरसी इसे पायथन पैकेज इंस्टॉलर द्वारा बनाया गया था। मैं सोमवार को सामग्री पोस्ट कर सकते हैं। –

+1

ठीक है, मैं टीमसिटी में स्विचिंग समाप्त कर चुका हूं, जो एचजी के साथ ठीक काम करता है और कॉन्फ़िगर करना भी आसान है। सीसी.NET के साथ क्या गलत हो रहा था यह जानना अभी भी अच्छा होगा। –

उत्तर

3

मर्क्युरियल साथ मैं सफलतापूर्वक CruiseControl.NET 1.5.7256.1 उपयोग कर रहा हूँ से स्थापित:

===============

यहाँ hg.bat है यह msi, hg.exe के पूर्ण पथ का उपयोग executable मान के रूप में करें।

project\core\sourcecontrol\Mercurial\Mercurial.cs में टेम्पलेट इस तरह प्रयोग किया जाता है:

buffer.AddArgument("--template", HistoryTemplate) 

और इस तरह कमांड लाइन के लिए स्वरूपित किया जाएगा:

string.Format("{0}{1}{2}", arg, separator, StringUtil.AutoDoubleQuoteString(value)) 

जहां विभाजक " " है, और AutoDoubleQuoteString टेम्पलेट बोली जाएगा , इसलिए यह त्रुटि का कारण नहीं हो सकता है।

UPDATE 1

वास्तव में, AutoDoubleQuoteString उद्धरण टेम्पलेट, लेकिन वर्तमान संस्करण में ऐसा नहीं है चाहिए। साथ ही, यदि hg.exe का उपयोग करते समय निर्माण सफल होता है, तो कमांड प्रॉम्प्ट में वास्तविक कमांड लाइन चलाने से एक ही त्रुटि होती है।

अद्यतन (release notes देखें), और (कम से कम मेरे पीसी पर) के बाद से टेम्पलेट अब एक फ़ाइल के रूप में पारित हो जाता है, यह सिर्फ ठीक काम करता है 2

CruiseControl.NET 1.6.7981.1 बस जारी किया गया था।

+0

आह, हम्म। जिस तरह से मैंने एचजी स्थापित किया है, वैसे ही होना चाहिए। –

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