Ideas/GraphicalInterface

Why a graphical interface?

  • It may be easier for newbies
  • It may provide powerful functionality that would be inconvenient with the command-line interface

GUI ideas

  • a patch dependency visualiser
  • an iTunes-like interface to patches (click on the ‘author’ column, and you see the patches sorted by author, for example)
  • click on a patch and you get some subtle feedback on all the patches it depends on (for example, they change colour)
  • maybe some kind of help resolving conflicts? (no clear ideas)
  • A file browser that highlights files not added to the repository, files that have unrecorded changes, etc.
  • Diff visualisation
  • MacOS X - integration with FileMerge?
  • a generic diff visualiser, which would allow to pick-and-choose lines of code into a third file, a la Visual Source Safe and the open-source kdiff3.
  • There should be two ways to use the darcs gui. One is to have a seperate gui for each command, so that you can run something like darcs whatsnew -gui. The other is to have a standalone gui.
  • The standalone gui could take a patch-oriented view towards repositories, rather than a task oriented one. That is, rather than decide you want to record some patches and then select the patches (for instance), you select a bunch of patches and decide you want to record them. (This is inspired from one of the patchworks’ screenshots)
  • Ability to edit named patches by moving primitive patches back and forth between them (from Shae’s request for a patch browser)
  • Instead of starting a GUI from scratch, add a darcs support to an existing GUI, for instance http://rabbitvcs.org/ or http://qct.sourceforge.net/

Old projects

Three students of the BTU Cottbus worked on a darcs GUI application based on the Grapefruit FRP library. They were supervised by Wolfgang Jeltsch. See http://haskell.org/haskellwiki/Patchwork for more details. The project is no longer maintained but the source code is still available (waiting to be cabalized, for a start).

wxDarcs is a defunct GUI project for Darcs that used to be part of the Darcs code. We had to remove it because we could no longer maintain it.

See also