{% extends "base.html" %} {% block title %}Sync — {{ project.name }} — Fossilrepo{% endblock %} {% block content %}

{{ project.name }}

{% include "fossil/_project_nav.html" %}
{# ── Upstream Fossil Sync ────────────────────────────────────────── #} {% if sync_configured %}

Upstream Sync

Configured
Remote URL
{{ fossil_repo.remote_url }}
Last synced
{% if fossil_repo.last_sync_at %}{{ fossil_repo.last_sync_at|timesince }} ago{% else %}Never{% endif %}
Local checkins
{{ fossil_repo.checkin_count }}
Repository size
{{ fossil_repo.file_size_bytes|filesizeformat }}
{% csrf_token %}
{% csrf_token %}
{% if result %}
{% if result.success %} {% if result.artifacts_received > 0 %}Pulled {{ result.artifacts_received }} new artifacts.{% else %}Already up to date.{% endif %} {% else %} Sync failed: {{ result.message }} {% endif %}
{% if result.message %}
{{ result.message }}
{% endif %}
{% endif %} {% else %} {# ── Upstream not configured ─────────────────────────────────────── #}

Configure Upstream Sync

Connect this repository to an upstream Fossil server to pull updates automatically.

{% csrf_token %}
{% if detected_remote %}

Auto-detected from repository: {{ detected_remote }}

{% else %}

Enter the URL of the upstream Fossil server (e.g. https://fossil-scm.org/home)

{% endif %}

What sync does:

  • Pulls new checkins, wiki pages, tickets, and forum posts from the remote
  • Runs automatically every 15 minutes via background task
  • You can also pull manually at any time
  • Your local data is never overwritten — only new artifacts are added
{% endif %} {# ── Git Mirrors ─────────────────────────────────────────────────── #}

Git Mirrors

Add Mirror
{% if mirrors %}
{% for mirror in mirrors %}
{# URL and direction badge #}
{{ mirror.git_remote_url }} {{ mirror.get_sync_direction_display }}
{# Detail line #}
{% if mirror.sync_mode == 'disabled' %}Disabled{% else %}{{ mirror.get_sync_mode_display }}{% endif %} {% if mirror.sync_mode != 'disabled' and mirror.sync_mode != 'on_change' %} {{ mirror.sync_schedule }} {% endif %} {{ mirror.get_auth_method_display }} {{ mirror.fossil_branch }} → {{ mirror.git_branch }}
{# Sync status #}
{% if mirror.last_sync_at %} Last sync: {{ mirror.last_sync_at|timesince }} ago {% if mirror.last_sync_status == 'success' %} {% elif mirror.last_sync_status == 'failed' %} {% elif mirror.last_sync_status %} ({{ mirror.last_sync_status }}) {% endif %} — {{ mirror.total_syncs }} total sync{{ mirror.total_syncs|pluralize:"es" }} {% else %} Never synced {% endif %}
{% if mirror.last_sync_message and mirror.last_sync_status == 'failed' %}
{{ mirror.last_sync_message|truncatechars:200 }}
{% endif %}
{# Action buttons #}
{% csrf_token %}
Edit Delete
{% endfor %}
{% else %}

No Git mirrors configured.

Mirror this Fossil repository to GitHub, GitLab, or any Git remote.

{% endif %}
{% endblock %}