Git
Português (Brasil) ▾Topics ▾Latest version ▾ git-cvsimport last updated in 2.43.1

NOME

git-cvsimport - Recupere seus dados de outro SCM que as pessoas amam odiar

RESUMO

git cvsimport [-o <ramo-para-o-HEAD>] [-h] [-v] [-d <CVSROOT>]
	      [-A <arquivos-conv-do-autor>] [-p <opções-para-o-cvsps>] [-P <arquivo>]
	      [-C <repositório-git>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]
	      [-a] [-m] [-M <expressão-regular>] [-S <expressão-regular>] [-L <limite-do-commit>]
	      [-r <remoto>] [-R] [<módulo-CVS>]

DESCRIÇÃO

WARNING: git cvsimport uses cvsps version 2, which is considered deprecated; it does not work with cvsps version 3 and later. If you are performing a one-shot import of a CVS repository consider using cvs2git or cvs-fast-export.

Importa um repositório CVS para o Git. Ele criará um novo repositório ou o importará incrementalmente para um já existente.

Splitting the CVS log into patch sets is done by cvsps. At least version 2.1 is required.

WARNING: for certain situations the import leads to incorrect results. Please see the section ISSUES for further reference.

You should never do any work of your own on the branches that are created by git cvsimport. By default initial import will create and populate a "master" branch from the CVS repository’s main branch which you’re free to work with; after that, you need to git merge incremental imports, or any CVS branches, yourself. It is advisable to specify a named remote via -r to separate and protect the incoming branches.

If you intend to set up a shared public repository that all developers can read/write, or if you want to use git-cvsserver[1], then you probably want to make a bare clone of the imported repository, and use the clone as the shared repository. See gitcvs-migration[7].

OPÇÕES

-v

Loquaz: permita que cvsimport relate o que está fazendo.

-d <CVSROOT>

A raiz do arquivo CVS. Pode ser local (um caminho simples) ou remoto; atualmente, são compatíveis apenas o :local:, :ext: e :pserver: access. Caso não seja utilizado, o comando git cvsimport tentará a ler do CVS/Root. No caso de tal arquivo não existir, verifica a existência da variável de ambiente CVSROOT.

<módulo-CVS>

The CVS module you want to import. Relative to <CVSROOT>. If not given, git cvsimport tries to read it from CVS/Repository.

-C <diretório-de-destino>

The Git repository to import to. If the directory doesn’t exist, it will be created. Default is the current directory.

-r <remoto>

The Git remote to import this CVS repository into. Moves all CVS branches into remotes/<remote>/<branch> akin to the way git clone uses origin by default.

-o <ramo-para-o-HEAD>

When no remote is specified (via -r) the HEAD branch from CVS is imported to the origin branch within the Git repository, as HEAD already has a special meaning for Git. When a remote is specified the HEAD branch is named remotes/<remote>/master mirroring git clone behaviour. Use this option if you want to import into a different branch.

Utilize -o master para continuar uma importação que foi inicialmente feita pela antiga ferramenta cvs2git.

-i

Import-only: don’t perform a checkout after importing. This option ensures the working directory and index remain untouched and will not create them if they do not exist.

-k

Kill keywords: extrairá arquivos com -kk do arquivo CVS para evitar atritos com o changesets. Altamente recomendado, a sua predefinição retorna para desativado visando preservar a compatibilidade com as árvores importadas anteriormente.

-u

Converta sublinhados nos nomes das tags e das ramificações em pontos.

-s <subst>

Substitua o caractere "/" nos nomes dos ramos com <subs>

-p <opções-para-o-cvsps>

Additional options for cvsps. The options -u and -A are implicit and should not be used here.

Caso precise usar várias opções, separe-as com uma vírgula.

-z <fuzz>

Encaminhe o registro de data e hora do fato "fuzz" ao cvsps em segundos. Caso não esteja definido, o cvsps retorna para a predefinição 300s.

-P <arquivo-cvsps-gerado>

Em vez de chamar o cvsps, leia o arquivo cvsps fornecido. Útil para a depuração ou quando o cvsps está sendo manuseado fora do cvsimport.

