Skip to content

Clone the main MPI standards document repo

Wesley Bland edited this page Dec 9, 2015 · 5 revisions

Previous: Access to the MPI Forum private repository
Next: Fork the MPI Forum mpi standard repo (on GitHub)


Once you have been granted access to the mpi-forum/mpi-standard repository, and after you have authenticated to GitHub, you can clone the primary MPI Forum repository for the MPI standard document to our local machine. This gives us a complete local copy of the repository and its history:

$ git clone git@github.com:mpi-forum/mpi-standard.git
Cloning into 'mpi-standard'...
remote: Counting objects: 4482, done.
remote: Total 4482 (delta 0), reused 0 (delta 0), pack-reused 4482
Receiving objects: 100% (4482/4482), 64.54 MiB | 1.39 MiB/s, done.
Resolving deltas: 100% (2471/2471), done.
Checking connectivity... done.

# Once you have cloned the repo, cd into the directory to see
# all the files that have been checked out.
$ cd mpi-standard

This clone operation made a complete copy of the mpi-forum/mpi-standard repo, and added a git remote named origin back to the repository. A git remote is simply a little meta data specifying where the upstream repository is -- it allows the git command to know where to talk when you push and pull data upstream.

$ git remote -v
origin    git@github.com:mpi-forum/mpi-standard.git (fetch)
origin    git@github.com:mpi-forum/mpi-standard.git (push)

By default, you will now have checked out the current branch of the MPI Standard (3.x as of this writing). You can tell this by running a simple command:

$ git branch
* mpi-3.x

Rename the default "origin" remote (optional)

I prefer to have each remote in my working copy have a useful name, so I rename the main MPI Forum remote:

$ git remote rename origin mpi-standard
$ git remote -v
mpi-standard	git@github.com:mpi-forum/mpi-standard.git (fetch)
mpi-standard	git@github.com:mpi-forum/mpi-standard.git (push)

Add remote(s) for Working Group(s)

If you participate in working groups in addition to the main MPI Forum, you may want to add a git remote for each working group's git repository, too. Adding these remotes will allow you to interact with those working group repos in addition to the main MPI Forum git repo.

Below, we show how to add a git remote for the Fault Tolerance Working Group. You can find your working group's git repository from the main wiki page.

# Add a remote for the Fault Tolerance Working group named "ftwg".
# Get the URL for each WG repo that you use from their Github
# organization repo page.
$ git remote add ftwg git@github.com:mpiwg-ft/mpi-standard.git

# Notice that you now have remotes for "ftwg" and "mpi-standard" -- meaning
# that you can push and pull to both of these repos from your clone.
$ git remote -v
ftwg	git@github.com:mpiwg-ft/mpi-standard.git (fetch)
ftwg	git@github.com:mpiwg-ft/mpi-standard.git (push)
mpi-standard	git@github.com:mpi-forum/mpi-standard.git (fetch)
mpi-standard	git@github.com:mpi-forum/mpi-standard.git (push)

Once this remote has been added, let's fetch all available data from the ftwg remote:

$ git fetch ftwg
remote: Counting objects: 1615, done.
remote: Total 1615 (delta 169), reused 169 (delta 169), pack-reused 1446
Receiving objects: 100% (1615/1615), 3.35 MiB | 2.88 MiB/s, done.
Resolving deltas: 100% (982/982), completed with 46 local objects.
From github.com:mpiwg-ft/mpi-standard
 * [new branch]        cleanup-errhandlers -> ftwg/cleanup-errhandlers
 * [new branch]        cleanup-free -> ftwg/cleanup-free
 * [new branch]        errors-abort -> ftwg/errors-abort
 * [new branch]        free-advice -> ftwg/free-advice
 * [new branch]        mpi-1.x    -> ftwg/mpi-1.x
 * [new branch]        mpi-2.x    -> ftwg/mpi-2.x
 * [new branch]        mpi-3.x    -> ftwg/mpi-3.x
 * [new branch]        ulfm/ishrink -> ftwg/ulfm/ishrink
 * [new branch]        ulfm/master -> ftwg/ulfm/master
 * [new branch]        ulfm/rma-flushadvice -> ftwg/ulfm/rma-flushadvice

Note, too, that you can git fetch --all, which will fetch all data from all remotes.


Previous: Access to the MPI Forum private repository
Next: Fork the MPI Forum mpi standard repo (on GitHub)