// 
//     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 o Suporte de ClearCase 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 o Suporte de ClearCase no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Usando o Suporte de ClearCase no NetBeans IDE

O suporte a ClearCase do IDE é projetado para ajudá-lo a realizar tarefas de controle de versão diretamente em seu projeto ao trabalhar no IDE.

Este documento guia você pelas etapas básicas envolvidas no uso do ClearCase no NetBeans IDE.

O Rational ClearCase é um software de controle de versão desenvolvido pela IBM. O ClearCase forma a base do controle de versão para projetos de muitas empresas de grande e médio porte.


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.9 e mais recente 

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

|Software cliente do ClearCase |V 7.0 ou posterior 

|Plug-in ClearCase do NetBeans |versão 0.9.x ou posterior 
|===

*Observação: *Para obter o plug-in ClearCase do NetBeans, vá para o gerenciador de plug-ins no IDE (Ferramentas > Plug-ins no menu principal) e instale o plug-in, como mostrado abaixo:

[.feature]
--

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

--


== Configurando o ClearCase

Para se beneficiar do suporte à ClearCase do IDE, você precisa ter o software cliente do ClearCase instalado e em execução em seu computador.

O suporte a ClearCase do NetBeans funciona com as views _snapshot_ e _dinâmica_. *A views precisam ser configuradas externamente a partir do IDE e uma conexão com um servidor do ClearCase deve ser configurada corretamente.* Não é necessário trabalho adicional para acessar os arquivos nas views de snapshot. Entretanto, se quiser acessar os arquivos de uma view dinâmica, primeiro você precisará iniciá-la com as ferramentas ClearCase nativas instaladas em seu computador.

*Observações:*

* No momento, não é possível conectar a uma ClearCase Web Interface (CCWeb).
* Uma limitação para sistemas como o *nix é que você precisa iniciar o IDE de um contexto de eviews dinâmicas para poder acessar seus arquivos.

O suporte a ClearCase do IDE trabalha interagindo com o cliente  ``cleartool``  para realizar os comandos de controle de versão. Dependendo do seu sistema, e se você instala o cliente  ``cleartool``  em um local que não seja o default, talvez seja necessário registrar o caminho para o executável da  ``cleartool``  no IDE.


=== Especificando o Caminho para o Executável da  ``cleartool`` 

O NetBeans IDE tenta automaticamente identificar o local do arquivo executável da  ``cleartool`` , usando a variável do sistema  ``$PATH``  em seu computador. Entretanto, dependendo da sua plataforma, ou se você instalou o cliente ClearCase em um local diferente, talvez seja necessário especificar explicitamente o caminho para o arquivo executável. Para definir o caminho para o arquivo executável do ClearCase no IDE:

1. Escolha Ferramentas > Opções (NetBeans > Preferências no Mac) no menu principal. A caixa de diálogo Opções é aberta.
2. Selecione o ícone Diversos 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 ClearCase. As opções definidas pelo usuário para o ClearCase são exibidas na janela principal da caixa de diálogo:

 [.feature]
--

image::images/cc-options-small.jpg[role="left", link="images/cc-options.jpg"]

--


[start=3]
. No campo de texto Especificar o Caminho do Executável da  ``cleartool`` , digite o caminho do arquivo executável ou clique em Explorar para navegar para ele em seu sistema.

[start=4]
. Clique em OK, reinicie IDE para permitir que as alterações tenham efeito.

*Observação: *Para obter mais informações, consulte link:http://versioncontrol.netbeans.org/clearcase/install.html[+Notas da Release e Configuração de Integração de ClearCase do NetBeans+].


== Começando a Trabalhar com Arquivos com Controle de Versão

Ao trabalhar com o ClearCase no IDE pela primeira vez, você precisa começar abrindo um projeto com controle de versão existente, ou criando um novo projeto em uma *view do ClearCase* no computador.

* <<opening,Abrindo um Projeto Existente no IDE>>
* <<addingSourceControl,Criando um Novo Projeto e Colocando-o no Controle de Código-fonte>>


=== Abrindo um Projeto Existente no IDE

Caso já possua um projeto com controle de versão do ClearCase com o qual tem trabalhado, você pode abri-lo no IDE e as funcionalidades de controle de versão se tornam automaticamente disponíveis. O IDE examina os projetos abertos e se eles estiverem localizados em um diretório de view do ClearCase, o status do arquivo e o suporte contextual se tornam automaticamente ativos.

Para abrir um projeto com controle de versão do ClearCase:

1. Escolha Arquivo > Abrir Projeto no menu principal e navegue pelo assistente para Abrir Projeto. Ao especificar a localização do projeto, navegue para o local em um diretório *dentro de uma view do ClearCase* no computador. Quando você concluir o assistente, o projeto será exibido na janela Projetos (Ctrl-1), e o suporte a controle de versão se tornará ativo.

*Observação: *Você também pode abrir um projeto ou diretório na janela Favoritos. Isso pode ser necessário se o seu diretório do ClearCase não for um projeto do NetBeans. Para fazê-lo, clique com o botão direito do mouse na janela Favoritos (Ctrl-3) e escolha Adicionar aos Favoritos. Na caixa de diálogo Adicionar aos Favoritos que é exibida, navegue para o diretório de view de nível superior do ClearCase em seu computador e clique em Adicionar. Uma view em árvore do diretório é adicionada à janela Favoritos.


=== Criando um Novo Projeto e Colocando-o no Controle de Código-fonte

Como alternativa, você pode criar um novo projeto e colocá-lo no controle de versão do ClearCase, e continuar a trabalhar no IDE. Quando você cria um novo projeto, é necessário especificar sua localização *dentro de uma view do ClearCase*. Isso permite que o IDE reconheça que o suporte a controle de versão é necessário. Quando o projeto é criado, todos os arquivos são inicialmente de _view privada_). Você pode adicionar o projeto ao servidor do ClearCase usando o comando Adicionar ao Controle de Código-fonte do IDE.

Para criar um novo projeto:

1. Escolha Arquivo > Novo Projeto no menu principal e trabalhe no assistente Novo Projeto.
2. Na Etapa 2, Nome e Localização, selecione um diretório em uma view do ClearCase.
3. Quando você clica em Finalizar, o projeto é criado e uma view em árvore de seu diretório é adicionada à janela Projetos (Ctrl-1).
Durante a criação, o IDE reconhece automaticamente que o projeto está em uma view e todas as ações relevantes do ClearCase e as informações de status do arquivo ficam disponíveis.

Quando um projeto com controle de versão é aberto no IDE, todos os nomes de pasta e de arquivo são renderizados em verde, indicando que eles têm o status 'novo'. (Quaisquer arquivos exibidos em cinza possuem o status 'ignorado'. Consulte <<badges,Emblemas e Codificação de Cor>> abaixo para obter mais informações.) O IDE decide automaticamente para cada arquivo de projeto com controle de versão se ele é um candidato para controle de versão ou não (ou seja, arquivos de códigos-fonte em pacotes são geralmente com controle de versão, enquanto os arquivos privados do projeto são geralmente ignorados).

Agora que o seu projeto está criado, você pode sincronizá-lo com um servidor do ClearCase usando o comando Adicionar ao Controle de Código-fonte do IDE:

1. Clique com o botão direito do mouse no nó do projeto na janela Projetos e escolha Adicionar ao controle de código-fonte. A caixa de diálogo Adicionar se abre listando todos os novos arquivos de view privada que não são ignorados automaticamente pelo IDE:

 [.feature]
--

image::images/add-dialog-small.jpg[role="left", link="images/add-dialog.jpg"]

--


[start=2]
. Digite uma mensagem na área de texto Descrevendo a Mensagem. 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.

[start=3]
. Depois de especificar ações para arquivos individuais, clique em Adicionar. A barra de status do IDE, localizada na parte inferior direita da interface, é exibida conforme a ação Adicionar acontecer. Com uma adição bem-sucedida, os emblemas de controle de versão desaparecem nas janelas Projetos, Arquivos e Favoritos, e a codificação de cor dos arquivos submetidos a check-in fica em preto.

*Observação: *Na caixa de diálogo Adicionar, é possível especificar se arquivos individuais devem ser excluídos da ação Adicionar. Para fazê-lo, clique na coluna Ação de um arquivo selecionado e escolha Não adicionar, na lista drop-down.


