git push over sshfs mancanza con “l'errore quando si chiude il file sha1: descrittore di file Bad”

StackOverflow https://stackoverflow.com/questions/4819834

  •  26-10-2019
  •  | 
  •  

Domanda

stiamo montando un filesystem su SSH utilizzando sshfs e si utilizza come un telecomando di stoccaggio per GIT collaborazione repository.

Mac OSX 10.6.6 a un server RHEL 3 Versione SSHFS 2.2 (MacFUSE SSHFS 2.2.0)
MacFUSE versione della libreria: FUSE 2.7.3 / MacFUSE 2.0.3

sshfs -o workaround=rename gituser@gitserver.ourdomain.com:/path/to/directory ~/git

Ecco come stiamo creando la nostra repo di, lavorare con loro a livello locale, poi cercando di spingere al server:

cd ~/git/mypersonaluser
git init --bare --share mynewrepo.git
git clone ~/git/mypersonaluser/mynewrepo.git ~/Desktop/mynewrepo
cd ~/Desktop/mynewrepo
... make a few edits to the repo ...
git push origin master

Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 20.82 KiB | 23 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
fatal: error when closing sha1 file: Bad file descriptor
error: unpack failed: unpack-objects abnormal exit
To /Users/joebob/git/mypersonaluser/mynewrepo.git/
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to '/Users/joebob/git/mypersonaluser/mynewrepo.git/'

Cosa c'è di strano è che sembra che le piccole modifiche alla spinta di pronti contro termine con successo, ma che impegna più grandi con più nuovi file o di grandi quantità di modifiche non funzionano.

Siamo sshfs e neofiti MacFUSE, ma gli utenti git intermedio.

Tutte le idee o suggerimenti?

È stato utile?

Soluzione 2

Non abbiamo mai trovato una soluzione per i problemi che abbiamo sperimentato durante il montaggio del server su sshfs. Ma un collega di mine ha fatto capire come installare i binari git localmente all'interno di un singolo account sul server RHEL 3 e ora possiamo comunicare con i nostri repository remoto tramite SSH, che ora funziona perfettamente.

Ecco i comandi di installazione ha usato, che dovrebbero essere utilizzate quando si accede al server tramite SSH:

curl -O http://kernel.org/pub/software/scm/git/git-1.7.4.1.tar.gz
tar xvfz git-1.7.4.1.tar.gz
cd git-1.7.4.1
./configure --prefix=$HOME CFLAGS='-I/usr/kerberos/include'
make SHELL="/bin/bash" install

Quindi, aggiungere directory bin del tuo account remoto per PATH l'account del server modificando ~/.bashrc sul server e aggiungendo questa linea fino alla fine:

export PATH=$PATH:$HOME/bin

Dal computer di sviluppo, si può quindi definire una posizione remota repository e spingere ad esso.

git add remote myremote ssh://myuser@server.domain.com/home/myuser/path/to/repo.git
git push myremote branchnamehere

Altri suggerimenti

Git può spingere su SSH in modo nativo, senza dover montare il server al file system locale. Vorrei consigliamo di provare questo:

git push gituser@gitserver.ourdomain.com:/path/to/directory master

I funziona, basta cambiare la vostra origine remota per gituser@gitserver.ourdomain.com:/path/to/directory invece di ~/git

Se non funziona o si sarà almeno ci dicono che MacFuse o sshfs non ha colpa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top