import { Blob } from './blob'; import { Repository } from './repository'; import { Tree } from './tree'; import { Strarray } from './str-array'; import { Index } from './index_'; import { DiffDelta } from './diff-delta'; import { DiffPerfdata } from './diff-perf-data'; import { DiffOptions } from './diff-options'; import { Buf } from './buf'; import { ConvenientPatch } from './convenient-patch'; export interface DiffFindOptions { version?: number; flags?: number; renameThreshold?: number; renameFromRewriteThreshold?: number; copyThreshold?: number; breakRewriteThreshold?: number; renameLimit?: number; } export namespace Diff { const enum DELTA { UNMODIFIED = 0, ADDED = 1, DELETED = 2, MODIFIED = 3, RENAMED = 4, COPIED = 5, IGNORED = 6, UNTRACKED = 7, TYPECHANGE = 8, UNREADABLE = 9, CONFLICTED = 10 } const enum FIND { BY_CONFIG = 0, RENAMES = 1, RENAMES_FROM_REWRITES = 2, COPIES = 4, COPIES_FROM_UNMODIFIED = 8, REWRITES = 16, BREAK_REWRITES = 32, AND_BREAK_REWRITES = 48, FOR_UNTRACKED = 64, ALL = 255, IGNORE_LEADING_WHITESPACE = 0, IGNORE_WHITESPACE = 4096, DONT_IGNORE_WHITESPACE = 8192, EXACT_MATCH_ONLY = 16384, BREAK_REWRITES_FOR_RENAMES_ONLY = 32768, REMOVE_UNMODIFIED = 65536 } const enum FLAG { BINARY = 1, NOT_BINARY = 2, VALID_ID = 4, EXISTS = 8 } const enum FORMAT { PATCH = 1, PATCH_HEADER = 2, RAW = 3, NAME_ONLY = 4, NAME_STATUS = 5 } const enum FORMAT_EMAIL_FLAGS { FORMAT_EMAIL_NONE = 0, FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER = 1 } const enum LINE { CONTEXT = 32, ADDITION = 43, DELETION = 45, CONTEXT_EOFNL = 61, ADD_EOFNL = 62, DEL_EOFNL = 60, FILE_HDR = 70, HUNK_HDR = 72, BINARY = 66 } const enum OPTION { NORMAL = 0, REVERSE = 1, INCLUDE_IGNORED = 2, RECURSE_IGNORED_DIRS = 4, INCLUDE_UNTRACKED = 8, RECURSE_UNTRACKED_DIRS = 16, INCLUDE_UNMODIFIED = 32, INCLUDE_TYPECHANGE = 64, INCLUDE_TYPECHANGE_TREES = 128, IGNORE_FILEMODE = 256, IGNORE_SUBMODULES = 512, IGNORE_CASE = 1024, INCLUDE_CASECHANGE = 2048, DISABLE_PATHSPEC_MATCH = 4096, SKIP_BINARY_CHECK = 8192, ENABLE_FAST_UNTRACKED_DIRS = 16384, UPDATE_INDEX = 32768, INCLUDE_UNREADABLE = 65536, INCLUDE_UNREADABLE_AS_UNTRACKED = 131072, FORCE_TEXT = 1048576, FORCE_BINARY = 2097152, IGNORE_WHITESPACE = 4194304, IGNORE_WHITESPACE_CHANGE = 8388608, IGNORE_WHITESPACE_EOL = 16777216, SHOW_UNTRACKED_CONTENT = 33554432, SHOW_UNMODIFIED = 67108864, PATIENCE = 268435456, MINIMAL = 536870912, SHOW_BINARY = 1073741824 } const enum STATS_FORMAT { STATS_NONE = 0, STATS_FULL = 1, STATS_SHORT = 2, STATS_NUMBER = 4, STATS_INCLUDE_SUMMARY = 8 } } export class Diff { /** * Directly run a diff between a blob and a buffer. * * */ static blobToBuffer(oldBlob?: Blob, oldAsPath?: string, buffer?: string, bufferAsPath?: string, opts?: DiffOptions, fileCb?: Function, binaryCb?: Function, hunkCb?: Function, lineCb?: Function): Promise; static fromBuffer(content: string, contentLen: number): Promise; static indexToWorkdir(repo: Repository, index?: Index, opts?: DiffOptions): Promise; static indexToIndex(repo: Repository, oldIndex: Index, newIndex: Index, opts?: DiffOptions): Promise; static treeToIndex(repo: Repository, oldTree?: Tree, index?: Index, opts?: DiffOptions): Promise; static treeToTree(repo: Repository, oldTree?: Tree, new_tree?: Tree, opts?: DiffOptions): Promise; static treeToWorkdir(repo: Repository, oldTree?: Tree, opts?: DiffOptions): Promise; static treeToWorkdirWithIndex(repo: Repository, oldTree?: Tree, opts?: DiffOptions): Promise; findSimilar(options?: DiffFindOptions): Promise; getDelta(idx: number): DiffDelta; getPerfdata(): Promise; numDeltas(): number; /** * Retrieve patches in this difflist * * */ patches(): Promise; merge(from: Diff): Promise; toBuf(format: Diff.FORMAT): Promise; }