TortoiseSVN a partir da linha de comando e “IF ERRORLEVEL”?
-
19-09-2019 - |
Pergunta
Eu tenho um arquivo de lote que eu estou correndo de um Windows XP w / serviço de estação de trabalho pack 3 que se aplica SQL muda para um banco de dados usando sqlcmd.exe no SQL 2005.
Eu tenho uma entrada de linha de comando para TortoiseSVN para atualizar automaticamente a cópia local do meu repositório assim:
tortoiseproc /command:update /path:"C:/SVN/My Code/Dev/2009.07.23" /closeonend:3
De acordo com a a documentação , o / closeonend : 3. opção irá deixar esta janela TortoiseSVN caixa aberta Se ocorrerem erros, conflitos ou fusões durante a atualização
Se tal ocorrer, e o usuário fecha o diálogo sem resolver as questões, eles poderiam omitir mudanças que queremos aplicado ao banco de dados de teste de um determinado ramo.
Quando a caixa de diálogo TortoiseSVN está fechado no caso de um erro, conflito ou fusão após uma atualização, será o ERRORLEVEL ser ajustado para alguns diferente de zero valor, permitindo me para ignorar o resto do arquivo de lote? Ou será que vai felizmente voltar 0 para indicar que ele fez o seu trabalho com sucesso, mesmo se o código não está certo?
Solução 2
I terminou apenas atualizar manualmente meu repositório SVN local antes de realizar as outras ações no arquivo de lote.
Outras dicas
velha questão, mas eu encontrei a mesma coisa hoje e não há uma solução ...
retornos TortoiseProc -1 em erro e 0 em caso de sucesso, de modo que o seguinte resolveu o problema para mim:
TortoiseProc /path:"%targetdir%" /command:update /closeonend:3
IF %ERRORLEVEL% NEQ 0 goto SvnError
:SvnSuccess
echo It worked!
goto Done
:SvnError
echo It didn't work!
:Done