MerginMaps / MerginMaps/qgis-plugin

"blame" command to see history

Open
#395 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
44
Forks
20
Avg merge
3d 12h
Merged PRs (30d)
5

Description

It would be very useful to have a way how to find out for a vector layer who and when did last modify any feature. Something like "git blame" where you get every line of code annotated with commit version, author and time. But here it would be per feature.

The idea is that in QGIS layer tree, user would right click a layer to get popup menu and pick the option to get this information. What we could do is that we would make a temporary copy of the layer and add the few extra columns for each feature, specifying in which version of Mergin project this was modified, username of the editor and date/time of that last change.

In the implementation, we would need to download a bunch of diffs in order to have all the information we need for every feature. It's worth discussing if there could be a way how to get aggregate diffs - for projects with longer history, this may currently require lots of individual downloads of diffs if they are not locally cached already.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the QGIS layer-tree context-menu entry point and the code that downloads Mergin project diffs; investigate whether aggregate diffs or local caching can provide per-feature history. Done means a layer can expose each feature's last modifying project version, editor, and timestamp without excessive individual downloads.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.