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

Cancel unfinished/hanging git log #9418

Open
mstv opened this issue Jul 27, 2021 · 4 comments · May be fixed by #11205
Open

Cancel unfinished/hanging git log #9418

mstv opened this issue Jul 27, 2021 · 4 comments · May be fixed by #11205
Labels
🚧 status: in progress Issues which have associated PRs type: bug 🐛

Comments

@mstv
Copy link
Member

mstv commented Jul 27, 2021

Most likely a git issue:
I have filtered with Diff contains (SLOW). But the git command has not returned for almost 6 hours - I guess due to a child process astextplain. pdf2text.exe seems to block in conjunction with a pipe to "C:\Program Files\Git\usr\bin\sed.exe" s/(\^M$)|(^\^L)//.
After killing pdf2text.exe, another one is started for the next PDF.
These PDFs are stored in Git LFS. But the temp files have not been expanded.

This even blocks GE from switching repos.
I agree with @gerhardol: A yet running git log command should be canceled/killed when refreshing the RevisionGrid.

grafik

  • Git Extensions 33.33.33
  • Build 825d380
  • Git 2.30.1.windows.1
  • Microsoft Windows NT 10.0.19043.0
  • .NET 5.0.5
  • DPI 96dpi (no scaling)

Originally posted by @mstv in #9393 (comment)

@mstv
Copy link
Member Author

mstv commented Jul 27, 2021

Diff contains git-log -G is not working as expected, I do not get the results I expect and the graph is incorrect. (--parents are not included by default, can be forced by adding a path filter like "**/*" "**/*").

Perhaps yet another issue.

There are pure GE issues too, like the left panel pumps out git branch --format=%(refname) -a --merged HEAD while git-log -G runs.

Do you think this will cause issues? Which? Due to parallel execution? It makes sense to me to run this command if a revision has been selected.

In your case I assume that you have changed .gitattributes for *.pdf.
I assume -G generates the diff to find matches, this will be slow if searching all commits.

pdf2text hung while processing the temp file which contained only the LFS link.
Git continued with the next PDF only when I killed pdf2text.

@gerhardol
Copy link
Member

RevisionReader has cancellation implementation, need to be added to RevisionGridControl (maybe passing the token to RevisionReader).

This was with git-log -G, but also normal git-log may require tenths of seconds.
The filter handling with -G can take this to extremes...

@mstv
Copy link
Member Author

mstv commented Jan 18, 2022

might be solved with #9818

@gerhardol
Copy link
Member

might be solved with #9818

The git-log executable in RevisionReader uses IGitCommandRunner that accesses IProcess directly.
The cancellation token is checked in RevisionReader, must kill the process explicitly.

So if #9818 is extended from the IExecutable interface (which was what I considered) to also include IGitCommandRunner it is included.

@ghost ghost added 🚧 status: in progress Issues which have associated PRs and removed 🚧 status: in progress Issues which have associated PRs labels Sep 4, 2023
@mstv mstv linked a pull request Sep 11, 2023 that will close this issue
@ghost ghost added the 🚧 status: in progress Issues which have associated PRs label Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚧 status: in progress Issues which have associated PRs type: bug 🐛
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants