Git over samba - невозможно написать имя файла sha1 | Доступ запрещен

Когда я использую git через общий ресурс samba в Windows, я получаю сообщение об ошибке, когда я хочу зафиксировать файл через git_extentions или tortoiseGIT. Ошибка:ошибка: невозможно записать имя файла sha1 .git / objects / b4 / e819f886bf31b67c42249a0eff8e8b16cf7622: разрешение отклонено, Когда я добавляю файл через сервер Ubuntu и фиксирую файл, он работает нормально. Я тоже работаю в банрах.

Я уже попробовалаchmod 777 the whole .git folder.

 dkinzer01 нояб. 2010 г., 15:40
Как выглядит файл конфигурации samba, и совпадает ли пользователь с тем, что ожидает git?
 Ian Vaughan20 июл. 2011 г., 12:13
Эта проблема только началась для меня! Я обновил msysGit до v1.7.6.msysgit.0, но на сервере, к которому я подключаюсь через общий ресурс samba, включен v1.7.2.1. 1. Я не знаю, какой msysGit я имел прежде, чтобы вернуться к тестированию. 2. поэтому обновим версию серверов, чтобы посмотреть, поможет ли это.
 Ian Vaughan20 июл. 2011 г., 12:40
Хорошо, это не помогло. v1.7.2.1 работает на моем сервере. Все это начало происходить, когда я начал использовать PortableGit для чего-то другого, и это также происходит с этим!

Ответы на вопрос(7)

н win7. На winXP у нас произошла данная ошибка. для этих машин мы понизились до 1.7.0.2, как сказал Ян в своем посте, и теперь это работает.

Я использовал git поверх самбы(Самба-синфазного 3.0.33-3.7.el5) целую вечность без проблем.

Я обновил git доГит-1.7.6-preview20110708и все это пошло в горшок!

Поскольку я такой методичный разработчик, я не записывал то, что я обновил!

Так что я прошел список предыдущих выпусков и увидел звезду рядом сGit-1.7.0.2-preview20100309, так что немного стар, но наденьте это ... и взрыва ... это работает!

 poshest16 нояб. 2015 г., 14:40
Обе ссылки сейчас битые. А такжеapt-get install git=1.7.0.2 доходностьVersion '1.7.0.2' for 'git' was not found, Что теперь?

скорее всего связанный с тем, как он создает и изменяет файлы. Чтобы прояснить проблему:

# 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.

В git версии 1.5.6.5 (последний пакет Debian) вы получаете сообщение об ошибке при попыткеgit-add, Если вы устанавливаете git 1.7.3.2 (последний выпуск), вы можете добавить файл, но при попытке зафиксировать вы получите ошибку.

 Ian Vaughan20 июл. 2011 г., 14:44
Ах, это действительно раздражает меня! Я начал получать эту проблему только после использования PortableGit и / или обновления mSysgit!

Вот также

В моем случае, похоже, что Git (v 2.6.3) пытался создать собственные разрешения на чтение / запись на диске Samba. Это предотвратит запись файлов и / или объектов пакета (ошибка распаковки)

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

Я ходил взад и вперед, пытаясь исправить. Наконец, так как у меня был контроль над машиной Samba, я добавил строку в конфигурацию диска samba, которая говорит: «унаследовать разрешения = да». Я перезапустил Samba и попытался нажать. Это сработало!

Это сработало для меня, так как я единственный человек, использующий сервер Samba. Для других вы можете поиграть с «принудительным режимом каталогов» или «принудительным режимом создания». Вы можете найти справочные страницы для тех, кто здесь:

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

блокирующая файл (ы). Временное отключение антивируса решило проблему.

Эта проблема была замечена ранее в той или иной форме для установок Git / Samba. Не уверен, что источник проблемы был еще указан:

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

Обновить:

похоже, что git v. 1.7.3.3 решил эту проблему.

 Robert Grant03 февр. 2016 г., 13:36
Я получаю проблему на TortoiseGit 1.8, который использует Git 2.7.
 Jeff Lockhart04 мар. 2015 г., 04:11
Все еще получаю проблему на Git-1.9.5-preview20141217
 Ian Vaughan20 июл. 2011 г., 12:46
Я использую v1.7.6.msysgit.0 и v1.7.2.1 на моем сервере, но все еще вижу это !?
 Broote19 июл. 2011 г., 02:30
Я фактически обновил Samba, как упомянуто на связанной странице, и это сработало для меня.code.google.com/p/msysgit/issues/detail?id=130#c21

самба блокирует дотфайлы? Почему бы не использовать ssh вместо samba для push?

 Nathan23 янв. 2011 г., 15:04
Я использую git поверх samba, потому что я работаю на Windows, но мой тестовый сервер - Ubuntu. Это означает, что мне не нужно развертывать каждый раз, когда я хочу проверить изменения.
 InfoTracer30 сент. 2010 г., 12:50
Точечные файлы не блокируются и рассматриваются как скрытые файлы в Windows. Как ты себя толкаешь по SSH? Для фиксации файлов через командную строку работает нормально.

Ваш ответ на вопрос