Mimic Git with added functionality
Nested repo code updates
repo 1 <Main_repo>
|
|- repo2[foo] # foo is a dir in repo2
Easily manage specific files/directories from other repos "remotely".
Make sure you have git
installed, and your working in a git repo
1) Build from source
i. After downloading the source code, run `cargo build --release`
ii. [Optional] Add file location of the release to system `PATH`
Gimic was designed to mi mic Git, where although submodules
and subtree
are great options for including another repo into your project, you may want a little bit more granular control of what file(s) are actually pulled in and are sitting in your local directory/workspace. Using gimic
only affects your repo where the file will appear untracked (as any new file would) so it may be a good idea to update your .gitignore file or .git/exclude
Create a gloc.yaml file in the root of your poject - Checkout the example configuration file to get an idea
repo 1
|
|-gloc.yaml
If you applied installation step 2.ii, this can be run anywhere within a nested .git directory, otherwise the target build directory will need to exist within the desired "root" repo.
$ gimic checkout [options]
- This is is just a wrapper around git pull
and copy <source> <to>
. Specifying just the action , ie. checkout
, and no other args means that a yaml file exists somehwere in the execution path (ie. where you've called gimic
) and that when the alternate_repo is pulled down, the files will be copied from the alternate_source
to the alternate_target
. Note that at least one of the locations needs to exists, and if only one of either option does exists, this will be the default for the other option. Meaning if !alternate_source then alternate_target = alternate_source (and vice versa)
$ gimic commit [options]
and gimic push [options]
- Pass all normal git options to git command, but using the alternate_target
Feel free to commment in the repo and let me know if you have any other suggestions or want to contribute!