Como saber qual o CVS tags tampa quais arquivos e caminhos?
-
09-06-2019 - |
Pergunta
Há um legado repositório CVS, que contém um grande número de diretórios, subdiretórios e caminhos.Há também um grande número de agências e marcas que não necessarilly cobrir todos os caminhos e arquivos - normalmente um subconjunto.Como posso descobrir qual branch / tag cobre, quais arquivos e caminhos?
De log do CVS já fornece a lista de tags por arquivo.A tarefa requer-me a transpor isso em arquivos por marca.Eu não poderia encontrar tal funcionalidade no atual WinCVS (o cvsnt) implementação.Dado amplo vazio ciclos sou capaz de escrever um script em Perl que iria fazer o que, o algoritmo não é complexo, mas ele precisa ser feito.
Eu imagino que há algumas pessoas que precisavam de tais informações e resolvido esse problema.Assim, eu acho que deve ser prontamente disponíveis (open source / free) ferramenta para isso.
Solução
Para determinar quais marcas se aplicam a um determinado uso do arquivo:
cvs log <filename>
Esta será a saída de todas as versões do arquivo e quais tags foram aplicadas para a versão.
Para determinar quais arquivos são incluídos em uma única marca, a única coisa que posso pensar é usando a tag e ver quais arquivos voltar.O comando para isso é qualquer um:
cvs update -r <tagname>
cvs co <modulename> -r <tagname>
cvs export <modulename> -r <tagname>
Outras dicas
A lista de tags de um ficheiro pode-se também fazer:
cvs status -v <file>
o método citado acima não funcionou para mim
cvs -p rdiff -s -D 2000-01-01 -r yourTagName
no entanto depois de um monte de gracinha eu já perceberam que
cvs -p rdiff -s -D 2000-01-01 -r yourTagName ModuleName
funciona
Você não precisa fazer um verdadeiro check-out.Você pode usar a opção-n para apenas simular este:
cvs -n co -rTagName ModuleName
Isto irá dar-lhe os nomes de todos os arquivos marcados TagName no módulo Módulo.
O comando a seguir fornece uma lista de arquivos que estão na tag "yourTagName".Os arquivos são marcados como nova, revisão de informações em "yourTagName".
Este comando faz uma comparação entre 2000-01-01 e sua marca, sinta-se livre para usar outra data que for anterior.
cvs -q rdiff -s -D 2000-01-01 -r yourTagName
Eu não sei de qualquer ferramenta que o pode ajudar, mas se você estiver escrevendo seu próprio país, eu posso salvá-lo de um headace:Diretórios CVS não pode ser tagget.Apenas os arquivos dentro deles tem tags (e que é o que determina o que é check-out quando você check-out de um diretório em uma tag específica).