# Syncing with upstream (komikku-app/komikku) This Forgejo fork tracks [komikku-app/komikku](https://github.com/komikku-app/komikku) on GitHub. | Remote | URL | Branch | |--------|-----|--------| | `origin` | Your Forgejo instance | `main` | | `upstream` | `https://github.com/komikku-app/komikku.git` | `master` | Current divergence is recorded in [UPSTREAM_STATUS.md](../UPSTREAM_STATUS.md) (updated weekly by Forgejo Actions). ## Quick check ```sh ./scripts/check-upstream.sh ``` Write refreshed status files: ```sh ./scripts/check-upstream.sh --write ``` JSON only: ```sh ./scripts/check-upstream.sh --json ``` ## One-time setup If `upstream` is missing: ```sh git remote add upstream https://github.com/komikku-app/komikku.git git fetch upstream ``` ## Merge upstream into the fork 1. Commit or stash local work. 2. Update refs and inspect divergence: ```sh git fetch upstream git fetch origin ./scripts/check-upstream.sh git log --oneline main..upstream/master # incoming upstream commits git log --oneline upstream/master..main # fork-only commits ``` 3. Merge (recommended for shared `main`): ```sh git checkout main git merge upstream/master ``` Resolve conflicts, then: ```sh git add -A git commit # if merge was not auto-committed ``` 4. Push to Forgejo (never force-push `main` unless you intend to): ```sh git push origin main ``` ## Expected conflict areas Merges often conflict where the fork diverged from upstream: - `.github/workflows/*.yml` — upstream GitHub Actions vs fork Forgejo release workflow - `README.md` — fork-specific Forgejo / Obtainium notes - `i18n-kmk/.../de/strings.xml` — parallel translation edits - `data/src/main/sqldelight/tachiyomi/migrations/46.sqm` — schema migration numbering Keep fork-specific CI in `.forgejo/workflows/` and upstream CI in `.github/workflows/`; resolve workflow conflicts by keeping both sides where possible. ## Rebase alternative For a linear history on a private branch (not `main`): ```sh git checkout -b sync/upstream-$(date +%Y%m%d) git rebase upstream/master ``` Then test, merge the sync branch into `main`, and push. ## Automation Workflow: [`.forgejo/workflows/upstream_status.yml`](../.forgejo/workflows/upstream_status.yml) - Runs every Monday 06:00 UTC and on manual dispatch - Updates `UPSTREAM_STATUS.md` and `docs/upstream-status.json` - Opens or updates a single `upstream-sync` issue when more than 10 commits behind On a private Forgejo host, dynamic shields.io badges cannot read your repo; use `UPSTREAM_STATUS.md` or the JSON file instead.