| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
plumbing: object, make renames diff default
|
| |\ |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Add initial colored diff support
|
|/ / |
|
|\ \
| |/
|/| |
ci: fix CI, git compaitiblity
|
|/ |
|
|\
| |
| | |
storage/filesystem: dotgit, sanity check provided reference path
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On some operating systems, read() of a directory fd may actually succeed and
return garbage resembling on-disk contents. As a result, dotgit may return
successful from readReferenceFile() when it should in-fact not.
This fixes readReferenceFile() on FreeBSD.
Signed-off-by: Kyle Evans <kevans@FreeBSD.org>
|
|/
|
|
|
|
| |
Specifically, the problem demonstrated is that on some OS (e.g. FreeBSD),
read() on a directory will succeed. The current implementation will accept
that and return incorrect results, rather than rejecting the directory.
|
|\
| |
| | |
plumbing: detect renames by hash and similar content in diff tree
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit implements the rename detection algorithms used in the
JGit implementation.
Given a list of changes, additions and deletions are extracted and
matched in two ways:
- By exact hash content: all additions and deletions are grouped by
the content hash and paired with the best match based on the file
mode and file path. All the files that cannot be paired are kept
as regular deletions and additions.
- By similar content: a matrix of addition and deletion pairs with
all possible combinations is created and scored by how similar the
content is between both files as well as how similar the file path
is. The pairs with the best score and whose score is equal or
greater than a threshold are paired and turned into a rename.
All the files that cannot be paired are kept as regular deletions
and additions.
DiffTree and DiffTreeContext will not return the changes with renames
detected for compatibility reasons, although this will change in v6
so that detecting renames is the default behaviour.
A new function DiffTreeWithOptions has been added to configure the
parameters for the rename detection to control the score threshold,
the limit of renames and whether to use similar content detection in
the detection.
More information:
- https://github.com/eclipse/jgit/blob/master/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java
- https://github.com/eclipse/jgit/blob/master/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
- https://github.com/eclipse/jgit/blob/master/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityIndex.java
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
|\ \
| |/
|/| |
examples: config, Show how to save config changes
|
|/ |
|
|\
| |
| | |
Fix example's link in README.md
|
|/
|
| |
Fix example's link in README.md. It refers to the old project location.
|
|\
| |
| | |
Change the link of the storer docs
|
|/
|
|
|
| |
Change storer:
- from godoc.org
- to pkg.go.dev
|
|\
| |
| | |
plumbing: format, config.Merged to allow access to local and global config
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
...for reading and writing global (~/.git/config) and reading system (/etc/gitconfig) configs in addition to local repo config
|
|\ \
| | |
| | | |
ci: fix compatibility tests for master
|
|/ /
| |
| |
| | |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|\ \
| |/
|/| |
plumbing: transport, fix handling of empty adv-refs on upload-pack
|
| | |
|
|\ \
| | |
| | | |
Fix typo on gitsight reference
|
|/ / |
|
|\ \
| | |
| | | |
plumbing: transport server check for nil Packfile, fixes ref deletes
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Update COMPATIBILITY.md to reflect git binary usage for file protocol
|
|/ /
| |
| |
| | |
Signed-off-by: bufdev <bufdev-github@buf.build>
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
plumbing/object: avoid O(N^2) string building when decoding commit message
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Most commits have relatively small messages, so this was never
noticeable. However, there are some repositories that have
semi-automated messages that can get very large (e.g.
github.com/riscv/riscv-clang and its riscv-trunk branch), on the order
of 109k lines. Changing from string += to using a bytes.Buffer reduces
the time for Commit.Decode for that specific case from 35s to 74ms.
Signed-off-by: David Symonds <dsymonds@golang.org>
|
|\ \
| | |
| | | |
storage/filesystem: dotgit, unable to work with .git folder with temporal packfiles
|
| | |
| | |
| | |
| | |
| | |
| | | |
prefix and suffix. Fixes #1149
Signed-off-by: Yuichi Watanabe <yuichi.watanabe.ja@gmail.com>
|