@@ -124,6 +124,8 @@ def __init__(self, path=None, odbt=DefaultDBType, search_parent_directories=Fals
124124 repo = Repo("~/Development/git-python.git")
125125 repo = Repo("$REPOSITORIES/Development/git-python.git")
126126
127+ if `None, current-directory is used.
128+ The :envvar:`GIT_DIR` if set and not empty takes precendance over this parameter.
127129 :param odbt:
128130 Object DataBase type - a type which is constructed by providing
129131 the directory containing the database objects, i.e. .git/objects. It will
@@ -136,17 +138,19 @@ def __init__(self, path=None, odbt=DefaultDBType, search_parent_directories=Fals
136138 :raise InvalidGitRepositoryError:
137139 :raise NoSuchPathError:
138140 :return: git.Repo """
139- epath = _expand_path (path or os .getcwd ())
140141self .git = None # should be set for __del__ not to fail in case we raise
142+ epath = os .getenv ('GIT_DIR' )
143+ epath = _expand_path (epath or path or os .getcwd ())
141144if not os .path .exists (epath ):
142145raise NoSuchPathError (epath )
143146
144147self .working_dir = None
145148self ._working_tree_dir = None
146149self .git_dir = None
147- curpath = os .getenv ('GIT_DIR' ,epath )
148150
149- # walk up the path to find the .git dir
151+ ## Walk up the path to find the `.git` dir.
152+ #
153+ curpath = epath
150154while curpath :
151155# ABOUT os.path.NORMPATH
152156# It's important to normalize the paths, as submodules will otherwise initialize their