lib/commit_graph.c


Log

Author Commit Date CI Message
Stefan Sperling d7b5a0e8 2022-04-20T14:00:12 inline struct got_object_id in struct got_object_qid Saves us from doing a malloc/free call for every item on the list. ok op@
Stefan Sperling a44927cc 2022-04-07T12:57:31 stop relying on commit cache for good performance of got_object_id_by_path() Instead of internally opening and closing the same commit object over and over again, require callers to pass an open commit object in. Avoids an inherent dependency on the commit object cache for reasonable performance. ok op@
Stefan Sperling 4e91ef15 2021-09-26T17:51:35 make it possible to merge vendor branches with 'got merge'
Christian Weisgerber dbdddfee 2021-06-23T20:48:35 switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp
Stefan Sperling ca6e02ac 2020-01-07T11:14:52 add support for first-parent history traversal to got-read-pack
Stefan Sperling 5aa81393 2020-01-06T19:38:23 add copyright year for files already touched in 2020
Stefan Sperling 32c85d2c 2020-01-06T00:01:59 revert e7a5b9e9b763327a7e1ddd69f6bc533565d60794; it changed blame output
Stefan Sperling e7a5b9e9 2020-01-05T00:23:54 commit graph's close_branch() can be inlined in one place
Stefan Sperling df8cd9c6 2020-01-05T00:11:11 small simplification in got_commit_graph_iter_next()
Stefan Sperling a450c2bf 2020-01-05T00:05:39 remove a misleading comment
Stefan Sperling 48595de1 2020-01-04T23:58:45 remove redundant code from add_node_to_iter_list()
Stefan Sperling 94489f7d 2020-01-04T23:54:53 remove commit graph iter_node pointer; use the iter_list head instead
Stefan Sperling 5175b31a 2020-01-04T21:51:24 improve commit graph's error handling of non-existent paths
Stefan Sperling 7e33c8c5 2020-01-04T21:31:55 no need to open a commit in got_commit_graph_iter_start()
Stefan Sperling 3ff3126d 2020-01-04T21:28:00 simplify got_commit_graph_iter_start(); adding an ID to open_branches suffices
Stefan Sperling 14159a7b 2020-01-04T21:15:59 remove unused 'node' parameter from advance_branch()
Stefan Sperling 8e291695 2020-01-04T21:12:59 commit graph's idset data pointers were not actually used
Stefan Sperling 57eecd46 2020-01-04T20:06:38 remove pointless output parameters from fetch_commits_from_open_branches()
Stefan Sperling ec1904dc 2020-01-04T19:55:21 fix error in previous commit
Stefan Sperling 13a851c1 2020-01-04T19:50:01 simplify changed-path and branch-done detection in commit graph
Stefan Sperling de56b2d7 2020-01-04T19:39:29 move changed-path detection out of add_node() in commit graph
Stefan Sperling 88cdb9c6 2020-01-04T18:51:14 init TAILQ earlier in got_commit_graph_open(), just in case
Stefan Sperling a342f20d 2020-01-04T18:47:57 remove a redundant call to detect_changed_path() in commit graph
Stefan Sperling 22220781 2020-01-04T18:36:07 simplify error handling in got_commit_graph_open()
Stefan Sperling 3ddcebf3 2020-01-04T18:31:19 merge alloc_graph() into got_commit_graph_open()
Stefan Sperling 3d509237 2020-01-04T18:25:28 simplify got_commit_graph_open()
Stefan Sperling 11d7587e 2020-01-04T17:57:01 replace commit graph's head_node pointer with a local variable
Stefan Sperling ee780d5c 2020-01-04T15:44:13 remove GOT_ERR_ITER_NEED_MORE; the commit graph now fetches internally instead
Stefan Sperling 56e0773d 2019-11-28T02:32:58 convert tree entries from SIMPLEQ to an array
Stefan Sperling 6fb7cd11 2019-08-22T11:33:50 add cancellation support to commit graph and 'got blame'
Stefan Sperling 202329ae 2019-08-11T20:11:56 fix some more occurrences of potential errno clobbering
Stefan Sperling 818c7501 2019-07-10T18:23:39 initial 'got rebase' implementation
Stefan Sperling 82751bc5 2019-05-13T12:48:44 fix typo in error message and improve indentation
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
Stefan Sperling a9833bc9 2019-05-13T10:56:15 add got_commit_graph_find_youngest_common_ancestor()
Stefan Sperling e009fd0f 2019-05-11T14:30:02 identify an error source correctly
joshua stein 230a42bd 2019-05-11T13:04:38 got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)
Stefan Sperling 324d37e7 2019-05-11T09:14:30 make got path APIs available to library consumers
Stefan Sperling 998ff57f 2018-11-19T00:22:17 make advance_branch() search the smaller id set first
Stefan Sperling 9f57848c 2018-11-19T00:20:14 remove unnecessary graph search in advance_branch()
Stefan Sperling 81a966c0 2018-11-19T00:11:01 whitespace
Stefan Sperling 73026088 2018-11-18T23:47:19 rename got_commit_graph_node's commit_timestamp to timestamp
Stefan Sperling 7a62478b 2018-11-18T23:45:45 remove some unused cruft from commit graph
Stefan Sperling 0e9101d5 2018-11-18T23:37:05 if-return-early instead of if-else in detect_changed_path()
Stefan Sperling 7310c1c3 2018-11-18T23:33:59 don't open tree unnecessarily in detect_changed_path()
Stefan Sperling ce95c694 2018-11-18T23:30:14 remove unreachable code
Stefan Sperling 45f209d7 2018-11-18T23:18:50 add_node() must remove freed nodes from graph in error path
Stefan Sperling 9b88e78c 2018-11-18T23:08:01 don't add duplicates to commit graph's open branches set
Stefan Sperling d2c2d781 2018-11-18T21:46:12 fix comparison of parents content in advance_branch()
Stefan Sperling 6dcdad08 2018-11-18T21:45:31 plug memory leaks in advance_branch()
Stefan Sperling d1451975 2018-11-11T13:52:20 add custom error code for 'no such tree entry' errors
Stefan Sperling 91a3d81f 2018-11-11T13:41:46 introduce got errors with custom messages; add one for ERR_NO_OBJ
Stefan Sperling 246e1c78 2018-11-08T19:09:27 prevent free of bogus pointers via fetch_commits_from_open_branches()
Stefan Sperling 5e50c36a 2018-11-08T19:09:08 remove premature optimization which resulted in buggy logic
Stefan Sperling 32777563 2018-11-07T07:28:37 avoid tips temp copy in fetch_commits_from_open_branches()
Stefan Sperling cb103d04 2018-11-07T06:42:26 allow got_object_idset_for_each() to return an error
Stefan Sperling 1bf85b22 2018-11-07T06:28:59 stop messing with the open_branches set in add_node()
Stefan Sperling 5df4932d 2018-11-05T18:25:15 improve handling of struct got_object_qid allocations
Stefan Sperling 649fc316 2018-11-05T17:41:24 remove a redundant call to detect_changed_path()
Stefan Sperling bfd1f6da 2018-11-05T16:59:42 init commit timestamp earlier in commit graph's add_node()
Stefan Sperling ccb26ccd 2018-11-05T16:16:35 avoid a call to mktime() in commit graph's add_node()
Stefan Sperling 41fa1437 2018-11-05T15:30:15 back out mini-commits; no significant performance difference
Stefan Sperling 05e1230b 2018-11-05T12:42:03 rename got_commit_object_mini to got_mini_commit_object
Stefan Sperling e32baab7 2018-11-05T12:39:49 add an object cache for mini commits
Stefan Sperling 7762fe12 2018-11-05T11:46:30 add a mini-commit object for use by commit graph
Stefan Sperling b36429ab 2018-11-05T01:44:27 reduce the amount of memcmp() calls via got_object_idset_add()
Stefan Sperling fd1d2703 2018-11-04T22:29:58 don't eat errors in detect_changed_path() + cosmetic fixes
Stefan Sperling 644e44ed 2018-11-04T16:40:28 remove some dead code
Stefan Sperling f2877bf5 2018-10-24T15:49:13 expose merge commits in log output again
Stefan Sperling 93e45b7c 2018-09-24T11:57:04 use commit graph for path filtering in 'tog log'
Stefan Sperling 8d49203e 2018-09-20T15:07:49 allocate less tips by default in commit graph
Stefan Sperling e65e3e2f 2018-09-20T10:51:38 remove useless code in #if 0
Stefan Sperling 6bc66952 2018-09-19T15:09:35 fix commit graph iteration again; second entry was omitted
Stefan Sperling 028d7a4e 2018-09-19T14:52:32 fix commit graph iteration with just one iter-list entry
Stefan Sperling d415e120 2018-09-19T14:19:23 fix previous: last entry returned by graph iteration was duplicated
Stefan Sperling bee6b577 2018-09-19T14:14:24 make commit graph skip no-op branches and fix iter-list management
Stefan Sperling 2c7f8870 2018-09-19T13:19:41 typos
Stefan Sperling 1c7a5dcb 2018-09-15T20:31:55 don't call mktime() needlessly in commit graph
Stefan Sperling 31cedeaf 2018-09-15T19:42:15 add path filtering support to commit graph
Stefan Sperling b565f6f8 2018-07-23T13:08:03 avoid unnecessary reallocations in fetch_commits_from_open_branches()
Stefan Sperling f4ceb45e 2018-07-23T12:40:12 commit graph child adjancencies are not used; drop them
Stefan Sperling fa2f6902 2018-07-23T11:30:26 use got_object_qid_free() consistently
Stefan Sperling fb5b9d5a 2018-07-23T11:18:44 fix more leaks in commit graph's add_node()
Stefan Sperling 063c1bed 2018-07-23T10:12:37 free parent ids when freeing commit graph nodes
Stefan Sperling 4e845d01 2018-07-22T16:10:19 fix leaks in commig graph's add_node()
Stefan Sperling cb352812 2018-07-22T14:08:45 callers of add_node() don't need to check for GOT_ERR_OBJ_EXISTS
Stefan Sperling ce47a424 2018-07-22T13:52:36 treat double-linking to same child in commit graph as no-op
Stefan Sperling 63581804 2018-07-09T22:23:00 rename zbuf to inflate
Stefan Sperling 60f2eee1 2018-07-08T17:18:45 undo previous; too much mixup in one data structure
Stefan Sperling d54f52f4 2018-07-07T16:50:10 store recently accessed objects at front of cache lists
Stefan Sperling e7c810ea 2018-06-22T09:33:08 allow got_object_idset_remove() to retreive data pointer
Stefan Sperling fe8df4c2 2018-06-16T23:52:47 undo previous; it broke tog(1) with openssl repo
Stefan Sperling 98fdf1e0 2018-06-16T23:50:18 iter_node insertion hack in commit graph shouldn't be needed
Stefan Sperling 788c352e 2018-06-16T19:18:32 store commit timestamps as 'struct tm' in UTC
Stefan Sperling 0ed6ed4c 2018-06-13T18:29:04 got log: allow first-parent traversal with the commit graph
Stefan Sperling a37db869 2018-06-11T22:21:01 remove false statement in comment
Stefan Sperling 58e5f354 2018-06-11T22:19:29 tweak add_node_to_iter_list for clarity; no functional change
Stefan Sperling 19137930 2018-06-11T22:14:50 improve comment
Stefan Sperling 72f85f8c 2018-06-11T21:36:08 fix endless loop in commit graph
Stefan Sperling d2312330 2018-06-11T21:33:26 ensure commit graph iterations see all new commits being added