Commit graph

109 commits

Author SHA1 Message Date
Carlo Sala
895ce66630
fix 2024-03-07 14:33:51 +01:00
Carlo Sala
11195dbe04
fix(async): only add precmd on the first prompt call 2024-03-06 11:17:37 +01:00
Marc Cornellà
7efb6963ca
feat(async)!: implement async prompt API and apply to git prompt
BREAKING CHANGE: the `git_prompt_info` prompt function has been
reworked by default to use the new async prompt feature. If you're
experiencing issues see #12257.
2024-03-04 21:24:04 +01:00
Banst
6dfc9b960f
feat(git): display tag in git-prompt when possible (#11318)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2022-11-08 09:34:13 +01:00
Marc Cornellà
dfee71c773
Revert "fix(lib): don't return clean with hide-dirty=1 in parse_git_dirty" (#10927) 2022-05-12 18:25:02 +02:00
Will LE
4674384d1a
fix(lib): don't return clean with hide-dirty=1 in parse_git_dirty (#10897) 2022-05-12 11:31:00 +02:00
Marc Cornellà
304af0a577
fix(lib): quote % in git_remote_status 2022-01-03 13:50:50 +01:00
Marc Cornellà
428f815169
fix(lib): %-quote git prompt functions 2021-12-13 11:26:55 +01:00
Kevin Burke
e86c6f5e7f
style: use -n flag in head and tail commands (#10391)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-11-09 09:04:10 +01:00
Pooya Vahidi
07cdd7a539
fix(lib): fix status exit code check in git_prompt_status (#10275) 2021-10-09 12:02:49 +02:00
Marc Cornellà
8b37f817c2 fix(lib): use -N syntax in head and tail to support Solaris (#6391)
Closes #6391

Co-authored-by: Sergey Mashkov <cy6erGn0m@gmail.com>
2021-01-16 18:59:24 +01:00
Seamile
88ffc2f666
fix(lib): mark changes as MODIFIED on 'MM' in git_prompt_status (#9552)
In the output of `git status -sb`, 'MM' indicates there are both added and modified changes.
This change marks that case as MODIFIED instead of ADDED.
2021-01-02 11:57:06 +01:00
Marc Cornellà
28265812f8 chore!: notify breaking change in git_prompt_info
BREAKING CHANGE: the git config option to skip running `git_prompt_info` has changed from `oh-my-zsh.hide-status` to `oh-my-zsh.hide-info` (#9188).
2020-12-10 20:48:40 +01:00
Bruno Borges
2f39c68ab0
feat(lib): show upstream branch in git_prompt_info (#9188)
Show the remote branch the local branch is tracking if `ZSH_THEME_GIT_SHOW_UPSTREAM`
is set, like so: `ZSH_THEME_GIT_SHOW_UPSTREAM=1`.

Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-10 20:44:08 +01:00
Marc Cornellà
6e7b861675 lib: fix regex bug in git_prompt_status
Fixes #9326
2020-10-10 19:14:30 +02:00
Marc Cornellà
865f6572d5 Fix performance drop of iterating over lines and other stuff
- Fix 'STASHED' key and unsupported syntax in 5.0.2
- Optimise `if` statement to make it more idiomatic.
2020-10-09 13:44:50 +02:00
Billy Conn
45a954cb0f git_prompt_status now uses hash lookups instead of multiple greps 2020-10-09 13:24:37 +02:00
Michał Dębski
297238b739 lib: hide git_prompt_status when hide-status is set
Closes #4912
Closes #5137
Closes #8071
2020-10-09 13:14:44 +02:00
Robert Estelle
1c58a746af
lib: safety fix and speed-ups for git.zsh prompt functions (#7804) 2020-07-06 17:31:40 +02:00
Patrick Moore
e606ac7051
Handle unset variables in various parts of the codebase (#8944)
DISABLE_UNTRACKED_FILES_DIRTY, DISABLE_AUTO_TITLE, GIT_STATUS_IGNORE_SUBMODULES are not set
Handle these variables not being set with conditional access.

If the user has set -u option to report attempts to use undeclared / unassigned variable, accessing the variables needs to be conditional.
2020-06-30 18:54:27 +02:00
Evan Chiu
1c300d3a76 lib: add git function to determine repository name (#4989)
Closes #4989

Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-02-10 21:11:31 +01:00
Marc Cornellà
1546e1226a Fix badly resolved rebase conflict 2019-11-06 19:46:52 +01:00
Marc Cornellà
b7e37cea90 Clean up ignore submodules logic in parse_git_dirty 2019-11-06 19:41:13 +01:00
Wang Guan
7cc3a32bff Add an option about git submodules to ignore
$GIT_STATUS_IGNORE_SUBMODULES can be used to specify handling of
submodules. It can be:
not set : ignore dirty submodules (this was default zsh behavior)
"git"   : do not use "--ignore-submodules" and let git choose,
          this obeys setting in .gitmodules
other   : comes into "--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
2019-11-06 19:39:17 +01:00
Marc Cornellà
5911aea46c
lib: stop detecting git versions prior to 1.7.2
The 1.7.2 release was published in July 2010 [1]. It's about time to stop
supporting older versions.

Fixes #4583

[1] https://github.com/git/git/releases/tag/v1.7.2
2019-04-09 20:38:13 +02:00
Marc Cornellà
f75d096c1a
lib: small change to git_compare_version
Fixes #7118
2018-09-08 21:35:03 +02:00
Jacopo De Simoi
ccd02866f6 Fix git_commits_{ahead,before} when no upstream branch is defined (#6658)
If @{u} is not defined, git rev-list will give an error; redirect
to stderr the error and deal with this case in what follows.
2018-04-15 18:44:48 +02:00
Kimberly Zick
2b6c502aa5 Add match for MM (result of git commit -p on a single changed file) to git_prompt_status (#3632) 2018-01-22 19:14:05 -08:00
catull
d792b1114c With zsh 5.4 a simple "local FLAGS" meant as an array must be explicitly declared so. This fix avoids the dreaded "parse_git_dirty:3: FLAGS: attempt to assign array value to non-array". (#6414) 2017-11-14 06:36:53 -08:00
Yuichi Tanikawa
27fff27253 Fix git_prompt_status() not showing ahead/behind/diverged status correctly (#5388) 2016-09-08 00:23:04 +02:00
Marc Cornellà
71201ffd67 git: output nothing when no commits ahead or behind
This fixes old git_commits_ahead behavior and changes git_commits_behind
to have the same behavior.

Fixes #5355
2016-09-05 11:22:48 +02:00
Steven
61981951b1 Updated git_commits_ahead function (#5247)
* Function wasn't returning correct value
* Updated underlying git command
* Kept echo command from previous function for backwards compatibility
* Kept function consistent with git_commits_behind
2016-08-01 17:48:46 +02:00
Steven
96a2092e37 lib/git.zsh: Added git_commits_behind function (#4450)
* Added git_commits_behind function
* Added 'command' to git_commits_behind function
* git_commits_behind code review changes
2016-07-15 11:05:39 +02:00
Aesop Wolf
69e1506ad9 Add git user profile functions for prompt display 2016-03-31 14:16:46 -07:00
Michele Bologna
87f8251388 Re-added $ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE
Re-added $ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE variable which was removed in 9f55213
2016-01-13 15:36:59 +01:00
Marc Cornellà
0842384987 Put local var declaration in its own line in lib/git.zsh
In places, the local statement will override the exit code and the written
command won't have the effect intended when it was written.

For example, when it's not inside a git repo the exit code won't be true,
but the local statement will make it true regardless. See #4708.
2015-12-17 18:37:49 +01:00
Andrew Janke
9f552130bd Move current_branch() from git plugin to core lib/git.zsh
Fixes #4085: core -> plugin dependency issue.
Rename it to git_current_branch for clarity that it's git-specific.
Update all plugins that were calling it to use new name.
Fix variable leaks by making more variables in lib/git.zsh local.
Have lib/git.zsh use [[ ]] instead of [ ] everywhere.
2015-12-14 20:28:37 -05:00
Michele Bologna
12e99b5334 fix indentation 2015-09-23 11:14:14 +02:00
Michele Bologna
5323954c98 Uniform git prompt equal remote
Uniform git prompt equal remote to all others prompts, setting the correct symbol
(if applicable) to $git_remote_status, instead of echoing it.

It also solves the problem pointed out in #3911
2015-09-23 10:52:24 +02:00
Michele Bologna
01e355fb1e In addition to the already existing variables ZSH_THEME_GIT_PROMPT for behind,
ahead and diverged remote, I added ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE.
2015-06-15 10:15:22 +02:00
Adam Lindberg
2d40cc0bb3 Add git_prompt_behind and git_prompt_exists
This adds two new theme functions for git:
* `git_prompt_behind` works in a identical fashion to `git_prompt_ahead`
  and will output a format variable (`ZSH_THEME_GIT_PROMPT_BEHIND`) if
  the branch is behind.
* `git_prompt_remote` will output one format variable if the branch
  exists on remote (`ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS`), and another
  if the branch is unpublished (`ZSH_THEME_GIT_PROMPT_REMOTE_MISSING`).

The old `git_prompt_ahead` has been changed. Using git log is subject
to formatting in .gitconfig, which can be overridden and will break
this function. Relying on rev-list is much more stable.
2015-06-10 14:36:55 +02:00
leif.hanack
70c4a27fd6 Added a possibility to display the remote branch and the number of commits you are ahead or behind 2015-06-10 14:36:54 +02:00
Robby Russell
eced76e0fd Merge pull request #3326 from DanielFGray/master
ignore any grep aliases that might be defined
2014-12-14 16:32:11 -08:00
Marc Cornellà
a301f567e3 Switch back to oh-my-zsh.hide-dirty setting again
Commit 81004dfaba reverted the change
in 9b811fb625 when editing the merge
conflict from #2928.

This commit fixes that so that we don't make the same mistake again.

First seen in http://git.io/Cdaj5Q
2014-11-19 18:40:18 +01:00
DanielFGray
00ec11d3c0 ignore any grep aliases that might be defined 2014-11-16 02:47:35 -06:00
Robby Russell
81004dfaba 2928 merge conflict 2014-11-06 09:24:00 -08:00
Robby Russell
160abc9a8d Merge pull request #2323 from michaelorr/slow-git-fix
Renaming config for parse_git_dirty() to avoid collision
2014-11-06 09:15:00 -08:00
Robby Russell
01da53e10f Merge pull request #2828 from r3dDoX/master
removed a hardcoded 'origin' in git.zsh and added new function for number of commits ahead of remote
2014-07-15 07:38:55 -07:00
Simon Buchan
2927ce3714 Fix POST_1_7_2_GIT check for parse_git_dirty submodules. 2014-07-03 14:45:49 +12:00
Simon Buchan
676fb4e420 Fix parse_git_dirty() when status.branch is set. 2014-07-03 14:38:19 +12:00