xaizek / zograscope (License: AGPLv3 only) (since 2018-12-07)
Mainly a syntax-aware diff that also provides a number of additional tools.
<root> / docs / zs-gdiff.md (7199aad743c9174b08f6c2c331eb446c8ad371d7) (1,653B) (mode 100644) [raw]
NAME
====

*zs-gdiff* is a GUI syntax-aware diff that uses Qt5.  See **zs-diff**(1) for
more details and comparison against other tools.

The tool can either accept two files on command-line, be integrated with `git`
by its means (yet using external GUI tools from `git` isn't very convenient in
general) or pick up list of changed files in the repository (staged or unstaged
in index or from a commit) by itself.  The latter way of using `zs-gdiff` with
`git` doesn't require any configuration and allows going through files without
restarting it, unlike when `git` invokes external tools.

It works, but it's far from being polished.

INVOCATION
==========

Manual Form
-----------

`zs-gdiff` `[options...]` _old-file_ _new-file_

To be used in a shell.

Git Status Form
---------------

`zs-gdiff` [`--cached`]

To be used in a shell to view staged/unstaged changes.

Git Commit Form
---------------

`zs-gdiff` _git-reference_

To be used in a shell to view commit changes.

Git Form
--------

`zs-gdiff` `[options...]` _path_ _old-file_ _old-hex_ _old-mode_
                                 _new-file_ _new-hex_ _new-mode_

When Git calls external diff for a changed file.

Git Rename Form
---------------

`zs-gdiff` `[options...]` _path_ _old-file_ _old-hex_ _old-mode_
                                 _new-file_ _new-hex_ _new-mode_
                                 _new-path_ _rename-msg_

When Git calls external diff for renamed and possibly changed file.

Tool-specific Options
---------------------

`--cached` \
use staged changes instead of unstaged

SEE ALSO
========

**zograscope**(7) for common options and list of all tools there.
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/zograscope

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/zograscope

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master