From: Steffen Daode Nurpmeso <sdaoden@googlemail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Steffen Daode Nurpmeso <sdaoden@gmail.com>,
Tay Ray Chuan <rctay89@gmail.com>,
git@vger.kernel.org
Subject: [PATCH] checkout: be quiet if not on isatty()
Date: Sat, 27 Aug 2011 21:45:51 +0200 [thread overview]
Message-ID: <cover.1314472512.git.sdaoden@gmail.com> (raw)
In-Reply-To: <7vwrg5u7oz.fsf@alter.siamese.dyndns.org>
(Original subject was:
Re: [PATCH] progress: use \r as EOL only if isatty(stderr) is true)
@ Junio C Hamano <gitster@pobox.com> wrote (2011-06-28 20:33+0200):
> [..]
> I thought that we try to disable the progress pretty much
> everywhere when we are not talking to a tty[..]
Today i got this by accident:
================================================================
openbsd-src.git-null: performing reduce
Checking out files: 17% (11410/65508) ^MChecking out files:
18% (11792/65508) ^M [..]
This is the output of my dumb arena-manager, which i append after
the first scissor for reference. (Maybe someone finds it useful.
It's a dumb sh(1) thing, i don't do shell scripting that often.)
I haven't actually tried it yet, but setting .quiet for
unpack_trees may stop this output. (Compilation succeeds,
though.) I still and *truly* have no idea of the git(1)
internals, so i may oversee .. just *any* thinkable side-effect.
Hope this helps a bit.
(Actual patch as response. Have a nice weekend.)
--Steffen
Ciao, sdaoden(*)(gmail.com)
ASCII ribbon campaign ( ) More nuclear fission plants
against HTML e-mail X can serve more coloured
and proprietary attachments / \ and sounding animations
-- >8 --
#!/bin/bash
# NOTE: this acts according to extensions, e.g.:
# docutils.svn-git-null: git svn
# groff.cvs-git-null : git cvsimport
# openbsd-src.git-null : git
# vim.hg-null : Mercurial
# If a '-null' is in the suffix one may use 'reduce' and 'expand'
# modes; for git(1) these modes require an empty NULL branch:
# $ git co --orphan NULL && git rm -rf '*' &&
# echo DEFAULT-BRANCH >NULL && git add NULL && git ci -m NULL
# Mercurial has builtin support for 'null'. (Nice for backups.)
# Top dir where everything happens
ARENA="$HOME/arena/code.extern.repos"
##
GIT=git
HG=hg
SVN=svn
CVS='cvs -fz 9 update -ACRPd'
ESTAT=0
LOGFILE=lastlog.txt
CVSROOT=/nonexistent
CURR=/nonexistent
log() {
echo "$*"
echo "$*" >> $LOGFILE
}
logerr() {
echo >&2 "ERROR: $*"
echo "ERROR: $*" >> $LOGFILE
ESTAT=1
}
SEP='================================================================'
intro() {
log ''
log $SEP
log $1
}
final() {
local es=$?
if test $es -eq 0; then
log "... ok: $1"
else
logerr "$1"
ESTAT=$es
fi
log $SEP
log ''
}
if test "$BASH" = x""; then
echo >&2 "This script needs the GNU bash shell interpreter"
exit 1
fi
cd $ARENA || {
echo >&2 "Failed to chdir to $ARENA"
exit 1
}
rm -rf $LOGFILE || {
echo >&2 "Failed to remove stale $LOGFILE"
exit 1
}
MODE="$1"
shift
PARAMS="$@"
set -u
test $# -ne 0 || PARAMS=$(echo *.*)
# Perform basename cleanup and move over to $params[]
log "$0: script startup, mode $MODE"
declare -a params
for rd in $PARAMS; do
rd=$(echo "$rd" | sed -Ee 's/(.+)\/+$/\1/' -e 's/.*\/([^/]+)$/\1/')
params[${#params[*]}]="$rd"
done
GITDID=
case "$MODE" in
reduce|expand)
if test "$MODE" == 'reduce'; then
git_branch='NULL'
hg_branch='null'
else
git_branch=
hg_branch=''
fi
for rd in ${params[@]}; do
if test "$rd" == "${rd/null/}"; then
log "[$rd: $MODE does not apply]"
continue
fi
intro "$rd: performing $MODE"
set -o pipefail
( cd "$rd" || exit 1
if test "$rd" != "${rd/git-null}"; then
# On branch NULL file NULL contains master branch's name
if test -z "$git_branch"; then
if test -f NULL; then
git_branch=$(<NULL)
else
echo >&2 "No file NULL in $rd"
git_branch=master
fi
fi
$GIT checkout $git_branch
else
$HG up $hg_branch
fi
exit $?
) 2>&1 | tee -a "$LOGFILE"
final "$rd"
set +o pipefail
done
;;
update)
for rd in ${params[@]}; do
intro "$rd: performing $MODE"
set -o pipefail
( cd "$rd" || exit 1
if test "$rd" != "${rd/.git}"; then
#$GIT pull -v --ff-only --stat --prune
$GIT fetch --verbose --prune
GITDID=1
elif test "$rd" != "${rd/.svn-git}"; then
$GIT svn rebase
GITDID=1
elif test "$rd" != "${rd/.cvs-git}"; then
ldir='.git/.cvsps'
tar xjf "$ldir.tbz" || {
echo >&2 "$rd: bail: tar xjf $ldir.tbz"
exit 1
}
hdir="$HOME/.cvsps"
test -d "$hdir" || mkdir "$hdir" || {
echo >&2 "$rd: failed to create $hdir directory"
exit 2
}
root="$ldir/CVSROOT"
repo="$ldir/MODULE"
cache=$(<$ldir/CVSPS_FILE)
mv -f "$ldir/cvs-revisions" .git/
mv -f "$ldir/$cache" "$hdir/$cache"
$GIT cvsimport -aR -r origin -p '-u,--cvs-direct' \
-d $(<$root) $(<$repo)
es=$?
GITDID=1
mv -f .git/cvs-revisions "$ldir/"
mv -f "$hdir/$cache" "$ldir/$cache"
tar cjf "$ldir.tbz" "$ldir" || {
echo >&2 "$rd: bail: tar cjf $ldir.tbz $ldir"
exit 3
}
rm -rf $ldir
exit $es
elif test "$rd" != "${rd/.hg}"; then
$HG -v pull #-u
elif test "$rd" != "${rd/.svn}"; then
$SVN update
elif test "$rd" != "${rd/.cvs}"; then
$CVS
else
echo "Unknown revision-control-system: $rd"
exit 1
fi
) 2>&1 | tee -a "$LOGFILE"
final "$rd"
set +o pipefail
done
;;
fullgc|gc)
gct=
test "$MODE" == fullgc && gct=--aggressive
for rd in ${params[@]}; do
intro "$rd: performing $MODE"
set -o pipefail
( cd "$rd" || exit 1
test "$rd" != "${rd/.git}" && git gc $gct
) 2>&1 | tee -a "$LOGFILE"
final "$rd"
set +o pipefail
done
;;
*)
echo 'USAGE: manager reduce|expand|update|gc|fullgc LIST-OF-DIRECTORIES'
exit 1
;;
esac
test x"$GITDID" != x && log 'git(1) fetched data - do arena-manager [full]gc ..'
test $ESTAT -ne 0 && log 'Errors occurred!'
exit $ESTAT
# vim:set fenc=utf-8 filetype=sh syntax=sh ts=4 sts=4 sw=4 et tw=79:
next prev parent reply other threads:[~2011-08-27 19:47 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 14:40 [PATCH] progress: use \r as EOL only if isatty(stderr) is true Steffen Daode Nurpmeso
[not found] ` <BANLkTinRe=pA=_obCmPKBjJMXH_pDfwCtw@mail.gmail.com>
2011-06-28 16:51 ` Steffen Daode Nurpmeso
2011-06-28 18:04 ` Steffen Daode Nurpmeso
2011-06-28 18:33 ` Junio C Hamano
2011-06-28 18:48 ` Steffen Daode Nurpmeso
2011-06-28 18:55 ` Steffen Daode Nurpmeso
2011-06-28 22:45 ` Jeff King
2011-06-29 21:36 ` Junio C Hamano
2011-06-30 4:33 ` Miles Bader
2011-06-29 17:42 ` [PATCH/RFC] sideband: remove line padding (was: Re: [PATCH] progress: use \r as EOL only if isatty(stderr) is true) Steffen Daode Nurpmeso
2011-06-29 18:15 ` Nicolas Pitre
2011-06-30 21:13 ` Steffen Daode Nurpmeso
2011-07-01 3:46 ` Nicolas Pitre
2011-08-27 19:45 ` Steffen Daode Nurpmeso [this message]
2011-08-27 19:45 ` [PATCH] checkout: be quiet if not on isatty() Steffen Daode Nurpmeso
2011-08-28 6:22 ` Junio C Hamano
2011-08-28 6:28 ` martin f krafft
2011-08-28 17:37 ` [PATCH] checkout: add --verbose, and restrict progress reporting (was: Re: [PATCH] checkout: be quiet if not on isatty()) Steffen Daode Nurpmeso
2011-08-29 20:14 ` [PATCH 0/2 RFC] Add update_progress(), divert checkout messages sdaoden
2011-08-29 20:17 ` [PATCH 1/2] progress: add update_progress() sdaoden
2011-08-29 20:17 ` [PATCH 2/2] unpack-trees: divert check_updates() output via update_progress() sdaoden
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1314472512.git.sdaoden@gmail.com \
--to=sdaoden@googlemail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=rctay89@gmail.com \
--cc=sdaoden@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).