10

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

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

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

Успешная копия:

Неудачный rsync:

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

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

Ошибка 255

В какой-то момент я считаю, что я получил точно такую же ошибку (255), которая привела меня к этому посту. Тем не менее, решение здесь связано с cygwin , а не Git Bash. https://stackoverflow.com/questions/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]

1 ответ1

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, я бы предпочел ссылку на более первоисточник.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .