Introduction to XGC’s Git Workflow

The XGC codes are organized in three separate, private repositories on GitHub ( ) under the PrincetonUniversity organization (abbreviated PU in the remainder of this document): PrincetonUniversity/XGC-Devel, PrincetonUniversity/XGC-User, and PrincetonUniversity/XGC-Full-f. The repository XGC-Full-f contains legacy code that has been developed in past SciDAC funding periods (e.g. XGC0, the full-f version of XGC1). This legacy code will undergo only modest development and maintenance work. The XGC-Devel repository contains the current, actively developed versions of the XGC code (XGC1, XGCa, XGCs). All XGC developers will use this repository as basis for their work. The XGC-User repository is a read-only (except for repo admins) repository with regularly updated releases of XGC-Devel. All code in XGC-User is stable and safe for use by inexperienced XGC users. This repo is intended for pure XGC users (who do not develop code) and new XGC developers for the purpose of training.

In order to obtain access to the XGC repositories, you need to be a member of the PU organization and a member of one of the teams associated with those repositories (XGC-Users, XGC Developers, XGC Admins, XGC-Full-f Users). New user member accounts can be requested at the Princeton Research Computing website. Members of XGC-Users have access to the XGC-User repository, and members of XGC-Full-f Users have access to the XGC-Full-f repository. The teams XGC Developers and XGC Admins are subgroups of the XGC-Users team. Members of XGC Developers have read-access to the XGC-Devel repository, and members of XGC Admins have administrator privileges on all three XGC repositories.

Repository Structure

Organization of and workflow for the XGC repositories

A very nice and comprehensive description of Git workflows can be found here: If you have any Git problems, Stackexchange usually has some answers for you. You can also ask Robert Hager (, Seung-Hoe Ku (, Brad King ( or Zack Galbreath ( for help.