context: translate FilteredIndex/LookupError at repo[changeid] (API)
This partially backs out
ecd3f6909184. It seems layering violation for
repo[changeid] to raise storage-level exceptions transparently. Otherwise,
we would have to rewrite callers to catch all of them.
try:
repo[rev_or_node]
except (error.RepoLookupError, error.FilteredIndexError,
error.FilteredLookupError):
pass
This would also fix filectx._changectx(), which catches FilteredRepoLookupError
to fall back to the unfiltered path.
notify: only notify for non-filtered revision
This should fix
issue5821 for hook targeting individual revision.
notify: access the initial revision on an unfiltered repository (
issue5821)
This should avoid crash when the first revision pushed end up being hidden.
notify: use changelog API to iterate over revision number (
issue5821)
This will avoid iterating over filtered revision.
infinitepush: open files in binary mode
This fixes the scary looking abort in test-infinitepush-ci.t when unbundling:
--- tests/test-infinitepush-ci.t
+++ tests/test-infinitepush-ci.t.err
@@ -84,15 +84,12 @@
$ hg unbundle .hg/scratchbranches/filebundlestore/a4/c2/
a4c202c147a9c4bb91bbadb56321fc5f3950f7f2
adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- new changesets
6cb0989601f1
- (run 'hg update' to get a working copy)
-
- $ hg glog
- o 1:
6cb0989601f1 added a
- | public
+ transaction abort!
+ rollback completed
+ abort: stream ended unexpectedly (got 68 bytes, expected
218759168)
+ [255]
+
+ $ hg glog
@ 0:
67145f466344 initialcommit
public
This was found by grepping for '"r', "'r", '"w' and "'w" after manually creating
a bundle from the same revision, diffing against the corrupt one, and seeing CRs
sprinkled around. Sadly, the missing bookmarks are still a problem in the two
remaining test failures.