Skip to content
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

Enhancements #2

Open
16 of 27 tasks
arxanas opened this issue Jan 12, 2021 · 2 comments
Open
16 of 27 tasks

Enhancements #2

arxanas opened this issue Jan 12, 2021 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@arxanas
Copy link
Owner

arxanas commented Jan 12, 2021

  • Add link to wiki in help text for executable.
  • Disable warnings:
    • Set advice.detachedHead to false as part of init process.
  • git undo: create transactions as part of events (rewrite, hide/unhide multiple, undo), and default to undoing an entire transaction at once. Allow toggling to non-transactional mode.
  • git restack should rebase entire branches at once, rather than individual commits at a time.
  • Auto-restack feature, to automatically run git restack whenever an operation abandons commits.
    • In particular, we probably only want to carry out the git restack if it would succeed. If it has merge conflicts, then we should just warn the user and have them fix it.
    • Partially addressed by Speculative merging #142.
  • Auto-echo setting, to configure which commands automatically run git smartlog afterwards.
  • git gc should show the number of garbage collected nodes.
  • The post-commit hook should show the commit OID and message.
  • It may or may not be desirable for navigation commands (git next/git prev) to, when checking out to a commit, if it has exactly one branch associated with it, also check out that branch.
  • After git smartlog, if there are abandoned commits, suggest a hint to run git restack to fix them up.
  • Some kind of word-wrapping or truncation may be desirable for long commit messages, especially in narrow terminals.
  • Improve performance of git sl after rebase. In large repos, it can take several seconds to compute.
    • This could probably be done using the post-update hook. There should be something about the lattice merge-base structure which we can exploit to quickly calculate new merge-bases for all the visible commits, something like if mb(local, main) = x and mb(main, main') = x then mb(local, main') = x (but there are some edge-cases due to the fact that nodes can have multiple parents).
    • Alternatively, we can use the merge-base machinery in https://github.com/quark-zju/gitrevset
  • When a local branch tracks a remote branch, use the remote branch as the main branch. This way, the progress made on the local branch becomes visible by default in the smartlog.
  • Support GPG-signing commits (git-revise does this)
  • Better handling of shorthand commit collisions
  • git next and git prev should be able to move forward by a number of branches, not just by a number of commits.
  • scm-record features:
    • Shortcuts to go to top/bottom
    • Expand/collapse regions
    • Invert all items/some selection
    • Search and jump to a region
    • Filter shown items by search term
    • Batch/group selection
    • Multiple split groups, not just two
    • Menu bar for command discoverability
    • Minimap overview
@lthms
Copy link

lthms commented Jul 18, 2022

If I could help with GPG support, this is actually a blocker for me to adopt the tool, and I’d be interested in giving a hand

(Interestingly enough, this was also a blocker for me trying and using Stacked Git, and this was my first contribution too)

@arxanas
Copy link
Owner Author

arxanas commented Jul 18, 2022

@lthms I created #465 for GPG-signing commits. You can comment there or join the Discord channel and I can answer any questions you might have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants