{% extends "base.html" %} {% import "repo_tabs.html" as m %} {% block title %}Swimlanes of {{ target.label }} · {{ repo.owner }}/{{ repo.name }}{% endblock %} {% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %} {% block tabs %}{% call m::tabs(repo, "changes") %}{% endblock %} {% block mainclass %} class="wide"{% endblock %} {% block content %}

Swimlanes {{ target.label }} · {{ board.cards.len() }}{% if total > board.cards.len() %} newest of {{ total }}{% endif %} changes in {{ board.lanes }} lane{% if board.lanes != 1 %}s{% endif %}

Changes that do not depend on each other run in separate lanes, oldest on the left; an edge joins a change to what it depends on. There are no merge nodes: parallel work simply stays parallel. list view

{% if board.cards.is_empty() %}

No changes.

{% else %} {% if let Some(n) = proposal %}

This is the bookmark of proposal #{{ n }}: drag a change onto another to plan a squash or a rebase. The hub only writes the plan; your oxy or oxygen-vscode carries it out and signs it.

{% endif %}
{% for e in board.edges %}{% endfor %} {% for c in board.cards %} {{ c.short }} {{ c.title }} {{ c.short }} {{ c.title }} {% endfor %}
{% endif %} {% endblock %}