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

Continuation of Continuation of Add search bar at bottom of revlog #506 #672 #1753

Closed
wants to merge 126 commits into from

Conversation

Rodrigodd
Copy link
Contributor

Continuation of the work done in #506 and #672.

Closes #429, Closes #449, (But there were already closed by being stale) (part of 1.0 todo list)

I picked from where the last PR was, merged master, and fixed some problems that I found:

  • Make quit and help keys don't take priority over typing in the search bar.
  • Fix the invalidation logic of the list.
  • Fix the logic of is_pending.
  • Refactor the logic around the filter thread in AsyncCommitFilterer::start_filter.
  • Refactor AsyncCommitFilterer::filter, fixing some errors.
  • Fix search of tags.
  • Dropped support for &&( parentheses. This has some non-intuitive limitations, the implementation was sub-optimal, and I am not sure if there is demand for this feature.

It changes the following:

(I copied and adapt it from #506)

Go to log tab then press s (suggested in #449), the search box will pop up and be in focus, type to search, the results will appear in the log where the arrow keys can scroll through them. Press esc to close the search box, then esc again to cancel the search and return to all commits.

  • Async filtering
  • Filter by sha (with :s)
  • Filter by author (with :a)
  • Filter by message (with :m)
  • Filter by tag (with :t)
  • Support for complement (i.e. not) filtering (with :!)
  • Support for union filtering (with ||)
  • Support for intersection filtering (with &&)
  • Support case sensitive filtering (with :c)

I followed the checklist:

  • I added unittests
  • I ran make check without errors
  • I tested the overall application
  • I added an appropriate item to the changelog

willir and others added 27 commits May 8, 2021 10:38
Previously there was a special logic that make the quit key have
priority over all components, unless any popup was visible. This was
conflicting with the find commit text input, which happens to not be a
popup.

Fix that by handling the quit key the same way as any other app key,
which appears to already handle popups somehow. Not sure if this change
is breaking some logic.
Previously, the filter thread would hold the Mutex locked by the
previous thread invocation, and hold a newly created Mutex.

I could not see why that would be necessary, instead of just locking the
same Mutex.

(Also not sure about holding a Mutex at all)
A leftover file, from fixing conflicts conflicts, probably.
Was checking why searching for tag were not working. But `contains_tag`
was alright.
AsyncCommitFilterer were assuming that that would be the case.
@extrawurst
Copy link
Owner

superseded by #1800 and #1815

@extrawurst extrawurst closed this Aug 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Search commits by sha Search commits for message or author
4 participants