Como faço para mudar o autor padrão para acessar um repositório SVN?
-
13-09-2019 - |
Pergunta
Eu quero mudar o nome de usuário SVN padrão para um novo nome. Eu tentei solução sugerida neste link ( Como faço para mudar o autor padrão para acessar um repositório SVN local? ), mas ele não está funcionando.
Eu tenho acesso ao repositório SVN através de linha de comando e Aptana usando o cliente subversiva.
Solução
Editar : Esta resposta é sobre como alterar um autor nos logs, e não como definir o autor predefinido. Vou deixar a solução aqui, uma vez que poderia ainda ajudar a desfazer os últimos commits, foram o autor não o correto.
Editar 2 :. Hook script de exemplo e informações de arquivos .bat
Você não dar muitos detalhes, então vamos ter que adivinhar, e meu primeiro pensamento seria sobre o script de gancho que é chamado para validar a mudança. Nesse caso, o cliente não é o problema, é um problema de configuração do servidor.
Certifique-se de que o script de pré-revprop-change (em seu diretório <repository>/hooks
, no servidor), é executável pelo servidor e permite uma mudança de autor.
Aqui está um exemplo em C:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
char *repos = argv[1];
char *rev = argv[2];
char *user = argv[3];
char *propname = argv[4];
char *action = argv[5];
if (!strcmp(action, "M") && !strcmp(propname, "svn:log")) return 0;
if (!strcmp(action, "M") && !strcmp(propname, "svn:author")) return 0;
fprintf(stderr, "Changing revision properties other than svn:log or svn:author is prohibited");
return 1;
}
Se o seu servidor SVN está em Linux, você também pode simplesmente mudar o nome do arquivo pre-revprop-change.tmpl
que é automaticamente criada com cada repositório para pre-revprop-change
, e dar-lhe permissão de execução para o servidor. Deve olhar como este para permitir autor e log alterações:
#!/bin/sh
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
echo "Changing revision properties other than svn:log or svn:author is prohibited" >&2
exit 1
Para Windows:
@echo off
REM pre-revprop-change.bat hook script
if "%4" == "svn:log" exit /b 0
if "%4" == "svn:author" exit /b 0
echo "Changing revision properties %4% is prohibited" >&2
exit /b 1
Se isso não funcionar, pode ser devido à COMSPEC ou as variáveis ??caminho não com os valores adequados para a conta do servidor, ou ele também poderia ser as permissões no script de gancho. Confira neste link para mais detalhes .
Existem outros exemplos de scripts de gancho na CollabNet .
Mais detalhes na Controle de Versão com Subversion livro on-line, e também aqui (verifique as próximas secções).
Outras dicas
Para Eclipse (mas deve trabalhar com IDE baseado em Eclipse como Aptana):
Nas vistas SVN Repository
do SVN Perpective
, basta ir ao
Location Properties
do repositório desejado e alterar as credenciais na caixa de Authentication
.
Deve mudar o seu autor a partir de agora.
Se você quer reescrever a história, você tem que usar algo como a solução da RedGlyph.
Subversion 1.4.x tem única svn: log permitidos no arquivo pre-revprop-change
padrão. Isso pode causar problema ao usar o Eclipse com Subversive SVN plugin.
Para resolver erro mágico afirmando que
A alteração que não svn propriedades de revisão: log é proibida
depois de comandos SVN. Para resolver este problema add especial
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
a partir de solução RedGlyph acima.