# git "manifest" command

4 messages from 2007-06-05 to 2007-06-05. Participants: Csaba Henk, Martin Waitz, Matthias Lederhofer.
Thread: https://gitlist.dev/t/8439

## Csaba Henk, 2007-06-05 10:03

Subject: git "manifest" command
Message-ID: <slrnf6ad74.4vk.csaba-ml@beastie.creo.hu>
URL: https://gitlist.dev/e/slrnf6ad74.4vk.csaba-ml%40beastie.creo.hu

```
Hi,

I was lacking a "manifest" like command, one which operates like
git-ls-files just you can use it with arbitrary tree-ish (or, put it
otherwise, one which opererates like git-ls-tree just acts recursively).
Maybe it's there already and I just didn't find my way through git
glossary?

Anyway, I rolled my own. Chanches are you find it an useful addition.

Csaba

------[git-manifest.sh]---8<---------------------------------------
#!/bin/sh
#
# Copyright (c) 2007 Csaba Henk 

display() {
	if [ $verbose ]
	then
		echo -n $1 $2 $3" "
        fi
        echo "$4"
}

walk() {
	git-ls-tree "$1" | while read -r mode type sha name
	do
		if [ "$type" = tree ]
		then
			display $mode $type $sha "$2$name/"
			walk $sha "$2$name/"
		else
			display $mode $type $sha "$2$name"
		fi
	done
}

help() {
    echo \
"List content of tree-ish recursively. Usage:

`basename "$0"` [-v] <tree-ish>
" >&2
    exit
}

case $# in
    1|2) ;;
    *)
       help 
esac

verbose=
if [ $# -eq 2 ]
then
	if [ "$1" = -v ]
	then
		verbose=1
	else
		help
	fi
	shift
else
	case "$1" in
		-h|--help) help
	esac
fi

walk "$1"

```

## Martin Waitz, 2007-06-05 11:44

Subject: Re: git "manifest" command
Message-ID: <20070605114454.GI16637@admingilde.org>
URL: https://gitlist.dev/e/20070605114454.GI16637%40admingilde.org
In-Reply-To: <slrnf6ad74.4vk.csaba-ml@beastie.creo.hu>

```
hoi :)

On Tue, Jun 05, 2007 at 10:03:18AM +0000, Csaba Henk wrote:
> I was lacking a "manifest" like command, one which operates like
> git-ls-files just you can use it with arbitrary tree-ish (or, put it
> otherwise, one which opererates like git-ls-tree just acts recursively).

like git ls-tree -r?

-- 
Martin Waitz

```

## Csaba Henk, 2007-06-05 12:18

Subject: Re: git "manifest" command
Message-ID: <slrnf6al3s.4vk.csaba-ml@beastie.creo.hu>
URL: https://gitlist.dev/e/slrnf6al3s.4vk.csaba-ml%40beastie.creo.hu
In-Reply-To: <20070605114454.GI16637@admingilde.org>

```
On 2007-06-05, Martin Waitz <tali@admingilde.org> wrote:
> like git ls-tree -r?

Yes. I knew this functionality must be there somewehere...

Thanks.

Csaba

```

## Matthias Lederhofer, 2007-06-05 17:11

Subject: Re: git "manifest" command
Message-ID: <20070605171108.GB21708@moooo.ath.cx>
URL: https://gitlist.dev/e/20070605171108.GB21708%40moooo.ath.cx
In-Reply-To: <slrnf6al3s.4vk.csaba-ml@beastie.creo.hu>

```
Csaba Henk <csaba-ml@creo.hu> wrote:
> On 2007-06-05, Martin Waitz <tali@admingilde.org> wrote:
> > like git ls-tree -r?
> 
> Yes. I knew this functionality must be there somewehere...

If you use this from a script note that ls-tree shows the subdirectory
of a tree that corresponds to the current directory in the repository.
This one should always show the full tree:
    $ git ls-tree --full-name -r HEAD $(git rev-parse --show-cdup)

```
