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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-19Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42GitLab Bot
2021-01-20Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42Robert Speicher
2020-11-19Add latest changes from gitlab-org/gitlab@13-6-stable-eev13.6.0-rc42GitLab Bot
2020-10-21Add latest changes from gitlab-org/gitlab@13-5-stable-eev13.5.0-rc42GitLab Bot
2018-11-07Enable even more frozen string in lib/gitlabgfyoung
Enables frozens string for the following: * lib/gitlab/conflict/**/*.rb * lib/gitlab/cross_project_access/**/*.rb * lib/gitlab/cycle_analytics/**/*.rb * lib/gitlab/data_builder/**/*.rb * lib/gitlab/database/**/*.rb * lib/gitlab/dependency_linker/**/*.rb * lib/gitlab/diff/**/*.rb * lib/gitlab/downtime_check/**/*.rb * lib/gitlab/email/**/*.rb * lib/gitlab/etag_caching/**/*.rb Partially addresses gitlab-org/gitlab-ce#47424.
2018-10-30Make Highlight accept language paramMark Chao
This replaces the repository param. This allows more flexiblity as sometimes we have highlight content not related to repository. Sometimes we know ahead of time the language of the content. Lastly language determination seems better fit as a logic in the Blob class. `repository` param is only used to determine the language, which seems to be the responsiblity of Blob.
2018-10-13Remove dependencies on LinguistZeger-Jan van de Weg
This saves about 128 MB of baseline RAM usage per Unicorn and Sidekiq process (!). Linguist wasn't detecting languages anymore from CE/EE since 9ae8b57467ac8b38f1fa9020a466d94a93cbb9dd. However, Linguist::BlobHelper was still being depended on by BlobLike and others. This removes the Linguist gem, given it isn't required anymore. EscapeUtils were pulled in as dependency, but given Banzai depends on it, it is now added explicitly. Previously, Linguist was used to detect the best ACE mode. Instead, we rely on ACE to guess the best mode based on the file extension.
2018-03-23Fix 500 error when trying to resolve non-ASCII conflicts in editorSean McGivern
When we added caching, this meant that calling `can_be_resolved_in_ui?` didn't always call `lines`, which meant that we didn't get the benefit of the side-effect from that, where it forced the conflict data itself to UTF-8. To fix that, make this explicit by separating the `raw_content` (any encoding) from the `content` (which is either UTF-8, or an exception is raised).
2018-03-08Cache `#can_be_resolved_in_ui?` git operationsAlejandro Rodríguez
2018-01-02Simplify conflict resolution interface and codeAlejandro Rodríguez
- Add a Gitlab::Git::Conflict::Resolution class to encapsulate resolution data - Simplify conflict file collection assembly
2017-12-14Simplify conflict resolver interfaceAlejandro Rodríguez
This does two things: - Pass commit oids instead of `Gitlab::Git::Commit`s. We only need the former. - Depend on only the target repository for conflict listing. For conflict resolution, treat one repository as a remote one so that we can implement it as such in Gitaly.
2017-12-12Use memoization for commits on diffsZeger-Jan van de Weg
The Gitaly CommitService is being hammered by n + 1 calls, mostly when finding commits. This leads to this gRPC being turned of on production: https://gitlab.com/gitlab-org/gitaly/issues/514#note_48991378 Hunting down where it came from, most of them were due to MergeRequest#show. To prove this, I set a script to request the MergeRequest#show page 50 times. The GDK was being scraped by Prometheus, where we have metrics on controller#action and their Gitaly calls performed. On both occations I've restarted the full GDK so all caches had to be rebuild. Current master, 806a68a81f1baee, needed 435 requests After this commit, 154 requests
2017-10-13Move line code generation into Gitlab::GitAlejandro Rodríguez
Having a distinct class just for that was a bit overkill
2017-10-13Create a Gitlab::Git submodule for conlict-related filesAlejandro Rodríguez
Rename classes to (hopefully) clearer names while we're doing that.
2017-10-13Refactor conflict resolution to contain git ops within Gitlab::GitAlejandro Rodríguez
This prepares the codebase for a Gitaly migration. See https://gitlab.com/gitlab-org/gitaly/issues/553
2017-10-13Move Gitlab::Diff::LineCode to module Gitlab::GitAlejandro Rodríguez
2017-10-13Encapsulate git operations for conflict resolution into libAlejandro Rodríguez
2017-09-12Decrease Cyclomatic Complexity threshold to 13Maxim Rydkin
2017-08-31Prepare GitOperationService for move to Gitlab::GitJacob Vosmaer
2017-08-08Incorporate Gitaly's CommitService.FindCommit RPCAlejandro Rodríguez
2017-07-07Include new URL helpers retroactively into includers of Gitlab::RoutingDouwe Maan
2017-07-05Create and use project path helpers that only need a project, no namespaceDouwe Maan
2017-06-21Enable Style/DotPosition Rubocop :cop:Grzegorz Bizon
2017-05-12Fix conflict resolution from corrupted upstreamSean McGivern
I don't know why this happens exactly, but given an upstream and fork repository from a customer, both of which required GC, resolving conflicts would corrupt the fork so badly that it couldn't be cloned. This isn't a perfect fix for that case, because the MR may still need to be merged manually, but it does ensure that the repository is at least usable. My best guess is that when we generate the index for the conflict resolution (which we previously did in the target project), we obtain a reference to an OID that doesn't exist in the source, even though we already fetch the refs from the target into the source. Explicitly setting the source project as the place to get the merge index from seems to prevent repository corruption in this way.
2017-03-15Allow resolving conflicts with non-ASCII charsSean McGivern
We wanted to check that the text could be encoded as JSON, because conflict resolutions are passed back and forth in that format, so the file itself must be UTF-8. However, all strings from the repository come back without an encoding from Rugged, making them ASCII_8BIT. We force to UTF-8, and reject if it's invalid. This still leaves the problem of a file that 'looks like' UTF-8 (contains valid UTF-8 byte sequences), but isn't. However: 1. If the conflicts contain the problem bytes, the user will see that the file isn't displayed correctly. 2. If the problem bytes are outside of the conflict area, then we will write back the same bytes when we resolve the conflicts, even though we though the encoding was UTF-8.
2017-03-01Enable and autocorrect the CustomErrorClass copSean McGivern
2017-02-23Fix code for copsDouwe Maan
2017-02-23Enable Style/ConditionalAssignmentDouwe Maan
2016-10-13Add blob_ace_mode to conflict content responseSean McGivern
2016-10-13Simplify conflict file JSON creationSean McGivern
2016-10-13Allow setting content for resolutionsSean McGivern
When reading conflicts: 1. Add a `type` field. `text` works as before, and has `sections`; `text-editor` is a file with ambiguous conflict markers that can only be resolved in an editor. 2. Add a `content_path` field pointing to a JSON representation of the file's content for a single file. 3. Hitting `content_path` returns a similar datastructure to the `file`, but without the `content_path` and `sections` fields, and with a `content` field containing the full contents of the file (with conflict markers). When writing conflicts: 1. Instead of `sections` being at the top level, they are now in a `files` array. This matches the read format better. 2. The `files` array contains file hashes, each of which must contain: a. `new_path` b. `old_path` c. EITHER `sections` (which works as before) or `content` (with the full content of the resolved file).
2016-09-07Fix merge conflict size limitSean McGivern
2016-08-25Merge branch ↵Robert Speicher
'21247-mergerequestscontroller-conflicts-may-fail-with-iso-8859-data' into 'master' Handle non-UTF-8 conflicts gracefully ## What does this MR do? If a conflict file isn't in a UTF-8-compatible encoding, we can't resolve it in the UI. ## What are the relevant issue numbers? Closes #21247. See merge request !5961
2016-08-25Handle case where conflicts aren't on disk yetSean McGivern
2016-08-25Handle non-UTF-8 conflicts gracefullySean McGivern
These can't be resolved in the UI because if they aren't in a UTF-8 compatible encoding, they can't be rendered as JSON. Even if they could, we would be implicitly changing the file encoding anyway, which seems like a bad idea.
2016-08-12Fix bug where conflict view would have one too many context sectionsDouwe Maan
2016-08-12Find match line headers by backtrackingSean McGivern
This is more efficient for large files than performing a regex match on every single line.
2016-08-12Add more tests for conflictsSean McGivern
2016-08-12Move resolving code to ResolveServiceSean McGivern
2016-08-12Clarify Conflict::File#sections methodSean McGivern
2016-08-12Don't allow resolving invalid conflictsSean McGivern
An MR can only be resolved in the UI if: - It has conflicts. - It has valid diff_refs (in other words, it supports new diff notes). - It has no conflicts with one side missing. - It has no conflicts in binary files. - It has no conflicts in files too large to display. - It has no conflicts containing invalid conflict markers.
2016-08-12Add blob_icon to conflict file JSONSean McGivern
2016-08-12Add blob_path to conflict file JSONSean McGivern
2016-08-12Use same resolution format on FE and BESean McGivern
2016-08-12Fix specsSean McGivern
- Add match line header to expected result for `File#sections`. - Lowercase CSS colours. - Remove unused `diff_refs` keyword argument. - Rename `parent` -> `parent_file`, to be more explicit. - Skip an iteration when highlighting.
2016-08-12Fix match line headers at start / end of fileSean McGivern
2016-08-12Handle case where one side deleted the fileSean McGivern
2016-08-12Highlight files based on merged fileSean McGivern
2016-08-12Remove unneeded raiseSean McGivern
2016-08-12Add match line headersSean McGivern