ORI(1)

NAME
ori - Ori File System command line interface

SYNOPSIS
ori COMMAND [ARGUMENTS...]

DESCRIPTION
This tool provides the command line interface to the Ori distributed file system. Provides useful tools for accessing, manipulating, and repairing Ori repositories without the use of FUSE. It can be used alone without FUSE to checkout a snapshot of a tree and commit changes to one. This tool is also the main daemon used by the SSH push/pull interface.

This command line tool also controls the Ori FUSE driver if run inside a mounted file system rather than a repository. Only certain commands are supported at the moment and the list is documented in the orifs man page.

N.B. This project is still in flux and repository layouts may not be compatible between releases. You may be required to copy files from one repository to another manually and the history may not be preserved.

REPOSITORY COMMANDS
This list contains commands that will operate on your local instance of the repository. These may callout to remote repositories for data if this was an InstaCloned repository.

checkout [--force] COMMIT-HASH
    Checkout a revision of the repository. By default this applies the current modified files onto the specified revision, but for most users the merge command is a safer alternative. The --force flag is used to discard current changes and checkout the revision specified.

log Display a log of changes made to the repository.

merge COMMIT-HASH
    Merges the specified change with the current HEAD.

newfs FS-NAME
    Create a file system with the given name.

removefs FS-NAME
    Remove the specified file system.

show
    Show repository information.

snapshot [-m MESSAGE] [SNAPSHOT-NAME]
    Take a snapshot of the repository. You may optionally supply a message to be included and a name.

snapshots
    List all snapshots in this repository.

status
    Show a list of currently modified files and directories in the repository.

tip Print the commit hash for the HEAD revision.

REMOTE MANAGEMENT COMMANDS
This section lists commands used to clone repositories, pull changes, and manage a list of remote repositories to interact with. The special remote repository named origin is used as the default for certain operations that take an optional remote name. At the moment an InstaCloned repository can only be created with orifs.

replicate [--ondemand] SOURCE-PATH
    Clone a remote or local repository into a new directory.

pull [PATH|REMOTE-NAME]
    Pulls changes from a repository. The user can specify a path to another repository or the name of a previously registered repository. By default the command pulls from the origin.

remote
    Display a list of the remote nodes.

remote add NAME PATH
    Add a remote repository given a path

remote remove NAME
    Remove a remote repository by name

ADVANCED COMMANDS
This section lists a few commands that are for advanced users only. They either provide access to lower level functionality or are experimental. The verify command is useful to all users to check that the repository has not been corrupted.

filelog
    Displays a log of relevant commits made to the specified file.

findheads
    Searches for detached heads that are not referenced by a branch.

gc  Garbage collect any deleted objects that have not been reclaimed. This will repack the pack files that contain deleted objects.

graft
    Experimental command to graft changes from one repository into another.

purgecommit COMMIT-HASH
    Deletes a commit. Use this command with caution as it's experimental as certain commands may no longer work after.

verify
    Verify that the repository is consistent.

OTHER COMMANDS

help
    Display a list of commands and their purpose.

SEE ALSO
orifs(1),
    orisync(1), ori_httpd(1)