Repository navigation
Bump libgit2 from v0.28.5 to v1.9.4 - #641
Conversation
087dab9 to
0963ad6
Compare
There was a problem hiding this comment.
🟡 Changes recommended
CI coverage can disappear, invalid reset modes can raise an exception, and the history controller should restore its own-header import.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates the ObjectiveGit/libgit2 integration to libgit2 v1.9.4 and reduces transitive Objective-C dependencies.
Changes:
- Updates ObjectiveGit/libgit2 compatibility.
- Replaces umbrella imports with targeted imports and forward declarations.
- Adjusts reset API typing and CI test execution.
File summaries
| File | Reviewed change |
|---|---|
Classes/Views/PBGitRevisionCell.m |
Adds the repository dependency. |
Classes/GitX-Bridging-Header.h |
Removes the ObjectiveGit umbrella import. |
Classes/git/PBGitRepository.m |
Updates reset handling. Moderate (1 vote): invalid modes can leave modeParam nil and raise an exception. |
Classes/git/PBGitRepository.h |
Updates the reset API parameter type. |
Classes/git/PBGitRepository_PBGitBinarySupport.m |
Adds a direct repository import. |
Classes/git/PBGitCommit.h |
Adds ObjectiveGit forward declarations. |
Classes/Controllers/PBWebHistoryController.m |
Adds the repository import. |
Classes/Controllers/PBWebChangesController.m |
Adds the window-controller import. |
Classes/Controllers/PBViewController.m |
Adds the repository import. |
Classes/Controllers/PBViewController.h |
Uses forward declarations. |
Classes/Controllers/PBRepositoryDocumentController.m |
Adds the repository import. |
Classes/Controllers/PBHistorySearchController.m |
Adds the window-controller import. |
Classes/Controllers/PBGitWindowController.m |
Adds the repository import. |
Classes/Controllers/PBGitSidebarController.m |
Adds explicit model and controller imports. |
Classes/Controllers/PBGitHistoryController.m |
Adds direct dependencies. Nit (2 votes): restore the implementation’s own-header import. |
Classes/Controllers/PBGitHistoryController.h |
Adds search-mode imports and declarations. |
Classes/Controllers/PBGitCommitController.m |
Adds explicit model and controller imports. |
.github/workflows/BuildPR.yml |
Removes the standalone unit-test step. Moderate (3 votes): retain equivalent no-signing tests for pushes and unsigned pull requests. |
Review details
Suppressed comments (1)
Classes/git/PBGitRepository.m:1030
- Changing the parameter from the reset enum to
NSIntegerwidens the accepted input, but this switch still has no default. Any value other than the three supported modes leavesmodeParamnil, and the array literal below raises an exception instead of returning a failure. Reject invalid modes before constructing the command (or keep a typed project enum).
- (BOOL)resetRefish:(NSInteger)mode to:(id<PBGitRefish>)ref error:(NSError **)error
- Files reviewed: 19/19 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| #import "PBGitRepository.h" | ||
| #import "PBGitWindowController.h" |
|
Nice work! the bump itself looks good. One blocker: Two notes, neither blocking:
|
0963ad6 to
9e7cdbe
Compare
|
@hannesa2 , drop the comment below on your AI-tool - let's see what it thinks of the following review 🙂 |
|
Blocker is cleared, thanks. I rebuilt locally against the new head and the GitX side is green as well: Two defects in the submodule, though. Both are real, both compile-visible, and 1. Stack buffer overflow in GTRepository+Merging.m The
clang does flag it, in my build of this branch: Not reachable from GitX (nothing calls 2. GTCredential declares a method that does not exist The header now promises but the implementation still only has No Again not called from GitX, but it is a source-breaking change to the framework's Merge order
Two smaller things, non-blocking
One observation on the angle-bracket include conversion My build of this branch emits 1431 |
Bump objective-git to include libgit2 1.0.0 deprecated-symbol fix Use angle-bracket includes for framework/sibling headers Modulemap
fix: import ObjectiveGit in public git headers fix: avoid ObjectiveGit import in Swift bridging header dependency graph fix: decouple PBGitRepository header from ObjectiveGit umbrella import Co-authored-by: hannesa2 <[email protected]>
9e7cdbe to
ecf00ce
Compare
I'm aware of this and will not change history here anymore. When this is merged, I'll merge gitx/objective-git#101 as well The other stuff, maybe you put a commit on top, or make a new pull request after this merge. It's up to you |




It includes