diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-21 12:34:02 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-21 12:34:02 +1200 |
commit | 739776b45771ae0c67a8b810ce224eba0de29737 (patch) | |
tree | b1aff78cbfc2da431d83d50de5fe92571dda102c | |
parent | Merge branch 'master' into openbsd (diff) | |
parent | Add some upstream checking to Git prompt (diff) | |
download | dotfiles-739776b45771ae0c67a8b810ce224eba0de29737.tar.gz dotfiles-739776b45771ae0c67a8b810ce224eba0de29737.zip |
Merge branch 'master' into openbsd
-rw-r--r-- | README.markdown | 8 | ||||
-rw-r--r-- | bash/bashrc.d/prompt.bash | 22 | ||||
-rw-r--r-- | git/gitconfig.m4 | 6 | ||||
-rw-r--r-- | man/man1/dmp.1 | 9 |
4 files changed, 34 insertions, 11 deletions
diff --git a/README.markdown b/README.markdown index d9e2567d..e17ddb68 100644 --- a/README.markdown +++ b/README.markdown @@ -141,10 +141,10 @@ A terminal session with my prompt looks something like this: It expands based on context to include these elements in this order: -* Whether in a Git repository if applicable, and punctuation to show whether - there are local modifications at a glance; Subversion support can also be - enabled (I need it at work), in which case a `git:` or `svn:` prefix is - added appropriately +* Whether in a Git repository if applicable, and punctuation to show + repository status including reference to upstreams at a glance. Subversion + support can also be enabled (I need it at work), in which case a `git:` or + `svn:` prefix is added appropriately * The number of running background jobs, if non-zero * The exit status of the last command, if non-zero diff --git a/bash/bashrc.d/prompt.bash b/bash/bashrc.d/prompt.bash index dca34928..1e8c568d 100644 --- a/bash/bashrc.d/prompt.bash +++ b/bash/bashrc.d/prompt.bash @@ -127,14 +127,30 @@ prompt() { # Collect symbols representing repository state local state + + # Upstream HEAD has commits after local HEAD; we're "behind" + (($(git rev-list --count 'HEAD..@{u}' 2>/dev/null) > 0)) && + state=${state}\< + + # Local HEAD has commits after upstream HEAD; we're "ahead" + (($(git rev-list --count '@{u}..HEAD' 2>/dev/null) > 0)) && + state=${state}\> + + # Tracked files are modified git diff-files --quiet || - state=${state}! + state=${state}\! + + # Changes are staged git diff-index --cached --quiet HEAD || - state=${state}+ + state=${state}\+ + + # There are some untracked and unignored files [[ -n $(git ls-files --others --exclude-standard) ]] && state=${state}\? + + # There are stashed changes git rev-parse --quiet --verify refs/stash >/dev/null && - state=${state}^ + state=${state}\^ # Print the status in brackets; add a git: prefix only if there # might be another VCS prompt (because PROMPT_VCS is set) diff --git a/git/gitconfig.m4 b/git/gitconfig.m4 index 62c58f39..d1aac5e8 100644 --- a/git/gitconfig.m4 +++ b/git/gitconfig.m4 @@ -17,11 +17,16 @@ compression = 9 [diff] + algorithm = patience tool = vimdiff [difftool] prompt = false +[fetch] + output = compact + prune = true + [grep] extendRegexp = true lineNumber = true @@ -45,6 +50,7 @@ [status] short = true + showUntrackedFiles = all [user] name = DOTFILES_NAME diff --git a/man/man1/dmp.1 b/man/man1/dmp.1 index e9b5dc4f..d5883afc 100644 --- a/man/man1/dmp.1 +++ b/man/man1/dmp.1 @@ -5,14 +5,15 @@ .SH SYNOPSIS .B dmp .br -.B dmp 25 +.B dmp +25 .SH DESCRIPTION .B dmp applies dmenu(1) to pick a password entry from a pass(1) store and put it into -the X CLIPBOARD for up to 10 seconds. +the X CLIPBOARD for a period of time, defaulting to 10 seconds, after which +xsel(1) will remove it from the clipboard. .P -An optional timeout in seconds can be applied, after which xsel(1) will remove -the password from the clipboard. This timeout defaults to 10 seconds. +The timeout in seconds can be specified as an optional argument. .SH SEE ALSO dmenu(1), pass(1), xsel(1) .SH AUTHOR |