Simulate CVS's default ignore patterns in a generated .gitignore? Mine the cvs2svn design notes for ideas: http://cvs2svn.tigris.org/source/browse/*checkout*/cvs2svn/trunk/doc/design-notes.txt Branch-merge detection. Not sure it's possible but I want to look into it. Are merge_ tags standardized enough to use? Way in the future...does this belong in C? Maybe not. Performance is going to be limited by network latency anyway, so Python or Ruby might be better tools - code size would drop by about x4, I think.