Just before releasing 0.6, I cleaned up some old code.
In c6895105e2 (Remove old code in Commit/Diff views),
I removed some pre and code tags, causing new files
in the commit view to be displayed without line breaks
* 'pu/jg/rename_detection' (early part):
Diff: also show a binary when it's deleted
DiffHighlighter: Properly show binary changes
HistoryView: Prettify the file list
Show renames changes by default
history.css, history.js: Color changed/deleted/added/moved appendices
Rudimentary support for renames/deletions of files
We used to put diffs inside a <pre><code> block,
but no longer need to do that as we now use tables anyway.
We changed the code for the History view, but not for the
other two views.
Binary changes don't have a +++ / --- line, just like
a 100% rename doesn't show any changes. We work around
this in much the same way -- by reading the filenames
for that specific case.
We already keep this dictionary in our repository. Rather than adding a
pointer to it on every commit in our rev walk, just look it up lazily in the
dictionary when we need to. That cuts down some time in the initial revwalk
and also removes some stupid code :)
This adds a slider in the commit view with
which the user can change the context size.
This is useful for example if the hunks are too
big; by changing the context size, a hunk can be
split and then the changes can be committed.
Previously, the diff hilighter was a bit odd in that it would
just search for elements with a diff and highlight those. While
useful in theory, this wasn't used at all. We change it to
receive the diff to hilight, which makes the code somewhat simpler.
A list of files included in a commit are listed below the
commit message. The list are links which will take you to
that file in the diff display below.
The title of each fileHeader is now just the path to the file
instead of the full diff command.
While the focus is in the commit ctrl-down_arrow and up_arrow
will navigate to to next and previous file in that commit.
This merges functionality that was previously stored in the
combination of PBGitCommitController / PBChangedFile to a
dedicated controller, PBGitIndexController.
This adds a div in the webview to display the current commit
state. It allows us to notify the user of new commits by
showing something in the webview, rather than a modal
dialog.
This should make the GUI more responsive by allowing the diff
to be read in the background. This assumes that
[PBGitCommit details] is threadsafe, so we should keep it that
way.
This changes the HTML part of GitX to be more consistent -- we
now use a "views" directory where every web view has it's own
directory.
Furthermore, GitX-wide Javascript is added in the "lib" directory.
The same is true for CSS in the "css" directory. Every view can
have its own custom CSS and JS, and those are put in the views
directory (without JS or CSS prefix directories).
After removing the prototype code, the Gistie XMLHTTPRequest would send
the complete request in the URI, which was often too lang and cause a
failure.
This only sends the request in the body, and also adds additional
diagnostics.
This allows you to do something like
gitx --diff
to display a diff similar to 'git diff', but with GitX prettification.
It accepts all git diff parameters, so you can do something like
gitx --diff HEAD~10
to show the diff compared to the last 10 commits. Or, you can something like
git diff | gitx
to pipe anything that produces a diff to GitX