Repo
oxen.repo
Repo Objects
class Repo()
The Repo class that allows you to interact with your local oxen repo.
Examples
Init, Add, Commit and Push
Adding and committing a file to a remote workspace.
import os
from oxen import Repo
# Initialize the Oxen Repository in a CatsAndDogs directory
directory = "CatsAndDogs"
repo = Repo(directory)
repo.init()
repo.add("images")
repo.commit("Adding all the images")
# Replace <namespace> and <repo_name> with your values
repo.set_remote("origin", "https://hub.oxen.ai/<namespace>/<repo_name>")
repo.push()
__init__
def __init__(path: str = "", mkdir=False)
Create a new Repo object. Use .init() to initialize a new oxen repository, or pass the path to an existing one.
Arguments:
path
-str
Path to the main working directory of your oxen repo.mkdir
-bool
Whether to create the directory if one doesn’t exist. Default: False
init
def init()
Initializes a new oxen repository at the path specified in the constructor. Will create a .oxen folder to store all the versions and metadata.
clone
def clone(url: str, branch: str = "main", shallow=False, all=False)
Clone repository from a remote url.
Arguments:
url
-str
The url of the remote repository. ex) https://hub.oxen.ai/ox/chatbotbranch
-str
The name of the branch to clone. Default: mainshallow
-bool
Whether to do a shallow clone or not. Default: Falseall
-bool
Whether to clone the full commit history or not. Default: False
branches
def branches()
List all branches for a repo
branch
def branch(name: str, delete=False)
checkout
def checkout(revision: str, create=False)
Checkout a branch or commit id.
Arguments:
revision
-str
The name of the branch or commit id to checkout.create
-bool
Whether to create a new branch if it doesn’t exist. Default: False
add
def add(path: str)
Stage a file or directory to be committed.
add_schema_metadata
def add_schema_metadata(path: str, column_name: str, metadata: str)
Add schema to the local repository
rm
def rm(path: str, recursive=False, staged=False, remote=False)
Remove a file or directory from being tracked. This will not delete the file or directory.
Arguments:
path
-str
The path to the file or directory to remove.recursive
-bool
Whether to remove the file or directory recursively. Default: Falsestaged
-bool
Whether to remove the file or directory from the staging area.Default
- Falseremote
-bool
Whether to remove the file or directory from a remote workspace.Default
- False
status
def status()
Check the status of the repo. Returns a StagedData object.
commit
def commit(message: str)
Commit the staged data in a repo with a message.
Arguments:
message
-str
The commit message.
log
def log()
Get the commit history for a repo.
set_remote
def set_remote(name: str, url: str)
Map a name to a remote url.
Arguments:
name
-str
The name of the remote. Ex) originurl
-str
The url you want to map the name to. Ex) https://hub.oxen.ai/ox/chatbot
push
def push(remote_name: str = "origin",
branch: str = "main",
delete: bool = False)
Push data to a remote repo from a local repo.
Arguments:
remote_name
-str
The name of the remote to push to.branch
-str
The name of the branch to push to.
pull
def pull(remote_name: str = "origin", branch: str = "main", all=False)
Pull data from a remote repo to a local repo.
Arguments:
remote_name
-str
The name of the remote to pull from.branch
-str
The name of the branch to pull from.all
-bool
Whether to pull all data from branch history or not. Default: False
path
@property
def path()
Returns the path to the repo.
current_branch
@property
def current_branch()
Returns the current branch.