Como você é notificado das atualizações do seu repositório?
-
21-09-2019 - |
Pergunta
Estou trabalhando em vários repositórios no trabalho e gostaria de ser informado, se algo mudar nos repositórios SVN.
Eu fiz um pequeno script de morcego (sim, o morcego é útil às vezes) que continua executando um svn log -r BASE:HEAD
na minha cópia de trabalho. Ele mostra todos os comentários e datas de revisão de envio. Funciona muito bem, mas não é confortável para diferentes repositórios.
Como você acompanha as mudanças em seus repositórios? Você usa um pequeno programa que fez para si mesmo? Você usa o software que alguém fez? Estou interessado em todas as abordagens desse problema.
Eu gostaria de conseguir notificações e mais informações sobre o compromisso. As funções integradas do IDE são boas, mas funcionam apenas se eu solicitar as informações.
Não quero agir para obter essas informações.
Plataforma: Windows, Subversão 1.5 e superior.
Solução
estou a usar CommitMonitor; é de um dos Tortoisesvn desenvolvedores. Você pode adicionar facilmente vários URLs de SVN para monitorar e especificar um intervalo para verificar se há compromissos. Se alguma atualização for encontrada, ele mostrará um pouco de janelas pop -up no canto da tela.
Há também Monitor SVN, mas isso é um pouco mais complicado de usar e configurar. Além de fazer uma mensagem sobre compromissos, ele também pode mostrar quais arquivos você modificou e lembrá -lo de cometer suas alterações.
Outras dicas
Se você tem Tortoisesvn instalado, então você pode usar Notificador svn.
Eu tenho Webvn Instalado e assine os feeds RSS dos caminhos em que estou interessado.
eu uso PowerShell Para detectar alterações em uma ramificação SVN e implantar. Este script deve ser chamado de Agendador de tarefas e executado a partir da raiz SVN (ou você pode simplesmente fazer um loop e dormir para sempre):
function get-revision() {
$rev = svn info 2>&1 | sls '^Last Changed Rev:' | out-string
$rev = $rev -split ':'
$rev[1].Trim()
}
function if-changed([string]$branch, [scriptblock]$script) {
Write-Verbose "Checking for changes: $branch"
pushd $branch
$r = get-revision
if ($r -gt $status[$branch]) {
Write-Verbose "|- '$branch' changed, revision $r"
& $script
}
else { Write-Verbose "|- '$branch' is up to date at revision $r" }
$status[$branch] = $r
popd
}
svn update
Write-Verbose "Getting the deploy status"
if (Test-Path status) { $status = Import-Clixml status } else { Write-Verbose "|- No status found"; $status=@{} }
if-changed trunk { "Deploying trunk..." }
Isso é muito mais fácil e portátil do que usar qualquer um dos aplicativos de terceiros acima mencionados.
svn info | grep Revision
funciona para mim. Isso mostra, por exemplo:
Revision: 183
Se ele mudou do que acho que deveria, investigo mais.
eu uso
svn status --show-updates
Para mostrar quais arquivos mudei e também os arquivos que mudaram no repositório.
Você poderia usar Scripts de gancho da subversão para configurar notificações.