aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format
Commit message (Collapse)AuthorAgeFilesLines
* plumbing/format: idxfile, unsigned values are never < 0Christian Muehlhaeuser2019-07-291-4/+0
| | | | | Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com> (cherry picked from commit 047bb4f6d0657389ddd4ca3230ff3bee08d66a6b)
* *: added missing error checks in testsChristian Muehlhaeuser2019-07-291-0/+1
| | | | | | | | | | 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)
* *: fixed tautological error conditionsautological error conditionsChristian Muehlhaeuser2019-07-291-8/+6
| | | | | | | | | | - 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)
* Fix typos in commentsChristian Muehlhaeuser2019-07-212-3/+3
| | | | | | Just a few simple, nit-picky typo fixes. Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com>
* plumbing: format/packfile, Fix data race and resource leak.Ed Bardsley2019-06-032-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Remove unnecessary mmap usage from testsFilip Navara2019-05-071-6/+4
| | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
* Add doc.go for commitgraph packagesFilip Navara2019-05-073-0/+106
| | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
* Merge pull request #1136 from filipnavara/idxfile-nobufMáximo Cuadros2019-04-271-51/+28
|\ | | | | plumbing: format/idxfile, avoid creating temporary buffers to decode integers
| * plumbing: format/idxfile, avoid looking up the fanout mapping in the ↵Filip Navara2019-04-261-10/+7
| | | | | | | | | | | | iterator twice Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * plumbing: format/idxfile, save another 18% of time in genOffsetHash by not ↵Filip Navara2019-04-251-14/+11
| | | | | | | | | | | | using iterator and not loading CRC Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * plumbing: format/idxfile, avoid creating temporary buffers to decode integersFilip Navara2019-04-251-32/+15
| | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
* | plumbing: format/commitgraph, rename structs/fields to follow the terms used ↵Filip Navara2019-04-255-59/+59
| | | | | | | | | | | | by git more closely Signed-off-by: Filip Navara <navara@emclient.com>
* | plumbing: format/commitgraph, clean up error handlingFilip Navara2019-04-253-6/+4
|/ | | | Signed-off-by: Filip Navara <navara@emclient.com>
* Merge pull request #1130 from saracen/gitattributesMáximo Cuadros2019-04-248-0/+1043
|\ | | | | plumbing: format/gitattributes support
| * plumbing: format/gitattributes supportArran Walker2019-04-248-0/+1043
| | | | | | | | | | | | Implements gitattributes parsing, matching and attribute extraction. Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
* | Merge pull request #1128 from filipnavara/commitgraph-fmtMáximo Cuadros2019-04-245-0/+689
|\ \ | | | | | | plumbing: format/commitgraph, add APIs for reading and writing commit-graph files
| * | Remove debug print, fix large edge count calculation to make the reencoded ↵Filip Navara2019-04-242-3/+1
| | | | | | | | | | | | | | | | | | file binary identical Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Split OpenFileIndex into smaller functionsFilip Navara2019-04-242-32/+51
| | | | | | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Split Encoder into smaller functionsFilip Navara2019-04-242-55/+95
| | | | | | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Rename fixture tag to commit-graphFilip Navara2019-04-241-3/+3
| | | | | | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | plumbing: format/commitgraph, add APIs for reading and writing commit-graph ↵Filip Navara2019-04-245-0/+632
| | | | | | | | | | | | | | | | | | files Signed-off-by: Filip Navara <filip.navara@gmail.com>
* | | Merge pull request #1121 from filipnavara/small-deltasMáximo Cuadros2019-04-241-56/+126
|\ \ \ | |/ / |/| | plumbing: packfile, apply small object reading optimization also for delta objects
| * | Populate the offsetToType cache in the iterator even for the skipped objectsFilip Navara2019-04-241-0/+3
| | | | | | | | | | | | Signed-off-by: Filip Navara <navara@emclient.com>
| * | Better fix for the getObjectType problem in the iteratorFilip Navara2019-04-241-6/+9
| | | | | | | | | | | | Signed-off-by: Filip Navara <navara@emclient.com>
| * | Remove duplicate cache lookup in getObjectContent, it is already done in ↵Filip Navara2019-04-241-13/+0
| | | | | | | | | | | | | | | | | | FSObject Signed-off-by: Filip Navara <navara@emclient.com>
| * | Fix an error where getObjectType would seek in file and mess up the position ↵Filip Navara2019-04-241-7/+11
| | | | | | | | | | | | | | | | | | used by getNextObject in the subsequent statement Signed-off-by: Filip Navara <navara@emclient.com>
| * | Reduce indentationFilip Navara2019-04-231-7/+5
| | | | | | | | | | | | Signed-off-by: Filip Navara <navara@emclient.com>
| * | Add one more cache check to the iteratorFilip Navara2019-04-231-2/+12
| | | | | | | | | | | | Signed-off-by: Filip Navara <navara@emclient.com>
| * | Address PR feedbackFilip Navara2019-04-231-2/+2
| | | | | | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Rename functionsFilip Navara2019-04-231-7/+9
| | | | | | | | | | | | Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Avoid filling up the object cache from Packfile.GetByType with typ != ↵Filip Navara2019-04-231-17/+42
| | | | | | | | | | | | | | | | | | plumbing.AnyObject Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Get the buffer from pool in fillOFSDeltaObjectContent instead of creating ↵Filip Navara2019-04-221-1/+1
| | | | | | | | | | | | | | | | | | new one Signed-off-by: Filip Navara <filip.navara@gmail.com>
| * | Update commentFilip Navara2019-04-211-3/+3
| | | | | | | | | | | | Signed-off-by: Filip Navara <navara@emclient.com>
| * | plumbing: packfile, apply small object reading optimization also for delta ↵Filip Navara2019-04-201-23/+61
| | | | | | | | | | | | | | | | | | objects Signed-off-by: Filip Navara <navara@emclient.com>
* | | Merge pull request #1124 from saracen/packfile-scanner-improved-readerMáximo Cuadros2019-04-233-105/+143
|\ \ \ | |_|/ |/| | plumbing: packfile/scanner, readability/performance improvements, zlib pooling
| * | plumbing: packfile/scanner, readability/performance improvements, zlib poolingArran Walker2019-04-223-105/+143
| |/ | | | | | | Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
* | Merge pull request #1123 from saracen/object-storage-open-packfileMáximo Cuadros2019-04-231-0/+5
|\ \ | | | | | | filesystem: ObjectStorage, MaxOpenDescriptors option
| * | filesystem: ObjectStorage, MaxOpenDescriptors optionArran Walker2019-04-221-0/+5
| |/ | | | | | | | | | | | | | | The MaxOpenDescriptors option provides a middle ground solution between keeping all packfiles open (as offered by the KeepDescriptors option) and keeping none open. Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
* | Merge pull request #1126 from saracen/index-performance-improvementsMáximo Cuadros2019-04-221-18/+19
|\ \ | | | | | | plumbing: format/index perf, buffered reads, reflection removal
| * | 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: idxfile, avoid unnecessary building of reverse offset/hash mapFilip Navara2019-04-201-4/+26
|/ | | | Signed-off-by: Filip Navara <navara@emclient.com>
* packfile: get object size correctly for delta objectsJeremy Stribling2019-01-312-1/+27
| | | | Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
* plumbing/packfile: test UpdateObjectStorage empty packfile errorJavi Fontan2018-12-031-0/+14
| | | | Signed-off-by: Javi Fontan <jfontan@gmail.com>
* git: return better error message when packfile cannot be downloadedJavi Fontan2018-11-301-1/+7
| | | | | | | | Previously the error message when the connection was closed while fetching was "object not found" and was misleading. Now when the packfile size is 0 the error "unable to fetch packfile" is returned. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* plumbing: format/packfile, performance optimizations for reading large ↵Filip Navara2018-11-285-33/+89
| | | | | | commit histories (#963) Signed-off-by: Filip Navara <navara@emclient.com>
* Merge pull request #1025 from mcuadros/eoiev4.8.0Máximo Cuadros2018-11-194-4/+122
|\ | | | | plumbing: format/index: support for EOIE extension
| * plumbing: format/index: support for EOIE extension, by default on git v2.2.0Máximo Cuadros2018-11-194-4/+122
| | | | | | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* | Merge pull request #994 from epiclabs-io/fix-thin-packMáximo Cuadros2018-11-162-47/+95
|\ \ | | | | | | plumbing/format/packfile: Fix broken "thin" packfile support. Fixes #991
| * | plumbing/format/packfile: Added thin pack testJavier Peletier2018-11-121-0/+50
| | | | | | | | | | | | Signed-off-by: Javier Peletier <jm@epiclabs.io>
| * | plumbing/format/packfile: Fix broken "thin" packfile support. Fixes #991Javier Peletier2018-10-231-47/+45
| |/ | | | | | | Signed-off-by: Javier Peletier <jm@epiclabs.io>