Git push quirks - How To

I have experience with a number of distributed version control systems (DVCS) including Darcs, BitKeeper, Mercuial, Bazaar and now Git.

Git has a lot going for it, so I've decided to "lease" my soul to it for version control.

Git has some quirks, however. One of them is the notion of "push". Git's push doesn't work as I've come to expect in other DVCSes. Here's a good posting on this quirkiness :



SSH keys, PuTTY, Keychain etc. resources

Here are some good resources in the area of SSH keys :

## Key-based logins with PuTTY - Excellent How-To with pics


## Good overview of SSH keys - including optional hardeners


## Good overview of SSH keys, including Keychain to remember passphrases


Note PuTTY's Pageant is a Windows form of Keychain


My Git environment

Here are some things I've done to make Git easier to use. There are probably better ways (ex. Git "native" aliases etc.) to do some of these things, but these work for me. This is a work in progress.

Here are some aliases I put in my .bashrc :

alias gb='git branch'
alias gbv='git branch -v'
alias gbva='git branch -va'

alias gci='git citool'

alias gds='git diff --stat'
alias gdsmfh='git diff --stat master FETCH_HEAD'
alias gdtmfh='git difftool master FETCH_HEAD'

alias gl='git log --pretty=short'
alias glf='git log --pretty=fuller'


Building Git on Ubuntu

To "git" the latest goodies in Git 1.6.x, I like to build it on my systems rather than obtain it thru a package manager.

On Ubuntu server systems, I may be missing some Git build dependencies. I can go into the Makefile and set some values (near the top) to work around this like :


It's probably easier, however, to do this to have apt-get grab the build dependencies :

$ aptitude build-dep git-core

This may get some things you may not need (Subversion, CVS), but it makes it easier.

Then just make :

# make prefix=/usr install2


Git merge strategies

Here are a few comments about Git merge strategies.

When you do something like git merge FETCH_HEAD, Git will by default apply a recursive strategy when you pull or merge one branch.

I had a case where I had to pull in commits from a "similar but unrelated" Git repository. I did a git fetch to grab the changes into a local FETCH_HEAD. But when I did git merge with the default merge strategy, the merge failed miserably (lots of conflicts).

When I tried the resolve strategy, the merge failed totally :
$ git merge -s resolve FETCH_HEAD


Windows Vista Media Center and Acer Aspire L5100 - HTPC

OK, yesterday I was thinking about using Mythbuntu / MythTV as a PC-based media center (home theater PC). I didn't know, but it seems like Windows Vista Premium has a "media center" application which should be sufficient for my needs.

I don't want to put a lot of time into this (we don't watch that much TV), so we'll see what we get out of the box with Vista.

One problem -- our TVs are old (like I said - we don't watch much TV)!. We have a 1994-5 (??) big old Phillips TV, and a Dec 2004 Sony WEGA KV-24FS120. I'm going to try this experiment on the Sony.


Ripping DVDs to disk and play back

While cleaning up things a bit, I realized we have some one-of-a-kind DVDs (wedding videos etc.), so having multiple "soft" backups of these on computer drives makes more sense than having DVDs that will scratch and fade with age. You can always buy another copy of a movie, but last time I checked, our wedding DVD wasn't on Netflix -- even in the comedy section ;-)


PHP Frameworks - CodeIgniter Overview

Here are the slides to an interesting talk about PHP frameworks, given by the "first" creator of PHP, Rasmus Lerdorf, who now works for Yahoo.

In PHP 3.0+, Rasmus kind of gave up control of PHP to a couple other guys who took it in much more of a Object-oriented way. I like the following slides where Rasmus questions how 10 years of OO haven't added much (except confusion) to the language : PHP 1995 - short and simple PHP 2005 - after 10 years of OO cruft added

PHP security

A friend thought that updating to the latest version of PHP would "automatically" provide much better security. I'm skeptical.

I've heard that most of the "unintentional" PHP security issues over the past 2-3 years were only a risk if you were accessing PHP from the local file system (not via Apache). If somebody's already on your filesystem you're going to have problems regardless of the PHP version.


XMind is a nice, free brainstorming tool

XMind is an Eclipse-based mind mapper (brainstorming) tool. I've found it to be quite adequate for brain dumps.

I still like Microsoft Word's outlining tool. It's one of the few reasons to still use Word.

But XMind provides a nice way to create and visualize "bubbles" or groups of ideas.

There are some videos which show how to use it. Each of these are about 1-2 minutes and a good way to try before you "buy".



Subscribe to RSS