问题
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
回答1:
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).
回答2:
This is what I ended up with for gradle based Android Studio (1.5) projects:
syntax: glob
*.iml
.gradle
.idea/dictionaries
.idea/libraries
.idea/tasks.xml
.idea/workspace.xml
build
gen
local.properties
I think this is a very complete list.
The only questionable option imho is whether you ignore *.iml
files or not.
They duplicate information from build.gradle
, are automatically generated and constantly updated by Android Studio, but on the other hand new developers will need to "Import project" instead of "Open an existing Android Studio project" if you decide not to track them.
Contrary to the other answer, I would strongly recommend checking all the gradle wrapper files into VCS.
The wrapper's purpose is to bootsrap the installation of gradle.
If you for example want to set up automatic builds, you only need to check out the project, create local.properties
or corresponding environment variables and execute gradlew assemble
.
The build system will then automatically install the gradle version specified in your gradle-wrapper.properties
to perform the assemble
task. This is valuable information to share.
Also check this official JetBrains Support article: https://intellij-support.jetbrains.com/hc/en-us/articles/206827587-How-to-manage-projects-under-Version-Control-Systems
回答3:
By dint of .ignore plugin you can generate .hgignore
just in two clicks. Open the context menu on a root folder, select 'New >> .ignore file >> .hgignore'. Then for Android Studio project simply tick the checkboxes (templates) listed below:
- Android
- Gradle (optional)
- JetBrains
- AppEngine (optional)
Add syntax: glob
to the top of the generated file.
回答4:
IntelliJ IDEA mercurial .hgignore file for regular gradle / maven java multi project including wrappers (wrappers also should be committed)
syntax: regexp
.gradle/*
.idea/*
syntax: glob
.git/*
*/out/*
*/build/*
*/target/*
.DS_Store
*.iml
*.ipr
*.iws
*.log
来源:https://stackoverflow.com/questions/27311746/mercurial-hgignore-for-android-studio-projects