Pergunta

Em breve, irei converter minha parte de um aplicativo de usar um repositório baseado em svn para usar git um.

Eu já usei git-svn, mas toda a equipe está sendo movida para git e me pediram para estar na vanguarda dessa mudança. Embora esteja feliz por entender como faço a maior parte da mudança, há um aspecto que ainda não resolvi.

Um diretório do meu repositório de configuração sempre foi usado para rastrear o diretório de scripts de um aplicativo externo em uma máquina Windows independente. O diretório de scripts para esse aplicativo está dentro do diretório de instalação de aplicativos, portanto, com svn, fiz uma verificação apenas desse diretório no ponto apropriado.

Eu esperava poder continuar com essa estrutura, mas minha pesquisa sugere que clones estreitos em git exigem que você mantenha a mesma estrutura relativa, o que seria difícil no meu caso.

Para ser explícito, desejo mapear o conteúdo de myrepo:config/scripts para C:\application\scripts.

Pelo que posso ver, tenho várias opções:

1. Use um repositório separado para esses arquivos de script.

Isso provavelmente seria o preferido, pois me permite clonar o repo exatamente no local certo.

Infelizmente, não existe atualmente nenhuma estrutura que permita que os dados de configuração (que são esses scripts) sejam armazenados em qualquer lugar que não seja o diretório de configuração. Como tal, isso exigiria alguma reestruturação de nossos repositórios além da conversão direta de svn para git que esperávamos.

2. Use pontos de junção.

Eu poderia colocar a cópia de trabalho git do diretório config em outro lugar no C:\ e, em seguida, usar um ponto de junção para fazer o diretório aparecer como um subdiretório do diretório do aplicativo, exatamente como Ger4ish sugere o uso de links simbólicos no unix.

Infelizmente, não tenho acesso de administrador a essa máquina, então isso não é tão simples quanto parece à primeira vista.

Outras opções?

Eu me pergunto se há opções que perdi.

Olhando para as respostas à pergunta Check-out esparso no Git 1.7.0? , posso encontrar o caminho, mas o requisito de manter a estrutura igual, combinado com a necessidade de fazer check-out em uma posição específica significa que esse método não funcionará.

Foi útil?

Solução

Você já olhou para submódulos ?Você pode fazer um repositório git separado para seus scripts de configuração e adicioná-lo como um submódulo ao seu repositório principal.Isso permitiria que você fizesse o checkout diretamente em application/scripts, mas ainda manteria o diretório de configuração no repositório principal.

Existem algumas nuances em como os submódulos se relacionam com o repositório principal, então você gostaria que qualquer pessoa que está se submetendo ao diretório de scripts entenda este fluxo de trabalho.

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