Skip to content
Commit 2cf2d4d0 authored by Maciej Dems's avatar Maciej Dems Committed by Elvis Angelaccio
Browse files

Fixed git status retrieval splitting entries

Summary:

Sometimes, for large repositories the status is messed up (which in unlucky case causes `Commit..` command to disappear).

The reason for this is that `FileViewGitPlugin::beginRetrieval` method cannot correctly parse the `git status` output. The reason for this is that `FileViewGitPlugin::readUntilZeroChar` does not return complete entry, because it is not provided fast enough.

The idea of this patch is to allow the `FileViewGitPlugin::readUntilZeroChar` to wait for the remaining data.

Test Plan:
The bug depends on the race condition between the plugin code and executed `git` code. Hence it is hard to test. To fake the issue make fake git process that pauses mid entry. In such case the loop in `FileViewGitPlugin::beginRetrieval` should parse eg:

    !! ABCDEFGH\0x00

Instead it gets:

    !! AB\0x00
    CDEFGH\0x00

which results in two entries for non-existent files.

The patch solves this issue.

BUG: 413870
FIXED-IN: 19.11.80

Reviewers: elvisangelaccio

Reviewed By: elvisangelaccio

Differential Revision: https://phabricator.kde.org/D25187
parent 0f39869f
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment