// 
//     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"]
--

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.
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"]
--

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.
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_
