Mit Git Bash kann keine Synchronisierung auf ein anderes Volume durchgeführt werden

10

Ich verwende Git Bash auf einem Windows-Computer: Version 2.7.2 (32-Bit-Version) von Git für Windows, erstellt am 23.02.2016, verfügbar unter https://git-scm.com .

Innerhalb von Bash kann ich ein Verzeichnis von /c/nach /e/(einen USB-Stick) kopieren . Ich erhalte jedoch Fehler, wenn ich versuche, zu verwenden rsync. Ich habe versucht cygdrive, die Verzeichnisnamen zu ergänzen, aber das hat nicht funktioniert. Ich habe auch versucht hinzuzufügen -e(nur um zu sehen, was passieren würde), was auch nicht funktioniert hat.

Ich erwähne, dass der Kopierbefehl funktioniert, weil es seltsam ist, dass ich das Laufwerk in eine Richtung sehen kann, aber nicht in eine andere Richtung.

Erfolgreiche Kopie: Geben Sie hier die Bildbeschreibung ein

Erfolglos rsync: Geben Sie hier die Bildbeschreibung ein

Vielen Dank und bitte kommentieren Sie, wenn Sie abstimmen, um mir zu helfen, die Frage besser zu machen.

Zusätzlicher Hintergrund und Forschung:

Fehler 255

Irgendwann glaube ich, dass ich genau den gleichen Fehler (255) bekommen habe, der mich zu diesem Beitrag geführt hat. Die Lösung hier bezieht sich jedoch cygwinnicht auf Git Bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagrant und rsync

Es gibt eine Menge guter Diskussionen über die Mechanik von rsync, insbesondere von mitchellh. Ich war mir jedoch nicht sicher, welche Komponenten, auf die sie verweisen, in meiner Installation vorhanden sind oder wie ich sie erkennen soll. Ich habe auf dieser Website eine separate Frage zu diesem Thema gestellt. Quelle: https://github.com/mitchellh/vagrant/issues/3236

Auflisten von Laufwerken in emulierten Linux-Umgebungen

Quelle: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Wenn ich dies tue, cat /etc/fstaberhalte ich Folgendes:

$ 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

Was meiner Meinung nach darauf hinweist, dass es ein Volume mit dem Namen gibt cygdrive, aber ich habe keinen Befehl gefunden, der erfolgreich auf diesen Namen zugreift.

Mögliche doppelte Frage:

@kenorb schlug vor, dass diese Frage ein Duplikat von Warum cwRsync unter Windows nicht funktioniert? .

Ich kann mich nicht erinnern, diesen Beitrag gestern gesehen zu haben, aber dieser sieht meinem am ähnlichsten. Ich denke immer noch, dass es anders ist, weil diese Frage im Jahr 2011 veröffentlicht wurde und diese Version rsyncvon 2016 stammt. Die vorherige Version, die ich gestern Morgen verwendet habe (die im Jahr 2015 installiert wurde), hat einen anderen Fehler verursacht und mich aufgefordert, meine Version von git zu aktualisieren / git bash.

Wenn es sich bei dieser Frage um ein Duplikat handelt, gibt es (derzeit) keine akzeptierte Antwort, und die oberste Antwort funktioniert bei mir nicht.

Im Allgemeinen hat mich all diese Forschung zu der Annahme geführt, dass es mehrere Probleme mit rsyncWindows-Ports gab und dass dies nur das aktuellste ist.

Ich denke, das Problem kann gelöst werden, indem ich das Laufwerk anders spezifiziere ... aber ich weiß nicht, was funktionieren würde. Ich habe versucht, den Laufwerksnamen, den Laufwerksbuchstaben und die Windows-Doppelpunkt-Backslash-Syntax zu verwenden. Offensichtlich hat es nicht funktioniert und am Ende rate ich nur.

rsync in msysgit

Am 18.10.11 sagte Werner BEROUX

Ist es möglich zu entkommen, um "/ c / Folder" als Argument an eine Anwendung zu übergeben? Git wandelt das standardmäßig in "C: \ Folder" um und es scheint, dass ich es nicht vermeiden kann, selbst wenn ich gängige Escape-Methoden verwende. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Ich bin mir nicht sicher, ob dies damit zusammenhängt. Ich denke, sie versuchen, rsync innerhalb eines git-Befehls zu verwenden, aber es ist interessant, dass sie Probleme mit den Pfadnamen haben. Ich frage mich, ob diese Fehler, die durch die Übersetzung des Pfads verursacht wurden, ein :?

Fehlercodes 12 und 255 (Bearbeiten am 21. März 2016)

Da jemand anderes (@davidpostill) sagt, dass dies ebenfalls ein Duplikat ist, dachte ich, ich würde die Antworten / Kommentare in der anderen Frage erneut versuchen .

Die am besten bewerteten Antworten und Kommentare der anderen Frage haben bei mir immer noch nicht funktioniert, was mich zu dem Schluss zurückführt, dass dies ein anderes Problem ist.

Hier sind die Ergebnisse des Versuchs von rsync vom USB-Stick, wie im letzten Kommentar der am besten bewerteten Antwort auf die andere Frage vorgeschlagen :

Zuerst habe ich versucht /c/, Laufwerke in anderen Befehlen in Bash für Windows zu verwenden.

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]

Ich habe den gleichen Fehler mit dem /cygwinPräfix erhalten:

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]

Es wurden verschiedene Arten des Hinzufügens versucht c:, aber wie bereits in der Vergangenheit erwähnt, lässt der Doppelpunkt vermuten, rsyncdass es sich um eine Remoteverbindung handelt, und dies schlägt mit Fehler 255 fehl.

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]
Genorama
quelle
Können Sie Ihre Fehler bitte in Text umwandeln? Siehe: Entmutigen Sie Screenshots von Code und / oder Fehlern
Kenorb
Hast du es versucht rsync -trd c:/examp/ e:/?
Ams
@ams ja, gleicher Fehler
geneorama
Der Wiederaufbau mysys2könnte helfen, aber ich zögere, diese Schritte zu befolgen. Ich kann ohne leben rsync, aber ich kann es mir nicht leisten, git github.com/git-for-windows/git/wiki/Building-msys2-runtime
geneorama
Haben Sie WSL versucht . Es ermöglicht USB-Sticks und Rsyncing.
Peter Berbec

Antworten:

0

Zwei Jahre später habe ich eine Antwort gefunden, die auf meinem neuesten Computer (Windows 10, 64 Bit) zu funktionieren scheint.

  1. Installieren Sie git bash für Windows
  2. Download rsyncvon futureware.at *
  3. Auszug nach irgendwo, ich wähle C:\rsync-3.1.2-2-x86_64.pkg
  4. Fügen Sie den Ordner bin oben in Ihrem Systempfad hinzu

* Ich weiß nicht, wer hinter futureware.at steht. Ich würde es vorziehen, auf eine primärere Quelle zu verlinken.

Ich habe die Antwort hier auch als Antwort auf eine allgemeinere Frage veröffentlicht, da ich mich nicht erinnern konnte, wo sich diese Frage zu der Zeit befand.

Genorama
quelle
0

Laden Sie unter http://repo.msys2.org/msys/x86_64/ die folgenden Pakete herunter:

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

Packen Sie alle mit tar -xf, und dann von usr/binKopie rsync.exe, msys-2.0.dll, msys-z.dllund msys-iconv-2.dllin das Verzeichnis aus , wo Sie wollen laufen rsync. Test mit rsync.exe -h.

Bleater
quelle