aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* plumbing: object, commit.Parent() methodMáximo Cuadros2017-11-202-6/+19
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* plumbing/object: add Commit.FirstParentJosh Bleecher Snyder2017-08-031-0/+11
| | | | | | | | | | | | First parents are somewhat special in git. There's even a --first-parent flag to 'git log'. Add a helper method to look them up. This avoids boilerplate and spares the client from having to arrange for a handle to the Storer, which is stored in the unexported field Commit.s.
* *: windows support, some more fixes (#533)Manuel Carmona2017-08-035-7/+15
| | | | | | | | | | * fixed windows failed test: "134 FAIL: repository_test.go:340: RepositorySuite.TestPlainOpenBareRelativeGitDirFileTrailingGarbage" * fixed windows failed test: "143 FAIL: worktree_test.go:367: WorktreeSuite.TestCheckoutIndexOS" * fixed windows failed test: "296 FAIL: receive_pack_test.go:36: ReceivePackSuite.TearDownTest" * fixed windows failed test: "152 FAIL: worktree_test.go:278: WorktreeSuite.TestCheckoutSymlink"
* Merge pull request #526 from joshbetz/fix/filename-formMáximo Cuadros2017-08-023-2/+61
|\ | | | | Normalize filenames before comparing.
| * worktree: normalized string comparison testsMáximo Cuadros2017-08-022-1/+54
| |
| * Normalize filenames before comparing.Josh Betz2017-07-311-1/+7
| | | | | | | | | | | | | | | | | | Some multibyte characters can have multiple representations. Before comparing strings, we need to normalize them. In this case we're normalizing to normalized form C, but it shouldn't matter as long as both strings are normalized to the same form. Fixes https://github.com/src-d/go-git/issues/495
* | Merge pull request #532 from mcuadros/fix-shalloMáximo Cuadros2017-08-022-15/+44
|\ \ | | | | | | Remote.Clone fix clone of tags in shallow mode
| * | Remote.Clone fix clone of tags in shallow modeMáximo Cuadros2017-08-022-15/+44
|/ /
* | Merge pull request #531 from mcuadros/ref-nameMáximo Cuadros2017-08-027-39/+37
|\ \ | | | | | | plumbing: moved `Reference.Is*` methods to `ReferenceName.Is*`
| * | *: use the new API for ReferenceName.Is* methodsMáximo Cuadros2017-08-025-15/+13
| | |
| * | plumbing: moved `Reference.Is*` methods to `ReferenceName.Is*`Máximo Cuadros2017-08-022-24/+24
| | |
* | | Merge pull request #501 from smola/config-multiple-urlsMáximo Cuadros2017-08-0217-81/+219
|\ \ \ | |_|/ |/| | config: multiple values in RemoteConfig (URLs and Fetch)
| * | config: preserve option order on config marshallingSantiago M. Mola2017-08-017-24/+99
| | | | | | | | | | | | | | | Do not change order of options (e.g. in RemoteConfig) when serializing for any option whose value has not changed.
| * | format/config: add GoStringSantiago M. Mola2017-08-012-1/+32
| | | | | | | | | | | | This is more convenient for testing and debugging.
| * | config: multiple values in RemoteConfig (URLs and Fetch)Santiago M. Mola2017-08-0112-61/+93
| | | | | | | | | | | | | | | | | | | | | | | | * Change `URL string` to `URL []string` in `RemoteConfig`, since git allows multiple URLs per remote. See: http://marc.info/?l=git&m=116231242118202&w=2 * Fix marshalling of multiple fetch refspecs.
* | | Merge pull request #522 from devonbarrett/reuse-auth-#521Máximo Cuadros2017-07-292-8/+11
|\ \ \ | |_|/ |/| | reuse Auth method when recursing submodules, fixes #521
| * | reuse Auth method when recursing submodules, fixes #521Devon Barrett2017-07-292-8/+11
|/ /
* | transport: fix ssh override config, fixes #519v4.0.0-rc13Máximo Cuadros2017-07-282-5/+40
| |
* | Submodule.Update, add Auth to SubmoduleUpdateOption, fixes #520Máximo Cuadros2017-07-282-1/+3
| |
* | Merge pull request #516 from smola/revlist-perfMáximo Cuadros2017-07-281-1/+28
|\ \ | | | | | | revlist: ignore all objects reachable from ignored objects
| * | revlist: ignore all objects reachable from ignored objectsSantiago M. Mola2017-07-271-1/+28
| | | | | | | | | | | | | | | | | | | | | Usually we call revlist.Objects ignoring a set of commits. This is not enough to ignore everything reachable from such set, so we first get all objects reachable from the ignored set and then walk the tree again ignoring that new set.
* | | Merge pull request #515 from smola/reuse-packed-objectsMáximo Cuadros2017-07-2712-93/+493
|\ \ \ | |_|/ |/| | storage: reuse deltas from packfiles
| * | plumbing: add IsDelta method to ObjectTypeSantiago M. Mola2017-07-272-6/+8
| | | | | | | | | | | | | | | ObjectType.IsDelta is a convenience function to match both offset and reference delta types.
| * | storage: reuse deltas from packfilesSantiago M. Mola2017-07-2712-107/+491
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * plumbing: add DeltaObject interface for EncodedObjects that are deltas and hold additional information about them, such as the hash of the base object. * plumbing/storer: add DeltaObjectStorer interface for object storers that can return DeltaObject. Note that calls to EncodedObject will never return instances of DeltaObject. That requires explicit calls to DeltaObject. * storage/filesystem: implement DeltaObjectStorer interface. * plumbing/packfile: packfile encoder now supports reusing deltas that are already computed (e.g. from an existing packfile) if the storage implements DeltaObjectStorer. Reusing deltas boosts performance of packfile generation (e.g. on push).
| * | test: improve packfile.Encoder testsSantiago M. Mola2017-07-271-54/+68
| | | | | | | | | | | | | | | | | | | | | * Improve checks for encode/decode. * Make it easier to extend this test with more storage backends.
* | | Merge pull request #517 from smola/more-cache-reuseMáximo Cuadros2017-07-271-3/+4
|\ \ \ | |/ / |/| | filesystem: reuse cache for packfile iterator
| * | filesystem: reuse cache for packfile iteratorSantiago M. Mola2017-07-271-3/+4
|/ /
* | Merge pull request #514 from smola/use-cache-deltaMáximo Cuadros2017-07-276-113/+154
|\ \ | |/ |/| cache: reuse object cache for delta resolution, use LRU policy
| * plumbing/cache: change FIFO to LRU cacheSantiago M. Mola2017-07-274-91/+94
| |
| * storage/filesystem: reuse delta cacheSantiago M. Mola2017-07-272-11/+31
| | | | | | | | | | Reuse delta base object cache for packfile decoders across multiple instances.
| * plumbing/cache: use more explicit interfaceSantiago M. Mola2017-07-274-26/+44
|/ | | | | | * renamed Add to Put * Get returns a second bool value to indicate if there was hit or miss.
* Merge pull request #512 from mcuadros/idx-64bitsMáximo Cuadros2017-07-276-2/+123
|\ | | | | format: idxfile, support for >2Gb packfiles
| * format: idxfile, support for >2Gb packfilesMáximo Cuadros2017-07-276-2/+123
| |
* | Merge pull request #513 from mcuadros/worktree-fsMáximo Cuadros2017-07-279-89/+91
|\ \ | | | | | | worktree: expose underlying filesystem
| * | worktree: expose underlying filesystemMáximo Cuadros2017-07-269-89/+91
| |/
* | Merge pull request #511 from mcuadros/pull-ffMáximo Cuadros2017-07-273-6/+109
|\ \ | |/ |/| remote: pull refactor to match default behavior of cgit
| * remote: pull refactor to match default behaviourMáximo Cuadros2017-07-263-6/+109
|/
* Merge pull request #509 from mcuadros/ctx-mainMáximo Cuadros2017-07-268-66/+300
|\ | | | | *: package context support in Repository, Remote and Submodule
| * *: package context support in Repository, Remote and SubmoduleMáximo Cuadros2017-07-268-66/+300
| |
* | Merge pull request #510 from smola/refactor-idxfileMáximo Cuadros2017-07-2611-138/+318
|\ \ | |/ |/| packfile: create packfile.Index and reuse it
| * packfile: create packfile.Index and reuse itSantiago M. Mola2017-07-2611-138/+318
|/ | | | | | | | | | | | | | | There was an internal type (i.e. storage/filesystem.idx) to use as in-memory index for packfiles. This was not convenient to reuse in the packfile. This commit creates a new representation (format/packfile.Index) that can be converted to and from idxfile.Idxfile. A packfile.Index now contains the functionality that was scattered on storage/filesystem.idx and packfile.Decoder's internals. storage/filesystem now reuses packfile.Index instances and this also results in higher cache hit ratios when resolving deltas.
* Merge pull request #507 from mcuadros/ctxMáximo Cuadros2017-07-2514-42/+387
|\ | | | | transport: context package support allowing cancellation of any network operation
| * *: context.TODO()Máximo Cuadros2017-07-251-2/+3
| |
| * transport: context package supportMáximo Cuadros2017-07-2511-39/+187
| |
| * ioutil: Context and OnError helpersMáximo Cuadros2017-07-252-1/+197
| |
* | Merge pull request #499 from mcuadros/move-pullMáximo Cuadros2017-07-245-271/+271
|\ \ | | | | | | move Repository.Pull to Worktree.Pull
| * | move Repository.Pull to Worktree.PullMáximo Cuadros2017-07-245-271/+271
|/ /
* | Merge pull request #498 from mcuadros/fix-pushMáximo Cuadros2017-07-244-171/+152
|\ \ | |/ |/| remote: push, update remote refs on push
| * remote: push, update remote refs on pushMáximo Cuadros2017-07-224-171/+152
| |
* | Merge pull request #496 from lupine/490-no-tags-fetch-modeMáximo Cuadros2017-07-222-0/+18
|\ \ | |/ |/| Implement a NoTags mode for fetch that mimics git fetch --no-tags