Domanda

Ho installato un CCNET e nel complesso funziona bene. Esegue il polling del server SVN e verifica il codice se rileva eventuali modifiche. Tranne, cioè, quando c'è un check-in durante la compilazione. Attualmente l'esecuzione di build e test richiede circa 3-4 minuti, se qualcuno controlla il codice durante il controllo di build crusie non riconosce il check-in e attende fino a quando non viene eseguito un check-in dopo l'esecuzione della build.

Perché potrebbe essere?

Questa è la parte svn del file ccnet.config:

<sourcecontrol type="svn">
    <executable>svn.exe</executable>
    <trunkUrl>http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/</trunkUrl>
    <workingDirectory>C:\CrusieControlProjects\AcademyPro\</workingDirectory>
    <username>******</username>
    <password>******</password>
    <autoGetSource>true</autoGetSource>
</sourcecontrol>

Modificato per chiarezza Il problema non riguarda i checkin atomici. Un check-in può essere completato, CCNET crea l'app e avvia l'esecuzione dei test. A questo punto, qualcun altro effettua un altro check-in. Una volta completata l'esecuzione del test, mi aspetto che CCNET rilevi il check-in effettuato durante l'esecuzione del test.

Questo non accade, il check-in è mancato e una build che mi aspetto è mancata.

È questo comportamento previsto o non capisco cosa stesse dicendo @Jeff Mattfield?

È stato utile?

Soluzione 4

Il tempo sul server subversion era di circa 2 ore rispetto al tempo sul server cruisecontrol. Ho risolto questo problema e ora i check-in sembrano essere molto più fluidi.

Altri suggerimenti

Un commit Subversion è atomico. Non è disponibile per il checkout finché non viene completato senza errori. L'aggiornamento o il checkout da un repository durante un commit parallelo determina lo stato del repository prima di quel commit.

In altre parole, CC.NET ottiene ciò che il repository conteneva dopo l'ultimo commit riuscito.

Non ho mai avuto questo problema e lavoro con SVN + CCNet da un paio d'anni ormai.

  1. Puoi pubblicare l'intera configurazione del progetto CCNet? Ciò potrebbe avere a che fare con i trigger, ad esempio.
  2. Quale versione di CCNet stai usando?
  3. Dici che CCNet rileva solo le modifiche avvenute dopo la build. OK, ma quando guardi il rapporto sulla costruzione del progetto (" Modifiche dall'ultima build "), mostra solo quelli che si sono verificati dopo la build precedente o tutti (compresi quelli che si sono verificati durante la build precedente)? ??

Verificare che ccservice.exe.config / ccnet.exe.config abbia impostato il livello di registro di debug:

<configuration>
  <configSections>
  ...
    </log4net>
      <root>
        <level value="DEBUG"/>
      <root>
    </log4net>
  ...
  </configuration>
</configSections>

Quindi controlla l'output della sovversione in ccnet.log per la revisione della sovversione.

2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] <logentry
2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe]    revision="1057">

Assicurati che la revisione sia l'ultima revisione con commit sotto il percorso svn trunkUrl (http: //*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/).

Altrimenti controlla il registro e il file di stato per ulteriori indizi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top