« Previous - Version 76/97 (diff) - Next » - Current version
Squelch, 02/16/2009 18:34

Source Code Management

Please click "Wiki" in the menu above for generic dev-heaven site help

GENERAL NOTE This wiki is based on the "Exception" rule. Please leave settings/configuration options default, unless it is explicitly listed to do otherwise.

Private and Public Key Files

To connect to a dev-heaven.net ssh host, you must authenticate with a private/public key combination.
Please follow the steps in Generating and using SSH keys to gain access.


Installation of the Core Client (MSysGit)

  • (Make sure the Putty suite is installed, see top of page)
  • Install MSysGit (Fixed Edition! Please lookup the latest available version)
    • It is recommended to add the Windows Explorer Extensions ("Git Gui Here", "Git Bash Here")
    • Choose to install for Windows Command Line (Middle option, out of 3)
    • Choose to use Plink for SSH

Installation of the Interface Client(s)

There are several clients available, you can choose to use 1, or a combination of them, as you wish.


This is part of the MsysGit Installation
Usage Help, Examples and Screenshots

Git Extensions

This client is a bit like Tortoise's client, but operates a bit differently and has a few unique features
  • Install Git Extensions
    • If you install the Complete Setup, please do not install the included MSysGit with it!!
    • Choose to install KDiff (Only available in Complete Setup). You can also download & install this application seperately (google)
    • Incase of 64-bit Windows (otherwise skip this step!), if you also want to use the Extensions in 32-bit applications (like Total Commander);
      • also download the .zip file
      • unpack the GitExtensionsShell.dll
      • rename it to GitExtensionsShellEx32.dll
      • place it in your Git Extensions installation folder
      • regsvr32 GitExtensionsShellEx32.dll from a dos prompt
  • Please Reboot
  • Startup the Git Extensions application, and verify that all settings are filled in. (Local Settings tab can remain empty)
    • UserName
    • E-mail
    • Application Locations
    • Favorite Editor and Diff/Merge program

Usage Help, Examples and Screenshots


This client is basically TortoiseSVN but then for Git, and is very much alike the SVN version


Handy Scripts / Tools

  • Git Remote Branching Very useful script written in Ruby. Can be used to simplify managing remote branches. (create, track or remove)

First Step: Cloning a repository

  • Please make sure your keyAgent (e.g Pageant) is running, and your private key is loaded
  • Use interface or commandline git and clone your first repository: git clone :REPOSITORYNAME.git (Receive repository name from admin)
    • In case of message: "The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is.", press y. Incase that doesn't work, first connect once to the host with Putty, and accept the hostkey.


  • In Git, you have a local copy of the repository
  • If you commit, you only commit to your local repository. If you want to push your changes to the shared remote repository, you must first git pull, and then git push
  • If you wish to fetch, you use git pull
  • If there are things to merge, like changes to files by 2 persons, use git merge
  • every git command can be used with --help for basic help output

Information Resources

Here we save all additional information and links we find

Staging and Committing Changes

  • If you have Git Extensions installed and properly setup, you can right click a repository and choose "Git Extensions" -> "Browse"
    • You can use this tool to browse the repository+history
    • You can use the "Commit" option in this tool to stage your changes and commit. It works pretty handy with the rescan changes button and other options

Reverting Uncommitted Changes

  • By using the Git Extensions: Browse. Then Commit
  • If your file is already stage, unstage it
  • Right click the file in the top file list, and choose revert changes
  • There are more ways, like hard resetting to current head: git checkout -f (Or in the Commit dialog of Git Extensions: reset changes hard), however, this will revert ALL your currently uncommitted changes

Common problems

Access denied
FATAL ERROR: Server sent disconnect message
type 2 (protocol error):
"Too many authentication failures for git" 


fatal: protocol error: bad line length character

Usually happens when pageant aint running.
Or when you installed msysgit without pointing it to putty plink.

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').

Use: git pull origin master
(or push)

Or setup the mentioned settings (execute from your repository folder):
  • git config branch.master.remote origin
  • git config branch.master.merge refs/heads/master


Experimental Clients

  • NetBeans Git Plugin (This is only a wrapper, you still require a Git Implementation (MSYS/CygWin))

Subversion (SVN)

  • Please make sure your keyAgent (e.g Pageant) is running, and your private key is loaded
  • DevHeaven Url: svn.dev-heaven.net

Virtual Folders / Working with Repositories in ArmA

dev_heaven_private_read_only_key.ppk - Use ONLY for dev heaven - for read only access! (843 Bytes) kju, 04/22/2009 08:03

dev_heaven_public_read_only_key - Use ONLY for dev heaven - for read only access! (294 Bytes) kju, 04/22/2009 08:03