-
-
Notifications
You must be signed in to change notification settings - Fork 982
Comparing changes
Open a pull request
base repository: gitpython-developers/GitPython
base: 3.1.52
head repository: gitpython-developers/GitPython
compare: 3.1.53
- 14 commits
- 12 files changed
- 4 contributors
Commits on Jul 16, 2026
-
feat(submodule): add deinit method to Submodule (#2014)
Mirrors the pattern of `Submodule.add`, `Submodule.update`, and `Submodule.remove` by exposing `git submodule deinit` as a first-class method, so callers no longer need the `repo.git.submodule('deinit', ...)` workaround noted in the issue. The method delegates to `git submodule deinit [--force] -- <path>` via `self.repo.git.submodule`, decorated with `@unbare_repo` to match the other mutating Submodule methods. It unregisters the submodule from `.git/config` and clears the working-tree directory while leaving `.gitmodules` and `.git/modules/<name>` intact, so a later `update()` can re-initialize.Configuration menu - View commit details
-
Copy full SHA for d702d9a - Browse repository at this point
Copy the full SHA d702d9aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c0cc8a - Browse repository at this point
Copy the full SHA 0c0cc8aView commit details -
typing: introduce sensible basedpyright defaults
That way it dosesn't all light up immediately in dev mode.
Configuration menu - View commit details
-
Copy full SHA for 6d0b6a4 - Browse repository at this point
Copy the full SHA 6d0b6a4View commit details -
Merge pull request #2129 from mvanhorn/feat/2014-submodule-deinit
feat(submodule): add deinit method to Submodule (#2014)
Configuration menu - View commit details
-
Copy full SHA for e87854b - Browse repository at this point
Copy the full SHA e87854bView commit details -
Merge pull request #2174 from gitpython-developers/basedpyright
typing: introduce sensible basedpyright defaults
Configuration menu - View commit details
-
Copy full SHA for f89e18c - Browse repository at this point
Copy the full SHA f89e18cView commit details -
fix: make
submodule.update()aftersubmodule.deinit()workGit's `submodule deinit` command removes the submodule checkout but retains its repository under the parent repository's `.git/modules` directory. Submodule.update() previously treated the missing checkout as a completely uninitialized submodule and attempted to clone it again. The clone could not reuse the existing module repository, preventing a deinitialized submodule from being initialized again through GitPython. Detect a valid retained repository before entering the clone path. Restore the checkout's `.git` file and the module repository's worktree configuration, reset the retained repository to recreate its index and working tree, and restore the submodule URL in the parent configuration. Continue using the existing clone behavior when no valid retained repository is available. Co-authored-by: Sebastian Thiel <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b9d82c0 - Browse repository at this point
Copy the full SHA b9d82c0View commit details -
Merge pull request #2175 from gitpython-developers/submodule-deinit-fix
fix: make `submodule.update()` after `submodule.deinit()` work
Configuration menu - View commit details
-
Copy full SHA for 15527ef - Browse repository at this point
Copy the full SHA 15527efView commit details
Commits on Jul 20, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 5bc2560 - Browse repository at this point
Copy the full SHA 5bc2560View commit details -
fix: respect core.hooksPath for commit hooks
Use git rev-parse --git-path when resolving commit hook paths so GitPython follows Git's core.hooksPath configuration.\n\nAdd regression coverage for a pre-commit hook stored in a custom hooks path.\n\nFixes #2083
Configuration menu - View commit details
-
Copy full SHA for 406b98e - Browse repository at this point
Copy the full SHA 406b98eView commit details -
Address review feedback about hook resolution
- Review feedback: resolve core.hooksPath only when configured, avoid an unconditional git rev-parse dependency, and cover relative paths in a non-bare repository. - Read the effective Git configuration directly so unconfigured repositories retain the legacy .git/hooks lookup and configured relative paths resolve from the directory where hooks execute. Exercise both guarantees in the hook tests. - Review feedback: core.hooksPath can point outside index.repo.working_dir, where Path.relative_to() raises on Windows and prevents a valid hook from running. - Build the Bash argument with os.path.relpath so hooks in parent or other absolute locations remain executable. Fall back to the absolute POSIX-form path when Windows cannot form a relative path across drives, and add a focused command-construction regression test.
Configuration menu - View commit details
-
Copy full SHA for 9bc287a - Browse repository at this point
Copy the full SHA 9bc287aView commit details -
Merge pull request #2159 from Siesta0217/fix-core-hooks-path-commit-h…
…ooks Fix commit hooks respecting core.hooksPath
Configuration menu - View commit details
-
Copy full SHA for 354eb2f - Browse repository at this point
Copy the full SHA 354eb2fView commit details -
fix: validate config section delimiters
GHSA-3rp5-jjmw-4wv2 identified that configuration section names could alter the structure of serialized config despite the existing control-character checks. Reject unquoted closing section delimiters across all writer entry points while preserving valid delimiters inside quoted subsections and the existing option-name behavior. Add regression coverage for unsafe plain and quoted-subsection-shaped names as well as a valid quoted subsection. Git baseline: a23bace963d508bd96983cc637131392d3face18. Git config parsing treats an unquoted closing bracket as the end of a basic section header, while its extended form permits brackets inside a quoted subsection and requires a final bracket after the closing quote. Co-authored-by: Sebastian Thiel <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1ed1b92 - Browse repository at this point
Copy the full SHA 1ed1b92View commit details -
Merge pull request #2176 from gitpython-developers/fix-config-injection
fix: validate config section delimiters
Configuration menu - View commit details
-
Copy full SHA for 6a5eb6a - Browse repository at this point
Copy the full SHA 6a5eb6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for faf3c09 - Browse repository at this point
Copy the full SHA faf3c09View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 3.1.52...3.1.53