Невозможно rsync на другой том с помощью Git Bash


10

Я использую git bash на компьютере с Windows: версия 2.7.2 (32-разрядная версия) Git для Windows, построенная на 2016-02-23, доступна по адресу https://git-scm.com .

В bash я могу скопировать каталог из /c/в /e/(флешка). Тем не менее, я получаю ошибки, когда я пытаюсь использовать rsync. Я попытался добавить cygdriveв каталог имена, но это не сработало. Также попытался добавить -e(просто чтобы посмотреть, что произойдет), что тоже не сработало.

Я упоминаю, что команда копирования работает, потому что странно, что я вижу диск в одном направлении, но не вижу его другим способом.

Успешная копия: введите описание изображения здесь

Не удалось rsync: введите описание изображения здесь

Спасибо, и, пожалуйста, прокомментируйте, если вы понизите голос, чтобы помочь мне сделать вопрос лучше.

Дополнительный фон и исследования:

Ошибка 255

В какой-то момент я считаю, что получаю точно такую ​​же ошибку (255), которая привела меня к этому посту. Однако решение здесь связано с cygwingit bash, а не с git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Бродяга и rsync

Есть много хороших разногласий о механике rsync, особенно из mitchellh. Однако я не был уверен, какие компоненты, на которые они ссылаются, присутствуют в моей установке, или не уверен, как сказать. Я задал отдельный вопрос на этом сайте об этой проблеме. источник: https://github.com/mitchellh/vagrant/issues/3236

Перечисление дисков в эмулируемых средах Linux

источник: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Когда cat /etc/fstabя получаю следующее:

$ 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

То, что я думаю, указывает на то, что есть названный том cygdrive, однако я не нашел ни одной команды, которая успешно обращается к этому имени.

Возможный дублирующий вопрос:

@kenorb предположил, что этот вопрос является дубликатом Почему cwRsync не работает в Windows? ,

Я не помню, чтобы видел этот пост вчера, но этот больше всего похож на мой. Я все еще думаю, что это другой вопрос, потому что этот вопрос был опубликован в 2011 году, а эта версия rsync- с 2016 года. Предыдущая версия, которую я использовал вчера утром (была установлена ​​в 2015 году), вызвала другую ошибку и побудила меня обновить мою версию git. / Git Bash.

Если этот вопрос является дубликатом, на данный момент нет принятого ответа, и верхний ответ не работает для меня.

В целом, все эти исследования привели меня к мысли, что с rsyncпортами Windows было несколько проблем , и что это только самая последняя проблема .

Я думаю, что проблему можно решить, указав диск по-другому ... но я не знаю, что сработает. Я попытался использовать имя диска, букву диска, синтаксис обратной косой черты Windows. Очевидно, это не сработало, и, в конце концов, я просто угадал.

rsync в msysgit

18.10.11 Вернер БЕРУ сказал

Можно ли уйти, чтобы передать «/ c / Folder» в качестве аргумента приложению? Git преобразует это в «C: \ Folder» по умолчанию, и, кажется, я не могу избежать этого, даже используя обычные методы экранирования. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Я не уверен, что это связано, я думаю, что они пытаются использовать rsync внутри команды git, но интересно, что у них возникают проблемы с путевыми именами. Интересно, если эти ошибки вызваны путём преобразования пути в :?

Коды ошибок 12 и 255 (изменение от 21 марта 2016 г.)

Так как кто-то еще (@davidpostill) говорит, что это тоже дубликат, я подумал, что снова попробую ответы / комментарии в другом вопросе .

Ответы и комментарии большинства других участников по-прежнему не помогли мне, и это привело меня к выводу, что это другая проблема.

Вот результаты попытки rsync с флэш-накопителя, как это было предложено в последнем комментарии к ответу с наибольшим количеством голосов на другой вопрос :

Сначала я попытался использовать /c/, что является способом ссылки на диски в других командах Bash для 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]

Я получил ту же ошибку с /cygwinпрефиксом:

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]

Пробовал различные типы добавления c:, но, как уже указывалось в прошлом, двоеточие заставляет rsyncдумать, что это удаленное соединение, и поэтому происходит сбой с ошибкой 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]

Можете ли вы записать свои ошибки в текст, пожалуйста? Смотрите: Не используйте скриншоты кода и / или ошибок
kenorb

Ты пробовал rsync -trd c:/examp/ e:/?
Ams

@ams да, та же ошибка
Geneorama

Восстановление mysys2может помочь, но я не решаюсь следовать этим шагам. Я могу жить без rsync, но я не могу позволить себе сломать git github.com/git-for-windows/git/wiki/Building-msys2-runtime
geneorama

Вы пробовали WSL . Это позволяет монтировать большие диски и выполнять rsyncing.
Питер Бербек

Ответы:


0

Два года спустя я нашел ответ, который, кажется, работает на моем последнем компьютере (Windows 10, 64-разрядная версия).

  1. Установите git bash для Windows
  2. Скачать rsyncс futureware.at *
  3. Извлечь куда угодно, я выбираю C:\rsync-3.1.2-2-x86_64.pkg
  4. Добавьте папку bin в начало вашего системного пути

* Я не знаю, кто стоит за futureware.at, я бы предпочел ссылку на более первоисточник.

Я также разместил ответ здесь в ответ на более общий вопрос, потому что я не мог вспомнить, где этот вопрос был в то время.


0

С http://repo.msys2.org/msys/x86_64/ загрузите следующие пакеты:

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

Распакуйте каждый с tar -xf , а затем из usr/binкопии rsync.exe, msys-2.0.dll, msys-z.dllи msys-iconv-2.dllв каталог , из которого вы хотите запустить Rsync. Тест с rsync.exe -h.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.