Skip to content

gitserver: Add option to disable the command timeout

Warren Gifford requested to merge gitserver-timeout-param into main

Created by: chrismwendt

Rockskip currently relies on the ability to execute long-running commands:

  • git log to process commits one-by-one. It takes ~5 minutes on sourcegraph/sourcegraph, and hours on the megarepo.
  • git archive to run ctags on files. It takes a few minutes on big commits.

This PR adds the option to disable gitserver's default command timeout for these long-running commands. The command is still bound by the HTTP context, so the command will not get orphaned by a dropped connection.

Alternatively, Rockskip could retry calls to git log, but git archive would be much more difficult to solve (Rockskip would have to keep track of paths that it had processed within a commit, keep track of more locking/transaction states, etc.).

Merge request reports

Loading