ps. ruby sucks

respond_to?

ps. ruby sucks

  • Home
  • Archive
  • About

git on windows

Some little gems from my .gitconfig…

p4merge with git

[diff]
	tool = p4merge
	guitool = p4merge
[difftool "p4merge"]
	path = C:/Program Files/Perforce/p4merge.exe
	cmd = \"C:/Program Files/Perforce/p4merge.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
	summary = true
	tool = p4merge
[mergetool "p4merge"]
	path = C:/Program Files/Perforce/p4merge.exe
	keepBackup = false
	cmd = \"c:/Program Files/Perforce/p4merge.exe\" \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

pull with automatic rebase

I have just discovered the beauty of pull with rebase (single, easy to read history on master! no more merges!). However, its a bit of a pain to continually do this:

git pull --rebase origin master

So to switch on rebase by default…

git config --global branch.autosetuprebase always

Beware! This only applies to new repo’s, not existing ones. To update existing repo’s with this setting try this:

git config branch.branch-name.rebase true

eg.

git config branch.master.rebase true

(reference: git with automatic rebase)

ssh-agent on windows

Ok, this one is just stolen straight from the github site here, but it still bears mentioning anyway. Use ssh-agent to hold onto your keys instead of stupid pageant. Add this to your .bashrc and have your keys loaded the first time you launch git bash after a boot!

SSH_ENV="$HOME/.ssh/environment"

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    ssh-agent | sed 's/^echo/#echo/' > "$SSH_ENV"
    echo succeeded
    chmod 600 "$SSH_ENV"
    . "$SSH_ENV" > /dev/null
    ssh-add
}

# test for identities
function test_identities {
    # test whether standard identities have been added to the agent already
    ssh-add -l | grep "The agent has no identities" > /dev/null
    if [ $? -eq 0 ]; then
        ssh-add
        # $SSH_AUTH_SOCK broken so we start a new proper agent
        if [ $? -eq 2 ];then
            start_agent
        fi
    fi
}

# check for running ssh-agent with proper $SSH_AGENT_PID
if [ -n "$SSH_AGENT_PID" ]; then
    ps -ef | grep "$SSH_AGENT_PID" | grep ssh-agent > /dev/null
    if [ $? -eq 0 ]; then
	test_identities
    fi
# if $SSH_AGENT_PID is not properly set, we might be able to load one from
# $SSH_ENV
else
    if [ -f "$SSH_ENV" ]; then
	. "$SSH_ENV" > /dev/null
    fi
    ps -ef | grep "$SSH_AGENT_PID" | grep -v grep | grep ssh-agent > /dev/null
    if [ $? -eq 0 ]; then
        test_identities
    else
        start_agent
    fi
fi
Nov 15 2011
Copyright © 2011–2012 respond_to? ‒ HD Exhibit Theme by Dustin Hoffman