broot icon indicating copy to clipboard operation
broot copied to clipboard

I need testers - please register

Open Canop opened this issue 5 years ago • 63 comments

I need testers to avoid distributing broken new versions, to tune and improve new features, and to ensure there's no regression, especially on platforms I can't test on.

To test, you need:

  • to know your way in git in order to fetch from upstream or change branches
  • to be able to compile from source
  • to be able to come to the chat (https://miaou.dystroy.org/3)

If you're willing to help, please answer with your platform, watch this issue, and, on announcements if you have the time, test and tell me in the chat if it's OK or not, or what should be fixed or improved. If people answer here, I'll announce the dangerous commits or branches in this issue.

Canop avatar Jan 25 '20 15:01 Canop

Right now I'd need people to test the git branch. image

Canop avatar Jan 26 '20 11:01 Canop

I'm in! Installed the git branch. My setup:

  • Machine: Macbook Pro 16' 2019
  • OS: MacOS Catalina (10.15.1, will keep it updated)
  • Terminal: iTerm2 3.3.7
  • ShelL: ZSH (5.7.1) + OhMyZSH

joepio avatar Jan 27 '20 11:01 joepio

I'm not a heavy user, but I can try to help

  • Os: Windows 10

sigfriedmcwild avatar Jan 27 '20 19:01 sigfriedmcwild

I just pushed a testable version on the "git" branch. The main changes are

  • leveraging libgit2 to handle finding what files to ignore (mostly to handle corner cases like the global .gitignore)
  • simplifying the git_ignore toggle to only 2 states

I'm a little disappointed by the slowness of libgit2. I'd be interested by your feeling, maybe your speed comparisons. And as the compilation is a little more complicated, I'd like a confirmation there's no problem when compiling directly on mac or windows.

Canop avatar Jan 27 '20 21:01 Canop

I changed a lot of things in the git ignoring system. I'd like to have confirmation everything looks OK.

Canop avatar Jan 28 '20 18:01 Canop

I can also help:

  • Machine: MacBook Pro (15-inch, 2018)
  • OS: MacOS Mojave (10.14.6)
  • Terminal: iTerm2 (3.3.7) + Terminal (2.9.5)
  • Shell: ZSH (5.3)

If needed I can also boot Windows 10 on the same machine.

pierd avatar Jan 29 '20 09:01 pierd

Question to testers: what should in your opinion be the value of the git status display toggle ? Should the status display be enabled by default ?

Canop avatar Jan 29 '20 12:01 Canop

Personally I don't see much value in this feature (as in I wouldn't really use it). Since I have all my repositories in one directory, I would rather use some special mode that would show this information in a separate column (like --sizes).

BTW I tried using it with some big repositories and I've noticed that it blocks - there's a noticeable pause when entering them. Version built from master doesn't have this problem.

pierd avatar Jan 29 '20 21:01 pierd

I pushed a new commit which makes the git_file_info not the default but also add more measurement points. I'd appreciate to have the DEBUG mode log of broot when it pauses entering a big repository so that I can see what exactly is slow (and maybe run this operation in a background thread).

Canop avatar Jan 30 '20 07:01 Canop

Ok, I gave it a go with entering https://github.com/torvalds/linux in case you would like to test locally (previously I was testing on some private repos that I can't share). My test:

  1. Run broot providing directory containing 2 repos: broot and linux kernel.
  2. Go down to linux kernel repo.
  3. Enter it.
  4. Quit with :q.

First run is with a simple build from your branch (git), here are the logs: no-git-dev.log

Second with turning on show_git_file_info in code:

diff --git a/src/tree_options.rs b/src/tree_options.rs
index 77b0f5f..c5ee013 100644
--- a/src/tree_options.rs
+++ b/src/tree_options.rs
@@ -62,7 +62,7 @@ impl Default for TreeOptions {
             only_folders: false,
             show_sizes: false,
             show_dates: false,
-            show_git_file_info: false,
+            show_git_file_info: true,
             trim_root: true,
             show_permissions: false,
             respect_git_ignore: true,

Logs: git-dev.log

I think these 2 are the culprits:

20:52:23 [DEBUG] (1) broot::git_status: get diff and stats took 1.600527973s
20:52:28 [DEBUG] (1) broot::tree_build::builder: computing git file infos took 7.419583807s

pierd avatar Jan 30 '20 21:01 pierd

I've merged the git branch into master. But now the git stats computation is done in a background thread and doesn't slow navigation or display. Git information aren't displayed by default: the :gf toggle must be used

Canop avatar Feb 03 '20 14:02 Canop

I just published the 0.13.6 version which ignores diacritics when searching. As the impact may be important, I'd be happy to hear from users on this one (here or on https://miaou.dystroy.org/3)

Canop avatar Apr 08 '20 08:04 Canop

I just merged the "panels" branch into master. The feature still needs more work but it starts to be usable (and the rest works as before). I'd really like to have some reactions to this whole set of features. I created an issue for that ( https://github.com/Canop/broot/issues/230 ) but the initial discussion could also occur on miaou. As I rewrote most of broot, it's very possible there were regressions, please tell me if you found one.

Canop avatar May 17 '20 17:05 Canop

The new-pattern branch is still a work in progress but is testable and I'd welcome opinions.

In short it introduce a new pattern syntax (with a breaking change) and a few new capabilities.

With the default settings, here's how you search:

name exemple query example match explanation
fuzzy name abc abac.txt search for "abc" in a fuzzy way in filenames
regex name /abc abc.txt search for the regular expression abc in filenames ("exact search")
regex name /[yz]{3} fuzzy.rs search for the regular expression [yz]{3} in filenames
regex name /abc/i aBc.txt search for the regular expression abc with flag i in filenames
fuzzy path p/abc a/bac.txt search for "abc" in a fuzzy way in sub-paths from root
regex path rp/abc e/abac.txt search for the "abc" regex in sub-paths from root

(other types of search should come)

The search syntax is thus globally

<mode><pattern>[/<flags>]

(a verb invocation can follow as before)

The mode is either nothing (fuzzy name), just a slash (regex name) or some letters followed by a slash.

It's also possible to redefine the mode mappings if you want, for example if you usually prefer to do exact searches:

[search-modes]
"<empty>" = "regex name"
"/" = "fuzzy path"
"z/" = "regex path"

I said this was a breaking change because I can no longer decide a search is a regex just because it finishes by a /. abc/ is no longer a regex search. I have pondered alternative syntaxes (some in issues) but none was natural or easy to explain enough while the / character is frequently used for searches.

Canop avatar Jun 04 '20 21:06 Canop

I just released broot 0.15.0

One of the interesting new features is the search on file content (prefix the pattern with c/).

It looks like this full text search is quite fast on linux but I'd be interested in confirmations (or infirmations). For a comparison with other full text search tools it's possible to run commands like

time br -c "c/memmap;:pp"

or

time br -c "c/memmap;:total_search;:pt"

(the second one to get all matching files)

Canop avatar Jun 12 '20 09:06 Canop

Broot looks complete to me. If no problem is found I might label the 0.18 as 1.0 in a few days.

Canop avatar Jun 26 '20 18:06 Canop

There's currently a new branch: preview_panel. When in this branch, if you do ctrl-right when a file is selected, you get a synchronized preview panel

image

It's still a preliminary version. It's not yet time for you to test but if you're interested you might come and chat

Canop avatar Jul 13 '20 21:07 Canop

I can test on Windows (both powershell and WSL) and, in about a month, on Mac

Lucretiel avatar Aug 12 '20 18:08 Lucretiel

I made an automated testing script here, check it out - https://github.com/asdf8dfafjk/broot_testing

asdf8dfafjk avatar Aug 18 '20 14:08 asdf8dfafjk

Since version 0.20.0, broot is in release candidate mode, meaning I'm only fixing bugs (when I found some) and not adding any feature. When I feel confident enough, I'll tag the current version as 1.0.

Canop avatar Aug 20 '20 06:08 Canop

The "clipboard" feature, which must be activated at compilation, brings two verbs:

  • :input_paste, mapped to ctrl-v, which inserts the clipboard content into the input
  • :copy_path, mapped to alt-c, which puts the selected path in the clipboard

I'd need dev and user feedback regarding the compilation on your platform and your user experience.

Canop avatar Sep 09 '20 16:09 Canop

Just tested it; ran into build trouble. Can you recommend which xcb libraries to install specifically? There's no libxcb (at least not in apt), and it wasn't clear which other ones to pick.

Lucretiel avatar Sep 10 '20 01:09 Lucretiel

https://github.com/aweinstock314/rust-clipboard => sudo apt-get install xorg-dev

Stargateur avatar Sep 10 '20 01:09 Stargateur

Ah, thank you; I dug too deep too quickly in the dependency tree.

Lucretiel avatar Sep 10 '20 01:09 Lucretiel

Well, that's still useful: I must document that building on linux involves this step. And it means it will be harder to incorporate this feature in an application that people expect to install with cargo.

Canop avatar Sep 10 '20 05:09 Canop

I also needed to install:

libxcb-render0-dev
libxcb-shape0-dev
libxcb-xfixes0-dev

Additionally, I played around with it some more and I believe that xorg-dev is not fully needed, but it brings in libxcb1-dev, which fills the -lxcb requirement. So the actual list* is:

libxcb1-dev
libxcb-render0-dev
libxcb-shape0-dev
libxcb-xfixes0-dev

* at least, on my Ubuntu instance, using apt. Other package managers might have different names.

Lucretiel avatar Sep 10 '20 14:09 Lucretiel

The filesystems branch has a set of filesystem related features, only active on unix.

I'd need people to check it's OK both in compilation and in usage, even on non unix platform.

Here are two pictures.

When doing :fs :

image

When launching broot in whale-spotting mode (ie br -w):

image

Canop avatar Oct 21 '20 19:10 Canop

Thanks to @asdf8dfafjk it's possible to display icons in the tree

See https://dystroy.org/broot/icons/

I'd appreciate tests of this feature before I merge the icons branch into master.

Canop avatar Nov 17 '20 20:11 Canop

machines: assembled pc (amd ryzen), dell latitude 7490 operating systems: linux (manjaro), nixos terminal: alacritty, st shell: zsh+starship

Broot has almost creeped into my development workflow over the past month without intention (and I think that speaks to how powerful a tool it is) - now I always have tab#0 on tmux running an active broot session while working, for the easiest way to explore the code base. It subsumes uses of skim/fzf/dust/lsd/exa for me right now.

aniketd avatar Jun 14 '21 17:06 aniketd

Count me in!

Platforms: NixOS, MacOS (Big Sur), Windows 10 w/WSL

I'm going to start looking at issues as well to help with PR's. I've been looking for an open source project to commit to, and considering I've been using broot as of late this seems like a great fit.

adriansosa avatar Nov 08 '21 23:11 adriansosa