Dvc.org: Default push behaviour not analogous to git.

Created on 23 Mar 2020  路  7Comments  路  Source: iterative/dvc.org

Hi,

Say several versions of a .dvc file that track a dataset have been commited to git on the same branch, without pushing to dvc remote. By default, dvc push will upload only the cache content related to the .dvc file currently in the workspace. In order to push all the changes, --all-tags flag is required.

The documentation states that push is analogous to git command. However, this may not be accurate when considering the default behaviour. I'm new to DVC and I understand following Git may not make sense all the time, however I'd suggest that at least the documentation makes clear from the begining that dvc push and git push behave differently by default.

Regards

Most helpful comment

Seems like information about not sending commits is included in the mentioned document, but maybe we should somehow mention that when saying that push is analogous to git push, or make it more visible.

I'd suggest stating or adding that dvc push does not behave like git push unless it is explicitly instructed to do so. Maybe there's a difference between the commands being analogous and their behaviour being the same, anyways English is not my first language. As you point out, the information is indeed included in the documentation, but the current wording may possibly mislead newcomers overviewing the documentation.

All 7 comments

Seems like information about not sending commits is included in the mentioned document, but maybe we should somehow mention that when saying that push is analogous to git push, or make it more visible.

Seems like information about not sending commits is included in the mentioned document, but maybe we should somehow mention that when saying that push is analogous to git push, or make it more visible.

I'd suggest stating or adding that dvc push does not behave like git push unless it is explicitly instructed to do so. Maybe there's a difference between the commands being analogous and their behaviour being the same, anyways English is not my first language. As you point out, the information is indeed included in the documentation, but the current wording may possibly mislead newcomers overviewing the documentation.

@javierjsa so, this was in the doc before:

With no arguments, just dvc push or dvc push --remote REMOTE, it uploads only the files (or directories) that are new in the local repository to remote storage. It will not upload files associated with earlier commits in the repository (if using Git), nor will it upload files that have not changed.

I changed the first paragraph a little bit to make it less confusing, thanks for the report @javierjsa .

I also, see this as related to this https://github.com/iterative/dvc/issues/1691

the term analogy doesn't imply exact behavior. I left some notes in your commit (457cb0ade1eba837f917cda2d5e242d654728461) @shcheklein

But I guess this may be a common confusion with any terminology we use unless we explicitly clarify the command doesn't behave exactly like the Git command with the same name. Should we review other cmd refs?

@jorgeorpinel thanks! let's not prioritize this, and do this as we go.

Sure. The only one where this may be kind of an issue right now is remotes in general. Git remotes are full (bare) repos while DVC remotes are cache backups basically... Will add an issue for now.

Was this page helpful?
0 / 5 - 0 ratings