Mercurial.hgignore для проектов Android Studio

Какие файлы следует игнорировать в Mercurial при использовании Android Studio (1.0 RC4 Windows) для разработки?

Создание нового проекта приложения также создает файл .gitignore. Я перевел это на следующий .hgignore файл

syntax: glob
.hgignore
.gradle
local.properties
.idea/workspace.xml
.idea/libraries
.DS_Store
build

Но когда я делаю Add to VCS для моего проекта, некоторые файлы, которые не входят в список игнорирования, не добавляются в Mercurial. Оставленные файлы:

.idea\.name
.idea\compiler.xml
.idea\copyright\profiles_settings.xml
.idea\encodings.xml
.idea\gradle.xml
.idea\misc.xml
.idea\modules.xml
.idea\scopes\scope_settings.xml
.idea\vcs.xml
build.gradle
MyApplication.iml
gradle.properties
gradle\wrapper\gradle-wrapper.jar
gradle\wrapper\gradle-wrapper.properties
gradlew
gradlew.bat
settings.gradle

Должен ли я добавлять эти файлы в список игнорирования или добавить их в VCS?

Также неясно, что делать с .iml файлами. Добавление проекта в Mercurial с использованием AS добавит файл app\app.iml, но добавление проекта в Git с использованием AS оставит этот файл без следа.

Я не хочу отслеживать лишние файлы в VCS, но я не хочу пропустить хранение важных. Существует множество источников, по которым следует отслеживать файлы, но информация так сильно отличается, что трудно сделать какой-либо определенный вывод.

Обновление: окончательная версия моего файла .hgignore

syntax: glob
.hgignore
.gradle
local.properties
.idea
.DS_Store
build
*.iml
gradlew
gradlew.bat

Для совместного использования проекта между разработчиками следующие файлы должны быть отправлены в VCS или AS не сможет импортировать проект на другой компьютер:

gradle.properties
gradle\wrapper\gradle-wrapper.jar
gradle\wrapper\gradle-wrapper.properties

Ответы

Ответ 1

Я предлагаю вам добавить все файлы, перечисленные выше, в .hgignore, за исключением build.gradle и settings.gradle. Файлы в каталоге .idea автоматически генерируются Android Studio, и вы не должны отслеживать их или редактировать вручную. Я не думаю, что вам когда-нибудь понадобится отредактировать gradlew или gradlew.bat, чтобы вы могли также их перенести. Вы можете добавить gradle.properties и gradle-wrapper.properties позже, когда вам нужно будет изменить версии по умолчанию (лично я тоже эти два игнорировать).

Ответ 2

Это то, что я закончил для проектов с поддержкой Android Studio (1.5) gradle:

syntax: glob
*.iml
.gradle
.idea/dictionaries
.idea/libraries
.idea/tasks.xml
.idea/workspace.xml
build
gen
local.properties

Я думаю, что это очень полный список. Единственный сомнительный вариант imho - игнорировать ли вы файлы *.iml или нет. Они дублируют информацию из build.gradle, автоматически генерируются и постоянно обновляются Android Studio, но, с другой стороны, новым разработчикам необходимо будет "Импортировать проект" вместо "Открыть существующий проект Android Studio", если вы решите не отслеживать их.

В отличие от другого ответа, я настоятельно рекомендую проверить все файлы оболочки gradle в VCS. Цель обертки заключается в том, чтобы выполнить загрузку gradle. Если вы, например, хотите настроить автоматические сборки, вам нужно только проверить проект, создать local.properties или соответствующие переменные среды и выполнить gradlew assemble. Затем система сборки автоматически установит версию gradle, указанную в вашем gradle-wrapper.properties, для выполнения задачи assemble. Это ценная информация для обмена.

Также проверьте эту официальную статью поддержки JetBrains: https://intellij-support.jetbrains.com/hc/en-us/articles/206827587-How-to-manage-projects-under-Version-Control-Systems

Ответ 3

С помощью . игнорировать плагин можно генерировать .hgignore всего за два клика. Откройте контекстное меню в корневой папке, выберите "Создать → .ignore file → .hgignore". Затем для проекта Android Studio просто установите флажки (шаблоны), перечисленные ниже:

  • Android
  • Gradle (необязательно)
  • JetBrains
  • AppEngine (необязательно)

Добавьте syntax: glob в начало сгенерированного файла.

Ответ 4

IntelliJ IDEA mercurial.hgignore файл для обычного проекта gradle/maven java multi, включая обертки (также должны быть сделаны обертки)

syntax: regexp
.gradle/*
.idea/*
syntax: glob
.git/*
*/out/*
*/build/*
*/target/*
.DS_Store
*.iml
*.ipr
*.iws
*.log