Page MenuHomePhabricator

Watchlist changes need unique revision id
Open, MediumPublic

Description

Right now, if a Wikibase change is the last change for a given Wikipedia (client) page, then it will show that page multiple times in the watchlist. We are currently treating a Wikibase change like a log entry, which do get shown multiple times in the watchlist. Wikibase changes should be shown just once.

The query as performed to generate the watchlist:

SELECT rc_id,rc_timestamp,rc_cur_time,rc_user,rc_user_text,rc_namespace,rc_title,rc_comment,rc_minor,rc_bot,rc_new,rc_cur_id,rc_this_oldid,rc_last_oldid,rc_type,rc_patrolled,rc_ip,rc_old_len,rc_new_len,rc_deleted,rc_logid,rc_log_type,rc_log_action,rc_params,wl_notificationtimestamp,page_latest,ts_tags FROM `recentchanges` INNER JOIN `watchlist` ON (wl_user = '2' AND (wl_namespace=rc_namespace) AND (wl_title=rc_title)) LEFT JOIN `page` ON ((rc_cur_id=page_id)) LEFT JOIN `tag_summary` ON ((ts_rc_id=rc_id)) WHERE (rc_timestamp > '20121229191341') AND (rc_this_oldid=page_latest OR rc_type=3) ORDER BY rc_timestamp DESC

To fully support wikibase changes in the watchlist, we need to insert a null revision and have a unique revision id to insert into the rc_cur_id field of the recentchanges table.

It may be possible to use a hacky GROUP_BY clause in the watchlist query, a subquery, or other uglyness to make it work without the null revision, but that would make the watchlist query a bit slower.

Details

Reference
bz43578

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:16 AM
bzimport set Reference to bz43578.
bzimport added a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).

The watchlist can sometimes become too spammy due to wikidata.
Here is a screenshot that shows part of a 100x entries of the same edit!

SpamWatchlist.png (935×852 px, 347 KB)

Just to clarify this is about the following:

Someones edits the "Berlin" page on your wiki and there's also a Wikibase change to an Item used on the "Berlin" page. In that case both the local edit to the "Berlin" page and the edit done to the Wikibase item will show up in your watchlist.

This is not about excessive watchlist entries for other reasons, please see T90436: Improve usage tracking granularity to avoid irrelevant changes showing in the watchlist. for that.

Michael subscribed.

The Change Dispatching system has undergone major changes in the last 6.5 years, we should verify whether this is still an issue.