Skip to content

Commit

Permalink
Merge pull request #1440 from rdbisme/index-pathlike
Browse files Browse the repository at this point in the history
fix: Allow adding PathLike object to index
  • Loading branch information
Byron authored May 18, 2022
2 parents 38e9a18 + 8232b17 commit d96f671
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
4 changes: 2 additions & 2 deletions git/index/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -617,11 +617,11 @@ def _preprocess_add_items(
paths = []
entries = []
# if it is a string put in list
if isinstance(items, str):
if isinstance(items, (str, os.PathLike)):
items = [items]

for item in items:
if isinstance(item, str):
if isinstance(item, (str, os.PathLike)):
paths.append(self._to_relative_path(item))
elif isinstance(item, (Blob, Submodule)):
entries.append(BaseIndexEntry.from_blob(item))
Expand Down
11 changes: 11 additions & 0 deletions test/test_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
import os.path as osp
from git.cmd import Git

from pathlib import Path

HOOKS_SHEBANG = "#!/usr/bin/env sh\n"

is_win_without_bash = is_win and not shutil.which("bash.exe")
Expand Down Expand Up @@ -943,3 +945,12 @@ def test_commit_msg_hook_fail(self, rw_repo):
assert str(err)
else:
raise AssertionError("Should have caught a HookExecutionError")

@with_rw_repo('HEAD')
def test_index_add_pathlike(self, rw_repo):
git_dir = Path(rw_repo.git_dir)

file = git_dir / "file.txt"
file.touch()

rw_repo.index.add(file)

0 comments on commit d96f671

Please sign in to comment.