- 21 Jun, 2017 1 commit
-
-
Grzegorz Bizon authored
-
- 12 May, 2017 1 commit
-
-
Sean McGivern authored
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.
-
- 15 Mar, 2017 1 commit
-
-
Sean McGivern authored
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.
-
- 01 Mar, 2017 1 commit
-
-
Sean McGivern authored
-
- 23 Feb, 2017 2 commits
-
-
Douwe Maan authored
-
Douwe Maan authored
-
- 13 Oct, 2016 3 commits
-
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
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).
-
- 07 Sep, 2016 1 commit
-
-
Sean McGivern authored
-
- 25 Aug, 2016 2 commits
-
-
Sean McGivern authored
-
Sean McGivern authored
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.
-
- 12 Aug, 2016 23 commits
-
-
Douwe Maan authored
-
Sean McGivern authored
This is more efficient for large files than performing a regex match on every single line.
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
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.
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
- 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.
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-
Sean McGivern authored
-