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.

Foi útil?

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.

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