Documentation Index
Fetch the complete documentation index at: https://docs.oxen.ai/llms.txt
Use this file to discover all available pages before exploring further.
oxen.repo
Repo Objects
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
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", all=False)
Clone repository from a remote url.
Arguments:
url - str
The url of the remote repository. ex) https://hub.oxen.ai/ox/chatbot
branch - str
The name of the branch to clone. Default: main
all - bool
Whether to clone the full commit history or not. Default: False
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
Stage a file or directory to be committed.
def add_schema_metadata(path: str, column_name: str, metadata: str)
Add schema to the local repository
def rm(path: str, recursive=False, staged=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: False
staged - bool
Whether to remove the file or directory from the staging area.
Default - False
remote - bool
Whether to remove the file or directory from a remote workspace.
Default - False
status
Check the status of the repo. Returns a StagedData object.
commit
Commit the staged data in a repo with a message.
Arguments:
message - str
The commit message.
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:
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
Returns the path to the repo.
current_branch
@property
def current_branch()
Returns the current branch.
merge
Merge a branch into the current branch.