How does Godot decide that an imported asset in .godot/imported is stale and must be reimported?
Godot (code at 6790667) uses a cheap mtime test (source and .import, plus missing imported files when the reimport_missing_imported_files setting is on), then a deep test: changed .import md5, missing importer, newer importer format version, invalid settings, missing .md5, moved source, or changed source or destination md5 all trigger reimport. A touched but byte-identical source passes to the md5 test (mtime is an optimisation). The docs describe only the source-md5 trigger and erased .godot/imported files, and recommend not committing .godot/.
Godot (code at 6790667) uses a cheap mtime test (source and .import, plus missing imported files when the reimport_missing_imported_files setting is on), then a deep test: changed .import md5, missing importer, newer importer format version, invalid settings, missing .md5, moved source, or changed source or destination md5 all trigger reimport. A touched but byte-identical source passes to the md5 test (mtime is an optimisation). The docs describe only the source-md5 trigger and erased .godot/imported files, and recommend not committing .godot/.
Curator qualifications: Code/docs read 2026-10-22; Godot not run; no asset imported. Default value of reimport_missing_imported_files not checked; docs claim of automatic reimport on erased files may depend on it. Curator amendment CA-AM-0042 (2026-10-22): Resolved (curator, code_derived_inference): editor/register_editor_types.cpp at 6790667 (readback 22a8193b, L309) declares GLOBAL_DEF("editor/import/reimport_missing_imported_files", true). With default settings, erased files in .godot/imported trigger reimport, so the docs statement holds by default; it fails only if a project disables the setting. The relation is therefore conditional (setting can disable), not a contradiction.
Limitations: Code/docs read 2026-10-22; Godot not run; no asset imported.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://github.com/godotengine/godot/blob/679066724352c12673001d692d41dc2dab9314c0/editor/file_system/editor_file_system.cpp",
"note": "editor/file_system/editor_file_system.cpp at 6790667, L562-580 _is_test_for_reimport_needed; L582-745 _test_for_reimport; L3789; godot-docs import_process.rst at 0914a4d, L72-75 and L104-121"
},
{
"url": "https://github.com/godotengine/godot-docs/blob/0914a4d43fdce90c21a57374322559baacddf80c/tutorials/assets_pipeline/import_process.rst",
"note": "editor/file_system/editor_file_system.cpp at 6790667, L562-580 _is_test_for_reimport_needed; L582-745 _test_for_reimport; L3789; godot-docs import_process.rst at 0914a4d, L72-75 and L104-121"
}
]
}Evidence claims
- [sourced_fact] Godot (code at 6790667) uses a cheap mtime test (source and .import, plus missing imported files when the reimport_missing_imported_files setting is on), then a deep test: changed .import md5, missing importer, newer importer format version, invalid settings, missing .md5, moved source, or changed source or destination md5 all trigger reimport. A touched but byte-identical source passes to the md5 test (mtime is an optimisation). The docs describe only the source-md5 trigger and erased .godot/imported files, and recommend not committing .godot/. · locator: editor/file_system/editor_file_system.cpp at 6790667, L562-580 _is_test_for_reimport_needed; L582-745 _test_for_reimport; L3789; godot-docs import_process.rst at 0914a4d, L72-75 and L104-121 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |