Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • TortoiseGit TortoiseGit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 380
    • Issues 380
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • TortoiseGitTortoiseGit
  • TortoiseGitTortoiseGit
  • Issues
  • #3846
Closed
Open
Issue created Jan 13, 2022 by Rafael Cossovan@navossoc💬

ScanFile hangs commit dialog

What steps will reproduce the problem?

  1. Create an empty repository.
  2. Commit some random file (so we have at least one commit).
  3. Copy this file to the working dir.
  4. Open the commit dialog and commit it (all good).
  5. Open the commit dialog again and amend the last commit (showing the util.js on the list).

A short video reproducing the bug is available here: https://www.youtube.com/watch?v=PC1X_2so-xw

PS: You don't need to follow exactly that steps, just create a scenario where util.js will be commited and it will be parsed for extracting function names for auto complete.

What is the expected output?

Don't hang the dialog...

What do you see instead?

It hangs TortoiseGitProc.exe when parsing the .js file for autocompletion.

What version of TortoiseGit and Git are you using? On what operating system?

TortoiseGit 2.12.0.0 on Windows 10 build 19044.

Please provide any additional information below.

I already tested it on the master branch, same issue.

I did some digging and the issue is here:

On CCommitDlg::GetAutocompletionList there is a mechanism for timing out long running completion lists, but it won't work since the tight loop happens inside the CCommitDlg::ScanFile in the try/catch block. Some weird regex issue happens there and it won't finish parsing.

For now, as workaround I have set AutocompleteParseMaxSize to 0.

Cheers.

Edited Jan 13, 2022 by Rafael Cossovan
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking