Skip to content
This repository has been archived by the owner on Sep 7, 2023. It is now read-only.

Commit

Permalink
Query diffs against the correct prev revision in case of history merges
Browse files Browse the repository at this point in the history
Fixes https://phabricator.wikimedia.org/T281044

I'm not changing the ?diff=... links though to keep them nice.
  • Loading branch information
MatmaRex committed Jul 26, 2021
1 parent a797f07 commit 38e6a36
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions query.rb
Expand Up @@ -81,6 +81,7 @@ def api_query_continue site, query
"&rcend=#{from_date}T00:00:00Z&rcstart=#{to_date}T23:59:59Z"
recentchanges['query']['recentchanges'].each do |rc|
rev = rc['revid']
oldrev = rc['old_revid']
suspicious = false

database[:sites][site][:revisions][rev] ||= {}
Expand All @@ -89,8 +90,8 @@ def api_query_continue site, query
database[:sites][site][:revisions][rev][:title] = rc['title']
database[:sites][site][:revisions][rev][:diffsize] = rc['newlen'] - rc['oldlen'] rescue nil

if !database[:sites][site][:revisions][rev][:diff]
compare = api_query site, "action=compare&format=json&fromrev=#{rev}&torelative=prev&uselang=en" rescue next
if !database[:sites][site][:revisions][rev][:diff] || !database[:sites][site][:revisions][rev][:oldrev]
compare = api_query site, "action=compare&format=json&fromrev=#{oldrev}&torev=#{rev}&uselang=en" rescue next
diff = compare['compare']['*'] rescue next
else
diff = database[:sites][site][:revisions][rev][:diff]
Expand All @@ -103,6 +104,7 @@ def api_query_continue site, query
if suspicious
database[:sites][site][:revisions][rev][:suspicious] = suspicious
database[:sites][site][:revisions][rev][:diff] = diff
database[:sites][site][:revisions][rev][:oldrev] = oldrev

resp = conduit_query 'maniphest.search', {'constraints[query]' => rev}
if resp
Expand Down

0 comments on commit 38e6a36

Please sign in to comment.