2013-04-02 4 views
0

J'ai un fichier build.xml ant avec la configuration suivante:Problème avec SVNAnt commettre

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" 
classpathref="svnant.classpath"/> 

<svnSetting id="svn.settings" username="${svn.username}" password="${svn.pw}" 
javahl="false" svnkit="true" failonerror="true"/> 

<target name="commit"> 
    <svn refid="svn.settings"> 
     <commit file="${webcontent}/version.properties" 
      message="commit version from build.xml by ${user.name}" 
     /> 
    </svn> 

</target> 

L'exécution de la construction fourmi génère la sortie suivante:

[svn] Using svnkit 
[svn] <Commit> started ... 
[svn] commit -m "commit version from build.xml by username" -N C:/path/to/WebContent/version.properties 

Mais il ne se termine jamais. Juste accroché sur cette déclaration. Je finis par avoir à terminer la construction et le nettoyage du répertoire svn puisque le répertoire WebContent a été verrouillé par SvnKit

Le référentiel client est svn version 1.6 et j'utilise svnant version 1.3.1 Version Ant est 1.7 .1

Quel est le problème avec cela? Pourquoi ne lance-t-il jamais une erreur ou s'arrête-t-il?

Est-ce que SvnKit seulement SVN version 1.7+?

EDIT:

Je foiré avec elle un peu plus. Si j'éxecuter la construction et le fichier n'a pas de changements, la construction se poursuit avec

[svn] <Commit> finished. 

Mais si je fais des modifications dans le fichier et lancez la construction, il se bloque.

Qu'est-ce qui me manque?

+0

Je recommande l'exécution de votre Ant build dans un débogueur. Voir [Est-il possible de déboguer une tâche de fourmis externe?] (Http://stackoverflow.com/questions/11358848/is-it-possible-to-debug-an-external-ant-task/11363385#11363385) pour un Exemple. Lorsque vous pensez que la construction a été bloquée, utilisez la commande Break de votre débogueur. Cela vous donnera une pile d'appels. Copiez la pile des appels et ajoutez-la à votre message d'origine. Nous pourrons peut-être en savoir plus. –

+0

Merci @ChadNouis, j'ai finalement découvert que je mettais mon nom d'utilisateur svn et pw avant que le fichier de propriétés pour eux a été chargé. Il était suspendu parce que le référentiel nécessite un nom d'utilisateur/pw mais aucun n'a été fourni. On dirait que quelque chose que le serveur rejetterait ou que le client réaliserait est incorrect cependant. – pclem12

+0

@ pclem12 Pouvez-vous poster votre commentaire comme une réponse afin que chacun puisse facilement voir que cette question a été résolue? –

Répondre

1

Merci @ChadNouis, J'ai finalement découvert que je mettais mon nom d'utilisateur svn et pw avant que le fichier de propriétés pour eux a été chargé.

Il était suspendu car le référentiel nécessite un nom d'utilisateur/pw mais aucun n'a été fourni.

On dirait que quelque chose que le serveur refuserait ou que le client réaliserait a expiré, mais c'était le problème.

La configuration incriminée:

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" 
classpathref="svnant.classpath"/> 

<!-- create svnSetting from properties...that don't exist yet --> 
<svnSetting id="svn.settings" username="${svn.username}" password="${svn.pw}" 
javahl="false" svnkit="true" failonerror="true"/> 

<!-- properties file loaded after svnSetting created...d'oh --> 
<property file="svn-credentials.properties"/> 

<target name="commit"> 
    <svn refid="svn.settings"> 
     <commit file="${webcontent}/version.properties" 
      message="commit version from build.xml by ${user.name}" 
     /> 
    </svn> 

</target> 
+0

Pouvez-vous partager un peu de votre code modifié ici avec nous. J'ai un problème similaire et je ne suis pas sûr de savoir de quel fichier de propriétés vous parlez. – kminke

+0

@kminke voir mes modifications à la réponse. J'espère que cela pourra aider. – pclem12