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
Please register or sign in to comment