equal
deleted
inserted
replaced
2431 else: |
2431 else: |
2432 transaction.add(self._indexfile, isize) |
2432 transaction.add(self._indexfile, isize) |
2433 transaction.add(self._datafile, end) |
2433 transaction.add(self._datafile, end) |
2434 dfh = self._datafp(b"a+") |
2434 dfh = self._datafp(b"a+") |
2435 |
2435 |
2436 def flush(): |
|
2437 if dfh: |
|
2438 dfh.flush() |
|
2439 ifh.flush() |
|
2440 |
|
2441 self._writinghandles = (ifh, dfh) |
2436 self._writinghandles = (ifh, dfh) |
2442 empty = True |
2437 empty = True |
2443 |
2438 |
2444 try: |
2439 try: |
2445 deltacomputer = deltautil.deltacomputer(self) |
2440 deltacomputer = deltautil.deltacomputer(self) |
2480 if delta[:hlen] != mdiff.replacediffheader(oldlen, newlen): |
2475 if delta[:hlen] != mdiff.replacediffheader(oldlen, newlen): |
2481 raise error.CensoredBaseError( |
2476 raise error.CensoredBaseError( |
2482 self.display_id, self.node(baserev) |
2477 self.display_id, self.node(baserev) |
2483 ) |
2478 ) |
2484 |
2479 |
2485 if not flags and self._peek_iscensored(baserev, delta, flush): |
2480 if not flags and self._peek_iscensored(baserev, delta): |
2486 flags |= REVIDX_ISCENSORED |
2481 flags |= REVIDX_ISCENSORED |
2487 |
2482 |
2488 # We assume consumers of addrevisioncb will want to retrieve |
2483 # We assume consumers of addrevisioncb will want to retrieve |
2489 # the added revision, which will require a call to |
2484 # the added revision, which will require a call to |
2490 # revision(). revision() will fast path if there is a cache |
2485 # revision(). revision() will fast path if there is a cache |
2532 if not self._censorable: |
2527 if not self._censorable: |
2533 return False |
2528 return False |
2534 |
2529 |
2535 return self.flags(rev) & REVIDX_ISCENSORED |
2530 return self.flags(rev) & REVIDX_ISCENSORED |
2536 |
2531 |
2537 def _peek_iscensored(self, baserev, delta, flush): |
2532 def _peek_iscensored(self, baserev, delta): |
2538 """Quickly check if a delta produces a censored revision.""" |
2533 """Quickly check if a delta produces a censored revision.""" |
2539 if not self._censorable: |
2534 if not self._censorable: |
2540 return False |
2535 return False |
2541 |
2536 |
2542 return storageutil.deltaiscensored(delta, baserev, self.rawsize) |
2537 return storageutil.deltaiscensored(delta, baserev, self.rawsize) |