Я извлекаю рабочую копию проекта с помощью Checkout-WorkingCopy, а затем удаляю каталог с помощью Cleanup-WorkingCopy (код для этих функций находится в конце этого сообщения).
Проблемы, с которыми я сталкиваюсь:
- Вместо повторения
"Checking out from svn://somePath1 <strong><em>to</em></strong> C:/somePath2"
оно повторяет "Checking out from svn://somePath1 C:/somePath2 <strong><em>to</em></strong>"
В Cleanup-WorkingCopy выдает следующую ошибку при попытке выполнить Pushd
,
<Push-Location : Cannot convert 'System.Object[]' to the type 'System.String'
required by parameter 'LiteralPath'. Specified method is not supported.
+ Pushd <<<< $directory
+ CategoryInfo : InvalidArgument: (:) [Push-Location], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.PushLocationCommand>
Наконец, я получаю ошибку "The syntax of the command is incorrect"
при выполнении Rmdir
.
Функции, которые я использую, приведены ниже. Я проверил аргументы, отправленные функциям, и они верны.
#Checks out a copy from svnPath into appFilePath
Function Checkout-WorkingCopy($svnPath, $appFilePath) {
Echo "Checking out from $svnPath to $appFilePath"
svn checkout $svnPath $appFilePath --quiet
Echo "Checkout Done"
}
#Deletes the working copy previously checked out
Function Cleanup-WorkingCopy($directory, $appFilePath) {
Pushd $directory
Cmd /C "Rmdir /S /Q $appFilePath"
}