e621ng / e621ng

e621.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Post changes are confusing because of tag relations

faucetlol opened this issue · comments

Long-known, but it seems like nobody's ever created an issue about this. It's a frequent cause of confusion, even among more experienced users, and is something that should eventually be addressed.

It makes tag changes painfully difficult to read, which is detrimental to patrolling recent tag changes for vandalism, which two tags did I actually add to the post below?

image

Creating post versions when tag relations are created is obviously not a feasible option, that will just flood the post changes database with junk data, but there must be a better solution than what we currently have.

See also

I don't think there really is a better solution beyond either what we have now, or creating post versions when AIBUR are approved
Doing that naively would make an edit for every single entry on a BUR

In theory if the ids of every single edited post could be known after a BUR was done, you could do a superficial change (like adding a space to the tag string) to their tag strings to forcefully create a post version for the one approving the BUR

In theory if the ids of every single edited post could be known after a BUR was done, you could do a superficial change (like adding a space to the tag string) to their tag strings to forcefully create a post version for the one approving the BUR

Isn't that literally what @faucetlol specifically warned against in the initial post?

Creating post versions when tag relations are created is obviously not a feasible option, that will just flood the post changes database with junk data

--

I have perhaps some dumb/naiive questions but might be handy for background for others:
Am I right that the tags displayed on a post is stored independently from the tag version history? Hence the issue here that they de-sync when relations are created.
In which case, couldn't additional fields be added to the post versions records which say which were automatically added as opposed to the manually changed ones, and then the UI could display them differently or even as separate virtual 'post version' entries in the table?
Even if it stored the before and after of each post version's tag list, then it would allow working out which were added manually (the difference between before and after) and which were done automatically (the difference between before and the previous version's after)
That would expand the size of the records, but wouldn't dramatically expand the number of post version entries in the database or anything, so wouldn't be nearly the same performance hit

I might be way off track, but hopefully a helpful perspective?

I don't think there really is a better solution beyond either what we have now, or creating post versions when AIBUR are approved

Well there's definitely a better way, it's just a matter of how difficult it will be to implement properly with what we've currently got. Maybe retrospectively fixing all the old changes is a lost cause, but making future edits more readable is a good enough achievement in itself.

A better solution could look something like this:
image
(compare to image in OP)

At first I thought it might be as easy as just omitting the implied tag from the added_tags field in the database if it already existed on the post but that field doesn't actually seem to be used for anything visually at all, the diff actually seems to just be calculated by the actual difference in the tags fields. It makes me wonder why added_tags and removed_tags fields are even there, I'm yet to actually take the time to properly have a look at the code.


Somewhat related: At some point Danbooru changed their post versions to only show the actual diffs (example) but I have no idea if they're still experiencing the same problem with AIBURs.