Nie można zsynchronizować rsync z innym woluminem za pomocą Git Bash

10

Używam git bash na komputerze z systemem Windows: wersja 2.7.2 (wersja 32-bitowa) Git dla Windows zbudowana na 02.02.2016 r. Dostępna z https://git-scm.com .

W ciągu bash mogę skopiować katalog z /c/do /e/(pamięci USB). Jednak podczas próby użycia pojawiają się błędy rsync. Próbowałem dodać cygdrivedo nazw katalogów, ale to nie zadziałało. Próbowałem także dodać -e(tylko, aby zobaczyć, co się stanie), które też nie działały.

Wspominam, że polecenie kopiowania działa, ponieważ to dziwne, że widzę dysk w jedną stronę, ale nie widzę go w inny sposób.

Udana kopia: wprowadź opis zdjęcia tutaj

Nieudane rsync: wprowadź opis zdjęcia tutaj

Dziękuję i proszę o komentarz, jeśli zagłosujesz, aby pomóc mi ulepszyć pytanie.

Dodatkowe informacje i badania:

Błąd 255

W pewnym momencie uważam, że otrzymałem dokładnie ten sam błąd (255), który doprowadził mnie do tego postu. Jednak rozwiązanie tutaj jest związane cygwin, a nie z git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexlained-error-code-255

Vagrant i rsync

Jest wiele niezadowolenia z mechaniki rsync, zwłaszcza z mitchellh. Nie byłem jednak pewien, które komponenty, do których się odnoszą, są obecne w mojej instalacji, ani nie wiem, jak to powiedzieć. Na tej stronie zadałem osobne pytanie dotyczące tego problemu. źródło: https://github.com/mitchellh/vagrant/issues/3236

Wyświetlanie dysków w emulowanych środowiskach Linux

źródło: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Kiedy to zrobię cat /etc/fstab, otrzymuję:

$ 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

Co, jak sądzę, wskazuje, że istnieje wolumin o nazwie cygdrive, jednak nie znalazłem żadnego polecenia, które z powodzeniem uzyskałoby dostęp do tej nazwy.

Możliwe duplikat pytania:

@kenorb zasugerował, że to pytanie jest duplikatem Dlaczego cwRsync nie działa w systemie Windows? .

Nie przypominam sobie, aby widziałem ten post wczoraj, ale ten wygląda najbardziej jak mój. Nadal uważam, że jest inaczej, ponieważ to pytanie zostało opublikowane w 2011 r., A ta wersja rsyncpochodzi z 2016 r. Poprzednia wersja, której używałem wczoraj rano (która została zainstalowana w 2015 r.), Dała inny błąd i poprosiła mnie o aktualizację mojej wersji git / git bash.

Jeśli to pytanie jest duplikatem, na razie nie ma żadnej akceptowanej odpowiedzi, a najwyższa odpowiedź nie działa dla mnie.

Ogólnie rzecz biorąc, wszystkie te badania doprowadziły mnie do przekonania, że ​​było kilka problemów z rsyncportami Windows i że jest to tylko najbardziej aktualny.

Myślę, że problem można rozwiązać, określając dysk inaczej ... ale nie wiem, co by zadziałało. Próbowałem użyć nazwy dysku, litery dysku, składni odwrotnego dwukropka systemu Windows. Oczywiście to nie zadziałało, a na koniec zgaduję.

rsync w msysgit

W dniu 18.10.11 Werner BEROUX powiedział

Czy można uciec, aby przekazać „/ c / Folder” jako argument do aplikacji? Git domyślnie przekształca to w „C: \ Folder” i wygląda na to, że nie mogę tego uniknąć, nawet stosując typowe metody zmiany znaczenia. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Nie jestem pewien, czy jest to powiązane, myślę, że próbują użyć rsync wewnątrz polecenia git, ale interesujące jest to, że mają problemy z nazwami ścieżek. Zastanawiam się, czy te błędy spowodowane tłumaczeniem ścieżki zawierają :?

Kody błędów 12 i 255 (edycja 21 marca 2016 r.)

Ponieważ ktoś inny (@davidpostill) twierdzi, że to również jest duplikat, pomyślałem, że spróbuję ponownie odpowiedzieć / skomentować inne pytanie .

Najczęściej głosowane odpowiedzi i komentarze z drugiego pytania nadal nie działały dla mnie, co prowadzi mnie do wniosku, że jest to inny problem.

Oto wyniki wypróbowania rsync z pendrive'a, jak zasugerowano w ostatnim komentarzu do najczęściej głosowanej odpowiedzi na inne pytanie :

Najpierw próbowałem użyć /c/, który jest sposobem odwoływania się do dysków w innych poleceniach w Bash dla 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]

Mam ten sam błąd z /cygwinprefiksem:

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]

Próbowałem różnych rodzajów dodawania c:, ale jak już wspomniano w przeszłości, dwukropek sprawia rsync, że myśli się, że jest to połączenie zdalne, a więc kończy się niepowodzeniem z błędem 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]
genorama
źródło
Czy możesz zapisać swoje błędy w tekście? Zobacz: Zniechęcaj do zrzutów ekranu kodu i / lub błędów
kenorb,
Próbowałeś rsync -trd c:/examp/ e:/?
popr.
@ams tak, ten sam błąd
genorama
Odbudowa mysys2może pomóc, ale waham się wykonać te kroki. Mogę żyć bez rsync, ale nie stać mnie na złamanie git github.com/git-for-windows/git/wiki/Building-msys2-runtime
genorama
Czy próbowałeś WSL . Pozwala na montowanie na pendrivie i rsyncing.
Peter Berbec,

Odpowiedzi:

0

Dwa lata później znalazłem odpowiedź, która wydaje się działać na moim najnowszym komputerze (Windows 10, wersja 64-bitowa).

  1. Zainstaluj git bash dla Windows
  2. Pobierz rsyncz futureware.at *
  3. Wyciągam gdziekolwiek, wybieram C:\rsync-3.1.2-2-x86_64.pkg
  4. Dodaj folder bin na górze ścieżki systemowej

* Nie wiem, kto stoi za futureware.at, wolę link do bardziej podstawowego źródła.

Tutaj także zamieściłem odpowiedź w odpowiedzi na bardziej ogólne pytanie, ponieważ nie pamiętałem, gdzie w tym czasie było to pytanie.

genorama
źródło
0

Z http://repo.msys2.org/msys/x86_64/ pobierz następujące pakiety:

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

Rozpakuj każda tar -xf, a następnie z usr/binkopią rsync.exe, msys-2.0.dll, msys-z.dlla msys-iconv-2.dlldo katalogu, z którego chcesz uruchomić rsync. Przetestuj za pomocą rsync.exe -h.

bleater
źródło