As I first mentioned in "How to merge two independent git repositories" the Git is an extremely flexible and useful tool for tracking source code ever.
Recently I came across a topic in an official Git manual, which perfectly describes how to merge one repo into another, including a history merge. This method called the subtree merge. So, check it out.
It is a bit the same way I used in "How to merge two independent git repositories", but I find the official way is more elegant as it gives a possibility to merge a repository in a subdirectory of another repository and it is a safer method in general.
I tried it already and happy so far ;)