From: Junio C Hamano Date: Thu, 10 Apr 2008 06:52:54 GMT Subject: Re: diff-tree -r and new directories Message-ID: <7v1w5eyzeh.fsf@gitster.siamese.dyndns.org> In-Reply-To: <47FDB3DB.8020705@viscovery.net> Johannes Sixt writes: > In one of my scriptlets I have this: > > git diff-tree -r --name-only --diff-filter=AM -z "$rev" HEAD -- > > and I had assumed that only files would ever be listed because of the -r > switch. But this is not true: If there is a new directory, it lists only > the directory's name instead of the files. Is this the intent? Is it worth > changing? Hmm. you would need a better reproduction recipe than that. $ git init Initialized empty Git repository in .git/ $ >file $ git add file $ git commit -a -m initial Created initial commit 2f9da65: initial 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file $ mkdir new $ >new/file $ git add new/file $ git commit -a -m second Created commit a1fa8fb: second 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 new/file $ git diff-tree -r --name-only --diff-filter=AM -z HEAD^ HEAD | tr '\0' '\n' new/file $ git diff-tree --name-only --diff-filter=AM -z HEAD^ HEAD | tr '\0' '\n' new Perhaps you somehow did not have "-r" even though you thought you had?