// 
//     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 CVS 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 CVS no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Usando Suporte ao CVS no NetBeans IDE

O suporte CVS para o NetBeans IDE foi projetado para ajudar a racionalizar o processo de desenvolvimento para grupos trabalhando de um repositório compartilhado, permitindo executar tarefas de controle de versão diretamente de seu sistema de projetos dentro do IDE. O software cliente CVS está incorporado no NetBeans IDE, e nenhuma configuração especial é necessária para começar a usar o CVS.

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.

CVS, ou Concurrent Versions System, é um sistema de controle de versão de códigos-fonte aberto que mantém o rastreamento de alterações e de todo o trabalho em um conjunto de arquivos. Normalmente é usado durante a implementação de um projeto de software, permitindo que múltiplos desenvolvedores colaborem. Para obter mais informações sobre o CVS, consulte a link:http://ximbiot.com/cvs/[+documentação oficial+].

NOTE:  após o NetBeans IDE 7.0.1, o suporte CVS está disponível após a instalação do plug-in CVS a partir da Central de Atualização do NetBeans IDE. Consulte a página link:http://wiki.netbeans.org/CVSSupport[+FAQs do CVS+] para obter detalhes.


image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 6.9 e mais recente"]


*Para concluir este tutorial, você precisa dos seguintes recursos e softwares.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |versão 6.x e posterior 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 6 ou posterior 
|===


== 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 CVS no IDE>>
* <<checking,Fazendo Check-out de Arquivos de um Repositório>>
* <<importing,Importando Arquivos para um Repositório>>


=== Abrindo um Projeto CVS no IDE

Caso já possua um projeto com controle de versão do CVS com o qual tem trabalhado fora do IDE, você pode abri-lo no IDE e as funcionalidades de controle de versão se tornam automaticamente disponíveis. O IDE varre seus projetos abertos e se eles contêm diretórios `CVS` , o status do arquivo e o suporte de acordo com o contexto se ativam automaticamente para os projetos CVS 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, escolha Equipe > CVS > Check-out no menu principal. O assistente de Check-out é aberto. 

NOTE: os menus drop-down do IDE se adaptam ao contexto, ou seja, as opções disponíveis dependem do item selecionado. Portanto, se você já estiver trabalhando dentro de um projeto CVS, poderá escolher Controle de Versão > Check-out no menu principal.
2. No primeiro painel do assistente, insira a localização do repositório, que pode ser definido por `CVSROOT`: 

 O IDE suporta diversos formatos de `CVSROOT`, dependendo se o repositório CVS for local ou remoto, e qual método está sendo usado para se conectar ao mesmo: 

|===
|Método |Descrição |Exemplo 

|*pserver* |Servidor remoto de senha |`:pserver:username@hostname:/repository_path` 

|*ext* |Acesso usando o Remote Shell (RSH) ou o Secure Shell (SSH) |`:ext:username@hostname:/repository_path` 

|*local* |Acesso para um repositório local |`:local:/repository_path` 
[float-right]# (requires an external CVS executable)# 

|*fork* |Acesso para um repositório local usando um protocolo remoto |`:fork:/repository_path` 
[float-right]# (requires an external CVS executable)# 
|===

Dependendo do método utilizado, pode ser necessário especificar outras informações, como uma senha e definições de proxy para a conexão com um repositório remoto (exemplo, para um `pserver`). Clique em Próximo. 

NOTE:  caso esteja tentando definir uma autenticação SSH com chave pública, consulte: link:http://wiki.netbeans.org/wiki/view/FaqHowToSetUpSSHAuth[+como definir a autenticação SSH com chave pública?+]. 

Para obter ajuda sobre como acessar repositórios locais, consulte: link:http://wiki.netbeans.org/wiki/view/FaqHowToAccessLocalCVS[+Como posso acessar repositórios locais?+]

[start=3]
1. No painel Módulos para Check-out do assistente, especifique o módulo cujo check-out deseja no campo Módulo. Caso não saiba o nome do módulo ao qual deseja fazer check-out, clique no botão Procurar para exibir o conteúdo do repositório. Na caixa de diálogo Procurar por Módulo CVS, selecione quaisquer dos módulos listados e clique em OK. Sua seleção é então adicionada no campo Módulo:

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

