Skip to main content

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", 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

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)
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

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:

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.

merge

def merge(branch: str)
Merge a branch into the current branch.
I