A git worktree-based CLI tool for efficient management and navigation of multiple isolated experiments in parallel development workflows
Project description
๐ ExpMonkey: Unleash Your Experiments with Git Magic! ๐
Welcome to ExpMonkey, the nimble experiment management tool that transforms the way you handle your research and development projects. By harnessing the power of git worktrees, ExpMonkey offers a command-line sanctuary for your branches, treating each one as a unique adventure in the jungle of innovation. Ready to swing from experiment to experiment with the grace of a seasoned primate? ๐ฟ Let's dive in!
๐ Spotlight Features
Embark on a journey with ExpMonkey and discover a world where managing multiple experiments feels like a walk in the park:
-
๐ Parallel Universe Workflow: Each git branch becomes an alternate reality, with its own directory to tinker in. Work on multiple fronts without ever tangling your vines.
-
๐ Jungle Gym Navigation: Leap between branches with a simple command. It's like having a map of the entire jungle at your fingertips.
-
๐ Git Sorcery Enhanced: ExpMonkey casts a spell on the standard git rituals, streamlining branch antics and conjuring up tools specifically for the experimental alchemist.
-
๐ Branch Alchemy: Transmute, clone, and compare experiments with the dexterity of a monkey's tail, all thanks to ExpMonkey's clever branch wizardry.
-
๐ Chant Autocompletion: Invoke the spirits of speed and precision with our autocompletion incantations, banishing typos to the shadow realm.
-
๐ Fuzzy Oracle Integration: Consult the
fzf
oracle for visions of branches and commits, selecting your path with the clarity of a shaman's trance.
๐ Prerequisites
Before you embark on this quest, ensure you have the following relics:
- Python 3.x
- Git
- Optional:
fzf
for an enhanced soothsaying interface
๐ Installation: Summoning ExpMonkey
Invoke ExpMonkey into your realm with these ancient incantations:
- Conjure the Python package:
pip3 install expmonkey
- (Optional) Weave
em-init-script
into your shell's tapestry for autocompletion and arcane abilities:
echo 'eval "$(em-init-script)"' >> ~/.bashrc
- (Optional) Summon
fzf
for a mystical user experience:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Consult the fzf grimoire for more details.
๐ Grimoire of Usage
Harness the power of ExpMonkey as you navigate the treacherous terrain of experiments:
๐ฑ Sprout a New Repository
em clone git@github.com:megvii-research/RevCol.git
๐ Parchment of Experiments
em ls -as
๐ฟ Branch Out with Forks
em cp <base-branch-name> <new-branch-name>
๐ Propel Your New Creation
em cd <new-branch-name>
# Enchant with your changes
em push
๐งโโ๏ธ Command Incantations
The Dot Trick ๐๐๐
ExpMonkey's eyes gleam when spotting a .
. Behold the magic:
๐ณ๏ธ Conjure from the Void
Create an empty experiment:
em empty <branch-name>
๐ Scrying List
Peer into the branches:
em ls # unveil local branches
em ls <filter-regex> # filter through local branches
em ls -as # reveal remote branches with status
em ls -as
illuminates branches with enchanted hues:
Color | Meaning |
---|---|
Red | Distant Lands (Remote) |
White | Uncharted (Not Checked out) |
Blue | Whispering Winds (Not Pushed) |
Yellow | Altered Realms (Modified) |
Normal | Harmony (Clean) |
em ls
is a swift spell, while em ls -as
consults distant spirits, requiring more time.
๐ Starry Copy
Craft a new branch from existing strands of fate:
em cp <Tab> <target-branch-name> # divine local branches
em cp .r<Tab> <target-branch-name> # divine all branches
em cp <base-branch-name> .<Tab> # scribe as base-branch-name
em cp .<Tab> <target-branch-name> # scribe as current-branch-name
em cp . <target-branch-name> # duplicate current branch
๐ Portal to Another Branch
Step into another experiment:
em co <Tab> # divine local branches
em co .r<Tab> # divine all branches
em co <branch-name> # step through the portal
๐๏ธ Banish an Experiment
Cast away an unwanted branch:
em rm <branch-name> # banish branch
em rm . # banish current branch
๐ Push to the Cosmos
Send your experiment into the vast unknown:
em push # launch it skyward
๐ Rename Your Destiny
Alter the name of your journey:
em mv <current-branch-name> <target-branch-name>
๐ฎ Gaze into Differences
Witness the divergence between realms:
em diff <branch1> <branch2>
๐ License
This project is a tome of knowledge, open to all seekers under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file expmonkey-0.0.35.tar.gz
.
File metadata
- Download URL: expmonkey-0.0.35.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc988fccbc03e6905a9de46513487892ca0dc587371d11c78811096448cb4f93 |
|
MD5 | 1fb3412b2ed2ada3c3b796b68b75dab6 |
|
BLAKE2b-256 | 9625b7d9ed0fb11d755270e3160d65a8829f9e5cad3472227e22c45871ca176d |
File details
Details for the file expmonkey-0.0.35-py3-none-any.whl
.
File metadata
- Download URL: expmonkey-0.0.35-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e09545a8aed11e78ea0aa567294a1c34dd3c497fa227c54b6aa8a8153f7b930 |
|
MD5 | 4e1f15bcca1653458ef64753b75394fd |
|
BLAKE2b-256 | 928432ea0b738b0a002f98c1e99f9f31f1d119284a71e7afea03387bb56b8789 |