2010-09-30 17 views
14

Quando utilizzo la condivisione di samba su Windows, viene visualizzato un errore quando si desidera eseguire il commit di un file tramite git_extentions o tortoiseGIT. L'errore è: errore: impossibile scrivere sha1 nomefile .git/objects/b4/e819f886bf31b67c42249a0eff8e8b16cf7622: Autorizzazione negata Quando aggiungo il file tramite il server ubuntu e impegno il file funziona correttamente. Sto lavorando anche su un banch.Git over samba - impossibile scrivere sha1 nomefile | Autorizzazione negata

Ho già provato a chmod 777 l'intera cartella .git.

+0

Che cosa fa il file di configurazione di samba aspetto simile, ed è l'utente lo stesso di quello git si aspetta? – dkinzer

+0

Questo problema si è appena verificato per me! Ho aggiornato msysGit a v1.7.6.msysgit.0, ma il server a cui mi collego su oltre la condivisione samba ha v1.7.2.1 su. 1. Non so quale msysGit ho avuto prima di tornare a testare. 2. così aggiornerà la versione dei server per vedere se questo aiuta. –

+0

Ok, non è stato d'aiuto. v1.7.2.1 in esecuzione sul mio server. Tutto è iniziato quando ho iniziato a utilizzare PortableGit per qualcos'altro, e succede anche con quello! –

risposta

0

Probabilmente blocchi di samba dotfiles? Perché non usare ssh invece di samba per spingere?

+0

I file punto non sono bloccati e visti come file nascosti in Windows. Come fai a spingere da ssh? Il commit dei file tramite riga di comando funziona correttamente. – InfoTracer

+0

Io uso git su samba perché sviluppo su Windows, ma il mio server di test è ubuntu. Significa che non devo schierare ogni volta che voglio testare un cambiamento. – Nathan

5

Ho visto anche questo. È un difetto da git, che probabilmente ha a che fare con il modo in cui crea e modifica i file. Per chiarire il problema:

# mount a samba share locally. 
$ mount -t cifs options //share/project /mnt/project 

# The share contains a git checkout. 
# Do some typical development. 
$ cd /mnt/project 
$ vi file ## ok 
$ git pull ## ok 
$ git status ## ok 
$ git add file ## error! 
    error: unable to create temporary sha1 filename 
    .git/objects/8b/tmp_obj_mYE1Xi: Permission denied 


## But everything from the shell seems to work. 
$ ls -latr .git/objects/8b/ ## ok. empty dir. 
$ touch .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
$ echo test123> .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
$ cat .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
test123 
$ rm .git/objects/8b/tmp_obj_mYE1Xi ## ok. 

In git versione 1.5.6.5 (ultimo pacchetto Debian), si ottiene l'errore quando si tenta di git-add. Se si installa git 1.7.3.2 (ultima versione), è possibile aggiungere il file, ma si otterrà l'errore quando si tenta di eseguire il commit.

+0

Ah, questo mi disturba davvero! Ho iniziato ad avere questo problema solo dopo aver usato PortableGit e/o aver aggiornato mSysgit! –

4

Questo problema è stato visto prima in alcune forme o in altre per le installazioni Git/Samba. Non so se la fonte del problema è stato il perno ha sottolineato ancora:

http://code.google.com/p/msysgit/issues/detail?id=130#makechanges

Aggiornamento:.

sembra git v 1.7.3.3 ha risolto questo problema.

+0

Ho effettivamente aggiornato il samba come menzionato nella pagina collegata, e ha funzionato per me. http://code.google.com/p/msysgit/issues/detail?id=130#c21 – Broote

+2

Sto usando v1.7.6.msysgit.0 e v1.7.2.1 sul mio server, ma vedo ancora questo !? –

+0

Viene visualizzato il problema su Git-1.9.5-preview20141217 –

3

Ok, ho trovato una soluzione che ha funzionato per me.

Sono stato con git oltre samba (samba-common-3.0.33-3.7.el5) per le età senza problemi.

Ho aggiornato git a Git-1.7.6-preview20110708 e tutto è andato in pentola!

Come uno sviluppatore metodico, non ho annotato ciò che ho aggiornato da!

Così ho passato l'elenco delle versioni precedenti e ho visto una stella accanto a Git-1.7.0.2-preview20100309, quindi un po 'vecchio, ma metto questo .... e bang ... funziona!

+0

Entrambi i collegamenti sono ora interrotti. E 'apt-get install git = 1.7.0.2' restituisce' Versione '1.7.0.2' per 'git' non trovata '. E adesso? – poshest

1

abbiamo iniziato a utilizzare git oggi. la versione 1.7.10 andava bene per le macchine win7. su winXP abbiamo verificato l'errore dato. per quelle macchine abbiamo effettuato il downgrade alla versione 1.7.0.2 come Ian ha dichiarato nel suo post e ora funziona.

0

Nel mio caso era il software anti-virus su Windows che bloccava i file. La disattivazione temporanea dell'antivirus ha risolto il problema.

0

ho risposto a questa domanda nel corso here così

Nel mio caso, sembra che Git (v 2.6.3) ha cercato di creare i propri permessi di lettura/scrittura sul disco Samba. Ciò impedirebbe i file del pacchetto e/o oggetti da ottenere scritto (errore decompressione)

remote: error: unable to write sha1 filename ./objects/pack/pack-<some_hex_string>.pack: Permission denied 
remote: fatal: cannot store pack file 
error: unpack failed: index-pack abnormal exit 
To z:\git\<repo name> 
! [remote rejected] master -> master (unpacker error) 
error: failed to push some refs 

sono andato avanti e indietro per cercare di risolvere il problema.Infine, dato che avevo il controllo della macchina Samba, ho aggiunto una riga alla config del drive samba, che dice "inherit permissions = yes". Ho riavviato Samba e ho provato a spingere. Ha funzionato!

Questo ha funzionato per me poiché sono l'unica persona che utilizza il server Samba. Per gli altri, puoi giocare con "force directory mode" o "force create mode". Si possono trovare le pagine man per gli over qui:

https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html

Problemi correlati