Come scegliere tra git e Mercurial [chiuso]

28

Sia Git che Mercurial sono DVCS, ed è grandioso. Mi chiedo se ci sia un elenco di situazioni particolari quando uno di questi sistemi è preferibile, qualcosa del tipo "Nello sviluppo mobile per molte piattaforme git è meglio perché ...".

    
posta Vladimir Ivanov 19.05.2011 - 12:46
fonte

7 risposte

42

Sistema operativo

Sei tu e / o il tuo team basato su Windows ?: Mercurial è meno complicato da usare / configurare di Git, dal momento che è necessario installare una console bash (è possibile utilizzare cygwin invece).

Se sei basato su linux / mac, la scelta va bene, ma potresti goderti un po 'di più a causa di tutti i suoi strumenti potenti.

Esperienza con DVCS

Se sei nuovo ai DVCS, scegli Mercurial. Altrimenti, prova git. Git ha molti giocattoli che potrebbero rendere la tua curva di apprendimento un po 'più ripida, Mercurial, OTOH, imparerai in un attimo. Leggi link per una guida molto completa.

Inoltre, leggi link se vieni da CVS / SVN.

Bisogni

Mercurial è un DVCS completo, git OTOH Direi addirittura che è quasi un framework DVCS (controlla questo cheatsheet out) in grado di supportare casi di workflow più specifici per team / progetti molto grandi.

Inoltre, molto importante, git ti consente di cambiare la cronologia del tuo repository, che può essere considerata una cosa brutta (); Mercurial non ti consente di cambiare la cronologia.

In termini generali, direi che git è eccessivo in un buon modo. Personalmente, uso sia mercurial che git, ma insegno sempre mercurial ai miei colleghi

Non esiste una scelta sbagliata

In realtà e IMHO, dovresti imparare entrambi, ma inizia sempre con Mercurial. Trovo davvero come si confrontano (che sono in realtà dettagli un po 'più piccoli) Ti consiglio di leggere questi due articoli:

Il percorso del DVCS

Per prima cosa cerca di rendere più piacevole la tua introduzione ai DVCS. Ho visto un sacco di persone invadere la loro strada nel git e finirlo per amarlo, ma OTOH ho visto persone che si fanno strada in modo mercuriale in completo stupore. Dopodiché, se ti senti mercuriale non è abbastanza, puoi continuare il tuo percorso con git senza soluzione di continuità.

Aggiornamento: Mercurial ora è meglio per permettervi di modificare la cronologia, vedi:

risposta data 19.05.2011 - 22:40
fonte
20

Dovresti utilizzare git quando un progetto o una comunità a cui vuoi contribuire utilizza git e usa Mercurial quando usano Mercurial . Può sembrare ovvio, ma la community è più importante dello strumento.

Suggerirei di apprendere entrambi, dal momento che sono così simili in molti modi, in questo modo è possibile contribuire ugualmente facilmente ai progetti e alle comunità che li utilizzano.

Ad esempio, se stai iniziando un progetto per sviluppare un driver di dispositivo Linux, git è la scelta più ovvia, mentre se è un progetto python , hg sarebbe logico.

Un'eccellente descrizione del perché Python ha scelto mercurial può essere trovata su Brett Cannon s blog, che rimanda al suo articolo PEP 374 - Scegliere un VCS distribuito per Python progetto che documenta il loro processo decisionale.

Purtroppo, non sono riuscito a trovare rapidamente un documento equivalente per una comunità che ha scelto git invece.

aggiornamento 2017

Il tempo passa, le comunità cambiano e tutti noi dobbiamo cambiare con loro. Mentre il mio consiglio originale che la community è più importante dello strumento è ancora valido, molte altre community sono influenzate dai vantaggi di git quindi, se finisci per utilizzare hg per i progetti personali, in questi giorni va bene vale la pena imparare ad usare comunque git , specialmente con il github s supporto per readthedocs e travis , tra molti altri .

Brett Cannons La storia dietro la decisione di spostare Python in GitHub illustra in dettaglio le motivazioni alla base di mosse simili di molti altri progetti e comunità.

    
risposta data 19.05.2011 - 12:55
fonte
17

Generalmente Mercurial è più facile da imparare di Git

Quindi usa Mercurial (Hg) se vuoi imparare il controllo della versione distribuita e fare in modo che il tuo progetto per animali domestici sia immediatamente pronto.

Servizi online come BitBucket offrono le stesse funzionalità di GitHub per progetti collaborativi.

    
risposta data 19.05.2011 - 13:31
fonte
5

Abbiamo usato SVN, che è migrato su MERCURIAL e recentemente a GIT. Git presenta alcuni vantaggi immediati rispetto a hg: stashing e indice (più semplici commit atomici). Allora apprezzerai la facile ramificazione. Ti pentirai di git and miss hg quando qualcosa va storto o quando hai bisogno di capire profondamente alcuni concetti come "rebasing" o "fast forwarding". Odio davvero dover scavare nelle opzioni follia di git quando ho bisogno di fare qualcosa di banale come "svn revert" ... In conclusione: git fa troppo per la maggior parte dei progetti che lo stanno usando e anche la curva di apprendimento è troppo ripida. (ah, e ridono davvero quando "git stat" dice "Intendi lo stato?" - Lo so, alias, lo so ...)

    
risposta data 19.05.2011 - 22:51
fonte
3

Da un po 'di tempo, Mercurial ha funzionato meglio su Windows di Git, e questa era una ragione per usare Mercurial. In genere è anche più facile da ottenere.

Sia Mercurial che Git faranno praticamente quello che vuoi con un DVCS. Ci sono differenze, ma è improbabile che contino nelle operazioni quotidiane per la maggior parte delle persone. Apprendi prima uno per ottenere i concetti, poi puoi imparare a usare l'altro velocemente quando ne hai bisogno o vuoi.

    
risposta data 19.05.2011 - 15:54
fonte
2

Penso che tutto dipenda dalla piattaforma che usi. Ho deciso di usare git su un progetto PHP che sapevo che tutti usavano * nix perché non avevano problemi a digitare i comandi in.

Per il mio altro progetto PHP abbiamo un sacco di gente che usa Windows e Mac e Linux. È stato un gioco da ragazzi usare tutte queste piattaforme su Mercurial.

  • Windows - TortoiseHG - brilliant!
  • Linux - Non sono sicuro - quei ragazzi amano il comando
  • Mac - MacHG - Uso me stesso sul mio Mac ed è molto buono.

Inoltre, penso che ciò che è positivo sia il fatto che sia NetBeans che Eclipse offrono il supporto per Mercurial praticamente fuori dagli schemi. L'ultima volta che ho provato a usare git su Eclipse è stato pessimo e ho finito con l'uso della console. (Era pochi mesi fa)

Penso che sia meglio impararne uno e poi leggere uno dei tutorial che mostra le differenze di comando, ecc. Imparare due allo stesso tempo ti frustrerà a causa di alcune piccole differenze di comando.

    
risposta data 19.05.2011 - 22:02
fonte
2

Questa è una vecchia domanda e le risposte erano valide al momento in cui sono state scritte.

  • Git sembra non essere più considerato "un duro lavoro" da usare su Windows. Microsoft ora usa Github, quindi Git ha una trazione nella community di Windows. Visual Studio ora ha integrato il supporto Git. Quindi lavorare su Windows non è più un motivo per scegliere Mercurial.
  • In StackOverflow ci sono circa 10 volte più domande Git (60K) poi domande Mercurial (6,8 K) - quindi chiaramente entrambi vengono usati molto, ma Git sembra essere usato di più.
  • Oggi su Jobsserve.com (il principale sito nel Regno Unito per i lavori IT), ci sono 41 lavori che richiedono competenze Mercurial e 592 lavori che richiedono competenze Git, quindi molte più aziende sembrano utilizzare Git.
  • Guardando ad Amazon sembra che ci siano più libri su Git e Mercurial.
  • Comunque credo che Mercurial sia ancora considerato più facile da imparare allora Git.
  • Sia Git che Mercurial sono chiaramente in grado di portare a termine il lavoro per la maggior parte dei progetti. Inoltre, non sono così diversi tra loro

Quindi, prima di tutto, guarda le abilità del tuo team e se conoscono Mercurial ma non Git, potrebbe essere una buona ragione per usare Mercurial.

Altrimenti penso che sia molto simile alla Guerre per videocassette della mia infanzia. Betamax era chiaramente la "migliore" registrazione di qualità, eppure VHS ha vinto ed è stata chiaramente l'opzione migliore per la maggior parte delle persone, poiché è stata utilizzata da così tante altre persone.

    
risposta data 18.09.2015 - 14:39
fonte

Leggi altre domande sui tag