aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/index/decoder.go
Commit message (Collapse)AuthorAgeFilesLines
* *: Small fixes to remove linter warningsPaulo Gomes2024-06-291-1/+0
| | | | Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* plumbing: Add link to index-format docsAlexander Block2024-04-091-0/+2
|
* plumbing: Properly support skipping of non-mandatory extensionsAlexander Block2024-04-061-8/+30
| | | | | | | | | Before this, go-git would prematurely bail out of extensions processing when an unknown extension was encountered. This had two issues: 1. It did not account for mandatory (lower case header) extensions 2. It did not properly update the calculated hash, leading to an "invalid checksum" error.
* plumbing: Properly detect EOF when reading index extensionsAlexander Block2024-04-051-34/+36
| | | | | | | | | Before this, go-git was relying on the peeked header to not include a valid 4 char string header. While doing this, it did not differentiate between the errournously read final hash and an unknown extension. This made it impossible to properly skip unknown optional extensions while detecting EOF early enough.
* *: Remove use of deprecated io/utilPaulo Gomes2023-05-111-2/+2
| | | | Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* *: Support variable length plumbing.HashPaulo Gomes2023-03-081-2/+1
| | | | | | | | | | | | The variable length for plumbing.Hash is defined at build time, blocked by tag sha256. This approach was a trade-off between keeping backwards compatibility while making progress towards supporting SHA256 with a small amount of changes. Relates to the SHA256 implementation, defined in #706. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* sha1: Add collision resistent implementationPaulo Gomes2022-11-251-3/+3
| | | | | | | | | | | | | | | | | | | Implement the same SHA1 collision resistent algorithm used by both the Git CLI and libgit2. Only commits with input that match the unavoidable bit conditions will be further processed, which will result in different hashes. Which is the same behaviour experienced in the Git CLI and Libgit2. Users can override the hash algorithm used with: hash.RegisterHash(crypto.SHA1, sha1.New) xref links: https://github.com/libgit2/libgit2/pull/4136/commits/2dfd1294f7a694bfa9e864a9489ae3cb318a5ed0 https://github.com/git/git/commit/28dc98e343ca4eb370a29ceec4c19beac9b5c01e Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* Minor linter fixesOleg Kovalov2020-07-061-1/+1
|
* fix goreportcard warningsOleg Kovalov2020-07-011-1/+3
|
* *: migration from gopkg to go modulesMáximo Cuadros2020-03-101-2/+2
|
* plumbing: format/index perf, buffered reads, reflection removalArran Walker2019-04-211-18/+19
| | | | | | | | | | Large performance increase by buffering reads. There were a few instances where binary.Read() would end up using reflection on &plumbing.Hash, rather than treating it as a byte slice. This has now been resolved. Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
* plumbing: format/index: support for EOIE extension, by default on git v2.2.0Máximo Cuadros2018-11-191-0/+25
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* all: remove extra 's' in "mismatch"Jongmin Kim2018-09-261-1/+1
| | | | Signed-off-by: Jongmin Kim <jmkim@pukyong.ac.kr>
* all: simplificationferhat elmas2017-11-291-7/+4
| | | | | | | | | | - no length for map initialization - don't check for boolean/error return - don't format string - use string method of bytes buffer instead of converting bytes to string - use `strings.Contains` instead of `strings.Index` - use `bytes.Equal` instead of `bytes.Compare`
* plumbing: index, Entries converted in a slice of pointersMáximo Cuadros2017-04-261-1/+1
|
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-071-2/+2
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* documentation changesMáximo Cuadros2017-01-311-2/+3
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-301-2/+2
|
* Fix some typos in plumbing docs (#244)Sergio Arbeo2017-01-301-1/+1
|
* format/index: keep time.Time as zero, when decoded value is 0Máximo Cuadros2017-01-281-2/+9
|
* new plumbing package (#118)Máximo Cuadros2016-11-081-0/+446
* plumbing: now core was renamed to core, and formats and clients moved inside