◐ Shell
reader mode source ↗
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
File filter
Conversations
Jump to
Diff view
Apply and reload
Show whitespace
Diff view
Apply and reload
8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.3
hooks:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ In the less common case that you do not want to install test dependencies, `pip

#### With editable *dependencies* (not preferred, and rarely needed)

In rare cases, you may want to work on GitPython and one or both of its [gitdb](https://github.com/gitpython-developers/gitdb) and [smmap](https://github.com/gitpython-developers/smmap) dependencies at the same time, with changes in your local working copy of gitdb or smmap immediatley reflected in the behavior of your local working copy of GitPython. This can be done by making editable installations of those dependencies in the same virtual environment where you install GitPython.

If you want to do that *and* you want the versions in GitPython's git submodules to be used, then pass `-e git/ext/gitdb` and/or `-e git/ext/gitdb/gitdb/ext/smmap` to `pip install`. This can be done in any order, and in separate `pip install` commands or the same one, so long as `-e` appears before *each* path. For example, you can install GitPython, gitdb, and smmap editably in the currently active virtual environment this way:

Expand Down
2 changes: 1 addition & 1 deletion doc/source/changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ https://github.com/gitpython-developers/GitPython/releases/tag/3.1.42
3.1.41
======

This release is relevant for security as it fixes a possible arbitary
code execution on Windows.

See this PR for details: https://github.com/gitpython-developers/GitPython/pull/1792
2 changes: 1 addition & 1 deletion git/index/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1443,7 +1443,7 @@ def reset(
key = entry_key(path, 0)
self.entries[key] = nie[key]
except KeyError:
# If key is not in theirs, it musn't be in ours.
try:
del self.entries[key]
except KeyError:
Expand Down
6 changes: 3 additions & 3 deletions git/objects/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -568,11 +568,11 @@ def addToStack(
yield rval

# Only continue to next level if this is appropriate!
nd = d + 1
if depth > -1 and nd > depth:
continue

addToStack(stack, item, branch_first, nd)
# END for each item on work stack


Expand Down
2 changes: 1 addition & 1 deletion git/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ def _from_line(cls, remote: "Remote", line: str) -> "PushInfo":
flags |= cls.NEW_TAG
elif "[new branch]" in summary:
flags |= cls.NEW_HEAD
# uptodate encoded in control character
else:
# Fast-forward or forced update - was encoded in control character,
# but we parse the old and new commit.
Expand Down
5 changes: 5 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,8 @@ lint.unfixable = [
"test/**" = [
"B018", # useless-expression
]
2 changes: 1 addition & 1 deletion test/test_exc.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

_streams_n_substrings = (
None,
"steram",
"ομορφο stream",
)

6 changes: 3 additions & 3 deletions test/test_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -1018,7 +1018,7 @@ class Mocked:
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.Absent,
reason="Can't run a hook on Windows without bash.exe.",
rasies=HookExecutionError,
)
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.WslNoDistro,
Expand Down @@ -1077,7 +1077,7 @@ def test_hook_uses_shell_not_from_cwd(self, rw_dir, case):
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.Absent,
reason="Can't run a hook on Windows without bash.exe.",
rasies=HookExecutionError,
)
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.WslNoDistro,
Expand Down Expand Up @@ -1120,7 +1120,7 @@ def test_pre_commit_hook_fail(self, rw_repo):
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.Absent,
reason="Can't run a hook on Windows without bash.exe.",
rasies=HookExecutionError,
)
@pytest.mark.xfail(
type(_win_bash_status) is WinBashStatus.Wsl,
Expand Down
Toggle all file notes Toggle all file annotations