« Previous - Version 56/97 (diff) - Next » - Current version
Sickboy, 02/09/2009 13:20


SCM

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 following steps.

Installation

  • Install Putty Suite
  • Create a Key Set with PuttyGen
  • Save the PUBLICkey and PRIVATEkey somewhere safe on your harddrive
  • Send PUBLICkey to admin (Guard the PRIVATEkey with your life, never share! :D)
    • The admin will give your account the permission to the right project, and supply you with the git clone url

(After any reboot) if you want to access a dev-heaven.net ssh host:

  • Load your PRIVATEkey into the PageAnt application (Part of putty suite).
    Incase you have a password on the PRIVATEkey, you will have to enter this everytime pageant loads your key
  • You are recommended to add a link to autostart with the param(s) to you key file(s).
    D:\Programme\Putty\pageant.exe "D:\Programme\Putty\my_private_key.ppk" 
    

First time connecting to a host

  • Open a connection with putty, to the host (e.g: git.dev-heaven.net) DO NOT save it!
    • Click YES/Accept to accept the server key
    • Close Putty again
  • You should only have to do this once per host

GIT

This is the beginners guide, feel free to look at the "expertguide":Git_Install_Expert

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.

Git GUI

This is part of the MsysGit Installation, Usage Help, Examples and Screenshots:http://dev-heaven.net/wiki/heaven/Git_Gui_Guide

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:http://dev-heaven.net/wiki/20/GitExtensions_QuickStart

TortoiseGit

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

  • BETTER NOT USE UNTIL FURTHER DEVELOPED

Initial Steps

  • Please make sure your keyAgent (e.g Pageant) is running, and your private key is loaded
  • Use interface or cli git: 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.

JumpStart

  • 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
  • If you wish to look at the log using the GIT Gui on your repository, you can check the Repository Menu, and Visualize master's history (or all branches)
  • First useful git cheat sheet
  • Subversion commands in git

Git use

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" 

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>').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.master.remote = <nickname>
    branch.master.merge = <remote-ref>
    remote.<nickname>.url = <url>
    remote.<nickname>.fetch = <refspec>

See git-config(1) for details.

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
git config remote.origin.url git@git.6thsense.eu:REPOSITORYNAME
git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
(replace REPOSITORYNAME with the right repository, e.g test-mod.git)

Info

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