Estou procurando por algo que funcione como o UnionFS no Windows 7. Meu caso de usuário: ter um diretório de trabalho de código limpo em um diretório somente leitura e compilá-lo em um sistema de arquivos union que armazenaria binários compilados logicamente no mesmo lugar, mas fisicamente em diretório diferente.
As bibliotecas não funcionam dessa maneira, mesmo que tenham sido aceitas como resposta no UnionFS da mesma forma no Windows, praticamente mesclam pastas - elas mostram apenas diretórios de nível superior em um só lugar.
O código em si é enorme (2 GB de dados) e eu gostaria de evitar copiá-lo para todas as compilações no meu servidor de compilação.
windows-7
filesystems
liori
fonte
fonte
Respostas:
Você poderia usar links simbólicos para fingir isso? http://en.wikipedia.org/wiki/NTFS_symbolic_link Não está respondendo à pergunta exata, mas acho que resolverá o caso de uso que você forneceu.
fonte
cd SOURCE; find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +; find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;
ou equivalente ao Windows).Você pode fazer uma união de pobres com links simbólicos: reproduza a estrutura de diretórios da fonte, mas faça links (simbólicos ou físicos) para os arquivos. Isso deve ser adequado ao seu objetivo, desde que o sistema de compilação não tente modificar os arquivos de origem.
Com o GNU cp, é tão fácil quanto
cp -al
oucp -as
. Mas não sei se existe uma porta de ferramentas GNU que entenda os links do Windows.Se você precisar chamar o comando mklink, isso pode ser feito com as ferramentas POSIX (aviso digitado diretamente no navegador):
Suponho que exista uma maneira nativa do Windows envolvendo o Powershell, mas não tenho ideia de como ele é. Talvez valha a pena investigar se sua árvore de diretórios é grande e se seus discos são rápidos, porque a bifurcação no Windows tende a ser lenta e os comandos acima precisam ser muito complicados.
fonte
for /R %BUILDDIR% %F in (*.*) do @junction X:%pnxF %F
, usando ajunction
ferramenta sysinternals.Sim, existe nas versões recentes do Windows , mas não sei como usá-lo.
fonte
Encontrei isso, mas realmente não sei como funciona:
fonte