aboutsummaryrefslogtreecommitdiff
path: root/git
AgeCommit message (Collapse)Author
2015-01-20Another take on fixing the current concurrent read implementation in git.cmdSebastian Thiel
There have been rather obvious errors in there, as we forgot to unregister the filehandles. Now we will read from a buffer ourselves, which should be faster and ideally, doesn't lead to spurious errors anymore. Related to #232
2015-01-19Added tutorial about initializing a repository.Sebastian Thiel
Additionally, for this and future examples, there is a test_doc.py suite to contain all code mentioned in the docs. That way, we know if things stop working. Fixes #236
2015-01-19Improved installation docs to mention `pip`, not `easy_install`Sebastian Thiel
Fixes #235 [ci skip]
2015-01-19Improved unicode handling when using os.environ or GitConfigParserSebastian Thiel
Assured unicode values are supported when reading the configuration, and when getting author/committer information from the environment. Fixes #237
2015-01-19Fixed configuration file test - release call was missing.Sebastian Thiel
Once again, __del__ is not being called as usual anymore in python 3 ... .
2015-01-19Submodule.move() will auto-rename the submodule if the name was equal to the ↵Sebastian Thiel
path Fixes #238
2015-01-19Implemented Submodule.rename()Sebastian Thiel
A test verifies it's truly working. Related to #238
2015-01-19Submodule.move() fixed to deal with 'non-gitfile' clones appropriately.Sebastian Thiel
Improved a test to assure multiple update(init=False|True) calls don't throw. Fixes #93
2015-01-19Basic submodule tests are working once again !Sebastian Thiel
After all, it was easier than expected. It seems that previous assertions the test made should have never been true to begin with. Thus we might have improved the test thanks to our improved implementation. Fixes #233
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-17Made sure dry-run is properly implemented in Submodule.remove()Sebastian Thiel
The root-submodule test is still failing though, this time even earlier than before
2015-01-17Submodule.remove() now deals with .git files correctly.Sebastian Thiel
A simple test verifies this at least.
2015-01-17Assured Submodule.(update|move) are dealing with .git files appropriately.Sebastian Thiel
However, a simple test-case still fails for reasons not yet understood. There is more to be fixed here - .remove() still fails.
2015-01-16Implemented more tests and made use of .git files when adding submodulesSebastian Thiel
There is some more work to do, as renames and updates still have to be adjusted accordinlgy. Relates #233
2015-01-15Fixed previously failing testSebastian Thiel
It actually revealed a bug in the implementation of Submodule.add, which just showed in python 3 for the wrong reasons. Thankfully, failing tests after all allowed to get this issue fixed ... .
2015-01-15Verified that it apparently is impossible to add empty submodules using ↵Sebastian Thiel
git-python. This is the case with `git submodule add` as well. This makes sense as an empty git repository doesn't have a commit, which needs to be specified as SHA in the parent repositories tree entry for the respective submodule. When manually adding the empty submodule to the .gitmodules file, git-python will throw another error related to the inability to find the submodule in the index. Even if an iteration would be possible, git-python would now throw a BadName exception, which clearly indicates that the 'HEAD' revision is invalid (as it doesn't point to any commit). Fixes #152 Fixes #105
2015-01-15Submodule.add() can now handle absolute module paths in agreement to the doc ↵Sebastian Thiel
string. Previously, it would say it can handle absolute module paths, but didn't actually do so. A test-case was improved to check for this case. Fixes #161
2015-01-15For some reason, the new submodule test still broke on py3Sebastian Thiel
Adjusted code to not check for .gitmodules existence anymore, we will deal with it. Fixes #117
2015-01-15Added the first submodule will no longer cause an IOError.Sebastian Thiel
This is verified by the respective test. Fixes #117
2015-01-14Fixed some doc strings to build correctly with sphinxSebastian Thiel
Fixes #7 [ci skip]
2015-01-14An attempt to help the threaded reading to not show spurious errors anymore.Sebastian Thiel
It does not necessarily seem to work, but at least we don't access a dict concurrently anymore.
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-12IndexFile.commit() now runs pre-commit and post-commit hooks.Sebastian Thiel
However, it does so only on posix. The test-case will run on posix only as well. Please note that in theory, even on windows we will attempt to run hooks, even though I am not sure that this will actually work. Fixes #81
2015-01-12Removed os.path.realpath invocations as they are not necessary if paths are ↵Sebastian Thiel
used consistently. This will save IOPs, and make the code easier to understand (I suppose). Related to #224
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-10Fixed test to actually use tilde and environment variables respectively.Sebastian Thiel
Related to #83
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
2015-01-10rewrote test-string to have a chance to make flake8 happy.Sebastian Thiel
That way, flake won't have to completely ignore issues it might have in other portions of this file.
2015-01-10Implemented multi-line parsing of git-config to the point where a sepcific ↵Sebastian Thiel
test-file is working. This brings us much closer to what git can do, and should at least prevent errors while reading configuration files (which would break a lot of features, like handling of remotes since these rely reading configuration files). Fixes #112
2015-01-09Added test for complex blame revision query.Sebastian Thiel
It works as expected by me at least. Related to #71
2015-01-09Now Diff.__str__ works correctly in all python versions.Sebastian Thiel
Additionally, unicode handling was improved to the point where we deal with all diff(create_path=True) data as binary. Therefore we don't claim to know all encodings of all textfiles in the world, even though we still assume that everything git throws at us is utf-8 encoded. Fixes #113
2015-01-09Fixed mode-handling in Diff creation, and added assertions to catch this in ↵Sebastian Thiel
future There is still some work todo in terms of how we handle the encoding
2015-01-09Added test to verify binary diffs are working as well.Sebastian Thiel
Related to #74
2015-01-09Added test to verify binary diffs are working as well.Sebastian Thiel
Related to #74
2015-01-09Added test to assure blame can deal with binary patches.Sebastian Thiel
Fixes #74
2015-01-08Now finally, tests should be working on travis too.Sebastian Thiel
Now handling the new exception BadName as well
2015-01-08Updated submodule to latest commit, hopefully fixing travisSebastian Thiel
2015-01-08Improved empty-repo testSebastian Thiel
Helps to clarify #55
2015-01-08Improved handling of name-resolution, which will not mangle names anymore.Sebastian Thiel
Previously, an unresolvable ref name like HEAD would end up as HEX and was presented as BadObject error, even though that exception is for invalid shas only. Now BadName is thrown, which converts into a more useful error message. Improves #105
2015-01-08And finally, PY3 support should be restored.Sebastian Thiel
Forgot to fix the test, which used the same broken version_info condition
2015-01-08Fixed PY3 support.Sebastian Thiel
Apparently, thanks to an incorrect version check, PY3 ended up using a git command object database by default. This is now fixed. Additionally, the update_cache code was adjusted to check for method-existence, as it's valid to use object databases which simply don't have a caching mechanism (like the git command object database)
2015-01-08Auto-update odb caches after fetch or pull.Sebastian Thiel
Fixes #34
2015-01-08Added test to verify blame commits can have multiple lines.Sebastian Thiel
See #47