Использовать svnant без имени пользователя и пароля

Я проверил код с помощью командной строки SVN. У меня есть скрипт сборки Ant, который я хочу запустить, который выполнит коммит, когда он будет сделан.

Я хотел бы использовать svnant, такой как

<svn svnkit="false" javahl="false" failonerror="true">
    <commit dir="${dir}" message="${message}"/>
</svn>

но не работает и дает эту ошибку

[svn] <Commit> started ...
[svn] svn: Commit failed (details follow):
[svn] svn: OPTIONS of 'http://svn.local/path/to/my/proj': authorization failed (http://svn.local)
[svn] <Commit> failed !

Однако, если я делаю exec напрямую, как это

<exec executable="svn">
    <arg line="commit ${dir} -m '${message}'"/>
</exec>

это будет работать нормально. Что странно, что с помощью svnkit="false" а также javahl="false" должен заставить svnant использовать командную строку svn.

Так что здесь происходит? Мне не нужно указывать имя пользователя / пароль в вызове svnant, поскольку svn командной строки явно не нуждается (он был кеширован).

1 ответ

Решение

Простое и надежное решение - сохранить желаемое имя пользователя и пароль svn в файле build.properties в вашем домашнем каталоге, установить разрешения, чтобы другие пользователи не могли его прочитать, и загрузить их в свой скрипт ant.

Я полагался на кэширование аутентификации в сценариях сборки, и это раздражает, потому что рано или поздно аутентификация не будет кэширована, или неправильная аутентификация будет кэширована, и вы будете тратить время, пытаясь понять, что не так. Или вы можете решить запустить ant в другой среде, например, на сервере сборки, что затрудняет загрузку кеша аутентификации svn. Лучше загрузить вашу аутентификационную информацию из файла и программного муравья, чтобы дать четкое сообщение, когда этот файл отсутствует.

Вы также можете попробовать использовать клиент командной строки svnkit для кэширования вашей аутентификации и посмотреть, работает ли она при использовании через ant.

В этой теме говорится о тех же проблемах: http://www.nabble.com/svnant-and-authentication-td17865407.html

Другие вопросы по тегам