// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Usando Suporte ao Mercurial no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Usando Suporte ao Mercurial no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Usando Suporte ao Mercurial no NetBeans IDE

O NetBeans IDE fornece o suporte ao cliente de controle de versão Mercurial versões 1.0.x e posteriores. O Suporte ao Mercurial do IDE permite executar tarefas de controle de versão diretamente de seu projeto dentro do IDE. Este documento demonstra como executar tarefas básicas de controle de versão no IDE orientando você pelo fluxo de trabalho padrão ao usar o software de controle de versão.

O link:http://www.selenic.com/mercurial/wiki/[+Mercurial+] é um sistema leve e rápido de gerenciamento de controle de código-fonte projetado para tratar, com eficiência, a distribuição de projetos muito grandes. Ao contrário do CVS e Subversion, o Mercurial funciona com repositórios distribuídos que são geralmente utilizados em muitos projetos de código aberto atualmente e oferece suporte ao desenvolvimento distribuído sem nenhum controle centralizado. É possível usar os comandos do Mercurial em arquivos e diretórios. O IDE oferece um Visualizador de Diferenciação que permite comparar as revisões do arquivo, além de oferecer suporte às comparações em linha diretamente no editor.

O suporte ao Mercurial do IDE é semelhante ao suporte ao Subversion do IDE. A principal diferença é que o Mercurial é um sistema de controle de revisões distribuído. Usuários em geral começam _clonando_ um repositório externo para trabalhar. Este clone é uma cópia completa do repositório, incluindo o histórico de revisões. É possível clonar a cópia local sempre que precisar e quando pronta, realizar um push das alterações locais de volta para o repositório original, se tiver permissões ou _exportar_ as modificações e enviá-las para o proprietário do repositório, caso não tenha permissões.

== Configurando o Mercurial

Para poder aproveitar o suporte ao Mercurial do IDE, é necessário ter um software cliente Mercurial instalado no sistema. O IDE suporta as versões de cliente do Mercurial 1.04. e superior. O suporte ao Mercurial do IDE funciona com os mesmos comandos da interface de linha de comandos do Mercurial.

Você também efetua download do Mercurial como códigos-fonte ou como pacote binário do link:http://www.selenic.com/mercurial/[+site do Mercurial+].

Para definir o caminho para o arquivo executável do Mercurial no IDE:

1. Escolha  ``Ferramentas``  >  ``Opções``  ( ``NetBeans``  >  ``Preferências``  no OS X) a partir do menu principal. A caixa de diálogo Opções é aberta.
2. Selecione o ícone Equipe na parte superior da caixa de diálogo e clique na guia Controle de Versão. No painel esquerdo, em Sistemas de Controle de Versão, selecione Mercurial. Opções definidas pelo usuário para exibição do Mercurial na janela principal da caixa de diálogo:

[.feature]
--
image::images/options-dialog-small.png[role="left", link="images/options-dialog.png"]
--

[start=3]
. No campo de texto do Caminho do Executável do Mercurial, digite o caminho do arquivo executável ou clique em Explorar para navegar até ele em seu sistema. Observe que não é necessário _incluir_o arquivo executável Mercurial no caminho.
. Clique em OK.

É possível executar os comandos do Mercurial a partir do menu  ``Equipe``  >  ``Mercurial``  do IDE após o cliente Mercurial ter sido configurado. Para clonar um repositório externo do Mercurial, escolha  ``Equipe``  >  ``Mercurial``  >  ``Clonar Outro`` . No processo de clonagem, o IDE importa automaticamente todas as informações de histórico e status para os arquivos clonados.

Se você já tiver um repositório Mercurial, o IDE reconhece automaticamente os arquivos como arquivos de controle de versão se eles estiverem abertos em um projeto do IDE ou se forem adicionados à janela Favoritos. Você pode usar os comandos do Mercurial em tais arquivos no menu Mercurial ou clicar com o botão direito do mouse em um arquivo ou pasta e escolher Mercurial no menu de contexto.

Para criar um repositório Mercurial no computador usando a linha de comandos, insira o seguinte:


[source,java]
----

hg clone /path/to/your/repository
----

