Come molte persone hanno suggerito, Mercurial via TortoiseHg ha una barriera molto bassa all'ingresso.
Per quelli su Windows è un singolo programma di installazione piuttosto che due programmi di installazione (e un sacco di cose che potrebbero non voler conoscere) e l'interfaccia utente THg è molto più raffinata di TortoiseGit + Msysgit .
Teste anonime
Se pensi che sarebbero confusi da teste anonime, quindi non incoraggiarne l'uso. La maggior parte dei hg
libri ha un approccio equilibrato e insegna sia rami topologici che nominati e lascia che il lettore determini quale sia il più appropriato per il loro uso.
Rami nominati
Una cosa che mi manca davverogit
è hg
il nome dei rami , quindi questa è un'opzione. git
i rami vanno bene mentre ci stai lavorando, ma una volta che hai unito quel lavoro in un altro ramo, perdi gran parte del contesto per quei cambiamenti.
In hg
puoi creare un ramo chiamato Jira#1234
ed essere sempre in grado di trovare tutte le revisioni associate a quella correzione . In git
, una volta che il tuo ramo viene 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 l'ultimo commit su quel ramo, non quale dei suoi antenati faceva parte di quella catena di commit.
segnalibri
In alternativa, se non si desidera utilizzare i rami con nome, ma si desidera un git
flusso di lavoro di stile con i rami anonimi, è possibile utilizzare invece i segnalibri .
Questo potrebbe essere il migliore dei due mondi: imparano un git
flusso di lavoro, ma usano i hg
comandi più semplici .
Area indice / cache / staging
Personalmente, penso che gli studenti abbiano molte più probabilità di essere confusi git
dall'indice / cache / area di gestione temporanea che dalle hg
teste anonime. Preferisco di gran lunga hg
rendere opzionale questa funzionalità avanzata sulla riga di comando, oltre a git
pensare che tu voglia / debba sempre usarla.
Penso anche che l'area di stadiazione incoraggi impegni che non sono stati testati o addirittura compilati. Dal momento che molti dei posti in cui ho lavorato hanno avuto un non commit se non compila la regola, preferirei piuttosto accantonare / nascondere le modifiche che non voglio in questo momento, rieseguire unit test e eseguire il commit di una versione che Conosco compilazioni.
Quando in seguito vieni a rintracciare un bug usando hg bisect o git bisect , ti ringrazierai di poter testare tutte le revisioni, non solo quelle che vengono compilate.