| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
plumbing: object, make renames diff default
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| | |
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
|
|\ \
| |/
|/| |
plumbing: transport, fix handling of empty adv-refs on upload-pack
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| | |
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>
|
|\ \
| | |
| | | |
git.LogOptions: add `PathFilter func(string) bool`
|
| |/
| |
| |
| |
| |
| | |
keep NewCommitFileIterFromIter for compatibilty for now
Signed-off-by: Saeed Rasooli <saeed.gnu@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Andrew Thornton <art27@cantab.net>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the British TZ the following time:
```
1579639200 +0100
```
will be erroneously parsed as being with the GMT TZ.
This leads to multiple errors with GPG validation.
This PR fixes this by using the provided TZ information to
create a FixedZone and sets that as the TZ
Signed-off-by: Andrew Thornton <art27@cantab.net>
|
|
|
|
| |
Signed-off-by: Oleksandr Redko <oleksandr.red+github@gmail.com>
|
|
|
|
| |
Signed-off-by: Stuart Jansen <sjansen@buscaluz.org>
|
|\
| |
| | |
feat: improve patch delta performance
|
| |
| |
| |
| | |
Signed-off-by: Nao YONASHIRO <owan.orisano@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nao YONASHIRO <owan.orisano@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nao YONASHIRO <owan.orisano@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nao YONASHIRO <owan.orisano@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: knqyf263 <knqyf263@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: knqyf263 <knqyf263@gmail.com>
|
|/
|
|
| |
Signed-off-by: knqyf263 <knqyf263@gmail.com>
|
|
|
|
|
|
|
| |
Since we don't check the value anyway, as it can't possibly be anything but nil.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 293e70fbceb5c81f33a96d5705f10785c6063db9)
|
|
|
|
|
|
|
| |
No need to convert these values, they're already of the right type.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit a1d8a7ac8bd0e4aff0f27dbb8bb37b8bd13a1346)
|
|
|
|
|
|
|
| |
Just a bit easier to read, in my opinion.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 91d314ce8f13eff06fd4af8b869cee5a3e2ab014)
|
|
|
|
|
| |
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 047bb4f6d0657389ddd4ca3230ff3bee08d66a6b)
|
|
|
|
|
|
|
|
|
|
| |
When we assign a value to err, make sure to also check for it being nil
afterwards. If those were intentionally unchecked, we should remove the
assignment in the first place. Those checks certainly never harm, but please
review thoroughly and let me know.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 19d6f42a4d814a50bd262fbb69a9b670db9756a2)
|
|
|
|
|
|
|
|
|
|
| |
- Added missing error handling around encodeCommitData and prevented shadowing
err.
- Removed tautological error checks.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 7d76176416551fc21d98bc17768d158a82281406)
|
|
|
|
|
|
|
|
| |
- Use append instead of ranged for loop
- Simpler bool comparison
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
(cherry picked from commit 3918d0e1b73f5e59a8c93e2b5ae99295cef26cf9)
|
|
|
|
| |
Signed-off-by: JACQUES Francois <Francois.JACQUES@murex.com>
|
|
|
|
|
|
| |
Just a few simple, nit-picky typo fixes.
Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two problems are fixed:
- Buffers are not returned to the pool in the case of errors.
- Per https://golang.org/pkg/bytes/#Buffer.Bytes, the slice returned
from bytes.Buffer.Bytes() is only valid until the next modification
of the buffer, so it must be copied before the buffer is returned to the pool.
Running `go test -race` detected the following:
```
==================
WARNING: DATA RACE
Write at 0x00c000224020 by goroutine 15:
bytes.(*Buffer).WriteByte()
/usr/local/Cellar/go/1.11.5/libexec/src/bytes/buffer.go:271 +0xc8
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.diffDelta()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/diff_delta.go:95 +0x505
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.getDelta()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/diff_delta.go:60 +0x4ae
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).tryToDeltify()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:309 +0x398
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).walk()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:262 +0x33b
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).ObjectsToPack.func1()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:70 +0x6a
Previous read at 0x00c000224020 by goroutine 8:
runtime.slicecopy()
/usr/local/Cellar/go/1.11.5/libexec/src/runtime/slice.go:221 +0x0
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.getDelta()
vendor/gopkg.in/src-d/go-git.v4/plumbing/memory.go:53 +0x5e2
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).tryToDeltify()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:309 +0x398
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).walk()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:262 +0x33b
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).ObjectsToPack.func1()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:70 +0x6a
Goroutine 15 (running) created at:
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).ObjectsToPack()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:69 +0x761
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*Encoder).Encode()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go:52 +0xb1
vendor/gopkg.in/src-d/go-git%2ev4.pushHashes.func1()
vendor/gopkg.in/src-d/go-git.v4/remote.go:1026 +0x102
Goroutine 8 (finished) created at:
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*deltaSelector).ObjectsToPack()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go:69 +0x761
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile.(*Encoder).Encode()
vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go:52 +0xb1
vendor/gopkg.in/src-d/go-git%2ev4.pushHashes.func1()
vendor/gopkg.in/src-d/go-git.v4/remote.go:1026 +0x102
==================
```
Signed-off-by: Ed Bardsley <ewb@uber.com>
|
|\
| |
| | |
Create merge-base feature
|
| |
| |
| |
| | |
Signed-off-by: David Pordomingo <David.Pordomingo.F@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Filip Navara <filip.navara@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Filip Navara <filip.navara@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Filip Navara <filip.navara@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Filip Navara <filip.navara@gmail.com>
|
|\ \ |
|