NOTE: os repositórios do NetBeans Mercurial (link:http://hg.netbeans.org/[+http://hg.netbeans.org/+]) são usados para fins de demonstração nesse tutorial.


== Sincronizando Arquivos Locais com um Repositório

Ao usar um sistema de controle de versão, você trabalha sincronizando arquivos locais com um repositório, fazendo alterações na cópia local e, a seguir, confirmando-as no repositório. A lista a seguir descreve diversas maneiras de sincronizar um projeto no NetBeans IDE, dependendo de sua situação específica:

* <<opening,Abrindo um Projeto Mercurial no IDE>>
* <<checking,Fazendo Check-out de Arquivos de um Repositório>>
* <<importing,Importando Arquivos para um Repositório>>


=== Abrindo um Projeto Mercurial no IDE

Caso já possua um projeto com controle de versão do Mercurial com o qual tem trabalhado fora do IDE, você pode abri-lo no IDE e a funcionalidades de controle de versão se tornam automaticamente disponíveis. O IDE varre os projetos abertos, o status do arquivo e o suporte de acordo com o contexto se ativam automaticamente para os projetos Mercurial com controle de versão.


=== Fazendo Check-out de Arquivos de um Repositório

Caso deseje estabelecer conexão com um repositório remoto a partir do IDE, fazer check-out dos arquivos e começar a trabalhar imediatamente com eles, faça o seguinte:

1. No NetBeans IDE, selecione  ``Equipe``  >  ``Mercurial `` > `` Clonar outros``  no menu principal. O assistente Clonar é aberto.

[.feature]
--
image::images/clone-repository-small.png[role="left", link="images/clone-repository.png"]
--

NOTE: os menus drop-down do IDE se adaptam ao contexto, ou seja, as opções disponíveis dependem do item selecionado no momento. Portanto, se você já estiver trabalhando dentro de um projeto Mercurial, poderá escolher  ``Equipe``  >  ``Remoto``  >  ``Clonar Outros``  no menu principal.

[start=2]
. No URK do repositório, insira o caminho para o repositório (e.g.  ``http://hg.netbeans.org/main`` ).
. Nos campos Senha e Usuário que o assistente exibe, insira o nome de usuário e senha do netbeans.org.

[.feature]
--
image::images/clone-username-small.png[role="left", link="images/clone-username.png"]
--

[start=4]
. Caso esteja usando um proxy, certifique-se de clicar no botão Configuração de Proxy e insira quaisquer informações solicitadas na caixa de diálogo Opções. Quando tiver certeza de que suas definições de conexão estão corretas, clique em Próximo.
. No segundo passo, clique em Alterar ao lado direito do campo do Caminho de Expansão Default. A caixa de diálogo de Alterar Caminho de Expansão é aberta.

[.feature]
--
image::images/clone-push-small.png[role="left", link="images/clone-push.png"]
--

[start=6]
. Modifique a entrada de expansão default ao adicionar o nome de usuário e senha do NetBeans e modificar o protocolo para  ``https`` .
. Clique em Definir Caminho. A caixa de diálogo Alterar Caminho de Expansão é fechada.
. Clique em Próximo para ir para a próxima etapa do assistente.
. No campo Diretório Principal, insira uma local no computador para onde deseja fazer check-out dos arquivos do repositório (outra opção é usar o botão Procurar).

[.feature]
--
image::images/clone-destination-small.png[role="left", link="images/clone-destination.png"]
--

NOTE: se estiver usando o Windows, tome cuidado com o tamanho do caminho que especificar, isto é,  ``C:\Documents and Settings\myName\My Documents\NetBeans\etc\etc``  pode causar uma falha na clonagem devido a um caminho muito longo. Tente usar  ``C:\`` .

[start=10]
. Deixe selecionada a opção Procurar por Projetos do NetBeans após Check-out e, em seguida, clique em Finalizar para iniciar a ação de check-out. 
O IDE faz check-out dos códigos-fonte especificados, e a barra de status do IDE indica o andamento do download dos arquivos do repositório no seu diretório de trabalho local. Você também pode exibir os arquivos que estão tendo check-out na janela de Saída (Ctrl-4 no Windows/Commandd-4 no OS X).

NOTE: caso os códigos-fonte com check-out contenham projetos NetBeans, uma caixa de diálogo será exibida solicitando a abertura deles no IDE. Se os códigos-fonte não contiverem um projeto, aparecerá uma caixa de diálogo solicitando que você crie um novo projeto a partir dos códigos-fonte e, a seguir, que o abra no IDE. Caso você crie um novo projeto para tal código-fonte, selecione a categoria de projeto apropriada (no assistente Novo projeto), e a seguir use a opção Com códigos-fonte existente dentro daquela categoria.


=== Importando Arquivos para um Repositório

Alternativamente, você pode importar um projeto no qual estava trabalhando no IDE para um repositório remoto e, a seguir, continuar a trabalhar nele no IDE após ele ter sido sincronizado.

NOTE: apesar de que de fato você está _exportando_ arquivos do sistema, o termo 'importar" é usado nos sistemas de controle de versão para indicar que os arquivos estão sendo _importados em _um repositório.

Para importar um projeto para um repositório:

1. Na janela Projetos (Ctrl-1 no Windows/Command1 no OS X), selecione um projeto sem controle de versão e escolha  ``Equipe``  >  ``Mercurial``  >  ``Inicializar Repositório``  ao clicar com o botão direito do mouse no nó. A caixa de diálogo Caminho-raiz do repositório é aberta.

[.feature]
--
image::images/repositoryrootpath.png[role="left", link="images/repositoryrootpath.png"]
--

[start=2]
. Especifique a pasta de repositório em que deseja colocar o projeto no repositório. Uma pasta contendo o nome do seu projeto é sugerida para você por default no campo de texto do Caminho-Raiz.
. Clique em OK para iniciar a ação de inicialização do Mercurial.
Ao clicar em OK, o IDE faz upload dos arquivos do projeto para o repositório.
Escolha Janela > Saída para abrir a janela Saída e exibir o progresso.

[.feature]
--
image::images/output-small.png[role="left", link="images/output.png"]
--

NOTE: uma vez que os arquivos do projeto estiverem no controle de versão do Mercurial, eles são são registrados no repositório como  ``Localmente Novo`` . Os novos arquivos e seu status podem ser exibidos clicando em  ``Mercurial``  >  ``Mostrar alterações``  no menu de contexto.

[.feature]
--
image::images/status-small.png[role="left", link="images/status.png"]
--

[start=4]
. Selecione  ``Mercurial``  >  ``Confirmar``  no menu de contexto para confirmar esses arquivos de projeto para o repositório do Mercurial. A caixa de diálogo Confirmar - [ProjectName] é aberta.

[.feature]
--
image::images/commit-dialog-small.png[role="left", link="images/commit-dialog.png"]
--

[start=5]
. Digite sua mensagem na área de texto Confirmar Mensagem e clique em Confirmar.

NOTE: os arquivos confirmados são colocados no diretório  ``.hg``  do repositório do Mercurial. Os detalhes de confirmação estão disponíveis na janela de Saída do IDE (Ctrl-4 no Windows/Command-4 no OS X).


== Editando Códigos-fonte

Quando tiver um projeto com controle de versão do Mercurial aberto no IDE, você pode começar a fazer alterações nos códigos-fonte. Como acontece com qualquer projeto aberto no NetBeans IDE, é possível abrir os arquivos no Editor de Código-fonte clicando duas vezes em seus nós, conforme eles aparecem nas janelas do IDE (por exemplo, janelas Projetos (Ctrl-1 no Windows/Command-1 no OS X), Arquivos (Ctrl-2 no Windows/Command-2 no OS X) e Favoritos (Ctrl-3 no Windows/Command-3 no Mac OS X)).

Quando você trabalha com códigos-fonte no IDE, há vários componentes de UI à sua disposição, o que ajuda a exibir e usar os comandos de controle de versão:

* <<viewingChanges,Exibindo Alterações no Editor de Código-fonte>>
* <<viewingFileStatus,Exibindo Informações de Status do Arquivo>>
* <<comparing,Comparando Revisões de Arquivos>>
* <<merging,Mesclando Revisões de Arquivos>>


=== Exibindo alterações no Editor de Código-fonte

Ao abrir um arquivo com controle de versão no Editor de Código-fonte do IDE, você pode ver as alterações em tempo real acontecendo no seu arquivo à medida que ele é modificado em relação à versão anterior cujo check-out do repositório foi efeito. Conforme você trabalha, o IDE usa a codificação de cor nas margens do Editor de Código-fonte para fornecer as seguintes informações:

|===
|*Azul* (       ) |Indica as linhas alteradas desde a revisão anterior. 

|*Verde* (       ) |Indica as linhas adicionadas desde a revisão anterior. 

|*Vermelho* (       ) |Indica as linhas removidas desde a revisão anterior. 
|===

A margem esquerda do Editor de Código-fonte mostra as alterações que ocorrem linha por linha. Quando você modifica uma determinada linha, as alterações são imediatamente mostradas na margem esquerda.

É possível clicar em um agrupamento colorido na margem para chamar os comandos de controle de versão. Por exemplo, a captura de tela inferior esquerda mostra os widgets disponíveis quando você clica em um ícone vermelho, indicando que linhas foram removidas de sua cópia local.

A margem direita do Editor de Código-fonte fornece uma visão geral que exibe as alterações feitas no arquivo como um todo, do início ao fim. A codificação de cor é gerada imediatamente quando você altera o arquivo.

Observe que você pode clicar em um ponto específico na margem para trazer imediatamente o seu cursor in-line para esse local no arquivo. Para exibir o número de linhas afetadas, passe o mouse sobre os ícones coloridos na margem direita:

[.feature]
--
image::images/left-ui-small.png[role="left", link="images/left-ui.png", title="Margem esquerda"]
--

[.feature]
--
image::images/right-ui-small.png[role="left", link="images/right-ui.png", title="Margem direita"]
--
 
=== Exibindo Informações de Status do Arquivo

Quando você está trabalhando nas janelas Projetos (Ctrl-1 no Windows/Command-1 no OS X), Arquivos (Ctrl-2 no Windows/Command-2 no OS X), Favoritos (Ctrl-3 no Windows/Command-3 no Mac X) ou de Controle de Versão, o IDE fornece várias funcionalidades visuais que ajudam a exibir as informações de status sobre seus arquivos. No exemplo a seguir, observe como o emblema (por exemplo, image:images/blue-badge.png[]), cor do nome do arquivo, e label de status adjacente, todos coincidem com outros para fornecer a você uma maneira efetiva e simples para controlar informações sobre seus arquivos de controle de versão:

image::images/badge-example.png[]

NOTE: os labels de status são indicação textual do status do arquivo nas janelas Controle de Versão, Projetos e Arquivos. Para exibir labels de status, escolha Exibir > Mostrar Labels de Controle de Versão na barra de ferramentas principal.

Os emblemas, a codificação de cor, os labels de status do arquivo e, talvez o mais importante, a janela de Controle de Versão ajudam a exibir e gerenciar de forma eficiente as informações de controle de versão no IDE.

* <<badges,Emblemas e Codificação de Cor>>
* <<fileStatus,Labels de Status do Arquivo>>
* <<versioning,A Janela de Controle de Versão>>


==== Emblemas e Codificação de Cor

Os emblemas são aplicados ao projeto, pasta e nós do pacote e informam o status dos arquivos contidos nesse nó:

A tabela a seguir exibe o esquema de cores usado nos emblemas:

|===
|Componente de IU |Descrição 

|*Emblema Azul* (image:images/blue-badge.png[]) |Indica a presença de arquivos que foram localmente modificados, adicionados ou deletados. No caso de pacotes, esse emblema se aplica somente ao pacote em si, e não aos seus subpacotes. Para projetos ou pastas, o emblema indica as alterações nesse item, ou em qualquer uma das subpastas contidas. 

|*Emblema Vermelho* (image:images/red-badge.png[]) |Marca os projetos, as pastas ou os pacotes que tenham arquivos _conflitantes_ (i.e., versões locais que apresentam conflito com as versões do repositório). No caso de pacotes, esse emblema se aplica somente ao pacote em si, e não aos seus subpacotes. Para projetos ou pastas, o emblema indica os conflitos nesse item ou em qualquer uma das subpastas contidas. 
|===

A codificação de cor é aplicada aos nomes de arquivo para indicar seu status atual em relação ao repositório:

|===
|Cor |Exemplo |Descrição 

|*Azul* |image:images/blue-text.png[] |Indica que o arquivo foi modificado localmente. 

|*Verde* |image:images/green-text.png[] |Indica que o arquivo foi adicionado localmente. 

|*Vermelho* |image:images/red-text.png[] |Indica que o arquivo contém conflitos entre sua cópia local de trabalho e a versão no repositório. 

|*Cinza* |image:images/gray-text.png[] |Indica que os arquivo é ignorado pelo Mercurial e não será incluído nos comandos de controle de versão (ou seja, Atualizar e Confirmar). Os arquivos só podem ser ignorados caso ainda não tenham tido controle de versão. 

|*Tachado* |image:images/strike-through-text.png[] |Indica que o arquivo foi excluído das operações de confirmação. O texto tachado aparece somente em locais específicos, como na janela de Controle de Versão ou na caixa de diálogo Confirmar, quando você decide excluir arquivos individuais de uma ação de confirmação. Tais arquivos ainda são afetados por outros comandos do Mercurial, tais como Atualizar. 
|===


==== Labels de Status do Arquivo

Os labels de status do arquivo fornecem uma indicação textual do status dos arquivos com controle de versão nas janelas do IDE. Por default, o IDE exibe as informações de status (novo, modificado, ignorado etc.) e de pastas em texto cinza à direita dos arquivos, à medida que eles são listados em janelas. Entretanto, você pode modificar esse formato para que se adeque às suas necessidades. Por exemplo, se você quiser adicionar números de revisão aos labels de status, faça o seguinte:

1. Escolha  ``Ferramentas``  >  ``Opções``  ( ``NetBeans``  >  ``Preferências``  no OS X) a partir do menu principal. A janela Opções é aberta.
2. Selecione o botão Equipe na parte superior da janela e clique na guia Controle de Versão abaixo dele. Certifique-se de que Mercurial esteja selecionado abaixo de Sistemas de Controle de Versão no painel esquerdo.
3. Para reformatar as legendas de status de forma que somente o status e de pasta sejam exibidos à direita dos arquivos, reorganize o conteúdo do campo de texto Formato do Label de Status para o seguinte:

[source,java]
----

[{status}; {folder}]
----
Clique em OK. Os labels de status agora listam o status e os labels do arquivo (onde aplicável):

image::images/file-labels.png[]

Os labels de status do arquivo podem ser ativados e desativados, ao selecionar  ``Exibir``  >  ``Mostrar Labels de Controle de Versão``  no menu principal.


==== A Janela de Controle de Versão

A janela de Controle de Versão do Mercurial fornece uma lista em tempo real de todas as alterações feitas nos arquivos em uma pasta selecionada da sua cópia de trabalho local. Ela é aberta por default no painel inferior do IDE, listando os arquivos adicionados, deletados ou modificados.

Para abrir a janela de Controle de Versão, selecione um arquivo ou uma pasta com controle de versão (ou seja, na janela Projetos, Arquivos ou Favoritos) e escolha  ``Mercurial``  >  ``Mostrar Alterações``  no menu de clique direito, ou escolha  ``Equipe``  >  ``Mercurial``  >  ``Mostrar Alterações``  no menu principal. A janela seguinte aparece na parte inferior do IDE:

image::images/versioning-window.png[]

Por default, a janela Controle de Versão exibe uma lista de todos os arquivos modificados dentro do pacote ou pasta selecionado. Usando os botões na barra de ferramentas, é possível optar por exibir todas as alterações ou limitar a lista de arquivos exibidos a arquivos modificados local ou remotamente. É possível clicar nos cabeçalhos das colunas acima dos arquivos listados para classificá-los por nome, status ou local.

A barra de ferramentas da janela de Controle de Versão também inclui botões que permitem chamar as tarefas mais comuns do Mercurial em todos os arquivos exibidos na lista. A tabela a seguir lista os comandos do Mercurial disponíveis na barra de ferramentas da janela de Controle de Versão:

|===
|Ícone |Nome |Função 

|image:images/refresh.png[] |*Atualizar Status* |Atualiza o status dos arquivos e pastas selecionados. Os arquivos exibidos na janela de Controle de Versão podem ser atualizados para refletir quaisquer alterações feitas externamente. 

|image:images/diff.png[] |*Diferenciar Tudo* |Abre o Visualizador de Diferenciação que fornece uma comparação lado a lado de suas cópias locais e das versões mantidas no repositório. 

|image:images/update.png[] |*Atualizar Todos* |Atualiza todos os arquivos selecionados no repositório. 

|image:images/commit.png[] |*Confirmar Tudo* |Permite que você confirme todas as atualizações locais no repositório. 
|===

Você pode acessar outros comandos do Mercurial na janela Controle de Versão, selecionando uma linha da tabela que corresponda a um arquivo modificado e escolhendo um comando no menu do botão direito do mouse.

Por exemplo, execute as ações a seguir em um arquivo:

|===
|* *Mostrar Anotações*: exibe o autor e as informações do número da revisão na margem esquerda dos arquivos abertos no Editor de Código-fonte.
 |image:images/annotations.png[] 

|* *Reverter Modificações*: abre a caixa de diálogo Reverter Modificações que pode ser usada para especificar parâmetros para reverter quaisquer mudanças locais em revisões mantidas no repositório.

[.feature]
--
image::images/search-rev-small.png[role="left", link="images/search-rev.png"]
--
 
|===


=== Comparando Revisões de Arquivos

Comparar revisões de arquivos é uma tarefa comum ao se trabalhar com projetos com controle de versão. O IDE permite que você compare versões, usando o comando Diferenciar, que está disponível no menu de contexto de um item selecionado ( ``Mercurial``  >  ``Diferenciar``  >  ``Diferenciar para Base``  ou  ``Mercurial``  >  ``Diferenciar``  >  ``Diferenciar para Revisão`` ), assim como na janela de Controle de Versão. Na janela de Controle de Versão, você pode executar diferenciais clicando duas vezes em um arquivo listado, caso contrário, você pode clicar no ícone Diferenciar Todos (image:images/diff.png[]) localizado na barra de ferramentas no topo.

Quando você faz uma diferenciação, um Visualizador de Diferenciação gráfico é aberto para os arquivos e revisões selecionados na janela principal do IDE. O Visualizador de Diferenciação exibe duas cópias nos painéis lado a lado. A cópia mais atual aparece no lado direito, portanto, se você estiver comparando uma revisão do repositório com sua cópia de trabalho, a cópia de trabalho é exibida no painel direito:

[.feature]
--
image::images/diff-viewer-small.png[role="left", link="images/diff-viewer.png"]
--

O visualizador de Diferenciação usa a mesma <<viewingChanges,codificação de cor>> usada para exibir alterações de controle de versão. Na captura de tela exibida acima, o bloco verde indica o conteúdo que foi adicionado à revisão mais atual. O bloco vermelho indica que o conteúdo da revisão anterior foi removido da última revisão. Azul indica que as alterações ocorreram na(s) linha(s) realçada(s).

Além disso, ao executar uma diferenciação em um grupo de arquivos, como em um projeto, pacote ou pasta, ou quando clicar em diferenciar todos (image:images/diff.png[]), você pode alternar entre diferenciais clicando em arquivos listados na região superior do Visualizador de Diferenciação.

A ferramenta Visualizador de Diferenciação fornece a seguinte funcionalidade:

* <<makeChanges,Fazer Alterações em sua Cópia de Trabalho Local>>
* <<navigateDifferences,Navegar entre as Diferenças>>


==== Fazer Alterações em sua Cópia de Trabalho Local

Se você estiver executando uma diferenciação em sua cópia de trabalho local, o IDE permite fazer alterações diretamente no Visualizador de Diferenciação. Para fazer isso, você pode colocar o cursor no painel direito do Visualizador de Diferenciação e modificar seu arquivo adequadamente, caso contrário, use os ícones in-line exibidos ao lado de cada alteração realçada:

|===
|*Substituir* (image:images/insert.png[]): |Insere o texto realçado da revisão anterior na revisão atual 

|*Mover Todos* (image:images/arrow.png[]): |Reverte a revisão atual do arquivo para o estado da revisão anterior selecionada 

|*Remover* (image:images/remove.png[]): |Remove o texto realçado da revisão atual para que ela espelhe a revisão anterior 
|===


==== Navegar nas Diferenças entre Arquivos Comparados

Se a sua comparação contém várias diferenças, você pode navegar nelas, usando os ícones de seta exibidos na barra de ferramentas. Os ícones de seta permitem que você exiba as diferenças conforme elas aparecem na parte do início ao fim:

|===
|*Anterior* (image:images/diff-prev.png[]): |Vai para a diferença anterior exibida na diferenciação 

|*Próximo* (image:images/diff-next.png[]): |Vai para a próxima diferença exibida na diferenciação 
|===


=== Mesclando Revisões de Arquivos

O NetBeans IDE permite mesclar as alterações entre as revisões no repositório e na sua cópia de trabalho local. Especificamente, isso combina dois conjuntos de separação separados em um repositório em um novo conjunto de separação que descreve como eles combinam.

1. Na janela Projetos, Arquivos ou Favoritos, clique com o botão direito do mouse nos arquivos ou pastas em que deseja realizar a operação de mesclagem e escolha  ``Mercurial``  >  ``Branch/Tag``  >  ``Mesclar Alterações`` . A caixa de diálogo Mesclar com Revisão é exibida.
2. Na lista drop-down Escolha de Revisões, selecione revisão. Todas as alterações feitas em uma cópia de arquivo local são transferidas no momento em que são criadas.
3. Certifique-se de que os dados de Descrição, Autor e Data estejam corretos.

[.feature]
--
image::images/mercurial-merge-small.png[role="left", link="images/mercurial-merge.png"]
--

[start=4]
. Clique em Mesclar. O IDE incorpora quaisquer diferenças constatadas entre a versão de revisão do repositório e a cópia local do arquivo. Se ocorrerem conflitos de mesclagem, o status do arquivo será atualizado em <<resolving,Conflito de Mesclagem>> para indicar o fato.

NOTE: depois de mesclar as alterações do arquivo com o diretório de trabalho local, ainda é necessário confirmar as alterações usando o comando Confirmar para poder adicionar as alterações ao repositório.


== Confirmando Códigos-fonte em um Repositório

Depois de fazer alterações no código-fonte, você as confirma no repositório. Normalmente, é recomendado atualizar todas as cópias que você tenha no repositório antes de executar a confirmação para garantir que não surjam conflitos. No entanto, podem ocorrer conflitos, que devem ser considerados como um evento natural quando vários desenvolvedores trabalham simultaneamente em um projeto. O IDE fornece um suporte flexível que permite executar todas essas funções. Ele também fornece um Resolvedor de Conflitos que permite tratar com segurança quaisquer conflitos à medida que ocorrerem.

* <<updating,Atualizando Cópias Locais>>
* <<performing,Executando a Confirmação>>
* <<issues,Atualizando Problemas>>
* <<pushing,Expandindo Alterações Locais no Repositório Compartilhado>>


=== Atualizando Cópias Locais

Você pode executar alterações ao escolher  ``Equipe``  >  ``Atualizar``  a partir do menu principal.

Para executar uma atualização em códigos-fonte que você modificou, você pode clicar no ícone Atualizar Tudo (image:images/update.png[]), que exibe as barras de ferramentas localizada na parte superior do <<versioning,Controle de Versão>> e no Visualizador de Diferenciação<<comparing,. Quaisquer alterações que possam ter ocorrido no repositório são exibidas na janela de Saída de Controle de Versão.>>

<<comparing, >>


=== Executando a Confirmação

Após editar os arquivos de origem, executar uma atualização e resolver quaisquer conflitos, você confirma os arquivos de sua cópia local de trabalho no repositório. O IDE permite que você chame o comando de confirmação das seguintes formas:

* Nas janelas Projetos, Arquivos ou Favoritos, clique com o botão direito do mouse nos itens novos ou modificados e escolha  ``Mercurial``  >  ``Confirmar`` .
* Na janela Visualizador de Controle de Versão ou de Diferenciação, clique no botão Confirmar Tudo (image:images/commit.png[]) localizado na barra de ferramentas.

A caixa de diálogo Confirmar é aberta, exibindo os arquivos que estão prestes a serem confirmados no repositório:

[.feature]
--
image::images/mercurial-commit-dialog-small.png[role="left", link="images/mercurial-commit-dialog.png"]
--

A caixa de diálogo Confirmar lista:

* todos os arquivos modificados localmente
* todos os arquivos deletados localmente
* todos os arquivos novos (ou seja, arquivos que ainda não existem no repositório)
* todos os arquivos que você renomeou. O Mercurial trata os arquivos renomeados deletando o arquivo original e criando uma cópia com o novo nome.

Na caixa de diálogo Confirmar, é possível especificar se arquivos individuais devem ser excluídos da confirmação. Para fazer isso, clique na coluna Ação de Confirmação de um arquivo selecionado e escolha Excluir da confirmação na lista drop-down.

Para executar a confirmação:

1. Digite uma mensagem de confirmação na área de texto Mensagem de Confirmação. Se preferir, clique no ícone de Mensagens Recentes (image:images/recent-msgs.png[]) localizado no canto superior direito para ver e selecionar de uma lista de mensagens que você usou anteriormente existente.
2. Depois de especificar ações para arquivos individuais, clique em Confirmar. O IDE executa a confirmação e envia suas alterações locais para o repositório. A barra de status do IDE, localizada na parte inferior direita da interface, é exibida conforme a ação de confirmação ocorre. Com uma confirmação bem-sucedida, as identificações de controle de versão desaparecem nas janelas Projetos, Arquivos e Favoritos e a codificação de cor dos arquivos confirmados volta a ser preta.


=== Atualizando Problemas

É possível atualizar um problema ao associar a ação de confirmação com um problema existente no rastreador de problemas do repositório. Para fazer isso, clique no cabeçalho Atualizar Problema na caixa de diálogo Confirmar para expandir, então especifique:

* *Rastreador de Problemas: *Especifique o rastreador de problemas que o repositório usa ao selecionar um rastreador de problemas da lista drop-down. A lista drop-down fornece uma lista de todos os rastreadores de problemas registrados com o IDE. Se o rastreador de problemas do repositório não foi registrado, clique no botão Novo, para registrá-lo.
* *Problema: *especifique o ID do problema. É possível fazer isso digitando no ID ou em parte da descrição.

Pode também especificar as seguintes opções:

* *Resolver como CORRIGIDO:* quando selecionado, o status do problema será alterado para Resolvido.
* *Adicionar Mensagem de Confirmação Acima:* quando selecionada, a mensagem de confirmação é adicionada ao problema.
* *Adicionar Informação de Revisão ao Problema*Quando selecionado, o problema é atualizado para incluir a informação de revisão como autor, data etc. É possível clicar em Alterar Formato para modificar o formato da informação da revisão que é adicionada ao problema.
* *Adicionar Informação do Problema para a Mensagem de Confirmação:* quando selecionada, os detalhes sobre o problema, como o ID do problema e o resumo, são adicionados à mensagem de confirmação. É possível clicar em Alterar Formato para modificar o formato da informação do problema que é adicionado à mensagem.
* *Depois da Confirmação:* quando selecionado, o problema é atualizado depois que você confirma as alterações.
* *Após Expansão:* quando selecionado, o problema é atualizado depois de ocorrer a expansão das alterações para o repositório.


=== Expandindo Alterações Locais no Repositório Compartilhado

Antes de expandir as alterações confirmadas localmente no repositório local, é necessário sincronizar o repositório local com o repositório compartilhado. Para realizar isso com o comando Extrair, selecione  ``Equipe``  >  ``Mercurial``  >  ``Remoto``  >  ``Extrair``  do menu principal. Após a execução de uma Extração bem-sucedida, o repositório local estará sincronizado com o repositório compartilhado.

Para expandir alterações, escolha  ``Equipe``  > ( ``Mercurial``  >)  ``Remoto``  >  ``Expandir Ramificação Atual`` ,  ``Equipe``  > ( ``Mercurial``  >)  ``Remoto``  >  ``Expandir Todas as Ramificações``  ou  ``Equipe``  > ( ``Mercurial``  >)  ``Remoto``  >  ``Expandir``  do menu principal. A saída de uma Expansão bem-sucedida listará quaisquer conjuntos de alterações criados.

NOTE: uma vez que uma cópia do repositório completo existe no sistema, a prática comum é realizar várias confirmações no repositório local e apenas após uma tarefa ter sido concluída, executar a expansão para o repositório compartilhado.


== Resumo

Este tutorial demonstrou como executar tarefas de controle de versão básicas no IDE ao guiá-lo pelo fluxo de trabalho padrão ao usar o suporte Mercurial do IDE. Ele mostrou como configurar um projeto com controle de versão e como executar tarefas básicas em arquivos com controle de versão e apresentando-o algumas das novas funcionalidades do Mercurial incluídas no IDE.

link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20Mercurial%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]



== Consulte Também

Para ver o material relacionado, consulte os seguintes documentos:

* link:http://wiki.netbeans.org/HgNetBeansSources[+Usando o Mercurial para trabalhar com Códigos-fonte do NetBeans no IDE+]
* link:mercurial-queues.html[+Usando Suporte às Filas do Mercurial no NetBeans IDE+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234[+Aplicando Controle de Versão às Aplicações com Controle de Versão+] em _Desenvolvendo Aplicações com o NetBeans IDE_
