diff --git a/scripts/scm.sh b/scripts/scm.sh index 8f726eb7..8969f6f0 100644 --- a/scripts/scm.sh +++ b/scripts/scm.sh @@ -76,6 +76,13 @@ cmd_ls_files() done } + output_find() + { + local find_opts f + [ "$zero_terminate" = 1 ] && find_opts="-print0" + find "$@" $find_opts + } + output() { if [ "$zero_terminate" = 1 ]; then @@ -100,6 +107,9 @@ cmd_ls_files() for f in $files; do output "$1/$f" done + if [ "$include_vcs_files" = 1 -a -d CVS ]; then + output_find "$1/CVS" + fi for d in $dirs; do [ "$opt_only_regular_files" = 1 ] || output $1/$d list_dirents_cvs $1/$d @@ -112,6 +122,9 @@ cmd_ls_files() git --version | grep -q "version *1" && opt_no_submodules=1 [ "$opt_no_submodules" = 1 ] || opts="$opts --recurse-submodules" git ls-files --recurse-submodules $opts $1 + if [ "$include_vcs_files" = 1 -a -d .git ]; then + output_find .git + fi } list_dirents() @@ -127,7 +140,7 @@ cmd_ls_files() list_dirents_git $1 } - set -- `getopt fnzt "$@"` + set -- `getopt fnzta "$@"` while [ "$1" != -- ]; do case $1 in @@ -145,6 +158,9 @@ cmd_ls_files() -t) text_files=1 ;; + -a) + include_vcs_files=1 + ;; esac shift done