1
0
mirror of https://github.com/golang/go synced 2024-11-05 15:46:11 -07:00
go/godoc/redirect/rietveld.go
Brad Fitzpatrick e77c06808a godoc/redirect: improve Rietveld CL heuristic
Go's CL numbers as assigned by Gerrit have started to collide with the
lower numbers in the sparse set of CL numbers as returned by our old
code review system (Rietveld).

The old heuristic no longer works now that Gerrit CL numbers have
reached 150000.

Instead, include a map of the low Rietveld CL numbers where we might
overlap and bump the threshold heuristic up.

Updates golang/go#28836

Change-Id: Ice719ab807ce3922b885a800ac873cdbf165a8f7
Reviewed-on: https://go-review.googlesource.com/c/150057
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-11-16 19:35:47 +00:00

1094 lines
17 KiB
Go

// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package redirect
// bigEnoughAssumeRietveld is the value where CLs equal or great are
// assumed to be on Rietveld. By including this threshold we shrink
// the size of the table below. When Go amasses 150,000 more CLs, we'll
// need to bump this number and regenerate the list below.
const bigEnoughAssumeRietveld = 300000
// isRietveldCL reports whether cl was a Rietveld CL number.
func isRietveldCL(cl int) bool {
return cl >= bigEnoughAssumeRietveld || lowRietveldCL[cl]
}
// lowRietveldCLs are the old CL numbers assigned by Rietveld code
// review system as used by Go prior to Gerrit which are less than
// bigEnoughAssumeRietveld.
//
// This list of numbers is registered with the /cl/NNNN redirect
// handler to disambiguate which code review system a particular
// number corresponds to. In some rare cases there may be duplicates,
// in which case we might render an HTML choice for the user.
//
// To re-generate this list, run:
//
// $ cd $GOROOT
// $ git log 7d7c6a9..94151eb | grep "^ https://golang.org/cl/" | perl -ne 's,^\s+https://golang.org/cl/(\d+).*$,$1,; chomp; print "$_: true,\n" if $_ < 300000' | sort -n | uniq
//
// Note that we ignore the x/* repos because we didn't start using
// "subrepos" until the Rietveld CLs numbers were already 4,000,000+,
// well above bigEnoughAssumeRietveld.
var lowRietveldCL = map[int]bool{
152046: true,
152048: true,
152049: true,
152050: true,
152051: true,
152052: true,
152055: true,
152056: true,
152057: true,
152072: true,
152073: true,
152075: true,
152076: true,
152077: true,
152078: true,
152079: true,
152080: true,
152082: true,
152084: true,
152085: true,
152086: true,
152088: true,
152089: true,
152091: true,
152098: true,
152101: true,
152102: true,
152105: true,
152106: true,
152107: true,
152108: true,
152109: true,
152110: true,
152114: true,
152117: true,
152118: true,
152120: true,
152123: true,
152124: true,
152128: true,
152130: true,
152131: true,
152138: true,
152141: true,
152142: true,
153048: true,
153049: true,
153050: true,
153051: true,
153055: true,
153056: true,
153057: true,
154043: true,
154044: true,
154045: true,
154049: true,
154055: true,
154057: true,
154058: true,
154059: true,
154061: true,
154064: true,
154065: true,
154067: true,
154068: true,
154069: true,
154071: true,
154072: true,
154073: true,
154076: true,
154079: true,
154096: true,
154097: true,
154099: true,
154100: true,
154101: true,
154102: true,
154108: true,
154118: true,
154121: true,
154122: true,
154123: true,
154125: true,
154126: true,
154128: true,
154136: true,
154138: true,
154139: true,
154140: true,
154141: true,
154142: true,
154143: true,
154144: true,
154145: true,
154146: true,
154152: true,
154153: true,
154156: true,
154159: true,
154161: true,
154166: true,
154167: true,
154169: true,
154171: true,
154172: true,
154173: true,
154174: true,
154175: true,
154176: true,
154177: true,
154178: true,
154179: true,
154180: true,
155041: true,
155042: true,
155045: true,
155047: true,
155048: true,
155049: true,
155050: true,
155054: true,
155055: true,
155056: true,
155057: true,
155058: true,
155059: true,
155061: true,
155062: true,
155063: true,
155065: true,
155067: true,
155069: true,
155072: true,
155074: true,
155075: true,
155077: true,
155078: true,
155079: true,
156041: true,
156044: true,
156045: true,
156046: true,
156047: true,
156051: true,
156052: true,
156054: true,
156055: true,
156056: true,
156058: true,
156059: true,
156060: true,
156061: true,
156062: true,
156063: true,
156066: true,
156067: true,
156070: true,
156071: true,
156073: true,
156075: true,
156077: true,
156079: true,
156080: true,
156081: true,
156083: true,
156084: true,
156085: true,
156086: true,
156089: true,
156091: true,
156092: true,
156093: true,
156094: true,
156097: true,
156099: true,
156100: true,
156102: true,
156103: true,
156104: true,
156106: true,
156107: true,
156108: true,
156109: true,
156110: true,
156113: true,
156115: true,
156116: true,
157041: true,
157042: true,
157043: true,
157044: true,
157046: true,
157053: true,
157055: true,
157056: true,
157058: true,
157060: true,
157061: true,
157062: true,
157065: true,
157066: true,
157067: true,
157068: true,
157069: true,
157071: true,
157072: true,
157073: true,
157074: true,
157075: true,
157076: true,
157077: true,
157082: true,
157084: true,
157085: true,
157087: true,
157088: true,
157091: true,
157095: true,
157096: true,
157099: true,
157100: true,
157101: true,
157102: true,
157103: true,
157104: true,
157106: true,
157110: true,
157111: true,
157112: true,
157114: true,
157116: true,
157119: true,
157140: true,
157142: true,
157143: true,
157144: true,
157146: true,
157147: true,
157149: true,
157151: true,
157152: true,
157153: true,
157154: true,
157156: true,
157157: true,
157158: true,
157159: true,
157160: true,
157162: true,
157166: true,
157167: true,
157168: true,
157170: true,
158041: true,
159044: true,
159049: true,
159050: true,
159051: true,
160043: true,
160044: true,
160045: true,
160046: true,
160047: true,
160054: true,
160056: true,
160057: true,
160059: true,
160060: true,
160061: true,
160064: true,
160065: true,
160069: true,
160070: true,
161049: true,
161050: true,
161056: true,
161058: true,
161060: true,
161061: true,
161069: true,
161070: true,
161073: true,
161075: true,
162041: true,
162044: true,
162046: true,
162053: true,
162054: true,
162055: true,
162056: true,
162057: true,
162058: true,
162059: true,
162061: true,
162062: true,
163042: true,
163044: true,
163049: true,
163050: true,
163051: true,
163052: true,
163053: true,
163055: true,
163058: true,
163061: true,
163062: true,
163064: true,
163067: true,
163068: true,
163069: true,
163070: true,
163071: true,
163072: true,
163082: true,
163083: true,
163085: true,
163088: true,
163091: true,
163092: true,
163097: true,
163098: true,
164043: true,
164047: true,
164049: true,
164052: true,
164053: true,
164056: true,
164059: true,
164060: true,
164062: true,
164068: true,
164069: true,
164071: true,
164073: true,
164074: true,
164075: true,
164078: true,
164079: true,
164081: true,
164082: true,
164083: true,
164085: true,
164086: true,
164088: true,
164090: true,
164091: true,
164092: true,
164093: true,
164094: true,
164095: true,
165042: true,
165044: true,
165045: true,
165048: true,
165049: true,
165050: true,
165051: true,
165055: true,
165057: true,
165058: true,
165059: true,
165061: true,
165062: true,
165063: true,
165064: true,
165065: true,
165068: true,
165070: true,
165076: true,
165078: true,
165080: true,
165083: true,
165086: true,
165097: true,
165100: true,
165101: true,
166041: true,
166043: true,
166044: true,
166047: true,
166049: true,
166052: true,
166053: true,
166055: true,
166058: true,
166059: true,
166060: true,
166064: true,
166066: true,
166067: true,
166068: true,
166070: true,
166071: true,
166072: true,
166073: true,
166074: true,
166076: true,
166077: true,
166078: true,
166080: true,
167043: true,
167044: true,
167047: true,
167050: true,
167055: true,
167057: true,
167058: true,
168041: true,
168045: true,
170042: true,
170043: true,
170044: true,
170046: true,
170047: true,
170048: true,
170049: true,
171044: true,
171046: true,
171047: true,
171048: true,
171051: true,
172041: true,
172042: true,
172043: true,
172045: true,
172049: true,
173041: true,
173044: true,
173045: true,
174042: true,
174047: true,
174048: true,
174050: true,
174051: true,
174052: true,
174053: true,
174063: true,
174064: true,
174072: true,
174076: true,
174077: true,
174078: true,
174082: true,
174083: true,
174087: true,
175045: true,
175046: true,
175047: true,
175048: true,
176056: true,
176057: true,
176058: true,
176061: true,
176062: true,
176063: true,
176064: true,
176066: true,
176067: true,
176070: true,
176071: true,
176076: true,
178043: true,
178044: true,
178046: true,
178048: true,
179047: true,
179055: true,
179061: true,
179062: true,
179063: true,
179067: true,
179069: true,
179070: true,
179072: true,
179079: true,
179088: true,
179095: true,
179096: true,
179097: true,
179099: true,
179105: true,
179106: true,
179108: true,
179118: true,
179120: true,
179125: true,
179126: true,
179128: true,
179129: true,
179130: true,
180044: true,
180045: true,
180046: true,
180047: true,
180048: true,
180049: true,
180050: true,
180052: true,
180053: true,
180054: true,
180055: true,
180056: true,
180057: true,
180059: true,
180061: true,
180064: true,
180065: true,
180068: true,
180069: true,
180070: true,
180074: true,
180075: true,
180081: true,
180082: true,
180085: true,
180092: true,
180099: true,
180105: true,
180108: true,
180112: true,
180118: true,
181041: true,
181043: true,
181044: true,
181045: true,
181049: true,
181050: true,
181055: true,
181057: true,
181058: true,
181059: true,
181063: true,
181071: true,
181073: true,
181075: true,
181077: true,
181080: true,
181083: true,
181084: true,
181085: true,
181086: true,
181087: true,
181089: true,
181097: true,
181099: true,
181102: true,
181111: true,
181130: true,
181135: true,
181137: true,
181138: true,
181139: true,
181151: true,
181152: true,
181153: true,
181155: true,
181156: true,
181157: true,
181158: true,
181160: true,
181161: true,
181163: true,
181164: true,
181171: true,
181179: true,
181183: true,
181184: true,
181186: true,
182041: true,
182043: true,
182044: true,
183042: true,
183043: true,
183044: true,
183047: true,
183049: true,
183065: true,
183066: true,
183073: true,
183074: true,
183075: true,
183083: true,
183084: true,
183087: true,
183088: true,
183090: true,
183095: true,
183104: true,
183107: true,
183109: true,
183111: true,
183112: true,
183113: true,
183116: true,
183123: true,
183124: true,
183125: true,
183126: true,
183132: true,
183133: true,
183135: true,
183136: true,
183137: true,
183138: true,
183139: true,
183140: true,
183141: true,
183142: true,
183153: true,
183155: true,
183156: true,
183157: true,
183160: true,
184043: true,
184055: true,
184058: true,
184059: true,
184068: true,
184069: true,
184079: true,
184080: true,
184081: true,
185043: true,
185045: true,
186042: true,
186043: true,
186073: true,
186076: true,
186077: true,
186078: true,
186079: true,
186081: true,
186095: true,
186108: true,
186113: true,
186115: true,
186116: true,
186118: true,
186119: true,
186132: true,
186137: true,
186138: true,
186139: true,
186143: true,
186144: true,
186145: true,
186146: true,
186147: true,
186148: true,
186159: true,
186160: true,
186161: true,
186165: true,
186169: true,
186173: true,
186180: true,
186210: true,
186211: true,
186212: true,
186213: true,
186214: true,
186215: true,
186216: true,
186228: true,
186229: true,
186230: true,
186232: true,
186234: true,
186255: true,
186263: true,
186276: true,
186279: true,
186282: true,
186283: true,
188043: true,
189042: true,
189057: true,
189059: true,
189062: true,
189078: true,
189080: true,
189083: true,
189088: true,
189093: true,
189095: true,
189096: true,
189098: true,
189100: true,
190041: true,
190042: true,
190043: true,
190044: true,
190059: true,
190062: true,
190068: true,
190074: true,
190076: true,
190077: true,
190079: true,
190085: true,
190088: true,
190103: true,
190104: true,
193055: true,
193066: true,
193067: true,
193070: true,
193075: true,
193079: true,
193080: true,
193081: true,
193091: true,
193092: true,
193095: true,
193101: true,
193104: true,
194043: true,
194045: true,
194046: true,
194050: true,
194051: true,
194052: true,
194053: true,
194064: true,
194066: true,
194069: true,
194071: true,
194072: true,
194073: true,
194074: true,
194076: true,
194077: true,
194078: true,
194082: true,
194084: true,
194085: true,
194090: true,
194091: true,
194092: true,
194094: true,
194097: true,
194098: true,
194099: true,
194100: true,
194114: true,
194116: true,
194118: true,
194119: true,
194120: true,
194121: true,
194122: true,
194126: true,
194129: true,
194131: true,
194132: true,
194133: true,
194134: true,
194146: true,
194151: true,
194156: true,
194157: true,
194159: true,
194161: true,
194165: true,
195041: true,
195044: true,
195050: true,
195051: true,
195052: true,
195068: true,
195075: true,
195076: true,
195079: true,
195080: true,
195081: true,
196042: true,
196044: true,
196050: true,
196051: true,
196055: true,
196056: true,
196061: true,
196063: true,
196065: true,
196070: true,
196071: true,
196075: true,
196077: true,
196079: true,
196087: true,
196088: true,
196090: true,
196091: true,
197041: true,
197042: true,
197043: true,
197044: true,
198044: true,
198045: true,
198046: true,
198048: true,
198049: true,
198050: true,
198053: true,
198057: true,
198058: true,
198066: true,
198071: true,
198074: true,
198081: true,
198084: true,
198085: true,
198102: true,
199042: true,
199044: true,
199045: true,
199046: true,
199047: true,
199052: true,
199054: true,
199057: true,
199066: true,
199070: true,
199082: true,
199091: true,
199094: true,
199096: true,
201041: true,
201042: true,
201043: true,
201047: true,
201048: true,
201049: true,
201058: true,
201061: true,
201064: true,
201065: true,
201068: true,
202042: true,
202043: true,
202044: true,
202051: true,
202054: true,
202055: true,
203043: true,
203050: true,
203051: true,
203053: true,
203060: true,
203062: true,
204042: true,
204044: true,
204048: true,
204052: true,
204053: true,
204061: true,
204062: true,
204064: true,
204065: true,
204067: true,
204068: true,
204069: true,
205042: true,
205044: true,
206043: true,
206044: true,
206047: true,
206050: true,
206051: true,
206052: true,
206053: true,
206054: true,
206055: true,
206058: true,
206059: true,
206060: true,
206067: true,
206069: true,
206077: true,
206078: true,
206079: true,
206084: true,
206089: true,
206101: true,
206107: true,
206109: true,
207043: true,
207044: true,
207049: true,
207050: true,
207051: true,
207052: true,
207053: true,
207054: true,
207055: true,
207061: true,
207062: true,
207069: true,
207071: true,
207085: true,
207086: true,
207087: true,
207088: true,
207095: true,
207096: true,
207102: true,
207103: true,
207106: true,
207108: true,
207110: true,
207111: true,
207112: true,
209041: true,
209042: true,
209043: true,
209044: true,
210042: true,
210043: true,
210044: true,
210047: true,
211041: true,
212041: true,
212045: true,
212046: true,
212047: true,
213041: true,
213042: true,
214042: true,
214046: true,
214049: true,
214050: true,
215042: true,
215048: true,
215050: true,
216043: true,
216046: true,
216047: true,
216052: true,
216053: true,
216054: true,
216059: true,
216068: true,
217041: true,
217044: true,
217047: true,
217048: true,
217049: true,
217056: true,
217058: true,
217059: true,
217060: true,
217061: true,
217064: true,
217066: true,
217069: true,
217071: true,
217085: true,
217086: true,
217088: true,
217093: true,
217094: true,
217108: true,
217109: true,
217111: true,
217115: true,
217116: true,
218042: true,
218044: true,
218046: true,
218050: true,
218060: true,
218061: true,
218063: true,
218064: true,
218065: true,
218070: true,
218071: true,
218072: true,
218074: true,
218076: true,
222041: true,
223041: true,
223043: true,
223044: true,
223050: true,
223052: true,
223054: true,
223058: true,
223059: true,
223061: true,
223068: true,
223069: true,
223070: true,
223071: true,
223073: true,
223075: true,
223076: true,
223083: true,
223087: true,
223094: true,
223096: true,
223101: true,
223106: true,
223108: true,
224041: true,
224042: true,
224043: true,
224045: true,
224051: true,
224053: true,
224057: true,
224060: true,
224061: true,
224062: true,
224063: true,
224068: true,
224069: true,
224081: true,
224084: true,
224087: true,
224090: true,
224096: true,
224105: true,
225042: true,
227041: true,
229045: true,
229046: true,
229048: true,
229049: true,
229050: true,
231042: true,
236041: true,
237041: true,
238041: true,
238042: true,
240041: true,
240042: true,
240043: true,
241041: true,
243041: true,
244041: true,
245041: true,
247041: true,
250041: true,
252041: true,
253041: true,
253045: true,
254043: true,
255042: true,
255043: true,
257041: true,
257042: true,
258041: true,
261041: true,
264041: true,
294042: true,
296042: true,
}