Come molte persone hanno suggerito, Mercurial tramite TortoiseHg ha una barriera molto bassa per entrare.
Per quelli su Windows è un singolo programma di installazione piuttosto che due programmi di installazione (e un intero carico di cose di cui non si vuole sapere nulla) e l'interfaccia utente di THg è molto più raffinata di TortoiseGit + Msysgit .
Teste anonime
Se pensi che sarebbero confusi da teste anonime, allora non incoraggiarne l'uso. La maggior parte dei libri di hg
adottano un approccio equilibrato e insegnano sia i rami topologici che quelli denominati e consentono al lettore di determinare quale sia il più appropriato per il loro utilizzo.
Rami nominati
Una cosa che io davvero manca in git
è hg
rami denominati , quindi questa è un'opzione. % filiali digit
vanno bene mentre ci stai lavorando, ma una volta che hai fuso quel lavoro in un altro ramo, perdi molto del contesto per queste modifiche.
In hg
potresti creare un ramo chiamato Jira#1234
e essere sempre in grado di trovare tutte le revisioni associate a quella correzione . In git
, una volta che il tuo ramo è unito e il ref eliminato, devi dedurre quali revisioni facevano parte della correzione dalla topologia dell'albero delle revisioni. Anche se non elimini l'arbitro, conosci ancora solo l'ultimo commit su quel ramo, non quale dei suoi antenati faceva parte di quella catena di commit.
Segnalibri
In alternativa, se non vuoi utilizzare i rami nominati, ma vuoi un flusso di lavoro in stile git
con i tuoi rami anonimi, puoi utilizzare preferiti invece.
Questo potrebbe essere il migliore dei due mondi: imparano un flusso di lavoro git
, ma puoi usare i comandi hg
più semplici.
Indice / Cache / Area di gestione temporanea
Personalmente, penso che gli studenti siano molto più inclini a essere confusi dall'area indice / cache / staging di git
che dalle teste anonime di hg
. Preferisco di gran lunga hg
rendendo questa funzionalità avanzata opzionale sulla riga di comando, mentre git
presuppone che tu voglia / abbia sempre bisogno di usarlo.
Penso anche che l'area di sosta incoraggia i commit che non sono stati testati o nemmeno compilati. Dal momento che molti dei luoghi in cui ho lavorato hanno una regola non eseguire il commit se non viene compilata , preferirei piuttosto shelve / stash modifiche I do not voglio subito, rieseguire i test unitari e impegnare una versione che conosco compila.
Quando in seguito arriverà a rintracciare un bug utilizzando hg bisect o git bisect , ti ringrazierai che puoi testare tutte le revisioni, non solo quelle che compilano.