Impossibile risincronizzare su un altro volume con Git Bash


10

Uso git bash su una macchina Windows: versione 2.7.2 (versione a 32 bit) di Git per Windows costruita il 23-02-2016 disponibile da https://git-scm.com .

All'interno di bash posso copiare una directory da /c/a /e/(una chiavetta USB). Tuttavia, ricevo errori quando provo a utilizzare rsync. Ho provato ad aggiungere cygdriveai nomi delle directory, ma non ha funzionato. Ho anche provato ad aggiungere -e(solo per vedere cosa sarebbe successo) che non ha funzionato neanche.

Dico che il comando copia funziona perché è strano che io possa vedere l'unità in un modo, ma non vederlo in un altro modo.

Copia corretta: inserisci qui la descrizione dell'immagine

Non riuscito rsync: inserisci qui la descrizione dell'immagine

Grazie e per favore commenta se hai votato per aiutarmi a migliorare la domanda.

Ulteriori background e ricerche:

Errore 255

Ad un certo punto credo che stavo ottenendo lo stesso errore esatto (255), che mi ha portato a questo post. Tuttavia, la soluzione qui è correlata cygwin, non git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagabondo e rsync

Ci sono molte buone notizie sulla meccanica di rsync, specialmente da mitchellh. Tuttavia, non ero sicuro di quali componenti facciano riferimento nella mia installazione o di come dire. Ho fatto una domanda separata su questo sito su questo problema. fonte: https://github.com/mitchellh/vagrant/issues/3236

Elencazione delle unità in ambienti Linux emulati

fonte: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Quando lo faccio cat /etc/fstabottengo quanto segue:

$ 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

Il che a mio avviso indica che esiste un volume denominato cygdrive, tuttavia non ho trovato alcun comando che acceda correttamente a quel nome.

Possibile domanda duplicata:

@kenorb ha suggerito che questa domanda è un duplicato di Perché cwRsync non funziona su Windows? .

Non ricordo di aver visto questo post ieri, ma questo sembra il più simile al mio. Penso ancora che sia diverso perché questa domanda è stata pubblicata nel 2011 e questa versione rsyncè del 2016. La versione precedente che stavo usando ieri mattina (che è stata installata nel 2015) ha dato un errore diverso e mi ha spinto ad aggiornare la mia versione di git / git bash.

Se questa domanda è una copia duplicata, non esiste (per ora) una risposta accettata e la risposta migliore non funziona per me.

In generale, tutta questa ricerca mi ha portato a credere che ci siano stati diversi problemi con le rsyncporte di Windows e che questa sia solo la più recente.

Penso che il problema possa essere risolto da me specificando l'unità in modo diverso ... ma non so cosa funzionerebbe. Ho provato a usare il nome dell'unità, la lettera dell'unità, la sintassi della barra rovesciata di Windows Colon. Ovviamente non ha funzionato, e alla fine sto solo indovinando.

rsync in msysgit

Il 18/10/11 Werner BEROUX ha dichiarato

È possibile scappare in modo da passare "/ c / Folder" come argomento a un'applicazione? Git lo trasforma in "C: \ Cartella" per impostazione predefinita e sembra che non posso evitarlo nemmeno usando i metodi di escape comuni. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Non sono sicuro che ciò sia correlato, penso che stiano cercando di usare rsync all'interno di un comando git, ma è interessante che abbiano problemi con i nomi dei percorsi. Mi chiedo se questi errori causati dal percorso tradotto per includere un :?

Codici di errore 12 e 255 (modifica il 21 marzo 2016)

Poiché qualcun altro (@davidpostill) sta dicendo che anche questo è un duplicato, ho pensato di provare di nuovo le risposte / i commenti nell'altra domanda .

Le risposte e i commenti più votati dell'altra domanda non hanno ancora funzionato per me, il che mi riporta alla conclusione che si tratta di un problema diverso.

Ecco i risultati del tentativo di rsync dalla chiavetta USB, come suggerito nel commento finale della risposta più votata sull'altra domanda :

Per prima cosa ho provato a utilizzare /c/, che è il modo di fare riferimento alle unità in altri comandi in Bash per 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]

Ho avuto lo stesso errore con il /cygwinprefisso:

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]

Ho provato vari tipi di aggiunta c:, ma come è stato sottolineato in passato, i due punti fanno rsyncpensare che sia una connessione remota, e quindi fallisce con l'errore 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]

Puoi trascrivere i tuoi errori in testo, per favore? Vedi: Scoraggia schermate di codice e / o errori
kenorb

Ci hai provato rsync -trd c:/examp/ e:/?
AMS

@ams sì, stesso errore
geneorama

La ricostruzione mysys2potrebbe aiutare, ma sono titubante nel seguire questi passaggi. Posso vivere senza rsync, ma non posso permettermi di interrompere git github.com/git-for-windows/git/wiki/Building-msys2-runtime
geneorama

Hai provato WSL . Permette il montaggio e la risincronizzazione della chiavetta USB.
Peter Berbec,

Risposte:


0

Due anni dopo, ho trovato una risposta che sembra funzionare sul mio ultimo computer (Windows 10, 64 bit).

  1. Installa git bash per Windows
  2. Scarica rsyncda futureware.at *
  3. Estrai ovunque, scelgo C:\rsync-3.1.2-2-x86_64.pkg
  4. Aggiungi la cartella bin all'inizio del percorso di sistema

* Non so chi c'è dietro futureware.at, preferirei collegarmi a una fonte più primaria.

Ho anche pubblicato la risposta qui in risposta a una domanda più generale, perché non riuscivo a ricordare dove fosse quella domanda in quel momento.


0

Da http://repo.msys2.org/msys/x86_64/ scaricare i seguenti pacchetti:

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

Scompattare ciascuno con tar -xf, e poi da usr/bincopia rsync.exe, msys-2.0.dll, msys-z.dlle msys-iconv-2.dllnella directory da cui si desidera eseguire rsync. Prova con rsync.exe -h.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.