Mercurial vs. Git

Git e Mercurial são ferramentas de software livre para GitMercurialServidor da Web incorporado Não sim Ganchos pré / pós-evento sim sim Conversões de fim de linha sim sim Tag sim sim Suporte internacional Parcial sim Renomeação de arquivo Sim (implícito) sim Mesclar renomias de arquivo sim sim Links simbólicos sim sim Código aberto sim sim Revisões assinadas sim sim IDs de revisão Hashes SHA-1 Números, hashes SHA-1 Commits atômicos sim sim Modelo histórico Instantâneo Changeset Tamanho do repositório O (patch) (notação O grande) O (patch) (notação O grande) Modelo de simultaneidade Mesclar Mesclar Sistemas operacionais Tipo Unix, Windows, Mac OS X Tipo Unix, Windows, Mac OS X Área de preparação sim Não Ramo externo sim Não Custo Livre Livre RCS Sim, mas não recomendado via plug-in incluído Caixa rasa / clone sim Extensão Bugzilla Rastreamento de nome de arquivo / diretório Renomear detecção Renomear rastreamento Saída do subdiretório / clone Não Não Modelo de Repositório Distribuído Distribuído Manutenção de permissão Apenas bit de execução Apenas bit de execução Protocolos de rede pacotes personalizados sob ssh, rsync, HTTP, de email HTTP, personalizado sobre ssh, pacotes de email (com plug-in padrão) Desenvolvido por Junio ​​Hamano, Linus Torvalds Matt Mackall Mantido por Junio ​​Hamano Matt Mackall Escrito em C, Bourne Shell, Perl Python e C Rastreamento de mesclagem sim sim Integração do Bug Tracker Não Trac (via plugin) Licença GPL v2 GPL v2 Local na rede Internet git-scm.com www.selenic.com/mercurial OS POSIX, pior suporte ao Windows Tipo Unix, Windows, Mac OS X Introdução (da Wikipedia) O Git é um controle de revisão distribuído gratuito ou projeto de gerenciamento de código-fonte de software com ênfase em ser rápido. O Git foi criado inicialmente por Linus Torvalds para o desenvolvimento do kernel do Linux. O Mercurial é uma ferramenta de controle de revisão distribuída em várias plataformas para desenvolvedores de software. Ele é implementado principalmente usando a linguagem de programação Python, mas inclui uma implementação binária de diff escrita em C. Tipo Controle de revisão Controle de revisão

Conteúdo: Mercurial vs Git

  • 1 Objetivos do projeto
  • 2 Projetos usando Git vs Projetos usando Mercurial
  • Portabilidade 3 Git vs Mercurial
  • 4 Interface do usuário para Git vs Mercurial
  • 5 Vídeos relacionados
  • 6 Referências

Objetivos do projeto

Os principais objetivos de design da Mercurial incluem alto desempenho, escalabilidade, desenvolvimento colaborativo totalmente distribuído sem servidor, manipulação robusta de arquivos de texto sem formatação e arquivos binários e recursos avançados de ramificação e fusão, mantendo-se conceitualmente simples. Inclui uma interface web integrada.

Um dos principais objetivos de design de Linus Torvalds para o Git era a velocidade e a eficiência das operações. Outros critérios de projeto incluíam fortes proteções contra a corrupção, acidental ou maliciosa.

Projetos usando Git vs Projetos usando Mercurial

Vários projetos de software de alto nível agora usam o Git para controle de revisão, principalmente o kernel do Linux, Perl, Samba, X.org Server, Qt (toolkit), desenvolvimento central do One Laptop per Child (OLPC), framework Web Ruby on Rails, VLC , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD e a plataforma móvel Android.

Os projetos que usam o Mercurial incluem Adblock Plus, Aldrin, Audacious, servidor Dovecot IMAP, GNU Octave, NxOS, Nuxeo, Growl, software wiki MoinMoin, Mozilla, Mutt (cliente de email), Netbeans (IDE), OpenJDK, Python, SAGE, OpenSolaris da Sun Microsystem e o software Opensource da Oracle, como o Btrfs.

Portabilidade Mercurial vs Git

O Mercurial foi escrito inicialmente para rodar no Linux. Foi portado para Windows, Mac OS X e a maioria dos outros sistemas similares ao Unix. O Mercurial é principalmente um programa de linha de comando.

O Git é desenvolvido principalmente no Linux, mas pode ser usado em outros sistemas operacionais semelhantes ao Unix, incluindo BSD e Solaris.

O Git também roda no Windows. Existem duas variantes:

  • Uma porta nativa do Microsoft Windows, chamada msysgit, está se aproximando da conclusão. Desde fevereiro de 2009, existem instaladores disponíveis para download prontos para teste Alguns comandos ainda não estão disponíveis nas GUIs e devem ser invocados na linha de comando.
  • O Git também roda em cima do Cygwin (uma camada de emulação POSIX), embora seja visivelmente mais lento, especialmente para comandos escritos como scripts de shell.

Interface de usuário para Git vs Mercurial

Todas as operações da Mercurial são invocadas como opções de palavras-chave no seu programa de driver hg, uma referência ao símbolo químico do elemento mercúrio. As interfaces GUI do Mercurial incluem Hgk (Tcl / Tk). Isso é implementado como uma extensão do Mercurial e faz parte da versão oficial. Este visualizador exibe o gráfico acíclico direcionado dos conjuntos de alterações de um repositório Mercurial. Este visualizador pode ser chamado pelo comando 'hg view', se a extensão estiver ativada. O hgk foi originalmente baseado em uma ferramenta semelhante para o git chamada gitk. Há uma substituição hgk chamada hgview que é escrita em python puro e fornece interfaces gtk e qt.

As ferramentas Mercurial relacionadas incluem:

  • As ferramentas relacionadas para mesclagem incluem (h) gct (Qt) e Meld.
  • A extensão convert permite a importação dos repositórios CVS, Darcs, git, GNU Arch, Monotone e Subversion.
  • O Netbeans IDE suporta Mercurial da versão 6.
  • O Tortoise Hg fornece uma interface de menu amigável com o usuário, com o botão direito do mouse.
  • VisualHG é um plug-in de provedor de controle de fonte Mercurial para MS Visual Studio 2008.
  • Mercurial Eclipse é um plug-in de provedor de equipe do Eclipse para Eclipse 3.3 e mais recente.

As alternativas para executar o Git usando uma GUI incluem:

  • git-cvsserver (que emula um servidor CVS, permitindo o uso de clientes Windows CVS)
  • Cliente Git baseado em IDE do Eclipse, baseado em uma implementação Java pura dos internos do Git: egit
  • O suporte do NetBeans IDE para Git está em desenvolvimento.
  • Uma extensão do Windows Explorer (semelhante ao TortoiseCVS / TortoiseSVN) foi iniciada no TortoiseGit and Git Extensions, que é uma extensão do explorador, além de uma GUI autônoma e um plug-in do Visual Studio 2008

Vídeos relacionados

Referências

  • wikipedia: Git_ (software)
  • wikipedia: Mercurial_ (software)
  • O desenvolvedor do Mercurial Martin Geisler comparando os recursos do Git e do Mercural em profundidade