diff --git a/dvc/command/pipeline.py b/dvc/command/pipeline.py index 36d53c36e..8fc35f864 100644 --- a/dvc/command/pipeline.py +++ b/dvc/command/pipeline.py @@ -52,16 +52,15 @@ class CmdPipelineShow(CmdBase): nodes.append(stage.relpath) edges = [] - for from_stage, to_stage in G.edges(): + for from_stage, to_stage in networkx.dfs_edges(G, target_stage): if commands: if to_stage.cmd is None: continue edges.append((from_stage.cmd, to_stage.cmd)) elif outs: for from_dep in from_stage.deps: - for to_out in to_stage.outs: - if from_dep.path_info == to_out.path_info: - edges.append((str(from_dep), str(to_out))) + for from_out in from_stage.outs: + edges.append((str(from_out), str(from_dep))) else: edges.append((from_stage.relpath, to_stage.relpath))