Skip to content

Support fully using dulwich#342

Open
jelmer wants to merge 4 commits into
jonashaag:masterfrom
jelmer:full-dulwich
Open

Support fully using dulwich#342
jelmer wants to merge 4 commits into
jonashaag:masterfrom
jelmer:full-dulwich

Conversation

@jelmer

@jelmer jelmer commented May 27, 2026

Copy link
Copy Markdown
Contributor

Implement dulwich alternatives for git log and git blame operations in
repo.py. The FULL_DULWICH flag (default False) allows switching between
pure-Python dulwich implementation and git subprocess calls. This gives
users the option to use the faster subprocess approach if needed while
defaulting to the pure-Python implementation.

  • Replace history() method's git log with dulwich's get_walker
  • Replace blame() method's git blame with dulwich.porcelain.blame
  • Keep subprocess implementations available when FULL_DULWICH=False

jelmer added 4 commits August 3, 2025 19:02
Use dulwich.porcelain.push() instead of subprocess.call() for git push
operations in the test suite to reduce external dependencies.
Use dulwich.porcelain.clone() and repo.reset_index() instead of
subprocess calls to git clone and git checkout for creating temporary
repository clones.
Use dulwich.repo.Repo to get the current commit SHA instead of
subprocess.check_output() with git log. This removes another external
git dependency.
Implement dulwich alternatives for git log and git blame operations in
repo.py. The FULL_DULWICH flag (default False) allows switching between
pure-Python dulwich implementation and git subprocess calls. This gives
users the option to use the faster subprocess approach if needed while
defaulting to the pure-Python implementation.

- Replace history() method's git log with dulwich's get_walker
- Replace blame() method's git blame with dulwich.porcelain.blame
- Keep subprocess implementations available when FULL_DULWICH=False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant