Commit Diff


commit - 2d4975924ce5391b01ebd64d11499b485e19aace
commit + 50617b77af7b0af9788a0e4b09697e06067cb8f4
blob - deb6c22c2d7e0b2eb805d71560f1aff83c2315cc
blob + d70c60a248637feaadbbdd019980f2db1e75a6e6
--- tog/tog.c
+++ tog/tog.c
@@ -6234,8 +6234,14 @@ input_ref_view(struct tog_view **new_view, struct tog_
 		break;
 	case 's':
 		s->sort_by_date = !s->sort_by_date;
-		tog_free_refs();
-		err = tog_load_refs(s->repo, s->sort_by_date);
+		err = got_reflist_sort(&tog_refs, s->sort_by_date ?
+		    got_ref_cmp_by_commit_timestamp_descending :
+		    got_ref_cmp_by_name, s->repo);
+		if (err)
+			break;
+		got_reflist_object_id_map_free(tog_refs_idmap);
+		err = got_reflist_object_id_map_create(&tog_refs_idmap,
+		    &tog_refs, s->repo);
 		if (err)
 			break;
 		ref_view_free_refs(s);