Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to easily compare and merge / combine duplicate redundant tasks into one #1032

Open
nekohayo opened this issue Feb 28, 2024 · 0 comments
Labels
enhancement patch-or-wont-happen Core maintainers would like this, but lack time/energy. Contribute a patch or it won't happen. RFC "Request for Comments" brainstorming tickets for things we are unsure about

Comments

@nekohayo
Copy link
Member

nekohayo commented Feb 28, 2024

As probably many "chaos warriors" experience at some point when they get to hundreds and thousands of tasks, especially when you spend 99% of your time within the "Actionable" view, is that you inevitably end up forgetting that you already had an existing task (maybe set into the future, or dependent on something else), or multiple existing tasks, for what you are about to write/file.

A clear example came to me today when searching through my tasks to find "the task to reprofile Epiphany's performance in a couple of months":

example of multiple duplicate tasks in GTG - no sidebar - dupes selected in blue opti

All the blue selected items in that screenshot actually are duplicates of the same task/idea!

Desired UX

I don't know exactly how this could be achieved technically and in terms of UX, but it would be really cool to have a feature where you can select multiple tasks from your search results (or tag filtering view), right-click them, choose Compare and merge…, and then it "lays them out" for you in a way that lets you "squash" (like in git rebase -i!) them together into a new unified task, preserving the text contents (that you could adjust), the tags, the children, and choosing a new parent (if they don't all have the same parent).

Some preliminary ideas for the comparison UX:

  • maybe something that allows text comparisons by integrating with @kaiw's fabulous Meld tool when present, but I'm not sure if this is actually needed because most of the time duplicate tasks will have pretty divergent contents, not just "minor differences" that Meld excels at for comparing
  • maybe something that lays them out side-by-side (or in a grid) like a filmstrip (or GNOME Shell's exposé-like view, or abusing/imitating LibAdwaita's exposé-like tabs AdwTabOverView miniatures grid widget) on your landscape-oriented widescreen display (or vertically, if using a portrait-oriented screen) like kanban board cards;

Potential technical implementation gotcha: this would need to automatically reparent the tree(s) of children tasks to the new unified task, so that if some of the tasks being merged had children (and subchildren), those become childen of the new unified task instead.


It's a pretty wild idea but I'm filing it here as a RFC / enhancement in case someone feels excited to try to implement it.
My guess is that it's "a lot of GUI work, and some interaction with the existing backend", but nothing that requires backend/format/ontology changes.

Note: this is not the same as...

I suspect that the performance and complexity implications of doing automatic duplicate task prevention/detection in the quick-add entry (and when creating a new task using the Task Editor) would probably be too hard to easily consider that

@nekohayo nekohayo added enhancement patch-or-wont-happen Core maintainers would like this, but lack time/energy. Contribute a patch or it won't happen. RFC "Request for Comments" brainstorming tickets for things we are unsure about labels Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement patch-or-wont-happen Core maintainers would like this, but lack time/energy. Contribute a patch or it won't happen. RFC "Request for Comments" brainstorming tickets for things we are unsure about
Projects
None yet
Development

No branches or pull requests

1 participant