-
Notifications
You must be signed in to change notification settings - Fork 395
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Active Fork with Fixes and New Features #123
Comments
Thanks @starcraftman for taking the initiative and getting a (hopefully) official fork going! |
I'm glad you and others like it. Unfortunately, it is hard when the main maintainer goes inactive due to git's decentralized nature and github favouring the original. hopefully users find it. The python version works well now and has feature parity with bash-git-prompt, PRs are in progress to make parity with Haskell version and a newer CPP version (I can maintain the latter on my own, unlike the former). I'll update above when they merge. These are both roughly an order of magnitude faster than Most portable solution would probably be a (Z)sh reimplementation but I can't really be bothered. Too much text processing and conditionals. |
@olivierverdier With best regards an thanks, |
A similar solution written in Rust: https://github.com/Streetwalrus/gitprompt-rs |
I wrote another similar solution using only shell scripting/awk scripting: https://github.com/woefe/git-prompt.zsh. From my tests, this is quite a bit faster than using Python. The Rust prompt mentioned above is even faster than my prompt. However, when you are not in a git repo my prompt is still faster. And the Rust prompt is in my opinion harder to customize. You will have to patch the Rust source and recompile it, if you want to customize it. |
- main project installed via homebrew appears to not be maintained - add instructions to clone done fork, which has bug fixes and feature to show stash - create .gitignore to not add zsh-git-prompt repo to source control - see this issue for more info: olivierverdier/zsh-git-prompt#123
My Active Fork
Hello. I am writing this in the hope that people who use this and want fixes/new features will follow me over to my fork. It does not seem like Olivier will resume maintenance (or select another maintainer) so I think this is our only recourse to prevent duplication. I've made made quite substantial fixes/improvements listed below. I'll try to be an active maintainer. I'm just trying to avoid the problem we are currently having with 248 other forks, probably all making the same repetitive patches to fix git 2.17 or implement small new features. If you like my fork and want to help promote it's visibility, please star it. I don't think there's anything else to do to promote it, Google will continue pointing to the main.
I will eventually go through all the old issues here and the PRs and see if there's anything I wish to put onto my fork. Naturally anyone's issues/PRs are welcome. I'll try to get to it as I can.
The only concern is that I don't write Haskell so if others will be so kind as to provide PRs that would be great. If there's any questions, we can discuss Haskell changes needed on my fork's ongoing issue for that. I won't let Haskell gitstatus get broken, but it may lag behind in features until a PR comes unfortunately.
Below I've reposted part of my wiki page discussing my fixes/improvements over the current olivierverdier repo. You can of course always see my commit history and the code for the most accurate description.
Hope you guys enjoy! Remember please star.
Notable Changes
Complete rewrite of
gitstatus.py
for readability and improved performance. Notably eliminated all subprocess calls, now parse STDIN.Complete unit testing of
gitstatus.py
. Standard python testing setup of: tox + pytest + flake8 + pylint.Travis tests against supported python versions: 2.7, 3.4, 3.5, 3.6.
Compatability with git 2.17+ (common recurring problem noted on main repo)
Added ability to set python interpreter used to run
gitstatus.py
,ZSH_GIT_PROMPT_PYBIN=/path/to/interp
Python only features (until Haskell patched)
Added indicator to show # of stashes on the repository.
Added indicator to show if the branch has any tracking set (i.e. it is assumed local if not tracking). It is possible you pushed it without
-u
and thus no tracking set.Added option to see the upstream remote currently tracked. You may choose to either always see
remote/branch
or just seeremote
when the branch matches the local one.Merging indicator appears any time you are merging.
Rebase indicator appears during rebases, shows the current and total number of commits to work through.
Due to the rewrite there may be regressions or changes in behaviour, if you encounter them please make an issue. If you want to help and have an idea, make a PR by all means.
The text was updated successfully, but these errors were encountered: