{% extends "base.html" %} {% import "repo_tabs.html" as m %} {% block title %}Conflicts ยท {{ repo.owner }}/{{ repo.name }}{% endblock %} {% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %} {% block tabs %}{% call m::tabs(repo, "conflicts") %}{% endblock %} {% block mainclass %} class="wide"{% endblock %} {% block content %}

Conflicts {{ conflicts.len() }}

{% if conflicts.is_empty() %}

No bookmark carries a conflict. Conflicts are values in Oxygen: when two changes disagree, the state records both sides and any collaborator can push a resolution.

{% else %} {% for c in conflicts %}
{{ c.bookmark }} {{ c.path }} {{ c.kind }}
{% if !c.contributors.is_empty() %}

Sides from: {% for x in c.contributors %}{{ x.short }} {% endfor %}

{% endif %} {% if let Some(text) = c.marked %}
{{ text }}
{% endif %} {% if c.kind.starts_with("name:") && repo.can(crate::auth::Access::Write) %}

choose which to keep

{% endif %} {% if c.marked.is_some() && repo.can(crate::auth::Access::Write) %}

resolve region by region or edit the marked file

{% endif %}

Or resolve from a client: oxy bookmark switch {{ c.bookmark }}, edit the file, oxy resolve, oxy commit, oxy push.

{% endfor %} {% endif %} {% endblock %}