Sto utilizzando SVN + SSH per controllare una copia di lavoro del repository da un server SVN in cui tutti gli sviluppatori sono membri di un gruppo e hanno pieno lettura/scrittura autorizzazioni sulla directory repository e metadati associati:Modifica nome utente in UI SVN + SSH al volo nella copia di lavoro
svn co svn+ssh://[email protected]/path/to/repository
Diversi sviluppatori lavorano sulla stessa copia di lavoro che è stato estratto con un account di shell condivisa (root
). Poiché questo repository viene utilizzato per il controllo della revisione della configurazione in un ambiente di produzione, questo è inevitabile. Dando ad ogni sviluppatore un singolo account di shell sul computer di destinazione (quello su cui viene eseguito il checkout) sarebbe un modo per risolvere questo problema perché allora ognuno di essi può avere la propria copia di lavoro, ma sfortunatamente questo non è accettabile qui.
Abbiamo vari hook di post-commit che inviano e-mail che dettagliano i commit, incluso il nome utente della persona che ha eseguito il commit.
Il problema è che una volta che una copia di lavoro viene estratta con un dato nome utente usando lo schema URI svn+ssh://
, sembra che anche i commit e gli aggiornamenti debbano essere fatti con quel nome utente. Questo non è fattibile per due motivi:
1) La persona che ha originariamente effettuato il checkout potrebbe non essere la persona che effettua un commit ora, e abbiamo bisogno delle e-mail post-commit e di altri hook post-commit per sapere esattamente che ha effettuato il commit e
2) in modo chiaro, un commit richiede che l'utente che ha commesso la password dell'account della persona che ha effettuato il checkout originale, l'uso di chiavi RSA per l'autenticazione non interattiva nonostante il motivo # 1.
C'è un modo per disattivare dinamicamente il nome utente dell'account remoto che viene utilizzato per l'autenticazione in questo scenario?
ho fatto qualche ricerca e ho trovato questa domanda in precedenza:
Changing the username for a Subversion commit over svn+ssh
Purtroppo, il suggerimento nella risposta accettata (svn switch
) non funziona:
[[email protected] repo-directory]# svn switch svn+ssh://[email protected]/u/svc/repositories/repo-name
[email protected]'s password:
svn: 'svn+ssh://[email protected]50.10.1/u/svc/repositories/repo-name' is not the same
repository as 'svn+ssh://[email protected]/u/svc/repositories/repo-name'
Tutte le idee sarebbero notevolmente apprezzato. Grazie in anticipo per la vostra considerazione!
Se si desidera cambiare il vostro utente per svn + ssh, provate eseguendo 'export SVN_SSH = "ssh newuser -l"' in un terminale. Ciò ha dimostrato di essere la soluzione più semplice per me. – marktani