2013-11-14 3 views
1

Некоторые файлы в моем проекте удаляются и воссоздаются достаточно часто. Git рассматривает их как совершенно новые файлы и записывает их как новые, даже если содержимое файлов не изменяется. Можно ли игнорировать репозиторий файлов и обрабатывать их как обычные, а не воссозданные файлы?Можно ли игнорировать файл отдыха в git?

Я установил core.trustctime в false, но ничего не изменилось.

PS: Я использую Github для Windows.

+0

Git не может совершать то, что не имеет изменения в содержании. Кто-то еще удаляет эти файлы из хранилища? Возможно ли, что это связано с проблемой окончания строк для Linux и Windows? –

+0

Почему эти файлы удалены? Вы действительно хотите, чтобы эти файлы находились под контролем версий? Почему вы фиксируете удаление этих файлов? (Если вы не совершаете удаление, git даже не заметит, что они пропали между ними.) – michas

+0

Спасибо! EGit автоматически (без фиксации) удаляет эти файлы из репозитория! Файлы генерируются EMFText. Фактически каждый, у кого установлен EMFText, может восстановить их. Но у некоторых peolpe нет EMFText. – Denis

ответ

2

This is a bug in Eclipse, что не будет исправлена, к сожалению (это с 2002 года).

Что происходит: Eclipse имеет объект для отслеживания файлов в рабочей области. Они определили обычные операции, такие как создание и удаление. Итак, что происходит, так это то, что вы строите свой проект.

Это инициирует построитель EMFText. Он удалит файлы, которые будут запускать «git rm», поскольку Eclipse не может отличить «генератор кода, который удаляет файлы для их создания снова», и «пользователь удалил файл навсегда».

Затем файл создается снова. У Eclipse нет хорошего способа упасть, хотите ли вы удалить это в своей истории фиксации или было ли это непреднамеренно. Таким образом, файл остается в удаленном состоянии.

MercurialEclipse и все другие плагины управления версиями на Eclipse также затронуты.

Обходные:

  1. Создать скрипт, который просто добавляет все файлы, которые существуют, но находятся в состоянии «удалить».

  2. Настройте генератор кода, чтобы не удалять файлы во время «Очистить». Xtext может это сделать.

+0

Подробное описание того, что происходит, в отличие от моего ответа. +1 – VonC

1

Вы можете попробовать применить директиву unitanged update-index для всех файлов, регенерированных EMFText.

См "git update-index --assume-unchanged on directory":

cd /path/to/EMFText/generated/files 
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ') 
Смежные вопросы