gitpython-developers / GitPython

GitPython is a python library used to interact with Git repositories.
http://gitpython.readthedocs.org
BSD 3-Clause "New" or "Revised" License
4.62k stars 907 forks source link

GIT_DIR is ignored #1977

Open obeidahmad opened 2 days ago

obeidahmad commented 2 days ago

Version 3.1.43

Description:

I am trying to create or open a repo while also changing the .git default path to custom name like .custom_git. However, I a meeting an exception.

Example Code

from pathlib import Path

import git

repo_path = Path("my_repo")
custom_git_dir = Path(".custom_git")

os.environ["GIT_DIR"] = str(custom_git_dir)

repo = git.Repo.init(repo_path)

Error

Traceback (most recent call last):
  File "pythonProject\main.py", line 11, in <module>
    repo = git.Repo.init(repo_path)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "pythonProject\.venv\Lib\site-packages\git\repo\base.py", line 1329, in init
    return cls(path, odbt=odbt)
           ^^^^^^^^^^^^^^^^^^^^
  File "pythonProject\.venv\Lib\site-packages\git\repo\base.py", line 289, in __init__
    raise InvalidGitRepositoryError(epath)
git.exc.InvalidGitRepositoryError: pythonProject\temp

The directory .custom_git gets created but the error happens. The same exception is raised when trying git.Repo(repo_path) instead of initialization with .innit(repo_path).

Byron commented 2 days ago

Thanks for reporting - I wouldn't be surprised if this wasn't implemented at all.