gabriel / muse public
refactor BREAKING dev
AI Agent gabriel · 160 days ago · Apr 18, 2026 · Diff

refactor: migrate timing to start_timer() utility, standardize on duration_ms

- Extract start_timer() in muse/core/timing.py: captures monotonic t0, returns a zero-arg callable yielding ms elapsed (rounded to 3dp) - Sweep all CLI commands and core modules: replace inline t0/monotonic patterns with elapsed = start_timer() / elapsed() - Standardize JSON output key as duration_ms across all commands - Add elapsed_ms and exit_code to verify-commit and verify-object JSON - Delete dead provenance_payload_v1 (unreachable code) - Fix 20 syntax errors introduced by first migration pass (keyword arg corruption, misplaced imports, truncated attribute assignments) - Update all test files: elapsed_seconds -> duration_ms, fix negative- assertion tests whose key names were flipped by the rename

sha256:ca26408165d37e8c4f758f027e7be38aff723217406329d09a232de42e0e3f7d sha
+334 ~594 −217 symbols
sha256:2e0be062e59b29b5a673538a54710c3496f4a57e13ad29869232aa27fdb4827b snapshot
+334
symbols added
~594
symbols modified
−217
symbols removed
0
dead code introduced
Semantic Changes 1145 symbols
~ muse/cli/commands/apply_patch.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L65–65
+ start_timer import import start_timer L76–76
~ run
~ muse/cli/commands/cat.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L40–40
+ start_timer import import start_timer L54–54
~ run
~ muse/cli/commands/cat_object.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L100–100
~ run
~ muse/cli/commands/check.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L62–62
+ start_timer import import start_timer L70–70
~ run
~ muse/cli/commands/check_attr.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L140–140
+ start_timer import import start_timer L146–146
~ run
~ muse/cli/commands/check_ignore.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L124–124
+ start_timer import import start_timer L130–130
~ run
~ muse/cli/commands/check_ref_format.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L122–122
+ start_timer import import start_timer L126–126
~ run
~ muse/cli/commands/checkout.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L68–68
+ start_timer import import start_timer L98–98
~ run
~ muse/cli/commands/cherry_pick.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L81–81
~ run
~ muse/cli/commands/clean.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L71–71
+ start_timer import import start_timer L81–81
~ run
~ muse/cli/commands/commit_graph.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L76–76
+ start_timer import import start_timer L82–82
~ run
~ muse/cli/commands/commit_tree.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L86–86
~ run
~ muse/cli/commands/config_cmd.py .py 1 symbol added, 5 symbols modified
+ start_timer import import start_timer L100–100
~ muse/cli/commands/conflicts.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L76–76
+ start_timer import import start_timer L82–82
~ run
~ muse/cli/commands/content_grep.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L89–89
+ start_timer import import start_timer L103–103
~ _emit
~ run
~ muse/cli/commands/coord_gc.py .py 1 symbol modified
~ run
~ muse/cli/commands/coord_sync.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L101–101
+ start_timer import import start_timer L116–116
~ muse/cli/commands/core_cat.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L50–50
+ start_timer import import start_timer L63–63
~ run
~ muse/cli/commands/count_objects.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L74–74
~ run
~ muse/cli/commands/dead.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L136–136
+ start_timer import import start_timer L159–159
~ run
~ muse/cli/commands/describe.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L58–58
+ start_timer import import start_timer L65–65
~ run
~ muse/cli/commands/diff.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L52–52
+ start_timer import import start_timer L72–72
~ run
~ muse/cli/commands/domain_info.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L78–78
+ start_timer import import start_timer L83–83
~ run
~ muse/cli/commands/for_each_ref.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L89–89
+ start_timer import import start_timer L97–97
~ run
~ muse/cli/commands/forecast.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L112–112
+ start_timer import import start_timer L123–123
~ run
~ muse/cli/commands/format_patch.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L118–118
+ start_timer import import start_timer L134–134
~ run
~ muse/cli/commands/hash_object.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L38–38
+ start_timer import import start_timer L45–45
~ _emit
~ run
~ muse/cli/commands/heartbeat_coord.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L66–66
+ start_timer import import start_timer L76–76
~ run
~ muse/cli/commands/init.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L66–66
+ start_timer import import start_timer L71–71
~ run
~ muse/cli/commands/list_coord.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L103–103
~ run
~ muse/cli/commands/log.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L109–109
+ start_timer import import start_timer L129–129
~ run
~ muse/cli/commands/ls_files.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L66–66
+ start_timer import import start_timer L77–77
~ run
~ muse/cli/commands/ls_remote.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L73–73
+ start_timer import import start_timer L80–80
~ run
~ muse/cli/commands/ls_tree.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L100–100
+ start_timer import import start_timer L115–115
~ run
~ muse/cli/commands/maintenance.py .py 1 symbol added, 3 symbols modified
+ start_timer import import start_timer L114–114
~ muse/cli/commands/merge.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L96–96
~ muse/cli/commands/merge_base.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L54–54
+ start_timer import import start_timer L61–61
~ run
~ muse/cli/commands/merge_tree.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L90–90
+ start_timer import import start_timer L109–109
~ run
~ muse/cli/commands/migrate.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L65–65
+ start_timer import import start_timer L71–71
~ run
~ muse/cli/commands/mv.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L75–75
+ start_timer import import start_timer L87–87
~ run
~ muse/cli/commands/name_rev.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L107–107
+ start_timer import import start_timer L116–116
~ run
~ muse/cli/commands/pack_objects.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L47–47
+ start_timer import import start_timer L55–55
~ run
~ muse/cli/commands/patch_id.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L63–63
+ start_timer import import start_timer L77–77
~ run
~ muse/cli/commands/plan_merge.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L106–106
+ start_timer import import start_timer L123–123
~ run
~ muse/cli/commands/prune.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L90–90
~ run
~ muse/cli/commands/range_diff.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L88–88
+ start_timer import import start_timer L104–104
~ run
~ muse/cli/commands/read.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L84–84
+ start_timer import import start_timer L98–98
~ run
~ muse/cli/commands/read_commit.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L52–52
+ start_timer import import start_timer L64–64
~ run
~ muse/cli/commands/read_snapshot.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L44–44
+ start_timer import import start_timer L51–51
~ run
~ muse/cli/commands/rebase.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L79–79
~ run
~ muse/cli/commands/reconcile.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L91–91
+ start_timer import import start_timer L98–98
~ run
~ muse/cli/commands/reflog.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L87–87
~ run
~ muse/cli/commands/release.py .py 1 symbol added, 1 symbol removed, 6 symbols modified
− time import import time L78–78
+ start_timer import import start_timer L107–107
~ muse/cli/commands/release_coord.py .py 1 symbol added, 3 symbols modified
+ start_timer import import start_timer L85–85
~ run
~ muse/cli/commands/remote.py .py 1 symbol added, 1 symbol removed, 7 symbols modified
− time import import time L67–67
+ start_timer import import start_timer L86–86
~ run
~ muse/cli/commands/restore.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L75–75
+ start_timer import import start_timer L89–89
~ run
~ muse/cli/commands/rev_list.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L55–55
+ start_timer import import start_timer L70–70
~ run
~ muse/cli/commands/rev_parse.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L54–54
+ start_timer import import start_timer L57–57
~ run
~ muse/cli/commands/revert.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L78–78
+ start_timer import import start_timer L98–98
~ run
~ muse/cli/commands/rm.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L72–72
+ start_timer import import start_timer L79–79
~ run
~ muse/cli/commands/shard.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L93–93
+ start_timer import import start_timer L103–103
~ run
~ muse/cli/commands/shortlog.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L83–83
+ start_timer import import start_timer L94–94
~ run
~ muse/cli/commands/show_ref.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L80–80
+ start_timer import import start_timer L90–90
~ run
~ muse/cli/commands/sign.py .py 1 symbol added, 4 symbols modified
+ start_timer import import start_timer L89–89
~ muse/cli/commands/snapshot_cmd.py .py 1 symbol added, 1 symbol removed, 9 symbols modified
~ muse/cli/commands/snapshot_diff.py .py 1 symbol added, 3 symbols modified
+ start_timer import import start_timer L122–122
~ run
~ muse/cli/commands/sparse_checkout.py .py 1 symbol added, 1 symbol removed, 6 symbols modified
− time import import time L96–96
+ start_timer import import start_timer L106–106
~ muse/cli/commands/status.py .py 1 symbol added, 1 symbol removed, 4 symbols modified
− time import import time L87–87
+ start_timer import import start_timer L102–102
~ run
~ muse/cli/commands/switch.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− time import import time L74–74
+ start_timer import import start_timer L89–89
~ run
~ muse/cli/commands/symbolic_ref.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L108–108
+ start_timer import import start_timer L119–119
~ run
~ muse/cli/commands/tag.py .py 1 symbol added, 1 symbol removed, 5 symbols modified
− time import import time L66–66
+ start_timer import import start_timer L82–82
~ muse/cli/commands/trust.py .py 1 symbol added, 1 symbol removed, 5 symbols modified
− time import import time L45–45
+ start_timer import import start_timer L45–45
~ muse/cli/commands/unpack_objects.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L51–51
+ start_timer import import start_timer L58–58
~ run
~ muse/cli/commands/update_ref.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L72–72
+ start_timer import import start_timer L79–79
~ run
~ muse/cli/commands/verify.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− time import import time L70–70
+ start_timer import import start_timer L76–76
~ run
~ muse/cli/commands/verify_commit.py .py 1 symbol modified
~ run
~ muse/cli/commands/verify_object.py .py 1 symbol modified
~ run
~ muse/cli/commands/verify_pack.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
− time import import time L89–89
+ start_timer import import start_timer L97–97
~ run
~ muse/core/ci.py .py 1 symbol added, 3 symbols modified
+ start_timer import import start_timer L70–70
~ run_ci
~ muse/core/coordination.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L106–106
~ muse/core/gc.py .py 1 symbol added, 1 symbol modified
+ start_timer import import start_timer L70–70
~ run_gc
~ muse/core/test_runner.py .py 1 symbol added, 2 symbols modified
+ start_timer import import start_timer L60–60
~ tests/test_cmd_apply_patch.py .py 2 symbols added, 2 symbols removed, 1 symbol modified
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L162–174
− test_json_has_elapsed_seconds method method test_json_has_elapsed_seconds L149–160
+ test_duration_ms_is_float method method test_duration_ms_is_float L162–174
+ test_json_has_duration_ms method method test_json_has_duration_ms L149–160
~ tests/test_cmd_cat.py .py 2 symbols added, 2 symbols removed, 2 symbols modified
− test_json_has_elapsed_seconds method method test_json_has_elapsed_seconds L403–409
− test_elapsed_seconds_in_large_batch method method test_elapsed_seconds_in_large_batch L598–604
+ test_json_has_duration_ms method method test_json_has_duration_ms L403–409
+ test_duration_ms_in_large_batch method method test_duration_ms_in_large_batch L598–604
~ tests/test_cmd_cat_object.py .py 2 symbols added, 2 symbols removed, 3 symbols modified
− test_json_elapsed_seconds_present_for_missing_object method method test_json_elapsed_seconds_present_for_missing_object L198–204
− test_json_output_has_elapsed_seconds method method test_json_output_has_elapsed_seconds L187–196
+ test_json_duration_ms_present_for_missing_object method method test_json_duration_ms_present_for_missing_object L198–204
+ test_json_output_has_duration_ms method method test_json_output_has_duration_ms L187–196
~ tests/test_cmd_check.py .py 1 symbol added, 1 symbol removed, 5 symbols modified
− test_elapsed_seconds_positive method method test_elapsed_seconds_positive L334–339
+ test_duration_ms_positive method method test_duration_ms_positive L334–339
~ tests/test_cmd_commit_graph.py .py 1 symbol added, 1 symbol removed, 7 symbols modified
− test_elapsed_seconds_plausible method method test_elapsed_seconds_plausible L681–693
+ test_duration_ms_plausible method method test_duration_ms_plausible L681–693
~ tests/test_cmd_commit_tree.py .py 1 symbol added, 1 symbol removed, 6 symbols modified
− test_elapsed_seconds_reasonable method method test_elapsed_seconds_reasonable L601–607
+ test_duration_ms_reasonable method method test_duration_ms_reasonable L601–607
~ tests/test_cmd_coord_gc.py .py 2 symbols added, 2 symbols removed, 3 symbols modified
− test_elapsed_seconds_is_nonnegative_float method method test_elapsed_seconds_is_nonnegative_float L296–300
− test_result_has_elapsed_seconds method method test_result_has_elapsed_seconds L187–190
+ test_duration_ms_is_nonnegative_float method method test_duration_ms_is_nonnegative_float L296–300
+ test_result_has_duration_ms method method test_result_has_duration_ms L187–190
~ tests/test_cmd_coord_lifecycle.py .py 2 symbols added, 2 symbols removed, 7 symbols modified
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L820–824
− test_elapsed_seconds_recorded method method test_elapsed_seconds_recorded L432–435
+ test_duration_ms_is_float method method test_duration_ms_is_float L820–824
+ test_duration_ms_recorded method method test_duration_ms_recorded L432–435
~ tests/test_cmd_coord_list.py .py 2 symbols added, 2 symbols removed, 3 symbols modified
− test_json_elapsed_seconds method method test_json_elapsed_seconds L479–483
− test_empty_elapsed_seconds_present method method test_empty_elapsed_seconds_present L394–398
+ test_json_duration_ms method method test_json_duration_ms L479–483
+ test_empty_duration_ms_present method method test_empty_duration_ms_present L394–398
~ tests/test_cmd_coord_sync.py .py 4 symbols added, 4 symbols removed, 6 symbols modified
− test_json_elapsed_seconds_is_number method method test_json_elapsed_seconds_is_number L1301–1306
− test_json_elapsed_seconds_is_number method method test_json_elapsed_seconds_is_number L984–989
− test_pull_json_includes_elapsed_seconds method method test_pull_json_includes_elapsed_seconds L751–757
− test_push_json_includes_elapsed_seconds method method test_push_json_includes_elapsed_seconds L728–735
+ test_json_duration_ms_is_number method method test_json_duration_ms_is_number L1301–1306
+ test_json_duration_ms_is_number method method test_json_duration_ms_is_number L984–989
+ test_pull_json_includes_duration_ms method method test_pull_json_includes_duration_ms L751–757
+ test_push_json_includes_duration_ms method method test_push_json_includes_duration_ms L728–735
~ tests/test_cmd_diff.py .py 1 symbol modified
~ tests/test_cmd_domain_info_hardening.py .py 9 symbols added, 9 symbols removed, 9 symbols modified
− test_all_domains_has_elapsed_seconds method method test_all_domains_has_elapsed_seconds L117–119
− test_capabilities_only_has_elapsed_seconds method method test_capabilities_only_has_elapsed_seconds L139–141
− test_elapsed_seconds_is_float_not_int method method test_elapsed_seconds_is_float_not_int L256–261
− test_active_repo_has_elapsed_seconds method method test_active_repo_has_elapsed_seconds L62–65
− test_domain_flag_has_elapsed_seconds method method test_domain_flag_has_elapsed_seconds L93–95
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L77–80
− test_elapsed_seconds_non_negative method method test_elapsed_seconds_non_negative L82–85
− test_elapsed_seconds_six_decimal_places method method test_elapsed_seconds_six_decimal_places L87–91
− test_elapsed_seconds_plausible method method test_elapsed_seconds_plausible L296–299
+ test_all_domains_has_duration_ms method method test_all_domains_has_duration_ms L117–119
+ test_capabilities_only_has_duration_ms method method test_capabilities_only_has_duration_ms L139–141
+ test_duration_ms_is_float_not_int method method test_duration_ms_is_float_not_int L256–261
+ test_active_repo_has_duration_ms method method test_active_repo_has_duration_ms L62–65
+ test_domain_flag_has_duration_ms method method test_domain_flag_has_duration_ms L93–95
+ test_duration_ms_is_float method method test_duration_ms_is_float L77–80
+ test_duration_ms_non_negative method method test_duration_ms_non_negative L82–85
+ test_duration_ms_six_decimal_places method method test_duration_ms_six_decimal_places L87–91
+ test_duration_ms_plausible method method test_duration_ms_plausible L296–299
~ tests/test_cmd_forecast.py .py 1 symbol added, 1 symbol removed, 4 symbols modified
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L555–558
+ test_duration_ms_is_float method method test_duration_ms_is_float L555–558
~ tests/test_cmd_format_patch.py .py 3 symbols added, 3 symbols removed, 1 symbol modified
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L168–174
− test_elapsed_seconds_present method method test_elapsed_seconds_present L162–166
− test_elapsed_seconds_six_decimal_places method method test_elapsed_seconds_six_decimal_places L176–181
+ test_duration_ms_is_float method method test_duration_ms_is_float L168–174
+ test_duration_ms_present method method test_duration_ms_present L162–166
+ test_duration_ms_six_decimal_places method method test_duration_ms_six_decimal_places L176–181
~ tests/test_cmd_heartbeat_coord.py .py 2 symbols added, 2 symbols removed, 4 symbols modified
− test_json_elapsed_seconds_is_float method method test_json_elapsed_seconds_is_float L434–440
− test_elapsed_seconds_non_negative method method test_elapsed_seconds_non_negative L758–764
+ test_json_duration_ms_is_float method method test_json_duration_ms_is_float L434–440
+ test_duration_ms_non_negative method method test_duration_ms_non_negative L758–764
~ tests/test_cmd_name_rev.py .py 98 symbols added
+ TestBranchesFilter class class TestBranchesFilter L402–439
+ test_branches_filter_finds_matching method method test_branches_filter_finds_matching L413–421
+ test_branches_filter_hierarchical method method test_branches_filter_hierarchical L433–439
+ test_branches_filter_restricts_bfs method method test_branches_filter_restricts_bfs L403–411
+ test_branches_glob_pattern method method test_branches_glob_pattern L423–431
+ TestBuildNameMap class class TestBuildNameMap L201–279
+ test_branch_pattern_filter method method test_branch_pattern_filter L248–255
+ test_early_exit_when_all_targets_found method method test_early_exit_when_all_targets_found L272–279
+ test_empty_heads_dir method method test_empty_heads_dir L202–204
+ test_hierarchical_branch_discovered method method test_hierarchical_branch_discovered L221–227
+ test_invalid_ref_id_skipped method method test_invalid_ref_id_skipped L240–246
+ test_max_walk_ceiling method method test_max_walk_ceiling L257–270
+ test_parent_commit_distance_one method method test_parent_commit_distance_one L213–219
+ test_symlink_ref_skipped method method test_symlink_ref_skipped L229–238
+ test_tip_commit_distance_zero method method test_tip_commit_distance_zero L206–211
+ TestMaxWalk class class TestMaxWalk L534–564
+ test_json_shorthand method method test_json_shorthand L558–564
+ test_max_walk_limits_bfs method method test_max_walk_limits_bfs L535–549
+ test_max_walk_zero_errors method method test_max_walk_zero_errors L551–556
+ TestNameRevEntrySchema class class TestNameRevEntrySchema L135–146
+ test_ambiguous_field_present method method test_ambiguous_field_present L145–146
+ test_input_field_present method method test_input_field_present L141–143
+ test_required_fields method method test_required_fields L136–139
+ TestPrefixResolution class class TestPrefixResolution L352–394
+ test_ambiguous_prefix_marked method method test_ambiguous_prefix_marked L374–386
+ test_four_char_prefix_resolves method method test_four_char_prefix_resolves L362–372
+ test_non_hex_input_rejected method method test_non_hex_input_rejected L388–394
+ test_short_prefix_resolves method method test_short_prefix_resolves L353–360
+ TestResolution class class TestResolution L287–344
+ test_grandparent_named_tilde_two method method test_grandparent_named_tilde_two L309–317
+ test_input_field_preserves_original method method test_input_field_preserves_original L337–344
+ test_multiple_commit_ids method method test_multiple_commit_ids L329–335
+ test_parent_commit_named_tilde_one method method test_parent_commit_named_tilde_one L300–307
+ test_tip_commit_distance_zero method method test_tip_commit_distance_zero L288–298
+ test_undefined_commit method method test_undefined_commit L319–327
+ TestResolvePrefix class class TestResolvePrefix L154–193
+ _map method method _map L155–161
+ test_empty_map method method test_empty_map L190–193
+ test_exact_match method method test_exact_match L163–168
+ test_no_match_returns_none method method test_no_match_returns_none L184–188
+ test_short_prefix_ambiguous method method test_short_prefix_ambiguous L177–182
+ test_short_prefix_unique method method test_short_prefix_unique L170–175
+ TestSecurity class class TestSecurity L572–638
+ test_ansi_in_branch_name_sanitized_text method method test_ansi_in_branch_name_sanitized_text L581–590
+ test_format_error_goes_to_stderr method method test_format_error_goes_to_stderr L592–598
+ test_no_args_error_goes_to_stderr method method test_no_args_error_goes_to_stderr L600–604
+ test_no_repo_exits_cleanly method method test_no_repo_exits_cleanly L630–638
+ test_no_traceback_on_bad_format method method test_no_traceback_on_bad_format L606–611
+ test_no_traceback_on_non_hex method method test_no_traceback_on_non_hex L613–617
+ test_non_hex_input_rejected method method test_non_hex_input_rejected L573–579
+ test_symlink_ref_skipped method method test_symlink_ref_skipped L619–628
+ TestStdinMode class class TestStdinMode L447–484
+ test_stdin_combined_with_positional method method test_stdin_combined_with_positional L471–478
+ test_stdin_empty_with_no_positional_errors method method test_stdin_empty_with_no_positional_errors L480–484
+ test_stdin_reads_commit_ids method method test_stdin_reads_commit_ids L448–455
+ test_stdin_skips_blank_lines method method test_stdin_skips_blank_lines L457–462
+ test_stdin_skips_comments method method test_stdin_skips_comments L464–469
+ TestStress class class TestStress L646–696
+ test_10_branch_repo method method test_10_branch_repo L663–674
+ test_200_sequential_calls method method test_200_sequential_calls L676–682
+ test_50_commit_chain method method test_50_commit_chain L647–661
+ test_stdin_50_commit_ids method method test_stdin_50_commit_ids L684–696
+ TestTextOutput class class TestTextOutput L492–526
+ test_ambiguous_shown_in_text method method test_ambiguous_shown_in_text L516–526
+ test_custom_undefined_string method method test_custom_undefined_string L508–514
+ test_name_only_omits_cid method method test_name_only_omits_cid L500–506
+ test_text_format_contains_cid method method test_text_format_contains_cid L493–498
+ _AMBIG_MSG_1 variable variable _AMBIG_MSG_1 L116–116
+ _AMBIG_MSG_2 variable variable _AMBIG_MSG_2 L117–117
+ _AMBIG_PREFIX variable variable _AMBIG_PREFIX L118–118
+ _CommitInfoMap variable variable _CommitInfoMap L22–22
+ _commit function function _commit L84–111
+ _env function function _env L67–68
+ _init_repo function function _init_repo L54–64
+ _nr function function _nr L121–127
+ _sha function function _sha L50–51
+ _snap function function _snap L71–81
+ cli variable variable cli L41–41
+ CliRunner import import CliRunner L30–30
+ CommitRecord import import CommitRecord L38–38
+ InvokeResult import import InvokeResult L30–30
+ Manifest import import Manifest L39–39
+ SnapshotRecord import import SnapshotRecord L38–38
+ _NameRevEntry import import _NameRevEntry L32–32
+ _build_name_map import import _build_name_map L32–32
+ _resolve_prefix import import _resolve_prefix L32–32
+ annotations import import annotations L20–20
+ compute_commit_id import import compute_commit_id L37–37
+ compute_snapshot_id import import compute_snapshot_id L37–37
+ datetime import import datetime L24–24
+ hashlib import import hashlib L25–25
+ io import import io L26–26
+ json import import json L27–27
+ long_id import import long_id L39–39
+ pathlib import import pathlib L28–28
+ write_commit import import write_commit L38–38
+ write_snapshot import import write_snapshot L38–38
+ runner variable variable runner L42–42
~ tests/test_cmd_plan_merge.py .py 1 symbol added, 1 symbol removed, 4 symbols modified
− test_elapsed_seconds_is_non_negative_float method method test_elapsed_seconds_is_non_negative_float L631–635
+ test_duration_ms_is_non_negative_float method method test_duration_ms_is_non_negative_float L631–635
~ tests/test_cmd_reconcile.py .py 3 symbols added, 3 symbols removed, 3 symbols modified
− test_elapsed_seconds_is_float method method test_elapsed_seconds_is_float L542–545
− test_elapsed_seconds_non_negative method method test_elapsed_seconds_non_negative L547–550
− test_elapsed_seconds_present method method test_elapsed_seconds_present L537–540
+ test_duration_ms_is_float method method test_duration_ms_is_float L542–545
+ test_duration_ms_non_negative method method test_duration_ms_non_negative L547–550
+ test_duration_ms_present method method test_duration_ms_present L537–540
~ tests/test_cmd_release_coord.py .py 3 symbols added, 3 symbols removed, 4 symbols modified
− test_json_elapsed_seconds_present method method test_json_elapsed_seconds_present L314–321
− test_batch_json_has_elapsed_seconds method method test_batch_json_has_elapsed_seconds L690–701
− test_single_json_has_elapsed_seconds method method test_single_json_has_elapsed_seconds L681–688
+ test_json_duration_ms_present method method test_json_duration_ms_present L314–321
+ test_batch_json_has_duration_ms method method test_batch_json_has_duration_ms L690–701
+ test_single_json_has_duration_ms method method test_single_json_has_duration_ms L681–688
~ tests/test_cmd_restore_supercharge.py .py 4 symbols added, 4 symbols removed, 1 symbol modified
− test_restore_50_files_elapsed_ms_reasonable function function test_restore_50_files_elapsed_ms_reasonable L475–488
− test_restore_dry_run_json_has_elapsed_ms function function test_restore_dry_run_json_has_elapsed_ms L126–135
− test_restore_elapsed_ms_is_reasonable function function test_restore_elapsed_ms_is_reasonable L114–123
− test_restore_json_has_elapsed_ms function function test_restore_json_has_elapsed_ms L100–111
+ test_restore_50_files_duration_ms_reasonable function function test_restore_50_files_duration_ms_reasonable L475–488
+ test_restore_dry_run_json_has_duration_ms function function test_restore_dry_run_json_has_duration_ms L126–135
+ test_restore_duration_ms_is_reasonable function function test_restore_duration_ms_is_reasonable L114–123
+ test_restore_json_has_duration_ms function function test_restore_json_has_duration_ms L100–111
~ tests/test_cmd_rev_list.py .py 2 symbols added, 2 symbols removed, 6 symbols modified
− test_count_json_has_elapsed_ms method method test_count_json_has_elapsed_ms L521–526
− test_success_has_elapsed_ms method method test_success_has_elapsed_ms L464–471
+ test_count_json_has_duration_ms method method test_count_json_has_duration_ms L521–526
+ test_success_has_duration_ms method method test_success_has_duration_ms L464–471
~ tests/test_cmd_revert_hardening.py .py 6 symbols added, 6 symbols removed, 2 symbols modified
− test_elapsed_ms_is_nonneg_float method method test_elapsed_ms_is_nonneg_float L748–753
− test_elapsed_ms_on_dry_run method method test_elapsed_ms_on_dry_run L762–767
− test_elapsed_ms_on_no_commit method method test_elapsed_ms_on_no_commit L775–780
− test_elapsed_ms_on_ref_not_found_error method method test_elapsed_ms_on_ref_not_found_error L788–794
− test_elapsed_ms_on_root_commit_error method method test_elapsed_ms_on_root_commit_error L803–811
− test_elapsed_ms_present_on_success method method test_elapsed_ms_present_on_success L741–746
+ test_duration_ms_is_nonneg_float method method test_duration_ms_is_nonneg_float L748–753
+ test_duration_ms_on_dry_run method method test_duration_ms_on_dry_run L762–767
+ test_duration_ms_on_no_commit method method test_duration_ms_on_no_commit L775–780
+ test_duration_ms_on_ref_not_found_error method method test_duration_ms_on_ref_not_found_error L788–794
+ test_duration_ms_on_root_commit_error method method test_duration_ms_on_root_commit_error L803–811
+ test_duration_ms_present_on_success method method test_duration_ms_present_on_success L741–746
~ tests/test_cmd_rm.py .py 2 symbols added, 2 symbols removed, 4 symbols modified
− test_rm_json_dry_run_has_elapsed_ms_and_exit_code function function test_rm_json_dry_run_has_elapsed_ms_and_exit_code L542–551
− test_rm_json_has_elapsed_ms function function test_rm_json_has_elapsed_ms L517–527
+ test_rm_json_dry_run_has_duration_ms_and_exit_code function function test_rm_json_dry_run_has_duration_ms_and_exit_code L542–551
+ test_rm_json_has_duration_ms function function test_rm_json_has_duration_ms L517–527
~ tests/test_cmd_shard.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− test_elapsed_seconds_present_and_non_negative method method test_elapsed_seconds_present_and_non_negative L523–528
+ test_duration_ms_present_and_non_negative method method test_duration_ms_present_and_non_negative L523–528
~ tests/test_cmd_show_hardening.py .py 4 symbols added, 4 symbols removed, 7 symbols modified
− test_success_json_elapsed_ms_is_float method method test_success_json_elapsed_ms_is_float L85–90
− test_success_json_elapsed_ms_non_negative method method test_success_json_elapsed_ms_non_negative L92–95
− test_success_json_has_elapsed_ms method method test_success_json_has_elapsed_ms L79–83
− test_commit_not_found_error_json_has_elapsed_ms method method test_commit_not_found_error_json_has_elapsed_ms L155–160
+ test_success_json_duration_ms_is_float method method test_success_json_duration_ms_is_float L85–90
+ test_success_json_duration_ms_non_negative method method test_success_json_duration_ms_non_negative L92–95
+ test_success_json_has_duration_ms method method test_success_json_has_duration_ms L79–83
+ test_commit_not_found_error_json_has_duration_ms method method test_commit_not_found_error_json_has_duration_ms L155–160
~ tests/test_cmd_show_ref_hardening.py .py 6 symbols added, 6 symbols removed, 4 symbols modified
− test_count_json_has_elapsed_ms method method test_count_json_has_elapsed_ms L93–96
− test_head_json_has_elapsed_ms method method test_head_json_has_elapsed_ms L110–114
− test_listing_elapsed_ms_is_float method method test_listing_elapsed_ms_is_float L76–80
− test_listing_has_elapsed_ms method method test_listing_has_elapsed_ms L71–74
− test_verify_exists_json_has_elapsed_ms method method test_verify_exists_json_has_elapsed_ms L129–133
− test_verify_not_exists_json_has_elapsed_ms method method test_verify_not_exists_json_has_elapsed_ms L141–144
+ test_count_json_has_duration_ms method method test_count_json_has_duration_ms L93–96
+ test_head_json_has_duration_ms method method test_head_json_has_duration_ms L110–114
+ test_listing_duration_ms_is_float method method test_listing_duration_ms_is_float L76–80
+ test_listing_has_duration_ms method method test_listing_has_duration_ms L71–74
+ test_verify_exists_json_has_duration_ms method method test_verify_exists_json_has_duration_ms L129–133
+ test_verify_not_exists_json_has_duration_ms method method test_verify_not_exists_json_has_duration_ms L141–144
~ tests/test_cmd_sign_hardening.py .py 7 symbols added, 7 symbols removed, 4 symbols modified
− test_header_json_elapsed_ms_is_float method method test_header_json_elapsed_ms_is_float L89–97
− test_header_json_has_elapsed_ms method method test_header_json_has_elapsed_ms L80–87
− test_payment_json_elapsed_ms_is_float method method test_payment_json_elapsed_ms_is_float L211–219
− test_payment_json_has_elapsed_ms method method test_payment_json_has_elapsed_ms L202–209
− test_verify_invalid_json_has_elapsed_ms method method test_verify_invalid_json_has_elapsed_ms L152–165
− test_verify_valid_json_elapsed_ms_is_float method method test_verify_valid_json_elapsed_ms_is_float L143–150
− test_verify_valid_json_has_elapsed_ms method method test_verify_valid_json_has_elapsed_ms L126–132
+ test_header_json_duration_ms_is_float method method test_header_json_duration_ms_is_float L89–97
+ test_header_json_has_duration_ms method method test_header_json_has_duration_ms L80–87
+ test_payment_json_duration_ms_is_float method method test_payment_json_duration_ms_is_float L211–219
+ test_payment_json_has_duration_ms method method test_payment_json_has_duration_ms L202–209
+ test_verify_invalid_json_has_duration_ms method method test_verify_invalid_json_has_duration_ms L152–165
+ test_verify_valid_json_duration_ms_is_float method method test_verify_valid_json_duration_ms_is_float L143–150
+ test_verify_valid_json_has_duration_ms method method test_verify_valid_json_has_duration_ms L126–132
~ tests/test_cmd_snapshot_diff_supercharge.py .py 2 symbols added, 2 symbols removed, 4 symbols modified
− test_elapsed_ms_present method method test_elapsed_ms_present L119–127
− test_batch_json_has_elapsed_ms method method test_batch_json_has_elapsed_ms L453–461
+ test_duration_ms_present method method test_duration_ms_present L119–127
+ test_batch_json_has_duration_ms method method test_batch_json_has_duration_ms L453–461
~ tests/test_cmd_snapshot_supercharge.py .py 4 symbols added, 4 symbols removed, 7 symbols modified
− test_create_has_elapsed_ms method method test_create_has_elapsed_ms L88–94
− test_export_has_elapsed_ms method method test_export_has_elapsed_ms L151–166
− test_list_has_elapsed_ms method method test_list_has_elapsed_ms L102–111
− test_read_has_elapsed_ms method method test_read_has_elapsed_ms L130–140
+ test_create_has_duration_ms method method test_create_has_duration_ms L88–94
+ test_export_has_duration_ms method method test_export_has_duration_ms L151–166
+ test_list_has_duration_ms method method test_list_has_duration_ms L102–111
+ test_read_has_duration_ms method method test_read_has_duration_ms L130–140
~ tests/test_cmd_sparse_checkout_supercharge.py .py 6 symbols added, 6 symbols removed, 5 symbols modified
− test_add_json_has_elapsed_ms method method test_add_json_has_elapsed_ms L162–168
− test_disable_json_has_elapsed_ms method method test_disable_json_has_elapsed_ms L178–184
− test_init_json_has_elapsed_ms method method test_init_json_has_elapsed_ms L131–137
− test_list_json_has_elapsed_ms method method test_list_json_has_elapsed_ms L194–200
− test_set_json_has_elapsed_ms method method test_set_json_has_elapsed_ms L146–152
− test_stats_has_elapsed_ms method method test_stats_has_elapsed_ms L448–454
+ test_add_json_has_duration_ms method method test_add_json_has_duration_ms L162–168
+ test_disable_json_has_duration_ms method method test_disable_json_has_duration_ms L178–184
+ test_init_json_has_duration_ms method method test_init_json_has_duration_ms L131–137
+ test_list_json_has_duration_ms method method test_list_json_has_duration_ms L194–200
+ test_set_json_has_duration_ms method method test_set_json_has_duration_ms L146–152
+ test_stats_has_duration_ms method method test_stats_has_duration_ms L448–454
~ tests/test_cmd_status_supercharge.py .py 7 symbols added, 7 symbols removed, 7 symbols modified
− test_D1_elapsed_ms_is_float method method test_D1_elapsed_ms_is_float L429–432
− test_U1_elapsed_ms_non_negative method method test_U1_elapsed_ms_non_negative L132–135
− test_U1_elapsed_ms_present_code_domain method method test_U1_elapsed_ms_present_code_domain L122–125
− test_U1_elapsed_ms_present_non_code_domain method method test_U1_elapsed_ms_present_non_code_domain L127–130
− test_U2_elapsed_ms_present_in_branch_only method method test_U2_elapsed_ms_present_in_branch_only L160–164
− test_P2_elapsed_ms_present_in_all_rapid_calls method method test_P2_elapsed_ms_present_in_all_rapid_calls L491–498
− test_P3_elapsed_ms_consistent_across_clean_calls method method test_P3_elapsed_ms_consistent_across_clean_calls L500–509
+ test_D1_duration_ms_is_float method method test_D1_duration_ms_is_float L429–432
+ test_U1_duration_ms_non_negative method method test_U1_duration_ms_non_negative L132–135
+ test_U1_duration_ms_present_code_domain method method test_U1_duration_ms_present_code_domain L122–125
+ test_U1_duration_ms_present_non_code_domain method method test_U1_duration_ms_present_non_code_domain L127–130
+ test_U2_duration_ms_present_in_branch_only method method test_U2_duration_ms_present_in_branch_only L160–164
+ test_P2_duration_ms_present_in_all_rapid_calls method method test_P2_duration_ms_present_in_all_rapid_calls L491–498
+ test_P3_duration_ms_consistent_across_clean_calls method method test_P3_duration_ms_consistent_across_clean_calls L500–509
~ tests/test_cmd_switch_supercharge.py .py 8 symbols added, 8 symbols removed, 11 symbols modified
− test_D3_elapsed_ms_is_float method method test_D3_elapsed_ms_is_float L163–165
− test_U1_elapsed_ms_created method method test_U1_elapsed_ms_created L135–138
− test_U1_elapsed_ms_dry_run method method test_U1_elapsed_ms_dry_run L152–155
− test_U1_elapsed_ms_force_create_existing method method test_U1_elapsed_ms_force_create_existing L145–150
− test_U1_elapsed_ms_force_create_new method method test_U1_elapsed_ms_force_create_new L140–143
− test_U1_elapsed_ms_switched method method test_U1_elapsed_ms_switched L130–133
− test_json_error_has_elapsed_ms method method test_json_error_has_elapsed_ms L222–225
− test_P3_elapsed_ms_in_all_rapid_json_calls method method test_P3_elapsed_ms_in_all_rapid_json_calls L466–474
+ test_D3_duration_ms_is_float method method test_D3_duration_ms_is_float L163–165
+ test_U1_duration_ms_created method method test_U1_duration_ms_created L135–138
+ test_U1_duration_ms_dry_run method method test_U1_duration_ms_dry_run L152–155
+ test_U1_duration_ms_force_create_existing method method test_U1_duration_ms_force_create_existing L145–150
+ test_U1_duration_ms_force_create_new method method test_U1_duration_ms_force_create_new L140–143
+ test_U1_duration_ms_switched method method test_U1_duration_ms_switched L130–133
+ test_json_error_has_duration_ms method method test_json_error_has_duration_ms L222–225
+ test_P3_duration_ms_in_all_rapid_json_calls method method test_P3_duration_ms_in_all_rapid_json_calls L466–474
~ tests/test_cmd_symbolic_ref_supercharge.py .py 11 symbols added, 11 symbols removed, 10 symbols modified
− test_D1_elapsed_ms_is_float method method test_D1_elapsed_ms_is_float L354–356
− test_U1_elapsed_ms_create_branch method method test_U1_elapsed_ms_create_branch L149–153
− test_U1_elapsed_ms_detached_head method method test_U1_elapsed_ms_detached_head L155–164
− test_U1_elapsed_ms_read_mode method method test_U1_elapsed_ms_read_mode L137–141
− test_U1_elapsed_ms_write_mode method method test_U1_elapsed_ms_write_mode L143–147
− test_U3_typeddict_has_elapsed_ms method method test_U3_typeddict_has_elapsed_ms L178–181
− test_E5_format_error_has_elapsed_ms method method test_E5_format_error_has_elapsed_ms L246–250
− test_E5_json_error_has_elapsed_ms method method test_E5_json_error_has_elapsed_ms L232–236
− test_P1_100_rapid_reads_all_have_elapsed_ms method method test_P1_100_rapid_reads_all_have_elapsed_ms L398–406
− test_P2_elapsed_ms_always_positive method method test_P2_elapsed_ms_always_positive L408–411
− test_P3_20_branch_writes_all_include_elapsed_ms method method test_P3_20_branch_writes_all_include_elapsed_ms L413–424
+ test_D1_duration_ms_is_float method method test_D1_duration_ms_is_float L354–356
+ test_U1_duration_ms_create_branch method method test_U1_duration_ms_create_branch L149–153
+ test_U1_duration_ms_detached_head method method test_U1_duration_ms_detached_head L155–164
+ test_U1_duration_ms_read_mode method method test_U1_duration_ms_read_mode L137–141
+ test_U1_duration_ms_write_mode method method test_U1_duration_ms_write_mode L143–147
+ test_U3_typeddict_has_duration_ms method method test_U3_typeddict_has_duration_ms L178–181
+ test_E5_format_error_has_duration_ms method method test_E5_format_error_has_duration_ms L246–250
+ test_E5_json_error_has_duration_ms method method test_E5_json_error_has_duration_ms L232–236
+ test_P1_100_rapid_reads_all_have_duration_ms method method test_P1_100_rapid_reads_all_have_duration_ms L398–406
+ test_P2_duration_ms_always_positive method method test_P2_duration_ms_always_positive L408–411
+ test_P3_20_branch_writes_all_include_duration_ms method method test_P3_20_branch_writes_all_include_duration_ms L413–424
~ tests/test_cmd_tag_supercharge.py .py 11 symbols added, 11 symbols removed, 4 symbols modified
− test_i1_add_has_elapsed_ms method method test_i1_add_has_elapsed_ms L145–150
− test_i3_add_dry_run_has_elapsed_ms method method test_i3_add_dry_run_has_elapsed_ms L158–164
− test_i4_add_already_tagged_has_elapsed_ms method method test_i4_add_already_tagged_has_elapsed_ms L166–173
− test_i5_list_has_elapsed_ms method method test_i5_list_has_elapsed_ms L175–181
− test_i6_list_empty_has_elapsed_ms method method test_i6_list_empty_has_elapsed_ms L183–189
− test_i7_remove_has_elapsed_ms method method test_i7_remove_has_elapsed_ms L191–197
− test_i8_remove_not_found_has_elapsed_ms method method test_i8_remove_not_found_has_elapsed_ms L199–206
− test_p1_elapsed_ms_is_float method method test_p1_elapsed_ms_is_float L339–344
− test_p2_elapsed_ms_under_5000 method method test_p2_elapsed_ms_under_5000 L346–350
− test_p3_elapsed_ms_is_positive method method test_p3_elapsed_ms_is_positive L352–357
− test_u1_typeddict_has_elapsed_ms method method test_u1_typeddict_has_elapsed_ms L108–112
+ test_i1_add_has_duration_ms method method test_i1_add_has_duration_ms L145–150
+ test_i3_add_dry_run_has_duration_ms method method test_i3_add_dry_run_has_duration_ms L158–164
+ test_i4_add_already_tagged_has_duration_ms method method test_i4_add_already_tagged_has_duration_ms L166–173
+ test_i5_list_has_duration_ms method method test_i5_list_has_duration_ms L175–181
+ test_i6_list_empty_has_duration_ms method method test_i6_list_empty_has_duration_ms L183–189
+ test_i7_remove_has_duration_ms method method test_i7_remove_has_duration_ms L191–197
+ test_i8_remove_not_found_has_duration_ms method method test_i8_remove_not_found_has_duration_ms L199–206
+ test_p1_duration_ms_is_float method method test_p1_duration_ms_is_float L339–344
+ test_p2_duration_ms_under_5000 method method test_p2_duration_ms_under_5000 L346–350
+ test_p3_duration_ms_is_positive method method test_p3_duration_ms_is_positive L352–357
+ test_u1_typeddict_has_duration_ms method method test_u1_typeddict_has_duration_ms L108–112
~ tests/test_cmd_trust_supercharge.py .py 7 symbols added, 7 symbols removed, 5 symbols modified
− test_d5_elapsed_ms_non_negative method method test_d5_elapsed_ms_non_negative L326–337
− test_u1_add_has_elapsed_ms method method test_u1_add_has_elapsed_ms L102–107
− test_u3_remove_has_elapsed_ms method method test_u3_remove_has_elapsed_ms L115–121
− test_u5_list_has_elapsed_ms method method test_u5_list_has_elapsed_ms L130–135
− test_u7_hub_list_has_elapsed_ms method method test_u7_hub_list_has_elapsed_ms L143–148
− test_u9_hub_reset_has_elapsed_ms method method test_u9_hub_reset_has_elapsed_ms L156–161
− test_p1_elapsed_ms_is_float method method test_p1_elapsed_ms_is_float L345–350
+ test_d5_duration_ms_non_negative method method test_d5_duration_ms_non_negative L326–337
+ test_u1_add_has_duration_ms method method test_u1_add_has_duration_ms L102–107
+ test_u3_remove_has_duration_ms method method test_u3_remove_has_duration_ms L115–121
+ test_u5_list_has_duration_ms method method test_u5_list_has_duration_ms L130–135
+ test_u7_hub_list_has_duration_ms method method test_u7_hub_list_has_duration_ms L143–148
+ test_u9_hub_reset_has_duration_ms method method test_u9_hub_reset_has_duration_ms L156–161
+ test_p1_duration_ms_is_float method method test_p1_duration_ms_is_float L345–350
~ tests/test_cmd_unpack_objects_supercharge.py .py 6 symbols added, 6 symbols removed, 8 symbols modified
− test_u1_success_json_has_elapsed_ms method method test_u1_success_json_has_elapsed_ms L106–116
− test_u3_elapsed_ms_is_float method method test_u3_elapsed_ms_is_float L130–140
− test_u4_elapsed_ms_non_negative method method test_u4_elapsed_ms_non_negative L142–152
− test_s4_error_elapsed_ms_is_float method method test_s4_error_elapsed_ms_is_float L291–297
− test_p1_elapsed_ms_under_5000ms_for_single_commit method method test_p1_elapsed_ms_under_5000ms_for_single_commit L379–389
− test_p2_elapsed_ms_under_5000ms_for_five_commit_chain method method test_p2_elapsed_ms_under_5000ms_for_five_commit_chain L391–405
+ test_u1_success_json_has_duration_ms method method test_u1_success_json_has_duration_ms L106–116
+ test_u3_duration_ms_is_float method method test_u3_duration_ms_is_float L130–140
+ test_u4_duration_ms_non_negative method method test_u4_duration_ms_non_negative L142–152
+ test_s4_error_duration_ms_is_float method method test_s4_error_duration_ms_is_float L291–297
+ test_p1_duration_ms_under_5000ms_for_single_commit method method test_p1_duration_ms_under_5000ms_for_single_commit L379–389
+ test_p2_duration_ms_under_5000ms_for_five_commit_chain method method test_p2_duration_ms_under_5000ms_for_five_commit_chain L391–405
~ tests/test_cmd_update_ref_supercharge.py .py 10 symbols added, 10 symbols removed, 12 symbols modified
− test_cas1_null_guard_mismatch_has_elapsed_ms method method test_cas1_null_guard_mismatch_has_elapsed_ms L496–505
− test_cas3_success_has_elapsed_ms method method test_cas3_success_has_elapsed_ms L522–531
− test_u1_create_ref_has_elapsed_ms method method test_u1_create_ref_has_elapsed_ms L108–115
− test_u3_update_ref_has_elapsed_ms method method test_u3_update_ref_has_elapsed_ms L126–135
− test_u5_delete_ref_has_elapsed_ms method method test_u5_delete_ref_has_elapsed_ms L147–155
− test_u7_elapsed_ms_is_float method method test_u7_elapsed_ms_is_float L166–173
− test_u8_elapsed_ms_non_negative method method test_u8_elapsed_ms_non_negative L175–181
− test_u9_no_verify_success_has_elapsed_ms method method test_u9_no_verify_success_has_elapsed_ms L183–190
− test_s5_error_elapsed_ms_is_float_non_negative method method test_s5_error_elapsed_ms_is_float_non_negative L350–356
− test_p3_200_sequential_updates_all_have_elapsed_ms method method test_p3_200_sequential_updates_all_have_elapsed_ms L569–576
+ test_cas1_null_guard_mismatch_has_duration_ms method method test_cas1_null_guard_mismatch_has_duration_ms L496–505
+ test_cas3_success_has_duration_ms method method test_cas3_success_has_duration_ms L522–531
+ test_u1_create_ref_has_duration_ms method method test_u1_create_ref_has_duration_ms L108–115
+ test_u3_update_ref_has_duration_ms method method test_u3_update_ref_has_duration_ms L126–135
+ test_u5_delete_ref_has_duration_ms method method test_u5_delete_ref_has_duration_ms L147–155
+ test_u7_duration_ms_is_float method method test_u7_duration_ms_is_float L166–173
+ test_u8_duration_ms_non_negative method method test_u8_duration_ms_non_negative L175–181
+ test_u9_no_verify_success_has_duration_ms method method test_u9_no_verify_success_has_duration_ms L183–190
+ test_s5_error_duration_ms_is_float_non_negative method method test_s5_error_duration_ms_is_float_non_negative L350–356
+ test_p3_200_sequential_updates_all_have_duration_ms method method test_p3_200_sequential_updates_all_have_duration_ms L569–576
~ tests/test_cmd_verify_commit.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− test_elapsed_ms_and_exit_code_in_json method method test_elapsed_ms_and_exit_code_in_json L661–672
+ test_duration_ms_and_exit_code_in_json method method test_duration_ms_and_exit_code_in_json L661–672
~ tests/test_cmd_verify_object.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
− test_elapsed_ms_and_exit_code_in_json method method test_elapsed_ms_and_exit_code_in_json L274–284
+ test_duration_ms_and_exit_code_in_json method method test_duration_ms_and_exit_code_in_json L274–284
~ tests/test_cmd_verify_supercharge.py .py 4 symbols added, 4 symbols removed, 15 symbols modified
− test_elapsed_ms_is_float method method test_elapsed_ms_is_float L386–390
− test_clean_repo_elapsed_ms_present method method test_clean_repo_elapsed_ms_present L128–135
− test_failures_elapsed_ms_present method method test_failures_elapsed_ms_present L147–153
− test_elapsed_ms_positive method method test_elapsed_ms_positive L458–462
+ test_duration_ms_is_float method method test_duration_ms_is_float L386–390
+ test_clean_repo_duration_ms_present method method test_clean_repo_duration_ms_present L128–135
+ test_failures_duration_ms_present method method test_failures_duration_ms_present L147–153
+ test_duration_ms_positive method method test_duration_ms_positive L458–462
~ tests/test_code_commands.py .py 2 symbols modified
~ tests/test_maintenance_supercharge.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
− test_no_elapsed_seconds_key method method test_no_elapsed_seconds_key L101–106
+ test_no_elapsed_ms_key method method test_no_elapsed_ms_key L101–106
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:ca26408165d37e8c4f758f027e7be38aff723217406329d09a232de42e0e3f7d --body "your comment"