[start=4]
1. No campo de texto Ramificação, insira o nome da ramificação para check-out. Clique no botão Procurar para abrir a caixa de diálogo Procurar Tags e pesquise as ramificações e tags disponíveis. Caso você não especifique uma ramificação ou uma tag, o _trunk_ será submetido a check-out.
2. No campo Pasta Local, insira um local em seu computador onde deseja fazer check-out dos arquivos e, em seguida, clique em Finalizar para iniciar o check-out de CVS. O IDE faz check-out dos códigos-fonte especificado e a barra de status do IDE indica o andamento do download dos arquivos do repositório para seu diretório de trabalho local. Você também pode exibir os arquivos que estão sendo submetidos a check-out na janela de Saída (Ctrl-4). 

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 (ou sejam 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 com o repositório CVS.

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), selecione um projeto sem controle de versão e escolha Controle de Versão > Importar para o repositório CVS ao clicar com o botão direito do mouse no nó. O assistente Importação de CVS é aberto.
2. No painel Raiz CVS do assistente Importar, indique a localização do repositório, como definido pelo <<protocolTypes,`CVSROOT`>>. Dependendo do método utilizado, pode ser necessário especificar outras informações, como uma senha e definições de proxy para a conexão com um repositório remoto (exemplo, para um `pserver`). Clique em Próximo.
3. No painel Pasta a Importar, especifique a pasta local que deseja colocar no repositório. O nome de seu projeto lhe é sugerido por default no campo de texto Pasta a Importar:

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

[start=4]
1. Na área de texto Importar Mensagem, insira uma descrição do projeto que está importando no repositório.
2. Especifique a localização no repositório onde deseja importar o projeto ao digitar o caminho no campo de texto Pasta do Repositório. Se preferir, clique no botão Procurar para navegar para uma localização específica no repositório. Clique em Finalizar para iniciar a importação. O IDE fará upload dos arquivos do projeto para o repositório e a janela de Saída será aberta e exibirá o andamento.

NOTE: por default o cliente CVS não trata importações de arquivos binários. A prática recomendada para importação códigos-fonte binários é criar um arquivo `cvswrappers` dentro do repositório. Consulte link:http://wiki.netbeans.org/FaqCVSHowToImportBinaries[+Como Importar Corretamente Arquivos Binários+]para obter mais detalhes.


== Editando Códigos-fonte

Após ter um projeto com controle de versão CVS aberto no IDE, é possível 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 (ou seja, janelas Projetos (Ctrl-1), Arquivos (Ctrl-2) e Favoritos (Ctrl-3)).

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"]
--
 
*Margem esquerda* |image::images/right-ui.png[title="a codificação de cor do controle de versão é exibida na margem direita do editor"] 
*Margem direita* 
|===


=== Exibindo Informações de Status do Arquivo

Quando você está trabalhando nas janelas Projetos (Ctrl-1), Arquivos (Ctrl-2), Favoritos (Ctrl-3) 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[]

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[]) |Marque os projetos, pastas ou pacotes que tenham arquivos _conflitantes_ (isto é, 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 CVS 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 CVS, 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.) em texto cinza à direita dos arquivos, como estão listados nas 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 Mac) no menu principal. A janela Opções é aberta.
2. Selecione o botão Diversos na parte superior da janela e clique na guia Controle de Versão abaixo dela. Garanta que CVS esteja selecionado abaixo de Sistemas de Controle de Versão no painel esquerdo:

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

[start=3]
1. Clique no botão Adicionar Variável à direita do campo de texto Formato do Label de Status. Na caixa de diálogo Adicionar Variável que é exibida, selecione a variável `{revision}` e clique em OK. A variável revision é adicionada ao campo de texto Formato do label de status.
2. Para reformatar os labels de status de forma que somente o seletor de status e de revisão seja exibido à direita dos arquivos, reorganize o conteúdo do campo de texto Formato do label de status para o seguinte:

[source,java]
----

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

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

Os labels de status do arquivo podem ser ativados e desativados, selecionando 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 de CVS 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 pasta com controle de versão (ou seja, na janela Projetos, Arquivos ou Favoritos) e escolha CVS > Mostrar Alterações com o menu de contexto, ou escolha Controle de Versão > Mostrar Alterações no menu principal. A janela seguinte aparece na parte inferior do IDE:

