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+
This commit is contained in:
93
gitk-git/README.md
Normal file
93
gitk-git/README.md
Normal 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.
|
||||||
@@ -2301,6 +2301,11 @@ proc scrollval {D {koff 0}} {
|
|||||||
return [expr int(-($D / $scroll_D0) * max(1, $kscroll-$koff))]
|
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 {} {
|
proc bind_mousewheel {} {
|
||||||
global canv cflist ctext
|
global canv cflist ctext
|
||||||
bindall <MouseWheel> {allcanvs yview scroll [scrollval %D] units}
|
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-MouseWheel> {$cflist yview scroll [scrollval 5*%D 2] units}
|
||||||
bind $cflist <Alt-Shift-MouseWheel> break
|
bind $cflist <Alt-Shift-MouseWheel> break
|
||||||
bind $canv <Alt-Shift-MouseWheel> {$canv xview scroll [scrollval 5*%D] units}
|
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
|
set currentsearchhitbgcolor orange
|
||||||
|
|
||||||
# button for popping up context menus
|
# 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>
|
set ctxbut <Button-2>
|
||||||
} else {
|
} else {
|
||||||
set ctxbut <Button-3>
|
set ctxbut <Button-3>
|
||||||
|
|||||||
Reference in New Issue
Block a user