From: Junio C Hamano Date: Fri, 10 May 2013 15:29:48 GMT Subject: Re: [PATCH 8/8] rebase: implement --[no-]autostash and rebase.autostash Message-ID: <7v38tu4zv7.fsf@alter.siamese.dyndns.org> In-Reply-To: <1368196005-5354-9-git-send-email-artagnon@gmail.com> Ramkumar Ramachandra writes: > +finish_rebase () { > + if test -f "$state_dir/autostash" > + then > + stash_sha1=$(cat "$state_dir/autostash") > + if git stash apply $stash_sha1 2>&1 >/dev/null > + then > + echo "Applied autostash" > + else > + ref_stash=refs/stash && > + : >>"$GIT_DIR/logs/$ref_stash" && > + git update-ref -m "autostash" $ref_stash $stash_sha1 \ > + || die "$(eval_gettext 'Cannot store $stash_sha1')" && > + echo " > +$(gettext 'Applying autostash resulted in conflicts. > +... This is confusing (or confused): these && might && fail || die && success It is much easier to read if you just drop && after die and write it like so: ref_stash=refs/stash && : >>"$GIT_DIR/logs/$ref_stash" && git update-ref -m "autostash" $ref_stash $stash_sha1 || die "$(eval_gettext 'Cannot store $stash_sha1')" echo "... success message comes here..."