Impossible de rsync vers un autre volume avec Git Bash

10

J'utilise git bash sur une machine Windows: version 2.7.2 (version 32 bits) de Git pour Windows construit le 2016-02-23 disponible sur https://git-scm.com .

Dans bash, je peux copier un répertoire de /c/vers /e/(une clé USB). Cependant, j'obtiens des erreurs lorsque j'essaie d'utiliser rsync. J'ai essayé d'ajouter cygdriveaux noms de répertoire, mais cela n'a pas fonctionné. J'ai également essayé d'ajouter -e(juste pour voir ce qui se passerait) qui ne fonctionnait pas non plus.

Je mentionne que la commande de copie fonctionne parce qu'il est étrange que je puisse voir le lecteur dans un sens, mais pas dans un autre sens.

Copie réussie: entrez la description de l'image ici

Échec rsync: entrez la description de l'image ici

Merci, et veuillez commenter si vous votez pour m'aider à améliorer la question.

Contexte et recherche supplémentaires:

Erreur 255

À un moment donné, je crois que j'obtenais exactement la même erreur (255), ce qui m'a conduit à ce poste. Cependant, la solution ici est liée à cygwin, et non à git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagrant et rsync

Il y a beaucoup de bonnes discussions sur la mécanique de rsync, en particulier de mitchellh. Cependant, je ne savais pas quels composants ils référencent sont présents dans mon installation, ni comment dire. J'ai posé une question distincte sur ce site à propos de ce problème. source: https://github.com/mitchellh/vagrant/issues/3236

Liste des lecteurs dans des environnements Linux émulés

source: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Lorsque je le fais, cat /etc/fstabj'obtiens ce qui suit:

$ 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

Ce qui, je pense, indique qu'il y a un volume nommé cygdrive, mais je n'ai trouvé aucune commande qui accède avec succès à ce nom.

Question en double possible:

@kenorb a suggéré que cette question est un double de Pourquoi cwRsync ne fonctionne pas sous Windows? .

Je ne me souviens pas avoir vu ce post hier, mais celui-ci ressemble le plus au mien. Je pense toujours que c'est différent parce que cette question a été publiée en 2011, et cette version de rsyncest de 2016. La version précédente que j'utilisais hier matin (qui a été installée en 2015) a donné une erreur différente et m'a incité à mettre à niveau ma version de git / git bash.

Si cette question est en double, il n'y a (pour l'instant) aucune réponse acceptée, et la première réponse ne fonctionne pas pour moi.

En général, toutes ces recherches m'ont amené à croire qu'il y avait eu plusieurs problèmes avec les rsyncports Windows, et que ce n'était que le plus récent.

Je pense que le problème peut être résolu en spécifiant le lecteur différemment ... mais je ne sais pas ce qui fonctionnerait. J'ai essayé d'utiliser le nom du lecteur, la lettre du lecteur, la syntaxe de barre oblique inversée Windows. De toute évidence, cela n'a pas fonctionné, et à la fin, je ne fais que deviner.

rsync dans msysgit

Le 18/10/11, Werner BEROUX a déclaré

Est-il possible de s'échapper pour passer "/ c / Dossier" en argument à une application? Git transforme cela en "C: \ Folder" par défaut et il semble que je ne puisse pas l'éviter même en utilisant des méthodes d'échappement courantes. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Je ne sais pas si cela est lié, je pense qu'ils essaient d'utiliser rsync à l'intérieur d'une commande git, mais il est intéressant qu'ils rencontrent des problèmes avec les noms de chemin. Je me demande si ces erreurs causées par le chemin en cours de traduction incluent un :?

Codes d'erreur 12 et 255 (Modifier le 21 mars 2016)

Étant donné que quelqu'un d'autre (@davidpostill) dit également qu'il s'agit d'un doublon, j'ai pensé que j'essaierais à nouveau les réponses / commentaires dans l' autre question .

Les réponses et les commentaires les plus votés de l'autre question n'ont toujours pas fonctionné pour moi, ce qui me ramène à la conclusion que c'est un problème différent.

Voici les résultats de l'essai de rsync à partir de la clé USB, comme suggéré dans le commentaire final de la réponse la plus votée sur l' autre question :

J'ai d'abord essayé d'utiliser /c/, qui est le moyen de référencer les lecteurs dans d'autres commandes de Bash pour 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]

J'ai la même erreur avec le /cygwinpréfixe:

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]

J'ai essayé différents types d'ajout c:, mais comme cela a été souligné dans le passé, les deux-points font rsyncpenser qu'il s'agit d'une connexion à distance, ce qui échoue avec l'erreur 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
la source
Pouvez-vous transcrire vos erreurs en texte, s'il vous plaît? Voir: Décourager les captures d'écran de code et / ou d'erreurs
kenorb
As-tu essayé rsync -trd c:/examp/ e:/?
Ams
@ams oui, même erreur
geneorama
La reconstruction mysys2peut aider, mais j'hésite à suivre ces étapes. Je peux vivre sans rsync, mais je ne peux pas me permettre de casser git github.com/git-for-windows/git/wiki/Building-msys2-runtime
geneorama
Avez-vous essayé WSL . Il permet des montages par clé USB et une synchronisation.
Peter Berbec

Réponses:

0

Deux ans plus tard, j'ai trouvé une réponse qui semble fonctionner sur mon dernier ordinateur (Windows 10, 64 bits).

  1. Installer git bash pour Windows
  2. Télécharger rsyncdepuis futureware.at *
  3. Extraire n'importe où, je choisis C:\rsync-3.1.2-2-x86_64.pkg
  4. Ajoutez le dossier bin en haut de votre chemin système

* Je ne sais pas qui se cache derrière futureware.at, je préférerais créer un lien vers une source plus principale.

J'ai également affiché la réponse ici en réponse à une question plus générale, car je ne me souvenais pas où se trouvait cette question à l'époque.

geneorama
la source
0

Depuis http://repo.msys2.org/msys/x86_64/ téléchargez les packages suivants:

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

Déballez chacun tar -xf, puis de usr/bincopier rsync.exe, msys-2.0.dll, msys-z.dllet msys-iconv-2.dlldans le répertoire à partir duquel vous souhaitez exécuter rsync. Testez avec rsync.exe -h.

bleater
la source