| 1 | |
|---|
| 2 | New patches: |
|---|
| 3 | |
|---|
| 4 | [p4changes |
|---|
| 5 | Scott Lamb <slamb@slamb.org>**20070224021946 |
|---|
| 6 | |
|---|
| 7 | Use a more optimal form of "p4 changes", as suggested by Stewart Lord of |
|---|
| 8 | Perforce technical support. From the p4d release notes: |
|---|
| 9 | |
|---|
| 10 | Special handling for @changelist - #85130 ** |
|---|
| 11 | |
|---|
| 12 | The syntax '//path/file@change1,@somethingelse' now performs |
|---|
| 13 | better in many common cases. Previously, the server would |
|---|
| 14 | search based on changelist number or file path according to |
|---|
| 15 | hard-coded rules. This worked poorly in a few common cases: |
|---|
| 16 | both '//singlefile@1,@date' and '//...@5000,5001' started |
|---|
| 17 | with the wrong search. This left users trying odd syntax |
|---|
| 18 | to second guess the server. Now the server adaptively tries |
|---|
| 19 | searching by change number, but if that appears to be too |
|---|
| 20 | inefficient (more than 80% of the revisions not matching the |
|---|
| 21 | path), it switches to searching by path. (Bug #18689). |
|---|
| 22 | |
|---|
| 23 | In 2wire's case, this was the top source of server load, scanning |
|---|
| 24 | ~2,200,000 rows for one project and ~2,700,000 rows for another every |
|---|
| 25 | 10 minutes. Now each scans 10-20 rows on average. |
|---|
| 26 | (Figures gathered with -Ztrack=1.) |
|---|
| 27 | ] { |
|---|
| 28 | hunk ./buildbot/changes/p4poller.py 31 |
|---|
| 29 | - "p4bin", "pollinterval", "histmax"] |
|---|
| 30 | + "p4bin", "pollinterval"] |
|---|
| 31 | hunk ./buildbot/changes/p4poller.py 48 |
|---|
| 32 | - pollinterval=60 * 10, histmax=100): |
|---|
| 33 | + pollinterval=60 * 10, histmax=None): |
|---|
| 34 | hunk ./buildbot/changes/p4poller.py 66 |
|---|
| 35 | - @param histmax: maximum number of changes to look back through |
|---|
| 36 | + @param histmax: (obsolete) maximum number of changes to look back through. |
|---|
| 37 | + ignored; accepted for backwards compatibility. |
|---|
| 38 | hunk ./buildbot/changes/p4poller.py 77 |
|---|
| 39 | - self.histmax = histmax |
|---|
| 40 | hunk ./buildbot/changes/p4poller.py 124 |
|---|
| 41 | - args.extend(['changes', '-m', str(self.histmax), self.p4base + '...']) |
|---|
| 42 | + args.extend(['changes']) |
|---|
| 43 | + if self.last_change is not None: |
|---|
| 44 | + args.extend(['%s...@%d,now' % (self.p4base, self.last_change+1)]) |
|---|
| 45 | + else: |
|---|
| 46 | + args.extend(['-m', '1', '%s...' % (self.p4base,)]) |
|---|
| 47 | hunk ./buildbot/changes/p4poller.py 140 |
|---|
| 48 | - num = m.group('num') |
|---|
| 49 | + num = int(m.group('num')) |
|---|
| 50 | hunk ./buildbot/changes/p4poller.py 142 |
|---|
| 51 | - log.msg('P4Poller: starting at change %s' % num) |
|---|
| 52 | + log.msg('P4Poller: starting at change %d' % num) |
|---|
| 53 | hunk ./buildbot/changes/p4poller.py 145 |
|---|
| 54 | - if last_change == num: |
|---|
| 55 | - break |
|---|
| 56 | hunk ./buildbot/changes/p4poller.py 163 |
|---|
| 57 | - args.extend(['describe', '-s', num]) |
|---|
| 58 | + args.extend(['describe', '-s', str(num)]) |
|---|
| 59 | hunk ./buildbot/test/test_p4poller.py 41 |
|---|
| 60 | - '3': change_3_log + |
|---|
| 61 | + 3: change_3_log + |
|---|
| 62 | hunk ./buildbot/test/test_p4poller.py 48 |
|---|
| 63 | - '2': change_2_log + |
|---|
| 64 | + 2: change_2_log + |
|---|
| 65 | hunk ./buildbot/test/test_p4poller.py 54 |
|---|
| 66 | - '5': change_4_log + |
|---|
| 67 | + 5: change_4_log + |
|---|
| 68 | hunk ./buildbot/test/test_p4poller.py 111 |
|---|
| 69 | - self.assertEquals(self.t.last_change, '1') |
|---|
| 70 | + self.assertEquals(self.t.last_change, 1) |
|---|
| 71 | hunk ./buildbot/test/test_p4poller.py 118 |
|---|
| 72 | - self.assertEquals(self.t.last_change, '3') |
|---|
| 73 | + self.assertEquals(self.t.last_change, 3) |
|---|
| 74 | hunk ./buildbot/test/test_p4poller.py 173 |
|---|
| 75 | - c['3'] = 'Perforce client error:\n...' |
|---|
| 76 | + c[3] = 'Perforce client error:\n...' |
|---|
| 77 | hunk ./buildbot/test/test_p4poller.py 189 |
|---|
| 78 | - self.assertEquals(self.t.last_change, '2') |
|---|
| 79 | + self.assertEquals(self.t.last_change, 2) |
|---|
| 80 | hunk ./buildbot/test/test_p4poller.py 216 |
|---|
| 81 | - self.assertEquals(self.t.last_change, '5') |
|---|
| 82 | + self.assertEquals(self.t.last_change, 5) |
|---|
| 83 | } |
|---|
| 84 | |
|---|
| 85 | Context: |
|---|
| 86 | |
|---|
| 87 | [add Mark Pauley's launchd .plist files |
|---|
| 88 | warner@lothar.com**20070207081942] |
|---|
| 89 | [docs: fix Requirements section to stop claiming python-2.2 compatibility. Closes #13. |
|---|
| 90 | warner@lothar.com**20070207061242] |
|---|
| 91 | [hush most pyflakes warnings |
|---|
| 92 | warner@lothar.com**20070207042433] |
|---|
| 93 | [html.py: oops, close the FORM tag |
|---|
| 94 | warner@lothar.com**20070207034138] |
|---|
| 95 | [master.py: warn about orphan Builders: those which have no Schedulers to drive them |
|---|
| 96 | warner@lothar.com**20070207033848] |
|---|
| 97 | [BotPerspective.__repr__: correct bitrot |
|---|
| 98 | warner@lothar.com**20070207033312] |
|---|
| 99 | [update bb_applet.py, adding prefs and connect/disconnect controls |
|---|
| 100 | warner@allmydata.com**20070207023115] |
|---|
| 101 | [update ChangeLog with 'buildbot try --diff' ticket number |
|---|
| 102 | warner@lothar.com**20070206230342] |
|---|
| 103 | [document 'buildbot try --diff' |
|---|
| 104 | warner@lothar.com**20070206203428] |
|---|
| 105 | [merge in 'buildbot try --diff' branch |
|---|
| 106 | warner@lothar.com**20070206194922] |
|---|
| 107 | [steps.source: when our SourceStamp has a patch, add the contents of the patch as a LogFile |
|---|
| 108 | warner@allmydata.com**20070206193402] |
|---|
| 109 | [implement 'try --diff', might not work yet, still needs docs and tests |
|---|
| 110 | warner@allmydata.com**20070206190608] |
|---|
| 111 | [test_steps.py: remove the last use of reactor.iterate() in the whole tree |
|---|
| 112 | warner@lothar.com**20070206082226] |
|---|
| 113 | [MailNotifier: assert that 'mode' is one of the supported values |
|---|
| 114 | warner@lothar.com**20070205184231] |
|---|
| 115 | [BonsaiPoller: handle non-ascii characters. Patch from Ben Hearsum, closes SF#1632641 |
|---|
| 116 | warner@lothar.com**20070131004315] |
|---|
| 117 | [produce both .tar.gz and .zip source bundles. Closes SF#1222216 |
|---|
| 118 | warner@lothar.com**20070127211330] |
|---|
| 119 | [hush some pyflakes warnings |
|---|
| 120 | warner@lothar.com**20070123210346] |
|---|
| 121 | [clean up maildir usage, remove a use of reactor.iterate from tests |
|---|
| 122 | warner@lothar.com**20070123210210] |
|---|
| 123 | [bump command_version to indicate bzr support |
|---|
| 124 | warner@lothar.com**20070123192331] |
|---|
| 125 | [buildbot/process/builder.py: don't use 'with', since it will be a reserved word in python2.6 |
|---|
| 126 | warner@lothar.com**20070123075727] |
|---|
| 127 | [bb_applet.py: add dots, swap columns left-right |
|---|
| 128 | warner@lothar.com**20070123072857] |
|---|
| 129 | [add a gnome-panel status applet |
|---|
| 130 | warner@lothar.com**20070123071812] |
|---|
| 131 | [merge in Bazaar (bzr) support. There are still a few unresolved issues. |
|---|
| 132 | warner@lothar.com**20070123054739] |
|---|
| 133 | [add support for bzr (bazaar-ng) |
|---|
| 134 | warner@lothar.com**20070111005702] |
|---|
| 135 | [darcs_buildbot.py: tidy up the progress messages |
|---|
| 136 | warner@lothar.com**20070120101808] |
|---|
| 137 | [darcs_buildbot.py: enhance to handle multiple patches in a single push. Fixes SF#1534049 |
|---|
| 138 | warner@lothar.com**20070117235903] |
|---|
| 139 | [mark buildbot.changes.freshcvsmail as deprecated |
|---|
| 140 | warner@lothar.com**20061212034328] |
|---|
| 141 | [remove old process/maxq.py, it now lives in buildbot.steps.maxq |
|---|
| 142 | warner@lothar.com**20061212033036] |
|---|
| 143 | [remove more unused imports |
|---|
| 144 | warner@lothar.com**20061212032905] |
|---|
| 145 | [remove unfinished TrialReporter |
|---|
| 146 | warner@lothar.com**20061212032235] |
|---|
| 147 | [remove some unused imports |
|---|
| 148 | warner@lothar.com**20061212031101] |
|---|
| 149 | [remove deprecated backwards-compatibility buildbot.process.step aliases |
|---|
| 150 | warner@lothar.com**20061211090833] |
|---|
| 151 | [remove the now-empty twcompat.py |
|---|
| 152 | warner@lothar.com**20061211090345] |
|---|
| 153 | [remove which(), twisted-2.0.0 and later has it |
|---|
| 154 | warner@lothar.com**20061211090204] |
|---|
| 155 | [remove the monkeypatched t.i.utils.getProcessOutputAndValue, unnecessary with twisted-2.0.0 and later |
|---|
| 156 | warner@lothar.com**20061211085919] |
|---|
| 157 | [remove the monkeypatched defer.waitForDeferred, unnecessary with twisted-2.0.0 and later |
|---|
| 158 | warner@lothar.com**20061211085809] |
|---|
| 159 | [get implements() from zope.interface directly, not from twcompat |
|---|
| 160 | warner@lothar.com**20061211085340] |
|---|
| 161 | [status.mail doesn't need to fall back to twisted.protocols.smtp.sendmail in a Twisted>=2.0.0 world |
|---|
| 162 | warner@lothar.com**20061211084711] |
|---|
| 163 | [get Interface from zope.interface directly, not from twcompat |
|---|
| 164 | warner@lothar.com**20061211083750] |
|---|
| 165 | [more post-Twisted-1.3.0 cleanup: remove twcompat.providedBy, use zope.interface native methods instead |
|---|
| 166 | warner@lothar.com**20061211083442] |
|---|
| 167 | [remove all uses of buildbot.twcompat.maybeWait, now that we don't need to maintain Twisted-1.3.0 compatibility |
|---|
| 168 | warner@lothar.com**20061211082151] |
|---|
| 169 | [bump version to 0.7.5+ while between releases |
|---|
| 170 | warner@lothar.com**20061211081015] |
|---|
| 171 | [TAG buildbot-0.7.5 |
|---|
| 172 | warner@lothar.com**20061211054327] |
|---|
| 173 | Patch bundle hash: |
|---|
| 174 | 0a811c2b7faffc3403cfd3c3aa9fc254fbd57581 |
|---|