gitdiff

package
v1.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2020 License: MIT Imports: 24 Imported by: 5

Documentation

Index

Constants

View Source
const BlobExcerptChunkSize = 20

BlobExcerptChunkSize represent max lines of excerpt

Variables

This section is empty.

Functions

This section is empty.

Types

type Diff

type Diff struct {
	NumFiles, TotalAddition, TotalDeletion int
	Files                                  []*DiffFile
	IsIncomplete                           bool
}

Diff represents a difference between two git trees.

func CommentAsDiff

func CommentAsDiff(c *models.Comment) (*Diff, error)

CommentAsDiff returns c.Patch as *Diff

func CommentMustAsDiff

func CommentMustAsDiff(c *models.Comment) *Diff

CommentMustAsDiff executes AsDiff and logs the error instead of returning

func GetDiffCommit

func GetDiffCommit(repoPath, commitID string, maxLines, maxLineCharacters, maxFiles int) (*Diff, error)

GetDiffCommit builds a Diff representing the given commitID.

func GetDiffRange

func GetDiffRange(repoPath, beforeCommitID, afterCommitID string, maxLines, maxLineCharacters, maxFiles int) (*Diff, error)

GetDiffRange builds a Diff between two commits of a repository. passing the empty string as beforeCommitID returns a diff from the parent commit.

func GetDiffRangeWithWhitespaceBehavior

func GetDiffRangeWithWhitespaceBehavior(repoPath, beforeCommitID, afterCommitID string, maxLines, maxLineCharacters, maxFiles int, whitespaceBehavior string) (*Diff, error)

GetDiffRangeWithWhitespaceBehavior builds a Diff between two commits of a repository. Passing the empty string as beforeCommitID returns a diff from the parent commit. The whitespaceBehavior is either an empty string or a git flag

func ParsePatch

func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*Diff, error)

ParsePatch builds a Diff object from a io.Reader and some parameters.

func (*Diff) LoadComments

func (diff *Diff) LoadComments(issue *models.Issue, currentUser *models.User) error

LoadComments loads comments into each line

type DiffFile

type DiffFile struct {
	Name               string
	OldName            string
	Index              int
	Addition, Deletion int
	Type               DiffFileType
	IsCreated          bool
	IsDeleted          bool
	IsBin              bool
	IsLFSFile          bool
	IsRenamed          bool
	IsSubmodule        bool
	Sections           []*DiffSection
	IsIncomplete       bool
	IsProtected        bool
}

DiffFile represents a file diff.

func (*DiffFile) GetTailSection added in v1.11.0

func (diffFile *DiffFile) GetTailSection(gitRepo *git.Repository, leftCommitID, rightCommitID string) *DiffSection

GetTailSection creates a fake DiffLineSection if the last section is not the end of the file

func (*DiffFile) GetType

func (diffFile *DiffFile) GetType() int

GetType returns type of diff file.

type DiffFileType

type DiffFileType uint8

DiffFileType represents the type of a DiffFile.

const (
	DiffFileAdd DiffFileType = iota + 1
	DiffFileChange
	DiffFileDel
	DiffFileRename
	DiffFileCopy
)

DiffFileType possible values.

type DiffLine

type DiffLine struct {
	LeftIdx     int
	RightIdx    int
	Type        DiffLineType
	Content     string
	Comments    []*models.Comment
	SectionInfo *DiffLineSectionInfo
}

DiffLine represents a line difference in a DiffSection.

func (*DiffLine) CanComment

func (d *DiffLine) CanComment() bool

CanComment returns whether or not a line can get commented

func (*DiffLine) GetBlobExcerptQuery added in v1.11.0

func (d *DiffLine) GetBlobExcerptQuery() string

GetBlobExcerptQuery builds query string to get blob excerpt

func (*DiffLine) GetCommentSide

func (d *DiffLine) GetCommentSide() string

GetCommentSide returns the comment side of the first comment, if not set returns empty string

func (*DiffLine) GetExpandDirection added in v1.11.0

func (d *DiffLine) GetExpandDirection() DiffLineExpandDirection

GetExpandDirection gets DiffLineExpandDirection

func (*DiffLine) GetLineTypeMarker

func (d *DiffLine) GetLineTypeMarker() string

GetLineTypeMarker returns the line type marker

func (*DiffLine) GetType

func (d *DiffLine) GetType() int

GetType returns the type of a DiffLine.

type DiffLineExpandDirection added in v1.11.0

type DiffLineExpandDirection uint8

DiffLineExpandDirection represents the DiffLineSection expand direction

const (
	DiffLineExpandNone DiffLineExpandDirection = iota + 1
	DiffLineExpandSingle
	DiffLineExpandUpDown
	DiffLineExpandUp
	DiffLineExpandDown
)

DiffLineExpandDirection possible values.

type DiffLineSectionInfo added in v1.11.0

type DiffLineSectionInfo struct {
	Path          string
	LastLeftIdx   int
	LastRightIdx  int
	LeftIdx       int
	RightIdx      int
	LeftHunkSize  int
	RightHunkSize int
}

DiffLineSectionInfo represents diff line section meta data

type DiffLineType

type DiffLineType uint8

DiffLineType represents the type of a DiffLine.

const (
	DiffLinePlain DiffLineType = iota + 1
	DiffLineAdd
	DiffLineDel
	DiffLineSection
)

DiffLineType possible values.

type DiffSection

type DiffSection struct {
	FileName string
	Name     string
	Lines    []*DiffLine
}

DiffSection represents a section of a DiffFile.

func (*DiffSection) GetComputedInlineDiffFor

func (diffSection *DiffSection) GetComputedInlineDiffFor(diffLine *DiffLine) template.HTML

GetComputedInlineDiffFor computes inline diff for the given line.

func (*DiffSection) GetLine

func (diffSection *DiffSection) GetLine(lineType DiffLineType, idx int) *DiffLine

GetLine gets a specific line by type (add or del) and file line number

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL