* '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
Junio C Hamano 2025-09-10 14:27:52 -07:00
commit f2457a6f4b
2 changed files with 118 additions and 1 deletions

93
gitk-git/README.md Normal file
View File

@ -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.

View File

@ -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>