Merge branch 'master' of https://github.com/j6t/gitk
* 'master' of https://github.com/j6t/gitk: gitk: add README with usage, build, and contribution details gitk: fix trackpad scrolling for Tcl/Tk 8.7+ gitk: use <Button-3> for ctx menus on macOS with Tcl 8.7+main
commit
f2457a6f4b
|
|
@ -0,0 +1,93 @@
|
|||
Gitk - The Git Repository Browser
|
||||
=================================
|
||||
|
||||
Gitk is a graphical Git repository browser. It displays the commit
|
||||
history of a Git repository as a graph, showing the relationships
|
||||
between commits, branches, and tags.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To view the history of the current repository:
|
||||
```bash
|
||||
gitk
|
||||
```
|
||||
|
||||
To view the history of specific files or directories:
|
||||
```bash
|
||||
gitk path/to/file
|
||||
gitk path/to/directory
|
||||
```
|
||||
|
||||
To view a specific branch or range of commits:
|
||||
```bash
|
||||
gitk branch-name
|
||||
gitk v1.0..v2.0
|
||||
```
|
||||
|
||||
For more usage examples and options, see the [gitk manual](https://git-scm.com/docs/gitk).
|
||||
|
||||
Building
|
||||
========
|
||||
|
||||
Gitk is a Tcl/Tk application. It requires Tcl/Tk to be installed on
|
||||
your system.
|
||||
|
||||
Running directly
|
||||
----------------
|
||||
|
||||
Gitk can be run from the source directory without installation:
|
||||
|
||||
```bash
|
||||
./gitk
|
||||
```
|
||||
|
||||
This allows for quick testing of changes.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
To install system-wide, you can use either `make` or `meson`:
|
||||
|
||||
```bash
|
||||
# Install to default location ($HOME/bin)
|
||||
make install
|
||||
|
||||
# Install to system-wide location
|
||||
sudo make install prefix=/usr/local
|
||||
|
||||
# Install to custom location
|
||||
make install prefix=/opt/gitk
|
||||
|
||||
# Using Meson
|
||||
meson setup builddir
|
||||
meson compile -C builddir
|
||||
meson install -C builddir
|
||||
```
|
||||
|
||||
Both build systems will handle setting the correct Tcl/Tk interpreter
|
||||
path and installing translation files.
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
Contributions are welcome! The preferred method for submitting patches
|
||||
is via email to the Git mailing list, as this allows for more thorough
|
||||
review and broader community feedback. However, GitHub pull requests
|
||||
are also accepted.
|
||||
|
||||
All commits must be signed off (use `git commit --signoff`) and should
|
||||
have commit messages prefixed with `gitk:`.
|
||||
|
||||
Email Patches
|
||||
-------------
|
||||
|
||||
Send patches to git@vger.kernel.org and CC j6t@kdbg.org. See the Git
|
||||
project's [patch submission guidelines](https://git-scm.com/docs/SubmittingPatches)
|
||||
for detailed instructions on creating and sending patches.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Gitk is distributed under the GNU General Public License, either
|
||||
version 2, or (at your option) any later version.
|
||||
|
|
@ -2301,6 +2301,11 @@ proc scrollval {D {koff 0}} {
|
|||
return [expr int(-($D / $scroll_D0) * max(1, $kscroll-$koff))]
|
||||
}
|
||||
|
||||
proc precisescrollval {D {koff 0}} {
|
||||
global kscroll
|
||||
return [expr (-($D / 10.0) * max(1, $kscroll-$koff))]
|
||||
}
|
||||
|
||||
proc bind_mousewheel {} {
|
||||
global canv cflist ctext
|
||||
bindall <MouseWheel> {allcanvs yview scroll [scrollval %D] units}
|
||||
|
|
@ -2319,6 +2324,25 @@ proc bind_mousewheel {} {
|
|||
bind $cflist <Alt-MouseWheel> {$cflist yview scroll [scrollval 5*%D 2] units}
|
||||
bind $cflist <Alt-Shift-MouseWheel> break
|
||||
bind $canv <Alt-Shift-MouseWheel> {$canv xview scroll [scrollval 5*%D] units}
|
||||
|
||||
bindall <TouchpadScroll> {
|
||||
lassign [tk::PreciseScrollDeltas %D] deltaX deltaY
|
||||
allcanvs yview scroll [precisescrollval $deltaY] units
|
||||
}
|
||||
bind $ctext <TouchpadScroll> {
|
||||
lassign [tk::PreciseScrollDeltas %D] deltaX deltaY
|
||||
$ctext yview scroll [precisescrollval $deltaY 2] units
|
||||
$ctext xview scroll [precisescrollval $deltaX 2] units
|
||||
}
|
||||
bind $cflist <TouchpadScroll> {
|
||||
lassign [tk::PreciseScrollDeltas %D] deltaX deltaY
|
||||
$cflist yview scroll [precisescrollval $deltaY 2] units
|
||||
}
|
||||
bind $canv <TouchpadScroll> {
|
||||
lassign [tk::PreciseScrollDeltas %D] deltaX deltaY
|
||||
$canv xview scroll [precisescrollval $deltaX] units
|
||||
allcanvs yview scroll [precisescrollval $deltaY] units
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -12596,7 +12620,7 @@ set foundbgcolor yellow
|
|||
set currentsearchhitbgcolor orange
|
||||
|
||||
# button for popping up context menus
|
||||
if {[tk windowingsystem] eq "aqua"} {
|
||||
if {[tk windowingsystem] eq "aqua" && [package vcompare $::tcl_version 8.7] < 0} {
|
||||
set ctxbut <Button-2>
|
||||
} else {
|
||||
set ctxbut <Button-3>
|
||||
|
|
|
|||
Loading…
Reference in New Issue