From: Liam Beguin <liambeguin@gmail.com>
To: git@vger.kernel.org
Cc: Jhannes.Schindelin@gmx.de, peff@peff.net,
Liam Beguin <liambeguin@gmail.com>
Subject: [PATCH v2] rebase -i: add config to abbreviate command-names
Date: Tue, 25 Apr 2017 00:37:42 -0400 [thread overview]
Message-ID: <20170425043742.15529-1-liambeguin@gmail.com> (raw)
In-Reply-To: <20170424032347.10878-1-liambeguin@gmail.com>
Add the 'rebase.abbrevCmd' boolean config option to allow `git rebase -i`
to abbreviate the command-names in the instruction list.
This means that `git rebase -i` would print:
p deadbee The oneline of this commit
...
instead of:
pick deadbee The oneline of this commit
...
Using a single character command-name allows the lines to remain
aligned, making the whole set more readable.
Signed-off-by: Liam Beguin <liambeguin@gmail.com>
---
Changes since v1:
- Improve Documentation and commit message
Documentation/config.txt | 19 +++++++++++++++++++
Documentation/git-rebase.txt | 19 +++++++++++++++++++
git-rebase--interactive.sh | 8 ++++++--
3 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d5155..8b1877f2df91 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2614,6 +2614,25 @@ rebase.instructionFormat::
the instruction list during an interactive rebase. The format will automatically
have the long commit hash prepended to the format.
+rebase.abbrevCmd::
+ If set to true, `git rebase -i` will abbreviate the command-names in the
+ instruction list. This means that instead of looking like this,
+
+-------------------------------------------
+ pick deadbee The oneline of this commit
+ pick fa1afe1 The oneline of the next commit
+ ...
+-------------------------------------------
+
+ the list would use the short version of the command resulting in
+ something like this.
+
+-------------------------------------------
+ p deadbee The oneline of this commit
+ p fa1afe1 The oneline of the next commit
+ ...
+-------------------------------------------
+
receive.advertiseAtomic::
By default, git-receive-pack will advertise the atomic push
capability to its clients. If you don't want to advertise this
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 67d48e688315..7d97c0483241 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -222,6 +222,25 @@ rebase.missingCommitsCheck::
rebase.instructionFormat::
Custom commit list format to use during an `--interactive` rebase.
+rebase.abbrevCmd::
+ If set to true, `git rebase -i` will abbreviate the command-names in the
+ instruction list. This means that instead of looking like this,
+
+-------------------------------------------
+ pick deadbee The oneline of this commit
+ pick fa1afe1 The oneline of the next commit
+ ...
+-------------------------------------------
+
+ the list would use the short version of the command resulting in
+ something like this.
+
+-------------------------------------------
+ p deadbee The oneline of this commit
+ p fa1afe1 The oneline of the next commit
+ ...
+-------------------------------------------
+
OPTIONS
-------
--onto <newbase>::
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 2c9c0165b5ab..9f3e82b79615 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -1210,6 +1210,10 @@ else
revisions=$onto...$orig_head
shortrevisions=$shorthead
fi
+
+rebasecmd=pick
+test "$(git config --bool --get rebase.abbrevCmd)" = true && rebasecmd=p
+
format=$(git config --get rebase.instructionFormat)
# the 'rev-list .. | sed' requires %m to parse; the instruction requires %H to parse
git rev-list $merges_option --format="%m%H ${format:-%s}" \
@@ -1228,7 +1232,7 @@ do
if test t != "$preserve_merges"
then
- printf '%s\n' "${comment_out}pick $sha1 $rest" >>"$todo"
+ printf '%s\n' "${comment_out}${rebasecmd} $sha1 $rest" >>"$todo"
else
if test -z "$rebase_root"
then
@@ -1246,7 +1250,7 @@ do
if test f = "$preserve"
then
touch "$rewritten"/$sha1
- printf '%s\n' "${comment_out}pick $sha1 $rest" >>"$todo"
+ printf '%s\n' "${comment_out}${rebasecmd} $sha1 $rest" >>"$todo"
fi
fi
done
--
2.9.3
next prev parent reply other threads:[~2017-04-25 4:43 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-24 3:23 [PATCH] rebase -i: add config to abbreviate command name Liam Beguin
2017-04-24 10:26 ` Johannes Schindelin
2017-04-24 11:04 ` liam BEGUIN
2017-04-25 2:57 ` liam BEGUIN
2017-04-25 19:45 ` Johannes Schindelin
2017-04-25 22:58 ` liam BEGUIN
2017-04-24 12:29 ` Jeff King
2017-04-25 4:37 ` Liam Beguin [this message]
2017-04-25 6:29 ` [PATCH v2] rebase -i: add config to abbreviate command-names Junio C Hamano
2017-04-25 8:29 ` Jacob Keller
2017-04-25 23:34 ` liam Beguin
2017-04-26 2:09 ` Junio C Hamano
2017-04-25 9:57 ` Andreas Schwab
2017-04-25 13:59 ` Mike Rappazzo
2017-04-25 10:34 ` Philip Oakley
2017-04-25 4:43 ` Liam Beguin
2017-04-25 9:53 ` Andreas Schwab
2017-04-25 21:23 ` Johannes Schindelin
2017-04-25 22:56 ` liam BEGUIN
2017-04-25 20:08 ` Johannes Schindelin
2017-04-26 0:13 ` liam Beguin
2017-04-26 1:47 ` Jeff King
2017-04-26 3:59 ` Junio C Hamano
2017-04-26 9:25 ` Johannes Schindelin
2017-04-27 0:37 ` Junio C Hamano
2017-04-26 9:28 ` Johannes Schindelin
2017-04-26 15:24 ` Ævar Arnfjörð Bjarmason
2017-04-27 1:20 ` liam Beguin
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=20170425043742.15529-1-liambeguin@gmail.com \
--to=liambeguin@gmail.com \
--cc=Jhannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/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).