Using GitHub

From GeeklogWiki
Revision as of 20:20, 8 January 2016 by Tom (talk | contribs) (Installing Git)

Jump to: navigation, search

Introduction

GitHub is an online hosting service which uses the Git distributed version control system (DVCS). The differences to a "traditional" centralized VCS (like CVS or Subversion) include:

  • Users get a self-contained repository that they can commit changes to, even when being offline.
  • Changes can be pushed back to the parent repository or even to other repositories.

Having used CVS since its inception (2001), Geeklog switched to Mercurial after the release of Geeklog 1.5.1. This switch was preceded by a successful experiment using Mercurial during the 2008 Google Summer of Code. After Geeklog 2.1.1 was released in December of 2015 a decision was made to switch to using Git and having our net Git repositories hosted on GitHub.

Installing Git

There are a number of GUI Clients available for Git. The one we recommend for Windows and Mac operating systems is GitHub Desktop since it is the native client for GitHub (it also comes with Git Shell). Download links and instructions for installing and using this software is found on the GitHub Desktop website. There is no official GitHub Desktop for Linux. You will have use another Git GUI like SmartGitHg. It runs on Windows and Linux and supports not only Git but SVN and Mercurial as well. For other Linux Git GUI Clients please visit the Git website for suggestions.

Setup

An organization called Geeklog-Core was setup on GitHub to house all repositories for the Geeklog CMS. This includes Geeklog itself, the required pear libraries, tools, artwork, plugin toolkit, and the test framework. The Geeklog's Git repository is available from this URL:

https://github.com/Geeklog-Core/geeklog

This repository was converted from the Mercurial repository soon after the release of Geeklog 2.1.1.

To create a copy of that repository, simply do

hg clone http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/ geeklog

Where the last "geeklog" is just a directory name for the local copy (and can be changed at will). This will give you a fully working local repository that you can commit changes to.

Note: The same URL can also be used to browse the repository online. Simply visit that URL with your web browser.