== Fazendo Check-out dos Códigos-fonte

Quando tiver um projeto com controle de versão do ClearCase aberto no IDE, você pode começar a fazer alterações nos códigos-fonte. Modificar arquivos com controle de versão do ClearCase requer que eles tenham check-out ou sejam _capturados_ primeiro. O suporte a ClearCase do NetBeans fornece duas formas de fazer isso:

* *Manualmente*: Simplesmente clique com o botão direito do mouse em um nó de arquivo e escolha ClearCase > Checkout (ou ClearCase > Capturar).
* *Usando a funcionalidade Fazer Check-out sob Demanda*: Toda vez que ocorre uma ação que requer que um arquivo possa ser gravado, o IDE executa automaticamente o comando relevante do ClearCase (ou seja, alterar o conteúdo do arquivo no editor pela primeira vez ou executar uma ação de refatoração).

A funcionalidade Fazer Check-out sob Demanda pode ser ajustada por meio da opção Checkout sob demanda na <<ccOptions,caixa de diálogo Opções do ClearCase>>.


== Editando 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 Versões de Arquivo>>


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

Quando abre um arquivo com Controle de Versão no Editor de código-fonte do IDE, você pode ver alterações em tempo real acontecendo em seu arquivo, conforme ele é modificado em relação à versão anterior que sofreu check-out no repositório. 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 versão anterior 

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

|*Vermelho* (       ) |Indica as linhas removidas desde a versã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.

Você pode clicar em um agrupamento de cores na margem para reverter as alterações feitas recentemente. 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 do arquivo que sofreu check-out.

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.jpg[title="emblema de controle de versão azul exibido na janela Favoritos"]

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 ou pastas que foram submetidos a check-out, capturados ou adicionados. 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. 
|===

A codificação de cor é aplicada aos nomes de arquivo a fim de indicar seu status atual:

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

|*Azul* |image:images/blue-text.png[] |Indica que o arquivo sofreu check-out. 

|*Verde* |image:images/green-text.png[] |Indica que o arquivo é novo e ainda não foi adicionado ao controle de código-fonte. 

|*Cinza* |image:images/gray-text.png[] |Indica que o arquivo será ignorado pelo ClearCase e não será incluído em comandos de controle de versão (ou seja, Adicionar ao Controle de Códigos-Fonte ou Check-in). 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 será excluído de check-ins ou de operações Adicionar ao Controle de Código-Fonte. O texto tachado só aparece em locais específicos, tal como a janela de Controle de Versão, a caixa de diálogo Check-in e a caixa de diálogo Adicionar ao Controle de Códigos-fonte, quando você opta por excluir arquivos individuais de uma ação. Tais arquivos ainda são afetados por outros comandos do ClearCase, 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, reservado, não-reservado, ignorado, etc.) em texto cinza à direita dos arquivos, já 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 seletores de versã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 ClearCase está selecionado abaixo de Sistemas de Controle de versão no painel esquerdo. (Consulte a <<ccOptions,captura de tela>> acima para referência.)
3. 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  ``{version}``  e clique em OK. A variável version é adicionada ao campo de texto Formato do label de status.
4. Para reformatar os labels de status de forma que somente o seletor de status e de versã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}; {version}]
----
Clique em OK. Os labels de status agora listam o seletor de status e versão do arquivo (onde aplicável):

image::images/file-labels.jpg[title="os labels de arquivo são exibidos próximo aos nomes de arquivo"]

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 ClearCase 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. Ele é aberto por default no painel inferior do IDE, listando arquivos novos, com check-out ou que foram 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 ClearCase > Mostrar Alterações no 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/versioning-window-small.jpg[role="left", link="images/versioning-window.jpg"]

--

Por default, a janela de Controle de Versão exibe uma lista de todos os arquivos do pacote ou pasta selecionado que exibem um status relevante (ou seja, novo, reservado, não reservado, etc.). Você pode clicar nos títulos das colunas acima dos arquivos listados para classificá-los por nome, status, localização ou regra.

A barra de ferramentas da janela de Controle de Versão também inclui botões que permitem chamar as tarefas mais comuns do ClearCase em todos os arquivos exibidos na lista. A tabela a seguir lista os comandos do ClearCase 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 fornecendo uma comparação lado a lado de suas cópias locais e as versões mantidas no repositório. 

