Sono uno sviluppatore di Rails e preferisco Mercurial a Git. Tuttavia, so che la community di Rails è molto pro-Git. Quindi la mia domanda è possibile che la mia scelta del sistema di controllo della versione ritorni indietro alcuni sviluppatori?
Onestamente, hg
e git
sono abbastanza simili. Per il reclutamento e la collaborazione, non dovrebbe importare troppo (anche se i flussi di lavoro differiscono un po ').
Il grande punto critico, onestamente, sarebbe GitHub. Se pensate di aprire i vostri progetti in open source, GitHub è la strada da percorrere. È una comunità enorme, ed è frequentemente cercata per biblioteche e progetti da una grande quantità di sviluppatori. Sembra ridicolo che l'hosting di repository di terze parti abbia un effetto su quali sistemi di controllo del codice sorgente usare, ma se sei un dev indipendente che cerca di farti un nome, non c'è modo migliore di andare (al momento) rispetto a GitHub.
(Ci scusiamo per aver fatto sembrare questo un annuncio GH - Non sono in alcun modo affiliato con GitHub).
Secondo me, non dovresti scegliere uno strumento di controllo della versione a causa di un servizio, dovresti scegliere uno strumento perché lo strumento stesso è ciò di cui hai realmente bisogno e ha senso per te.
Immagino che possa essere il risultato di questo: quanto vuoi permetterti di modificare la cronologia delle modifiche ?. Questa forse è la principale differenza tra i due sistemi, Git consente ai suoi utenti di innescare il grilletto - felice di colpire la storia mentre Mercurial è più conservatore .
Anche se ... forse questo è cambiato un po ', poiché Mercurial è diventato migliore in questo attraverso le fasi e possono ti proteggono da un rebase indesiderato (sì, c'è rebase in Mercurial, vedi l'estensione di rebase e l'estensione histedit che ora è ufficialmente supportato ). Mercurial ha meno strumenti di potere, come git obliterate
, ancora, è probabile che non ti serva la potenza extra (che IMHO, a volte può portare a cattive pratiche se la tua organizzazione non stabilisce le regole di quando e perché dovresti andare nella cronologia delle modifiche).
Dovresti anche considerare se le persone con cui vuoi lavorare utilizzano Windows, in questo caso direi che Mercurial è un'esperienza più amichevole e più trasparente.
Oltre al precedente, se conosci Git conosci hg (forse con la differenza più importante che Mercurial mette in scena automaticamente le tue modifiche). Se conosci hg, puoi imparare Git abbastanza velocemente.
Per quanto riguarda la gestione del repository, Bitbucket non è affatto male, ma personalmente preferisco qualcosa di più governabile come Rhodecode .
Infine, esiste un'interoperabilità tra entrambi i sistemi (vedi HgGit e sull'utilizzo di hg convert ), in modo che tu possa lavorare con entrambi e capire cosa è meglio per il tuo progetto in seguito. Un buon esempio è Rhodecode: il tizio che mantiene Rhodecode (che funziona bene sia per Git che per hg) usa personalmente Mercurial e ha un Bitbucket e uno specchio Github (il suo repo principale è nella sua istanza Rhodecode), ecco alcune statistiche:
Mirror Bitbucket : 63 fork + 289 follower
Mirror Github : 10 fork + 47 watcher
Non lasciare che altri ti facciano pubblicità, provalo tu stesso e vedi cosa funziona per te, dato che puoi migrare da Mercurial a Git e viceversa se ne hai bisogno.
In sintesi, suppongo che il mio consiglio sia: continuare a usare hg, mettere uno specchio github, vedere cosa si attacca e andare con il flusso.
Leggi altre domande sui tag version-control mercurial ruby-on-rails