Não foi possível rsync para outro volume com o Git Bash

10

Eu uso o git bash em uma máquina Windows: versão 2.7.2 (versão de 32 bits) do Git for Windows criada em 23-02-2016, disponível em https://git-scm.com .

No bash, posso copiar um diretório de /c/para /e/(um pen drive USB). No entanto, eu recebo erros quando tento usar rsync. Tentei adicionar cygdriveaos nomes de diretório, mas isso não funcionou. Também tentei adicionar -e(apenas para ver o que aconteceria) que também não funcionava.

Mencionei que o comando copy funciona porque é estranho ver a unidade de uma maneira, mas não de outra maneira.

Cópia bem sucedida: insira a descrição da imagem aqui

Sem êxito rsync: insira a descrição da imagem aqui

Obrigado e, por favor, comente se você fez um voto negativo para me ajudar a melhorar a pergunta.

Informações e pesquisas adicionais:

Erro 255

Em algum momento, acredito que estava recebendo exatamente o mesmo erro (255), o que me levou a este post. No entanto, a solução aqui está relacionada a cygwin, e não ao git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagrant e rsync

Há muita boa dissucação sobre a mecânica de rsync, especialmente de mitchellh. No entanto, eu não tinha certeza de quais componentes eles referenciam estão presentes na minha instalação ou de como saber. Fiz uma pergunta separada neste site sobre esse problema. fonte: https://github.com/mitchellh/vagrant/issues/3236

Listando unidades em ambientes Linux emulados

source: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Quando cat /etc/fstabeu obtenho o seguinte:

$ cat /etc/fstab
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table

# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
none /tmp usertemp binary,posix=0,noacl 0 0

Penso que indica que há um volume nomeado cygdrive, no entanto, não encontrei nenhum comando que acesse com êxito esse nome.

Possível pergunta duplicada:

@kenorb sugeriu que esta pergunta é uma duplicata do Por que o cwRsync não funciona no Windows? .

Não me lembro de ter visto este post ontem, mas este se parece mais com o meu. Ainda acho que é diferente porque esta pergunta foi publicada em 2011 e esta versão rsyncé de 2016. A versão anterior que eu estava usando ontem de manhã (que foi instalada em 2015) deu um erro diferente e me levou a atualizar minha versão do git / git bash.

Se essa pergunta for uma duplicata, não há (a partir de agora) nenhuma resposta aceita e a resposta principal não funcionará para mim.

Em geral, toda essa pesquisa me levou a acreditar que houve vários problemas rsyncnas portas do Windows e que esse é apenas o mais atual.

Eu acho que o problema pode ser resolvido especificando a unidade de maneira diferente ... mas não sei o que funcionaria. Eu tentei usar o nome da unidade, letra da unidade, sintaxe de barra invertida de dois pontos do Windows. Obviamente, não funcionou, e no final estou apenas supondo.

rsync no msysgit

Em 18/10/11, Werner BEROUX disse

É possível escapar para passar "/ c / Folder" como argumento para um aplicativo? O Git transforma isso em "C: \ Folder" por padrão e parece que não posso evitá-lo, mesmo usando métodos de escape comuns. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Não tenho certeza se isso está relacionado, acho que eles estão tentando usar o rsync dentro de um comando git, mas é interessante que estejam tendo problemas com os nomes dos caminhos. Gostaria de saber se esses erros causados ​​pelo caminho sendo traduzido para incluir um :?

Códigos de erro 12 e 255 (editar em 21 de março de 2016)

Como alguém (@davidpostill) está dizendo que isso também é uma cópia, pensei em tentar as respostas / comentários na outra pergunta novamente.

As respostas e comentários mais votados da outra pergunta ainda não funcionaram para mim, o que me leva de volta à conclusão de que este é um problema diferente.

Aqui estão os resultados de tentar o rsync a partir do pen drive, conforme sugerido no comentário final da resposta mais votada na outra pergunta :

Primeiro, tentei usar /c/, que é a maneira de referenciar unidades em outros comandos no Bash for Windows.

user@computer MINGW32 /e
$ rsync -trd /c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

Eu recebi o mesmo erro com o /cygwinprefixo:

user@computer MINGW32 /e
$ rsync -trd /cygwin/c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

Tentei vários tipos de adição c:, mas como foi apontado no passado, os dois pontos rsyncacham que é uma conexão remota e, portanto, isso falha com o erro 255.

user@computer MINGW32 /e
$ rsync -trd /c:/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
geneorama
fonte
Você pode transcrever seus erros em texto, por favor? Veja: Desencorajar capturas de tela de código e / ou erros
kenorb 16/16
Você tentou rsync -trd c:/examp/ e:/?
171616
@ams sim, mesmo erro
geneorama 16/03
A reconstrução mysys2pode ajudar, mas hesito em seguir estas etapas. Posso viver sem rsync, mas não posso me dar ao luxo de quebrar o git github.com/git-for-windows/git/wiki/Building-msys2-runtime
geneorama
Você já tentou o WSL . Permite montagens de pen drive e sincronização.
Peter Berbec 26/09

Respostas:

0

Dois anos depois, encontrei uma resposta que parece funcionar no meu computador mais recente (Windows 10, 64 bits).

  1. Instale o git bash para Windows
  2. Baixe a rsyncpartir de futureware.at *
  3. Extrair para qualquer lugar, eu escolho C:\rsync-3.1.2-2-x86_64.pkg
  4. Adicione a pasta bin ao topo do caminho do sistema

* Não sei quem está por trás do futureware.at, preferiria vincular a uma fonte mais primária.

Também publiquei a resposta aqui em resposta a uma pergunta mais geral, porque não conseguia me lembrar onde estava essa pergunta na época.

geneorama
fonte
0

Em http://repo.msys2.org/msys/x86_64/, baixe os seguintes pacotes:

http://repo.msys2.org/msys/x86_64/rsync-3.1.3-1-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/msys2-runtime-3.0.7-6-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/zlib-1.2.8-3-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/libiconv-1.16-1-x86_64.pkg.tar.xz

Descompactar cada um com tar -xf, em seguida, a partir de usr/bincópia rsync.exe, msys-2.0.dll, msys-z.dlle msys-iconv-2.dllpara o diretório de onde você deseja executar o rsync. Teste com rsync.exe -h.

bleater
fonte