2013-09-24 2 views
1

После запуска следующих команд:Git перебазироваться показывают ошибки, щуря нормированный журнал

git init 
touch README 
git add README 
git commit -m "Initial Commit" 
git branch b01_02_03 
git checkout b01_02_03 
echo "Data 1" >> f1 && git add f1 && git commit -m "Add 01" 
echo "Data 2" >> f2 && git add f2 && git commit -m "Add 02" 
echo "Data 3" >> f3 && git add f3 && git commit -m "Add 03" 
git checkout master 
git branch b04_05 
git checkout b04_05 
echo "Data 4" >> f4 && git add f4 && git commit -m "Add 04" 
echo "Data 5" >> f5 && git add f5 && git commit -m "Add 05" 
git checkout master 
git merge --ff-only b01_02_03 
git checkout b04_05 

сформировать тестовое дерево:

* 8294414 (HEAD, b04_05) add 05 
* 19f920f add 04 
| * 3a2ca64 (master, b01_02_03) add 03 
| * 49d1aca add 02 
| * c8f6d30 add 01 
|/ 
* 7f0ca8e initial commit 

Я бег

git rebase master 

и получить следующий выход.

First, rewinding head to replay your work on top of it... 
Applying: add 04 
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 115: /home9/tclarke/git-puzzles-1/.git/rebase-apply/next: cannot overwrite existing file 
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 665: 1: cannot overwrite existing file 
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 666: 1: cannot overwrite existing file 
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 712: 1: cannot overwrite existing file 
Applying: add 04 
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 115: /home9/tclarke/git-puzzles-1/.git/rebase-apply/next: cannot overwrite existing file 

Результат:

* c88b1f0 (HEAD, b04_05) add 04 
* 761c779 add 04 
* 3a2ca64 (master, b01_02_03) add 03 
* 49d1aca add 02 
* c8f6d30 add 01 
* 7f0ca8e initial commit 

Успешное перебазироваться, но бревна облажался, журнал "добавить 05" становится идентичен своему предшественнику. Это повторяется на другой машине в другом файловом пространстве, в новом репозитории git, который я создал. У моего соседа не возникает проблема с одинаковым деревом.

Любые советы о том, как разрешить это?

+0

вы проверили, является ли это не просто проблемой разрешения файлов? –

+0

Я уверен, что это именно так. Странный бит - это файл, о котором идет речь: /home9/tclarke/git-puzzles-1/.git/rebase-apply/next, кажется, создается и уничтожается самой перестановкой, поэтому просто не существует, когда я пытаюсь и проверить его разрешения. – deworde

+0

На что рассчитан ваш umask? Возможно ли, что вы убираете собственное разрешение на запись для файлов (например, umask 0222, например)? – torek

ответ

0

Разрешения для некоторых метафайлов репо могут быть неправильными по какой-либо причине.

Сначала попробуйте запустить chmod -R u+rw .git в главном пути местного репо (/home9/tclarke/git-puzzles-1), а затем посмотрите, работает ли перебаза. (Даже если это так, сделайте также следующий шаг).

Затем убедитесь, что удаленное репо было инициализировано как общий. На удаленном месте репо (вы должны иметь доступ оболочки для этого), посмотрите на файл config и будет ли, в разделе [core], у вас есть эта строка:

sharedrepository = 1 

Если он отсутствует, добавьте его, а затем запустить chmod -R g+w /path/to/repo (и добавьте denyNonFastforwards = true под [receive]).

Последнее, убедитесь, что никакие другие процессы не заблокировали ваши метафайлы вашего местного репо (не могу придумать причину, по которой это произойдет, но все же). Запустите lsof | grep -F /home9/tclarke/git-puzzles-1/.git и посмотрите, придумаете ли вы что-нибудь.

+0

Ах, что я должен был упомянуть, это полностью в моем местном репо (я пытаюсь выполнить упражнение по переустановке). – deworde

+0

@deworde Вы упомянули новую проверку на другой машине и что она работает для вашего соседа. Итак, у вас есть удаленное репо, из которого вы клонируете? –

+0

Я понимаю, что вы имеете в виду. Это - -bare-клон, и мы затем перезапускаем и удаляем пульт дистанционного управления, поэтому он в основном приближает нас к точке, где это просто репо в известном состоянии, но без подключения к исходному источнику. Я должен дать этому поход с подлинно самодельным локальным в том же состоянии, чтобы увидеть, получаю ли я тот же эффект. – deworde

Смежные вопросы