Pergunta

Existe uma maneira de dizer ao subversion "atualizar/mesclar, a menos que isso cause um conflito"?

Eu sei que você pode usar --dry-run / status -u para verificar antes de executar a atualização, mas muitas vezes tenho outras pessoas executando atualizações e obtendo páginas da web quebradas porque não percebem a linha "C index.php".

Também notei que o svn não parece muito insatisfeito com os conflitos - ele ainda diz "atualizado para revisão, blá" e sai do zero, independentemente dos conflitos.Portanto, tenho que analisar a saída linha por linha para descobri-los.Certamente há uma maneira melhor?

Foi útil?

Solução

Você pode usar o parâmetro --accept para indicar o que deve acontecer quando ocorrer um conflito:

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

Veja também o resolução interativa de conflitos página no svnbook

Outras dicas

Talvez a melhor maneira seja usar uma ferramenta gráfica?Ou escreva um script para fazer a atualização que redirecione a saída para um arquivo e faça um "cat svnupdate.log | grep "^C "" no final para mostrar algum conflito?

Com as ferramentas gráficas que utilizo (TortoiseSVN e Netbeans), elas fazem um barulho desagradável no final e apresentam uma caixa de diálogo de seleção de mesclagem para lidar com elas.Não conheço nenhum equivalente com tanto poder para as ferramentas de linha de comando.

@jsight:O TortoiseSVN é ótimo, mas eu desenvolvo principalmente em um ambiente *NIX, sem X.Então, normalmente estou usando (restrito à) linha de comando.

Quanto à sua sugestão de script, é nisso que estou trabalhando agora - e é por isso que estou irritado por não poder simplesmente verificar $?.No momento estou pulando a "saída para um arquivo" e usando um canal, mas fora isso exatamente o que você descreve.

Você pode usar o parâmetro --diff3-cmd para especificar qual ferramenta de mesclagem usar (geralmente diff3 de diffutils).

você também pode usar um script de pré-confirmação para procurar marcadores de conflito em arquivos e impedir a confirmação quando eles estiverem presentes.

O Subversion 1.5 (lançado recentemente) adiciona alguma capacidade de especificar o que acontece durante um conflito de atualização, com o argumento "--accept".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top