Bookmarks
mesa.bookmarks manages bookmark pointers within a repository. See Versioning for how bookmarks fit into the change DAG.
list({ repo, ...query })- list bookmarks in a repocreate({ repo, name, change_id })- create a bookmark pointing at a changedelete({ repo, bookmark })- delete a bookmarkmove({ repo, bookmark, change_id })- move a bookmark to a different changemerge({ repo, target, source, delete_source?, strategy? })- mergesourcebookmark intotarget
Merging bookmarks
merge advances the target bookmark to include the history from source. The response tells you what kind of merge happened:
fast_forward— target was behind source; advanced without a new commitmerge_commit— histories diverged; a new merge commit was createdno_op— already up to date
strategy field:
auto(default) — fast-forward when possible, merge commit when histories divergemerge_commit— always create a merge commit, even when fast-forward is possible
Mesa Filesystem
The SDK provides a namespace for configuring and controlling Mesa. When you mount a filesystem viamesa.fs.mount(...), the resulting MesaFileSystem also includes:
fs.change.new({ repo, bookmark | changeId })fs.change.edit({ repo, bookmark | changeId })fs.bookmark.create({ repo, name })fs.bookmark.list({ repo })
Git Commands
mesa.git provides the following methods:
clone(url, path, branch?, commitId?, username?, password?)add(path, files)commit(path, message, author, email, allowEmpty?)push(path, username?, password?)pull(path, username?, password?)status(path)branches(path)createBranch(path, name)checkoutBranch(path, branch)deleteBranch(path, name)

