Steps to reproduce:
- PHP 8.2.7; Phorge at 108cbcd09bd39fda0ad24a2ee25afe5aac230e08
- Make sure that http://phorge.localhost/config/edit/bugtraq.url/ is not set
- Check that http://phorge.localhost/config/edit/repository.default-local-path/ is set to default /var/repo/
- Make sure that /var/repo/ exists locally
- As a Phorge admin, go to Diffusion at http://phorge.localhost/diffusion/
- Select in upper right corner to go to http://phorge.localhost/diffusion/edit/form/default/
- Select "Create Git Repository" to go to http://phorge.localhost/diffusion/edit/form/default/?vcs=git
- On the Create Repository page, in the Name field, enter gitRepoEmpty
- Select the Create Repository button
- End up on http://phorge.localhost/diffusion/19/manage/
- Select in the left panel (while no directory exists for this code repository)
- Wait a minute for daemons to create the repository
- In a terminal, go to now existing /var/repo/19/
- In a terminal, run git init
- In a terminal, run git checkout -b master
- In a terminal, run touch newFile
- In a terminal, run git add newFile
- In a terminal, run git commit -m "first commit" newFile
- In the browser, on http://phorge.localhost/diffusion/19/manage/ , select on the right and select Schedule Update button
- Go to http://phorge.localhost/diffusion/commit/query/all/ to find the commit ID of the commit made above (e.g. 999a2c7d1ff8)
- Go to http://phorge.localhost/diffusion/19/commit/999a2c7d1ff8 (or whatever your commit ID is)
[2023-06-12 01:26:55] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261] arcanist(head=master, ref.master=97e163187418), phorge(head=diffusionCallsignHistory, ref.master=9b99123ff931, ref.diffusionCallsignHistory=d5fb6702a49a) #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/controller/DiffusionCommitController.php:31] #1 <#2> DiffusionCommitController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #2 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #3 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #4 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #5 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203] #6 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]