On Fri, 09/08 15:42, Alex Bennée wrote: > > Fam Zheng <f...@redhat.com> writes: > > > Signed-off-by: Fam Zheng <f...@redhat.com> > > --- > > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > > 1 file changed, 31 insertions(+) > > create mode 100755 scripts/archive-source.sh > > > > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh > > new file mode 100755 > > index 0000000000..3cae7f34d3 > > --- /dev/null > > +++ b/scripts/archive-source.sh > > @@ -0,0 +1,31 @@ > > +#!/bin/sh > > +# > > +# Author: Fam Zheng <f...@redhat.com> > > +# > > +# Create archive of source tree, including submodules > > +# > > +# This work is licensed under the terms of the GNU GPL, version 2. > > +# See the COPYING file in the top-level directory. > > + > > +set -e > > + > > +if test $# -lt 1; then > > + echo "Usage: $0 <output>" > > Maybe <output tarball> to make it clear what it creates?
OK. > > > + exit 1 > > +fi > > + > > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > > + > > +if test -n "$submodules"; then > > + { > > + git ls-files > > Couldn't we do the main git ls-files first and then append the data for > any submodules? Isn't that exactly what we are doing now? Fam > > > + for sm in $submodules; do > > + (cd $sm; git ls-files) | sed "s:^:$sm/:" > > + done > > + } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > > > $1.list > > +else > > + git ls-files > $1.list > > +fi > > + > > +tar -cf $1 -T $1.list > > +rm $1.list > > > -- > Alex Bennée