androidmercurialandroid-studiohgignore

Mercurial .hgignore for Android Studio projects


What files should be ignored in Mercurial when using Android Studio (1.0 RC4 Windows) for development?

Creating new application project also creates .gitignore file. I have translated that to following .hgignore file

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

But when I do Add to VCS for my project, some files that are not in ignore list are not being added to Mercurial. Files left out are:

.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

Should I add those files to ignore list, or should I add them to VCS?

It is also unclear what should be done with .iml files. Adding project to Mercurial using AS will add app\app.iml file, but adding project to Git using AS will leave that file untracked.

I don't want to track superfluous files in VCS, but I don't want to miss storing important ones. There are numerous sources on which files should be tracked, but information differs so greatly it is hard to make any definite conclusion.

Update: final version of my .hgignore file

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

For sharing project among developers following files have to be commited to VCS or AS will not be able to import project on another machine:

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

Solution

  • I suggest you add all the files listed above to .hgignore except for the build.gradle and settings.gradle. The files in .idea directory are generated automatically by Android Studio and you shouldn't track them, or manually edit. I don't think you will ever need to edit gradlew or gradlew.bat so you can ingore them also. You can add gradle.properties and gradle-wrapper.properties later, when you will need to change the default versions (personally, I've these two to ignore also).