-m

Tente detectar as mesclagens com base na mensagem do commit. Esta opção ativará as expressões regulares que tentam capturar o nome da origem do ramo na mensagem do commit.

-M <expressão-regular>

Tenta detectar as mesclagens com base na mensagem do commit com um regex personalizado. Ele pode ser utilizado com a opção -m para ativar os regexes já predefinidos. Você deve escapar as barras inclinadas.

O regex deve capturar o nome da origem do ramo em $1.

Esta opção pode ser utilizada várias vezes para fornecer vários regexes de detecção.

-S <expressão-regular>

Ignore os caminhos que correspondam ao regex.

-a

importe todos os commits, incluindo os mais recentes. Por predefinição o cvsimport ignora os commits que têm o registro de data e hora menor que 10 minutos.

-L <limite>

Limita a quantidade de commit a serem importados. Solução alternativa para os casos em que o cvsimport vaza memória.

-A <arquivos-conv-do-autor>

Por predefinição o CVS utiliza nome de usuário em formato Unix ao escrever os registros log dos commits. O uso desta opção e de um arquivo conv do autor mapeia o nome registrado no CVS para o nome do autor, endereço de email e o fuso horário opcional:

	exon=José Antônio <ja@enois.br>
	spawn=Paulo Roberto <parob@empresa.org> America/Sao_Paulo

git cvsimport will make it appear as those authors had their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along. If a time zone is specified, GIT_AUTHOR_DATE will have the corresponding offset applied.

Por conveniência, esses dados são salvos em $GIT_DIR/cvs-authors sempre que a opção -A for utilizada e lidos deste mesmo arquivo sempre que o comando git cvsimport for executado.

Não é recomendável usar esse recurso caso você queira exportar as alterações novamente para o CVS mais tarde com o comando git cvsexportcommit.

-R

Generate a $GIT_DIR/cvs-revisions file containing a mapping from CVS revision numbers to newly-created Git commit IDs. The generated file will contain one line for each (filename, revision) pair imported; each line will look like

src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7

Os dados da revisão são anexados ao arquivo, para uso ao fazer as importações incrementais, caso já exista.

Esta opção pode ser útil caso tenha os números da revisão do CVS armazenados nas mensagens do commit, sistemas de rastreamento de erros, arquivos de email e similares.

-h

Imprima uma mensagem curta de uso e encerre.

SAÍDA

Caso -v seja utilizado, o script informa o quê está fazendo.

Caso contrário, o sucesso é indicado da maneira Unix, ou seja, simplesmente saindo com um status de saída zero.

PROBLEMAS

Problemas relacionados aos registro de data e hora:

  • Caso os registro de data e hora dos commits no repositório CVS não forem estáveis o suficiente para serem utilizados para ordenar os commits, estes poderão aparecer na ordem errada.

  • Caso algum arquivo seja "importado por cvs" mais de uma vez (por exemplo, a importação de mais de uma versão do fornecedor), o conteúdo do HEAD estará errado.

  • Caso a ordem do registro de data e hora dos diferentes arquivos cruze com a ordem da revisão dentro do commit que concida com a janela de tempo do commit, a ordem dos commits poderá estar incorreta.

Problemas relacionados com os ramos:

  • As ramificações não são importadas quando nenhum commit tenha sido for feito neles.

  • Todos os arquivos do ponto de ramificação são adicionados a um ramo, mesmo que nunca sejam adicionados ao CVS.

  • Isso aplica-se aos arquivos adicionados ao ramo de origem após a criação de uma ramificação filha tenha sido criada: no caso de nenhum commit anterior ter sido feito nesta ramificação filha, esta será erroneamente adicionada ao git.

Problemas relacionados com as tags:

  • Caso a mesma revisão tenha várias tags, elas não serão importadas.

Se você suspeitar que algum desses problemas possa se aplicar ao repositório que você deseja importar, considere usar o cvs2git:

  • cvs2git (part of cvs2svn), https://subversion.apache.org/

GIT

Parte do conjunto git[1]

scroll-to-top