Sunday 20 January 2008

Blame and Diff 2

It's nearly complete now, and will be in the next alpha release in the next couple of days. One window shows diffs and blames and allows the user switch between. Nice features are:
  1. Side-by-side or Inline diff views
  2. Line to line diff shown at bottom for side-by-side view
  3. Can show any number of context lines in Inline view
  4. File browser to load alternative right/left files
  5. Repository browser to load alternative repository files
  6. Version combos to quickly change which versions you are comparing
  7. Instance switch to Blame view for either right or left hand side
  8. Blame shows originating changesets and author for each line and uncommitted local changes if ran for local file. (can also be ran for any repository version)
Not implemented yet but coming soon features include:
  1. All line differences marked in main view
  2. Find functions - quick find and a more featured find
  3. Context line options for Side-by-side view
  4. Click on Blame line/changeset id number to show diff to that version
  5. Click on Blame line/changeset id to get full description of changeset
  6. Switch for visible whitespace
Of course, all this is the build up to the 3-way diff/merge tool and conflict resolver. I think I know technically how it's all going to hang together, but I think it's one of those things that you can only get the UI right by trying it. I'm probably going to try to implement a Side-by-side diff view with the merge results underneath, and a side-by-side-by-side view. Hopefully my Scintilla skills will be up to the job of allowing free editing in the merge view window as well as just adding changes from either side.

Diff tool showing side-by-side view


Blame; red shows uncommitted changes, green the last additions

Inline, showing only 5 context lines.

While getting these screen shots I discovered that if the focus is on the Version combo, and you use the mouse scroll wheel Lizard Diff very quickly compares and displays diffs for each version you scroll though, which is really off putting when you think you're scrolling the main window.

No comments: