2015-09-04 9 views
10

quando si esegue il comando: git allegato sync, ottengo il seguente errore:git Allegato/ssh: ControlPath troppo lungo

ControlPath too long 
Command ssh ["-S","<local path to git repo>/.git/annex/ssh/[email protected]<git url>","-o","ControlMaster=auto","-o","ControlPersist=yes","[email protected]<git url>","git-annex-shell 'configlist' '<local path to git repo>'"] failed; exit code 255 

in base alla this, il problema non è git, ma ssh (ma la soluzione proposta non non ha funzionato).

Qualcosa che potrei evitare questo problema?

risposta

6
"-S","<local path to git repo>/.git/annex/ssh/[email protected]<git url>" 

Questo percorso non dovrebbe essere più lungo, allora 92 caratteri, come unix(7) propone:

When coding portable applications, keep in mind that some implementations have sun_path as short as 92 bytes.

Se si conosce si immerge troppo in profondità nella struttura di directory e il percorso sarà estendere questo limite, è possibile fare una di queste cose, sulla base di man git-anex nel .git/config:

  1. disattivare la connessione condividendo completamente con annex.sshcaching=off. Avviso: Ciò consentirà di aumentare significativamente il tempo e le risorse necessari per eseguire tutte le operazioni!

  2. Specificare il proprio percorso per le connessioni condivise, utilizzando annex.ssh-options="-S=~/.ssh/control-%l.%[email protected]%h:%p" -oControlMaster=auto

+0

sshcaching = false (nota: non è 'off') porta a: 'GitLab: il comando non consentito'. Giocare con ssh-options non cambia nulla (ho provato varie cose, incluso il tuo suggerimento), specialmente l'elenco visualizzato dopo che "Command ssh" non cambia. – Vince

+0

Ho modificato la risposta un po ', perché ho perso l'opzione 'ControlMaster'. Ma è possibile che venga sovrascritto dall'allegato. Cosa succede se si specificano entrambi i punti che ho postato? Se nulla aiuta, fornire l'output con 'annex.ssh-options =" ​​- vvv "' – Jakuje

+0

sshcaching = off e ssh-options = "- vvv"/"- S = ~/.ssh/control-% l.% R @% h:% p "-oControlMaster = auto" non porta nessuna modifica all'output sshcaching = false conduce a [start] GitLab: comando non consentito Comando ssh ["", "git-annex-shell 'configlist' '' "] non riuscito; codice di uscita 1 [fine]. ssh-options sembra essere effettivamente ignorato – Vince