In Subversion posso essere un utente diverso dal mio nome di accesso?


253

Vorrei sapere come Subversioncambiare il nome in cui compaiono le mie modifiche.

Sto solo iniziando a usare Subversion. Attualmente lo sto usando per il codice di controllo della versione su un laptop XP dove ho sempre effettuato l'accesso con il nome di mia moglie. Vorrei che il DB di sovversione mostrasse le modifiche sotto il mio nome.

Più tardi replicherò il DB in modo che sia accessibile a tutta la casa. Mia moglie usa il computer dell'ufficio in cui è sempre loggata sotto il mio nome. Probabilmente lo configurerò in modo che verifichi automaticamente i documenti modificati ... preferibilmente sotto il suo nome.

Alla fine probabilmente lo userò da una macchina Linux con un altro nome utente.

C'è un modo per modificare l'ambiente utente per cambiare il nome utente che Subversion ti chiama? Mi aspetterei qualcosa come l'impostazione SVN_USERNAME='Mark'che avrebbe la precedenza ma di solito ottiene il nome.

Aggiornamento: sembra che la --usernamebandiera a cui fa riferimento Michael funzioni per cambiare il nome segnalato "svn stat", anche per i file locali: repository. Inoltre, è appiccicoso, quindi non è necessario specificarlo per il comando successivo. Ho anche riavviato e utilizzava ancora il "--username"valore del mio avvio precedente.

Risposte:


280

La maggior parte dei comandi di Subversion utilizza l' --usernameopzione per specificare il nome utente che si desidera utilizzare nel repository. Subversion ricorda l'ultimo nome utente e la password del repository utilizzati in ogni copia di lavoro, il che significa, tra l'altro, che se si utilizza svn checkout --username myusernon è necessario specificare nuovamente il nome utente.

Come dice Kamil Kisiel , quando Subversion accede al repository direttamente dal file system (ovvero, l'URL del repository è di forma file:///path/to/repoo file://file-server/path/to/repo), utilizza le autorizzazioni del file system per accedere al repository. E quando ti connetti tramite il tunneling SSH ( svn+ssh://server/path/to/repo), SVN utilizza le tue autorizzazioni FS sul server , come determinato dal tuo accesso SSH. In questi casi, svn checkout --usernamepotrebbe non funzionare per il tuo repository.


Grazie per la risposta rapida. Il flag --username sembra essere molto appiccicoso, anche durante i riavvii. E funziona benissimo sul mio file: repository.
mercati

70

Per svn over ssh provare:

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

svn ti chiederà la user_namepassword.


1
Non funziona con nomi utente come: johndoe@example.com
neoneye

4
https://user_name@.../pathnon ha funzionato per me (Cygwin) ma --usernamefunziona benissimo.
zelanix,

44

È possibile impostare un nome utente predefinito tramite ~ / .subversion / server:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Si noti che le versioni precedenti di svn non lo supportano (ad es. 1.3.1 [sic!]).


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

Ha funzionato per me quando su un altro account utente. Ti verrà richiesto di inserire nuovamente nome utente / password. Devi accedere come sopra una volta e sei pronto per le successive volte (a meno che non riavvii la macchina).


4
Fare attenzione quando si fornisce la password sulla riga di comando. Chiunque possa vedere l'elenco dei processi sulla macchina sarà in grado di vedere la password nell'elenco dei processi. Bene su un sistema a utente singolo, ma non così buono su un sistema a più utenti.
bleater


11

Subversion di solito mi chiede il mio "Nome utente Subversion" se non riesce a utilizzare il mio nome utente registrato. Quindi, quando sono pigro (di solito) lascerò che mi chieda la mia password e premerò Invio, attendo il prompt del nome utente e utilizzo il mio nome utente Subversion.

Altrimenti, la soluzione di Michael è un buon modo per specificare subito il nome utente.


1
Considero questa una risposta migliore perché funziona per tutti i comandi SVN (checkout, commit, ecc.) In cui il flag --username sembra essere inesistente o leggermente diverso per vari comandi ...
edwardsharp,



6

Utilizzo di Subversion con il modulo Apache o svnserve. Sono stato in grado di eseguire operazioni come più utenti che utilizzano --username.

Ogni volta che invochi un comando Subversion come 'nuovo' utente, la tua $HOME/.subversion/auth/<authentication-method>/directory avrà una nuova voce memorizzata nella cache per quell'utente (supponendo che tu sia in grado di autenticarti con la password o il metodo di autenticazione corretti per il server che stai contattando come quel particolare utente) .


2

Se stai usando svn + ssh per connetterti al repository, l'unica cosa che ti autentica e ti autorizza sono le tue credenziali ssh. TUTTO il resto viene ignorato. Il tuo nome utente verrà registrato in sovversione esattamente come stabilito nella tua connessione ssh. Un'ottima spiegazione di questo è su jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Vai a ~/.subversion/auth/svn.simple/*e vedrai un elenco di file che contiene le informazioni sul tuo account utente svn. Elimina semplicemente tutti gli altri che non ti servono.

Dopodiché, quando fai qualcosa che riguarda l'operazione SVN, come commit, rm, ecc. Ti verrà chiesto di nuovo di inserire nome utente o password.


-1

TortoiseSVN richiede sempre il nome utente. (a meno che non gli dica di non farlo)


No non lo fa. Almeno non su 1.9.5 per Linux.
drkvogel,

Utilizza il tuo nome utente locale per impostazione predefinita, che non è sempre quello che vuoi quando ti connetti a un repository remoto.
drkvogel,

-3

Credo che tu possa impostare la SVN_USERvariabile d'ambiente per cambiare il tuo nome utente SVN.


3
Potete fornire un riferimento per questo? Ho fatto una ricerca e ho trovato solo svn_username, che è una patch che qualcuno ha creato e non so dire se sia arrivato alla mainline o no ... Penserei che avrei trovato altri hit in tal caso.
commercializza il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.