Skip to content
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

Fish SVN prompt regression in 3.1 #6715

Closed
ypnos opened this issue Mar 5, 2020 · 2 comments · Fixed by #7278
Closed

Fish SVN prompt regression in 3.1 #6715

ypnos opened this issue Mar 5, 2020 · 2 comments · Fixed by #7278
Labels
bug Something that's not working as intended
Milestone

Comments

@ypnos
Copy link

ypnos commented Mar 5, 2020

In version 3.1, fish_svn_prompt does not work.

Expected:

⮞ fish -v
fish, version 3.0.2
⮞ __fish_svn_prompt
(26786|MX?||||X||)⏎

Observed:

⮞ fish -v
fish, version 3.1.0
⮞ fish_svn_prompt
(26786|||||||)⏎

I tried with different locations/repos and the result is always the same after the revision number.
It is also very slow for large subversion repositories (not the svn status retrieval but the processing in the loop for each column). I know you wouldn't expect large svn repositories in the wild in 2020, but boy do they exist.

@faho
Copy link
Member

faho commented Mar 5, 2020

It is also very slow for large subversion repositories

Unfortunately that can't really be helped - svn is just that slow, and displaying simpler information (the svn prompt is the equivalent of the "informative" git prompt, it scans all files in the entire repo) doesn't make sense.

So we're disabling it by default in 3.1.1 - #6681


Unfortunately I don't have an svn repo to test, so I'd need some of your help.

For one, what does set | grep __fish_svn_prompt_char print?

What is the output of

command svn status | sed -e 's=^Summary of conflicts.*==' -e 's=^  Text conflicts.*==' -e 's=^  Property conflicts.*==' -e 's=^  Tree conflicts.*==' -e 's=.*incoming .* upon update.*==' | cut -c 1-7

and

functions -D fish_svn_prompt

?

@faho
Copy link
Member

faho commented Mar 15, 2020

Sorry, without more information there's nothing I can do. Closing.

@faho faho closed this as completed Mar 15, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 13, 2020
@zanchey zanchey reopened this Aug 25, 2020
@fish-shell fish-shell unlocked this conversation Aug 25, 2020
faho pushed a commit that referenced this issue Aug 26, 2020
* fix Subversion prompt

- after switching to "string match", some SVN status symbols need
  proper escaping
- the __fish_svn_prompt_flag_names list was missing
  "versioned_obstructed" and was therefore not in line with
  the symbols from __fish_svn_prompt_chars
- when checking for individual SVN status symbols, use
  "string match -e" to handle the case where multiple different
  symbols appear in one status column
- use "sort -u" before merging all symbols from a column into
  one line

Fixes #6715

* use regex for SVN status matching

Using regex matching will prevent different match behaviour
depending on qmark-noglob feature.
Also, counting the resulting matches is unnecessary.

* use list instead of string for SVN status

Make $column_status a list be not removing newlines from SVN status
output. This makes checking for the individual status types within
a column easier because it doesn't require regex matching.

* added quotes for string length test (-n)
@zanchey zanchey added bug Something that's not working as intended and removed needs more info labels Aug 27, 2020
@zanchey zanchey added this to the fish 3.2.0 milestone Aug 27, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 25, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something that's not working as intended
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants