Commits
- Commit:
98297eed5b9082b66f6397a0921c8d90df72cca1
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
rename got_commit_graph_iter_start() to got_commit_graph_bfsort()
This function begins a breadth-first traversal. The new name makes
it easier to distinguish from got_commit_graph_toposort().
- Commit:
371457e66c4c0ce1ae8880e2346336a14ad6cf6d
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
remove a confusing comment
This function starts a breadth-first traversal, not necessarily first-parent.
- Commit:
e12cc036c3e7a71d71bb6a83a9a97bd53f5ba497
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
make 'got rebase' find a merge base with topological sorting if needed
Fixes a problematic case of spurious conflicts encountered by
naddy@ on landry's firefox package git repository.
The current implementation of toposort is expensive, so this might
make rebase appear to run slowly on large repositories. However,
this is better than letting users deal with spurious conflicts.
ok op@
- Commit:
2afa256de5f9027b941e0a912d57fa5201a6cfc6
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add support for topological sorting to the commit graph
The algorithm implemented here is based on a description I read
on github's blog. See code comments for details.
ok op@
- Commit:
78e82c8a2a2cd0fed316492b18264f5d8727f961
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
remove GOT_ERR_ITER_BUSY from got_commit_graph_iter_start()
Just clear any left-over iteration state and begin a fresh iteration
instead of returning GOT_ERR_ITER_BUSY if the caller did not loop
through the entire graph.
This change currently doesn't matter much since all existing callers
only do a single pass over the graph. But it frees up an error code
and makes this API more flexible.
- Commit:
c8255edc87c31f45f65dcab98db4acfb9a7218dc
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
handle merge commits that are unrelated to requested changed path history
Problem found and fix tested by James Cook.
- Commit:
ad575c3a0f6a3c278002356c0a2cf0142cf1177a
- From:
- James Cook <falsifian@falsifian.org>
- Via:
- Stefan Sperling <stsp@stsp.name>
- Date:
simplify ancestry checks in checkout, update, rebase, and merge
No behaviour change as the end result of the rewritten checks should
be the same as before. We are just doing less work where possible.
Patch by James Cook
- Commit:
5822e79e39a8777984e08b5d89a8c55d6aa0356d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
include sha2.h too where sha1.h is included
In preparation for wide sha256 support; stsp@ agrees. Change done
mechanically with
find . -iname \*.[cy] -exec sam {} +
X ,x/<sha1\.h>/i/\n#include <sha2.h>
- Commit:
d9787ed86ecec0bda7a570181d86c44ba80bd583
- From:
- Omar Polo <op@omarpolo.com>
- Date:
make got_commit_graph_iter_next use caller-provided storage for the id
and adjust the callers. discussed with and ok stsp@
- Commit:
e15c42decfa8a80fb91cc1e19b467efc34a8c05d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
plug leak in the commit graph iterator
We fail to release the memory for the nodes. To fix it however, we some
consumer of the commit graph iterator need to be corrected: the returned
pointer is safe to be used only up until the next iter_next call;
save a copy it if it's needed afterwards too.
ok stsp@
- Commit:
932b646a7df3d0578f831622f02348a768cb07bc
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
replace an indirect call to idset_add(), via add_node(), with a direct call
Avoids leaking the node structure returned from add_node().
ok op@
- Commit:
c877c437470e41e7f70828c916ff40189b097fe2
- From:
- Omar Polo <op@omarpolo.com>
- Date:
free commit on error path
while here drop the ternary too: if add_node succeeds `new_node' is
non-NULL. ok stsp@
- Commit:
85a99d1ea6ce4169303c521409e5527f69826641
- From:
- Omar Polo <op@omarpolo.com>
- Date:
plug leak: release nodes not added to the iter list
ok stsp@
- Commit:
9aae7366832613bbb94f56a2465380f5c2f56e7f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got_commit_graph_close: free tailq contents
The tailq should ideally be empty when we reach got_commit_graph_close,
but consumer code may exit the commit graph loop earlier.
spotted by and ok stsp@
- Commit:
d7b5a0e827bb38e5c8502f0ba8d7838fedaba19b
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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@