mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
Merge pull request #817 from bric3/adds-git-brv
Fixes #770: Adds git-brv
This commit is contained in:
commit
b708a8a4d3
12
Commands.md
12
Commands.md
|
|
@ -5,6 +5,7 @@
|
|||
- [`git back`](#git-back)
|
||||
- [`git bug`](#git-featurerefactorbugchore)
|
||||
- [`git bulk`](#git-bulk)
|
||||
- [`git brv`](#git-brv)
|
||||
- [`git changelog`](#git-changelog)
|
||||
- [`git chore`](#git-featurerefactorbugchore)
|
||||
- [`git clear`](#git-clear)
|
||||
|
|
@ -331,6 +332,17 @@ $ git bulk --removeworkspace personal
|
|||
$ git bulk --purge
|
||||
```
|
||||
|
||||
## git brv
|
||||
|
||||
Pretty listing of branches sorted by the date of their last commit.
|
||||
|
||||
```bash
|
||||
$ git brv
|
||||
2020-01-14 adds-git-brv fork/adds-git-brv 1ca0d76 Fixes #700: Adds git-brv
|
||||
2020-01-08 master origin/master 265b03e Merge pull request #816 from spacewander/git-sed-pathspec
|
||||
```
|
||||
|
||||
|
||||
## git repl
|
||||
|
||||
Git read-eval-print-loop. Lets you run `git` commands without typing 'git'.
|
||||
|
|
|
|||
62
bin/git-brv
Executable file
62
bin/git-brv
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env bash
|
||||
# A sorted prettier branch -vv
|
||||
|
||||
if ! (( BASH_VERSINFO[0] > 4 ||
|
||||
BASH_VERSINFO[0] == 4 && BASH_VERSINFO[1] >= 2 )); then
|
||||
printf >&2 'This script requires bash 4.2 or newer\n'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -t 1 ]]; then
|
||||
shopt -s checkwinsize
|
||||
COLUMNS=$(tput cols)
|
||||
color_branch_local=$(git config --get-color color.branch.local normal)
|
||||
color_branch_current=$(git config --get-color color.branch.current green)
|
||||
color_diff_commit=$(git config --get-color color.diff.commit yellow)
|
||||
color_branch_upstream=$(git config --get-color color.branch.upstream blue)
|
||||
reset=$(tput sgr0)
|
||||
fi
|
||||
|
||||
|
||||
declare -A upstream date hash message
|
||||
eval "$(
|
||||
git for-each-ref --format='upstream[%(refname:short)]=%(upstream:short)' \
|
||||
--shell 'refs/heads/**'
|
||||
)"
|
||||
|
||||
for b in "${!upstream[@]}"; do
|
||||
blen=${#b} ulen=${#upstream[$b]}
|
||||
(( bwidth = blen > bwidth ? blen : bwidth ))
|
||||
(( uwidth = ulen > uwidth ? ulen : uwidth ))
|
||||
IFS=/ read -r 'date[$b]' 'hash[$b]' 'message[$b]' < <(
|
||||
git log --no-walk=unsorted --format=%ct/%h/%s "$b" --
|
||||
)
|
||||
hlen=${#hash[$b]}
|
||||
(( hwidth = hlen > hwidth ? hlen : hwidth ))
|
||||
done
|
||||
|
||||
mapfile -t ordered < <(
|
||||
for b in "${!date[@]}"; do
|
||||
printf '%d\t%s\n' "${date[$b]}" "$b"
|
||||
done | sort -rn | cut -f2-
|
||||
)
|
||||
|
||||
current=$(git symbolic-ref -q --short HEAD)
|
||||
|
||||
for b in "${ordered[@]}"; do
|
||||
branch_color=$color_branch_local
|
||||
if [[ $b = "$current" ]]; then
|
||||
branch_color=$color_branch_current
|
||||
fi
|
||||
if [[ -t 1 ]]; then
|
||||
msg=${message[$b]:0:COLUMNS-bwidth-uwidth-hwidth-14}
|
||||
else
|
||||
msg=${message[$b]}
|
||||
fi
|
||||
printf '%(%Y-%m-%d)T %s%*s%s %s%*s%s %s%*s%s %s\n' \
|
||||
"${date[$b]}" \
|
||||
"$branch_color" "-$bwidth" "$b" "$reset" \
|
||||
"$color_branch_upstream" "-$uwidth" "${upstream[$b]}" "$reset" \
|
||||
"$color_diff_commit" "-$hwidth" "${hash[$b]}" "$reset" \
|
||||
"$msg"
|
||||
done
|
||||
|
|
@ -456,6 +456,7 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \
|
|||
back:'undo and stage latest commits' \
|
||||
bug:'create bug branch' \
|
||||
bulk:'run bulk commands' \
|
||||
brv:'list branches sorted by their last commit date'\
|
||||
changelog:'generate a changelog report' \
|
||||
chore:'create chore branch' \
|
||||
clear-soft:'soft clean up a repository' \
|
||||
|
|
|
|||
37
man/git-brv.1
Normal file
37
man/git-brv.1
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "GIT\-BRV" "1" "January 2020" "" "Git Extras"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fBgit\-brv\fR \- List branches sorted by their last commit date
|
||||
.
|
||||
.SH "SYNOPSIS"
|
||||
\fBgit\-brv\fR
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
Pretty listing of branches sorted by the date of their last commit\.
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
Simply run \fBgit brv\fR
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
$ git brv
|
||||
2020\-01\-14 adds\-git\-brv fork/adds\-git\-brv 1ca0d76 Fixes #700: Adds git\-brv
|
||||
2020\-01\-08 master origin/master 265b03e Merge pull request #816 from spacewander/git\-sed\-pathspec
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "AUTHOR"
|
||||
Written by Øsse <\fIhttps://github\.com/Osse\fR>
|
||||
.
|
||||
.SH "REPORTING BUGS"
|
||||
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
|
||||
.
|
||||
.SH "SEE ALSO"
|
||||
<\fIhttps://github\.com/tj/git\-extras\fR>
|
||||
114
man/git-brv.html
Normal file
114
man/git-brv.html
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
||||
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
||||
<title>git-brv(1) - List branches sorted by their last commit date</title>
|
||||
<style type='text/css' media='all'>
|
||||
/* style: man */
|
||||
body#manpage {margin:0}
|
||||
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
||||
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
||||
.mp h2 {margin:10px 0 0 0}
|
||||
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
||||
.mp h3 {margin:0 0 0 4ex}
|
||||
.mp dt {margin:0;clear:left}
|
||||
.mp dt.flush {float:left;width:8ex}
|
||||
.mp dd {margin:0 0 0 9ex}
|
||||
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
||||
.mp pre {margin-bottom:20px}
|
||||
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
||||
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
||||
.mp img {display:block;margin:auto}
|
||||
.mp h1.man-title {display:none}
|
||||
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
||||
.mp h2 {font-size:16px;line-height:1.25}
|
||||
.mp h1 {font-size:20px;line-height:2}
|
||||
.mp {text-align:justify;background:#fff}
|
||||
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
||||
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
||||
.mp u {text-decoration:underline}
|
||||
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
||||
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
||||
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
||||
.mp b.man-ref {font-weight:normal;color:#434241}
|
||||
.mp pre {padding:0 4ex}
|
||||
.mp pre code {font-weight:normal;color:#434241}
|
||||
.mp h2+pre,h3+pre {padding-left:0}
|
||||
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
||||
ol.man-decor {width:100%}
|
||||
ol.man-decor li.tl {text-align:left}
|
||||
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
||||
ol.man-decor li.tr {text-align:right;float:right}
|
||||
</style>
|
||||
</head>
|
||||
<!--
|
||||
The following styles are deprecated and will be removed at some point:
|
||||
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
||||
|
||||
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
||||
.man-navigation should be used instead.
|
||||
-->
|
||||
<body id='manpage'>
|
||||
<div class='mp' id='man'>
|
||||
|
||||
<div class='man-navigation' style='display:none'>
|
||||
<a href="#NAME">NAME</a>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a>
|
||||
<a href="#EXAMPLES">EXAMPLES</a>
|
||||
<a href="#AUTHOR">AUTHOR</a>
|
||||
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
|
||||
<a href="#SEE-ALSO">SEE ALSO</a>
|
||||
</div>
|
||||
|
||||
<ol class='man-decor man-head man head'>
|
||||
<li class='tl'>git-brv(1)</li>
|
||||
<li class='tc'>Git Extras</li>
|
||||
<li class='tr'>git-brv(1)</li>
|
||||
</ol>
|
||||
|
||||
<h2 id="NAME">NAME</h2>
|
||||
<p class="man-name">
|
||||
<code>git-brv</code> - <span class="man-whatis">List branches sorted by their last commit date</span>
|
||||
</p>
|
||||
|
||||
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
||||
|
||||
<p><code>git-brv</code></p>
|
||||
|
||||
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
||||
|
||||
<p> Pretty listing of branches sorted by the date of their last commit.</p>
|
||||
|
||||
<h2 id="EXAMPLES">EXAMPLES</h2>
|
||||
|
||||
<p> Simply run <code>git brv</code></p>
|
||||
|
||||
<pre><code>$ git brv
|
||||
2020-01-14 adds-git-brv fork/adds-git-brv 1ca0d76 Fixes #700: Adds git-brv
|
||||
2020-01-08 master origin/master 265b03e Merge pull request #816 from spacewander/git-sed-pathspec
|
||||
</code></pre>
|
||||
|
||||
<h2 id="AUTHOR">AUTHOR</h2>
|
||||
|
||||
<p>Written by Øsse <<a href="https://github.com/Osse" data-bare-link="true">https://github.com/Osse</a>></p>
|
||||
|
||||
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
|
||||
|
||||
<p><<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>></p>
|
||||
|
||||
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
||||
|
||||
<p><<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>></p>
|
||||
|
||||
|
||||
<ol class='man-decor man-foot man foot'>
|
||||
<li class='tl'></li>
|
||||
<li class='tc'>January 2020</li>
|
||||
<li class='tr'>git-brv(1)</li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
31
man/git-brv.md
Normal file
31
man/git-brv.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
git-brv(1) -- List branches sorted by their last commit date
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
`git-brv`
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Pretty listing of branches sorted by the date of their last commit.
|
||||
|
||||
## EXAMPLES
|
||||
|
||||
Simply run `git brv`
|
||||
|
||||
$ git brv
|
||||
2020-01-14 adds-git-brv fork/adds-git-brv 1ca0d76 Fixes #700: Adds git-brv
|
||||
2020-01-08 master origin/master 265b03e Merge pull request #816 from spacewander/git-sed-pathspec
|
||||
|
||||
|
||||
## AUTHOR
|
||||
|
||||
Written by Øsse <<https://github.com/Osse>>
|
||||
|
||||
## REPORTING BUGS
|
||||
|
||||
<<https://github.com/tj/git-extras/issues>>
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
<<https://github.com/tj/git-extras>>
|
||||
|
|
@ -25,6 +25,7 @@ git-extras(1) -- Awesome GIT utilities
|
|||
- **git-archive-file(1)** Export the current HEAD of the git repository to an archive
|
||||
- **git-authors(1)** Generate authors report
|
||||
- **git-back(1)** Undo and Stage latest commits
|
||||
- **git-brv(1)** List branches sorted by their last commit date
|
||||
- **git-bug(1)** Create bug branch
|
||||
- **git-bulk(1)** Run git commands on multiple repositories
|
||||
- **git-changelog(1)** Generate a changelog report
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ git-alias(1) git-alias
|
|||
git-archive-file(1) git-archive-file
|
||||
git-authors(1) git-authors
|
||||
git-back(1) git-back
|
||||
git-brv(1) git-brv
|
||||
git-bug(1) git-bug
|
||||
git-bulk(1) git-bulk
|
||||
git-changelog(1) git-changelog
|
||||
|
|
|
|||
Loading…
Reference in a new issue