fork-dev / TrackerWin

Bug and issue tracker for Fork for Windows
450 stars 10 forks source link

Improve Performance by Making File Staging Asynchronous #2234

Open orcohennn opened 2 weeks ago

orcohennn commented 2 weeks ago

When moving a large number of files from the "unstaged" to the "staged" area in the Fork Windows application, the program becomes unresponsive. It appears that the staging operation is handled synchronously, causing the interface to freeze and stack operations sequentially, which severely impacts usability and efficiency. To enhance performance and user experience, it would be beneficial to handle the file staging process asynchronously. This would allow the application to remain responsive and perform other tasks while the staging process runs in the background. Implementing asynchronous file staging would prevent the UI from freezing and improve the overall efficiency of the application.

DanPristupov commented 2 weeks ago

Yes, but the thing is, you can not perform any operation while staging is in progress.

To enhance performance and user experience, it would be beneficial to handle the file staging process asynchronously.

How asynchronous staging may improve user experience in this particular case? You can barely touch the repo while staging is in progress.

orcohennn commented 2 weeks ago

Thanks for the response :) Even if direct repo operations are limited during staging, making it asynchronous offers several benefits. The app won’t freeze, making it feel more responsive. Users can still review changes, view commit histories, and prepare commit messages while staging. Issues can be managed without making the app unresponsive. A responsive app during long operations reassures users and handles larger file sets better, making the app more efficient as projects grow.

DanPristupov commented 2 weeks ago

Users can still review changes

No, they can not. This is the main problem. While you are staging many files the file list will not correspond to the file content anymore. It is so important that it makes the rest of benefits pointless.