| 108 | // workdir differs from stage -> 'M' |
| 109 | // workdir same as stage -> ' ' |
| 110 | function worktreeCode(head: number, workdir: number, stage: number): StatusEntry["worktree"] { |
| 111 | if (workdir === 0 && stage === 0 && head === 1) return "D"; |
| 112 | if (workdir === 0 && stage > 0) return "D"; |
| 113 | if (head === 0 && stage === 0 && workdir > 0) return "?"; |
| 114 | // workdirStatus 2 means "differs from HEAD"; stageStatus 3 means |
| 115 | // "differs from HEAD but matches workdir" — so workdir == stage, |
| 116 | // nothing further to report on Y. |
| 117 | if (workdir === 2 && stage !== 3) return "M"; |
| 118 | return " "; |
| 119 | } |
| 120 | |
| 121 | function errorMessage(cause: unknown): string { |
| 122 | if (cause instanceof Error) return cause.message; |