Come salvare nome utente e password con Mercurial?




hgrc (6)

Ci sono tre modi per farlo: usa il file .hgrc, usa ssh o usa l'estensione keyring


1. Il modo INSECURE - aggiorna il tuo file ~ / .hgrc

Il formato che funziona per me (nel mio file ~ / .hgrc) è questo

[ui]
username=Chris McCauley <[email protected]>

[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password


Puoi configurare il numero di repository che desideri aggiungendo più terzine di prefisso, nome utente, password anteponendo un tag univoco.

Funziona solo in Mercurial 1.3 e ovviamente il tuo nome utente e la password sono in chiaro ... non va bene.


2. Il modo sicuro - Usa SSH per EVITARE l'uso di password

Mercurial supporta pienamente SSH in modo che possiamo sfruttare la possibilità di SSH di accedere a un server senza password : si esegue una configurazione una tantum per fornire un certificato autogenerato. Questo è di gran lunga il modo più sicuro per fare ciò che vuoi.


Puoi trovare ulteriori informazioni sulla configurazione dell'accesso senza password qui


3. L'estensione portachiavi

Se si desidera un'opzione sicura, ma non si ha familiarità con SSH, perché non provare questo?

Dai documenti ...

L'estensione richiede la password HTTP sul primo pull / push to / from dato repository remoto (proprio come avviene per impostazione predefinita), ma salva la password (digitata dalla combinazione di nome utente e URL del repository remoto) nel database delle password. Alla prossima esecuzione controlla il nome utente in .hg / hgrc, quindi la password adatta nel database delle password e utilizza tali credenziali se trovato.

Ci sono informazioni più dettagliate here

Ho usato Mercurial in un progetto personale e ho digitato il mio nome utente e password ogni volta che voglio inviare qualcosa al server.

Ho provato ad aggiungere quanto segue al file .hgrc nella mia home directory, ma sembra essere completamente ignorato.

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

Come fare questo nel modo giusto?


NESSUNO sopra spiegato / chiarito i termini ad un utente inesperto. Si confondono con i termini

.hg / hgrc: questo file viene utilizzato per il repository, nella posizione locale / dello spazio di lavoro / nella cartella .hg del repository effettivo.

~ / .hgrc - questo file è diverso da quello sottostante. questo file risiede nella directory ~ o home.

myremote.xxxx = ..... bb.xxxx = ......

Questa è una delle linee sotto [auth] section / directive, mentre si usa l'estensione di portachiavi mercurial. Assicurati che il nome del server che hai inserito, corrisponda a quello che usi mentre fai "hg clone" altrimenti il ​​keyring dirà, utente non trovato. bb o myremote nella riga sottostante, sono "alias name" che DEVI dare mentre fai "hg clone http: /.../../ repo1 bb o myremote" altrimenti, non funzionerà o devi assicurarti che il tuo locale il file .hg / hgrc del repository contiene lo stesso alias, ovvero (cosa hai dato mentre fai hg clone .. come ultimo parametro).

PS i seguenti collegamenti per i dettagli chiari, mi dispiace per la grammatica scritta rapidamente.

ex: Se all'interno ~ / .hgrc (directory home dell'utente in Linux / Unix) o mercurial.ini in Windows nella home directory dell'utente, contiene, la seguente riga e se lo fai

`"hg clone http://.../.../reponame myremote"`

, quindi non ti verranno mai richieste le credenziali dell'utente più di una volta per ogni collegamento http repo. In ~ / .hgrc sotto [estensioni] una riga per "mercurial_keyring =" o "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py" .. una di queste linee dovrebbe essere lì.

[auth]
myremote.schemes = http https
myremote.prefix = tshusncdurvm99/hg
myremote.username = c123456

Sto cercando di scoprire come impostare la proprietà PREFIX in modo che l'utente possa clonare o eseguire qualsiasi operazione Hg senza prompt nome utente / password e senza preoccuparsi di ciò che ha menzionato in http: // .... / ... per nomeserver durante l'utilizzo del collegamento repo Hg. Può essere IP, nomeserver o FQDN del server


Puoi creare una sezione di autenticazione nel tuo file .hgrc o Mercurial.ini , in questo modo:

[auth]
bb.prefix = https://bitbucket.org/foo/
bb.username = foo
bb.password = foo_passwd

La parte "bb" è un identificatore arbitrario e viene utilizzata per abbinare il prefisso con nome utente e password - utile per gestire combinazioni di nome utente / password diverse con siti diversi (prefisso)

Puoi anche specificare solo il nome utente, quindi dovrai semplicemente digitare la password quando premi.

Per maggiori dettagli vedi: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

Vorrei anche raccomandare di dare un'occhiata all'estensione del portachiavi . Poiché memorizza la password nel portachiavi del sistema anziché in un file di testo normale, è più sicura. È fornito in bundle con TortoiseHg su Windows e attualmente è in corso una discussione sulla distribuzione come estensione in bundle su tutte le piattaforme.


Se stai usando TortoiseHg devi eseguire questi tre passaggi mostrati nella schermata allegata, questo aggiungerebbe le tue credenziali per lo specifico repository con cui stai lavorando.

Per aggiungere impostazioni globali è possibile accedere al file C: \ users \ user.name \ mercurial.ini e aggiungere la sezione

[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password

Spero che questo ti aiuti.


Un semplice trucco consiste nell'aggiungere username e password .hg/hgrc file .hg/hgrc del progetto:

[paths]
default = http://username:[email protected]/myproject

(Si noti che in questo modo si memorizza la password in testo semplice)

Se stai lavorando su diversi progetti con lo stesso dominio, potresti voler aggiungere una regola di riscrittura nel tuo file ~/.hgrc , per evitare di ripetere questo per tutti i progetti:

[rewrite]
http.//mydomain.com = http://username:[email protected]

Di nuovo, dato che la password è memorizzata in testo normale, di solito memorizzo solo il mio nome utente.

Se stai lavorando con Gnome, ti spiego come integrare Mercurial e Gnome Keyring qui:

http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/


installazione di mercurial_keyring su Mac OSX usando MacPorts:

sudo port install py-keyring
sudo port install py-mercurial_keyring

Aggiungi quanto segue a ~ / .hgrc:

# Add your username if you haven't already done so.
[ui]
username = [email protected]

[extensions]
mercurial_keyring =






hgrc