Version Control System made as UT OOP course project.
- Tiit Oja
- Simmo Saan
- Gromet Spaal
git clone --recursive https://github.com/sim642/shy.git
Clones git repository with its submodules.
mvn package
Builds and packages shy into a single.jarfile with all of its dependencies.
sudo ./shy-setup.sh
Creates a symlink into/usr/local/bin/to makeshycommand globally accessible. Creates a symlink into/etc/bash_completion.d/to provide bash tab-completion forshy.
shy-setupin "Command Prompt (Run as Administrator)"
Adds the directory toPATHto makeshycommand globally accessible.
shy has extensive help available directly from the command line. Simply run shy help followed by the subcommand name
for which the help should be shown, e.g. shy help add. If a command has subcommands, they will be listed in the help
and their help can also be viewed, e.g. shy help author name.
shy gauthor command can be used to set author's details globally which will be stored in a config file under home directory.
shy author sets repository's author details for a specific repository.
Run shy init in any directory to initialize a shy repository in that directory.
Run shy clone with a supported URI argument to clone a shy repository.
Currently only SSH URIs are supported, e.g. ssh://shy@example.com/home/shy/test.
All of the following commands can be run in that directory or any of its subdirectories.
It is highly recommended to set up your information (name, email) with shy author as that will be shown as the author
of the commits made.
Use shy add to add files and directories from working directory to the commit currently being created.
Use shy remove to remove files and directories from the commit currently being created.
Once everything necessary is added, run shy commit with a suitable commit message to create the commit.
Run shy branch add to create a new branch at the latest commit. All branches can be listed with shy branch list and
excess ones deleted with shy branch remove.
Run shy tag add to create a new tag at the latest commit with given message. All tags can be listed with shy tag list and
excess ones deleted with shy tag remove.
Use shy log to see the commit history for any branch or commit. Optionally it's possible to give a second argument
to filter out only some commits.
It's possible to display the differences of any two files in the working directory using shy diff.
The same command can also be used to compare any two branches and commits entirely.
Any branch and commit can be checked out using shy checkout.
NB! Any uncommited files may be overwritten.
Use shy merge with a branch name as argument to merge that branch into the currently checked out one.
Conflicting changes will be renamed to respectively .OLD and .REV files to indicate the old file from
current branch and the file from the merged branch.
Merged changes will be automatically added but not commited to allow for pre-commit testing and changes, thus
shy commit has to be executed separately.
NB! Merging may completely fail and make unexpected changes.
Use shy pull to get updates from a remote repository and shy push to send your updates to a remote repository.
Remote repositories (remotes) can be managed via shy remote commands.
Unless specified the default remote "origin", which is set up automatically when cloning, is used for pushin and pulling.
NB! Any uncommited files may be overwritten.
The shy search command can be used to recursively search content in a specific commit.
A .shyignore file can be created to ignore files which match the glob patterns specified in the ignore file.