Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export async function getAheadBehind(
repository: Repository,
range: string
): Promise {
// `--left-right` annotates the list of commits in the range with which side
// they're coming from. When used with `--count`, it tells us how many
// commits we have from the two different sides of the range.
const args = ['rev-list', '--left-right', '--count', range, '--']
const result = await git(args, repository.path, 'getAheadBehind', {
expectedErrors: new Set([GitError.BadRevision]),
})
// This means one of the refs (most likely the upstream branch) no longer
// exists. In that case we can't be ahead/behind at all.
if (result.gitError === GitError.BadRevision) {
return null
}
const stdout = result.stdout
const pieces = stdout.split('\t')
if (pieces.length !== 2) {
return null
}
const ahead = parseInt(pieces[0], 10)
if (isNaN(ahead)) {
export async function getAheadBehind(
repository: Repository,
range: string
): Promise {
// `--left-right` annotates the list of commits in the range with which side
// they're coming from. When used with `--count`, it tells us how many
// commits we have from the two different sides of the range.
const args = ['rev-list', '--left-right', '--count', range, '--']
const result = await git(args, repository.path, 'getAheadBehind', {
expectedErrors: new Set([GitError.BadRevision]),
})
// This means one of the refs (most likely the upstream branch) no longer
// exists. In that case we can't be ahead/behind at all.
if (result.gitError === GitError.BadRevision) {
return null
}
const stdout = result.stdout
const pieces = stdout.split('\t')
if (pieces.length !== 2) {
return null
}
const ahead = parseInt(pieces[0], 10)
if (isNaN(ahead)) {
return null
}
const behind = parseInt(pieces[1], 10)
if (isNaN(behind)) {
return 'A submodule points to a location which does not exist.'
case DugiteError.InvalidSubmoduleSHA:
return 'A submodule points to a commit which does not exist.'
case DugiteError.LocalPermissionDenied:
return 'Permission denied.'
case DugiteError.InvalidMerge:
return 'This is not something we can merge.'
case DugiteError.InvalidRebase:
return 'This is not something we can rebase.'
case DugiteError.NonFastForwardMergeIntoEmptyHead:
return 'The merge you attempted is not a fast-forward, so it cannot be performed on an empty branch.'
case DugiteError.PatchDoesNotApply:
return 'The requested changes conflict with one or more files in the repository.'
case DugiteError.BranchAlreadyExists:
return 'A branch with that name already exists.'
case DugiteError.BadRevision:
return 'Bad revision.'
case DugiteError.NotAGitRepository:
return 'This is not a git repository.'
case DugiteError.ProtectedBranchForcePush:
return 'This branch is protected from force-push operations.'
case DugiteError.ProtectedBranchRequiresReview:
return 'This branch is protected and any changes requires an approved review. Open a pull request with changes targeting this branch instead.'
case DugiteError.PushWithFileSizeExceedingLimit:
return "The push operation includes a file which exceeds GitHub's file size restriction of 100MB. Please remove the file from history and try again."
case DugiteError.HexBranchNameRejected:
return 'The branch name cannot be a 40-character string of hexadecimal characters, as this is the format that Git uses for representing objects.'
case DugiteError.ForcePushRejected:
return 'The force push has been rejected for the current branch.'
case DugiteError.InvalidRefLength:
return 'A ref cannot be longer than 255 characters.'
case DugiteError.CannotMergeUnrelatedHistories: