2011-08-20 12 views
11

Ho appena installato git sul mio server linux e configurato SSH - Voglio creare un repository privato per lavorare con i miei amici. Quando sto tirando o la clonazione che repo tutto funziona bene (LAN), ma quando il mio amico tentativi tirare o clonano (su Internet), git si blocca a:Repository Git privato - si blocca a tirare

remote: Compressing objects: x 

dove x è sempre inferiore al 17% .

Cosa c'è di sbagliato o come posso risolvere il problema?

PS: Non utilizzo la gitosi, ho inizializzato il repository remoto con: git --bare init.

Grazie in anticipo.

Aggiornamento:

I comandi dei risultati:

$ cat .git/config 

[core] 
repositoryformatversion = 0 
filemode = false 
bare = false 
logallrefupdates = true 
symlinks = false 
ignorecase = true 
hideDotFiles = dotGitOnly 
[remote "origin"] 
url = ssh://[email protected]:port/~/repo_name.git 
fetch = +refs/heads/*:refs/remotes/origin/* 

 

$ git fetch -v 
Enter passphare for key '/c/Users/dev/.ssh/id_rsa': 
remote: Counting objects: 76, done. 
remote: Compressing objects: 21% (12/55) 

Tuttavia, quando il mio amico ha ottenuto ZIP con le fonti e lo spinse, tutto ha funzionato bene. Quindi è in grado di spingere. Ho aggiunto un file vuoto e l'ho spinto, lo ha scaricato (tirato) con successo.

+0

È utile quando si esegue 'git gc' sul server-repo? Esistono anche diversi protocolli (ssh/git/static-http/"intelligent" -http) coinvolti? E usi lo stesso account utente sia per i tuoi amici che per i tuoi amici, o sono diversi (sto pensando a problemi di autorizzazione)? – Rudi

+0

@Rudi Beh, quando ho eseguito 'git gc'tl su SSH localmente (il server è in esecuzione sul mio computer) è stato completato, ma quando il mio amico ha provato a fare la stessa cosa è stato congelato (il cursore lampeggia per sempre). Ha cercato di tirare dopo e si è bloccato a 'Comprimere oggetti: 7%'. Sì, abbiamo un account per git, e stiamo usando il protocollo SSH (l'origine è simile a questa, su entrambi i computer): 'ssh: // git @ server_uri: port/~/repo_name.git'. Git repo è nella home directory del git account. A proposito, stiamo usando 'git pull origin master'. – Robik

+0

sembra che ci sia un componente di rete che interrompe la connessione ssh dopo alcuni secondi, molto probabilmente un difetto NAT. Puoi provare con wireshark su entrambe le estremità se ci sono pacchetti TCP della connessione vengono rilasciati dopo un certo periodo di tempo (ho il sospetto che manchino pacchetti ACK server-> client). – Rudi

risposta

7

ottenere il vostro amico a provare:

git fetch -v 

Se questo non ti dà la risposta poi fargli fare questo:

cat .git/config 

Se il server è sicuro quindi aggiornare la tua domanda includere l'output di quel comando. Se non è sicuro, cambia l'IP e altri dettagli di identificazione con un IP falso e dettagli falsi, ma cerca di non alterare nient'altro perché potresti finire per fornire informazioni fuorvianti.


Modifica sulla base degli:

L'URL deve iniziare con "ssh: //" e non "ssh /". Anche se sto per andare a ricontrollare.

+0

Domanda aggiornata. – Robik

+0

Siamo spiacenti, è 'ssh: //'. L'ho appena copiato con qualche emoticon e manca. – Robik

+0

Dannazione, beh, davvero non lo so, visto che tutto il resto sembra normale. È possibile che il tuo amico venga a casa tua? O quello o per voi per provare a clonare/tirare il tuo repo dall'esterno della tua rete. In questo modo puoi capire se il problema è per lui o per la tua parte. – Gerry

1

Ho avuto lo stesso problema fino a quando non sono entrato nelle impostazioni della mia scheda Ethernet e ho cambiato la dimensione del pacchetto Jumbo da 1514 byte a 9014 byte.

+3

È difficile credere che siano necessari pacchetti jumbo per far funzionare git. –

+1

Penso che potrebbe essere in realtà un'altra impostazione che in combinazione con la dimensione più piccola ha fallito. Ho avuto problemi con la mia scheda di rete per mesi. Probabilmente è un problema di driver. –

+0

Ho avuto lo stesso problema con Ethernet, ho appena provato con il wifi, ha funzionato ... –

2

Se Git spinge/tira fermo usando una configurazione che ha funzionato in precedenza, provare a riavviare il computer.

Sembra strano, ma l'ho provato su Windows e Linux.

+1

Esattamente questo è successo per me (su Mac OS). Non sei sicuro di quale servizio esattamente debba essere resettato, ma sei su qualcosa. Grazie! – jdunk

Problemi correlati