aboutsummaryrefslogtreecommitdiff
path: root/git/repo/base.py
AgeCommit message (Collapse)Author
2016-08-02Merge pull request #496 from haizaar/masterSebastian Thiel
is_dirty supports path. Fixes #482.
2016-08-01is_dirty supports path. Fixes #482.Zaar Hai
2016-07-17fix(blame): lazily fetch full commit messageSebastian Thiel
That way, we will not only get the summary line contained in the blame, but fetch the full message. This is more costly than the previous implementation allowed it to be, but being less surprising/correct certainly is the preferred behaviour here. Fixes #485
2016-06-13fix(repo): prevent error messages from being swallowedSebastian Thiel
This issue must have rosen from `to_progress_instance()` being inserted in a spot where `None` was a legit value. Fixes #462
2016-05-29chore(misc): cleanup and docsSebastian Thiel
Minor adjustments to PR to match current code style. Related to #450
2016-05-28The progress arg to push, pull, fetch and clone is now a python callable.Barry Scott
This simplifies the API and removes the parser, RemoteProgres, from the API as RemoteProgress is an internal detail of the implementation. progress is accepted as: * None - drop progress messages * callable (function etc) - call the function with the same args as update * object - assume its RemoteProgress derived as use as before RemoteProgress takes an optional progress_function argument. It will call the progress function if not None otherwise call self.update as it used to.
2016-05-24Ignore trailing last empty string in .split() outputVincent Driessen
2016-05-24Check if byte string is empty for py3 compatibilityJonathan Chu
2016-05-24Split lines by new line charactersJonathan Chu
Opt to split lines by the new line character instead of letting `splitlines()` do this. This helps catch the issue when there are special characters in the line, particular the commit summary section.
2016-05-19Use correct mode for executable filesSebastian Thiel
Fixes #430
2016-05-19Clarify costs of certain propertiesSebastian Thiel
Fixes #428
2016-04-14Return all available data from git-blameVincent Driessen
Returning this now to avoid having to change the function's return value structure later on if we want to emit more information.
2016-04-14Drop dependency on sixVincent Driessen
2016-04-13Allow passing args to git-blameVincent Driessen
This can be used to pass options like -C or -M.
2016-04-13Add incremental blame supportVincent Driessen
This adds a sibling method to Repo's blame method: Repo.blame_incremental(rev, path, **kwargs) This can alternatively be called using: Repo.blame(rev, path, incremental=True) The main difference is that blame incremental is a bit more efficient and does not return the full file's contents, just the commits and the line number ranges. The parser is a bit more straight-forward and faster since the incremental output format is defined a little stricter.
2016-02-20enable config parsers to be used as context managersRaphael Boidol
if used as context managers, the parsers will automatically release their file locks.
2016-02-14fix(cmd): allow improved errors during clone operationSebastian Thiel
Related to #383
2016-02-07fix(clone): call communicate if there is no progress handlerSebastian Thiel
Previously, it could have happened that pipes ran full, deadlocking the operation Related to #72
2015-08-22fix(repo): use GitCmdObjectDB by defaultSebastian Thiel
This should fix resource leaking issues once and for all. Related #304
2015-07-21Implement is_ancestorSandy Carter
Wrap `git merge-base --is-ancestor` into its own function because it acts as a boolean check unlike base `git merge-base call`
2015-07-20fix(flake8): remove unused importSebastian Thiel
I knew that flake would eventually get me, especially when least suspected. This time it's even useful, as it is a non-whitespace related issue.
2015-07-20fix(encoding): in `untracked_files()`Sebastian Thiel
I have no idea why PY3 requires such a mess of encoding/decoding statements, but let's just be happy it works. Also let's be sure I never ever write python code again ... EVER.
2015-07-20fix(encoding): in untracked_files() and indexSebastian Thiel
* untracked_files could, if there were spaces in the path returned, re-rencode the previously decoded unicode string thanks to a `decode("string_escape")` call. Now re-encode into utf-8 afterwards - added test to assure this works indeed * IndexFile.add() didn't handle unicode correctly and would write broken index files. The solution was to compute the path length after encoding it into utf-8 bytes, not before ... . Closes #320
2015-07-16Correct doc errorsMarian Wieczorek
revA..revB → revA...revB (three instead of two dots) [base.py, line 467](https://github.com/gitpython-developers/GitPython/blob/master/git/repo/base.py#L467) rorepo is a ~~a~~ Repo instance [test_docs.py, line 21](https://github.com/gitpython-developers/GitPython/blob/master/git/test/test_docs.py#L21) closes #314
2015-06-30Add env parameter to Repo.clone_from() for setting environment variablesJon Lund Steffensen
Adds the optional keyword parameter env to Repo.clone_from(). The parameter is a dictionary containing the desired environment variables for the git clone invocation. The environment is applied to the temporary Git instance before calling Repo._clone().
2015-06-29Fix docstring of Repo.clone_from()Jon Lund Steffensen
2015-06-10Merge pull request #291 from hvnsweeting/support-init-choosing-backendSebastian Thiel
support passing odbt for using with Repo
2015-06-10refactor(repo): parameter renaming and cleanupSebastian Thiel
* renamed `consider_submodules` to `submodules` to be in line with the existing parameters. Nowadays I would prefer the `consider_` prefix, but can't change the existing API and thus stick to the current naming scheme. * reduced amount of code in one portion to make it more maintainable. Related to #294
2015-06-05Allow submodules to be ignored in is_dirtyjavex
There are cases when might not consider a directory dirty when a submodule has changes. Particular case was git-up stashing changes where submodules are irrelevant.
2015-06-01add docstring for new argHung Nguyen Viet
2015-06-01support passing odbt for using with RepoHung Nguyen Viet
2015-02-09Added previously missing parameter documentation for Repo.__init__ .Sebastian Thiel
Related to #255
2015-01-22Added test for `sshkey` context manager.Sebastian Thiel
It verifies that the script is actually called. Interestingly, the shell script version works within an msysgit environment on windows. Fixes #234
2015-01-22Overhauled all tutorials, and placed them in a unit-test.Sebastian Thiel
That way they are protected from regression. Fixes #239
2015-01-21Added advance usage examples to tutorial and made minor fixes.Sebastian Thiel
GIT_PYTHON_TRACE would actually fail (now) if we debugged archive operations. Related to #239
2015-01-19Improved installation docs to mention `pip`, not `easy_install`Sebastian Thiel
Fixes #235 [ci skip]
2015-01-19Implemented Submodule.rename()Sebastian Thiel
A test verifies it's truly working. Related to #238
2015-01-17Submodule.remove() now seems to work properly, nearly all tests are back.Sebastian Thiel
This also means that now we seem to be able to properly handle .git files in submodules Related to #233
2015-01-17Submodule.remove() now deals with .git files correctly.Sebastian Thiel
A simple test verifies this at least.
2015-01-14Fixed some doc strings to build correctly with sphinxSebastian Thiel
Fixes #7 [ci skip]
2015-01-14Added 'path' keyword argument to Repo.archive().Sebastian Thiel
This allows sub-trees to be archived as well, and makes `.archive()` feature complete. Fixes #67
2015-01-14GitConfigParser now respects and merges 'include' sectionsSebastian Thiel
We implement it as described in this article: http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig Thus we handle * cycles * relative and absolute include paths * write-backs in case of writable GitConfigParser instances Fixes #201
2015-01-13Added `Repo.merge_base(...)` implementation, including test-case.Sebastian Thiel
Fixes #169
2015-01-12Removed all previously added invocations of os.path.realpath as it wasn't ↵Sebastian Thiel
required afterall. Turns out that the now removed `read_gitfile` functions applied os.path.realpath which caused the issue described in #224. Fixes #224
2015-01-12Repo paths are now converted to real paths, as well as all paths involved in ↵Sebastian Thiel
index related work. That way, we don't try to compare a real-path to a non-real one, which would make the implementation think a file is not actually part of the repository. Fixes #224
2015-01-12Added specific test for roughly checking configuration paths.Sebastian Thiel
For some reason, I didn't trust the existing one as it tests that code more indirectly. Related to #160
2015-01-12Re-implemented 'user' config level based on suggestion by @jzempelSebastian Thiel
The point is that XDG_CONFIG_HOME is meant to point at the '.config' directory, whereas '.config' has to be added only if HOME is used instead. Fixes #160
2015-01-10Added 'user' configuration level.Sebastian Thiel
Fixes #160
2015-01-10Repo.init() now supports paths with a '~' in it, or environment variables in ↵Sebastian Thiel
general. Fixes #83
2015-01-10Added search_parent_directories keyword argument to Repo type.Sebastian Thiel
Now by default, we will not walk up the directory structure and possibly find git directories that the user didn't intend to find. If required, that kind of behaviour can be turned back on. Fixes #65