terminal user interface to jujutsu. Focused on speed and clarity
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

render conflict labels for divergent commits

+79 -1
+1
jj_tui/lib/commit_render.ml
··· 98 98 line1_parts := commit_id_img :: !line1_parts; 99 99 let labels = 100 100 [ if node.hidden then Some (fg lightblack ++ bs, "(hidden)") else None 101 + ; if node.conflict then Some (fg red ++ bs, "(conflict)") else None 101 102 ; if node.divergent then Some (fg red ++ bs, "(divergent)") else None 102 103 ] 103 104 |> List.filter_map Fun.id
+23 -1
jj_tui/lib/commit_render_tests.ml
··· 33 33 ?(is_preview = false) 34 34 ?(hidden = false) 35 35 ?(divergent = false) 36 + ?(conflict = false) 36 37 ?(bookmarks = []) 37 38 ~change_id_prefix 38 39 ~change_id_rest ··· 57 58 ; empty 58 59 ; hidden 59 60 ; divergent 60 - ; conflict = false 61 + ; conflict 61 62 ; is_preview 62 63 ; change_id_prefix 63 64 ; change_id_rest ··· 232 233 [%expect 233 234 {| 234 235 lqzzqwqx/0 test@example.com 2024-01-01 main?? main@git 5ab39974 (divergent) 236 + disable worker mode 237 + |}] 238 + ;; 239 + 240 + let%expect_test "render_conflict_and_divergent_commit" = 241 + let node = 242 + make_test_node 243 + ~change_id_prefix:"lqzzqwqx" 244 + ~change_id_rest:"/0" 245 + ~commit_id_prefix:"5ab39974" 246 + ~commit_id_rest:"" 247 + ~description:"disable worker mode" 248 + ~bookmarks:[ "main??"; "main@git" ] 249 + ~conflict:true 250 + ~divergent:true 251 + () 252 + in 253 + render_and_print node; 254 + [%expect 255 + {| 256 + lqzzqwqx/0 test@example.com 2024-01-01 main?? main@git 5ab39974 (conflict) (divergent) 235 257 disable worker mode 236 258 |}] 237 259 ;;
+55
jj_tui/lib/render_jj_graph_tests.ml
··· 965 965 |}] 966 966 ;; 967 967 968 + let%expect_test "render_nodes_structured_conflict_and_divergent_node_row" = 969 + let conflict_and_divergent : node = 970 + { 971 + parents = [] 972 + ; creation_time = Int64.zero 973 + ; working_copy = false 974 + ; immutable = false 975 + ; wip = false 976 + ; change_id = "lqzzqwqx/0" 977 + ; commit_id = "5ab39974" 978 + ; description = "disable worker mode" 979 + ; bookmarks = [] 980 + ; author_email = "test@example.com" 981 + ; author_timestamp = "2024-01-01" 982 + ; empty = false 983 + ; hidden = false 984 + ; divergent = true 985 + ; conflict = true 986 + ; is_preview = false 987 + ; change_id_prefix = "lqzzqwqx" 988 + ; change_id_rest = "/0" 989 + ; commit_id_prefix = "5ab39974" 990 + ; commit_id_rest = "" 991 + } 992 + in 993 + let state : state = { depth = 0; columns = [||]; pending_joins = [] } in 994 + let rows = 995 + Render_jj_graph.render_nodes_structured 996 + state 997 + [ conflict_and_divergent ] 998 + ~info_lines:(fun _ -> 0) 999 + in 1000 + Printf.printf "Total rows: %d\n" (List.length rows); 1001 + List.iter 1002 + (fun row -> 1003 + let row_type_str = 1004 + match row.row_type with 1005 + | NodeRow -> 1006 + "NodeRow" 1007 + | LinkRow -> 1008 + "LinkRow" 1009 + | PadRow -> 1010 + "PadRow" 1011 + | TermRow -> 1012 + "TermRow" 1013 + in 1014 + Printf.printf "%s: '%s'\n" row_type_str row.graph_chars) 1015 + rows; 1016 + [%expect 1017 + {| 1018 + Total rows: 1 1019 + NodeRow: '×' 1020 + |}] 1021 + ;; 1022 + 968 1023 let%expect_test "elided_parent_creates_termination_line" = 969 1024 let elided = Render_jj_graph.make_elided_node () in 970 1025 let child : node =