21 lines
594 B
TypeScript
21 lines
594 B
TypeScript
import type { GitUpstreamStatus } from './git-status-types'
|
|
|
|
export function upstreamOnlyCommitsArePatchEquivalent(cherryMarkOutput: string): boolean {
|
|
const lines = cherryMarkOutput
|
|
.split(/\r?\n/)
|
|
.map((line) => line.trim())
|
|
.filter(Boolean)
|
|
return lines.length > 0 && lines.every((line) => line.startsWith('='))
|
|
}
|
|
|
|
export function shouldForcePushWithLeaseForUpstream(
|
|
status: GitUpstreamStatus | undefined
|
|
): boolean {
|
|
return (
|
|
status?.hasUpstream === true &&
|
|
status.ahead > 0 &&
|
|
status.behind > 0 &&
|
|
status.behindCommitsArePatchEquivalent === true
|
|
)
|
|
}
|