8000
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added a convenience function called refresh. This functions accomplishes 2 things.
refresh
The first is that now the user can dynamically set the git path AFTER importing GitPython. In the following example git is neither on the user's $PATH nor is $GIT_PYTHON_GIT_EXECUTABLE defined:
>>> import git WARNING: Bad git executable. The git executable must be specified in one of the following ways: (1) be included in your $PATH, or (2) be set via $GIT_PYTHON_GIT_EXECUTABLE, or (3) explicitly set via git.setup (or git.refresh). All git commands will error until this is rectified. >>> git.refresh("/usr/bin/git") >>> git.Git().version() 'git version 2.11.0 (Apple Git-81)' >>>
The second is that this also means that the git executable can be dynamically refreshed at any time by simply calling refresh:
>>> import git >>> git.Git.GIT_PYTHON_GIT_EXECUTABLE 'git' >>> git.refresh("/usr/bin/git") >>> git.Git.GIT_PYTHON_GIT_EXECUTABLE '/usr/bin/git'
Sorry, something went wrong.
Preliminary implementation of setup/refresh functions
a962464
Added one function (setup) and an alias (refresh simply calls setup). These functions give the developer one more way to configure the git executable path. This also allows the user to interactively adjust the git executable configured during runtime as these functions dynamically update the executable path for the entire git module.
Moved setup function into top level __init__
feed81e
Discovered that the remote module also relies on the git executable as such it also needs to be “refreshed” anytime the git executable is updated or changed. This was best solved by moving the setup function into the top level __init__ where the setup simply calls git.cmd.Git.refresh and git.remote.FetchInfo.refresh.
Renamed refresh to setup and removed alias function & added unittest
aba0494
Renamed to simplify and avoid issue with nose tests trying to use `setup` as a setup for testing. Unittest implements basic test for refreshing with a bad git path versus a good git path.
Modified AUTHORS file
e8cb31d
Added my name to list.
Added ability to silence initial warning
b56d677
Added the ability to silence the first refresh warning upon import by setting an environment variable.
❗ No coverage uploaded for pull request base (master@2af601d). Click here to learn what that means. The diff coverage is 68.88%.
master@2af601d
68.88%
@@ Coverage Diff @@ ## master #640 +/- ## ========================================= Coverage ? 92.65% ========================================= Files ? 61 Lines ? 10029 Branches ? 0 ========================================= Hits ? 9292 Misses ? 737 Partials ? 0
98.73% <100%> (ø)
83.29% <65.85%> (ø)
Continue to review full report at Codecov.
Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 2af601d...a56136f. Read the comment docs.
Δ = absolute <relative> (impact)
ø = not affected
? = missing data
Expanded ability of import
3430bde
Renamed GIT_PYTHON_NOWARN to GIT_PYTHON_INITERR and added values for quiet import, warning import, and raise import. These respectively mean that no message or error is printed if git is non-existent, a plain warning is printed but the import succeeds, and an ImportError exception is raised.
Removed remaining references to git.setup function
4aa750a
Removed few remaining references to git.setup function (as it was renamed to refresh).
Renamed GIT_PYTHON_INITERR to GIT_PYTHON_REFRESH
2b3e769
Renamed and cleaned up variable names.
Minor additional cleanup
79a36a5
Added additional information in the import warning/error that tells the user how to silence the warning/error. Also added a GIT_OK variable that allows for a quick check whether the refresh has succeeded instead of needing to test an actual git command.
@Byron what else would you need from me for this to be considered?
Minor bug fixes
90dc03d
Added tilde expansion as part of the refresh function. Added python version check such that we properly capture PermissionError in Python >=3 and OSError in Python <3.
Merge branch 'master' into adding_setup_for_git_executable
a56136f
2eb6cf0
Thanks a ton for your contribution, and my apologies for getting to this PR that late!
Merge pull request gitpython-developers#640 from njalerikson/adding_s…
93e0938
…etup_for_git_executable Adding setup for git executable
Successfully merging this pull request may close these issues.