-
Notifications
You must be signed in to change notification settings - Fork 605
graph segmentation spike #8919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
graph segmentation spike #8919
+2,496
−1,207
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
@Byron is attempting to deploy a commit to the GitButler Team on Vercel. A member of the Team first needs to authorize it. |
…capabilities. This serves as basis for algorithms that can produce such a data structure from a commit graph, on the one side, and on the other, mappings to the current stack-based data structures. These are in turn mapped to the current data structures as consumed by the UI.
d68e359
to
9902e2b
Compare
…raph`. `but-core` really wants to have it, but it has dependencies that the core may never use. Thus, it must be in `graph` for now until it can be removed entirely.
Merging this first version to avoid conflicts and set the stage for more to come. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Produce a datastructure that can represent any commit-graph as segments, which is the level of detail that we are interested in.
These segments can be traversed forward and backwards, and they know the commits that are uniquely assigned to it.
Segments can have inter-segment relations, to help with dealing with related remote tracking branches.
Problems this should solve
This PR should allow us to see if this is the right way to go, as it should solve a couple of problems, all at once:
a pick-list for the rebase engine that can be reviewed before actually running it (i.e. dry-run built-in).
Tasks
petgraph
and visualize as dot (with edge/node getters) and usingtermtree
for tree-like visualizationFind a way to do permutation testing for when there is multiple tips (and there is most of the time)- probably too hard for now with dubious value, there are many additional tests to write.Research
Petgraph as basis for graphs
It has efficient data structures for graphs and would certainly be a good basis.
This also makes it easy to output graphs in
dot
format, but besides using thedot
verbatim, it's of no use for visualization. Maybe it can be used from time to time to visualize it by hand viapbpaste | dot -Tsvg > out.svg
.dot
(Graphviz) for visualisationAs ugly as it might have been, it has a
dot -Tascii
plugin, but only from v13. And that is unavailable for installation, so I couldn't even see if it is suitable.It's impossible to build it on a Mac just to get the latest version, and clearly it's not feasible to use
-Tascii
because of that.Related