On Wed, Apr 29, 2026 at 5:32 PM Branko Čibej <[email protected]> wrote:
> On 29. 4. 26 17:09, Timofei Zhakov wrote: > > On Tue, Apr 21, 2026 at 7:02 AM Branko Čibej <[email protected]> wrote: > >> On 20. 4. 26 18:40, Timofei Zhakov 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. >> >> >> >> You could do worse than take a page from Norton Commander for DOS. >> >> https://en.wikipedia.org/wiki/Norton_Commander >> >> It was THE file browsing/display/edit tool back in the day, and still a >> good example of how a TUI should be designed. >> >> -- Brane >> > > I believe it would show the file in an editor/viewer. It is a good user > experience, but also requires downloading the file which might be > complicated to implement. It also introduces an unbounded operation. > > > "Unbounded" in the sense that it can take a long time, or take a lot of > space? The file size is known in advance, and we have cancellation > callbacks with which we can implement timouts. Other than that: > Both of them I wish we could avoid. The complication would be in a sense that a whole text file viewer would need to be implemented. Also how does it deal with binary files? I guess special handling for svn:mime-type. It's doable though. We just need to decide how specifically those should be handled. > > svn_error_t * > svn_client_cat3(apr_hash_t **returned_props, > svn_stream_t *out, > const char *path_or_url, > const svn_opt_revision_t *peg_revision, > const svn_opt_revision_t *revision, > svn_boolean_t expand_keywords, > svn_client_ctx_t *ctx, > apr_pool_t *result_pool, > apr_pool_t *scratch_pool) > > > does everything you need. > > -- Brane > -- Timofei Zhakov

