0

次の設定の ant build.xml ファイルがあります。

<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>

ant ビルドを実行すると、次の出力が生成されます。

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

しかし、それは決して終わりません。その声明に固執するだけです。WebContent ディレクトリが SvnKit によってロックされるように設定されているため、ビルドを終了して svn ディレクトリをクリーンアップする必要があります。

クライアント リポジトリは svn バージョン 1.6 で、私は svnant バージョン 1.3.1 を使用しています Ant バージョンは 1.7.1 です

これはどうしたの?

エラーが発生したり停止したりしないのはなぜですか?

SvnKit は SVN バージョン 1.7 以降のみですか?

編集:

なので、もう少しいじりました。ビルドを実行し、ファイルに変更がない場合、ビルドは続行されます

 [svn] <Commit> finished.

しかし、ファイルを編集してビルドを実行すると、ハングします。

私は何が欠けていますか?

4

1 に答える 1

1

@ChadNouisに感謝します。プロパティファイルがロードされる前に、svnユーザー名とpwを設定していたことが最終的にわかりました。

リポジトリにはユーザー名/パスワードが必要ですが、何も指定されていないため、ハングしていました。

サーバーが拒否するか、クライアントがタイムアウトを認識するもののように見えますが、それが問題でした。

問題のある構成:

<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>
于 2013-04-05T16:46:35.320 に答える