Page MenuHomePhabricator

Fix an issue where Herald may fail to extract content from an empty commit
ClosedPublic

Authored by epriestley on Apr 20 2022, 4:53 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Mar 24, 12:30 AM
Unknown Object (File)
Feb 15 2024, 12:50 PM
Unknown Object (File)
Feb 11 2024, 2:42 AM
Unknown Object (File)
Feb 4 2024, 1:41 AM
Unknown Object (File)
Feb 4 2024, 1:37 AM
Unknown Object (File)
Jan 27 2024, 8:37 AM
Unknown Object (File)
Dec 22 2023, 6:41 PM
Unknown Object (File)
Dec 8 2023, 7:11 PM
Subscribers
None

Details

Summary

Ref T13667. The Herald "content added" rule (and other similar rules) do not correctly extract content from empty commits.

When we load an empty raw diff, return an empty changed content map.

Ref T13588. Also fix some PHP8.1 null/string stuff

Test Plan
  • Ran "bin/repository reparse --publish <commit>", with an empty commit hash and a nonempty commit hash.
  • Reviewed Herald transcripts for general sanity.

Diff Detail

Repository
rP Phabricator
Branch
sub3
Lint
Lint Passed
Unit
Test Failures
Build Status
Buildable 25648
Build 35476: arc lint + arc unit

Unit TestsFailed

TimeTest
0 msDiffusionURITestCase::testBlobDecode
EXCEPTION (RuntimeException): explode(): Passing null to parameter #2 ($string) of type string is deprecated #0 [internal function]: PhutilErrorHandler::handleError(8192, 'explode(): Pass...', '/Users/epriestl...', 521) #1 /Users/epriestley/dev/core/lib/phabricator/src/applications/diffusion/request/DiffusionRequest.php(521): explode('/', NULL)
6 msDiffusionURITestCase::testURIGeneration
EXCEPTION (RuntimeException): strlen(): Passing null to parameter #1 ($string) of type string is deprecated #0 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(752): PhutilErrorHandler::handleError(8192, 'strlen(): Passi...', '/Users/epriestl...', 752) #1 /Users/epriestley/dev/core/lib/phabricator/src/applications/diffusion/request/__tests__/DiffusionURITestCase.php(142): PhabricatorRepository->generateURI(Array)
0 msPhabricatorRepositoryTestCase::testSubversionPathInfo
EXCEPTION (RuntimeException): strlen(): Passing null to parameter #1 ($string) of type string is deprecated #0 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(304): PhutilErrorHandler::handleError(8192, 'strlen(): Passi...', '/Users/epriestl...', 304) #1 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/__tests__/PhabricatorRepositoryTestCase.php(60): PhabricatorRepository->getSubversionPathURI()
0 msPhabricatorRepositoryURITestCase::testRepositoryURICanonicalization
EXCEPTION (RuntimeException): strlen(): Passing null to parameter #1 ($string) of type string is deprecated #0 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(582): PhutilErrorHandler::handleError(8192, 'strlen(): Passi...', '/Users/epriestl...', 582) #1 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(591): PhabricatorRepository->getURI()
32 msPhabricatorRepositoryURITestCase::testURIGeneration
EXCEPTION (RuntimeException): strlen(): Passing null to parameter #1 ($string) of type string is deprecated #0 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(284): PhutilErrorHandler::handleError(8192, 'strlen(): Passi...', '/Users/epriestl...', 284) #1 /Users/epriestley/dev/core/lib/phabricator/src/applications/repository/storage/PhabricatorRepository.php(1180): PhabricatorRepository->getSubversionBaseURI()
View Full Test Results (5 Failed · 27 Passed · 1 Skipped)