Странная проблема с git repo? - PullRequest
       27

Странная проблема с git repo?

5 голосов
/ 04 сентября 2011

Я только что обновился до OSX Lion на своем Mac и обнаружил странную проблему с git-репо.У меня есть файлы .vim под управлением версией с несколькими плагинами, настроенными как подмодули git.После обновления я запустил команду git status в свой каталог .vim и получил следующее:

fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed

Кто-нибудь знает, в чем моя проблема?Я искал вышеупомянутое сообщение об ошибке в Google и SO, но я не нашел никаких ответов.Я также заметил, что git сейчас выглядит очень медленно.Кроме того, у меня нет других проблем в других git-репозиториях (ожидаю проблемы с медлительностью), что заставляет меня думать, что проблема не связана с Lion.У кого-нибудь есть какие-либо предложения по исправлению моего репозитория .vim?Заранее спасибо за помощь.

Вот некоторые результаты трассировки, запрошенные drizzd:

setup: worktree: /Users/sbrown/.vim/bundle/supertab  
setup: cwd: /Users/sbrown/.vim/bundle/supertab  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/surround  
setup: cwd: /Users/sbrown/.vim/bundle/surround  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/tasklist  
setup: cwd: /Users/sbrown/.vim/bundle/tasklist  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim  
setup: cwd: /Users/sbrown/.vim  
setup: prefix: bundle/vim-colors-solarized/  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  

Ответы [ 3 ]

3 голосов
/ 07 сентября 2011

Для дальнейшего использования, единственный способ исправить проблему - это удалить все подмодули, а затем переустановить их.

1 голос
/ 07 января 2012

В случае, если это кому-то поможет, я только что столкнулся с той же проблемой и обнаружил, что запуск git init в корне проекта исправил это.

0 голосов
/ 06 апреля 2014

Ваш git-проект (или хотя бы один из ваших подмодулей, если у вас есть) поврежден. Это означает, что некоторые файлы в ваших папках .git повреждены или отсутствуют.

Fix git-repo

Как упоминал Джордан: зайдите в свой корень и запустите git init. Затем попробуйте git status еще раз.

Исправить подмодули

Если это не сработает, перейдите к вашим подмодульным папкам и попробуйте git init еще раз. Вернитесь в root и запустите git status.

Почему он сломан?

Один из возможных ответов: проблемы с правами доступа. Может быть, вы работаете с несколькими пользователями над рабочей копией?

Другим ответом может быть какое-то программное обеспечение для синхронизации, например OwnCloud , Dropbox , Google Drive или как в моем случае BitTorrent Sync . Мои рабочие копии находятся в папке синхронизации, которая синхронизируется между моим компьютером на работе и дома. Это вызывает некоторые проблемы с разрешениями.

Надеюсь, это поможет.

...