No Subversion posso ser um usuário que não seja meu nome de login?


253

Gostaria de saber como Subversionalterar o nome em que minhas alterações aparecem.

Estou apenas começando a usar Subversion . Atualmente, estou usando o código de controle de versão em um laptop XP, onde estou sempre logado com o nome da minha esposa. Eu gostaria que o banco de dados do subversion mostrasse as alterações em meu nome.

Mais tarde replicarei o banco de dados para que fique acessível a toda a casa. Minha esposa usa o computador do escritório onde está sempre logada em meu nome. Provavelmente vou configurá-lo para que verifique automaticamente os documentos modificados ... de preferência com o nome dela.

Eventualmente, provavelmente vou usá-lo em uma máquina Linux com outro nome de usuário.

Existe alguma maneira de modificar o ambiente do usuário para mudar o nome de usuário que o Subversion chama? Eu esperaria algo como configuração SVN_USERNAME='Mark'que substituiria no entanto, geralmente recebe o nome.

Atualização: parece que o --usernamesinalizador ao qual Michael se refere funciona para alterar o nome relatado "svn stat", mesmo para os repositórios locais de arquivos. Além disso, ele é pegajoso, portanto você não precisa especificá-lo para o próximo comando. Até reiniciei e ele ainda usava o "--username"valor da minha inicialização anterior.

Respostas:


280

A maioria dos comandos do Subversion aceita a --usernameopção de especificar o nome de usuário que você deseja usar no repositório. O Subversion lembra o último nome de usuário e senha do repositório usados ​​em cada cópia de trabalho, o que significa, entre outras coisas, que se você usar, svn checkout --username myusernunca precisará especificar o nome de usuário novamente.

Como Kamil Kisiel diz , quando o Subversion está acessando o repositório diretamente do sistema de arquivos (ou seja, a URL do repositório é da forma file:///path/to/repoou file://file-server/path/to/repo), ele usa as permissões do sistema de arquivos para acessar o repositório. E quando você se conecta via tunelamento SSH ( svn+ssh://server/path/to/repo), o SVN usa suas permissões FS no servidor , conforme determinado pelo seu logon SSH. Nesses casos, svn checkout --usernamepode não funcionar no seu repositório.


Obrigado pela resposta rápida. O sinalizador --username parece ser muito grudento, mesmo nas reinicializações. E funciona bem no meu arquivo: repositório.
mercados

70

Para svn over ssh, tente:

svn list svn+ssh://[user_name]@server_name/path_to_repo  

svn solicitará a user_namesenha do.


1
Não funciona com nomes como: johndoe@example.com
neoneye

4
https://user_name@.../pathnão funcionou para mim (cygwin), mas --usernamefunciona bem.
Zelanix

44

Você pode configurar um nome de usuário padrão em ~ / .subversion / servers:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Por favor, esteja ciente de que versões mais antigas do svn não o suportam (por exemplo, 1.3.1 [sic!]).


37
"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

Trabalhou para mim quando em outra conta de usuário. Você será solicitado a digitar o nome de usuário / senha novamente. Você precisa fazer o login como o descrito acima uma vez e está pronto para os períodos subsequentes (a menos que reinicie a máquina).


4
Tome cuidado ao fornecer a senha na linha de comando. Qualquer pessoa que possa ver a lista de processos na máquina poderá ver a senha na lista de processos. Ótimo em um sistema de usuário único, mas não tão bom em um sistema multiusuário.
bleater


11

O Subversion normalmente solicita meu "nome de usuário do Subversion" se falhar ao usar o meu nome de usuário conectado. Então, quando eu estiver com preguiça (normalmente), deixarei que ele me peça minha senha e pressione Enter e aguarde o prompt do nome de usuário e use meu nome de usuário do Subversion.

Caso contrário, a solução de Michael é uma boa maneira de especificar o nome de usuário imediatamente.


1
Eu considero esta uma resposta melhor, porque ele funciona para todos os comandos SVN (check-out, cometem, etc.) onde a bandeira --username parece ser ou inexistente ou ligeiramente diferente para vários comandos ...
edwardsharp



6

Usando o Subversion com o módulo Apache ou svnserve. Consegui realizar operações como vários usuários usando --username.

Cada vez que você chama um comando do Subversion como um 'novo' usuário, seu $HOME/.subversion/auth/<authentication-method>/diretório terá uma nova entrada em cache para esse usuário (supondo que você seja capaz de se autenticar com a senha ou o método de autenticação correto para o servidor que está entrando em contato com esse usuário em particular) .


2

Se você estiver usando svn + ssh para se conectar ao repositório, a única coisa que o autentica e autoriza são as suas credenciais ssh. TUDO MAIS é ignorado. Seu nome de usuário será logado no subversion exatamente como está estabelecido na sua conexão ssh. Uma excelente explicação para isso está em jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Vá para ~/.subversion/auth/svn.simple/*e você verá uma lista de arquivos que contém as informações sobre sua conta de usuário svn. Basta excluir todos os outros que você não precisa.

Depois disso, quando você fizer algo relacionado à operação do SVN, como commit, rm, etc. Você será solicitado novamente a inserir nome de usuário ou senhas.


-1

O TortoiseSVN sempre solicita o nome de usuário. (a menos que você diga para não)


Não, não faz. Não no 1.9.5 para Linux, pelo menos.
Drkvogel 9/10/19

Ele usa seu nome de usuário local por padrão, o que nem sempre é o que você deseja ao se conectar a um repositório remoto.
Drkvogel 9/10/19

-3

Acredito que você pode definir a SVN_USERvariável de ambiente para alterar seu nome de usuário SVN.


3
Você pode fornecer uma referência para isso? Eu fiz uma pesquisa e encontrei apenas svn_username, que é um patch que alguém fez e não sei dizer se chegou à linha principal ou não ... Eu acho que teria encontrado outros hits, se sim.
mercados
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.