Pergunta

Estou codificando uma estrutura junto com um projeto que usa essa estrutura.O projeto é um repositório Bazaar, com o framework em uma subpasta abaixo do projeto.

Quero dar ao framework um repositório próprio do Bazaar.Como eu faço isso?

Foi útil?

Solução

Você usa o comando split:

bzr split sub_folder

Isso cria uma árvore independente na subpasta, que agora você pode exportar e trabalhar separadamente.

Outras dicas

Use o plugin de importação rápida (http://bazaar-vcs.org/BzrFastImport):

1) Exporte todo o seu histórico para o stream:

bzr fast-export BRANCH > full-history.fi

2) Filtre o histórico para produzir novo fluxo:

bzr fast-import-filter -i subfolder full-history.fi > subfolder.fi

3) Recrie o novo branch apenas com subpasta:

bzr init-repo .
bzr fast-import subfolder.fi

Pelo que eu sei, não há como fazer isso facilmente com o bazar.Uma possibilidade é pegar o projeto original, ramificá-lo e depois remover tudo que não esteja relacionado ao framework.Você pode então mover os arquivos do subdiretório para o diretório principal.É uma tarefa árdua, mas é possível preservar a história.

você terminará com algo como:

branch project:
.. other files.. 
framework/a.file
framework/b.file
framework/c.file

branch framework: 
a.file
b.file
c.file

Pelo que eu sei, os ramos "aninhados" ainda não são suportados pelo Bazaar.O Git suporta "submódulos", que se comportam de maneira semelhante aos externos do Subversion.

Eu tentei fazer isso com bzr split, no entanto, isso não funciona como eu esperava.

  • A ramificação resultante ainda contém o histórico de todos os arquivos de todos os diretórios originais e um checkout completo recupera todos os arquivos.Parece que a única coisa que split faz é converter o repositório em um repositório raiz rico para que esta árvore específica possa pertencer apenas a um determinado subdiretório, mas o repositório ainda contém todos os outros diretórios e outros checkouts ainda podem recuperar a árvore inteira.

Usei o método na resposta de jamuraa acima, e isso foi muito melhor para mim, pois não precisei mexer na conversão para um novo tipo de repositório.Isso também significava que checkouts/ramificações completas desse repositório apenas recriam os arquivos que eu queria.

No entanto, ainda tinha a desvantagem de o repositório armazenar o histórico de todos os arquivos 'excluídos', o que significava que ocupava mais espaço do que o necessário (e poderia ser um problema de privacidade se você não quiser que as pessoas possam ver revisões mais antigas desses 'outros' diretórios).

Portanto, seriam apreciados mais conselhos sobre como reduzir uma ramificação do Bazaar para apenas um de seus subdiretórios e, ao mesmo tempo, remover permanentemente o histórico de todo o resto.

Faça um

bzr init .
bzr add .
bzr commit

no diretório da estrutura.

Então você pode ramificar e mesclar apenas nesse diretório.

O bazar acima irá ignorar esse diretório até que você faça uma adesão.

O Bazaar entende quando você faz coisas como

bzr branch . mycopy
bzr branch . myothercopy

Os diretórios atuais .bzr não rastrearão essas alterações de subdiretórios.

Isso evita que você tente encontrar um lugar para colocar um galho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top