Checkout do CVS de um repositório parcial

1

Eu tenho um repositório CVS parcial - uma cópia de uma subpasta dentro do repositório principal, e eu gostaria de fazer um checkout de head. Eu tentei fazer isso diretamente:

$ cvs -d /path/B2MEj/ co B2MEj
cvs [checkout aborted]: /path/B2MEj/CVSROOT: No such file or directory

Minha cópia não contém CVSROOT (já que era um subdiretório da raiz do repositório original, eu suponho).

Como posso obter uma imagem limpa da versão mais recente dos arquivos nesta pasta? Eu não me importo em manter qualquer histórico de versões, pois isso é uma extração unidirecional para mim.

    
por G__ 08.02.2011 / 21:17

2 respostas

1

Parece que todas as informações necessárias estão contidas nos diretórios, v files e Attic no meu repositório parcial. A chave é simplesmente criar uma raiz do CVS vazia com cvs -d /workingdir init e depois copiar a pasta do repositório original (parcial) para workingdir . Nesse ponto, um simples cvs -d /workingdir co B2MEj (ou qualquer que seja o nome do seu projeto) fará o checkout completo.

    
por 09.02.2011 / 19:04
1

Sem o CVSROOT, o cvs não sabe absolutamente nada sobre o que está na sua pasta, já que todas as informações sobre o arquivo e a versão estavam no diretório CVSROOT.

O que você terá que fazer é usar o RCS para extrair a versão mais recente de cada arquivo ,v , individualmente, o que deve funcionar com algo como o seguinte no bash:

for fn in *,v; do
  co ${fn%,v}
done

Como o comando co do RCS espera o nome do arquivo original, temos que encontrar todos os arquivos ,v e executar co com o nome do arquivo menos o, v.

Uma vez feito isso, você terá que separar o código dos arquivos, v.

    
por 08.02.2011 / 23:05

Tags