Files
bun.sh/cmake
Claude 04d498cfc4 Refactor git operations from blocking to async event loop
This PR refactors git operations in `bun install` from blocking threadpool calls using `std.process.Child` to non-blocking event loop integration using `bun.spawn`.

## Changes

- Created `GitCommandRunner` for async git command execution with event loop integration
- Replaced blocking `fork()` calls with async `bun.spawn`
- Implemented proper two-phase checkout (clone --no-checkout, then checkout)
- Moved post-checkout operations (.git deletion, .bun-tag creation) to appropriate places
- Fixed argv construction to use "git" instead of hardcoded paths
- Added comprehensive tests for git dependencies

## Technical Details

The new implementation:
- Uses tagged pointer unions for process exit handlers
- Properly manages pending task counting for event loop
- Handles both clone and checkout operations asynchronously
- Maintains backward compatibility with existing URL handling

All git operations now integrate properly with Bun's event loop, eliminating blocking operations and improving performance.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 00:10:29 +02:00
..
2024-11-15 21:01:55 -08:00
2025-05-31 16:21:08 -07:00