Git
[git] says which branch conversations start from, how generated branch names
are prefixed, and how commits are attributed (Branches).
[git]
base_branch = "main"
| Key | Meaning | Default |
|---|---|---|
base_branch | The branch new conversations start from: a local branch (main) or a remote-tracking one (origin/main). Written onto a conversation at its first turn, then kept. | unset: asked |
branch_prefix | Put before every generated branch name. Empty, or one or more branch name parts each ending in / (team/heph/). A name you give with /branch is used as you give it. | heph/ |
attribution | A trailer added to every commit heph makes, placed where your trailer.* configuration says. Not added again when the message already has it. Empty means none. | none |
The project file's value wins for each key it sets. base_branch belongs in the
project file: a project's default branch is a fact about the project, and the
team that checks in .heph/config.toml shares it.
Branch name prefix
Generated names default to heph/wrap-lines. Set a different prefix in either
config file:
[git]
branch_prefix = "team/"
This produces names such as team/wrap-lines. A nonempty prefix must end in /
and contain valid git branch name components; nested prefixes such as
users/jb/ work too. To disable the prefix:
[git]
branch_prefix = ""
This produces names such as wrap-lines. An empty project value also overrides
a nonempty user value; omitting the key keeps the user's setting, or the heph/
default if neither file sets it.
The prefix applies only when heph generates a new branch name. It does not
rename a branch already chosen for a conversation, and /branch fix/pager-wrap
uses exactly fix/pager-wrap, regardless of the configured prefix. Collision
suffixes (-2, -3, ...) still apply with any prefix, including none.
An unknown key in [git] is an error, as in every section heph reads.