# Differences between dvc repro and dvc status

**URL:** <https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101>\
**Category:** Questions\
**Created:** [September 25, 2018, 4:11pm UTC](https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101 "2018-09-25T16:11:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tmain](https://avatars.discourse-cdn.com/v4/letter/t/2acd7d/32.png) [@tmain](https://discuss.dvc.org/u/tmain)\
**Post date:** [September 25, 2018, 4:11pm UTC](https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101/1 "2018-09-25T16:11:46Z")

</div>

Is it guaranteed that if `dvc status Dvcfile` shows: nothing to reproduce, the `dvc repro Dvcfile` will not do anything ?

For my use case, it looks like `dvc repro` (even when there is nothing to reproduce) takes more time to run than `dvc status`. I could then switch to calling `dvc status` to find out if there’s nothing to reproduce and have a faster pipeline.

---

<div class="post-metadata">

**Author:** ![kupruser](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@kupruser](https://discuss.dvc.org/u/kupruser)\
**Post date:** [September 26, 2018, 6:02pm UTC](https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101/2 "2018-09-26T18:02:53Z")

</div>

Hi @tmain !

Sorry for a late response.

> Is it guaranteed that if `dvc status Dvcfile` shows: nothing to reproduce, the `dvc repro Dvcfile` will not do anything ?

Yes, it is indeed guaranteed.

> For my use case, it looks like `dvc repro` (even when there is nothing to reproduce) takes more time to run than `dvc status` . I could then switch to calling `dvc status` to find out if there’s nothing to reproduce and have a faster pipeline.

Repro works in a bit different way than the status does so there might be differences in processing time. Sorry, I’m not sure I follow, could you please elaborate on what you mean by `switch`?

Thanks,  
Ruslan

---

<div class="post-metadata">

**Author:** ![tmain](https://avatars.discourse-cdn.com/v4/letter/t/2acd7d/32.png) [@tmain](https://discuss.dvc.org/u/tmain)\
**Post date:** [September 26, 2018, 6:17pm UTC](https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101/3 "2018-09-26T18:17:13Z")

</div>

By `switch` I meant the following.

In order to find out whether I need to repro something, I used to call `dvc repro Dvcfile --dry` and parse the output of that command. If I got `Nothing to reproduce`, I would continue without calling `dvc repro Dvcfile`.

Now instead, I can do `dvc status Dvcfile`, find out whether there is something to reproduce, and call `dvc repro Dvcfile` if there is.

---

<div class="post-metadata">

**Author:** ![kupruser](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@kupruser](https://discuss.dvc.org/u/kupruser)\
**Post date:** [September 26, 2018, 7:09pm UTC](https://discuss.dvc.org/t/differences-between-dvc-repro-and-dvc-status/101/4 "2018-09-26T19:09:08Z")

</div>

Ah, got it. Thank you for clarifying! Indeed, `dvc status` was intended to be used precisely for checking if anything in your pipeline has changed and requires reproduction. And `repro --dry` is actually intended for visualizing the order and list of the commands that will be run in order to reproduce the pipeline 🙂
