Мерзавец chmod проблема: Контроль завинчивает исполнительный бит

В соответствии с Ubuntu и Debian последние зафиксированные файлы получают набор битов выполнения, когда я пробую контроль впоследствии. Это довольно странно и сводит меня с ума:

$ ls -l file
-rw-r--r-- ... file

# on branch master:
$ git commit -m 'mode is 644' file
[master 0123456] mode is 644
 1 files changed, 1 insertions(+), 1 deletions(-)
# All ok

$ git checkout dev-branch
Switched to branch 'dev-branch'
# Seemingly all ok, but file now has the exec bit set

$ git merge master
Updating 6543210..0123456
error: Your local changes to 'file' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.
# Oops...

$ ls -l file
-rwxr-xr-x ... file

У кого-либо есть идея, когда и почему выполнение укусило, закрадывается? core.filemode установлен на true.

У меня есть файл, открытый в энергии во время переключения ответвления, если это важно так или иначе.

Приложение 1: это - контроль, где полномочия завинчены. Я могу играть в игру вперед и вперед:

$ git br
* master
  dev-branch

$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755

$ chmod 644 file

$ git diff

$ git checkout dev-branch

$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755

$ chmod 644 file

$ git diff

$ git checkout master

$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755

# ...and so on ad inf.

Приложение 2: Это происходит, между прочим, для каждого файла в этом репозитории, который я фиксирую. После успешной фиксации я не могу переключить ответвления без провала разрешения.

10
задан 06.11.2010, 15:07

3 ответа

Не пользователь Мерзавца, но я полагаю, что Мерзавец хранит всю маску разрешения файла.

Это означает после того как установку файла на исполняемый файл который Мерзавец взял и копируемый в репозитории. Поэтому необходимо изменить саму маску разрешения файла перед фиксацией.

Чтобы заставить Мерзавца проигнорировать такие изменения, использовать

git config core.filemode false

От конфигурации мерзавца (1):

   core.fileMode
       If false, the executable bit differences between the index and the
       working copy are ignored; useful on broken filesystems like FAT.
       See git-update-index(1). True by default.
12
ответ дан 07.12.2019, 12:44

Вы проверяли, существует ли пользовательский рычаг, который выполняется во время фиксации или контроля? Могли бы быть некоторые пользовательские рычаги, вмешивающиеся в Ваши файлы. Контроль githooks страница справочника.

Рычаги являются в основном небольшими программами, названными мерзавцем в определенных событиях (фиксация, контроль и т.д.).

3
ответ дан 07.12.2019, 12:44

Вы попробовали фиксацию мерзавца-m 'режим, 644' файла на dev-ответвлении ответвления

мне похоже на то, что происходит, Вы, изменяют полномочия на основном, затем раскрывающем ответвление dev, которое имеет неправильное разрешение, ударяя Ваше локальное разрешение. затем пытаясь фиксировать снова. любой клон, изменение, фиксация, слияние; или попытайтесь измениться, файл индивидуально с единственной фиксацией файла в dev затем объединяются

1
ответ дан 07.12.2019, 12:44

Теги

Похожие вопросы