aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #586 from keybase/strib/commit-preorder-seen-gh-masterMáximo Cuadros2017-09-125-15/+45
|\ | | | | plumbing: the commit walker can skip externally-seen commits
| * plumbing: the commit walker can skip externally-seen commitsJeremy Stribling2017-09-095-15/+45
| | | | | | | | | | | | | | | | | | | | When the revlist is computing the set of hashes needed to transfer, it doesn't need to walk over commits it has already processed. So, it can instruct the commit walker not to walk those commits by passing in its own `seen` map. For a 36K object repo, this brought the time for `revlist.Objects` down from 50s to 30s.
* | Merge pull request #587 from keybase/strib/skip-compression-gh-masterMáximo Cuadros2017-09-1110-42/+146
|\ \ | |/ |/| config: support a configurable, and turn-off-able, pack.window
| * config: support a configurable, and turn-off-able, pack.windowJeremy Stribling2017-09-1110-42/+146
|/ | | | | | | | | | | | | | | | | | | | One use of go-git is to transfer git data from a non-standard git repo (not stored in a file system, for example) to a "remote" backed by a standard, local .git repo. In this scenario, delta compression is not needed to reduce transfer time over the "network", because there is no network. The underlying storage layer has already taken care of the data tranfer, and sending the objects to local .git storage doesn't require compression. So this PR gives the user the option to turn off compression when it isn't needed. Of course, this results in a larger, uncompressed local .git repo, but the user can then run git gc or git repack on that repo if they care about the storage costs. Turning the pack window to 0 on reduces total push time of a 36K repo by 50 seconds (out of a pre-PR total of 3m26s).
* Merge pull request #585 from src-d/doc/upd-linlMáximo Cuadros2017-09-091-1/+1
|\ | | | | examples: update link to GoDoc in _examples/storage
| * Update README.mdAlexander2017-09-091-1/+1
|/ | | Update like to storage GoDoc
* Merge pull request #584 from erizocosmico/revert/revlist-no-revisit-ancestorsMáximo Cuadros2017-09-081-17/+3
|\ | | | | revert: revlist: do not revisit already visited ancestors
| * revert: revlist: do not revisit already visited ancestorsMiguel Molina2017-09-081-17/+3
|/ | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* plumbing/index: fix TestEncode in go 1.9Máximo Cuadros2017-09-071-1/+2
|
* travis: remove tip and add 1.9Máximo Cuadros2017-09-071-7/+2
|
* Merge pull request #582 from erizocosmico/perf/deltasMáximo Cuadros2017-09-073-56/+367
|\ | | | | packfile: improve performance of delta generation
| * packfile: small optimizations for findMatch and matchLengthMiguel Molina2017-09-072-16/+38
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
| * packfile: parallelize deltification of objects in groupsMiguel Molina2017-09-072-21/+31
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
| * packfile: use a modified version of JGit DeltaIndex and DeltaIndexScannerMiguel Molina2017-09-063-40/+286
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
| * packfile: slightly haster hash function for chunk-offset index keyMiguel Molina2017-09-062-11/+32
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
| * packfile: reuse delta indexes when possibleMiguel Molina2017-09-063-10/+22
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* | Merge pull request #583 from matjam/matjam-1Máximo Cuadros2017-09-071-1/+1
|\ \ | |/ |/| Minor fix to grammatical error in error message for ErrRepositoryNotExists
| * Minor fix to grammatical error in error message for ErrRepositoryNotExists.Nathan Ollerenshaw2017-09-061-1/+1
|/
* Merge pull request #580 from erizocosmico/perf/refs-iter-onceMáximo Cuadros2017-09-052-40/+73
|\ | | | | remote: iterate over references only once
| * remote: iterate over reference only onceMiguel Molina2017-09-052-40/+73
|/ | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* Merge pull request #579 from erizocosmico/perf/revlist-no-revisit-ancestorsMáximo Cuadros2017-09-051-11/+38
|\ | | | | revlist: do not visit again already visited parents
| * revlist: do not visit again already visited parentsMiguel Molina2017-09-051-11/+38
| | | | | | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* | Worktree.Add: Support Add deleted files, fixes #571 (#577)grunenwflorian2017-09-053-0/+43
|/
* Merge pull request #578 from erizocosmico/perf/reduce-gc-pressv4.0.0-rc15Máximo Cuadros2017-09-044-6/+33
|\ | | | | packfile: improve performance a little by reducing gc pressure
| * packfile: improve performance a little by reducing gc pressureMiguel Molina2017-09-044-6/+33
|/ | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* Merge pull request #576 from mcuadros/clone-tagsMáximo Cuadros2017-09-045-13/+57
|\ | | | | Repository.Clone added Tags option, and set by default AllTags
| * Repository.Clone added Tags option, and set by default AllTags as git doesMáximo Cuadros2017-09-043-6/+40
| |
| * Remote.Fetch Tags logic improvement and fix NoTagsMáximo Cuadros2017-09-042-7/+17
|/
* Merge pull request #573 from orirawlings/pushSidebandMáximo Cuadros2017-09-018-6/+118
|\ | | | | Add sideband support for push
| * Add sideband support for pushOri Rawlings2017-09-018-6/+118
| |
* | Merge pull request #572 from mcuadros/resetMáximo Cuadros2017-09-016-130/+277
|\ \ | |/ |/| Worktree.Reset refactor and Soft, Merge, Hard and Mixed modes
| * Worktree.Reset ignore untracked files on Merge modeMáximo Cuadros2017-09-016-130/+277
|/
* Merge pull request #569 from erizocosmico/fix/race-condition-dotgit-refsMáximo Cuadros2017-08-291-10/+15
|\ | | | | dotgit: avoid duplicated references returned by Refs
| * dotgit: avoid duplicated references returned by RefsMiguel Molina2017-08-291-10/+15
|/ | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* Merge pull request #567 from strib/avoid-revlist-when-deletingv4.0.0-rc14Máximo Cuadros2017-08-282-3/+48
|\ | | | | remote: avoid expensive revlist operation when only deleting refs
| * remote: avoid expensive revlist operation when only deleting refsJeremy Stribling2017-08-282-3/+48
| |
* | Merge pull request #565 from strib/delta-sliding-windowMáximo Cuadros2017-08-282-1/+23
|\ \ | |/ |/| plumbing: use sliding window in delta calculations, like git CL
| * plumbing: use sliding window in delta calculations, like git CLJeremy Stribling2017-08-282-1/+23
|/ | | | | | | | | | This sets a default sliding window of 10 for the delta calculation, just like git CL: https://git-scm.com/docs/git-pack-objects#git-pack-objects---windowltngt For a big-ish repo with 35K objects (17K commits), this reduced the time for calling `deltaSelection.walk` during a push from more than 14 minutes to about a minute.
* Merge pull request #554 from strib/strib/fix-win-cmd-lookupMáximo Cuadros2017-08-282-2/+2
|\ | | | | plumbing: use LookPath instead of Stat to fix Windows executables
| * plumbing: use LookPath instead of Stat to fix Windows executablesJeremy Stribling2017-08-272-2/+2
| | | | | | | | | | | | When git-core isn't in the user's PATH, we need to use `LookPath` to verify the existence of the executable, rather than `os.Stat`, so that on Windows it will search for files with executable suffixes.
* | Merge pull request #564 from strib/tree-walker-use-seen-cacheMáximo Cuadros2017-08-285-11/+43
|\ \ | |/ |/| plumbing: use `seen` map in tree walker
| * plumbing: use `seen` map in tree walkerJeremy Stribling2017-08-275-11/+43
|/ | | | | | | This helps avoids iterating down the same trees for every commit. For a big-ish repo with 35K objects (17K commits), this reduced the time for calling `revlist.Objects` during a push (with 0 hashes to ignore) from more than ten minutes to less than a minute.
* Merge pull request #558 from orirawlings/cloneAnnotatedTagMáximo Cuadros2017-08-272-12/+62
|\ | | | | repository: Resolve commit when cloning annotated tag, fixes #557
| * repository: Resolve commit when cloning annotated tag, fixes #557Ori Rawlings2017-08-242-12/+62
| |
* | Merge pull request #563 from erizocosmico/perf/dotgit-ref-cacheMáximo Cuadros2017-08-272-24/+76
|\ \ | |/ |/| dotgit: rewrite the way references are looked up
| * dotgit: rewrite the way references are looked upMiguel Molina2017-08-262-24/+76
| | | | | | | | | | | | Now there's only two ways of getting a reference, by checking under refs/ directory or in packed-refs. refs/ directory is checked using a direct read by reference name and packed refs are cached until they have been changed. Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* | grammar correctionZach Gershman2017-08-241-1/+1
|/ | | *stopped instead of stop
* Merge pull request #555 from mcuadros/ctx-exampleMáximo Cuadros2017-08-223-0/+48
|\ | | | | _examples: context
| * _examples: contextMáximo Cuadros2017-08-223-0/+48
|/
* Merge pull request #552 from mcarmonaa/fix/packp-adv-refs-encodeMáximo Cuadros2017-08-192-38/+56
|\ | | | | packp: fixed encoding when HEAD is not a valid ref