[darcs-users] Repository browser (was: Moving toward 1.0)

Kevin Smith yarcs at qualitycode.com
Tue Nov 25 03:13:03 UTC 2003

David Roundy wrote:
> On Sun, Nov 23, 2003 at 03:09:00PM -0500, Sean E. Russell wrote:
>>Can you define the requirements for this browsing system?  What do you
>>want it to be able to do... 

I imagine this as an interactive app, where you are always viewing your 
repository as it existed right after a particular patch.

At the bottom (or top?), there would be a box displaying the latest 
patch that has been applied to the tree you are viewing. The patch name 
and log would appear in that section, and there would be a button to 
bring up a detailed view of the patch itself.

There would be buttons to shift your view to the next or previous patch, 
to the next or previous tag, and to the earliest tree (probably empty), 
or latest tree (the current head/tip).

In addition to that, the UI might have a tree on the left, and a text 
view pane on the right. Selecting a file in the tree would display it in 
the view pane.

There would be a command to export that tree to some other directory, 
and whatever other commands would be helpful.

 > 5) A search capability would be great:  searching for patches
 > that modified a given file, for example.

Personally, I want to get a history for a given file, which is basically 
the same thing. Should be doable.

So, on to the real point of this message...

I have been "secretly" working on a project that uses the same data 
files as darcs. Ok, it's a reimplementation of darcs in a different 
language (because I dislike Haskell so much). It's coming along well, 
but is not yet at a point where anyone could really use it for anything.

As an aside, I already told David about it, and I view it as an ally of 
darcs, rather than a as competitor. People would feel more confident 
choosing a new tool if there are other products available that use 
exactly the same data formats. I *really* like the way darcs works.

Anyway, I am "announcing" my project now because it already includes 
much of the functionality needed to build a repository browser. It seems 
like it wouldn't be very difficult to build a browser on top of my core 
classes that would accomplish most of what David asked for.

Although writing the browser would slightly delay my real goal of 
creating an alternate darcs implementation, it is appealing to me for a 
few reasons:
1. It would create real value for real users earlier
2. It would allow me (and others) to safely gain confidence in my code
3. Most of the functionality would be needed anyway
4. It would be an excuse to use wxRuby (see below)
5. It would be a nice tool to help my own development

One "downside" is that it would not initially be a single executable. 
I'm writing the code in Ruby, and I would create the UI using the 
wxWindows bindings for Ruby. So you would need to have wxWindows, Ruby, 
wxRuby, and the browser itself on your system.

Eventually, my non-UI Ruby code could be packaged into a C-callable 
library, so you could write an alternate front end for it. And 
eventually wxRuby is likely to be mature enough to be able to statically 
link wxWindows, so you could end up with a single executable. But all of 
that is in the future.

So my question is: If I were to build a wxRuby darcs repository browser, 
would people here use it? It seems unlikely that I could complete the 
entire tool before darcs 1.0 would be ready, but it should at least be 
functional by then.

I guess my other question is whether there are other Ruby developers 
here who would be interested in contributing code to the browser.



More information about the darcs-users mailing list