|image:images/update.png[] |*Atualizar Todos* |Atualiza todos os arquivos selecionados. (Aplica-se somente à views de snapshot.) 

|image:images/commit.png[] |*Fazer Check-in de todos* |Permite que você faça check-in das alterações locais. 
|===

Você pode acessar outros comandos do ClearCase 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/versioning-right-click.jpg[title="Clicar com o botão direito no menu exibe um arquivo selecionado na janela Controle de Versão"]


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

image::images/annotations-small.jpg[role="left", link="images/annotations.jpg"]

--
 

|* *Excluir do Check-in*: 

Permite que você marque o arquivo para ser excluído ao realizar um check-in.
 |image:images/exclude-from-checkin.jpg[title="Arquivos são marcados como excluídos na caixa de diálogo de Fazer Check-in"] 
|===


=== Comparando Versões de Arquivo

Comparar versões de arquivo é 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 (ClearCase > 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ê executa a diferenciação, um Visualizador de Diferenciação se abre para o(s) arquivo(s) selecionado(s) na janela principal do IDE. O Visualizador de Diferenciação exibe duas cópias nos painéis lado a lado:

[.feature]
--

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

--

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 à versão mais atual. O bloco vermelho indica que o conteúdo da versão anterior foi removido da última. 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 arquivos submetidos a check-out>>
* <<navigateDifferences,Navegar entre as Diferenças>>


==== Fazer Alterações em arquivo submetido a check-out

Se você estiver diferenciando arquivos submetidos a check-out, você poderá 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 das versões anteriores na versão submetida a check-out 

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

|*Remover* (image:images/remove.png[]): |Remove o texto realçado da versão atual com check-out para que ela espelhe a versã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 
|===


== Fazendo Check-in de Códigos-fonte

Depois de fazer alterações nos códigos-fonte, você faz check-in delas no repositório. O IDE permite que você chame o comando Check-in das seguintes formas:

* Nas janelas Projetos, Arquivos ou Favoritos, clique com o botão direito do mouse nos itens novos ou que foram submetidos a check-out e escolha ClearCase > Fazer Check-in.
* Na janela Visualizador de Controle de Versão ou de Diferenciação, clique no botão Fazer Check-in de Todos (image:images/commit.png[]) localizado na barra de ferramentas.

A caixa de diálogo Fazer Check-in é aberta, listando:

* todos os arquivos submetidos a check-out
* todos os novos arquivos, que serão adicionados automaticamente ao controle de versão primeiro (ou seja, arquivos de view privada que ainda não foram passados pelo controle de versão e não são ignorados pelo IDE).

[.feature]
--

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

--

Na caixa de diálogo Fazer Check-in é possível especificar se devem ser excluídos arquivos individuais do check-in. Para fazer isso, clique na coluna Ação de Check-in de um item selecionado e escolha Excluir do check-in na lista drop-down.

Para realizar o check-in:

1. Digite uma mensagem de check-in na área de texto Mensagem de Check-in. 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 Fazer Check-in. O IDE executa o check-in. A barra de status do IDE, localizada na parte inferior direita da interface, é exibida à medida que a ação Fazer Check-in acontece. Com um check-in bem-sucedido, os emblemas de controle de versão desaparecem das janelas Projetos, Arquivos e Favoritos, e a codificação de cor dos arquivos que estão check-in fica em preto.
link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20ClearCase%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]



== Consulte Também

Isso conclui o Tour Guiado do ClearCase 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 ClearCase do IDE.

Para documentos relacionados, consulte os seguintes recursos:

* link:http://wiki.netbeans.org/NetBeansUserFAQ#ClearCase[+FAQ do Suporte a ClearCase do NetBeans IDE+]
* link:git.html[+Usando Suporte Git no NetBeans IDE+]
* link:mercurial.html[+Usando Suporte ao Mercurial no NetBeans IDE+]
* link:subversion.html[+Usando Suporte ao Subversion no NetBeans IDE+]
* link:cvs.html[+Usando Suporte ao CVS no NetBeans IDE+]
* link:mercurial-queues.html[+Usando Suporte para 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_
