[dolphin] [Bug 413870] Wrong git status determination

Elvis Angelaccio bugzilla_noreply at kde.org
Sun Nov 10 21:18:39 GMT 2019


https://bugs.kde.org/show_bug.cgi?id=413870

Elvis Angelaccio <elvis.angelaccio at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|REPORTED                    |RESOLVED
      Latest Commit|                            |https://commits.kde.org/dol
                   |                            |phin-plugins/2cf2d4d02912dd
                   |                            |6e285350b30f00f24eb092ad9c
   Version Fixed In|                            |19.11.80

--- Comment #2 from Elvis Angelaccio <elvis.angelaccio at kde.org> ---
Git commit 2cf2d4d02912dd6e285350b30f00f24eb092ad9c by Elvis Angelaccio, on
behalf of Maciej Dems.
Committed on 10/11/2019 at 21:16.
Pushed by elvisangelaccio into branch 'release/19.12'.

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.
FIXED-IN: 19.11.80

Reviewers: elvisangelaccio

Reviewed By: elvisangelaccio

Differential Revision: https://phabricator.kde.org/D25187

M  +7    -2    git/fileviewgitplugin.cpp

https://commits.kde.org/dolphin-plugins/2cf2d4d02912dd6e285350b30f00f24eb092ad9c

-- 
You are receiving this mail because:
You are on the CC list for the bug.



More information about the kfm-devel mailing list