static/refcache.json is an auto-generated file. Resolving conflicts requires
first taking the integration branch's side, finishing the merge/rebase, then
running npm run fix:refcache to restore any URLs unique to the active branch.
Prerequisites
If the current branch has a merge or rebase in progress, then skip the rest of this section and jump to Preparation.
The current branch must be clean (git status --short). If not clean, offer to
run git stash or git commit to clean it up, or stop.
If $ARGUMENTS is a PR number, then check out the PR branch with:
gh pr checkout $ARGUMENTS.
Preparation
At this point, we are ready to resolve the conflicts in the active branch:
-
Determine the integration reference (
$BASE_BRANCH) and fetch it:- If an
upstreamremote exists:git fetch upstream, useupstream/main. - Otherwise:
git fetch origin, useorigin/main.
- If an
-
If merge or rebase is in progress (
git status), skip this step. Otherwise, ask the user whether to rungit merge $BASE_BRANCHorgit rebase $BASE_BRANCH, then run it. -
If there are no conflicts: stop, we are done.
-
Conflicts other than
static/refcache.json: resolve them with the user. -
If no
static/refcache.jsonconflict remains: stop, we are done. Otherwise, proceed to Resolve.
Resolve
-
Check out the
$BASE_BRANCHversion ofstatic/refcache.json. Assumes the active branch is being rebased/merged from$BASE_BRANCH, not the other way around:Operation Command Rebase of active branch onto $BASE_BRANCHgit checkout --ours static/refcache.jsonMerge of $BASE_BRANCHinto active branchgit checkout --theirs static/refcache.json -
Stage the resolved files, then continue:
- Rebase:
git add static/refcache.json && git rebase --continue - Merge:
git add static/refcache.json && git commit --no-edit - If other files were resolved in Preparation step 4,
git addthose too before continuing.
- Rebase:
-
Rebase only: for each subsequent rebase stop that conflicts on
static/refcache.json, repeat Resolve steps 1–2. If other paths are also conflicted on that stop, run Preparation step 4 first. -
Run
npm run fix:refcacheonce, after the entire rebase/merge completes. Note: this runs a full Hugo build and link check — requires network, installed npm dependencies, and populated submodules; can take several minutes. -
Commit the changes, if any:
git add static/refcache.json git diff --cached --quiet static/refcache.json || \ git commit -m "Refresh refcache after resolving conflicts" -
Push:
- Merge:
git push - Rebase:
git push --force-with-lease
- Merge: