Releases: GEOS-ESM/mepo
Adds ability to see fixture
Note that this release of mepo
allows one to see the fixture in mepo
, but changes are needed. To see the fixture, the components.yaml
needs to have something like:
GEOSadas:
fixture: true
develop: main
where the only allowed keys for the fixture are fixture:
and develop:
. And only one entry in components.yaml
can be "the fixture".
As an example, using a (temporary) branch of GEOSadas.git with that entry added:
$ mkdir GEOSadas-with-mepo-fixture-in-repo
$ cd GEOSadas-with-mepo-fixture-in-repo
$ mepo clone -b feature/mathomp4/mepo-fixture-testing [email protected]:GEOS-ESM/GEOSadas.git
Initializing mepo using components.yaml
env | (b) origin/feature/bmauer/updates-from-geosadas5_27_0
cmake | (t) v1.0.11
ecbuild | (t) geos/v1.0.0
...
$ cd GEOSadas
$ mepo status
Checking status...
GEOSadas | (b) feature/mathomp4/mepo-fixture-testing
env | (b) feature/bmauer/updates-from-geosadas5_27_0 (DH)
cmake | (t) v1.0.11 (DH)
...
So the fixture is seen. Now we'll move up the tree, but do things in the fixture to make sure we are tracking it correctly:
$ mepo-cd GEOSana_GridComp
$ pwd
/discover/swdev/mathomp4/Models/GEOSadas-with-mepo-fixture-in-repo/GEOSadas/src/Components/@GEOSana_GridComp
$ mepo whereis
GEOSadas | ../../..
env | ../../../@env
cmake | ../../../@cmake
...
$ mepo checkout -b my-awesome-new-feature GEOSadas
+ GEOSadas: my-awesome-new-feature
$ mepo compare
Repo | Original | Current
---------------------- | --------------------------------------------------- | -------
GEOSadas | (b) feature/mathomp4/mepo-fixture-testing (DH) | (b) my-awesome-new-feature
env | (b) feature/bmauer/updates-from-geosadas5_27_0 (DH) | (b) feature/bmauer/updates-from-geosadas5_27_0 (DH)
cmake | (t) v1.0.11 (DH) | (t) v1.0.11 (DH)
...
$ /home/mathomp4/MepoDevelopment/mepo branch list GEOSadas
GEOSadas | feature/mathomp4/mepo-fixture-testing
| * my-awesome-new-feature
The new branch is seen, let's make a change:
$ echo "This is a new line" >> $(mepo whereis GEOSadas)/README.md
$ mepo status
Checking status...
GEOSadas | (b) my-awesome-new-feature
| README.md: modified, not staged
env | (b) feature/bmauer/updates-from-geosadas5_27_0 (DH)
cmake | (t) v1.0.11 (DH)
...
$ mepo diff
Diffing...
GEOSadas (location: ../../..):
diff --git a/README.md b/README.md
index 3065294..792630d 100644
--- a/README.md
+++ b/README.md
@@ -188,3 +188,4 @@ cd install/bin
### Run the ADAS
Like the AGCM step above, the ADAS setup scripts are also `install/bin/`
+This is a new line
$ mepo-cd
$ git status
On branch my-awesome-new-feature
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
Add mepo-cd.csh
Fixes for whereis and diff
Fix for moving fixtures
This release has some bugfixes and new features:
- Updates to allow mepo clones to be moved (#106)
- A bit of nicety on
mepo status
for detatched HEAD states - Adds
mepo-cd.zsh
as I couldn't figure out how to get the bash script to work in zsh
Bug fixes and enhancements for mepo save
The mepo save
command had some issues exposed in recent testing.
- The command would save the new yaml file in
pwd
rather than at the "root" directory where the original was. This was a bit confusing, so the command now saves at root level mepo save
did not handle hashes well. There is no reason it couldn't save to a hash, but it labeled it as abranch
in the yaml file which, while not broken, was in consistent.
Add dry-run for checkout-if-exists
This release adds a --dry-run
(or -n
) option to checkout-if-exists
which lists if a branch exists on a repo without checking out:
❯ mepo checkout-if-exists -n feature/mathomp4/mkl-is-optional
Branch feature/mathomp4/mkl-is-optional exists in cmake
Branch feature/mathomp4/mkl-is-optional exists in NCEP_Shared
Branch feature/mathomp4/mkl-is-optional exists in GEOSgcm_GridComp
Add per-repo diff
Add tag commands and per-component branch list
This release of mepo
adds a mepo tag
command (with subcommands) as well as an update to mepo branch list
.
mepo tag
adds these subcommands:
mepo tag list
==>git tag
- This can be run on all repos or
mepo tag <repo>
for a specifig
- This can be run on all repos or
mepo tag create
==>git tag
but actually making a tag (with-a
as option)- This has both a
-a
and-m
option for annotated tags. If-a
is added without-m
this will popup an editor
- This has both a
mepo tag delete
==>git tag -d
- This only deletes locally not on the remote
A new mepo push --tags
was added to push tags.
Also added was the ability to do mepo branch list <repo>
to list branches only on one (or more) repos.
Finally, a .zenodo.json
file was added.
Add restore-state
This release adds a mepo restore-state
command
With this command, you should be able to restore a checkout to what the original state was. This was a request/idea inspired by @yvikhlya:
❯ mepo compare
Repo | Original | Current
---------- | -------------------- | -------
ESMA_env | (t) v2.1.6 (DH) | (b) feature/mathomp4/intel1912
ESMA_cmake | (t) v3.1.2 (DH) | (t) v3.1.2 (DH)
ecbuild | (t) geos/v1.0.5 (DH) | (t) geos/v1.0.5 (DH)
❯ mepo restore-state
Checking status...
Reverting ESMA_env to v2.1.6
❯ mepo compare
Repo | Original | Current
---------- | -------------------- | -------
ESMA_env | (t) v2.1.6 (DH) | (t) v2.1.6 (DH)
ESMA_cmake | (t) v3.1.2 (DH) | (t) v3.1.2 (DH)
ecbuild | (t) geos/v1.0.5 (DH) | (t) geos/v1.0.5 (DH)
Note: at present this will restore EVERYTHING to the previous state. Not a repo here or there.
Add pull, pull-all, and fetch-all commands
This release adds:
mepo pull
mepo pull-all
mepo fetch-all
Note that since you can't git pull
on a detached HEAD state, the pull-all
will only pull on real branches. The others will spit out as a print:
❯ mepo pull-all
Pulling branch throw-away in ESMA_env
The following repos were not pulled (detached HEAD): ESMA_cmake, ecbuild
Also fixes the mepo
file as, on Darwin, things went kablooey recently with Python 3.8