move fast because or as if driven by the wind.
Why? | Goals | Status | Getting started
A tool for streamlining the many version control processes of your development workflow written with an emphasis on ease-of-use and expressive usage diagnostics.
Table of Contents
Scud was originally a tool I wanted to build for myself in an attempt to bridge the gap between making changes to my codebase locally and seeing them reflected on a remote repository. I wanted to be able to do this without having to repeatedly write a series of verbose commands, use an assortment of various tools to get the job done or go through some unique setup process for each new project I created.
I was interested in a tool that would provide:
Scud is currently a work in progress, so its complete functionality is not yet finished. However, feel free to use it now, and update it when available. Scud will notify you during usage whenever a new update is available and provides a convenient update command, scud update [alias: scud up]
, which will update your local copy of scud to the latest version available.
clap_complete
crateman scud
via clap_mangen
crate
NOTE: I aim to round out the core feature set of scud before exploring further functionality
Scud supports a commit workflow that can produce commit messages following an assortment of commit message formats (Angular, Conventional, etc.) enabling developers to create human-readable commit messages in a simple, modular, and easily configurable manner.
Scud provides a declarative, concise interface to the underlying version control system, allowing developers to create and iterate on software in a simple yet powerful fashion.
You can get started using scud by following one of the installation methods detailed below. Additionally, you must have the required prerequisites installed before you start using scud.
To get started using scud, you must have Rust installed on your local machine which can be done via the simple one-liner,
```bash
curl https://sh.rustup.rs -sSf | sh ```
as seen on the official Rust website.
scud can be installed from crates.io:
```sh
$ cargo install scud ```
scud [SUBCOMMAND] [OPTIONS]
Options:
-h, --help Print help information
-V, --version Print version information
Subcommands:
```
branch Handles CRUD operations when it comes to repository branching. [alias: br]
commit Commits all staged files in the current local repository. [alias: c]
commit-all Stages all modified files in the current local repository and then commits them. [alias: ca]
healthcheck Checks to see required dependencies are installed. [alias: hc]
help Print this message or the help of the given subcommand(s).
init Initializes a local repository with a given VCS provider (currently supported: git, mercurial, breezy). [alias: i]
push Pushes all commits to the remote repository. [alias: ps]
pull Pulls all commits from the remote repository. [alias: pl]
stage Stages all modified files in the current local repository ensuring they are ready to be committed. [alias: s]
unstage Unstages all modified files in the current local repository so they are ready to be committed again. [alias: u]
update Handles the process of updating scud to the latest version. [alias: up] ```
NOTE: Many of scud's subcommands (where deemed appropriate) support the --dry-run
flag for testing usage in a low-stakes environment, as well as the --info
flag for getting a better idea of the operations scud is performing under the hood when the subcommand is issued.
Copyright © 2022, Josh Kersey