dvc doesn’t require git and can work even without any scm(see
dvc init --no-scm), but it is convenient to store dvc files (meta files, not actuall data) in git along with your code. Also, there are some features like
dvc metrics which can work by walking over git branches and tags, so without git (or other scm) you’ll be unable to use some non-core functionality. We have received requests for supporting scms other than git, like mercurial https://github.com/iterative/dvc/issues/945 and we are currently working on implementing support for it, so there is no problem to create an integration with other scm. That being said, I’m not at all familiar with perforce, so I can’t claim that it is 100% possible nor can I evaluate the amount of work it would require to make it work with dvc. Here is an example of git integration https://github.com/iterative/dvc/blob/master/dvc/scm/git.py , as you can see it is not that big nor it is very complicated.