On Wed, Apr 22, 2026 at 5:59 AM Nathan Hartman <[email protected]>
wrote:

> On Mon, Apr 20, 2026 at 12:41 PM Timofei Zhakov <[email protected]> wrote:
>
>> Hello all,
>>
>> Thanks to everyone following svnbrowse.
>>
>> I believe this project has come to a state of a decently stable
>> milestone. It
>> is capable for general browsing around in a tree and overall interactivity
>> feels good.
>>
>> However, there are a few things which need some further attention.
>>
>> 1. Opening a file would crash the entire application; I don't know what
>> the
>>    best way to display them would be.
>>
>> 2. Handling of --revision and @pegrevision doesn't handle certain cases
>>    correctly. The condition that checks and fallbacks to HEAD via
>>    SVN_INVALID_REVNUM (passed to svn_ra_get_dir) misbehaves in certain
>> cases (for
>>    example, 'svnbrowse ./path/in/wc -r head' does not work).
>>
>> 3. When launched from a colourless terminal (or with a limited colour
>> support),
>>    the UI elements are displayed wrongly. This will occur primarily in
>> legacy
>>    terminals.
>>
>> 4. No cancellation is yet implemented. Would be more like a fancy
>> improvement
>>    and it doesn't really affect any user experience.
>>
>> 5. There is a funny segfault (to null dereference) when a node with no
>> author
>>    is opened.
>>
>> 6. Implement non-pkgconfig search of a curses library (via find_package).
>>
>> 7. Include in autoconf/configure build.
>>
>> 8. Print path to stdout when exiting [2].
>>
>> I would really appreciate help with 1 (I'm out of ideas about the user
>> experience to deal with files), 2 (I have tried to find the correct way
>> to go
>> with. Somebody more experienced than me should step ahead here), and 7
>> (zero clue how autoconf works). The rest would be pretty obvious to
>> tackle.
>>
>> Of course if you can run a dev build, I'm happy to hear some feedback.
>>
>> Also I start thinking about what the target use could be (besides
>> wandering around in
>> directories which is not that useful on its own). I believe it might
>> sometimes
>> come in handy for scripts to ask a user to pick a path.
>>
>> For example, we might target on doing something like this:
>>
>> [[[
>> $ svn checkout $(svnbrowse https://svn.apache.org/repos/asf)
>>
>> # the user picks a path and quits the app (enter does not work because it
>> the
>> # opens selected directory)
>> # it is printed to stdout
>> # $() puts it into an argument [1] and executes svn as usual
>> ]]]
>>
>> As another application we currently have to type full branch URL when
>> switching/merging (or use ^/ syntax which is still pretty much the same
>> thing
>> because one must remember its location in a repository). It could be
>> either
>> 'svn merge' and 'svn switch' themselves launch the browser (most
>> likely they would
>> do that in the same process) or it could be a simple shell alias.
>>
>> Not really another application, but a different way to describe that
>> chunk of
>> script from above.
>>
>> But... This on the other hand might be a bad idea; A tool starts doing
>> multiple
>> things at the same time. Instead of first deciding on the operation's
>> scope and
>> then executing the actions, it would do both at the same time. If let's
>> say
>> during a checkout, a user picks location and expects it to work, but then
>> they
>> realise that suddenly the internet connection just died so checkout
>> failed (or
>> name any other reason), all the effort required to pick that location
>> will be
>> lost. When it's a manually typed shell command, one might simply go back
>> and retry/edit wrong part.
>>
>> [1] I did not test it but I'm pretty sure this is how shell works; it
>> should
>>     be the thing as let's say /bin/basename.
>>
>> [2] it's a bit tricky to use stdout as right now this is the channel used
>> for
>>     the interactive UI. There should be a some way to force curses to use
>>     stderr instead which solves the issues.
>>
>> --
>> Timofei Zhakov
>>
>
> I think these items should be tracked (each one separately) in the issue
> tracker. (If you'd like, I'm willing to add them there.)
>
>
+1, it's a good point. It would help us keep things organised.

If you'd like to do it, go ahead!

-- 
Timofei Zhakov

Reply via email to