Draft and Commit¶
The version control is based on the draft and commit.
Similar with Git, a commit is a version of a dataset, which contains the changes compared with the former commit.
Unlike Git, a draft is a new concept which represents a workspace in which changing the dataset is allowed.
In TensorBay SDK, the dataset client supplies the function of version control.
Authorization¶
from tensorbay import GAS
ACCESS_KEY = "Accesskey-*****"
gas = GAS(ACCESS_KEY)
dataset_client = gas.create_dataset("DatasetName")
Create Draft¶
TensorBay SDK supports creating the draft straightforwardly, which is based on the current branch. Note that currently there can be only one open draft in each branch.
dataset_client.create_draft("draft-1")
Then the dataset client will change the status to “draft” and store the draft number. The draft number will be auto-increasing every time a draft is created.
is_draft = dataset_client.status.is_draft
# is_draft = True (True for draft, False for commit)
draft_number = dataset_client.status.draft_number
# draft_number = 1
branch_name = dataset_client.status.branch_name
# branch_name = main
Also, TensorBay SDK supports creating a draft based on a given branch.
dataset_client.create_draft("draft-1", branch_name="main")
List Drafts¶
The draft number can be found through listing drafts.
drafts = dataset_client.list_drafts()
Get Draft¶
draft = dataset_client.get_draft(draft_number=1)
Commit Draft¶
After the commit, the draft will be closed.
dataset_client.commit("commit-1", "commit description")
is_draft = dataset_client.status.is_draft
# is_draft = False (True for draft, False for commit)
commit_id = dataset_client.status.commit_id
# commit_id = "***"
Get Commit¶
commit = dataset_client.get_commit(commit_id)
List Commits¶
commits = dataset_client.list_commits()
Checkout¶
# checkout to the draft.
dataset_client.checkout(draft_number=draft_number)
# checkout to the commit.
dataset_client.checkout(revision=commit_id)