Usando o rsync do msysgit para arquivos binários

15

Eu tenho três caixas de janelas que estão conectadas a uma caixa linux na minha rede de várias maneiras (uma é local para a rede, uma é um laptop e pode ou não ser local, e a outra é minha área de trabalho). Atualmente estou fazendo uso do git para sincronizar a maioria das minhas coisas entre as caixas (usando a caixa do Linux como servidor) e funciona como um campeão.

Agora, no entanto, eu também gostaria de adicionar minha coleção de MP3 (12 GB) para ser eficientemente sincronizada entre as caixas. Eu inicialmente pensei que poderia usar o git para isso, mas parece que o rsync seria uma escolha melhor, já que eu realmente não preciso de todas as coisas históricas. Como todos os meus scripts de gerenciamento existentes são executados no git bash (ao invés do cygwin), eu gostaria de poder usá-lo no git bash (o MINGW32 é o que diz na barra de título da janela). Posso fazer o download no Cygwin e copiá-lo ou há uma maneira melhor de abordá-lo? A caixa do Linux está executando a última versão do Ubuntu Server edition - eu preciso fazer alguma coisa para permitir que o rsync funcione corretamente?

Eu percebo que provavelmente estou fazendo isso de uma maneira um pouco mais difícil do que é necessário, mas também estou meio que usando isso como um exercício para melhorar minhas habilidades de linha de comando. Alguma sugestão?

Eu posso usar o rsync do meu cygwin shell, mas não do msysgit. Eu tentei copiar rsync.exe da pasta bin do cygwin para a pasta bin msysgit, mas ainda não está encontrando. Existe algum outro passo que eu preciso fazer para instalá-lo lá? É estranho que eu esteja recebendo um erro que não pode encontrar o arquivo, em vez de me dar um erro que uma das dependências do arquivo está faltando.

    
por Will Gant 12.09.2011 / 04:22

5 respostas

11

A partir de agora (7/9/2017) é extremamente fácil adicionar manualmente o suporte a rsync ao ambiente do Git para Windows sem ter que recorrer à execução do Git para Windows SDK.

Eu tropecei em este post e não pensei poderia ser assim tão fácil, dadas todas as alternativas, mas é mesmo assim. Tudo o que você precisa fazer é pegar o pacote rsync do repositório do Pacote MSYS2 e extrair o arquivo rsync.exe para C:\Program Files\Git\usr\bin . Um e feito. Funciona.

Se você quiser usar também a autenticação Pageant com rsync sobre ssh, o binário ssh-pageant já está instalado no Git for Windows e tudo o que você precisa fazer é adicionar um pouco ao seu ~/.bashrc ou ~/.bash_profile file (consulte seção de uso do ssh-pageant e wiki do Git para Windows . Eu o modifiquei especificamente para uso com o ambiente do Git para Windows e o aprimorei com alguma detecção para um arquivo de soquete ausente:

# ssh-pageant allows use of the PuTTY authentication agent (Pageant)
SSH_PAGEANT="$(command -v ssh-pageant)"
if [ -S "$SSH_AUTH_SOCK" ]; then
  PAGEANT_SOCK=$SSH_AUTH_SOCK
else
  PAGEANT_SOCK=${TEMP:-/tmp}/.ssh-pageant-$USERNAME
fi
if [ -x "$SSH_PAGEANT" ]; then
  eval $("$SSH_PAGEANT" -qra "$PAGEANT_SOCK")
fi
unset SSH_PAGEANT
unset PAGEANT_SOCK

Eu não posso falar sobre como outros utilitários podem ou não funcionar manualmente instalando-os dessa maneira, mas o rsync parece funcionar muito bem. Espero que o repo permaneça e continue a ser atualizado - acho que sim porque está hospedado no site oficial do MSYS2.

    
por 07.09.2017 / 19:58
6

Eu sei que a pergunta não é "Usando o rsync para MSYS", mas acho que mencionar isso é relevante:

"MinGW Shell" (anteriormente conhecido como "MSYS (Basic System)") de fato possui rsync. Eu estou usando esse shell / sistema sempre que possível, já que é muito menor que o Cygwin. (Eu sou provavelmente o único que se preocupa com o tamanho dos arquivos nos dias de hoje.)

"Git for Windows" / "Git Bash" pode facilmente adicionar o rsync, já que ele é baseado no MinGW / MSYS e foi mencionado na lista de discussão anteriormente.

PS! Se o seu MinGW Shell não tiver rsync, apenas execute "mingw-get install msys-rsync" para adicioná-lo.

Atualizado em 25 de março de 2016:

O Git for Windows agora usa o MSYS2. E MSYS2 usa "pacman", não "mingw-get", para instalar pacotes. Infelizmente, "Git for Windows" não inclui pacman ... Existem duas opções:

  1. Instale o Git para Windows SDK (que inclui o pacman).
  2. Instale o Git dentro do MSYS2.

A última opção é a minha favorita, mas não é simplificada ainda então a primeira opção é provavelmente mais fácil. Espero que seja corrigido .

PS! Eu não joguei muito com MSYS2 / pacman, mas parece muito promissor.

    
por 02.12.2012 / 13:13
2

Eu assumo por git bash você realmente quer dizer msysgit , também conhecido como "git for windows." A opção do menu Iniciar é git bash , o que explica o nome que você usou ..

Primeiro, você está correto em dispensar o git como uma opção aqui. Uma das coisas que o não faz é manusear arquivos binários - e você acabaria com um repositório enorme e inchado. Além disso, como você não estará lidando com alterações, usar a sobrecarga do git me parece um exagero.

Em segundo lugar, parece que a pergunta que você está realmente fazendo é: "Posso usar o rsync do msysgit / Windows?" A resposta curta é, não fora da caixa. msysgit é realmente apenas a linha de comando do Windows em termos de forma e função. Dito isto, você tem duas opções: baixar uma ferramenta de terceiros para habilitar o rsync em sua máquina Windows ( Stack Overflow: Rsync para Windows , ou apenas use o cygwin. Realmente, eles têm o mesmo resultado - então cabe a você decidir quais funcionam melhor.

    
por 12.09.2011 / 05:59
0

O rsync é ótimo para sincronização unidirecional. Você pode executar o rsync no cygwin ou no Windows também existe Deltacopy

Se você deseja ter uma sincronização bidirecional, dê uma olhada em uníssono

    
por 12.09.2011 / 08:40
0

Por que vale a pena, eu estava tendo problemas semelhantes ao cwRsync para trabalhar em msysgit quando colocado no caminho da lixeira, mas depois Experimentando muitas coisas diferentes, acabou descobrindo que simplesmente atualizar para a versão mais recente (2.10.2) do Git para Windows corrigiu o problema.

    
por 24.11.2016 / 00:36