GITHUB and proper procedures
GITHUB is a wonderful collaboration tool for developers. We at PCGen are migrating from the SVN repository we host of SF to the free hosting at GITHUB. Most people should be familiar with GIT and GITHUB, but we'll go over what our procedures are:
If you plan on being a developer and contributing follow these steps:
- 1) Sign in to github with your account. (You should have a SSH key)
- 2) Navigate to our pcgen [LINK PENDING] repository and click the FORK button
- 3) Navigate to your FORK of the pcgen project and use the SHH link for cloning a local copy
- 4) Choose a local folder to house your local copy and clone the copy there.
- 5) Add a remote repository and link it to the main pcgen (or upstream) -- OPTIONAL STEP
- 6) Once your local copy is downloaded, do a git checkout and name your branch* See Branch Naming below
- 7) Once you're down working on your feature/bug branch, add/commit/push those changes to your remote repository
- 8) Do a PR (Pull Request) from your repository to the main pcgen repository, using the branch you pushed in - make an explanation summary or JIRA ID
If you want to maintain an up-to-date copy of the pcgen repository, but do not have plans to contribute in the near future, you may easily do the following:
- 1) Navigate to our pcgen [LINK PENDING] repository
- 2) Click the SHH link for cloning a local copy
- 3) Choose a local folder to house your local copy and clone the copy there.
This will allow you to grab updates from pcgen, but not push any changes.
Feature/Bug Branch Naming Practices:
- All Features or Bugs should have a corresponding JIRA ID, example: CODE-1234, or DATA-4321. Your Branch should be JIRA-ID_Title, example: DATA-1234_Fix_Bard_Skills
SSH Keys are useful and should be used whenever possible. For Windows, PuttyGen will allow you to create your own SSH Key.
TOOLS:
- Command line for GIT is by far the superior method. However, we have found tools that our developers like to use and recommend them as easier alternatives to the command line if you choose to do so.
Windows -
- Atlassian's free SourceTree GUI program
- TortoiseGIT (Shell integration)
Mac -
Linux -
- RabbitVCS (Shell integration)