Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-29Fix encoding bug in UserCommitFilesJacob Vosmaer (GitLab)
2018-06-29Merge branch 'zj-sanitize-bundle-import-path' into 'master'Jacob Vosmaer (GitLab)
Sanitize paths when importing repositories See merge request gitlab-org/gitaly!780
2018-06-28Merge branch 'find-commit-catfile' into 'master'Jacob Vosmaer (GitLab)
Use 'git cat-file' to retrieve commits See merge request gitlab-org/gitaly!771
2018-06-28Sanitize errors when importing repositoriesZeger-Jan van de Weg
Cleans out Gitaly paths from the errros, where they may occur. The shared path isn't excluded, but that's done by the client, which only has the required data to do so. Part of: https://gitlab.com/gitlab-org/gitaly/issues/1235
2018-06-27Fix TreeEntry relative path bugJacob Vosmaer (GitLab)
2018-06-25Delete unused codeJacob Vosmaer
2018-06-25Use catfile for all Go commit lookupsJacob Vosmaer
2018-06-22Rename old GetCommit methodJacob Vosmaer
2018-06-22Avoid 'git log -1' in FindCommitJacob Vosmaer
2018-06-19Server info performs read and write checksZeger-Jan van de Weg
Part of https://gitlab.com/gitlab-org/gitaly/issues/1218
2018-06-14Remove GoGitZeger-Jan van de Weg
2018-06-13Add BackupCustomHooksAhmad Hassan
2018-06-08Fix locally breaking testsKim "BKC" Carlbäcker
2018-06-07Fix ListConflictFiles encoding test and rescueJacob Vosmaer
2018-06-07Add test-case. 'utf-16' and 'utf-16-2' in gitlab-test.gitKim "BKC" Carlbäcker
2018-06-05Simplify and rename AssertGrpcErrorJacob Vosmaer (GitLab)
2018-06-05Revert "Merge branch 'fix-shady-altdir-test' into 'master'"Jacob Vosmaer (GitLab)
This reverts merge request !658
2018-06-05Colons are not allowed in refsJacob Vosmaer (GitLab)
2018-06-01Add RestoreCustomHooks RPCAhmad Hassan
2018-06-01Fix committer bug in go-git adapterJacob Vosmaer (GitLab)
2018-05-31Rewrite Repository::Fsck in GoAsh McKenzie
2018-05-30Use gitaly-proto 0.101.0Jacob Vosmaer (GitLab)
2018-05-30Merge branch 'zj-go-git-find-commit' into 'master'Jacob Vosmaer (GitLab)
Use Go-Git for the FindCommit RPC See merge request gitlab-org/gitaly!691
2018-05-30Merge branch '1141-rewrite-commit-diff' into 'master'Jacob Vosmaer (GitLab)
Fix similarity bug in Diff::CommitDiff Closes #1141 See merge request gitlab-org/gitaly!727
2018-05-30Tests: only match error strings we createJacob Vosmaer (GitLab)
2018-05-30Fix rename similarity in Diff::CommitDiffKim "BKC" Carlbäcker
2018-05-29Ignore ENOENT when cleaning up lock filesJacob Vosmaer (GitLab)
2018-05-28Use Go-Git for the FindCommit RPCZeger-Jan van de Weg
FindCommit is called very often, to an extend that it's a problem to have all these requests go through Gitaly at the moment. This made the Gitaly team invest a lot of time in clientside N + 1 problems. Eventhough this was fruitful, the optimalisations weren't enough to bring the number of RPC/s down to a level where the RPC could be called 100% of the time. The current way of obtaining the commit information is by shelling out to the git binary, using `git log -z` with extensive use of format options. Shelling out comes at a runtime cost, and by using a native Golang implementation of git this cost could be avoided. The parent commit introduced src-d/go-git as a dependency. The intent is to swap out the git implemenation without the need for any proto, or client-side changes, and also be fully compatible with the shelling out. Things to check, before these commits can be merged to master include: 1. Shelling out includes `GIT_OBJECT_DIRECTORY` and `GIT_ALTERNATE_OBJECT_DIRECTORY`, and sets the values in the execution environment. To what extend FindCommit requires these values, and how to set these values when using go-git are unanswered questions at the moment. 2. The full test suite of GitLab-CE and GitLab-EE should be able to pass with mininal changes to those codebases. The main reason to swap out implemenations is performance, so gitaly-bench was updated to be able benchmark the FindCommit RPC in: https://gitlab.com/gitlab-org/gitaly-bench/merge_requests/5 Both Gitaly's were started with the same configuration, apart from the port. The shell out implemenation was listening on :9999, the go-git implementation on :19999. Output is truncated, but the commands are not for reproducibilty. ``` $ go version go version go1.10.1 darwin/amd64 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:9999 find-commit Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 17.3454 Average QPS: 57.65 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:19999 find-commit Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 0.9546 Average QPS: 1047.55 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:9999 find-commit -revision "4a24d82dbca5c11c61556f3b35ca472b7463187e" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 17.7700 Average QPS: 56.27 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:19999 find-commit -revision "4a24d82dbca5c11c61556f3b35ca472b7463187e" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 1.3640 Average QPS: 733.12 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:9999 find-commit -revision "HEAD~25" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 17.5492 Average QPS: 56.98 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:19999 find-commit -revision "HEAD~25" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 3.2684 Average QPS: 305.96 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:9999 find-commit -revision "feature_conflict" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 18.8795 Average QPS: 52.97 Errors: 0 Percent errors: 0.00 $ go run gitaly-bench.go -iterations 100 -repo gitlab-org/gitlab-test.git -host tcp://localhost:19999 find-commit -revision "feature_conflict" Stats: Average: 0.000000 Total requests: 1000 Elapsed Time (sec): 1.4138 Average QPS: 707.33 Errors: 0 Percent errors: 0.00 ``` Data shows that across the board the go-git implementation is faster than shelling out to the git binary. The order of magnitude faster varies strongly however. From being 18 times faster, to 'just' 5 times faster. The difference can be explained by the type of revision that is passed as argument to the RPC. The relative revision, HEAD~25, is slowest, my asumption being that the implemenation of walking the history is not optimal. The shelling out implemenation is highly consistent in its timings. This change has one notable side effect; logging is greatly reduced, as shelling out is limited. The internal wrappers around shelling out log heavily, improving visibilty.
2018-05-24Merge branch '1165-rewrite-is-rabase-in-progress' into 'master'Jacob Vosmaer (GitLab)
Rewrite Is{Squash,Rebase}InProgress in go Closes #1165 See merge request gitlab-org/gitaly!698
2018-05-24Rewrite Is{Squash,Rebase}InProgress in GoKim "BKC" Carlbäcker
2018-05-22Use bytes.Equal instead of bytes.CompareJacob Vosmaer
2018-05-22Add StorageService::DeleteAllRepositories RPCJacob Vosmaer (GitLab)
2018-05-18Fix bug in SearchFilesByContent, don't drop last matchKim "BKC" Carlbäcker
2018-05-15Unvendor Repository#create implementationZeger-Jan van de Weg
2018-05-09Fix WikiFindPage when the page has invalidly-encoded contentAhmad Sherif
2018-05-04Return DataLoss error for non-valid git repositoriesDouglas Barbosa Alexandre
2018-05-04GetBlobs: don't create blob reader if limit is zeroJacob Vosmaer (GitLab)
2018-05-04SearchFilesBy{Content,Name} Server ImplementationKim Carlbäcker
2018-05-02Server Implementation GetRawChangesZeger-Jan van de Weg
2018-05-02Add 'large request' test case to ListCommitsByOidJacob Vosmaer (GitLab)
2018-04-23Make wiki commit fields backwards compatibleJacob Vosmaer (GitLab)
2018-04-18Updated WikiCommitDetails structFrancisco Javier López
2018-04-11Make more of the auth code public so we can reuse itJacob Vosmaer (GitLab)
2018-04-10Implement GetSnapshot and CreateRepositoryFromSnapshot RPCsNick Thomas
2018-04-09Fix fragile checksum testJacob Vosmaer (GitLab)
2018-04-06Merge branch 'zj-fsck-repo-test-failure' into 'master'Jacob Vosmaer (GitLab)
Fix broken test on git 2.17 See merge request gitlab-org/gitaly!659
2018-04-06Don't test AltDir in LFS-testsKim "BKC" Carlbäcker
2018-04-06Fix broken test on git 2.17Zeger-Jan van de Weg
AFAIK since today I'm on 2.16, git changed the error message when something is not a git repository.
2018-04-06Run Go test suite with '-race' in CIJacob Vosmaer (GitLab)
2018-04-06Merge branch 'da-calculate-repository-checksum' into 'master'Zeger-Jan van de Weg
Add server implementation for CalculateChecksum See merge request gitlab-org/gitaly!642