[.feature]
--
image::images/cvs-versioning-window-small.png[role="left", link="images/cvs-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 CVS em todos os arquivos exibidos na lista. A tabela a seguir lista os comandos do CVS 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 CVS na janela de controle de versão, selecionando uma linha da tabela que corresponde a um arquivo modificado, e escolhendo um comando do menu de contexto:

image::images/cvs-right-click.png[]

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[] 

|* *Pesquisar Histórico*: 

Permite que você procure e compare várias revisões do arquivo selecionado no Exibidor de Histórico do IDE. No Visualizador de Históricos também é possível executar uma <<comparing,comparação>> ou restaurar sua cópia local para a revisão selecionada.
 |[.feature]
--
image::images/history-viewer-small.png[role="left", link="images/history-viewer.png"]
--
 

|* *Excluir da Confirmação*: 

Permite que você marque o arquivo para ser excluído ao executar uma confirmação.
 |[.feature]
--
image::images/exclude-from-commit-small.png[role="left", link="images/exclude-from-commit.png"]
--
 

|* *Reverter Modificações*: 

Abre a caixa de diálogo Confirmar Substituição que permite reverter quaisquer ações que tenham sido confirmadas para arquivos em sua cópia local de trabalho.
 |[.feature]
--
image::images/cvs-confirm-overwrite-small.png[role="left", link="images/cvs-confirm-overwrite.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 (CVS > Diferenciar), 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>>
* <<changeViewCriteria,Alterar os Critérios de Exibição>>


==== 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 
|===


==== Alterar os Critérios de Exibição

Você pode optar por exibir os arquivos que contêm alterações na cópia de trabalho local, no repositório ou em ambos simultaneamente:

|===
|*Local* ( image::images/locally-mod.png[] ): |Exibe apenas os arquivos modificados localmente 

|*Remoto* ( image::images/remotely-mod.png[] ): |Exibe apenas os arquivos modificados remotamente 

|*Ambos* ( image::images/both-mod.png[] ): |Exibe os arquivos modificados local e remotamente 
|===


=== Mesclando Revisões de Arquivos

O NetBeans IDE permite mesclar alterações feitas em diferentes ramificações do repositório com sua cópia local de trabalho. Usando a caixa de diálogo Mesclar CVS, somente é necessário especificar o critério que indica quais códigos-fonte no repositório você deseja mesclar com sua cópia local de trabalho.

O caso de uso simples a seguir demonstra como você pode aplicar a caixa de diálogo Mesclar para mesclar toda uma ramificação no início do tronco:


|===
|*Caso de uso:* |Há uma solicitação para iniciar o desenvolvimento de uma nova funcionalidade para o projeto, portanto, uma nova ramificação é criada a partir do estado atual do tronco do projeto. Após todo o trabalho necessário ter sido feito e o código está bem estável na ramificação, você integra a nova funcionalidade com o tronco. 
|===

1. Crie a nova ramificação para o projeto ao clicar com o botão direito do mouse no nó do projeto e escolha CVS > Ramificação. Na caixa de diálogo Ramificação, insira `new_feature` como o nome da ramificação, e certifique-se de que a opção Ramificar Posteriormente esteja selecionada:

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

Clique no botão Ramificar. Uma nova ramificação é criada no repositório, e o IDE alterna sua localização de repositório de destino para a nova ramificação. Na janela Projetos, o nome da nova ramificação é exibido em texto cinza junto aos arquivos com controle de versão, indicando que você agora está trabalhando a partir da ramificação.

NOTE: certifique-se de que os <<fileStatus,labels de status de arquivo>> estejam ativados (selecione Exibir > Mostrar Labels de Controle de Versão a partir do menu principal).

[start=2]
1. Editar arquivos, adicionar arquivos, deletar arquivos. Confirmar todas as alterações.
2. Quando a nova funcionalidade estiver pronta, alterne de volta para o tronco. Você precisa estar trabalhando na ramificação de destino (ou seja, o tronco neste caso) ao desejar executar uma mesclagem entre as duas ramificações. Clique com o botão direito do mouse no nó do projeto e escolha CVS > Alternar para a Ramificação. Na caixa de diálogo que é exibida, selecione Alternar para o Tronco e clique em Alternar. 

O IDE alterna a localização do repositório de destino para o tronco. Na janela Projetos, observe que os labels de status do arquivo são automaticamente atualizados para refletir seu novo local de trabalho.

[start=4]
1. Para executar a mesclagem, clique com o botão direito do mouse no nó do projeto e escolha CVS > Mesclar Alterações da Ramificação. Na caixa de diálogo que é exibida, observe que o campo Mesclar Alterações para Ramificação de Trabalho contém `Tronco`, indicando sua localização de trabalho atual. 

Na caixa de diálogo, especifique os seguintes critérios:
* Deixe a opção Iniciando de, definida como Ponto da Ramificação/Raiz da Ramificação, porque você deseja mesclar todas as alterações desde a criação da ramificação.
* Para a opção Até, selecione Início da Ramificação, e digite o nome da ramificação que deseja mesclar no tronco. Você também pode clicar em Procurar para pesquisar entre as ramificações existentes no repositório.
* Caso deseje identificar as versões após a mescla, selecione Identificar Tronco após a mesclagem, e insira um nome de tag de sua escolha.

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

Clique em Mesclar. O IDE incorpora a ramificação com o tronco. Caso surjam conflitos no processo, o status do projeto é atualizado para <<resolving,Conflito de Mesclagem>> para indicar isso.

NOTE: depois de mesclar as alterações do arquivo de uma ramificação com o diretório de trabalho local, ainda é necessário confirmar as alterações usando o comando Confirmar, para 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>>
* <<resolving,Resolvendo Conflitos>>
* <<performing,Executando a Confirmação>>


=== Atualizando Cópias Locais

Você pode executar alterações ao escolher CVS > Atualizar ao clicar com o botão direito do mouse em qualquer item com controle de versão nas janela Projetos, Arquivo ou Favoritos. Ao trabalhar diretamente na janela Controle de Versão, basta clicar com o botão direito do mouse em um arquivo listado e escolher Atualizar.

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, >>


=== Resolvendo Conflitos

Quando você executa uma atualização ou confirmação, o suporte CVS do IDE compara seus arquivos com os códigos-fonte no repositório para assegurar que outras alterações já não ocorreram nos mesmos locais. Quando seu check-out (ou atualização) anterior não mais coincide com o _HEAD_ do repositório (ou seja, a versão mais atual), _e_ as alterações aplicadas na sua cópia local de trabalho coincidem com áreas no HEAD que também mudaram, sua atualização ou confirmação resulta em um _conflito_.

Conforme indicado em <<badges,Emblemas e Codificação de Cor>>, os conflitos são exibidos no IDE com texto vermelho e são acompanhado por um emblema vermelho (image::images/red-badge.png[]) quando visualizada nas janelas Projetos, Arquivos ou Favoritos. Quando você trabalha na janela Controle de Versão, os conflitos também são indicados por um status de arquivo:

image::images/cvs-conflict-versioning-win.png[]

Quaisquer conflitos que surjam precisam ser resolvidos antes de confirmar os arquivos no repositório. Você pode resolver os conflitos no IDE usando o Resolvedor de Conflitos de Mesclagem O Resolvedor de Conflitos de Mesclagem fornece uma interface intuitiva que permite endereçar conflitos individuais sequencialmente enquanto exibe a saída mesclada ao efetuar alterações. Você pode acessar o Resolvedor de Conflitos de Mesclagem em um arquivo que esteja em conflito ao clicar com o botão direito do mouse naquele arquivo e ao escolher CVS > Resolver Conflitos.

O Resolvedor de Conflitos de Mesclagem exibe as duas revisões em conflito lado a lado no painel superior, com as áreas conflitantes realçadas. O painel inferior mostra o arquivo da forma como aparece durante mesclagens de conflitos entre as duas revisões:

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

Você resolver um conflito ao aceitar uma das duas revisões exibidas no painel superior. Clique no botão Aceitar da revisão que deseja aceitar. O IDE mescla a revisão aceita com o arquivo de origem e você pode imediatamente ver os resultados da mesclagem no painel inferior do Resolvedor de Conflitos de Mesclagem. Depois de resolver todos os conflitos, clique em OK para sair do Resolvedor de Conflitos de Mesclagem e salvar o arquivo modificado. O emblema de conflito é removido e agora é possível confirmar o arquivo modificado no repositório.


=== 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 CVS > 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/cvs-commit-dialog-small.png[role="left", link="images/cvs-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 CVS 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.

Quando novos arquivos binários são incluídos, tal como arquivos de imagens, eles são automaticamente detectados como arquivos binários. Você pode especificar o tipo MIME de um arquivo ao escolher Adicionar como binário ou Adicionar como Texto na lista drop-down dentro da coluna de Ação de Confirmação.

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.
link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20CVS%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]



== Consulte Também

Isso conclui o Tour Guiado do CVS para o NetBeans IDE. Este documento demonstra como executar tarefas de controle de versão básicas no IDE ao guiá-lo por meio do fluxo de trabalho padrão ao usar o suporte CVS 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 CVS incluídos no IDE.

Para documentos relacionados, consulte os seguintes recursos:

* link:http://wiki.netbeans.org/NetBeansUserFAQ#CVS[+FAQ do Suporte CVS para o NetBeans IDE+]. Um documento contendo perguntas frequentes descrevendo a configuração e o uso do CVS no NetBeans IDE.
* link:git.html[+Usando Suporte Git no NetBeans IDE+]. Um guia introdutório para o uso do cliente de controle de versão Git no NetBeans IDE.
* link:mercurial.html[+Usando Suporte ao Mercurial no NetBeans IDE+]. Um guia introdutório para o uso do cliente de controle de versão do Mercurial no NetBeans IDE.
* link:subversion.html[+Usando Suporte ao Subversion no NetBeans IDE+]. Um guia introdutório para o uso do controle de versão do Subversion no NetBeans IDE 6.x.
* link:clearcase.html[+Usando o Suporte de ClearCase no NetBeans IDE+]. Uma introdução ao uso das funcionalidades de controle de versão do ClearCase no 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_.
