Diff
TensorBay supports showing changes between commits or drafts.
Before operating the diff, a dataset client instance with commits is needed. See more details in Draft and Commit
Get Diff
TensorBay SDK allows getting the dataset diff through basehead. Currently, only obtaining the diff between the head and its parent commit is supported; that is, the head is the given version(commit or draft) while the base is parent commit of the head.
diff = dataset_client.get_diff(head=head)
The type of the head indicates the version status: string
for commit, int
for draft.
Get Diff on Revision
For example, the following diff records the difference between the commit whose id is "3bc35d806e0347d08fc23564b82737dc"
and its parent commit.
diff = dataset_client.get_diff(head="3bc35d806e0347d08fc23564b82737dc")
Get Diff on Draft Number
For example, the following diff records the difference between the draft whose draft number is 1
and its parent commit.
diff = dataset_client.get_diff(head=1)
Diff Object
The structure of the returning DatasetDiff
looks like:
dataset_diff
├── segment_diff
│ ├── action
│ │ └── <str>
│ ├── data_diff
│ │ ├── file_diff
│ │ │ └── action
│ │ │ └── <str>
│ │ └── label_diff
│ │ └── action
│ │ └── <str>
│ └── ...
├── segment_diff
│ ├── action
│ │ └── <str>
│ ├── data_diff
│ │ ├── file_diff
│ │ │ └── action
│ │ │ └── <str>
│ │ └── label_diff
│ │ └── action
│ │ └── <str>
│ └── ...
└── ...
The DatasetDiff
is a list which is composed of SegmentDiff
recording the changes of the segment. The SegmentDiff
is a lazy-load sequence
which is composed of DataDiff
recording the changes of data.
The attribute “action” represents the status difference of the relative resource. It is an enum which includes:
unmodify
add
delete
modify