-
Notifications
You must be signed in to change notification settings - Fork 150
GSI User Information
Welcome to the GSI wiki!
Only a handful of people have write access to the official repository. All development will be done through personal forks. To create a fork of NOAA-EMC/GSI, simply click the Fork button on the top right corner of the page.
Please see GitHub's help guide for forking for more information.
Now that you have created your fork, it is time to clone your fork into your workspace. The GSI still requires the fix submodules under github in order to run, so you will clone the fork using the --recursive
option in order to fetch the contents of the fix submodules.
For example,
git clone --recursive [email protected]:FirstLast-NOAA/GSI.git
clones FirstLast-NOAA's personal fork into a local directory.
Script ush/build.sh
run cmake and make to build the GSI and EnKF executables. To build the package
cd ush
./build.sh
The build creates directory build
. This is the directory from which ctests (regression tests) are executed. Upon successful completion build.sh places the gsi and enkf executables in directory install/bin
. This directory is at the same level as ush
.
You fork is a separate entity from the official repository. In order to update your fork with changes in the official repository, you will need to add a remote upstream to your local repository. To do this:
-
Add a new upstream remote, pointing to the official NOAA-EMC/GSI repository, into your cloned fork.
git remote add upstream https://github.com/NOAA-EMC/GSI
-
Use
git remote -v
to ensure that the new upstream is properly set. Output should be similar to
[First.Last@v72a3 ush]$ git remote -v origin [email protected]:FirstLast-NOAA/GSI.git (fetch) origin [email protected]:FirstLast-NOAA/GSI.git (push) upstream https://github.com/NOAA-EMC/GSI (fetch) upstream https://github.com/NOAA-EMC/GSI (push)
-
Use
git remote update
to bring in the upstream (official) repositorygit remote update
-
If you aren't in develop, then checkout develop (or master)
git checkout develop
-
Merge the upstream (official) develop to forked develop
git merge upstream/develop
-
Ensure that your
fix
submodule is sync'd and updatedgit submodule sync
git submodule update
-
Handle potential conflicts
-
Push updated forked develop (or master) to forked repository
git push origin develop
-
Checkout and merge updated develop (or master) to personal branch
-
Push the personal branch back to the fork.