Peter Rowlands (변기호)
f516dd252a
trees: handle tree.walk errors the same way as os.walk ( #4059 )
...
* trees: BaseTree.walk should handle errors like os.walk
* use onerror callback if exceptions should be logged or raised
* repo.ls: use onerror for tree.walk
2020-06-17 13:25:14 +03:00
Ruslan Kuprieiev
597ab98d0e
diff: hanle repo with no commits ( #3784 )
...
`git diff` doesn't throw errors, so we could do the same.
Fixes #3398
2020-05-14 02:14:37 +03:00
Peter Rowlands (변기호)
833e82a7ea
Drop Python 3.5 support ( #3792 )
...
* drop python 3.5 support
* dvc: remove fspath() use inside os.path calls
* dvc: replace dvc.compat.fspath with os.fspath
* tests: replace dvc.compat.fspath with os.fspath
* utils: relpath() should use fspath/str
* utils: os.readlink doesn't support path-like obj on Windows until 3.8
2020-05-14 01:46:42 +03:00
Casper da Costa-Luis
2bb7257a06
lint: isort pre-commit & misc improvements ( #3749 )
...
* test: clean flake8 config root clutter
* test: pre-commit: add isort
Compatible with black (see https://github.com/timothycrosley/isort/issues/694 )
* lint: reorder imports
* lint: more complex imports
* lint: fix deepsource
* config: isort: add first party dvc
* tests: restyled: add isort
* temp commit to revert before merge
* Revert "temp commit to revert before merge"
This reverts commit 11db0fd8e95fe891597cbb9bf804480909b19e24.
2020-05-06 23:56:07 +03:00
Ruslan Kuprieiev
e2981d2743
git: is_tracked: use ls_files instead of walking the index ( #3677 )
...
Current implementation doesn't work with directories, which results in
hard-to-debug bugs like #3561 . The bug that made us walk through index
manually is now fixed in gitpython, so we can simply use `ls_files` from
now on. Added some tests to prevent this from happening in the future.
Fixes #3561
2020-04-24 19:18:58 +03:00
Ruslan Kuprieiev
eae432818a
git: tree: use item.path instead of item.name ( #3505 )
...
We are currently using this [0] hack to work around the fact that
item.name
is not always a basename. Even though `IndexObject` has it defined that
way
[1], but `Submodule` - doesn't [2]. So using `item.name` might cause
issues
such as [3], because GitPython doesn't pass name parameter when simply
going through objects [4]. In other places, when working specifically
with
submodules, it sets `_name` attribute explicitly [5].
Note that we still don't walk into submodules when walking through a git
repo. Might want to reconsider that later as for now we haven't heard
anything about it from actual users.
Fixes #3481
[0] https://github.com/iterative/dvc/blob/0.90.0/dvc/scm/git/tree.py#L15
[1]
https://github.com/gitpython-developers/GitPython/blob/3.1.0/git/objects/base.py#L170
[2]
https://github.com/gitpython-developers/GitPython/blob/3.1.0/git/objects/submodule/base.py#L1123
[3] https://github.com/gitpython-developers/GitPython/issues/597
[4]
https://github.com/gitpython-developers/GitPython/blob/3.1.0/git/objects/tree.py#L237
[5]
https://github.com/gitpython-developers/GitPython/blob/3.1.0/git/objects/submodule/base.py#L357
2020-03-18 19:18:58 +02:00
Ruslan Kuprieiev
918ef646dc
appveyor: test py2 and py3
...
Related to #2166
Signed-off-by: Ruslan Kuprieiev <[email protected] >
2019-06-23 13:33:47 +03:00
Ivan Shcheklein
75421f0f21
migrate to pytest
2019-03-17 14:49:49 -07:00