Merge branch 'sb/quiet-porcelains'
* sb/quiet-porcelains: stash: teach quiet option am, rebase: teach quiet option submodule, repack: migrate to git-sh-setup's say() git-sh-setup: introduce say() for quiet options am: suppress apply errors when using 3-way t4150: test applying with a newline in subject
This commit is contained in:
commit
e6c7c2cc97
@ -13,7 +13,7 @@ SYNOPSIS
|
||||
[--3way] [--interactive] [--committer-date-is-author-date]
|
||||
[--ignore-date]
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||
[--reject]
|
||||
[--reject] [-q | --quiet]
|
||||
[<mbox> | <Maildir>...]
|
||||
'git am' (--skip | --resolved | --abort)
|
||||
|
||||
@ -39,6 +39,10 @@ OPTIONS
|
||||
--keep::
|
||||
Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Be quiet. Only print error messages.
|
||||
|
||||
-u::
|
||||
--utf8::
|
||||
Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
|
||||
|
@ -236,6 +236,10 @@ OPTIONS
|
||||
is used instead ('git-merge-recursive' when merging a single
|
||||
head, 'git-merge-octopus' otherwise). This implies --merge.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Be quiet. Implies --no-stat.
|
||||
|
||||
-v::
|
||||
--verbose::
|
||||
Be verbose. Implies --stat.
|
||||
|
@ -9,10 +9,11 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git stash' list [<options>]
|
||||
'git stash' ( show | drop ) [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [<stash>]
|
||||
'git stash' show [<stash>]
|
||||
'git stash' drop [-q|--quiet] [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
'git stash' branch <branchname> [<stash>]
|
||||
'git stash' [save [--keep-index] [<message>]]
|
||||
'git stash' [save [--keep-index] [-q|--quiet] [<message>]]
|
||||
'git stash' clear
|
||||
'git stash' create
|
||||
|
||||
@ -41,7 +42,7 @@ is also possible).
|
||||
OPTIONS
|
||||
-------
|
||||
|
||||
save [--keep-index] [<message>]::
|
||||
save [--keep-index] [-q|--quiet] [<message>]::
|
||||
|
||||
Save your local modifications to a new 'stash', and run `git reset
|
||||
--hard` to revert them. This is the default action when no
|
||||
@ -75,7 +76,7 @@ show [<stash>]::
|
||||
it will accept any format known to 'git-diff' (e.g., `git stash show
|
||||
-p stash@\{1}` to view the second most recent stash in patch form).
|
||||
|
||||
pop [<stash>]::
|
||||
pop [--index] [-q|--quiet] [<stash>]::
|
||||
|
||||
Remove a single stashed state from the stash list and apply it
|
||||
on top of the current working tree state, i.e., do the inverse
|
||||
@ -93,7 +94,7 @@ longer apply the changes as they were originally).
|
||||
+
|
||||
When no `<stash>` is given, `stash@\{0}` is assumed.
|
||||
|
||||
apply [--index] [<stash>]::
|
||||
apply [--index] [-q|--quiet] [<stash>]::
|
||||
|
||||
Like `pop`, but do not remove the state from the stash list.
|
||||
|
||||
@ -115,7 +116,7 @@ clear::
|
||||
Remove all the stashed states. Note that those states will then
|
||||
be subject to pruning, and may be difficult or impossible to recover.
|
||||
|
||||
drop [<stash>]::
|
||||
drop [-q|--quiet] [<stash>]::
|
||||
|
||||
Remove a single stashed state from the stash list. When no `<stash>`
|
||||
is given, it removes the latest one. i.e. `stash@\{0}`
|
||||
|
35
git-am.sh
35
git-am.sh
@ -11,6 +11,7 @@ git am [options] (--resolved | --skip | --abort)
|
||||
i,interactive run interactively
|
||||
b,binary* (historical option -- no-op)
|
||||
3,3way allow fall back on 3way merging if needed
|
||||
q,quiet be quiet
|
||||
s,signoff add a Signed-off-by line to the commit message
|
||||
u,utf8 recode into utf8 (default)
|
||||
k,keep pass -k flag to git-mailinfo
|
||||
@ -99,7 +100,7 @@ fall_back_3way () {
|
||||
git write-tree >"$dotest/patch-merge-base+" ||
|
||||
cannot_fallback "Repository lacks necessary blobs to fall back on 3-way merge."
|
||||
|
||||
echo Using index info to reconstruct a base tree...
|
||||
say Using index info to reconstruct a base tree...
|
||||
if GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
|
||||
git apply --cached <"$dotest/patch"
|
||||
then
|
||||
@ -115,7 +116,7 @@ It does not apply to blobs recorded in its index."
|
||||
orig_tree=$(cat "$dotest/patch-merge-base") &&
|
||||
rm -fr "$dotest"/patch-merge-* || exit 1
|
||||
|
||||
echo Falling back to patching base and 3-way merge...
|
||||
say Falling back to patching base and 3-way merge...
|
||||
|
||||
# This is not so wrong. Depending on which base we picked,
|
||||
# orig_tree may be wildly different from ours, but his_tree
|
||||
@ -125,6 +126,10 @@ It does not apply to blobs recorded in its index."
|
||||
|
||||
eval GITHEAD_$his_tree='"$FIRSTLINE"'
|
||||
export GITHEAD_$his_tree
|
||||
if test -n "$GIT_QUIET"
|
||||
then
|
||||
export GIT_MERGE_VERBOSITY=0
|
||||
fi
|
||||
git-merge-recursive $orig_tree -- HEAD $his_tree || {
|
||||
git rerere
|
||||
echo Failed to merge in the changes.
|
||||
@ -181,6 +186,8 @@ do
|
||||
committer_date_is_author_date=t ;;
|
||||
--ignore-date)
|
||||
ignore_date=t ;;
|
||||
-q|--quiet)
|
||||
GIT_QUIET=t ;;
|
||||
--)
|
||||
shift; break ;;
|
||||
*)
|
||||
@ -279,7 +286,7 @@ else
|
||||
exit 1
|
||||
}
|
||||
|
||||
# -s, -u, -k, --whitespace, -3, -C and -p flags are kept
|
||||
# -s, -u, -k, --whitespace, -3, -C, -q and -p flags are kept
|
||||
# for the resuming session after a patch failure.
|
||||
# -i can and must be given when resuming.
|
||||
echo " $git_apply_opt" >"$dotest/apply-opt"
|
||||
@ -287,6 +294,7 @@ else
|
||||
echo "$sign" >"$dotest/sign"
|
||||
echo "$utf8" >"$dotest/utf8"
|
||||
echo "$keep" >"$dotest/keep"
|
||||
echo "$GIT_QUIET" >"$dotest/quiet"
|
||||
echo 1 >"$dotest/next"
|
||||
if test -n "$rebasing"
|
||||
then
|
||||
@ -327,6 +335,10 @@ if test "$(cat "$dotest/keep")" = t
|
||||
then
|
||||
keep=-k
|
||||
fi
|
||||
if test "$(cat "$dotest/quiet")" = t
|
||||
then
|
||||
GIT_QUIET=t
|
||||
fi
|
||||
if test "$(cat "$dotest/threeway")" = t
|
||||
then
|
||||
threeway=t
|
||||
@ -352,7 +364,7 @@ fi
|
||||
|
||||
if test "$this" -gt "$last"
|
||||
then
|
||||
echo Nothing to do.
|
||||
say Nothing to do.
|
||||
rm -fr "$dotest"
|
||||
exit
|
||||
fi
|
||||
@ -498,11 +510,18 @@ do
|
||||
stop_here $this
|
||||
fi
|
||||
|
||||
printf 'Applying: %s\n' "$FIRSTLINE"
|
||||
say "Applying: $FIRSTLINE"
|
||||
|
||||
case "$resolved" in
|
||||
'')
|
||||
eval 'git apply '"$git_apply_opt"' --index "$dotest/patch"'
|
||||
# When we are allowed to fall back to 3-way later, don't give
|
||||
# false errors during the initial attempt.
|
||||
squelch=
|
||||
if test "$threeway" = t
|
||||
then
|
||||
squelch='>/dev/null 2>&1 '
|
||||
fi
|
||||
eval "git apply $squelch$git_apply_opt"' --index "$dotest/patch"'
|
||||
apply_status=$?
|
||||
;;
|
||||
t)
|
||||
@ -534,7 +553,7 @@ do
|
||||
# Applying the patch to an earlier tree and merging the
|
||||
# result may have produced the same tree as ours.
|
||||
git diff-index --quiet --cached HEAD -- && {
|
||||
echo No changes -- Patch already applied.
|
||||
say No changes -- Patch already applied.
|
||||
go_next
|
||||
continue
|
||||
}
|
||||
@ -560,7 +579,7 @@ do
|
||||
GIT_AUTHOR_DATE=
|
||||
fi
|
||||
parent=$(git rev-parse --verify -q HEAD) ||
|
||||
echo >&2 "applying to an empty history"
|
||||
say >&2 "applying to an empty history"
|
||||
|
||||
if test -n "$committer_date_is_author_date"
|
||||
then
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2005 Junio C Hamano.
|
||||
#
|
||||
|
||||
USAGE='[--interactive | -i] [-v] [--force-rebase | -f] [--onto <newbase>] [<upstream>|--root] [<branch>]'
|
||||
USAGE='[--interactive | -i] [-v] [--force-rebase | -f] [--onto <newbase>] [<upstream>|--root] [<branch>] [--quiet | -q]'
|
||||
LONG_USAGE='git-rebase replaces <branch> with a new branch of the
|
||||
same name. When the --onto option is provided the new branch starts
|
||||
out with a HEAD equal to <newbase>, otherwise it is equal to <upstream>
|
||||
@ -72,11 +72,20 @@ continue_merge () {
|
||||
echo "directly, but instead do one of the following: "
|
||||
die "$RESOLVEMSG"
|
||||
fi
|
||||
printf "Committed: %0${prec}d " $msgnum
|
||||
if test -z "$GIT_QUIET"
|
||||
then
|
||||
printf "Committed: %0${prec}d " $msgnum
|
||||
fi
|
||||
else
|
||||
printf "Already applied: %0${prec}d " $msgnum
|
||||
if test -z "$GIT_QUIET"
|
||||
then
|
||||
printf "Already applied: %0${prec}d " $msgnum
|
||||
fi
|
||||
fi
|
||||
if test -z "$GIT_QUIET"
|
||||
then
|
||||
git rev-list --pretty=oneline -1 "$cmt" | sed -e 's/^[^ ]* //'
|
||||
fi
|
||||
git rev-list --pretty=oneline -1 "$cmt" | sed -e 's/^[^ ]* //'
|
||||
|
||||
prev_head=`git rev-parse HEAD^0`
|
||||
# save the resulting commit so we can read-tree on it later
|
||||
@ -97,6 +106,10 @@ call_merge () {
|
||||
eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
|
||||
eval GITHEAD_$hd='$(cat "$dotest/onto_name")'
|
||||
export GITHEAD_$cmt GITHEAD_$hd
|
||||
if test -n "$GIT_QUIET"
|
||||
then
|
||||
export GIT_MERGE_VERBOSITY=1
|
||||
fi
|
||||
git-merge-$strategy "$cmt^" -- "$hd" "$cmt"
|
||||
rv=$?
|
||||
case "$rv" in
|
||||
@ -138,7 +151,7 @@ move_to_original_branch () {
|
||||
finish_rb_merge () {
|
||||
move_to_original_branch
|
||||
rm -r "$dotest"
|
||||
echo "All done."
|
||||
say All done.
|
||||
}
|
||||
|
||||
is_interactive () {
|
||||
@ -207,6 +220,7 @@ do
|
||||
end=$(cat "$dotest/end")
|
||||
msgnum=$(cat "$dotest/msgnum")
|
||||
onto=$(cat "$dotest/onto")
|
||||
GIT_QUIET=$(cat "$dotest/quiet")
|
||||
continue_merge
|
||||
while test "$msgnum" -le "$end"
|
||||
do
|
||||
@ -219,6 +233,7 @@ do
|
||||
head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) &&
|
||||
onto=$(cat "$GIT_DIR"/rebase-apply/onto) &&
|
||||
orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) &&
|
||||
GIT_QUIET=$(cat "$GIT_DIR"/rebase-apply/quiet)
|
||||
git am --resolved --3way --resolvemsg="$RESOLVEMSG" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
@ -236,6 +251,7 @@ do
|
||||
msgnum=$(cat "$dotest/msgnum")
|
||||
msgnum=$(($msgnum + 1))
|
||||
onto=$(cat "$dotest/onto")
|
||||
GIT_QUIET=$(cat "$dotest/quiet")
|
||||
while test "$msgnum" -le "$end"
|
||||
do
|
||||
call_merge "$msgnum"
|
||||
@ -247,6 +263,7 @@ do
|
||||
head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) &&
|
||||
onto=$(cat "$GIT_DIR"/rebase-apply/onto) &&
|
||||
orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) &&
|
||||
GIT_QUIET=$(cat "$GIT_DIR"/rebase-apply/quiet)
|
||||
git am -3 --skip --resolvemsg="$RESOLVEMSG" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
@ -258,9 +275,11 @@ do
|
||||
git rerere clear
|
||||
if test -d "$dotest"
|
||||
then
|
||||
GIT_QUIET=$(cat "$dotest/quiet")
|
||||
move_to_original_branch
|
||||
else
|
||||
dotest="$GIT_DIR"/rebase-apply
|
||||
GIT_QUIET=$(cat "$dotest/quiet")
|
||||
move_to_original_branch
|
||||
fi
|
||||
git reset --hard $(cat "$dotest/orig-head")
|
||||
@ -298,6 +317,13 @@ do
|
||||
-v|--verbose)
|
||||
verbose=t
|
||||
diffstat=t
|
||||
GIT_QUIET=
|
||||
;;
|
||||
-q|--quiet)
|
||||
GIT_QUIET=t
|
||||
git_am_opt="$git_am_opt -q"
|
||||
verbose=
|
||||
diffstat=
|
||||
;;
|
||||
--whitespace=*)
|
||||
git_am_opt="$git_am_opt $1"
|
||||
@ -442,15 +468,15 @@ then
|
||||
then
|
||||
# Lazily switch to the target branch if needed...
|
||||
test -z "$switch_to" || git checkout "$switch_to"
|
||||
echo >&2 "Current branch $branch_name is up to date."
|
||||
say "Current branch $branch_name is up to date."
|
||||
exit 0
|
||||
else
|
||||
echo "Current branch $branch_name is up to date, rebase forced."
|
||||
say "Current branch $branch_name is up to date, rebase forced."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Detach HEAD and reset the tree
|
||||
echo "First, rewinding head to replay your work on top of it..."
|
||||
say "First, rewinding head to replay your work on top of it..."
|
||||
git checkout -q "$onto^0" || die "could not detach HEAD"
|
||||
git update-ref ORIG_HEAD $branch
|
||||
|
||||
@ -468,7 +494,7 @@ fi
|
||||
# we just fast forwarded.
|
||||
if test "$mb" = "$branch"
|
||||
then
|
||||
echo >&2 "Fast-forwarded $branch_name to $onto_name."
|
||||
say "Fast-forwarded $branch_name to $onto_name."
|
||||
move_to_original_branch
|
||||
exit 0
|
||||
fi
|
||||
@ -490,7 +516,8 @@ then
|
||||
test 0 != $ret -a -d "$GIT_DIR"/rebase-apply &&
|
||||
echo $head_name > "$GIT_DIR"/rebase-apply/head-name &&
|
||||
echo $onto > "$GIT_DIR"/rebase-apply/onto &&
|
||||
echo $orig_head > "$GIT_DIR"/rebase-apply/orig-head
|
||||
echo $orig_head > "$GIT_DIR"/rebase-apply/orig-head &&
|
||||
echo "$GIT_QUIET" > "$GIT_DIR"/rebase-apply/quiet
|
||||
exit $ret
|
||||
fi
|
||||
|
||||
@ -504,6 +531,7 @@ prev_head=$orig_head
|
||||
echo "$prev_head" > "$dotest/prev_head"
|
||||
echo "$orig_head" > "$dotest/orig-head"
|
||||
echo "$head_name" > "$dotest/head-name"
|
||||
echo "$GIT_QUIET" > "$dotest/quiet"
|
||||
|
||||
msgnum=0
|
||||
for cmt in `git rev-list --reverse --no-merges "$revisions"`
|
||||
|
@ -24,7 +24,7 @@ SUBDIRECTORY_OK='Yes'
|
||||
. git-sh-setup
|
||||
|
||||
no_update_info= all_into_one= remove_redundant= unpack_unreachable=
|
||||
local= quiet= no_reuse= extra=
|
||||
local= no_reuse= extra=
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
@ -33,7 +33,7 @@ do
|
||||
-A) all_into_one=t
|
||||
unpack_unreachable=--unpack-unreachable ;;
|
||||
-d) remove_redundant=t ;;
|
||||
-q) quiet=-q ;;
|
||||
-q) GIT_QUIET=t ;;
|
||||
-f) no_reuse=--no-reuse-object ;;
|
||||
-l) local=--local ;;
|
||||
--max-pack-size|--window|--window-memory|--depth)
|
||||
@ -80,13 +80,11 @@ case ",$all_into_one," in
|
||||
;;
|
||||
esac
|
||||
|
||||
args="$args $local $quiet $no_reuse$extra"
|
||||
args="$args $local ${GIT_QUIET:+-q} $no_reuse$extra"
|
||||
names=$(git pack-objects --honor-pack-keep --non-empty --all --reflog $args </dev/null "$PACKTMP") ||
|
||||
exit 1
|
||||
if [ -z "$names" ]; then
|
||||
if test -z "$quiet"; then
|
||||
echo Nothing new to pack.
|
||||
fi
|
||||
say Nothing new to pack.
|
||||
fi
|
||||
|
||||
# Ok we have prepared all new packfiles.
|
||||
@ -176,7 +174,7 @@ then
|
||||
done
|
||||
)
|
||||
fi
|
||||
git prune-packed $quiet
|
||||
git prune-packed ${GIT_QUIET:+-q}
|
||||
fi
|
||||
|
||||
case "$no_update_info" in
|
||||
|
@ -44,6 +44,15 @@ die() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
GIT_QUIET=
|
||||
|
||||
say () {
|
||||
if test -z "$GIT_QUIET"
|
||||
then
|
||||
printf '%s\n' "$*"
|
||||
fi
|
||||
}
|
||||
|
||||
if test -n "$OPTIONS_SPEC"; then
|
||||
usage() {
|
||||
"$0" -h
|
||||
|
78
git-stash.sh
78
git-stash.sh
@ -3,10 +3,11 @@
|
||||
|
||||
dashless=$(basename "$0" | sed -e 's/-/ /')
|
||||
USAGE="list [<options>]
|
||||
or: $dashless ( show | drop ) [<stash>]
|
||||
or: $dashless ( pop | apply ) [--index] [<stash>]
|
||||
or: $dashless show [<stash>]
|
||||
or: $dashless drop [-q|--quiet] [<stash>]
|
||||
or: $dashless ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
or: $dashless branch <branchname> [<stash>]
|
||||
or: $dashless [save [--keep-index] [<message>]]
|
||||
or: $dashless [save [--keep-index] [-q|--quiet] [<message>]]
|
||||
or: $dashless clear"
|
||||
|
||||
SUBDIRECTORY_OK=Yes
|
||||
@ -94,18 +95,28 @@ create_stash () {
|
||||
|
||||
save_stash () {
|
||||
keep_index=
|
||||
case "$1" in
|
||||
--keep-index)
|
||||
keep_index=t
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
--keep-index)
|
||||
keep_index=t
|
||||
;;
|
||||
-q|--quiet)
|
||||
GIT_QUIET=t
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
esac
|
||||
done
|
||||
|
||||
stash_msg="$*"
|
||||
|
||||
git update-index -q --refresh
|
||||
if no_changes
|
||||
then
|
||||
echo 'No local changes to save'
|
||||
say 'No local changes to save'
|
||||
exit 0
|
||||
fi
|
||||
test -f "$GIT_DIR/logs/$ref_stash" ||
|
||||
@ -118,9 +129,9 @@ save_stash () {
|
||||
|
||||
git update-ref -m "$stash_msg" $ref_stash $w_commit ||
|
||||
die "Cannot save the current status"
|
||||
printf 'Saved working directory and index state "%s"\n' "$stash_msg"
|
||||
say Saved working directory and index state "$stash_msg"
|
||||
|
||||
git reset --hard
|
||||
git reset --hard ${GIT_QUIET:+-q}
|
||||
|
||||
if test -n "$keep_index" && test -n $i_tree
|
||||
then
|
||||
@ -156,11 +167,22 @@ apply_stash () {
|
||||
die 'Cannot apply to a dirty working tree, please stage your changes'
|
||||
|
||||
unstash_index=
|
||||
case "$1" in
|
||||
--index)
|
||||
unstash_index=t
|
||||
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
--index)
|
||||
unstash_index=t
|
||||
;;
|
||||
-q|--quiet)
|
||||
GIT_QUIET=t
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
esac
|
||||
done
|
||||
|
||||
# current index state
|
||||
c_tree=$(git write-tree) ||
|
||||
@ -193,6 +215,10 @@ apply_stash () {
|
||||
export GITHEAD_$w_tree GITHEAD_$c_tree GITHEAD_$b_tree
|
||||
"
|
||||
|
||||
if test -n "$GIT_QUIET"
|
||||
then
|
||||
export GIT_MERGE_VERBOSITY=0
|
||||
fi
|
||||
if git-merge-recursive $b_tree -- $c_tree $w_tree
|
||||
then
|
||||
# No conflict
|
||||
@ -207,7 +233,12 @@ apply_stash () {
|
||||
die "Cannot unstage modified files"
|
||||
rm -f "$a"
|
||||
fi
|
||||
git status || :
|
||||
squelch=
|
||||
if test -n "$GIT_QUIET"
|
||||
then
|
||||
squelch='>/dev/null 2>&1'
|
||||
fi
|
||||
eval "git status $squelch" || :
|
||||
else
|
||||
# Merge conflict; keep the exit status from merge-recursive
|
||||
status=$?
|
||||
@ -222,6 +253,19 @@ apply_stash () {
|
||||
drop_stash () {
|
||||
have_stash || die 'No stash entries to drop'
|
||||
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
GIT_QUIET=t
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# = 0
|
||||
then
|
||||
set x "$ref_stash@{0}"
|
||||
@ -235,7 +279,7 @@ drop_stash () {
|
||||
die "$*: not a valid stashed state"
|
||||
|
||||
git reflog delete --updateref --rewrite "$@" &&
|
||||
echo "Dropped $* ($s)" || die "$*: Could not drop stash entry"
|
||||
say "Dropped $* ($s)" || die "$*: Could not drop stash entry"
|
||||
|
||||
# clear_stash if we just dropped the last stash entry
|
||||
git rev-parse --verify "$ref_stash@{0}" > /dev/null 2>&1 || clear_stash
|
||||
@ -312,7 +356,7 @@ branch)
|
||||
if test $# -eq 0
|
||||
then
|
||||
save_stash &&
|
||||
echo '(To restore them type "git stash apply")'
|
||||
say '(To restore them type "git stash apply")'
|
||||
else
|
||||
usage
|
||||
fi
|
||||
|
@ -14,23 +14,11 @@ require_work_tree
|
||||
|
||||
command=
|
||||
branch=
|
||||
quiet=
|
||||
reference=
|
||||
cached=
|
||||
nofetch=
|
||||
update=
|
||||
|
||||
#
|
||||
# print stuff on stdout unless -q was specified
|
||||
#
|
||||
say()
|
||||
{
|
||||
if test -z "$quiet"
|
||||
then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Resolve relative url by appending to parent's url
|
||||
resolve_relative_url ()
|
||||
{
|
||||
@ -137,7 +125,7 @@ cmd_add()
|
||||
shift
|
||||
;;
|
||||
-q|--quiet)
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
--reference)
|
||||
case "$2" in '') usage ;; esac
|
||||
@ -273,7 +261,7 @@ cmd_init()
|
||||
do
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
@ -333,7 +321,7 @@ cmd_update()
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
shift
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
-i|--init)
|
||||
init=1
|
||||
@ -659,7 +647,7 @@ cmd_status()
|
||||
do
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
--cached)
|
||||
cached=1
|
||||
@ -713,7 +701,7 @@ cmd_sync()
|
||||
do
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
@ -768,7 +756,7 @@ do
|
||||
command=$1
|
||||
;;
|
||||
-q|--quiet)
|
||||
quiet=1
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
-b|--branch)
|
||||
case "$2" in
|
||||
|
@ -54,8 +54,8 @@ test_expect_success 'rebase against master' '
|
||||
git rebase master'
|
||||
|
||||
test_expect_success 'rebase against master twice' '
|
||||
git rebase master 2>err &&
|
||||
grep "Current branch my-topic-branch is up to date" err
|
||||
git rebase master >out &&
|
||||
grep "Current branch my-topic-branch is up to date" out
|
||||
'
|
||||
|
||||
test_expect_success 'rebase against master twice with --force' '
|
||||
@ -65,14 +65,14 @@ test_expect_success 'rebase against master twice with --force' '
|
||||
|
||||
test_expect_success 'rebase against master twice from another branch' '
|
||||
git checkout my-topic-branch^ &&
|
||||
git rebase master my-topic-branch 2>err &&
|
||||
grep "Current branch my-topic-branch is up to date" err
|
||||
git rebase master my-topic-branch >out &&
|
||||
grep "Current branch my-topic-branch is up to date" out
|
||||
'
|
||||
|
||||
test_expect_success 'rebase fast-forward to master' '
|
||||
git checkout my-topic-branch^ &&
|
||||
git rebase my-topic-branch 2>err &&
|
||||
grep "Fast-forwarded HEAD to my-topic-branch" err
|
||||
git rebase my-topic-branch >out &&
|
||||
grep "Fast-forwarded HEAD to my-topic-branch" out
|
||||
'
|
||||
|
||||
test_expect_success \
|
||||
@ -126,4 +126,11 @@ test_expect_success 'Show verbose error when HEAD could not be detached' '
|
||||
grep "Untracked working tree file .B. would be overwritten" output.err
|
||||
'
|
||||
|
||||
test_expect_success 'rebase -q is quiet' '
|
||||
rm B &&
|
||||
git checkout -b quiet topic &&
|
||||
git rebase -q master > output.out 2>&1 &&
|
||||
test ! -s output.out
|
||||
'
|
||||
|
||||
test_done
|
||||
|
@ -177,4 +177,27 @@ test_expect_success 'stash branch' '
|
||||
test 0 = $(git stash list | wc -l)
|
||||
'
|
||||
|
||||
test_expect_success 'apply -q is quiet' '
|
||||
echo foo > file &&
|
||||
git stash &&
|
||||
git stash apply -q > output.out 2>&1 &&
|
||||
test ! -s output.out
|
||||
'
|
||||
|
||||
test_expect_success 'save -q is quiet' '
|
||||
git stash save --quiet > output.out 2>&1 &&
|
||||
test ! -s output.out
|
||||
'
|
||||
|
||||
test_expect_success 'pop -q is quiet' '
|
||||
git stash pop -q > output.out 2>&1 &&
|
||||
test ! -s output.out
|
||||
'
|
||||
|
||||
test_expect_success 'drop -q is quiet' '
|
||||
git stash &&
|
||||
git stash drop -q > output.out 2>&1 &&
|
||||
test ! -s output.out
|
||||
'
|
||||
|
||||
test_done
|
||||
|
@ -180,6 +180,17 @@ test_expect_success 'am -3 falls back to 3-way merge' '
|
||||
test -z "$(git diff lorem)"
|
||||
'
|
||||
|
||||
test_expect_success 'am -3 -q is quiet' '
|
||||
git reset master2 --hard &&
|
||||
sed -n -e "3,\$p" msg >file &&
|
||||
head -n 9 msg >>file &&
|
||||
git add file &&
|
||||
test_tick &&
|
||||
git commit -m "copied stuff" &&
|
||||
git am -3 -q lorem-move.patch > output.out 2>&1 &&
|
||||
! test -s output.out
|
||||
'
|
||||
|
||||
test_expect_success 'am pauses on conflict' '
|
||||
git checkout lorem2^^ &&
|
||||
test_must_fail git am lorem-move.patch &&
|
||||
@ -305,4 +316,19 @@ test_expect_success 'am into an unborn branch' '
|
||||
test "z$result" = "z$(git rev-parse first^{tree})"
|
||||
'
|
||||
|
||||
test_expect_success 'am newline in subject' '
|
||||
git checkout first &&
|
||||
test_tick &&
|
||||
sed -e "s/second/second \\\n foo/" patch1 > patchnl &&
|
||||
git am < patchnl > output.out 2>&1 &&
|
||||
grep "^Applying: second \\\n foo$" output.out
|
||||
'
|
||||
|
||||
test_expect_success 'am -q is quiet' '
|
||||
git checkout first &&
|
||||
test_tick &&
|
||||
git am -q < patch1 > output.out 2>&1 &&
|
||||
! test -s output.out
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user