git:alias:track: Shorten command

Shorten command by always printing a `,` as separator and
differentiating between remote and head refs by a leading slash.
This commit is contained in:
2021-11-17 01:23:33 +01:00
parent f11be2c1a9
commit 11dab14da3

View File

@@ -16,7 +16,7 @@
[alias] [alias]
root = rev-parse --show-toplevel root = rev-parse --show-toplevel
spull = "!__git_spull() { git pull \"$@\" && git submodule sync --recursive && git submodule update --init --recursive; }; __git_spull" spull = "!__git_spull() { git pull \"$@\" && git submodule sync --recursive && git submodule update --init --recursive; }; __git_spull"
track = "!track() { git for-each-ref --format='%(upstream)%(if)%(upstream)%(then),%(end)%(refname)' refs/heads refs/remotes | sort | sed -Ez 's:(refs/remotes/[^\\n]*)\\n\\1:\\1:g' | sed -E 's/(.*),(.*)/\\2,\\1/; s:(heads/[^,]*)$:\\1,:; s:^refs/remotes/:,:; s:refs/[^/]*/::g' | column -ts,; }; track" track = "!track() { git for-each-ref --format='%(upstream),%(refname)' refs/heads refs/remotes | sort -d | sed -Ez 's:,([^\\n]*)\\n\\1:\\1:g' | sed -E 's:(^|,)refs/(heads|remotes/):\\1:g; s:^,([^/].*):\\1,:; s:(.*),(.*):\\2,\\1:; s:^/::' | column -ts,; }; track"
[status] [status]
submodulesummary = true submodulesummary = true
[diff] [diff]