[templates]commit_summary = '''separate(" ", builtin_change_id_with_hidden_and_divergent_info, format_short_commit_id(commit_id), separate(commit_summary_separator, branches, separate(" ", if(conflict, label("conflict", "(conflict)")), if(empty, label("empty", "(empty)")), if(description, description.first_line(), description_placeholder), ) ))''' commit_summary_no_branches = '''separate(" ", builtin_change_id_with_hidden_and_divergent_info, format_short_commit_id(commit_id), if(conflict, label("conflict", "(conflict)")), if(empty, label("empty", "(empty)")), if(description, description.first_line(), description_placeholder),)''' config_list = '''label(if(overridden, "overridden"), concat( if(overridden, "# "), name, "=", value, ),) ++ "\n"''' log = 'builtin_log_compact'op_log = 'builtin_op_log_compact'show = 'builtin_log_detailed' [template-aliases]builtin_log_oneline = '''if(root, builtin_log_root(change_id, commit_id), label(if(current_working_copy, "working_copy"), concat( separate(" ", builtin_change_id_with_hidden_and_divergent_info, if(author.email(), author.username(), email_placeholder), format_timestamp(committer.timestamp()), branches, tags, working_copies, git_head, format_short_commit_id(commit_id), if(conflict, label("conflict", "conflict")), if(empty, label("empty", "(empty)")), if(description, description.first_line(), description_placeholder), ) ++ "\n", ), ))'''builtin_log_compact = '''if(root, builtin_log_root(change_id, commit_id), label(if(current_working_copy, "working_copy"), concat( separate(" ", builtin_change_id_with_hidden_and_divergent_info, format_short_signature(author), format_timestamp(committer.timestamp()), branches, tags, working_copies, git_head, format_short_commit_id(commit_id), if(conflict, label("conflict", "conflict")), ) ++ "\n", separate(" ", if(empty, label("empty", "(empty)")), if(description, description.first_line(), description_placeholder), ) ++ "\n", ), ))'''builtin_log_comfortable = 'builtin_log_compact ++ "\n"''builtin_log_detailed' = '''concat( "Commit ID: " ++ commit_id ++ "\n", "Change ID: " ++ change_id ++ "\n", surround("Branches: ", "\n", separate(" ", local_branches, remote_branches)), surround("Tags: ", "\n", tags), "Author: " ++ format_detailed_signature(author) ++ "\n", "Committer: " ++ format_detailed_signature(committer) ++ "\n", "\n", indent(" ", if(description, description, description_placeholder ++ "\n")), "\n",)''' builtin_op_log_compact = '''if(root, builtin_op_log_root(id), label(if(current_operation, "current_operation"), concat( separate(" ", id.short(), user, format_time_range(time), ) ++ "\n", description.first_line() ++ "\n", if(tags, tags ++ "\n"), ), ))'''builtin_op_log_comfortable = 'builtin_op_log_compact ++ "\n"' 'builtin_log_root(change_id, commit_id)' = '''separate(" ", format_short_change_id(change_id), label("root", "root()"), format_short_commit_id(commit_id), branches)''' 'builtin_op_log_root(op_id)' = '''separate(" ", op_id.short(), label("root", "root()"),)''' description_placeholder = ''' label(if(empty, "empty ") ++ "description placeholder", "(no description set)")'''email_placeholder = 'label("email placeholder", "(no email set)")'name_placeholder = 'label("name placeholder", "(no name set)")'commit_summary_separator = 'label("separator", " | ")' # Hook points for users to customize the default templates:'format_short_id(id)' = 'id.shortest(8)''format_short_change_id(id)' = 'format_short_id(id)''format_short_commit_id(id)' = 'format_short_id(id)''format_short_signature(signature)' = ''' if(signature.email(), signature.email(), email_placeholder)''''format_detailed_signature(signature)' = ''' if(signature.name(), signature.name(), name_placeholder) ++ " <" ++ if(signature.email(), signature.email(), email_placeholder) ++ ">" ++ " (" ++ format_timestamp(signature.timestamp()) ++ ")"''''format_time_range(time_range)' = ''' time_range.start().ago() ++ label("time", ", lasted ") ++ time_range.duration()''''format_timestamp(timestamp)' = 'timestamp' # We have "hidden" override "divergent", since a hidden revision does not cause# change id conflicts and is not affected by such conflicts; you have to use the# commit id to refer to a hidden revision regardless.builtin_change_id_with_hidden_and_divergent_info = '''if(hidden, label("hidden", format_short_change_id(change_id) ++ " hidden" ), label(if(divergent, "divergent"), format_short_change_id(change_id) ++ if(divergent,"??") ))'''
[templates]
commit_summary = '''
separate(" ",
builtin_change_id_with_hidden_and_divergent_info,
format_short_commit_id(commit_id),
separate(commit_summary_separator,
branches,
separate(" ",
if(conflict, label("conflict", "(conflict)")),
if(empty, label("empty", "(empty)")),
if(description, description.first_line(), description_placeholder),
)
)
)
'''
commit_summary_no_branches = '''
separate(" ",
builtin_change_id_with_hidden_and_divergent_info,
format_short_commit_id(commit_id),
if(conflict, label("conflict", "(conflict)")),
if(empty, label("empty", "(empty)")),
if(description, description.first_line(), description_placeholder),
)
'''
config_list = '''
label(if(overridden, "overridden"),
concat(
if(overridden, "# "),
name,
"=",
value,
),
) ++ "\n"
'''
log = 'builtin_log_compact'
op_log = 'builtin_op_log_compact'
show = 'builtin_log_detailed'
[template-aliases]
builtin_log_oneline = '''
if(root,
builtin_log_root(change_id, commit_id),
label(if(current_working_copy, "working_copy"),
concat(
separate(" ",
builtin_change_id_with_hidden_and_divergent_info,
if(author.email(), author.username(), email_placeholder),
format_timestamp(committer.timestamp()),
branches,
tags,
working_copies,
git_head,
format_short_commit_id(commit_id),
if(conflict, label("conflict", "conflict")),
if(empty, label("empty", "(empty)")),
if(description, description.first_line(), description_placeholder),
) ++ "\n",
),
)
)
'''
builtin_log_compact = '''
if(root,
builtin_log_root(change_id, commit_id),
label(if(current_working_copy, "working_copy"),
concat(
separate(" ",
builtin_change_id_with_hidden_and_divergent_info,
format_short_signature(author),
format_timestamp(committer.timestamp()),
branches,
tags,
working_copies,
git_head,
format_short_commit_id(commit_id),
if(conflict, label("conflict", "conflict")),
) ++ "\n",
separate(" ",
if(empty, label("empty", "(empty)")),
if(description, description.first_line(), description_placeholder),
) ++ "\n",
),
)
)
'''
builtin_log_comfortable = 'builtin_log_compact ++ "\n"'
'builtin_log_detailed' = '''
concat(
"Commit ID: " ++ commit_id ++ "\n",
"Change ID: " ++ change_id ++ "\n",
surround("Branches: ", "\n", separate(" ", local_branches, remote_branches)),
surround("Tags: ", "\n", tags),
"Author: " ++ format_detailed_signature(author) ++ "\n",
"Committer: " ++ format_detailed_signature(committer) ++ "\n",
"\n",
indent(" ", if(description, description, description_placeholder ++ "\n")),
"\n",
)
'''
builtin_op_log_compact = '''
if(root,
builtin_op_log_root(id),
label(if(current_operation, "current_operation"),
concat(
separate(" ",
id.short(),
user,
format_time_range(time),
) ++ "\n",
description.first_line() ++ "\n",
if(tags, tags ++ "\n"),
),
)
)
'''
builtin_op_log_comfortable = 'builtin_op_log_compact ++ "\n"'
'builtin_log_root(change_id, commit_id)' = '''
separate(" ",
format_short_change_id(change_id),
label("root", "root()"),
format_short_commit_id(commit_id),
branches
)
'''
'builtin_op_log_root(op_id)' = '''
separate(" ",
op_id.short(),
label("root", "root()"),
)
'''
description_placeholder = '''
label(if(empty, "empty ") ++ "description placeholder", "(no description set)")'''
email_placeholder = 'label("email placeholder", "(no email set)")'
name_placeholder = 'label("name placeholder", "(no name set)")'
commit_summary_separator = 'label("separator", " | ")'
# Hook points for users to customize the default templates:
'format_short_id(id)' = 'id.shortest(8)'
'format_short_change_id(id)' = 'format_short_id(id)'
'format_short_commit_id(id)' = 'format_short_id(id)'
'format_short_signature(signature)' = '''
if(signature.email(), signature.email(), email_placeholder)'''
'format_detailed_signature(signature)' = '''
if(signature.name(), signature.name(), name_placeholder)
++ " <" ++ if(signature.email(), signature.email(), email_placeholder) ++ ">"
++ " (" ++ format_timestamp(signature.timestamp()) ++ ")"'''
'format_time_range(time_range)' = '''
time_range.start().ago() ++ label("time", ", lasted ") ++ time_range.duration()'''
'format_timestamp(timestamp)' = 'timestamp'
# We have "hidden" override "divergent", since a hidden revision does not cause
# change id conflicts and is not affected by such conflicts; you have to use the
# commit id to refer to a hidden revision regardless.
builtin_change_id_with_hidden_and_divergent_info = '''
if(hidden,
label("hidden",
format_short_change_id(change_id) ++ " hidden"
),
label(if(divergent, "divergent"),
format_short_change_id(change_id) ++ if(divergent,"??")
)
)
'''