aboutsummaryrefslogtreecommitdiff
path: root/git
AgeCommit message (Collapse)Author
2017-11-19Merge pull request #693 from satahippy/masterSebastian Thiel
commit-msg hook support
2017-11-19Merge pull request #692 from Dreamsorcerer/patch-1Sebastian Thiel
Fix broken progress in clone_from()
2017-11-02Merge pull request #686 from jeblair/issue-605Sebastian Thiel
Only gc.collect() under windows
2017-11-02Merge pull request #685 from mikicz/pathlib-cloneSebastian Thiel
Converting path in _clone to str before any other operation
2017-10-30IndexFile.commit() now runs pre-commit and post-commit and commit-msg hooks.satahippy
2017-10-30Update base.pySam Bull
2017-10-30Update remote.pySam Bull
2017-10-30Update base.pySam Bull
2017-10-30Update remote.pySam Bull
2017-10-13recognize the new packed-ref header formatBrenda J. Butler
as long as line contains "peeled", accept it fixes the PackingType of packed-Refs not understood: # pack-refs with: peeled fully-peeled sorted problem
2017-10-09Only gc.collect() under windowsJames E. Blair
Under Windows, tempfile objects are holding references to open files until the garbage collector closes them and frees them. Explicit calls to gc.collect() were added to the finalizer for the Repo class to force them to be closed synchronously. However, this is expensive, especially in large, long-running programs. As a temporary measure to alleviate the performance regression on other platforms, only perform these calls when running under Windows. Fixes #553
2017-10-07Converting path in clone and clone_from to str before any other operation in ↵Mikuláš Poul
case eg pathlib.Path is passed
2017-10-05Fix encoding issue with stderr_value and kill_after_timeoutPaul Belanger
We don't properly encode our error message under python3. Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2017-10-01Store submodule nameJohn Kirkham
2017-09-30Keeping env values passed to `clone_from`Piotr Babij
2017-09-28Merge branch 'master' into masterSebastian Thiel
2017-09-28Merge branch 'master' into masterSebastian Thiel
2017-09-28Merge branch 'master' into adding_setup_for_git_executableSebastian Thiel
2017-09-28Merge pull request #649 from OddBloke/hide_re_fetch_resultSebastian Thiel
FetchInfo.re_fetch_result has no reason to be public
2017-09-28Merge pull request #658 from terminalmage/issue657Sebastian Thiel
Fix GitError being raised in initial `import git`
2017-09-28Merge pull request #654 from vathpela/worktreesSebastian Thiel
worktrees: make non-packed refs also work correctly.
2017-09-28Merge branch 'master' of https://github.com/Plazmaz/GitPython into ↵Sebastian Thiel
Plazmaz-master
2017-09-28Fix test_docsSebastian Thiel
It's not portable to test for a secific author name
2017-09-28Merge pull request #664 from Horgix/path_expansionSebastian Thiel
util: move expand_path from repo/base and use it in Git class init
2017-09-25version bump2.1.6Sebastian Thiel
2017-09-21Merge pull request #666 from bpoldrack/bf-nullhandlerYaroslav Halchenko
BF: Added missing NullHandler to logger in git.remote
2017-09-21BF: Added missing NullHandler to logger in git.remoteBenjamin Poldrack
2017-09-19BF: use get, not casting get_value while dealing with submodule path/url etcYaroslav Halchenko
2017-08-25util: move expand_path from repo/base and use it in Git class initAlexis Horgix Chotard
2017-08-24Fixed missing parameter and changed nameDylan Katz
2017-08-22worktrees: make non-packed refs also work correctly.Peter Jones
Turns out aec58a9 did the right thing for /packed/ refs, but didn't work correctly on /unpacked/ refs. So this patch gives unpacked refs the same treatment. Without the fix here, the test added will cause this traceback: ====================================================================== ERROR: Check that we find .git as a worktree file and find the worktree ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pjones/devel/github.com/GitPython/git/test/lib/helper.py", line 92, in wrapper return func(self, path) File "/home/pjones/devel/github.com/GitPython/git/test/test_repo.py", line 938, in test_git_work_tree_dotgit self.assertIsInstance(repo.heads['aaaaaaaa'], Head) File "/home/pjones/devel/github.com/GitPython/git/util.py", line 893, in __getitem__ raise IndexError("No item found with id %r" % (self._prefix + index)) IndexError: No item found with id 'aaaaaaaa' Woops. Things I've learned: - test_remote doesn't work currently if you start on a branch. I think it never did? - Because of 346424da, all *sorts* of stuff in the test suite doesn't work if you name your development branch "packed-refs" (This seems like a bug...) Signed-off-by: Peter Jones <pjones@redhat.com>
2017-08-21Fix leaking environment variablesDylan Katz
2017-08-10Fix GitError being raised in initial `import git`Erik Johnson
This catches any raise of one of the custom exceptions defined in `git.exc` during the imports in the dunder init, and raises an `ImportError` in those cases.
2017-07-28FetchInfo.re_fetch_result has no reason to be publicDaniel Watkins
And when using the API interactively, having it show up as public is confusing.
2017-07-26Minor bug fixesOdegard, Ken
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.
2017-07-25Minor additional cleanupOdegard, Ken
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.
2017-07-19Merge branch 'tests'Anson Mansfield
2017-07-19implemented per-call environment variable supportAnson Mansfield
2017-07-19test if it accepts environment variables in commandsAnson Mansfield
2017-07-13Renamed GIT_PYTHON_INITERR to GIT_PYTHON_REFRESHOdegard, Ken
Renamed and cleaned up variable names.
2017-07-13Removed remaining references to git.setup functionOdegard, Ken
Removed few remaining references to git.setup function (as it was renamed to refresh).
2017-07-13Expanded ability of importOdegard, Ken
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.
2017-07-09Added ability to silence initial warningOdegard, Ken
Added the ability to silence the first refresh warning upon import by setting an environment variable.
2017-07-09Renamed refresh to setup and removed alias function & added unittestOdegard, Ken
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.
2017-07-09Moved setup function into top level __init__Odegard, Ken
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.
2017-07-09Preliminary implementation of setup/refresh functionsOdegard, Ken
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.
2017-07-01Update changelog and improve docs on skipped testSebastian Thiel
[skip ci]
2017-07-01Try to ignore test on windows as it fails for the wrong reasonsSebastian Thiel
Here is the error log we see: ====================================================================== ERROR: test_git_submodules_and_add_sm_with_new_commit (git.test.test_submodule.TestSubmodule) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\projects\gitpython\git\test\lib\helper.py", line 92, in wrapper return func(self, path) File "C:\projects\gitpython\git\test\test_submodule.py", line 709, in test_git_submodules_and_add_sm_with_new_commit smm.git.commit(m="new file added") File "C:\projects\gitpython\git\cmd.py", line 425, in <lambda> return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) File "C:\projects\gitpython\git\cmd.py", line 877, in _call_process return self.execute(call, **exec_kwargs) File "C:\projects\gitpython\git\cmd.py", line 688, in execute raise GitCommandError(command, status, stderr_value, stdout_value) GitCommandError: Cmd('git') failed due to: exit code(128) cmdline: git commit -m new file added stderr: ' *** Please tell me who you are.
2017-07-01Maybe work around AppVeyor setting a bad email?Peter Jones
One of the submodule tests says: Traceback (most recent call last): File "C:\projects\gitpython\git\test\lib\helper.py", line 92, in wrapper return func(self, path) File "C:\projects\gitpython\git\test\test_submodule.py", line 706, in test_git_submodules_and_add_sm_with_new_commit smm.git.commit(m="new file added") File "C:\projects\gitpython\git\cmd.py", line 425, in <lambda> return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) File "C:\projects\gitpython\git\cmd.py", line 877, in _call_process return self.execute(call, **exec_kwargs) File "C:\projects\gitpython\git\cmd.py", line 688, in execute raise GitCommandError(command, status, stderr_value, stdout_value) git.exc.GitCommandError: Cmd('git') failed due to: exit code(128) cmdline: git commit -m new file added stderr: ' *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'appveyor@APPVYR-WIN.(none)')' Clearly this is failing because (none) isn't a valid TLD, but I figure I'll try to set a fake value and see if that works around it.
2017-07-01Repo: handle worktrees betterPeter Jones
This makes Repo("foo") work when foo/.git is a file of the form created by "git worktree add", i.e. it's a text file that says: gitdir: /home/me/project/.git/worktrees/bar and where /home/me/project/.git/ is the nominal gitdir, but /home/me/project/.git/worktrees/bar has this worktree's HEAD etc and a "gitdir" file that contains the path of foo/.git . Signed-off-by: Peter Jones <pjones@redhat.com>