Запуск обновления SVN в приложении ColdFusion - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь вызвать svn-обновление в моем приложении ColdFusion.У меня есть следующие коды:

<cfset variables.svnexe = "c:\Progra~1\Collabnet\Subver~1\svn.exe">
<cfset variables.svnarg = " up ">
<cfset variables.svnarg = variables.svnarg & "c:\inetpub\wwwroot\mybranch\ ">
<cfset variables.svnarg = variables.svnarg & "--username myusername --password myPassword">

<cfexecute variable="temp" name="#variables.svnexe#" arguments="#variables.svnarg#"  timeout="1000">    
</cfexecute>

Проблема, с которой я столкнулся, заключается в том, что когда я запускаю эквивалентную команду в командной строке (т.е.

c:\Progra~1\Collabnet\Subver~1\svn.exe up c:\inetpub\wwwroot\mybranch\ --username myusername --password myPassword

), она работает совершенно хорошо.Под «он работает» я имею в виду, что могу видеть обновление в своей папке после запуска команды в командной строке.Однако, когда я запускаю приложение ColdFusion, оно не выдает мне никаких ошибок, но оно также не делает того, что должно делать.

Я попытался поместить команду svn в командный файл и запустить ее вХолодный синтез.То же самое происходит, это работает, когда я работаю в командной строке, но не в приложении ColdFusion.

Мой вопрос: в чем может быть причина?И как мне решить эту проблему?

Заранее спасибо, Монте

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Во-первых, убедитесь и перехватите выходные данные вызова cfexecute. вы не получаете ошибку ColdFusion - но это не означает, что вы не получаете ошибку командной строки (которую CF с радостью проигнорирует).

Второе. Интересно, пытались ли вы удалить псевдонимы из 8 символов из вашего скрипта (вместо «progra ~ 1» используйте «программные файлы (86)»). Требуется немного спорить, потому что вы должны поместить их в кавычки (обычно).

Наконец - как и предполагали другие, это может быть проблема с разрешениями.

0 голосов
/ 28 марта 2012

Возможно, стоит взглянуть на SVNkit (http://svnkit.com/index.html), поскольку ColdFusion работает поверх Java. Вы можете либо выбросить его в папку CF libs, либо использовать JavaLoader. Затем вы создаете объекты Java и используете их в каталоге SVN.

Вот сообщение в блоге с примером кода: http://deploy.alagad.com/blog/post.cfm/svnkit-coldfusion-and-you--very-cool-java-cf-stuff

Также есть пример кода Java для обновления репозитория, который должен быть перезаписан с помощью нескольких функций CreateObject ("java", "..."). http://wiki.svnkit.com/Updating_From_A_Repository

0 голосов
/ 27 марта 2012

я написал файл .bat, и вот как выглядит моя строка start "" TortoiseProc.exe /command:update /path:"C:\inetpub\wwwroot\myfolder\"

Я знаю, что этот код работает, когда запускается один как файл .bat.start "" полезен только в том случае, если вы хотите запустить несколько обновлений и одновременно запускать их все.

Я бы попробовал выполнить эту команду, и если это не удастся, я думаю, это проблема с разрешениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...