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
Hashes for expmonkey-0.0.35-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e09545a8aed11e78ea0aa567294a1c34dd3c497fa227c54b6aa8a8153f7b930 |
|
MD5 | 4e1f15bcca1653458ef64753b75394fd |
|
BLAKE2b-256 | 928432ea0b738b0a002f98c1e99f9f31f1d119284a71e7afea03387bb56b8789 |