https://github.com/sim642/shy
Version Control System made as UT OOP course project.
https://github.com/sim642/shy
Last synced: about 1 year ago
JSON representation
Version Control System made as UT OOP course project.
- Host: GitHub
- URL: https://github.com/sim642/shy
- Owner: sim642
- License: mit
- Created: 2016-03-06T16:39:49.000Z (over 10 years ago)
- Default Branch: develop
- Last Pushed: 2016-09-20T11:16:33.000Z (almost 10 years ago)
- Last Synced: 2025-02-09T23:49:45.428Z (over 1 year ago)
- Language: Java
- Size: 482 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# shy
[](https://travis-ci.org/sim642/shy)
[](https://codecov.io/github/sim642/shy)
Version Control System made as UT OOP course project.
#### Contributors
* Tiit Oja
* Simmo Saan
* Gromet Spaal
## Usage
### Downloading
* `git clone --recursive https://github.com/sim642/shy.git`
Clones git repository with its submodules.
### Building
* `mvn package`
Builds and packages shy into a single `.jar` file with all of its dependencies.
### Setup
#### Linux
* `sudo ./shy-setup.sh`
Creates a symlink into `/usr/local/bin/` to make `shy` command globally accessible.
Creates a symlink into `/etc/bash_completion.d/` to provide bash tab-completion for `shy`.
#### Windows
* `shy-setup` in "Command Prompt (Run as Administrator)"
Adds the directory to `PATH` to make `shy` command globally accessible.
### Getting help
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`.
### Author information setup
`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.
### Initialization
#### New repository
Run `shy init` in any directory to initialize a shy repository in that directory.
#### Existing repository
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.
### Committing
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.
### Branching
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`.
### Tagging
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`.
### Viewing history
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.
### Viewing differences
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.
### Checking out
Any branch and commit can be checked out using `shy checkout`.
**NB! Any uncommited files may be overwritten.**
### Merging
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.**
### Pushing and pulling
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.**
### Searching content
The `shy search` command can be used to recursively search content in a specific commit.
### Ignoring files
A `.shyignore` file can be created to ignore files which match the glob patterns specified in the ignore file.