hgrc - Come salvare nome utente e password con Mercurial?




(8)

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/

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 ha menzionato l'estensione del portachiavi. Salva il nome utente e la password nel portachiavi del sistema, che è molto più sicuro rispetto all'archiviazione delle tue password in un file statico come menzionato sopra. Esegui i passaggi seguenti e dovresti essere pronto per partire. Ho avuto questo in esecuzione su Ubuntu in circa 2 minuti.

>> sudo apt-get install python-pip
>> sudo pip install keyring
>> sudo pip install mercurial_keyring

**Edit your .hgrc file to include the extension**
[extensions]
mercurial_keyring = 

here


Sebbene possa o meno funzionare nella tua situazione, ho trovato utile generare una chiave pubblica / privata usando il Pageant di Putty.

Se stai anche lavorando con bitbucket (.org) dovrebbe darti la possibilità di fornire una chiave pubblica al tuo account utente e quindi i comandi che raggiungono il repository saranno protetti automaticamente.

Se Pageant non si avvia al riavvio, puoi aggiungere una scorciatoia per Pageant al "menu Start" di Windows e il collegamento potrebbe necessitare di una "proprietà" popolata con la posizione del tuo file privato (.ppk) .

Con questo in posizione Mercurial e i tuoi repository locali dovranno essere impostati per spingere / tirare usando il formato SSH.

Ecco alcune istruzioni dettagliate sul sito di Atlassian per Windows O Mac / Linux.

Non devi credermi sulla parola e non ci sono dubbi su altri modi per farlo. Forse questi passaggi descritti qui sono più per te:

  1. Avvia PuttyGen da Start -> PuTTY-> PuttyGen
  2. Genera una nuova chiave e salvala come un file .ppk senza passphrase
  3. Usa Putty per accedere al server a cui vuoi connetterti
  4. Aggiungi il testo della chiave pubblica da PuttyGen al testo di ~ / .ssh / authorized_keys
  5. Crea un collegamento al tuo file .ppk da Start -> Putty to Start -> Startup
  6. Seleziona il collegamento .ppk dal menu Esecuzione automatica (ciò avverrà automaticamente ad ogni avvio)
  7. Vedere l'icona Pageant nella barra delle applicazioni? Fai clic destro e seleziona "Nuova sessione"
  8. Inserisci il nome utente @ hostname nel campo "Nome host"
  9. Ora accedi automaticamente.

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 =

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.


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


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


Sto usando Mercurial-4.0.2. In questo possiamo specificare il nome del ramo aggiungendo il nome del ramo con un simbolo # nell'URL clone.

per esempio

hg clone https://[email protected]/my_product#MY_BRANCH

hg clone --verbose https://[email protected]/my_product#MY_BRANCH "C:\myCode"




mercurial hgrc