ExtJS 6 добавление workspace.json к gitignore
У меня есть быстрый вопрос ExtJS 6, в котором я надеюсь, что кто-то может мне помочь.
Я работаю в команде нескольких разработчиков, используя git для управления версиями.
Я разработал новый проект Ext, выполнив следующие шаги:
sencha -sdk /home/user/project/extjs-6.5.3.57 generate app Application /home/user/project/app
который создает приложение, я затем запускаю sencha app watch
и делаю некоторые первоначальные изменения.
Оттуда я git init
.
Кажется, все идет хорошо, он создает запись в моем файле workspace.json, например;
"frameworks": {
"ext": {
"path":"ext",
"version":"6.5.3.57"
}
},
Проблема возникает, когда другой член команды хочет начать разработку.
Они клонируют репо, настраивают sencha cmd и затем запускают;
sencha app upgrade /home/user/project/extjs-6.5.3.57
Это создает каталоги /build и /ext, которые находятся в файле.gitignore.
Прямо после этого, если они будут запускать git status
, возвращается, говоря, что workspace.json обновлен.
Это изменение просто проверяет, что рамки блокируются и добавляются несколько пробелов. и это обработанный блок;
"frameworks": {
"ext": {
"path":"ext",
"version":"6.5.3.57"
}
},
Мне было интересно, если кто-то еще столкнется с этим и как они его преодолели? .. Должен ли я добавлять файл workspace.json в файл.gitignore, чтобы он был сгенерирован свежим на каждом dev-машине? или я делаю что-то неправильно изначально?
В настоящее время мой .gitignore
выглядит так;
/build
/ext
bootstrap.*
classic.json*
modern.json*
.sencha
.idea
Я запускаю обновление приложения sencha из корневого каталога проекта, поэтому мой рабочий каталог выглядит так
/.git
.gitignore
Readme.md
/app
app.js
app.json
build.xml
/classic
/ext
index.html
/modern
/resources
workspace.json
Любая помощь будет принята с благодарностью.
Ответы
Ответ 1
Во-первых, типичный файл gitignore ExtJS не включает workspace.json
.
Поэтому вы не должны его игнорировать.
Во-вторых, вы можете попросить разработчиков активировать в своем git config clean
content filter driver
который удалит пустые строки.
git config filter.workspacejson.clean sed '/^$/d'
Этот фильтр " workspacejson
" объявляется в репозитории Git как директива .gitattributes
.
workspace.json filter=workspacejson
Он будет применяться автоматически при git diff
или git commit
для любого файла workspace.json
, как указано в файле .gitattributes
.
(Источник: Pro Git book: настройка атрибутов Git - Git)
Таким образом, любой git diff
или git commit
рассмотрит вашу workspace.json
без изменений.