Describe the file-level change without exposing raw patch transport headers.
(file: DiffFile)
| 250 | |
| 251 | /** Describe the file-level change without exposing raw patch transport headers. */ |
| 252 | function fileStatusLabel(file: DiffFile) { |
| 253 | if (file.isTooLarge) { |
| 254 | return "skipped large file"; |
| 255 | } |
| 256 | |
| 257 | if (file.isBinary) { |
| 258 | return "binary"; |
| 259 | } |
| 260 | |
| 261 | switch (file.metadata.type) { |
| 262 | case "new": |
| 263 | return file.isUntracked ? "untracked" : "new file"; |
| 264 | case "deleted": |
| 265 | return "deleted"; |
| 266 | case "rename-pure": |
| 267 | return "renamed"; |
| 268 | case "rename-changed": |
| 269 | return "renamed modified"; |
| 270 | case "change": |
| 271 | default: |
| 272 | return file.metadata.prevMode && file.metadata.prevMode !== file.metadata.mode |
| 273 | ? "mode changed" |
| 274 | : "modified"; |
| 275 | } |
| 276 | } |
| 277 | |
| 278 | /** Use an arrow label for renamed files so static output keeps important path metadata. */ |
| 279 | function fileDisplayPath(file: DiffFile) { |