Skip to content

Commit b691b93

Browse files
committed
Reuse dataset on history import
1 parent 570c4ae commit b691b93

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/galaxy/model/store/__init__.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,17 @@ def handle_dataset_object_edit(dataset_instance, dataset_attrs):
531531

532532
model_class = dataset_attrs.get("model_class", "HistoryDatasetAssociation")
533533
if model_class == "HistoryDatasetAssociation":
534+
# Check if this HDA should reuse a dataset from a copied-from HDA
535+
reuse_dataset = None
536+
copied_from_chain = dataset_attrs.get("copied_from_history_dataset_association_id_chain", [])
537+
if copied_from_chain:
538+
# Look for the source HDA in the current import set
539+
copied_from_key = _copied_from_object_key(copied_from_chain, object_import_tracker.hdas_by_key)
540+
if copied_from_key and copied_from_key in object_import_tracker.hdas_by_key:
541+
source_hda = object_import_tracker.hdas_by_key[copied_from_key]
542+
# Reuse the dataset from the source HDA
543+
reuse_dataset = source_hda.dataset
544+
534545
# Create dataset and HDA.
535546
dataset_instance = model.HistoryDatasetAssociation(
536547
name=dataset_attrs["name"],
@@ -545,7 +556,8 @@ def handle_dataset_object_edit(dataset_instance, dataset_attrs):
545556
tool_version=metadata.get("tool_version"),
546557
metadata_deferred=metadata_deferred,
547558
history=history,
548-
create_dataset=True,
559+
create_dataset=reuse_dataset is None,
560+
dataset=reuse_dataset,
549561
flush=False,
550562
sa_session=self.sa_session,
551563
)

0 commit comments

Comments
 (0)