As described in #1735, I think DVC needs to output more info about remote files,
Thus, I have added this to stage.py.
Additionally, I think that DVC should not crash if the SSH client is trying to remove a fil which already does not exists. This, I have implemented the catch of the FileNotFoundError : [Errno 2] No such file exception.
Fixes#1735
The `dvc/scm/__init__.py:scm_context` works with `Repo` objects and
is used mostly in `dvc/repo/...`, so it is better to put it in
`dvc/repo/scm_context.py`.
Fix#1769
Tree objects are used as `Repo().tree`, so it seemed logical to put them
inside `dvc/repo/tree.py`. But what is more important - `dvc.repo.Repo`
depends on `dvc.scm` and it is not convinient to use `dvc.repo.tree` in
`dvc.scm.git`.
Fix#1769
Uncommited files wouldn't be accessible as git objects.
It needs `git clean -fd` to amend "Working Tree" metrics collection
which took its part when the git tree is dirty.
Abstract access to filesystem and its implementation to access files and
particulary Stage objects in different git branches without `git
checkout` execution.
* Download Git package
* Extract tmp git repo & fetch data
* Handle fetch\cloud errors and rename select option
* Modify gitignore files when deploy a package
* More tests for git ignore file. Fix an old issue.
* Raise and exception when .gitignor not in a file subdir
* Existing tests fixes
* Basic test for packages
* Comment out pkg tests
* Codeclimate improvements
* Reformatting
* Enable pkg tests
* Fix tests no Windows
* Another old bug fix
* Fix encoding issue on Windows
* Another windows fix: apply compat.str magic to file write
* Back to posix path in gitignore and apply compat.str magic to tests
* gitignorepath: OS specifix path to posix
* Forgotten assignment
* misc: cleanup small issues
Signed-off-by: Ruslan Kuprieiev <[email protected]>
* cli: pkg: hide from help
Signed-off-by: Ruslan Kuprieiev <[email protected]>
It is better to make a file copy before moving it, since move is
a nearly-atomic operation and copy is a long one.
Also the biggest problem here is that if some application would access
the file during the process of `copyfile` then it would get the part of
file.