Ticket #1777: no-tests-of-backup-without-sqlite.darcs.patch

File no-tests-of-backup-without-sqlite.darcs.patch, 107.9 KB (added by zooko, at 2012-06-22T02:58:48Z)
Line 
11 patch for repository zooko@tahoe-lafs.org:/home/source/darcs/tahoe-lafs/trunk:
2
3Thu Jun 21 23:52:54 ADT 2012  zooko@zooko.com
4  * backup: remove tests of how backup performs when sqlite is not importable -- that is no longer a supported option
5
6New patches:
7
8[backup: remove tests of how backup performs when sqlite is not importable -- that is no longer a supported option
9zooko@zooko.com**20120622025254
10 Ignore-this: 6c2463873c91cc01a920724c981f3987
11] {
12hunk ./src/allmydata/test/test_cli.py 2401
13         self.basedir = "cli/Backup/backup"
14         self.set_up_grid()
15 
16-        # is the backupdb available? If so, we test that a second backup does
17-        # not create new directories.
18-        hush = StringIO()
19-        have_bdb = backupdb.get_backupdb(os.path.join(self.basedir, "dbtest"),
20-                                         hush)
21-
22         # create a small local directory with a couple of files
23         source = os.path.join(self.basedir, "home")
24         fileutil.make_dirs(os.path.join(source, "empty"))
25hunk ./src/allmydata/test/test_cli.py 2418
26 
27         d = self.do_cli("create-alias", "tahoe")
28 
29-        if not have_bdb:
30-            d.addCallback(lambda res: self.do_cli("backup", source, "tahoe:backups"))
31-            def _should_complain((rc, out, err)):
32-                self.failUnless("I was unable to import a python sqlite library" in err, err)
33-            d.addCallback(_should_complain)
34-            d.addCallback(self.stall, 1.1) # make sure the backups get distinct timestamps
35-
36         d.addCallback(lambda res: do_backup())
37         def _check0((rc, out, err)):
38             self.failUnlessReallyEqual(err, "")
39hunk ./src/allmydata/test/test_cli.py 2478
40             # available
41             self.failUnlessReallyEqual(err, "")
42             self.failUnlessReallyEqual(rc, 0)
43-            if have_bdb:
44-                fu, fr, fs, dc, dr, ds = self.count_output(out)
45-                # foo.txt, bar.txt, blah.txt
46-                self.failUnlessReallyEqual(fu, 0)
47-                self.failUnlessReallyEqual(fr, 3)
48-                self.failUnlessReallyEqual(fs, 0)
49-                # empty, home, home/parent, home/parent/subdir
50-                self.failUnlessReallyEqual(dc, 0)
51-                self.failUnlessReallyEqual(dr, 4)
52-                self.failUnlessReallyEqual(ds, 0)
53+            fu, fr, fs, dc, dr, ds = self.count_output(out)
54+            # foo.txt, bar.txt, blah.txt
55+            self.failUnlessReallyEqual(fu, 0)
56+            self.failUnlessReallyEqual(fr, 3)
57+            self.failUnlessReallyEqual(fs, 0)
58+            # empty, home, home/parent, home/parent/subdir
59+            self.failUnlessReallyEqual(dc, 0)
60+            self.failUnlessReallyEqual(dr, 4)
61+            self.failUnlessReallyEqual(ds, 0)
62         d.addCallback(_check4a)
63 
64hunk ./src/allmydata/test/test_cli.py 2489
65-        if have_bdb:
66-            # sneak into the backupdb, crank back the "last checked"
67-            # timestamp to force a check on all files
68-            def _reset_last_checked(res):
69-                dbfile = os.path.join(self.get_clientdir(),
70-                                      "private", "backupdb.sqlite")
71-                self.failUnless(os.path.exists(dbfile), dbfile)
72-                bdb = backupdb.get_backupdb(dbfile)
73-                bdb.cursor.execute("UPDATE last_upload SET last_checked=0")
74-                bdb.cursor.execute("UPDATE directories SET last_checked=0")
75-                bdb.connection.commit()
76+        # sneak into the backupdb, crank back the "last checked"
77+        # timestamp to force a check on all files
78+        def _reset_last_checked(res):
79+            dbfile = os.path.join(self.get_clientdir(),
80+                                  "private", "backupdb.sqlite")
81+            self.failUnless(os.path.exists(dbfile), dbfile)
82+            bdb = backupdb.get_backupdb(dbfile)
83+            bdb.cursor.execute("UPDATE last_upload SET last_checked=0")
84+            bdb.cursor.execute("UPDATE directories SET last_checked=0")
85+            bdb.connection.commit()
86 
87hunk ./src/allmydata/test/test_cli.py 2500
88-            d.addCallback(_reset_last_checked)
89+        d.addCallback(_reset_last_checked)
90 
91hunk ./src/allmydata/test/test_cli.py 2502
92-            d.addCallback(self.stall, 1.1)
93-            d.addCallback(lambda res: do_backup(verbose=True))
94-            def _check4b((rc, out, err)):
95-                # we should check all files, and re-use all of them. None of
96-                # the directories should have been changed, so we should
97-                # re-use all of them too.
98-                self.failUnlessReallyEqual(err, "")
99-                self.failUnlessReallyEqual(rc, 0)
100-                fu, fr, fs, dc, dr, ds = self.count_output(out)
101-                fchecked, dchecked = self.count_output2(out)
102-                self.failUnlessReallyEqual(fchecked, 3)
103-                self.failUnlessReallyEqual(fu, 0)
104-                self.failUnlessReallyEqual(fr, 3)
105-                self.failUnlessReallyEqual(fs, 0)
106-                self.failUnlessReallyEqual(dchecked, 4)
107-                self.failUnlessReallyEqual(dc, 0)
108-                self.failUnlessReallyEqual(dr, 4)
109-                self.failUnlessReallyEqual(ds, 0)
110-            d.addCallback(_check4b)
111+        d.addCallback(self.stall, 1.1)
112+        d.addCallback(lambda res: do_backup(verbose=True))
113+        def _check4b((rc, out, err)):
114+            # we should check all files, and re-use all of them. None of
115+            # the directories should have been changed, so we should
116+            # re-use all of them too.
117+            self.failUnlessReallyEqual(err, "")
118+            self.failUnlessReallyEqual(rc, 0)
119+            fu, fr, fs, dc, dr, ds = self.count_output(out)
120+            fchecked, dchecked = self.count_output2(out)
121+            self.failUnlessReallyEqual(fchecked, 3)
122+            self.failUnlessReallyEqual(fu, 0)
123+            self.failUnlessReallyEqual(fr, 3)
124+            self.failUnlessReallyEqual(fs, 0)
125+            self.failUnlessReallyEqual(dchecked, 4)
126+            self.failUnlessReallyEqual(dc, 0)
127+            self.failUnlessReallyEqual(dr, 4)
128+            self.failUnlessReallyEqual(ds, 0)
129+        d.addCallback(_check4b)
130 
131         d.addCallback(lambda res: self.do_cli("ls", "tahoe:backups/Archives"))
132         def _check5((rc, out, err)):
133hunk ./src/allmydata/test/test_cli.py 2528
134             self.failUnlessReallyEqual(rc, 0)
135             self.new_archives = out.split()
136             expected_new = 2
137-            if have_bdb:
138-                expected_new += 1
139+            expected_new += 1
140             self.failUnlessReallyEqual(len(self.new_archives), expected_new, out)
141             # the original backup should still be the oldest (i.e. sorts
142             # alphabetically towards the beginning)
143hunk ./src/allmydata/test/test_cli.py 2554
144             # and upload the rest. None of the directories can be reused.
145             self.failUnlessReallyEqual(err, "")
146             self.failUnlessReallyEqual(rc, 0)
147-            if have_bdb:
148-                fu, fr, fs, dc, dr, ds = self.count_output(out)
149-                # new foo.txt, surprise file, subfile, empty
150-                self.failUnlessReallyEqual(fu, 4)
151-                # old bar.txt
152-                self.failUnlessReallyEqual(fr, 1)
153-                self.failUnlessReallyEqual(fs, 0)
154-                # home, parent, subdir, blah.txt, surprisedir
155-                self.failUnlessReallyEqual(dc, 5)
156-                self.failUnlessReallyEqual(dr, 0)
157-                self.failUnlessReallyEqual(ds, 0)
158+            fu, fr, fs, dc, dr, ds = self.count_output(out)
159+            # new foo.txt, surprise file, subfile, empty
160+            self.failUnlessReallyEqual(fu, 4)
161+            # old bar.txt
162+            self.failUnlessReallyEqual(fr, 1)
163+            self.failUnlessReallyEqual(fs, 0)
164+            # home, parent, subdir, blah.txt, surprisedir
165+            self.failUnlessReallyEqual(dc, 5)
166+            self.failUnlessReallyEqual(dr, 0)
167+            self.failUnlessReallyEqual(ds, 0)
168         d.addCallback(_check5a)
169         d.addCallback(lambda res: self.do_cli("ls", "tahoe:backups/Archives"))
170         def _check6((rc, out, err)):
171hunk ./src/allmydata/test/test_cli.py 2571
172             self.failUnlessReallyEqual(rc, 0)
173             self.new_archives = out.split()
174             expected_new = 3
175-            if have_bdb:
176-                expected_new += 1
177+            expected_new += 1
178             self.failUnlessReallyEqual(len(self.new_archives), expected_new)
179             self.failUnlessReallyEqual(sorted(self.new_archives)[0],
180                                  self.old_archives[0])
181}
182
183Context:
184
185[mutable: fix shape of 'verinfo' tuple returned from MDMFSlotWriteProxy.get_verinfo(). fixes #1669
186david-sarah@jacaranda.org**20120621205221
187 Ignore-this: 15d177d234e2db2945de17ff95051188
188]
189[Tests for ref #1669. Also refactor the existing tests to reduce duplicated code and to fix a cut-and-paste error that caused one case (successful SDMF repair) to go untested.
190david-sarah@jacaranda.org**20120621204627
191 Ignore-this: f77c29ee0cc32469e922712a49879ec2
192]
193[Add assertions to make sure that set_default_encoding_parameters is always called, rather than using hardcoded 3/7/10 defaults. Also update affected tests. Note that this by itself cannot fix the bug mentioned in ticket:1212#comment:41, but it might make it easier to reproduce. refs #1212
194david-sarah@jacaranda.org**20120619020504
195 Ignore-this: 396ff33265981774936851b9970d5dfe
196]
197[Fix a bug in mutable publish that could cause an IndexError when a writer is removed in Publish._connection_problem. This version uses DictOfSets as suggested by warner. fixes #1749
198david-sarah@jacaranda.org**20120615034437
199 Ignore-this: 367a37d0fff03c5339296a854ea23e35
200]
201[docs/frontends/FTP-and-SFTP.rst: listing of directories containing mutable files (but not reading/writing mutable files) is fixed for FTP. Also remove the orphaned trac link to #1688. refs #680
202david-sarah@jacaranda.org**20120618002454
203 Ignore-this: 54a6b44c148c2eda99515f2d54998d39
204]
205[docs: remove mention of #1588 from docs/frontends/FTP-and-SFTP.rst, since it is fixed
206zooko@zooko.com**20120617031404
207 Ignore-this: 99a67ce4680c4ad66e4fe6159e226b80
208]
209[test_system.py: wait for the Helper connection properly before uploading
210Brian Warner <warner@lothar.com>**20120612061930
211 Ignore-this: e34a2cce7250e15000bf7a4c2798ccd2
212]
213[test_system.py: clean up control flow, reduce use of stall()
214Brian Warner <warner@lothar.com>**20120612012235
215 Ignore-this: e1bf1aa9bc981df34cd8e0dafce40041
216 
217 The _upload_resumable() test interrupts a Helper upload partway
218 through (by shutting down the Helper), then restarts the Helper and
219 resumes the upload. The control flow is kind of tricky: to do anything
220 "partway through" requires adding a hook to the Uploadable. The previous
221 flow depended upon a (fragile) call to self.stall(), which waits a fixed
222 number of seconds.
223 
224 This removes one of those stall() calls (the remainder is in
225 test/common.py and I'll try removing it in a subsequent revision). It
226 also removes some now-redundant wait_for_connections() calls, since
227 bounce_client() doesn't fire its Deferred until the client has finished
228 coming back up (and uses wait_for_connections() internally to do so).
229]
230[Since DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer is suppressed globally, it doesn't need to be suppressed during import. refs #1295
231david-sarah@jacaranda.org**20120614213315
232 Ignore-this: 2a0cded7cab6052e348a3af6d46d0d7a
233]
234[misc/coding_tools/check-interfaces.py: clean-ups (warnings about Windows-specific modules and error stream handling).
235david-sarah@jacaranda.org**20120614212829
236 Ignore-this: 2033d237517525bfdf998a597bc13d13
237]
238[Suppress DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer. This also unifies the handling of DeprecationWarnings that need to be suppressed globally. refs #1295
239david-sarah@jacaranda.org**20120614212308
240 Ignore-this: 44ef1c807f0ffd64712755c82d03a19
241]
242[test/common.py: fix race condition waiting for the helper connection
243Brian Warner <warner@lothar.com>**20120614191835
244 Ignore-this: c2fa3608dec9b1337ae557bd34874d97
245 
246 The wait_for_connections() method, which is used at the start of
247 test_system to make sure that all the clients are connected to all the
248 servers, did not also wait for clients to be connected to their Helpers.
249 Every once in a while, the helper connection would take a bit longer,
250 and then
251 test_system.SystemTest.test_filesystem._test_web._got_welcome_helper
252 would fail, because we'd check for a helper connection before it was
253 ready.
254 
255 The fix is to modify wait_for_connections's polling predicate to look
256 for helper connections (if configured) as well as the regular
257 introducer- and server- connections.
258 
259 Tested by temporarily adding a large (30s) delay to the connectTo() call
260 in Uploader.startService, simulating a long helper
261 connection-establishment delay. This makes the test fail consistently.
262 Then I fixed wait_for_connections(), and the test passed (slowly). Then
263 I removed the delay.
264 
265 Closes #1467
266]
267[offloaded.py: don't drop the Deferred
268Brian Warner <warner@lothar.com>**20120612011602
269 Ignore-this: fc71d431d616fbbb37946d6d75193485
270 
271 There was one corner case (where the client disconnects at just the
272 wrong time) that could have dropped a Deferred, leading to an Unhandled
273 Error. Clean up the control flow to avoid this case.
274]
275[test_system.py: fix minor typo
276Brian Warner <warner@lothar.com>**20120612011636
277 Ignore-this: a7fe88527daa9e6556f9c42d7b7f752e
278]
279[Clarify documentation of RIStorageServer.slot_testv_and_readv_and_writev. fixes #1744
280david-sarah@jacaranda.org**20120613165135
281 Ignore-this: d0fca05f06dd9998140d1031bebf8620
282]
283[Added docs/specifications/backends/raic.rst for ticket #1760
284Brian Warner <warner@lothar.com>**20120610193236
285 Ignore-this: 23eb716a368c0e442d8ce4a5bfa95959
286]
287[Fix text in Publish Status results. Closes #1762.
288Brian Warner <warner@lothar.com>**20120608222146
289 Ignore-this: 69690fc03c93e81e1d66efe77940745f
290]
291[docs/quickstart.rst: fix rst warning.
292david-sarah@jacaranda.org**20120601210104
293 Ignore-this: c98d18e2eb028011936ebffd855bf0ea
294]
295[Restore --rterrors option to 'setup.py test' and 'setup.py trial' to keep buildbots happy. refs #1699
296david-sarah@jacaranda.org**20120531222307
297 Ignore-this: 62b8798fa0b50441df64f50ed5f9a117
298]
299[Change 'setup.py test' and 'setup.py trial' to pass --rterrors to trial by default. Suppress using --no-rterrors. Also pass --until-failure/-u to trial. fixes #1699
300david-sarah@jacaranda.org**20120531220000
301 Ignore-this: 78bdfcfb1142ed260197996a3c1b22b1
302]
303[test_web.py: fix memory leak when run with --until-failure
304Brian Warner <warner@lothar.com>**20120522223949
305 Ignore-this: 17161fd0629fd86d4112220b13e10094
306 
307 The Fake*Node classes in test/common.py were accumulating share data in
308 a class-level dictionary, which persisted from one test run to the next.
309 As a result, running test_web.py over and over (with trial's
310 --until-failure feature) made this dictionary grow without bound,
311 eventually running out of memory.
312 
313 This fix moves that dictionary into the FakeClient built fresh for each
314 test, so it doesn't build up. It does the same thing for "file_types",
315 which was much smaller but still lived at the class level.
316 
317 Closes #1729
318]
319[docs/frontends/FTP-and-SFTP.rst: remove outdated allmydata.com reference. fixes #1743
320david-sarah@jacaranda.org**20120518225618
321 Ignore-this: a1e38e3f1d2138abd9d32087aeb71b3
322]
323[misc/build_helpers/check-interfaces.py: avoid spurious warnings about ignored exceptions on shutdown. Also make the check function able to write errors to an arbitrary stream.
324david-sarah@jacaranda.org**20120518021252
325 Ignore-this: 7d6b03286d7b1b4a726ff06f2c07f8c6
326]
327[dictutil.DictOfSets: remove .union() method, it was misleading
328Brian Warner <warner@lothar.com>**20120516235509
329 Ignore-this: ede3d11bf6de0d01f57b8bd85ff2da22
330 
331 Unlike set.union(), which returns a new set, DictOfSets.union() modified
332 the DictOfSets in-place. The name collision bit me when I changed some
333 code from using DictOfSets to a normal set, and expected that
334 set.union() would modify the set in-place. Since there was only one user
335 of DictOfSets.union, I figured it was safer to just get rid of it.
336]
337[immutable repairer: populate servers-responding properly
338Brian Warner <warner@lothar.com>**20120516235509
339 Ignore-this: d840f7dc056fa7efeaad1dd3f1c707c6
340 
341 If a server did not respond to the pre-repair filecheck, but did respond
342 to the repair, that server was not correctly added to the
343 RepairResults.data["servers-responding"] list. (This resulted from a
344 buggy usage of DictOfSets.union() in filenode.py).
345 
346 In addition, servers to which filecheck queries were sent, but did not
347 respond, were incorrectly added to the servers-responding list
348 anyawys. (This resulted from code in the checker.py not paying attention
349 to the 'responded' flag).
350 
351 The first bug was neatly masked by the second: it's pretty rare to have
352 a server suddenly start responding in the one-second window between a
353 filecheck and a subsequent repair, and if the server was around for the
354 filecheck, you'd never notice the problem. I only spotted the smelly
355 code while I was changing it for IServer cleanup purposes.
356 
357 I added coverage to test_repairer.py for this. Trying to get that test
358 to fail before fixing the first bug is what led me to discover the
359 second bug. I also had to update test_corrupt_file_verno, since it was
360 incorrectly asserting that 10 servers responded, when in fact one of
361 them throws an error (but the second bug was causing it to be reported
362 anyways).
363]
364[Update my (davidsarah) gpg fingerprint in CREDITS. Mwahaha! :-)
365david-sarah@jacaranda.org**20120516231526
366 Ignore-this: e65336db38ff2227e3d2cce8a31aa397
367]
368[Improve a comment in __init__.py.
369david-sarah@jacaranda.org**20120514163431
370 Ignore-this: bbdce3d50dce46e497eba71f9146079e
371]
372[Suppress the PowmInsecureWarning from PyCrypto. refs #1586
373david-sarah@jacaranda.org**20120514032352
374 Ignore-this: 9cfd6936bc31e320d1ea9d52a495dbaa
375]
376[test_web: improve shouldFail2() error reporting
377Brian Warner <warner@lothar.com>**20120509211837
378 Ignore-this: 2ab6738d46fead5b49496ba379fd1d98
379]
380[Change capitalization of WUI and introducer welcome page headings; add test for introducer welcome page. Also fix a typo in a CSS class name. fixes #1708
381david-sarah@jacaranda.org**20120405235723
382 Ignore-this: 9b0055847a793528a028679847ab493c
383]
384[Make the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes a test. fixes #1682
385david-sarah@jacaranda.org**20120308231758
386 Ignore-this: b639c3da453b95ee7edca8090ea1b9aa
387]
388[Add nickname/nodeid to storage-status web page. Closes #1204.
389Brian Warner <warner@lothar.com>**20120313025736
390 Ignore-this: 78e533e06c390221edd66c45ec96e34a
391 
392 Also add tahoe.css to the page, to make it look slightly prettier.
393]
394[introducer web page: add CSS styling, roughly match client Welcome page
395Brian Warner <warner@lothar.com>**20120307022505
396 Ignore-this: bfc450f394578a3463f31acc1019862
397 
398 Also add /static and the top-level /tahoe.css -type stuff to the introducer's
399 web server.
400]
401[Tests for ref #1592.
402david-sarah@jacaranda.org**20111217043130
403 Ignore-this: a6713500ebe2d686581c6743b8a88f60
404]
405[test_web.py cleanup: use failUnlessIn/failIfIn in preference to 'in' operator.
406david-sarah@jacaranda.org**20111217042710
407 Ignore-this: c351f4b1d162eca545ba657dc3c70c19
408]
409[Marcus Wanner's favicon patch. fixes #1592
410david-sarah@jacaranda.org**20111217033201
411 Ignore-this: 3528c920379fe0d157441dafe9a7c5a8
412]
413[1585-webui.darcs.patch
414Marcus Wanner <marcus@wanners.net>**20111117214923
415 Ignore-this: 23cf2a06c545be5f821c071d652178ee
416]
417[Rewrite download-status-timeline visualizer ('viz') with d3.js
418Brian Warner <warner@lothar.com>**20111101061821
419 Ignore-this: 6149b027bbae52c559ef5a8167240cab
420 
421 * use d3.js v2.4.6
422 * add a "toggle misc events" button, to get hash/bitmap-checking details
423 * only draw data that's on screen, for speed
424 * add fragment-arg to fetch timeline data.json from somewhere else
425]
426[test/common.py: remove ununsed 'is_bad' mechanism
427Brian Warner <warner@lothar.com>**20120404191103
428 Ignore-this: 15b5d8d66e8ee902831b8171a9069763
429 
430 This was a premature feature addition to the mock filenode, and gets in the
431 way of the IServer refactoring I'm trying to do. Best to remove it now and
432 re-introduce it in a better form later when it's actually needed.
433]
434[make IServer instances retain identity in copy() and deepcopy()
435Brian Warner <warner@lothar.com>**20120404181409
436 Ignore-this: ff39267d0e967cc76591ba5166f63fc7
437]
438[move IServer from storage_client.py to interfaces.py
439Brian Warner <warner@lothar.com>**20120404181359
440 Ignore-this: 7713ad62faa2841659ce5ed287d0837b
441]
442[servermap.py: oops, fix _done() condition, good catch by davidsarah
443Brian Warner <warner@lothar.com>**20120401221034
444 Ignore-this: a5b0f61d83606ebf3493917e69ad4edf
445]
446[Mutable repair: use new MODE_REPAIR to query all servers *and* get privkey
447Brian Warner <warner@lothar.com>**20120331183902
448 Ignore-this: e518c5372afe27331e09f8d70c63764d
449 
450 This fixes bug #1689. Repair was using MODE_READ to build the servermap,
451 which doesn't try hard enough to grab the privkey, and also doesn't guarantee
452 sending queries to all servers. This patch adds a new MODE_REPAIR which does
453 both, and does a separate, distinct mapupdate to start wth repair cycle,
454 instead of relying upon the (MODE_CHECK) mapupdate leftover from the
455 filecheck that triggered the repair.
456]
457[Fix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids
458Brian Warner <warner@lothar.com>**20120318000135
459 Ignore-this: 79354457b77fe2d8534fc0b792b6eb0c
460 
461 This still leaves immutable-publish results incorrectly using tubids instead
462 of serverids. That will need some more work, since it might change the Helper
463 interface.
464]
465[retrieve.py: unconditionally check share-hash-tree. Fixes #1654.
466Brian Warner <warner@lothar.com>**20120112213553
467 Ignore-this: 7ddc903a382b52bc014262b3b4099165
468 
469 Add Kevan's unit test, update known_issues.rst
470]
471[mutable/retrieve.py: clean up control flow to avoid dropping errors
472Brian Warner <warner@lothar.com>**20120108221248
473 Ignore-this: 4e991bdf6399439d2cee3d743814a327
474 
475 * replace DeferredList with gatherResults, simplify result handling
476 * use BadShareError to signal recoverable problems in either fetch or
477   validate, catch after _validate_block
478 * _validate_block is thus not responsible for noticing fetch problems
479 * rename _validation_or_decoding_failed() to _handle_bad_share()
480 * _get_needed_hashes() returns two Deferreds, instead of a hard-to-unpack
481   DeferredList
482]
483[mutable: don't tell server about corruption unless it's really CorruptShareError
484Brian Warner <warner@lothar.com>**20120108221245
485 Ignore-this: 90da01af1008477c45d333a0f74f1c5b
486]
487[test_mutable: don't use 75 shares (slow), now that the bug is fixed
488Brian Warner <warner@lothar.com>**20111228223819
489 Ignore-this: 930f1a24ebe9ed2ab25e4b2a16e36352
490 
491 I missed this part of Kevan's fix-1628.darcs.2.patch .
492]
493[mutable publish: fix not-enough-shares detection. Refs #1628.
494Brian Warner <warner@lothar.com>**20111228055018
495 Ignore-this: 23db08d8d630268e208e1755509adf92
496 
497 This should match the "fix-1628.darcs.2.patch" attachment on that ticket.
498]
499[mutable publish: track multiple servers-per-share. Fixes some of #1628.
500Brian Warner <warner@lothar.com>**20111228053358
501 Ignore-this: 6e8cb92e70273b81098f73ebf23164bd
502 
503 The remaining work is to write additional tests.
504 
505 src/allmydata/test/no_network.py:
506 
507  This supports tests in which servers leave the grid only to return with
508  their shares intact at a later time.
509 
510 src/allmydata/test/test_mutable.py:
511 
512  The UCWEs in the incident reports associated with #1628 all seem to be
513  associated with shares that the servermap knows about, but which aren't
514  accounted for during the publish process for whatever reason. Specifically,
515  it looks like the publisher is only capable of keeping track of a single
516  storage server for a given share. This makes the repair process worse than
517  it was pre-MDMF at updating all of the shares of a particular file to the
518  newest version, and can also cause spurious UCWEs. This test simulates such
519  a layout and fails if an UCWE is thrown. We need to write another test to
520  ensure that all copies of a share are updated to the latest version (or
521  alter this test to do that), so that the test suite doesn't pass unless both
522  regressions are fixed.
523 
524  We want the publisher to follow the existing share placement when uploading
525  a new version of a mutable file, and we don't want this test to pass unless
526  it does.
527 
528 src/allmydata/mutable/publish.py:
529 
530  Before this commit, the publisher only kept track of a single writer for
531  each share. This is insufficient to handle updates in which a single share
532  may live on multiple servers. In the best case, an update will only update
533  one of the existing shares instead of all of them. In some cases, the update
534  will encounter the existing shares when publishing some other share,
535  interpret it as a sign of an uncoordinated update, and fail. Keeping track
536  of all of the writers helps ensure that all existing shares are updated, and
537  helps avoid spurious uncoordinated write errors.
538]
539[IServer refactoring: pass IServer instances around, instead of peerids
540Brian Warner <warner@lothar.com>**20111101040319
541 Ignore-this: 35e4698a0273a0311fe0ccedcc7881b5
542 
543 refs #1363
544 
545 This collapses 88 small incremental changes (each of which passes all tests)
546 into one big patch. The development process for the long path started with
547 adding some temporary scaffolding, changing one method at a time, then
548 removing the scaffolding. The individual pieces are as follows, in reverse
549 chronological order (the first patch is at the end of this comment):
550 
551  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
552  Author: Brian Warner <warner@lothar.com>
553  Date:   Tue Oct 4 16:05:00 2011 -0400
554 
555      immutable/downloader/status.py: correct comment
556 
557   src/allmydata/immutable/downloader/status.py |    2 +-
558   1 files changed, 1 insertions(+), 1 deletions(-)
559 
560  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
561  Author: Brian Warner <warner@lothar.com>
562  Date:   Tue Oct 4 15:46:20 2011 -0400
563 
564      remove temporary ServerMap._storage_broker
565 
566   src/allmydata/mutable/checker.py   |    2 +-
567   src/allmydata/mutable/filenode.py  |    2 +-
568   src/allmydata/mutable/publish.py   |    2 +-
569   src/allmydata/mutable/servermap.py |    5 ++---
570   src/allmydata/test/test_mutable.py |    8 ++++----
571   5 files changed, 9 insertions(+), 10 deletions(-)
572 
573  commit d703096b41632c47d76414b12672e076a422ff5c
574  Author: Brian Warner <warner@lothar.com>
575  Date:   Tue Oct 4 15:37:05 2011 -0400
576 
577      remove temporary storage_broker.get_server_for_id()
578 
579   src/allmydata/storage_client.py  |    3 ---
580   src/allmydata/test/no_network.py |   13 -------------
581   2 files changed, 0 insertions(+), 16 deletions(-)
582 
583  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
584  Author: Brian Warner <warner@lothar.com>
585  Date:   Tue Oct 4 12:50:06 2011 -0400
586 
587      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
588 
589   src/allmydata/mutable/retrieve.py |   10 +++++-----
590   1 files changed, 5 insertions(+), 5 deletions(-)
591 
592  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
593  Author: Brian Warner <warner@lothar.com>
594  Date:   Tue Oct 4 12:48:08 2011 -0400
595 
596      API of Retrieve._validate_block(), trying to remove reader.server
597 
598   src/allmydata/mutable/retrieve.py |   14 +++++++-------
599   1 files changed, 7 insertions(+), 7 deletions(-)
600 
601  commit 572d5070761861a2190349d1ed8d85dbc25698a5
602  Author: Brian Warner <warner@lothar.com>
603  Date:   Tue Oct 4 12:36:58 2011 -0400
604 
605      API of Retrieve._mark_bad_share(), trying to remove reader.server
606 
607   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
608   1 files changed, 9 insertions(+), 12 deletions(-)
609 
610  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
611  Author: Brian Warner <warner@lothar.com>
612  Date:   Tue Oct 4 12:06:13 2011 -0400
613 
614      remove now-unused get_rref_for_serverid()
615 
616   src/allmydata/mutable/servermap.py |    3 ---
617   1 files changed, 0 insertions(+), 3 deletions(-)
618 
619  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
620  Author: Brian Warner <warner@lothar.com>
621  Date:   Tue Oct 4 12:03:09 2011 -0400
622 
623      Retrieve: stop adding .serverid attributes to readers
624 
625   src/allmydata/mutable/retrieve.py |    1 -
626   1 files changed, 0 insertions(+), 1 deletions(-)
627 
628  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
629  Author: Brian Warner <warner@lothar.com>
630  Date:   Tue Oct 4 12:03:34 2011 -0400
631 
632      return value of Retrieve(verify=True)
633 
634   src/allmydata/mutable/checker.py  |   11 ++++++-----
635   src/allmydata/mutable/retrieve.py |    3 +--
636   2 files changed, 7 insertions(+), 7 deletions(-)
637 
638  commit e9ab7978c384e1f677cb7779dc449b1044face82
639  Author: Brian Warner <warner@lothar.com>
640  Date:   Tue Oct 4 11:54:23 2011 -0400
641 
642      Retrieve._bad_shares (but not return value, used by Verifier)
643 
644   src/allmydata/mutable/retrieve.py |    7 ++++---
645   1 files changed, 4 insertions(+), 3 deletions(-)
646 
647  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
648  Author: Brian Warner <warner@lothar.com>
649  Date:   Tue Oct 4 11:51:23 2011 -0400
650 
651      Publish: stop adding .serverid attributes to writers
652 
653   src/allmydata/mutable/publish.py |    9 ++-------
654   1 files changed, 2 insertions(+), 7 deletions(-)
655 
656  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
657  Author: Brian Warner <warner@lothar.com>
658  Date:   Tue Oct 4 11:56:33 2011 -0400
659 
660      API of get_write_enabler()
661 
662   src/allmydata/mutable/filenode.py |    7 ++++---
663   src/allmydata/mutable/publish.py  |    4 ++--
664   src/allmydata/test/no_network.py  |    3 +++
665   3 files changed, 9 insertions(+), 5 deletions(-)
666 
667  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
668  Author: Brian Warner <warner@lothar.com>
669  Date:   Tue Oct 4 11:46:24 2011 -0400
670 
671      API of get_(renewal|cancel)_secret()
672 
673   src/allmydata/mutable/filenode.py  |   14 ++++++++------
674   src/allmydata/mutable/publish.py   |    8 ++++----
675   src/allmydata/mutable/servermap.py |    5 ++---
676   3 files changed, 14 insertions(+), 13 deletions(-)
677 
678  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
679  Author: Brian Warner <warner@lothar.com>
680  Date:   Tue Oct 4 11:41:52 2011 -0400
681 
682      API of CorruptShareError. Also comment out some related+unused test_web.py code
683 
684   src/allmydata/mutable/common.py    |   13 +++++--------
685   src/allmydata/mutable/retrieve.py  |   10 +++++-----
686   src/allmydata/mutable/servermap.py |    8 +++-----
687   src/allmydata/test/common.py       |   13 ++++++++-----
688   4 files changed, 21 insertions(+), 23 deletions(-)
689 
690  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
691  Author: Brian Warner <warner@lothar.com>
692  Date:   Tue Oct 4 12:01:46 2011 -0400
693 
694      API of ServerMap.mark_bad_share()
695 
696   src/allmydata/mutable/publish.py   |    2 +-
697   src/allmydata/mutable/retrieve.py  |    6 +++---
698   src/allmydata/mutable/servermap.py |    6 ++----
699   src/allmydata/test/test_mutable.py |    3 +--
700   4 files changed, 7 insertions(+), 10 deletions(-)
701 
702  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
703  Author: Brian Warner <warner@lothar.com>
704  Date:   Tue Oct 4 11:11:17 2011 -0400
705 
706      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
707 
708   src/allmydata/mutable/servermap.py |    7 ++-----
709   src/allmydata/test/test_mutable.py |    6 +++---
710   2 files changed, 5 insertions(+), 8 deletions(-)
711 
712  commit 2d32e448677d6b818692e801045d4115b29abf21
713  Author: Brian Warner <warner@lothar.com>
714  Date:   Tue Oct 4 11:07:10 2011 -0400
715 
716      API of ServerMap.all_servers_for_version()
717 
718   src/allmydata/mutable/servermap.py |    4 ++--
719   1 files changed, 2 insertions(+), 2 deletions(-)
720 
721  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
722  Author: Brian Warner <warner@lothar.com>
723  Date:   Tue Oct 4 11:04:50 2011 -0400
724 
725      internals of ServerMap methods that use make_versionmap(), remove temp copy
726 
727   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
728   1 files changed, 10 insertions(+), 18 deletions(-)
729 
730  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
731  Author: Brian Warner <warner@lothar.com>
732  Date:   Tue Oct 4 11:01:28 2011 -0400
733 
734      API of ServerMap.make_versionmap()
735 
736   src/allmydata/mutable/checker.py   |    4 ++--
737   src/allmydata/mutable/retrieve.py  |    5 ++---
738   src/allmydata/mutable/servermap.py |    4 ++--
739   src/allmydata/test/test_mutable.py |    7 ++++---
740   4 files changed, 10 insertions(+), 10 deletions(-)
741 
742  commit b6882ece49afb4c507d118af2db346fa329209dc
743  Author: Brian Warner <warner@lothar.com>
744  Date:   Tue Oct 4 10:53:38 2011 -0400
745 
746      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
747 
748   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
749   1 files changed, 13 insertions(+), 5 deletions(-)
750 
751  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
752  Author: Brian Warner <warner@lothar.com>
753  Date:   Tue Oct 4 00:45:58 2011 -0400
754 
755      API of RetrieveStatus.add_problem()
756 
757   src/allmydata/mutable/retrieve.py |    5 +++--
758   1 files changed, 3 insertions(+), 2 deletions(-)
759 
760  commit 4976d29ffae565a048851601c29013bbae2976d8
761  Author: Brian Warner <warner@lothar.com>
762  Date:   Tue Oct 4 00:45:05 2011 -0400
763 
764      API of RetrieveStatus.add_fetch_timing()
765 
766   src/allmydata/mutable/retrieve.py |    5 +++--
767   1 files changed, 3 insertions(+), 2 deletions(-)
768 
769  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
770  Author: Brian Warner <warner@lothar.com>
771  Date:   Tue Oct 4 00:44:04 2011 -0400
772 
773      API of Retrieve.notify_server_corruption()
774 
775   src/allmydata/mutable/retrieve.py |    6 +++---
776   1 files changed, 3 insertions(+), 3 deletions(-)
777 
778  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
779  Author: Brian Warner <warner@lothar.com>
780  Date:   Tue Oct 4 00:42:32 2011 -0400
781 
782      remove unused _outstanding_queries
783 
784   src/allmydata/mutable/retrieve.py |    1 -
785   1 files changed, 0 insertions(+), 1 deletions(-)
786 
787  commit 56d12cc9968d03ccd53764455c671122c4f391d1
788  Author: Brian Warner <warner@lothar.com>
789  Date:   Tue Oct 4 00:40:57 2011 -0400
790 
791      change Retrieve.remaining_sharemap
792 
793   src/allmydata/mutable/retrieve.py |    4 ++--
794   1 files changed, 2 insertions(+), 2 deletions(-)
795 
796  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
797  Author: Brian Warner <warner@lothar.com>
798  Date:   Tue Oct 4 10:40:18 2011 -0400
799 
800      accessor for PublishStatus._problems
801 
802   src/allmydata/mutable/publish.py |    4 +++-
803   src/allmydata/web/status.py      |    2 +-
804   2 files changed, 4 insertions(+), 2 deletions(-)
805 
806  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
807  Author: Brian Warner <warner@lothar.com>
808  Date:   Tue Oct 4 10:36:39 2011 -0400
809 
810      accessor for RetrieveStatus._problems
811 
812   src/allmydata/mutable/retrieve.py |    8 ++++++--
813   src/allmydata/web/status.py       |    2 +-
814   2 files changed, 7 insertions(+), 3 deletions(-)
815 
816  commit ca7dea81f03801b1c7353fc00ecba689268109cf
817  Author: Brian Warner <warner@lothar.com>
818  Date:   Tue Oct 4 00:35:32 2011 -0400
819 
820      add .server to "reader", so we can get at it later
821 
822   src/allmydata/mutable/retrieve.py |    5 +++--
823   1 files changed, 3 insertions(+), 2 deletions(-)
824 
825  commit 6ef516e24908ec195af084a7550d1921a5e983b0
826  Author: Brian Warner <warner@lothar.com>
827  Date:   Tue Oct 4 00:32:32 2011 -0400
828 
829      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
830 
831   src/allmydata/mutable/checker.py   |    3 ++-
832   src/allmydata/mutable/filenode.py  |    6 ++++--
833   src/allmydata/mutable/retrieve.py  |    5 +++--
834   src/allmydata/test/test_mutable.py |    4 ++--
835   4 files changed, 11 insertions(+), 7 deletions(-)
836 
837  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
838  Author: Brian Warner <warner@lothar.com>
839  Date:   Tue Oct 4 00:21:51 2011 -0400
840 
841      mutable/retrieve.py: s/peer/server/
842 
843   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
844   src/allmydata/test/test_mutable.py |    6 +-
845   2 files changed, 44 insertions(+), 44 deletions(-)
846 
847  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
848  Author: Brian Warner <warner@lothar.com>
849  Date:   Tue Oct 4 00:16:01 2011 -0400
850 
851      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
852 
853   src/allmydata/web/status.py |    2 ++
854   1 files changed, 2 insertions(+), 0 deletions(-)
855 
856  commit 311466dd8c931bbba40d590ade867704282e7f1a
857  Author: Brian Warner <warner@lothar.com>
858  Date:   Mon Oct 3 23:48:16 2011 -0400
859 
860      API of PublishStatus.add_per_server_time()
861 
862   src/allmydata/mutable/publish.py |    5 +++--
863   1 files changed, 3 insertions(+), 2 deletions(-)
864 
865  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
866  Author: Brian Warner <warner@lothar.com>
867  Date:   Mon Oct 3 23:46:37 2011 -0400
868 
869      more simplifications
870 
871   src/allmydata/mutable/publish.py |    4 +---
872   1 files changed, 1 insertions(+), 3 deletions(-)
873 
874  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
875  Author: Brian Warner <warner@lothar.com>
876  Date:   Mon Oct 3 23:44:08 2011 -0400
877 
878      API of ServerMap.version_on_server()
879 
880   src/allmydata/mutable/publish.py   |    2 +-
881   src/allmydata/mutable/servermap.py |    4 ++--
882   src/allmydata/test/test_mutable.py |    5 ++---
883   3 files changed, 5 insertions(+), 6 deletions(-)
884 
885  commit 3e187e322511072e4683329df6b2c6c733a66dba
886  Author: Brian Warner <warner@lothar.com>
887  Date:   Tue Oct 4 00:16:32 2011 -0400
888 
889      API of ServerMap.make_sharemap()
890 
891   src/allmydata/mutable/servermap.py |    4 ++--
892   src/allmydata/test/test_mutable.py |    7 ++++---
893   src/allmydata/web/status.py        |    4 ++--
894   3 files changed, 8 insertions(+), 7 deletions(-)
895 
896  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
897  Author: Brian Warner <warner@lothar.com>
898  Date:   Mon Oct 3 23:36:19 2011 -0400
899 
900      small cleanups
901 
902   src/allmydata/mutable/publish.py |    4 ++--
903   1 files changed, 2 insertions(+), 2 deletions(-)
904 
905  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
906  Author: Brian Warner <warner@lothar.com>
907  Date:   Mon Oct 3 23:33:39 2011 -0400
908 
909      API of ServerMap.add_new_share()
910 
911   src/allmydata/mutable/publish.py   |    4 ++--
912   src/allmydata/mutable/servermap.py |    6 ++----
913   2 files changed, 4 insertions(+), 6 deletions(-)
914 
915  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
916  Author: Brian Warner <warner@lothar.com>
917  Date:   Mon Oct 3 23:30:26 2011 -0400
918 
919      API of ServerMap.get_bad_shares()
920 
921   src/allmydata/mutable/publish.py   |    3 +--
922   src/allmydata/mutable/servermap.py |    9 ++++-----
923   2 files changed, 5 insertions(+), 7 deletions(-)
924 
925  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
926  Author: Brian Warner <warner@lothar.com>
927  Date:   Mon Oct 3 23:26:58 2011 -0400
928 
929      more small cleanups
930 
931   src/allmydata/mutable/publish.py |    6 +++---
932   1 files changed, 3 insertions(+), 3 deletions(-)
933 
934  commit 38020da34f034f8889947dd3dc05e087ffff7106
935  Author: Brian Warner <warner@lothar.com>
936  Date:   Mon Oct 3 23:18:47 2011 -0400
937 
938      change Publish.bad_share_checkstrings
939 
940   src/allmydata/mutable/publish.py |    6 +++---
941   1 files changed, 3 insertions(+), 3 deletions(-)
942 
943  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
944  Author: Brian Warner <warner@lothar.com>
945  Date:   Mon Oct 3 23:16:31 2011 -0400
946 
947      change internals of Publish.update_goal()
948 
949   src/allmydata/mutable/publish.py |    8 +++-----
950   1 files changed, 3 insertions(+), 5 deletions(-)
951 
952  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
953  Author: Brian Warner <warner@lothar.com>
954  Date:   Mon Oct 3 23:11:42 2011 -0400
955 
956      get rid of Publish.connections
957 
958   src/allmydata/mutable/publish.py |   27 +++++----------------------
959   1 files changed, 5 insertions(+), 22 deletions(-)
960 
961  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
962  Author: Brian Warner <warner@lothar.com>
963  Date:   Mon Oct 3 23:05:32 2011 -0400
964 
965      change Publish.bad_servers
966 
967   src/allmydata/mutable/publish.py |   10 +++++-----
968   1 files changed, 5 insertions(+), 5 deletions(-)
969 
970  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
971  Author: Brian Warner <warner@lothar.com>
972  Date:   Mon Oct 3 23:03:07 2011 -0400
973 
974      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
975 
976   src/allmydata/mutable/publish.py |    2 +-
977   1 files changed, 1 insertions(+), 1 deletions(-)
978 
979  commit 605ea15ec15ed671513819003ccd211cdb9761e0
980  Author: Brian Warner <warner@lothar.com>
981  Date:   Mon Oct 3 23:00:21 2011 -0400
982 
983      change .placed
984 
985   src/allmydata/mutable/publish.py |    6 +++---
986   1 files changed, 3 insertions(+), 3 deletions(-)
987 
988  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
989  Author: Brian Warner <warner@lothar.com>
990  Date:   Mon Oct 3 22:59:22 2011 -0400
991 
992      temporarily stash IServer as .server on the "writer" object
993 
994   src/allmydata/mutable/publish.py |    2 ++
995   1 files changed, 2 insertions(+), 0 deletions(-)
996 
997  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
998  Author: Brian Warner <warner@lothar.com>
999  Date:   Mon Oct 3 22:48:18 2011 -0400
1000 
1001      change Publish.goal and API of log_goal() to use IServer, not serverid
1002 
1003   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1004   1 files changed, 24 insertions(+), 24 deletions(-)
1005 
1006  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1007  Author: Brian Warner <warner@lothar.com>
1008  Date:   Mon Oct 3 15:27:02 2011 -0400
1009 
1010      API of ServerMap.get_known_shares()
1011 
1012   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1013   src/allmydata/mutable/servermap.py |    7 ++-----
1014   2 files changed, 12 insertions(+), 11 deletions(-)
1015 
1016  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1017  Author: Brian Warner <warner@lothar.com>
1018  Date:   Mon Oct 3 15:20:29 2011 -0400
1019 
1020      Publish.full_serverlist
1021 
1022   src/allmydata/mutable/publish.py |   10 +++++-----
1023   1 files changed, 5 insertions(+), 5 deletions(-)
1024 
1025  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1026  Author: Brian Warner <warner@lothar.com>
1027  Date:   Mon Oct 3 15:12:31 2011 -0400
1028 
1029      API of ServerMap.all_servers()
1030 
1031   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1032   1 files changed, 6 insertions(+), 13 deletions(-)
1033 
1034  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1035  Author: Brian Warner <warner@lothar.com>
1036  Date:   Mon Oct 3 15:10:18 2011 -0400
1037 
1038      remove ServerMap.connections, set_rref_for_serverid()
1039 
1040   src/allmydata/mutable/servermap.py |   11 +----------
1041   1 files changed, 1 insertions(+), 10 deletions(-)
1042 
1043  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1044  Author: Brian Warner <warner@lothar.com>
1045  Date:   Mon Oct 3 15:04:06 2011 -0400
1046 
1047      API of ServerMap.mark_server_reachable()
1048 
1049   src/allmydata/mutable/servermap.py |    7 ++-----
1050   1 files changed, 2 insertions(+), 5 deletions(-)
1051 
1052  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1053  Author: Brian Warner <warner@lothar.com>
1054  Date:   Mon Oct 3 15:03:21 2011 -0400
1055 
1056      API of ServerMap.mark_server_unreachable()
1057 
1058   src/allmydata/mutable/servermap.py |    9 +++------
1059   1 files changed, 3 insertions(+), 6 deletions(-)
1060 
1061  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1062  Author: Brian Warner <warner@lothar.com>
1063  Date:   Mon Oct 3 15:02:03 2011 -0400
1064 
1065      API of status.set_privkey_from()
1066 
1067   src/allmydata/mutable/servermap.py |    7 +++----
1068   1 files changed, 3 insertions(+), 4 deletions(-)
1069 
1070  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1071  Author: Brian Warner <warner@lothar.com>
1072  Date:   Mon Oct 3 15:01:15 2011 -0400
1073 
1074      API of status.add_per_server_time()
1075 
1076   src/allmydata/mutable/servermap.py |    7 ++++---
1077   1 files changed, 4 insertions(+), 3 deletions(-)
1078 
1079  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1080  Author: Brian Warner <warner@lothar.com>
1081  Date:   Mon Oct 3 14:59:02 2011 -0400
1082 
1083      remove unused .versionmap
1084 
1085   src/allmydata/mutable/servermap.py |    7 -------
1086   1 files changed, 0 insertions(+), 7 deletions(-)
1087 
1088  commit 2816562e090d2294179db3588dafcca18de1bc2b
1089  Author: Brian Warner <warner@lothar.com>
1090  Date:   Mon Oct 3 14:57:51 2011 -0400
1091 
1092      remove serverid from all log messages. Also one unused lambda.
1093 
1094   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
1095   1 files changed, 15 insertions(+), 15 deletions(-)
1096 
1097  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
1098  Author: Brian Warner <warner@lothar.com>
1099  Date:   Mon Oct 3 14:54:30 2011 -0400
1100 
1101      removed unused _readers
1102 
1103   src/allmydata/mutable/servermap.py |    3 ---
1104   1 files changed, 0 insertions(+), 3 deletions(-)
1105 
1106  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
1107  Author: Brian Warner <warner@lothar.com>
1108  Date:   Mon Oct 3 14:54:16 2011 -0400
1109 
1110      remove unused _sharemap
1111 
1112   src/allmydata/mutable/servermap.py |    1 -
1113   1 files changed, 0 insertions(+), 1 deletions(-)
1114 
1115  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
1116  Author: Brian Warner <warner@lothar.com>
1117  Date:   Mon Oct 3 14:49:03 2011 -0400
1118 
1119      _must_query
1120 
1121   src/allmydata/mutable/servermap.py |    8 ++++----
1122   1 files changed, 4 insertions(+), 4 deletions(-)
1123 
1124  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
1125  Author: Brian Warner <warner@lothar.com>
1126  Date:   Mon Oct 3 14:48:05 2011 -0400
1127 
1128      _queries_outstanding
1129 
1130   src/allmydata/mutable/servermap.py |   16 +++++++---------
1131   1 files changed, 7 insertions(+), 9 deletions(-)
1132 
1133  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
1134  Author: Brian Warner <warner@lothar.com>
1135  Date:   Mon Oct 3 14:46:17 2011 -0400
1136 
1137      _empty_servers
1138 
1139   src/allmydata/mutable/servermap.py |    5 ++---
1140   1 files changed, 2 insertions(+), 3 deletions(-)
1141 
1142  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
1143  Author: Brian Warner <warner@lothar.com>
1144  Date:   Mon Oct 3 14:45:39 2011 -0400
1145 
1146      _good_servers
1147 
1148   src/allmydata/mutable/servermap.py |    4 ++--
1149   1 files changed, 2 insertions(+), 2 deletions(-)
1150 
1151  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
1152  Author: Brian Warner <warner@lothar.com>
1153  Date:   Mon Oct 3 14:44:59 2011 -0400
1154 
1155      _bad_servers
1156 
1157   src/allmydata/mutable/servermap.py |   14 +++++++-------
1158   1 files changed, 7 insertions(+), 7 deletions(-)
1159 
1160  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
1161  Author: Brian Warner <warner@lothar.com>
1162  Date:   Mon Oct 3 14:41:54 2011 -0400
1163 
1164      API of _try_to_set_pubkey()
1165 
1166   src/allmydata/mutable/servermap.py |    7 ++++---
1167   1 files changed, 4 insertions(+), 3 deletions(-)
1168 
1169  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
1170  Author: Brian Warner <warner@lothar.com>
1171  Date:   Mon Oct 3 14:35:02 2011 -0400
1172 
1173      API of notify_server_corruption()
1174 
1175   src/allmydata/mutable/servermap.py |    6 +++---
1176   1 files changed, 3 insertions(+), 3 deletions(-)
1177 
1178  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
1179  Author: Brian Warner <warner@lothar.com>
1180  Date:   Mon Oct 3 14:34:09 2011 -0400
1181 
1182      API of _got_signature_one_share()
1183 
1184   src/allmydata/mutable/servermap.py |    9 +++++----
1185   1 files changed, 5 insertions(+), 4 deletions(-)
1186 
1187  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
1188  Author: Brian Warner <warner@lothar.com>
1189  Date:   Mon Oct 3 14:32:33 2011 -0400
1190 
1191      API of _try_to_validate_privkey()
1192 
1193   src/allmydata/mutable/servermap.py |    9 +++++----
1194   1 files changed, 5 insertions(+), 4 deletions(-)
1195 
1196  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
1197  Author: Brian Warner <warner@lothar.com>
1198  Date:   Mon Oct 3 14:31:48 2011 -0400
1199 
1200      API and internals of _add_lease_failed()
1201 
1202   src/allmydata/mutable/servermap.py |    8 ++++----
1203   1 files changed, 4 insertions(+), 4 deletions(-)
1204 
1205  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
1206  Author: Brian Warner <warner@lothar.com>
1207  Date:   Mon Oct 3 14:30:37 2011 -0400
1208 
1209      API of _privkey_query_failed()
1210 
1211   src/allmydata/mutable/servermap.py |    5 +++--
1212   1 files changed, 3 insertions(+), 2 deletions(-)
1213 
1214  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
1215  Author: Brian Warner <warner@lothar.com>
1216  Date:   Mon Oct 3 14:29:43 2011 -0400
1217 
1218      fix bug in call to _privkey_query_failed, unrelated to refactoring
1219 
1220   src/allmydata/mutable/servermap.py |    2 +-
1221   1 files changed, 1 insertions(+), 1 deletions(-)
1222 
1223  commit ae615bec7d0d1b269710b6902797b12f9592ad62
1224  Author: Brian Warner <warner@lothar.com>
1225  Date:   Mon Oct 3 14:27:17 2011 -0400
1226 
1227      API of _got_corrupt_share()
1228 
1229   src/allmydata/mutable/servermap.py |   17 +++++++++--------
1230   1 files changed, 9 insertions(+), 8 deletions(-)
1231 
1232  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
1233  Author: Brian Warner <warner@lothar.com>
1234  Date:   Mon Oct 3 14:23:16 2011 -0400
1235 
1236      API of _got_results()
1237 
1238   src/allmydata/mutable/servermap.py |    9 +++++----
1239   1 files changed, 5 insertions(+), 4 deletions(-)
1240 
1241  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
1242  Author: Brian Warner <warner@lothar.com>
1243  Date:   Mon Oct 3 14:19:19 2011 -0400
1244 
1245      API of _query_failed()
1246 
1247   src/allmydata/mutable/servermap.py |    5 +++--
1248   1 files changed, 3 insertions(+), 2 deletions(-)
1249 
1250  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
1251  Author: Brian Warner <warner@lothar.com>
1252  Date:   Mon Oct 3 14:17:20 2011 -0400
1253 
1254      API of _do_read()
1255 
1256   src/allmydata/mutable/servermap.py |    6 ++++--
1257   1 files changed, 4 insertions(+), 2 deletions(-)
1258 
1259  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
1260  Author: Brian Warner <warner@lothar.com>
1261  Date:   Mon Oct 3 14:20:21 2011 -0400
1262 
1263      API of _do_query()
1264 
1265   src/allmydata/mutable/servermap.py |   15 +++++++--------
1266   1 files changed, 7 insertions(+), 8 deletions(-)
1267 
1268  commit 330625b9dac4cdbe72a11464a893065b9aeed453
1269  Author: Brian Warner <warner@lothar.com>
1270  Date:   Mon Oct 3 14:43:05 2011 -0400
1271 
1272      next step: first batch of updates to ServermapUpdater
1273 
1274      updates:
1275       most method-local variables in update()
1276       API of _build_initial_querylist()
1277       API of _send_initial_requests()
1278       .full_serverlist
1279       .extra_servers
1280 
1281   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
1282   1 files changed, 21 insertions(+), 18 deletions(-)
1283 
1284  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
1285  Author: Brian Warner <warner@lothar.com>
1286  Date:   Mon Oct 3 15:07:00 2011 -0400
1287 
1288      internal change: index _bad_shares with IServer
1289 
1290   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
1291   1 files changed, 10 insertions(+), 10 deletions(-)
1292 
1293  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
1294  Author: Brian Warner <warner@lothar.com>
1295  Date:   Mon Oct 3 18:20:47 2011 +0100
1296 
1297      internal change: index _known_shares with IServer instead of serverid
1298 
1299      callers are unchanged
1300 
1301   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
1302   1 files changed, 25 insertions(+), 17 deletions(-)
1303 
1304  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
1305  Author: Brian Warner <warner@lothar.com>
1306  Date:   Mon Oct 3 18:11:43 2011 +0100
1307 
1308      accessors and name cleanup for servermap.Servermap.last_update_mode/time
1309 
1310   src/allmydata/mutable/filenode.py  |    6 +++---
1311   src/allmydata/mutable/publish.py   |    4 ++--
1312   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1313   3 files changed, 16 insertions(+), 11 deletions(-)
1314 
1315  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
1316  Author: Brian Warner <warner@lothar.com>
1317  Date:   Mon Oct 3 18:11:14 2011 +0100
1318 
1319      accessors and name cleanup for servermap.Servermap.problems
1320 
1321   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
1322   src/allmydata/test/test_mutable.py |    6 +++---
1323   2 files changed, 16 insertions(+), 11 deletions(-)
1324 
1325  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
1326  Author: Brian Warner <warner@lothar.com>
1327  Date:   Mon Oct 3 18:10:41 2011 +0100
1328 
1329      accessors and name cleanup for servermap.Servermap.bad_shares
1330 
1331   src/allmydata/mutable/publish.py   |    2 +-
1332   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
1333   2 files changed, 18 insertions(+), 14 deletions(-)
1334 
1335  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
1336  Author: Brian Warner <warner@lothar.com>
1337  Date:   Mon Oct 3 18:10:05 2011 +0100
1338 
1339      accessors and name cleanup for servermap.Servermap.servermap .
1340 
1341   src/allmydata/mutable/publish.py   |   14 +++++----
1342   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
1343   2 files changed, 29 insertions(+), 23 deletions(-)
1344 
1345  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
1346  Author: Brian Warner <warner@lothar.com>
1347  Date:   Mon Oct 3 18:08:02 2011 +0100
1348 
1349      fix reachable_servers
1350 
1351   src/allmydata/mutable/checker.py   |    3 ++-
1352   src/allmydata/mutable/publish.py   |    4 +++-
1353   src/allmydata/mutable/servermap.py |   12 ++++++++++--
1354   3 files changed, 15 insertions(+), 4 deletions(-)
1355 
1356  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
1357  Author: Brian Warner <warner@lothar.com>
1358  Date:   Mon Oct 3 18:06:03 2011 +0100
1359 
1360      fix Servermap.unreachable_servers
1361 
1362   src/allmydata/mutable/servermap.py |   11 ++++++++---
1363   1 files changed, 8 insertions(+), 3 deletions(-)
1364 
1365  commit 2d9ea79b94bd4db674d40386fda90825785ac495
1366  Author: Brian Warner <warner@lothar.com>
1367  Date:   Mon Oct 3 18:03:48 2011 +0100
1368 
1369      give ServerMap a StorageFarmBroker, temporary
1370 
1371      this makes it possible for the ServerMap to accept bare serverids and still
1372      build data structures with IServers
1373 
1374   src/allmydata/mutable/checker.py   |    2 +-
1375   src/allmydata/mutable/filenode.py  |    2 +-
1376   src/allmydata/mutable/publish.py   |    2 +-
1377   src/allmydata/mutable/servermap.py |    5 +++--
1378   src/allmydata/test/test_mutable.py |    8 ++++----
1379   5 files changed, 10 insertions(+), 9 deletions(-)
1380 
1381  commit 718d1aeff6fded893f65397806d22ece928b0dd4
1382  Author: Brian Warner <warner@lothar.com>
1383  Date:   Mon Oct 3 13:43:30 2011 -0400
1384 
1385      add StorageFarmBroker.get_server_for_id(), temporary helper
1386 
1387      This will go away once we're passing IServers everywhere.
1388 
1389   src/allmydata/storage_client.py  |    2 ++
1390   src/allmydata/test/no_network.py |   13 +++++++++++++
1391   2 files changed, 15 insertions(+), 0 deletions(-)
1392 
1393  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
1394  Author: Brian Warner <warner@lothar.com>
1395  Date:   Sun Oct 2 01:11:50 2011 +0100
1396 
1397      add proper accessors for Servermap.connections, to make refactoring easier
1398 
1399   src/allmydata/mutable/publish.py   |    6 +++---
1400   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1401   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1402   3 files changed, 19 insertions(+), 14 deletions(-)
1403 
1404  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
1405  Author: Brian Warner <warner@lothar.com>
1406  Date:   Fri Sep 23 10:34:30 2011 -0700
1407 
1408      mutable/servermap.py and neighbors: s/peer/server/
1409 
1410   src/allmydata/mutable/checker.py   |   22 +-
1411   src/allmydata/mutable/publish.py   |  204 +++++++-------
1412   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
1413   src/allmydata/test/test_mutable.py |   18 +-
1414   4 files changed, 323 insertions(+), 323 deletions(-)
1415 IServer refactoring: pass IServer instances around, instead of peerids
1416 
1417 refs #1363
1418 
1419 This collapses 88 small incremental changes (each of which passes all tests)
1420 into one big patch. The development process for the long path started with
1421 adding some temporary scaffolding, changing one method at a time, then
1422 removing the scaffolding. The individual pieces are as follows, in reverse
1423 chronological order (the first patch is at the end of this comment):
1424 
1425  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
1426  Author: Brian Warner <warner@lothar.com>
1427  Date:   Tue Oct 4 16:05:00 2011 -0400
1428 
1429      immutable/downloader/status.py: correct comment
1430 
1431   src/allmydata/immutable/downloader/status.py |    2 +-
1432   1 files changed, 1 insertions(+), 1 deletions(-)
1433 
1434  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
1435  Author: Brian Warner <warner@lothar.com>
1436  Date:   Tue Oct 4 15:46:20 2011 -0400
1437 
1438      remove temporary ServerMap._storage_broker
1439 
1440   src/allmydata/mutable/checker.py   |    2 +-
1441   src/allmydata/mutable/filenode.py  |    2 +-
1442   src/allmydata/mutable/publish.py   |    2 +-
1443   src/allmydata/mutable/servermap.py |    5 ++---
1444   src/allmydata/test/test_mutable.py |    8 ++++----
1445   5 files changed, 9 insertions(+), 10 deletions(-)
1446 
1447  commit d703096b41632c47d76414b12672e076a422ff5c
1448  Author: Brian Warner <warner@lothar.com>
1449  Date:   Tue Oct 4 15:37:05 2011 -0400
1450 
1451      remove temporary storage_broker.get_server_for_id()
1452 
1453   src/allmydata/storage_client.py  |    3 ---
1454   src/allmydata/test/no_network.py |   13 -------------
1455   2 files changed, 0 insertions(+), 16 deletions(-)
1456 
1457  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
1458  Author: Brian Warner <warner@lothar.com>
1459  Date:   Tue Oct 4 12:50:06 2011 -0400
1460 
1461      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
1462 
1463   src/allmydata/mutable/retrieve.py |   10 +++++-----
1464   1 files changed, 5 insertions(+), 5 deletions(-)
1465 
1466  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
1467  Author: Brian Warner <warner@lothar.com>
1468  Date:   Tue Oct 4 12:48:08 2011 -0400
1469 
1470      API of Retrieve._validate_block(), trying to remove reader.server
1471 
1472   src/allmydata/mutable/retrieve.py |   14 +++++++-------
1473   1 files changed, 7 insertions(+), 7 deletions(-)
1474 
1475  commit 572d5070761861a2190349d1ed8d85dbc25698a5
1476  Author: Brian Warner <warner@lothar.com>
1477  Date:   Tue Oct 4 12:36:58 2011 -0400
1478 
1479      API of Retrieve._mark_bad_share(), trying to remove reader.server
1480 
1481   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
1482   1 files changed, 9 insertions(+), 12 deletions(-)
1483 
1484  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
1485  Author: Brian Warner <warner@lothar.com>
1486  Date:   Tue Oct 4 12:06:13 2011 -0400
1487 
1488      remove now-unused get_rref_for_serverid()
1489 
1490   src/allmydata/mutable/servermap.py |    3 ---
1491   1 files changed, 0 insertions(+), 3 deletions(-)
1492 
1493  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
1494  Author: Brian Warner <warner@lothar.com>
1495  Date:   Tue Oct 4 12:03:09 2011 -0400
1496 
1497      Retrieve: stop adding .serverid attributes to readers
1498 
1499   src/allmydata/mutable/retrieve.py |    1 -
1500   1 files changed, 0 insertions(+), 1 deletions(-)
1501 
1502  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
1503  Author: Brian Warner <warner@lothar.com>
1504  Date:   Tue Oct 4 12:03:34 2011 -0400
1505 
1506      return value of Retrieve(verify=True)
1507 
1508   src/allmydata/mutable/checker.py  |   11 ++++++-----
1509   src/allmydata/mutable/retrieve.py |    3 +--
1510   2 files changed, 7 insertions(+), 7 deletions(-)
1511 
1512  commit e9ab7978c384e1f677cb7779dc449b1044face82
1513  Author: Brian Warner <warner@lothar.com>
1514  Date:   Tue Oct 4 11:54:23 2011 -0400
1515 
1516      Retrieve._bad_shares (but not return value, used by Verifier)
1517 
1518   src/allmydata/mutable/retrieve.py |    7 ++++---
1519   1 files changed, 4 insertions(+), 3 deletions(-)
1520 
1521  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
1522  Author: Brian Warner <warner@lothar.com>
1523  Date:   Tue Oct 4 11:51:23 2011 -0400
1524 
1525      Publish: stop adding .serverid attributes to writers
1526 
1527   src/allmydata/mutable/publish.py |    9 ++-------
1528   1 files changed, 2 insertions(+), 7 deletions(-)
1529 
1530  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
1531  Author: Brian Warner <warner@lothar.com>
1532  Date:   Tue Oct 4 11:56:33 2011 -0400
1533 
1534      API of get_write_enabler()
1535 
1536   src/allmydata/mutable/filenode.py |    7 ++++---
1537   src/allmydata/mutable/publish.py  |    4 ++--
1538   src/allmydata/test/no_network.py  |    3 +++
1539   3 files changed, 9 insertions(+), 5 deletions(-)
1540 
1541  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
1542  Author: Brian Warner <warner@lothar.com>
1543  Date:   Tue Oct 4 11:46:24 2011 -0400
1544 
1545      API of get_(renewal|cancel)_secret()
1546 
1547   src/allmydata/mutable/filenode.py  |   14 ++++++++------
1548   src/allmydata/mutable/publish.py   |    8 ++++----
1549   src/allmydata/mutable/servermap.py |    5 ++---
1550   3 files changed, 14 insertions(+), 13 deletions(-)
1551 
1552  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
1553  Author: Brian Warner <warner@lothar.com>
1554  Date:   Tue Oct 4 11:41:52 2011 -0400
1555 
1556      API of CorruptShareError. Also comment out some related+unused test_web.py code
1557 
1558   src/allmydata/mutable/common.py    |   13 +++++--------
1559   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1560   src/allmydata/mutable/servermap.py |    8 +++-----
1561   src/allmydata/test/common.py       |   13 ++++++++-----
1562   4 files changed, 21 insertions(+), 23 deletions(-)
1563 
1564  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
1565  Author: Brian Warner <warner@lothar.com>
1566  Date:   Tue Oct 4 12:01:46 2011 -0400
1567 
1568      API of ServerMap.mark_bad_share()
1569 
1570   src/allmydata/mutable/publish.py   |    2 +-
1571   src/allmydata/mutable/retrieve.py  |    6 +++---
1572   src/allmydata/mutable/servermap.py |    6 ++----
1573   src/allmydata/test/test_mutable.py |    3 +--
1574   4 files changed, 7 insertions(+), 10 deletions(-)
1575 
1576  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
1577  Author: Brian Warner <warner@lothar.com>
1578  Date:   Tue Oct 4 11:11:17 2011 -0400
1579 
1580      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
1581 
1582   src/allmydata/mutable/servermap.py |    7 ++-----
1583   src/allmydata/test/test_mutable.py |    6 +++---
1584   2 files changed, 5 insertions(+), 8 deletions(-)
1585 
1586  commit 2d32e448677d6b818692e801045d4115b29abf21
1587  Author: Brian Warner <warner@lothar.com>
1588  Date:   Tue Oct 4 11:07:10 2011 -0400
1589 
1590      API of ServerMap.all_servers_for_version()
1591 
1592   src/allmydata/mutable/servermap.py |    4 ++--
1593   1 files changed, 2 insertions(+), 2 deletions(-)
1594 
1595  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
1596  Author: Brian Warner <warner@lothar.com>
1597  Date:   Tue Oct 4 11:04:50 2011 -0400
1598 
1599      internals of ServerMap methods that use make_versionmap(), remove temp copy
1600 
1601   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
1602   1 files changed, 10 insertions(+), 18 deletions(-)
1603 
1604  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
1605  Author: Brian Warner <warner@lothar.com>
1606  Date:   Tue Oct 4 11:01:28 2011 -0400
1607 
1608      API of ServerMap.make_versionmap()
1609 
1610   src/allmydata/mutable/checker.py   |    4 ++--
1611   src/allmydata/mutable/retrieve.py  |    5 ++---
1612   src/allmydata/mutable/servermap.py |    4 ++--
1613   src/allmydata/test/test_mutable.py |    7 ++++---
1614   4 files changed, 10 insertions(+), 10 deletions(-)
1615 
1616  commit b6882ece49afb4c507d118af2db346fa329209dc
1617  Author: Brian Warner <warner@lothar.com>
1618  Date:   Tue Oct 4 10:53:38 2011 -0400
1619 
1620      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
1621 
1622   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
1623   1 files changed, 13 insertions(+), 5 deletions(-)
1624 
1625  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
1626  Author: Brian Warner <warner@lothar.com>
1627  Date:   Tue Oct 4 00:45:58 2011 -0400
1628 
1629      API of RetrieveStatus.add_problem()
1630 
1631   src/allmydata/mutable/retrieve.py |    5 +++--
1632   1 files changed, 3 insertions(+), 2 deletions(-)
1633 
1634  commit 4976d29ffae565a048851601c29013bbae2976d8
1635  Author: Brian Warner <warner@lothar.com>
1636  Date:   Tue Oct 4 00:45:05 2011 -0400
1637 
1638      API of RetrieveStatus.add_fetch_timing()
1639 
1640   src/allmydata/mutable/retrieve.py |    5 +++--
1641   1 files changed, 3 insertions(+), 2 deletions(-)
1642 
1643  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
1644  Author: Brian Warner <warner@lothar.com>
1645  Date:   Tue Oct 4 00:44:04 2011 -0400
1646 
1647      API of Retrieve.notify_server_corruption()
1648 
1649   src/allmydata/mutable/retrieve.py |    6 +++---
1650   1 files changed, 3 insertions(+), 3 deletions(-)
1651 
1652  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
1653  Author: Brian Warner <warner@lothar.com>
1654  Date:   Tue Oct 4 00:42:32 2011 -0400
1655 
1656      remove unused _outstanding_queries
1657 
1658   src/allmydata/mutable/retrieve.py |    1 -
1659   1 files changed, 0 insertions(+), 1 deletions(-)
1660 
1661  commit 56d12cc9968d03ccd53764455c671122c4f391d1
1662  Author: Brian Warner <warner@lothar.com>
1663  Date:   Tue Oct 4 00:40:57 2011 -0400
1664 
1665      change Retrieve.remaining_sharemap
1666 
1667   src/allmydata/mutable/retrieve.py |    4 ++--
1668   1 files changed, 2 insertions(+), 2 deletions(-)
1669 
1670  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
1671  Author: Brian Warner <warner@lothar.com>
1672  Date:   Tue Oct 4 10:40:18 2011 -0400
1673 
1674      accessor for PublishStatus._problems
1675 
1676   src/allmydata/mutable/publish.py |    4 +++-
1677   src/allmydata/web/status.py      |    2 +-
1678   2 files changed, 4 insertions(+), 2 deletions(-)
1679 
1680  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
1681  Author: Brian Warner <warner@lothar.com>
1682  Date:   Tue Oct 4 10:36:39 2011 -0400
1683 
1684      accessor for RetrieveStatus._problems
1685 
1686   src/allmydata/mutable/retrieve.py |    8 ++++++--
1687   src/allmydata/web/status.py       |    2 +-
1688   2 files changed, 7 insertions(+), 3 deletions(-)
1689 
1690  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1691  Author: Brian Warner <warner@lothar.com>
1692  Date:   Tue Oct 4 00:35:32 2011 -0400
1693 
1694      add .server to "reader", so we can get at it later
1695 
1696   src/allmydata/mutable/retrieve.py |    5 +++--
1697   1 files changed, 3 insertions(+), 2 deletions(-)
1698 
1699  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1700  Author: Brian Warner <warner@lothar.com>
1701  Date:   Tue Oct 4 00:32:32 2011 -0400
1702 
1703      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1704 
1705   src/allmydata/mutable/checker.py   |    3 ++-
1706   src/allmydata/mutable/filenode.py  |    6 ++++--
1707   src/allmydata/mutable/retrieve.py  |    5 +++--
1708   src/allmydata/test/test_mutable.py |    4 ++--
1709   4 files changed, 11 insertions(+), 7 deletions(-)
1710 
1711  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1712  Author: Brian Warner <warner@lothar.com>
1713  Date:   Tue Oct 4 00:21:51 2011 -0400
1714 
1715      mutable/retrieve.py: s/peer/server/
1716 
1717   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1718   src/allmydata/test/test_mutable.py |    6 +-
1719   2 files changed, 44 insertions(+), 44 deletions(-)
1720 
1721  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1722  Author: Brian Warner <warner@lothar.com>
1723  Date:   Tue Oct 4 00:16:01 2011 -0400
1724 
1725      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1726 
1727   src/allmydata/web/status.py |    2 ++
1728   1 files changed, 2 insertions(+), 0 deletions(-)
1729 
1730  commit 311466dd8c931bbba40d590ade867704282e7f1a
1731  Author: Brian Warner <warner@lothar.com>
1732  Date:   Mon Oct 3 23:48:16 2011 -0400
1733 
1734      API of PublishStatus.add_per_server_time()
1735 
1736   src/allmydata/mutable/publish.py |    5 +++--
1737   1 files changed, 3 insertions(+), 2 deletions(-)
1738 
1739  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1740  Author: Brian Warner <warner@lothar.com>
1741  Date:   Mon Oct 3 23:46:37 2011 -0400
1742 
1743      more simplifications
1744 
1745   src/allmydata/mutable/publish.py |    4 +---
1746   1 files changed, 1 insertions(+), 3 deletions(-)
1747 
1748  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1749  Author: Brian Warner <warner@lothar.com>
1750  Date:   Mon Oct 3 23:44:08 2011 -0400
1751 
1752      API of ServerMap.version_on_server()
1753 
1754   src/allmydata/mutable/publish.py   |    2 +-
1755   src/allmydata/mutable/servermap.py |    4 ++--
1756   src/allmydata/test/test_mutable.py |    5 ++---
1757   3 files changed, 5 insertions(+), 6 deletions(-)
1758 
1759  commit 3e187e322511072e4683329df6b2c6c733a66dba
1760  Author: Brian Warner <warner@lothar.com>
1761  Date:   Tue Oct 4 00:16:32 2011 -0400
1762 
1763      API of ServerMap.make_sharemap()
1764 
1765   src/allmydata/mutable/servermap.py |    4 ++--
1766   src/allmydata/test/test_mutable.py |    7 ++++---
1767   src/allmydata/web/status.py        |    4 ++--
1768   3 files changed, 8 insertions(+), 7 deletions(-)
1769 
1770  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1771  Author: Brian Warner <warner@lothar.com>
1772  Date:   Mon Oct 3 23:36:19 2011 -0400
1773 
1774      small cleanups
1775 
1776   src/allmydata/mutable/publish.py |    4 ++--
1777   1 files changed, 2 insertions(+), 2 deletions(-)
1778 
1779  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1780  Author: Brian Warner <warner@lothar.com>
1781  Date:   Mon Oct 3 23:33:39 2011 -0400
1782 
1783      API of ServerMap.add_new_share()
1784 
1785   src/allmydata/mutable/publish.py   |    4 ++--
1786   src/allmydata/mutable/servermap.py |    6 ++----
1787   2 files changed, 4 insertions(+), 6 deletions(-)
1788 
1789  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1790  Author: Brian Warner <warner@lothar.com>
1791  Date:   Mon Oct 3 23:30:26 2011 -0400
1792 
1793      API of ServerMap.get_bad_shares()
1794 
1795   src/allmydata/mutable/publish.py   |    3 +--
1796   src/allmydata/mutable/servermap.py |    9 ++++-----
1797   2 files changed, 5 insertions(+), 7 deletions(-)
1798 
1799  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1800  Author: Brian Warner <warner@lothar.com>
1801  Date:   Mon Oct 3 23:26:58 2011 -0400
1802 
1803      more small cleanups
1804 
1805   src/allmydata/mutable/publish.py |    6 +++---
1806   1 files changed, 3 insertions(+), 3 deletions(-)
1807 
1808  commit 38020da34f034f8889947dd3dc05e087ffff7106
1809  Author: Brian Warner <warner@lothar.com>
1810  Date:   Mon Oct 3 23:18:47 2011 -0400
1811 
1812      change Publish.bad_share_checkstrings
1813 
1814   src/allmydata/mutable/publish.py |    6 +++---
1815   1 files changed, 3 insertions(+), 3 deletions(-)
1816 
1817  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
1818  Author: Brian Warner <warner@lothar.com>
1819  Date:   Mon Oct 3 23:16:31 2011 -0400
1820 
1821      change internals of Publish.update_goal()
1822 
1823   src/allmydata/mutable/publish.py |    8 +++-----
1824   1 files changed, 3 insertions(+), 5 deletions(-)
1825 
1826  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
1827  Author: Brian Warner <warner@lothar.com>
1828  Date:   Mon Oct 3 23:11:42 2011 -0400
1829 
1830      get rid of Publish.connections
1831 
1832   src/allmydata/mutable/publish.py |   27 +++++----------------------
1833   1 files changed, 5 insertions(+), 22 deletions(-)
1834 
1835  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1836  Author: Brian Warner <warner@lothar.com>
1837  Date:   Mon Oct 3 23:05:32 2011 -0400
1838 
1839      change Publish.bad_servers
1840 
1841   src/allmydata/mutable/publish.py |   10 +++++-----
1842   1 files changed, 5 insertions(+), 5 deletions(-)
1843 
1844  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1845  Author: Brian Warner <warner@lothar.com>
1846  Date:   Mon Oct 3 23:03:07 2011 -0400
1847 
1848      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1849 
1850   src/allmydata/mutable/publish.py |    2 +-
1851   1 files changed, 1 insertions(+), 1 deletions(-)
1852 
1853  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1854  Author: Brian Warner <warner@lothar.com>
1855  Date:   Mon Oct 3 23:00:21 2011 -0400
1856 
1857      change .placed
1858 
1859   src/allmydata/mutable/publish.py |    6 +++---
1860   1 files changed, 3 insertions(+), 3 deletions(-)
1861 
1862  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1863  Author: Brian Warner <warner@lothar.com>
1864  Date:   Mon Oct 3 22:59:22 2011 -0400
1865 
1866      temporarily stash IServer as .server on the "writer" object
1867 
1868   src/allmydata/mutable/publish.py |    2 ++
1869   1 files changed, 2 insertions(+), 0 deletions(-)
1870 
1871  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
1872  Author: Brian Warner <warner@lothar.com>
1873  Date:   Mon Oct 3 22:48:18 2011 -0400
1874 
1875      change Publish.goal and API of log_goal() to use IServer, not serverid
1876 
1877   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1878   1 files changed, 24 insertions(+), 24 deletions(-)
1879 
1880  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1881  Author: Brian Warner <warner@lothar.com>
1882  Date:   Mon Oct 3 15:27:02 2011 -0400
1883 
1884      API of ServerMap.get_known_shares()
1885 
1886   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1887   src/allmydata/mutable/servermap.py |    7 ++-----
1888   2 files changed, 12 insertions(+), 11 deletions(-)
1889 
1890  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1891  Author: Brian Warner <warner@lothar.com>
1892  Date:   Mon Oct 3 15:20:29 2011 -0400
1893 
1894      Publish.full_serverlist
1895 
1896   src/allmydata/mutable/publish.py |   10 +++++-----
1897   1 files changed, 5 insertions(+), 5 deletions(-)
1898 
1899  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1900  Author: Brian Warner <warner@lothar.com>
1901  Date:   Mon Oct 3 15:12:31 2011 -0400
1902 
1903      API of ServerMap.all_servers()
1904 
1905   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1906   1 files changed, 6 insertions(+), 13 deletions(-)
1907 
1908  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1909  Author: Brian Warner <warner@lothar.com>
1910  Date:   Mon Oct 3 15:10:18 2011 -0400
1911 
1912      remove ServerMap.connections, set_rref_for_serverid()
1913 
1914   src/allmydata/mutable/servermap.py |   11 +----------
1915   1 files changed, 1 insertions(+), 10 deletions(-)
1916 
1917  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1918  Author: Brian Warner <warner@lothar.com>
1919  Date:   Mon Oct 3 15:04:06 2011 -0400
1920 
1921      API of ServerMap.mark_server_reachable()
1922 
1923   src/allmydata/mutable/servermap.py |    7 ++-----
1924   1 files changed, 2 insertions(+), 5 deletions(-)
1925 
1926  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1927  Author: Brian Warner <warner@lothar.com>
1928  Date:   Mon Oct 3 15:03:21 2011 -0400
1929 
1930      API of ServerMap.mark_server_unreachable()
1931 
1932   src/allmydata/mutable/servermap.py |    9 +++------
1933   1 files changed, 3 insertions(+), 6 deletions(-)
1934 
1935  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1936  Author: Brian Warner <warner@lothar.com>
1937  Date:   Mon Oct 3 15:02:03 2011 -0400
1938 
1939      API of status.set_privkey_from()
1940 
1941   src/allmydata/mutable/servermap.py |    7 +++----
1942   1 files changed, 3 insertions(+), 4 deletions(-)
1943 
1944  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1945  Author: Brian Warner <warner@lothar.com>
1946  Date:   Mon Oct 3 15:01:15 2011 -0400
1947 
1948      API of status.add_per_server_time()
1949 
1950   src/allmydata/mutable/servermap.py |    7 ++++---
1951   1 files changed, 4 insertions(+), 3 deletions(-)
1952 
1953  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1954  Author: Brian Warner <warner@lothar.com>
1955  Date:   Mon Oct 3 14:59:02 2011 -0400
1956 
1957      remove unused .versionmap
1958 
1959   src/allmydata/mutable/servermap.py |    7 -------
1960   1 files changed, 0 insertions(+), 7 deletions(-)
1961 
1962  commit 2816562e090d2294179db3588dafcca18de1bc2b
1963  Author: Brian Warner <warner@lothar.com>
1964  Date:   Mon Oct 3 14:57:51 2011 -0400
1965 
1966      remove serverid from all log messages. Also one unused lambda.
1967 
1968   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
1969   1 files changed, 15 insertions(+), 15 deletions(-)
1970 
1971  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
1972  Author: Brian Warner <warner@lothar.com>
1973  Date:   Mon Oct 3 14:54:30 2011 -0400
1974 
1975      removed unused _readers
1976 
1977   src/allmydata/mutable/servermap.py |    3 ---
1978   1 files changed, 0 insertions(+), 3 deletions(-)
1979 
1980  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
1981  Author: Brian Warner <warner@lothar.com>
1982  Date:   Mon Oct 3 14:54:16 2011 -0400
1983 
1984      remove unused _sharemap
1985 
1986   src/allmydata/mutable/servermap.py |    1 -
1987   1 files changed, 0 insertions(+), 1 deletions(-)
1988 
1989  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
1990  Author: Brian Warner <warner@lothar.com>
1991  Date:   Mon Oct 3 14:49:03 2011 -0400
1992 
1993      _must_query
1994 
1995   src/allmydata/mutable/servermap.py |    8 ++++----
1996   1 files changed, 4 insertions(+), 4 deletions(-)
1997 
1998  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
1999  Author: Brian Warner <warner@lothar.com>
2000  Date:   Mon Oct 3 14:48:05 2011 -0400
2001 
2002      _queries_outstanding
2003 
2004   src/allmydata/mutable/servermap.py |   16 +++++++---------
2005   1 files changed, 7 insertions(+), 9 deletions(-)
2006 
2007  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2008  Author: Brian Warner <warner@lothar.com>
2009  Date:   Mon Oct 3 14:46:17 2011 -0400
2010 
2011      _empty_servers
2012 
2013   src/allmydata/mutable/servermap.py |    5 ++---
2014   1 files changed, 2 insertions(+), 3 deletions(-)
2015 
2016  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2017  Author: Brian Warner <warner@lothar.com>
2018  Date:   Mon Oct 3 14:45:39 2011 -0400
2019 
2020      _good_servers
2021 
2022   src/allmydata/mutable/servermap.py |    4 ++--
2023   1 files changed, 2 insertions(+), 2 deletions(-)
2024 
2025  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2026  Author: Brian Warner <warner@lothar.com>
2027  Date:   Mon Oct 3 14:44:59 2011 -0400
2028 
2029      _bad_servers
2030 
2031   src/allmydata/mutable/servermap.py |   14 +++++++-------
2032   1 files changed, 7 insertions(+), 7 deletions(-)
2033 
2034  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2035  Author: Brian Warner <warner@lothar.com>
2036  Date:   Mon Oct 3 14:41:54 2011 -0400
2037 
2038      API of _try_to_set_pubkey()
2039 
2040   src/allmydata/mutable/servermap.py |    7 ++++---
2041   1 files changed, 4 insertions(+), 3 deletions(-)
2042 
2043  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2044  Author: Brian Warner <warner@lothar.com>
2045  Date:   Mon Oct 3 14:35:02 2011 -0400
2046 
2047      API of notify_server_corruption()
2048 
2049   src/allmydata/mutable/servermap.py |    6 +++---
2050   1 files changed, 3 insertions(+), 3 deletions(-)
2051 
2052  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2053  Author: Brian Warner <warner@lothar.com>
2054  Date:   Mon Oct 3 14:34:09 2011 -0400
2055 
2056      API of _got_signature_one_share()
2057 
2058   src/allmydata/mutable/servermap.py |    9 +++++----
2059   1 files changed, 5 insertions(+), 4 deletions(-)
2060 
2061  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2062  Author: Brian Warner <warner@lothar.com>
2063  Date:   Mon Oct 3 14:32:33 2011 -0400
2064 
2065      API of _try_to_validate_privkey()
2066 
2067   src/allmydata/mutable/servermap.py |    9 +++++----
2068   1 files changed, 5 insertions(+), 4 deletions(-)
2069 
2070  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2071  Author: Brian Warner <warner@lothar.com>
2072  Date:   Mon Oct 3 14:31:48 2011 -0400
2073 
2074      API and internals of _add_lease_failed()
2075 
2076   src/allmydata/mutable/servermap.py |    8 ++++----
2077   1 files changed, 4 insertions(+), 4 deletions(-)
2078 
2079  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2080  Author: Brian Warner <warner@lothar.com>
2081  Date:   Mon Oct 3 14:30:37 2011 -0400
2082 
2083      API of _privkey_query_failed()
2084 
2085   src/allmydata/mutable/servermap.py |    5 +++--
2086   1 files changed, 3 insertions(+), 2 deletions(-)
2087 
2088  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2089  Author: Brian Warner <warner@lothar.com>
2090  Date:   Mon Oct 3 14:29:43 2011 -0400
2091 
2092      fix bug in call to _privkey_query_failed, unrelated to refactoring
2093 
2094   src/allmydata/mutable/servermap.py |    2 +-
2095   1 files changed, 1 insertions(+), 1 deletions(-)
2096 
2097  commit ae615bec7d0d1b269710b6902797b12f9592ad62
2098  Author: Brian Warner <warner@lothar.com>
2099  Date:   Mon Oct 3 14:27:17 2011 -0400
2100 
2101      API of _got_corrupt_share()
2102 
2103   src/allmydata/mutable/servermap.py |   17 +++++++++--------
2104   1 files changed, 9 insertions(+), 8 deletions(-)
2105 
2106  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
2107  Author: Brian Warner <warner@lothar.com>
2108  Date:   Mon Oct 3 14:23:16 2011 -0400
2109 
2110      API of _got_results()
2111 
2112   src/allmydata/mutable/servermap.py |    9 +++++----
2113   1 files changed, 5 insertions(+), 4 deletions(-)
2114 
2115  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
2116  Author: Brian Warner <warner@lothar.com>
2117  Date:   Mon Oct 3 14:19:19 2011 -0400
2118 
2119      API of _query_failed()
2120 
2121   src/allmydata/mutable/servermap.py |    5 +++--
2122   1 files changed, 3 insertions(+), 2 deletions(-)
2123 
2124  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
2125  Author: Brian Warner <warner@lothar.com>
2126  Date:   Mon Oct 3 14:17:20 2011 -0400
2127 
2128      API of _do_read()
2129 
2130   src/allmydata/mutable/servermap.py |    6 ++++--
2131   1 files changed, 4 insertions(+), 2 deletions(-)
2132 
2133  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
2134  Author: Brian Warner <warner@lothar.com>
2135  Date:   Mon Oct 3 14:20:21 2011 -0400
2136 
2137      API of _do_query()
2138 
2139   src/allmydata/mutable/servermap.py |   15 +++++++--------
2140   1 files changed, 7 insertions(+), 8 deletions(-)
2141 
2142  commit 330625b9dac4cdbe72a11464a893065b9aeed453
2143  Author: Brian Warner <warner@lothar.com>
2144  Date:   Mon Oct 3 14:43:05 2011 -0400
2145 
2146      next step: first batch of updates to ServermapUpdater
2147 
2148      updates:
2149       most method-local variables in update()
2150       API of _build_initial_querylist()
2151       API of _send_initial_requests()
2152       .full_serverlist
2153       .extra_servers
2154 
2155   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
2156   1 files changed, 21 insertions(+), 18 deletions(-)
2157 
2158  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
2159  Author: Brian Warner <warner@lothar.com>
2160  Date:   Mon Oct 3 15:07:00 2011 -0400
2161 
2162      internal change: index _bad_shares with IServer
2163 
2164   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
2165   1 files changed, 10 insertions(+), 10 deletions(-)
2166 
2167  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
2168  Author: Brian Warner <warner@lothar.com>
2169  Date:   Mon Oct 3 18:20:47 2011 +0100
2170 
2171      internal change: index _known_shares with IServer instead of serverid
2172 
2173      callers are unchanged
2174 
2175   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
2176   1 files changed, 25 insertions(+), 17 deletions(-)
2177 
2178  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
2179  Author: Brian Warner <warner@lothar.com>
2180  Date:   Mon Oct 3 18:11:43 2011 +0100
2181 
2182      accessors and name cleanup for servermap.Servermap.last_update_mode/time
2183 
2184   src/allmydata/mutable/filenode.py  |    6 +++---
2185   src/allmydata/mutable/publish.py   |    4 ++--
2186   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2187   3 files changed, 16 insertions(+), 11 deletions(-)
2188 
2189  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
2190  Author: Brian Warner <warner@lothar.com>
2191  Date:   Mon Oct 3 18:11:14 2011 +0100
2192 
2193      accessors and name cleanup for servermap.Servermap.problems
2194 
2195   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
2196   src/allmydata/test/test_mutable.py |    6 +++---
2197   2 files changed, 16 insertions(+), 11 deletions(-)
2198 
2199  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
2200  Author: Brian Warner <warner@lothar.com>
2201  Date:   Mon Oct 3 18:10:41 2011 +0100
2202 
2203      accessors and name cleanup for servermap.Servermap.bad_shares
2204 
2205   src/allmydata/mutable/publish.py   |    2 +-
2206   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
2207   2 files changed, 18 insertions(+), 14 deletions(-)
2208 
2209  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
2210  Author: Brian Warner <warner@lothar.com>
2211  Date:   Mon Oct 3 18:10:05 2011 +0100
2212 
2213      accessors and name cleanup for servermap.Servermap.servermap .
2214 
2215   src/allmydata/mutable/publish.py   |   14 +++++----
2216   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
2217   2 files changed, 29 insertions(+), 23 deletions(-)
2218 
2219  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
2220  Author: Brian Warner <warner@lothar.com>
2221  Date:   Mon Oct 3 18:08:02 2011 +0100
2222 
2223      fix reachable_servers
2224 
2225   src/allmydata/mutable/checker.py   |    3 ++-
2226   src/allmydata/mutable/publish.py   |    4 +++-
2227   src/allmydata/mutable/servermap.py |   12 ++++++++++--
2228   3 files changed, 15 insertions(+), 4 deletions(-)
2229 
2230  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
2231  Author: Brian Warner <warner@lothar.com>
2232  Date:   Mon Oct 3 18:06:03 2011 +0100
2233 
2234      fix Servermap.unreachable_servers
2235 
2236   src/allmydata/mutable/servermap.py |   11 ++++++++---
2237   1 files changed, 8 insertions(+), 3 deletions(-)
2238 
2239  commit 2d9ea79b94bd4db674d40386fda90825785ac495
2240  Author: Brian Warner <warner@lothar.com>
2241  Date:   Mon Oct 3 18:03:48 2011 +0100
2242 
2243      give ServerMap a StorageFarmBroker, temporary
2244 
2245      this makes it possible for the ServerMap to accept bare serverids and still
2246      build data structures with IServers
2247 
2248   src/allmydata/mutable/checker.py   |    2 +-
2249   src/allmydata/mutable/filenode.py  |    2 +-
2250   src/allmydata/mutable/publish.py   |    2 +-
2251   src/allmydata/mutable/servermap.py |    5 +++--
2252   src/allmydata/test/test_mutable.py |    8 ++++----
2253   5 files changed, 10 insertions(+), 9 deletions(-)
2254 
2255  commit 718d1aeff6fded893f65397806d22ece928b0dd4
2256  Author: Brian Warner <warner@lothar.com>
2257  Date:   Mon Oct 3 13:43:30 2011 -0400
2258 
2259      add StorageFarmBroker.get_server_for_id(), temporary helper
2260 
2261      This will go away once we're passing IServers everywhere.
2262 
2263   src/allmydata/storage_client.py  |    2 ++
2264   src/allmydata/test/no_network.py |   13 +++++++++++++
2265   2 files changed, 15 insertions(+), 0 deletions(-)
2266 
2267  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
2268  Author: Brian Warner <warner@lothar.com>
2269  Date:   Sun Oct 2 01:11:50 2011 +0100
2270 
2271      add proper accessors for Servermap.connections, to make refactoring easier
2272 
2273   src/allmydata/mutable/publish.py   |    6 +++---
2274   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2275   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2276   3 files changed, 19 insertions(+), 14 deletions(-)
2277 
2278  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
2279  Author: Brian Warner <warner@lothar.com>
2280  Date:   Fri Sep 23 10:34:30 2011 -0700
2281 
2282      mutable/servermap.py and neighbors: s/peer/server/
2283 
2284   src/allmydata/mutable/checker.py   |   22 +-
2285   src/allmydata/mutable/publish.py   |  204 +++++++-------
2286   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
2287   src/allmydata/test/test_mutable.py |   18 +-
2288   4 files changed, 323 insertions(+), 323 deletions(-)
2289]
2290[Clarify an ambiguity about which version number is meant in quickstart.rst.
2291david-sarah@jacaranda.org**20120514002637
2292 Ignore-this: afac742bcfb4aba9021b07e7505d4de0
2293]
2294[performance.rst: small updates, mention (lack of) MDMF
2295Brian Warner <warner@lothar.com>**20120513210739
2296 Ignore-this: 8c8beb98b6be5f6b4697cf507798957f
2297 
2298 refs #1398
2299]
2300[CREDITS: add amiller, zooko, rearrange a bit
2301Brian Warner <warner@lothar.com>**20120513173217
2302 Ignore-this: 4db3b71cdaf52e1596532ac9133186ae
2303]
2304[Doc updates and cosmetic fixes for #1115 patch.
2305Brian Warner <warner@lothar.com>**20120513081550
2306 Ignore-this: 87721ec10d0aee1124f2f24bdaea3007
2307 
2308 Removes the caveat from webapi.txt about count-good-share-hosts being wrong.
2309 
2310 This series should close #1115.
2311]
2312[Fixed an error in previous commit where an empty servermap would throw an exception in 'count-good-share-hosts'. Augmented unit test.
2313Brian Warner <warner@lothar.com>**20120513075930
2314 Ignore-this: 8c8937b3b3e15c63d9386628493f394e
2315 
2316 Signed-off-by: Andrew Miller <amiller@dappervision.com>
2317]
2318[Added tests for count-good-share-hosts under check and repair conditions. Patched the incorrect computation in immutable/filenode.py
2319Brian Warner <warner@lothar.com>**20120513075930
2320 Ignore-this: 6a77a5058adf18bca0a3517a77cf6190
2321 
2322 Signed-off-by: Andrew Miller <amiller@dappervision.com>
2323 
2324 Fixed missing import statements
2325 
2326 Signed-off-by: Andrew Miller <amiller@dappervision.com>
2327]
2328[test_web: fix use of headers= that's been wrong for a while
2329Brian Warner <warner@lothar.com>**20120513074512
2330 Ignore-this: 681e1ac6eafd23a0babfe8f182e3ca8
2331]
2332[test-dont-use-too-old-dep.py: fix tarfile timestamps
2333Brian Warner <warner@lothar.com>**20120513063403
2334 Ignore-this: b7acb8e369d768e072f3658b2de9af03
2335 
2336 It turns out that TarFile.addfile() doesn't provide a reasonable default
2337 timestamp, resulting in files dated to 1970 (they're probably wearing
2338 bell-bottoms and listening to disco too). Then, when the bdist_egg command
2339 tries to create a *zip*file with those files, it explodes because zipfiles
2340 cannot handle timestamps before 1980 (it prefers boomboxes and jackets with
2341 straps on the shoulders, thank you very much).
2342 
2343 This puts a modern time.time() on the members of the tarfile, allowing future
2344 cryptocoderarchaeologists the opportunity to make fun of fashion trends from
2345 the user's chosen era, rather than an artificially older one.
2346 
2347 refs #1342
2348]
2349[modify build_helpers files
2350Brian Warner <warner@lothar.com>**20120513034724
2351 Ignore-this: 7f02472b3fbc2bfba4c02acce7d728e7
2352 
2353 Should close #1342. This makes the actual changes to the two test
2354 files (separated from the 'rename' patch to avoid VC complications).
2355]
2356[rename build_helpers files
2357Brian Warner <warner@lothar.com>**20120513034701
2358 Ignore-this: c1e7257dc66d0d35dcbc830fbe04ab9b
2359 
2360 This is from the darcs patch for #1342, which failed to apply on my darcs
2361 tree, so I'm landing it from git. I'm landing the rename-files part
2362 separately from the modify-those-files part to avoid VC complications.
2363]
2364[webapi: remove undocumented t=mkdir-p operation
2365Brian Warner <warner@lothar.com>**20120513021943
2366 Ignore-this: 10bc56cc8bef468881fc7dd5a586bdf9
2367 
2368 Closes #380
2369]
2370[CREDITS: lebek
2371zooko@zooko.com**20120503173033
2372 Ignore-this: 6c0ff786ce67697f7af7b861593992e3
2373]
2374[Make sure that foolscap.logging.log.setLogDir is called with a str (not unicode) path, v2. Includes test. fixes #1725
2375david-sarah@jacaranda.org**20120429022844
2376 Ignore-this: 1e94ed0c092c5c93c0a4031f8b8df092
2377]
2378[Updated webapi.rst to list /cap as a synonym for /uri
2379Brian Warner <warner@lothar.com>**20120417184111
2380 Ignore-this: c7dfb12987d883c94948f3fede254fe4
2381]
2382[Adding jg71 to CREDITS
2383markus reichelt <mr@mareichelt.com>**20120414140107
2384 Ignore-this: b69a4c4b5248a7092c550de395192afb
2385]
2386[Fix for ticket #1662
2387Brian Warner <warner@lothar.com>**20120410183314
2388 Ignore-this: b2164418fb1a24cef2bddf1ec3c42eed
2389]
2390[docs/frontends/drop-upload.rst: document more known issues and link to new ticket for an existing one.
2391david-sarah@jacaranda.org**20120406043946
2392 Ignore-this: 72e0a821961fb9137bb6f53742e4ba43
2393]
2394[checker.py: minor simplifications
2395Brian Warner <warner@lothar.com>**20120404190531
2396 Ignore-this: 170f3e70dccd61c1ddb6ea6995ad09ca
2397]
2398[Rename web CheckResults to -Renderer, to avoid confusion. Closes #1705.
2399Brian Warner <warner@lothar.com>**20120403030451
2400 Ignore-this: 4c3e20d804e70a27d2464f770aec0c2c
2401 
2402 This avoids the name collision between the actual results
2403 objects (defined in allmydata.check_results) and the code that renders
2404 these objects into HTML (defined in allmydata.web.check_results). Only
2405 the web-side objects were renamed.
2406]
2407[webapi.rst: de-tabify
2408Brian Warner <warner@lothar.com>**20120402233205
2409 Ignore-this: 6436168d9073b12e95ff410239bf133f
2410]
2411[doc: cross-link known_issues.rst and cautions.rst with one another
2412zooko@zooko.com**20120401214039
2413 Ignore-this: 3873f8807826cb21761cfe65a93955f8
2414]
2415[docs: FTP-and-SFTP.rst: recommend SFTP
2416zooko@zooko.com**20120401212002
2417 Ignore-this: 6459edd6dd0a62a82d3adc62c5656c63
2418 
2419 Add an explicit recommendation of SFTP over FTP. Separate the known issues of
2420 FTP from SFTP. List "SFTP" first in all lists of the two. Use unicode bullet
2421 points and prepend a utf-8 BOM. Use out-of-line rst hyperlinks.
2422 
2423]
2424[interfaces.py: ensure that NoSuchChildError can be converted to str even when it is for a non-ASCII name. fixes #1483
2425david-sarah@jacaranda.org**20110814225959
2426 Ignore-this: d0069952ac7f5a13bdf5e957c7ae78a8
2427]
2428[misc/build_helpers/show-tool-versions.py: s/print_stderr/print_stdout/
2429david-sarah@jacaranda.org**20120401022826
2430 Ignore-this: c69d01081308a8144c9fdb34c4ab40b0
2431]
2432[bin/tahoe-script.template: fix the error message that is displayed when a runner script cannot be found. fixes #1488
2433david-sarah@jacaranda.org**20110817222651
2434 Ignore-this: b92c562e4da9adf63e642512c96eee89
2435]
2436[docs: quickstart: edits
2437zooko@zooko.com**20120401015717
2438 Ignore-this: cb56a1ffedb20d687133ad2ecfd7f8f7
2439 
2440 • use out-of-line links to avoid a warning from rst2html --verbose (fixes #1704)
2441 • reflow to 77 fill-column and prepend utf-8 BOM (fixes #1703)
2442 • recommend Python 2.7 (fixes #1702)
2443 • remove link to wiki:AdvancedInstall (fixes #1701)
2444 
2445]
2446[Spelling error in a comment.
2447david-sarah@jacaranda.org**20120401013655
2448 Ignore-this: 3a5a30be4be27bcfb1fecfd22ccf5327
2449]
2450[test_node.py: test that we tolerate a UTF-8 BOM at the start of tahoe.cfg, and can read UTF-8 option values. refs #1470
2451david-sarah@jacaranda.org**20110808180552
2452 Ignore-this: b4dd630857d192c02acaa6d8b163d5ca
2453]
2454[node.py: tolerate a UTF-8 BOM at the start of tahoe.cfg. fixes #1470
2455david-sarah@jacaranda.org**20110808180204
2456 Ignore-this: 9c859adce5668d7315d0d6e2ed9ddca7
2457]
2458[mutable/layout.py: improve confusing documentation of layout. fixes #1534
2459david-sarah@jacaranda.org**20110914143947
2460 Ignore-this: c5fbd3809ee3f7fc2b46cd23dad6b1c0
2461]
2462[setup: show-tool-versions: report cl only on windows, report buildslave, git, openssl, and lzip, but not 7za
2463zooko@zooko.com**20120401005925
2464 Ignore-this: 2f8d90893271d2f1c2d1185f95d95e86
2465]
2466[Document PYTHONPATH problem when running flogtool. refs #1693
2467david-sarah@jacaranda.org**20120331223934
2468 Ignore-this: 3edb13077119aaee76c1dcc46370e62
2469]
2470[Add test for bug #1689: repairing empty file hits no-privkey assertion
2471Brian Warner <warner@lothar.com>**20120331183902
2472 Ignore-this: e84ead8eb2bfee9c65285b7f9a3a9237
2473]
2474[FTP-and-SFTP.rst: there were two more instances of 'rootcap'. Also made the wording tweak from ticket:1487#comment:4 . fixes #1487
2475david-sarah@jacaranda.org**20120331023247
2476 Ignore-this: 9ce9c37d9aa2b9629b14a001989d51b0
2477]
2478[test_ftp.py: fix a couple of unused imports. refs #1668
2479david-sarah@jacaranda.org**20120331021725
2480 Ignore-this: fc4f24fbc707efe86de9f35b782384ce
2481]
2482[FTP-and-SFTP.rst: directories containing mutable files should now be listable via FTP. refs #680
2483david-sarah@jacaranda.org**20120331013730
2484 Ignore-this: 78e507bd857623e78b32dd0e4da3c59
2485]
2486[ftpd file `size' attribute must be an integer
2487Peter Le Bek <peter@hyperplex.net>**20120322131806
2488 Ignore-this: bcf0047f19226e8dc00cb4995584761a
2489]
2490[unit test for ftpd LIST
2491Peter Le Bek <peter@hyperplex.net>**20120330234139
2492 Ignore-this: dfbb45a030be9840858df6047f21666c
2493]
2494[fix ftpd mtime retrieval
2495Peter Le Bek <peter@hyperplex.net>**20120330234119
2496 Ignore-this: 873cf8d1c28817d7e64565dda43a2ecb
2497]
2498[Cosmetic formatting in docs.
2499david-sarah@jacaranda.org**20120322220534
2500 Ignore-this: 2e3ddb170f45035c4655ce25aaa09977
2501]
2502[Put SFTP before FTP in various docs. fixes #1692
2503david-sarah@jacaranda.org**20120322220453
2504 Ignore-this: 6759fbe5d58a965120b55cf3c1578970
2505]
2506[Correct a link to frontends/drop-upload.rst. fixes #1690
2507david-sarah@jacaranda.org**20120322220118
2508 Ignore-this: dafc6205151545e8095f908dd57c213
2509]
2510[Fix a missing comma in the last patch. refs #1295
2511david-sarah@jacaranda.org**20120314235040
2512 Ignore-this: 34327ffeabed65759ad511760f925e47
2513]
2514[Temporarily suppress the DeprecationWarning about IFinishableConsumer; it's irritating, but not in a way that is likely to make me fix the underlying issue (#1525) any sooner :-). refs #1295
2515david-sarah@jacaranda.org**20120314234729
2516 Ignore-this: 2ab43c7893ed305a9d40023ec176d179
2517]
2518[Update find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a doc change; look out for compatibility problems.
2519david-sarah@jacaranda.org**20120313203041
2520 Ignore-this: fd18113695c2a524972c389e8b52e2e8
2521]
2522[Minor updates to URLs.
2523david-sarah@jacaranda.org**20120313202853
2524 Ignore-this: 2e5719e8cf19d7be73fbcba98dc1e5dd
2525]
2526[Update more links from http: to https: in documentation and comments.
2527david-sarah@jacaranda.org**20120313202654
2528 Ignore-this: 2c11cef35639b101412c024896256529
2529]
2530[Update copyright notices. refs #1686
2531david-sarah@jacaranda.org**20120313205057
2532 Ignore-this: a6a4904001412248c4164f002b52f79a
2533]
2534[Update various references to allmydata.org or http://tahoe-lafs.org in comments, to https://tahoe-lafs.org. refs #1682
2535david-sarah@jacaranda.org**20120308231719
2536 Ignore-this: a71d00ea46af0a44e5c957df56d02adf
2537]
2538[Suppress a warning from win32eventreactor on Windows (patch v2). fixes #1681
2539david-sarah@jacaranda.org**20120227190317
2540 Ignore-this: c7efe1065d45a00caf182a1de812f4bb
2541]
2542[add some quick tests of the introducer/web improvements
2543Brian Warner <warner@lothar.com>**20120312193536
2544 Ignore-this: 9e31f368b1dfa586ab6e3f17707d9ec
2545]
2546[tahoe.css: fix #section typo, update welcome.xhtml to match
2547Brian Warner <warner@lothar.com>**20120307022241
2548 Ignore-this: 4e8a8382234aad017b093f8896b329d6
2549 
2550 The "#section" declaration (which matches id="section") should have been
2551 ".section" (which matches class="section").
2552 
2553 The welcome page has a feature that I actually liked: the little "This
2554 Client" sidebar sits just to the right of the start of the Controls block.
2555 Fixing .section broke that (the clear:both introduces a gap, forcing the
2556 Controls block to start strictly below the bottom of the This Client block).
2557 So I also removed class="section" from the Controls block to allow them to
2558 share the horizontal space again.
2559]
2560[provisioning.py: update disk sizes and usage numbers
2561Brian Warner <warner@lothar.com>**20120213155708
2562 Ignore-this: e47ee282bfba4beb2598b227add5250a
2563]
2564[configuration.rst: another attempt to fix formatting of sample tahoe.cfg.
2565david-sarah@jacaranda.org**20120131000949
2566 Ignore-this: bb67b6c9bb191a1335eaadfe9594fa4f
2567]
2568[configuration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg. Also fix the RST formatting of blank lines in the file.
2569david-sarah@jacaranda.org**20120131000643
2570 Ignore-this: 9c5327edf031d8578c19383d950b17b9
2571]
2572[Add a Python 3 blocker to setup.py, to display a better error message when it is run under Python 3.
2573david-sarah@jacaranda.org**20120127015525
2574 Ignore-this: 5f032794ecc8cd6c512a7ab9efffed2
2575]
2576[Ensure that verification proceeds and stops when appropriate.
2577Brian Warner <warner@lothar.com>**20120124205209
2578 Ignore-this: 88278bbd6a3b33cf3b286feaa162ad02
2579 
2580 The removed assertions are appropriate for a download that seeks to
2581 return plaintext to a caller; if we don't have at least k active remote
2582 shares, then we can't hope to do that. They're not appropriate for a
2583 verification operation; a user can try to verify a file that has fewer
2584 than k shares available, so that shouldn't be treated as an error.
2585 Instead, we proceed with fewer than k shares, and ensure that we
2586 terminate the download if we have no shares at all and we're verifying.
2587]
2588[Add test_verify_mdmf_all_bad_sharedata
2589Brian Warner <warner@lothar.com>**20120124205209
2590 Ignore-this: 52acb4f0256af764acb038f7c8344367
2591 
2592 test_verify_mdmf_all_bad_sharedata tests for the regression described
2593 in ticket 1648. In particular, it will trigger the misplaced assertion
2594 in the share activation code. It also tests to make sure that
2595 verification continues with fewer than k shares.
2596]
2597[Added clarification on how interface= works
2598Brian Warner <warner@lothar.com>**20120124203821
2599 Ignore-this: 57f86d178c8e4f3c62d15bf99dec7d0d
2600]
2601[FTP-and-SFTP.rst: minor edits
2602Brian Warner <warner@lothar.com>**20120124203654
2603 Ignore-this: ec21fadb85cf7b3192d32b02c03c3656
2604]
2605[Updated accounts.url directive per warner's suggestions
2606Brian Warner <warner@lothar.com>**20120124203126
2607 Ignore-this: 9297ec6406e11d4e1fe24ba3a06725e3
2608]
2609[Added information on accounts.url directive
2610Brian Warner <warner@lothar.com>**20120124203126
2611 Ignore-this: 6d6142418eabdad789a2fc68f26b3ba1
2612]
2613[docs: an extra newline to separate utf-8 BOF from comment for the sake of trac's rst renderer
2614zooko@zooko.com**20120122212002
2615 Ignore-this: 5c6d0dbfa1430681fa00494937537956
2616]
2617[docs: a newline between the utf-8 BOF and the comment in order to prevent trac from misrendering the comment
2618zooko@zooko.com**20120122211856
2619 Ignore-this: 5e92cb88ba46b82227338522b834b90d
2620 sheesh
2621]
2622[docs: a comment to inform the (human) reader about encoding and to prevent someone from moving the title up to where it will interact with the utf-8 BOM and cause trac to mis-render the title
2623zooko@zooko.com**20120122211731
2624 Ignore-this: f7912a13ffba60408ec901a9586ce8a4
2625]
2626[docs: insert another newline between utf-8 BOF and title
2627zooko@zooko.com**20120122211427
2628 Ignore-this: 1b3861ef7d4531acfa61fac31e14fe98
2629]
2630[docs: insert newline after utf-8 BOF and before restructuredtext title
2631zooko@zooko.com**20120122182127
2632 Ignore-this: f947afe5bdfc9f44ba9bf7f0e585da7c
2633]
2634[docs: remove utf-8 "BOM" which confuses trac's rst renderer
2635zooko@zooko.com**20120122140052
2636 Ignore-this: ba58c59a314f23c65de5443bd7b6ffcb
2637]
2638[docs: try again to change RestructuredText titles to a format that trac will render
2639zooko@zooko.com**20120122135613
2640 Ignore-this: 588bbb627a95cd8317c809567cfa3e78
2641]
2642[docs: backdoors.rst: fix title formatting
2643zooko@zooko.com**20120122135125
2644 Ignore-this: 5bf980c1a8703ee353cd747ae343176a
2645]
2646[docs: backdoors.rst: stop using embedded URIs and tweak title so that trac will render it correctly; reflow to fill-column 77; M-x whitespace-cleanup
2647zooko@zooko.com**20120122134319
2648 Ignore-this: e1b5b3d2809040cfd7f13bb88ee8313d
2649]
2650[update release process: git, not darcs, etc
2651Brian Warner <warner@lothar.com>**20120113071257
2652 Ignore-this: 2eaa1f0e93dc545989bb1e62b2446e1e
2653]
2654[prepare to Org-ify how_to_make_a_tahoe-lafs_release: rename the file
2655Brian Warner <warner@lothar.com>**20120113070153
2656 Ignore-this: d9bb83dfd6c3b4c0ca0efd2adacdf63c
2657]
2658[.gitignore: ignore generated test-coverage files too
2659Brian Warner <warner@lothar.com>**20120113065629
2660 Ignore-this: 4411c7d620f5865b8c4dedef7e5a8c33
2661]
2662[merge relnotes, quickstart.rst from 1.9.1 release
2663Brian Warner <warner@lothar.com>**20120112232420
2664 Ignore-this: 6b535bb1a3bd5ea87ee12cc6b17eeb5c
2665]
2666[.gitignore: also ignore tahoe-deps and .tgz, to fix 'make tarballs'
2667Brian Warner <warner@lothar.com>**20120112210925
2668 Ignore-this: e8a7d942f123ee6bf4f2966ddc2742a3
2669 
2670 Otherwise, the get-version-from-git code thinks the tree is dirty, and
2671 creates SUMO tarballs with -dirty in the name.
2672]
2673[Makefile: fix 'make-version' to use git-or-darcs, not just darcs
2674Brian Warner <warner@lothar.com>**20120112210654
2675 Ignore-this: ae32660458b5ab036ab98f0d1cf4e414
2676]
2677[_auto_deps.py: don't allow pycrypto 2.0.1. fixes #1631
2678david-sarah@jacaranda.org**20120110195758
2679 Ignore-this: de409a745c93a78b095dc72edd13a15d
2680]
2681[MANIFEST.in: make git-based 'setup.py sdist' match darcs
2682Brian Warner <warner@lothar.com>**20120109234637
2683 Ignore-this: 92bf7d679e9d5696994efe39c40ae216
2684 
2685 Previously, tarballs generated from a git tree were lacking a lot of
2686 important non-code files, like docs/
2687]
2688[restore .gitignore, stop .darcs-boringfile it
2689warner@lothar.com**20120109025243
2690 Ignore-this: b37efcdab8662fe85660d68e3662b4b9
2691]
2692[remove setuptools_darcs.egg
2693warner@lothar.com**20120108225545
2694 Ignore-this: 39711cf7a9856acd5a136038d58ca5ff
2695]
2696[fix bundled data under git, remove setuptools_darcs
2697Brian Warner <warner@lothar.com>**20120108221250
2698 Ignore-this: ebfc0b267961523edd7e26c761b2554f
2699 
2700 This uses explicitly enumerated packages= and package_data= arguments to
2701 setup(), rather than relying upon the convenient (but darcs-specific)
2702 functions which would determine these values by asking the revision-control
2703 system.
2704 
2705 Note that darcsver is still used, when building from a darcs tree.
2706]
2707[mutable/layout.py: raise BadShareError instead of assert()
2708Brian Warner <warner@lothar.com>**20120108221247
2709 Ignore-this: 129891a807315f657b80576025135df8
2710]
2711[mutable: simplify Retrieve._process_segment() to use a gatherDeferred
2712Brian Warner <warner@lothar.com>**20120108221244
2713 Ignore-this: cfc7a56414889d02bffd747f1abad8ef
2714]
2715[Retrieve.decode(): simplify setup of DeferredList-like argument
2716Brian Warner <warner@lothar.com>**20120108221240
2717 Ignore-this: c92d377bf4d65251240e59c8db5452af
2718 
2719 make it more obviously match the expectations of _decode_blocks() and
2720 _maybe_decode_and_decrypt_segment()
2721]
2722[mutable: add comments about the tricky DeferredList structures in retrieve
2723Brian Warner <warner@lothar.com>**20120108221238
2724 Ignore-this: da47db692fbdf11a3ce01a952a60d1a0
2725]
2726[add test-git-ignore.py, to port the 'clean' buildbot test to git
2727Brian Warner <warner@lothar.com>**20120108221232
2728 Ignore-this: 442efa1eacc27b7ae2690645ed997894
2729 
2730 add .gitignore to match .darcs-boringfile, mostly
2731]
2732[Use a private/drop_upload_dircap file instead of the [drop_upload]upload.dircap option in tahoe.cfg. Fail if the upload.dircap option is used, or options are missing. Also updates tests and docs. fixes #1593
2733david-sarah@jacaranda.org**20111120232426
2734 Ignore-this: d4ea9154e98902c5de055b6de23c48f9
2735]
2736[docs: how_to_make_a_tahoe-lafs_release.rst add Google+ page to publicity list, change to cute unicode checkboxes
2737zooko@zooko.com**20111226151905
2738 Ignore-this: c7c1e67761df48fa11c0dad1847c2d8
2739]
2740[doc: about.rst: use unicode emdash, use non-embedded URIs, add clarificaiton of when a file gets its mutable-or-immutable nature
2741zooko@zooko.com**20111206171908
2742 Ignore-this: 61bc3f1582c68dcc9867da964fc9bb3a
2743 embedded URIs, although documented here:
2744 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris
2745 generate messages like this from rst2html --verbose:
2746 
2747 quickstart.rst:3: (INFO/1) Duplicate explicit target name: "the tahoe-dev mailing list".
2748 
2749 Also this patch prepends a "utf-8 BOM" to the beginning of the file.
2750]
2751[minor cleanup: remove trailing spaces in misc/
2752Brian Warner <warner@lothar.com>**20111218201841
2753 Ignore-this: 69a8904c17d8fd930442d00e24b7b188
2754]
2755[setup.py: stop putting pyutil.version_class/etc in _version.py
2756Brian Warner <warner@lothar.com>**20111205055049
2757 Ignore-this: 926fa9a8a34a04f24ee6e006423e9c1
2758 
2759 allmydata.__version__ can just be a string, it doesn't need to be an instance
2760 of some fancy NormalizedVersion class. Everything inside Tahoe uses
2761 str(__version__) anyways.
2762 
2763 Also add .dev0 when a git tree is dirty.
2764 
2765 Closes #1466
2766]
2767[setup.py: get version from git or darcs
2768Brian Warner <warner@lothar.com>**20111205044001
2769 Ignore-this: 5a406b33000446d85edc722298391220
2770 
2771 This replaces the setup.cfg aliases that run "darcsver" before each major
2772 command with the new "update_version". update_version is defined in setup.py,
2773 and tries to get a version string from either darcs or git (or leaves the
2774 existing _version.py alone if neither VC metadata is available).
2775 
2776 Also clean up a tiny typo in verlib.py that messed up syntax hilighting.
2777]
2778[docs/known_issues.rst: describe when the unauthorized access attack is known to be possible, and fix a link.
2779david-sarah@jacaranda.org**20111118002013
2780 Ignore-this: d89b1f1040a0a7ee0bde893d23612049
2781]
2782[more tiny buildbot-testing whitespace changes
2783warner@lothar.com**20111118002041
2784 Ignore-this: e816e2a5ab939e2f7a89ef12b8a157d8
2785]
2786[more tiny buildbot-testing whitespace changes
2787warner@lothar.com**20111118001828
2788 Ignore-this: 57bb52cba83ea9a19728ba0a8ffadb69
2789]
2790[tiny change to exercise the buildbot hook
2791warner@lothar.com**20111118001511
2792 Ignore-this: 7220b7790b39f19f9721d9e93b755030
2793]
2794[Strengthen description of unauthorized access attack in known_issues.rst.
2795david-sarah@jacaranda.org**20111118000030
2796 Ignore-this: e2f68f621fe666b6201542623aa4d182
2797]
2798[remove remaining uses of nevow's "formless" module
2799Brian Warner <warner@lothar.com>**20111117225423
2800 Ignore-this: a128dea91a1c63b3bbefa34729344d69
2801 
2802 We're slowly moving away from Nevow, and marcusw's previous patch removed
2803 uses of the formless CSS file, so now we can stop testing that nevow can find
2804 that file, and remove the lingering unused "import formless" call.
2805]
2806[Remove duplicate tahoe_css links from manifest.xhtml and rename-form.xhtml
2807Brian Warner <warner@lothar.com>**20111116224225
2808 Ignore-this: 12024fff17964607799928928b9aadf3
2809 
2810 They were probably meant to be links to webform_css, but we aren't really
2811 using Nevow's form-generation code anyways, so they can just be removed.
2812 Thanks to 'marcusw' for the catch.
2813]
2814[iputil: handle openbsd5 (just like openbsd4)
2815Brian Warner <warner@lothar.com>**20111115220423
2816 Ignore-this: 64b28bd2fd06eb5230ea41d91540dd05
2817 
2818 Patch by 'sickness'. Closes #1584
2819]
2820[Makefile count-lines: let it work on OS-X (-l not --lines), add XXX
2821Brian Warner <warner@lothar.com>**20111109184227
2822 Ignore-this: 204ace1dadc9ed27543c62965b4e6757
2823 
2824 OS-X's simple-minded /usr/bin/wc doesn't understand --lines, but everyone
2825 understands -l .
2826]
2827[setup.py: umask=022 for 'sdist', to avoid depending on environment
2828Brian Warner <warner@lothar.com>**20111109183632
2829 Ignore-this: acd5db88ba8f1972d618b14f9e5b803c
2830 
2831 The new tarball-building buildslave had a bogus umask set, causing the 1.9.0
2832 tarballs to be non-other-user-readable (go-rwx), which is a hassle for
2833 packaging. (The umask was correct on the old buildslave, but it was moved to
2834 a new host shortly before the release). This should make sure tarballs are
2835 correct despite the host's setting.
2836 
2837 Note to others: processes run under twistd get umask=077 unless you arrange
2838 otherwise.
2839]
2840[_auto_deps.py: blacklist PyCrypto 2.4.
2841david-sarah@jacaranda.org**20111105022457
2842 Ignore-this: 876cb24bc71589e735f48bf449cad81e
2843]
2844[check-miscaptures.py: report the number of files that were not analysed due to syntax errors (and don't count them in the number of suspicious captures). refs #1555
2845david-sarah@jacaranda.org**20111009050301
2846 Ignore-this: 62ee03f4b8a96c292e75c097ad87d52e
2847]
2848[check-miscaptures.py: handle corner cases around default arguments correctly. Also make a minor optimization when there are no assigned variables to consider. refs #1555
2849david-sarah@jacaranda.org**20111009045023
2850 Ignore-this: f49ece515620081da1d745ae6da19d21
2851]
2852[check-miscaptures.py: Python doesn't really have declarations; report the topmost assignment. refs #1555
2853david-sarah@jacaranda.org**20111009044800
2854 Ignore-this: 4905c9dfe7726f433333e216a6760a4b
2855]
2856[check-miscaptures.py: handle destructuring function arguments correctly. refs #1555
2857david-sarah@jacaranda.org**20111009044710
2858 Ignore-this: f9de7d95e94446507a206c88d3f98a23
2859]
2860[check-miscaptures.py: check while loops and list comprehensions as well as for loops. Also fix a pyflakes warning. refs #1555
2861david-sarah@jacaranda.org**20111009044022
2862 Ignore-this: 6526e4e315ca6461b1fbc2da5568e444
2863]
2864[Add misc/coding_tools/check-miscaptures.py to detect incorrect captures of variables declared in a for loop, and a 'make check-miscaptures' Makefile target to run it. (It is also run by 'make code-checks'.) This is a rewritten version that reports much fewer false positives, by determining captured variables more accurately. fixes #1555
2865david-sarah@jacaranda.org**20111007074121
2866 Ignore-this: 51318e9678d132c374ea557ab955e79e
2867]
2868[Fix pyflakes warnings in misc/ directories other than misc/build_helpers. refs #1557
2869david-sarah@jacaranda.org**20111007033031
2870 Ignore-this: 7daf5862469732d8cabc355266622b74
2871]
2872[Makefile: include misc/ directories other than misc/build_helpers in SOURCES. refs #1557
2873david-sarah@jacaranda.org**20111007032958
2874 Ignore-this: 31376ec01401df7972e83341dc65aa05
2875]
2876[show-tool-versions: tolerate missing setuptools
2877Brian Warner <warner@lothar.com>**20111101080010
2878 Ignore-this: 72d4e440565273992beb4f010cbca699
2879]
2880[show-tool-versions.py: condense output, hide file-not-found exceptions
2881Brian Warner <warner@lothar.com>**20111101074532
2882 Ignore-this: a15381a76077ef46a74a4ac40c9ae956
2883]
2884[relnotes.txt: fix footnotes
2885Brian Warner <warner@lothar.com>**20111101071935
2886 Ignore-this: 668c1bd8618e21beed9bc6b23f048189
2887]
2888[TAG allmydata-tahoe-1.9.0
2889warner@lothar.com**20111031052301
2890 Ignore-this: cf598210dd1f314a1a121bf29a3d5918
2891]
2892Patch bundle hash:
2893b55a53bbf5f01064ce8a4419090b9bd72f52eac3