  Commit messages record code changes (e.g., feature modifications and bug
repairs) in natural language, and are useful for program comprehension. Due to
the frequent updates of software and time cost, developers are generally
unmotivated to write commit messages for code changes. Therefore, automating
the message writing process is necessitated. Previous studies on commit message
generation have been benefited from generation models or retrieval models, but
the code structure of changed code, i.e., AST, which can be important for
capturing code semantics, has not been explicitly involved. Moreover, although
generation models have the advantages of synthesizing commit messages for new
code changes, they are not easy to bridge the semantic gap between code and
natural languages which could be mitigated by retrieval models. In this paper,
we propose a novel commit message generation model, named ATOM, which
explicitly incorporates the abstract syntax tree for representing code changes
and integrates both retrieved and generated messages through hybrid ranking.
Specifically, the hybrid ranking module can prioritize the most accurate
message from both retrieved and generated messages regarding one code change.
We evaluate the proposed model ATOM on our dataset crawled from 56 popular Java
repositories. Experimental results demonstrate that ATOM increases the
state-of-the-art models by 30.72% in terms of BLEU-4 (an accuracy measure that
is widely used to evaluate text generation systems). Qualitative analysis also
demonstrates the effectiveness of ATOM in generating accurate code commit
messages.
