Marko Macek <marko.macek@xxxxxxx> writes: >>> BTW, currently there's a minor bug: git-diff HEAD doesn't work before >>> you make the first commit. Perhaps this should be special cased. >> >> That's only a _bug_ in your implementation of the synonym for >> "svn diff" which blindly used "git diff HEAD". > > My "implementation" is taken from git-diff man page. It seems obvious > that the situation before the first commit is just a special case if > we consider git-diff to be Porcelain (which I do). Yes, "git diff" is a Porcelain. No question about it. I do not consider the current behaviour of "git diff HEAD" that complains instead of giving runs of "foo is a new file and no diff is available for it" a bug; you asked for diff from some commit but the commit you gave was bogus (does not exist yet). But if you feel strongly about it, it should be trivial to special case the yet-to-be-born HEAD case and run the equilvalent of: git ls-files | sed -e 's/$/ is a new file, no diff is available./' in such a case. Or you could even go fancier and do an equivalent of: git ls-files | while read path do l=`wc -l <"$path"` echo "diff --git a/$path b/$path" echo "--- a/$path" echo "--- b/$path" echo "@@ -0,0 +1,$l @@" sed -e 's/^/+/' <"$path" done and you can claim that it makes it consistent with the case where you already have commits. But I happen to think that consistency is only of academic interest. After all, how often would one create a true "root" commit? We are not talking about creating a new repository that starts its life as a clone of something else, but a truly empty one in which the initial commit is made. And how often would one want to view "diff" from void while preparing for that initial commit? Both that low frequency _and_ general uselessness of the output from either of the above shell scripts, would it be worth "fixing" it? I do not think it adds any real practical value, and does not even have much to do with being user friendly. I would put it in the "when somebody is really bored and has nothing better to do, then this _could_ be done" category. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html