Subject: Re: git diff-tree against the root commit

From: Christoph Mallon <[email-masked]>
Date: Sun, 07 Nov 2010 11:58:42 +0100

On 29.10.2010 08:13, Joshua Jensen wrote:
> I am mirroring a Git repository into another SCM.  I am using 'git diff-tree' to tell me what changes I need to make to the other SCM.
> 
> Today, I attempted to mirror a new submodule.  'git diff-tree' reported two SHAs... 0000000000000000000000000000000000000000 and the revision the submodule currently resides at.  I attempted to run a 'git diff-tree' within the submodule for the all zero SHA and the revision specified, but apparently, 0000000000000000000000000000000000000000 does not really represent the root commit and does not work.  I then discovered the --root option, but that doesn't seem to give me the complete file list either.
> 
> 'git diff-tree' has been working great for everything else, but I really need a root commit diff-tree listing for proper automation.
> 
> What are my options?

Diff against the empty tree. This gives you the treeish of the empty tree:
	git mktree < /dev/null
The result is 4b825dc642cb6eb9a060e54bf8d69288fbee4904. This magic number is used in git in several places. git's behaviour with parentless commits is somewhat annoying and/or broken.