Only show the command being loaded from for the pager view
This feature was introduced in 035ba11f40c0a045989ed861e72327012af022b4.
This feature was introduced in 035ba11f40c0a045989ed861e72327012af022b4.
TODO: tig now has a status view
Make it possible to browse all status changes once the diff view is open
Fix handling of REQ_NEXT/REQ_PREVIOUS
The special browsing of the main view was broken by commit
586c423dd99238a85c556df86e043dcfacffe277, when the REQ_ENTER
case was removed.
The special browsing of the main view was broken by commit
586c423dd99238a85c556df86e043dcfacffe277, when the REQ_ENTER
case was removed.
Fix updating of the view title to show the current position in the view
It regressed in 11359638c5dfc91b4b14a003a0519b2a5bc7f89d.
It regressed in 11359638c5dfc91b4b14a003a0519b2a5bc7f89d.
Warn about nothing to enter if REQ_ENTER reaches the view_driver switch
status: implement support for opening files in editor
status: cleanup status_request by resurrection status_enter
status: "wire" REQ_STATUS_UPDATE handling through status_request
Add view request operation for handling view specific requests
For now <view>_enter is replaced with <view>_request.
For now <view>_enter is replaced with <view>_request.
status: fix switching to the main view when starting in status view
status: improve title and report messages
status: make it possible to batch updates by pressing on the section line
status: assert that there are always view lines in the status view
status: make it possible to see all changes for a status section
... except untracked files.
... except untracked files.
status window: mention 'u' instead of Enter
Commits ca1d71ea and 89d917a bound the Enter functionality
to 'u' (and Enter now shows the diff).
[ Slightly changed to use get_key(). --jonas ]
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Commits ca1d71ea and 89d917a bound the Enter functionality
to 'u' (and Enter now shows the diff).
[ Slightly changed to use get_key(). --jonas ]
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add support for showing staged/unstaged changes and untracked files
When pressing enter on a file in the status view either a diff or the
content of the untracked file will be shown.
When pressing enter on a file in the status view either a diff or the
content of the untracked file will be shown.
Introduce status-update action bound to 'u' by default
For now this obsoletes the action triggered when pressing Enter.
For now this obsoletes the action triggered when pressing Enter.
Avoid flickering when moving past the main view's first and last line
In diff mode when first or last item is displayed KEY_UP or KEY_DOWN
respectively cause flickering. I know that I should not press
those keys in that situation, but this annoys me anyway.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
In diff mode when first or last item is displayed KEY_UP or KEY_DOWN
respectively cause flickering. I know that I should not press
those keys in that situation, but this annoys me anyway.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Ignore generated HTML pages
Also ':sort u' the .gitignore file.
Also ':sort u' the .gitignore file.
Ignore generated manpages.
Adds tig.1 and tigrc.5 to .gitignore
Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Adds tig.1 and tigrc.5 to .gitignore
Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Include the tig bash completion script as documentation
Rename contrib/tig-completion.sh to contrib/tig-completion.bash
Fix a few typos in the bash completion
Simplify naming (versioning) of non-release tig tarball and rpm file
Use the tag part of git-describe output, with `tig-' prefix stripped
off, as version number. Use number of commits since given tag as
release number, using 0 if we are at tagged version, and adding
'.dirty' suffix if working directory is dirty. Do not use 'g<sha 1>'
part of git-describe output.
For example, when git-describe output was tig-0.7-8-g26d0386, before
this commit tarball was named tig-0.7.8.g26d0386.tar.gz and rpm was
named tig-0.7.8.g26d0386-1.src.rpm (for dirty tree tarball was
tig-0.7.8.g26d0386.dirty.tar.gz), now tarball is named
tig-0.7-8.tar.gz and rpm is named tig-0.7-8.src.rpm (for dirty tree
tarball is tig-0.7-8.dirty.tar.gz).
[ Simplify the version extraction a bit. --jonas ]
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Use the tag part of git-describe output, with `tig-' prefix stripped
off, as version number. Use number of commits since given tag as
release number, using 0 if we are at tagged version, and adding
'.dirty' suffix if working directory is dirty. Do not use 'g<sha 1>'
part of git-describe output.
For example, when git-describe output was tig-0.7-8-g26d0386, before
this commit tarball was named tig-0.7.8.g26d0386.tar.gz and rpm was
named tig-0.7.8.g26d0386-1.src.rpm (for dirty tree tarball was
tig-0.7.8.g26d0386.dirty.tar.gz), now tarball is named
tig-0.7-8.tar.gz and rpm is named tig-0.7-8.src.rpm (for dirty tree
tarball is tig-0.7-8.dirty.tar.gz).
[ Simplify the version extraction a bit. --jonas ]
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Move tig.spec.in to the contrib area
Move tigrc to the contrib area
Add tig bash completion script
Based on git-completion.sh by Shawn Pearce.
Based on git-completion.sh by Shawn Pearce.
Delete the old VERSION file before appending the new one in make dist
Use $(MAKE) instead of 'make' and 'git *' instead of 'git-*'
tig-0.8.git
tig-0.8
Fix pager mode regressions
This fixes both a segfault when starting tig in pager mode, caused by no
view being setup before calling report(). Introduced in: "Add notice
about empty pager view" (5c4358d1b309381997a5c4780a432140fefa5bcb).
Reported by Lars Noschinski in debian bug 429448.
Also, a fix for actually reading from stdin, caused by comparison of
view->vid and view->id being reported as equal leading to no actual
update. Introduced in: "Improve management of view->ref and the title
line" (035ba11f40c0a045989ed861e72327012af022b4). Now, the title line in
pager mode will say "stdin" when reading from externally piped input.
This fixes both a segfault when starting tig in pager mode, caused by no
view being setup before calling report(). Introduced in: "Add notice
about empty pager view" (5c4358d1b309381997a5c4780a432140fefa5bcb).
Reported by Lars Noschinski in debian bug 429448.
Also, a fix for actually reading from stdin, caused by comparison of
view->vid and view->id being reported as equal leading to no actual
update. Introduced in: "Improve management of view->ref and the title
line" (035ba11f40c0a045989ed861e72327012af022b4). Now, the title line in
pager mode will say "stdin" when reading from externally piped input.
Fix (another) integer type mismatch on 64-bit systems
Similar to previous commit, use int type as the first parameter to
printf field width specifier (%.*s).
Similar to previous commit, use int type as the first parameter to
printf field width specifier (%.*s).
Fix integer type mismatch on 64-bit systems
fprintf wants an int parameter for the field width of a "%.*s" expression, but
the code was passing a size_t instead. This potentially broke systems where
sizeof(size_t) != sizeof(int). And even on systems where it did't break,
it still caused a compiler warning.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
fprintf wants an int parameter for the field width of a "%.*s" expression, but
the code was passing a size_t instead. This potentially broke systems where
sizeof(size_t) != sizeof(int). And even on systems where it did't break,
it still caused a compiler warning.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add TODO about using non-blocking I/O for incremental view loading
Seems to be the fix for debian bug #427093.
Seems to be the fix for debian bug #427093.
Only emit one "Not a git repository" error message
Allow CFLAGS to be overridden while preserving VERSION
If someone defined their own CFLAGS, they would have to include a -DVERSION=
as well (or else get unknown-version as the version).
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
If someone defined their own CFLAGS, they would have to include a -DVERSION=
as well (or else get unknown-version as the version).
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Grab path to the git directory; use it when listing untracked files
read_properties: use size_t instead of int for callback
Fix wrong uses of string_copy() with pointer instead of buffer
Follow up to commit 751e27c90eea47b4eacdd7b657731712712f7356 that
caused these bugs to be revealed.
Follow up to commit 751e27c90eea47b4eacdd7b657731712712f7356 that
caused these bugs to be revealed.
Fix use of the status view from subdirectories
Fix string_copy macro to use sizeof(src) for the source buffer
Merge branch 'jn/rpm-updates'
Conflicts:
Makefile
Conflicts:
Makefile
Refresh VERSION file when building distribution tarball in "make dist"
Overwrite contents of VERSION file from the HEAD revision with the
current version (at the time of building), so VERSION file in the
tarball generated by "make dist" (and which follows also rpm package
generated by "make rpm") is up to date.
Otherwise for example when building rpm it will be compiled with wrong
version string.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Overwrite contents of VERSION file from the HEAD revision with the
current version (at the time of building), so VERSION file in the
tarball generated by "make dist" (and which follows also rpm package
generated by "make rpm") is up to date.
Otherwise for example when building rpm it will be compiled with wrong
version string.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Include documentation sources for rpmbuild with '--without docs'
This includes _all_ documentation sources (and not only manual.txt) in
the rpm file build with '--without docs' option.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This includes _all_ documentation sources (and not only manual.txt) in
the rpm file build with '--without docs' option.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Remove PDF version of manual from being build and installed
Because PDF version of "The tig Manual" doesn't offer anything new
that is not present in HTML version, and building PDF requires
additional tools (docbook2pdf) and their dependencies present, remove
it from tig rpm.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Because PDF version of "The tig Manual" doesn't offer anything new
that is not present in HTML version, and building PDF requires
additional tools (docbook2pdf) and their dependencies present, remove
it from tig rpm.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Make dist rule more robust using '&&'; create .tar.gz.md5 file
Fix typo the INSTALL file
The make command to build the documentation "make install-doc", not
"make install-docs".
Kindly pointed out by Michael G. Noll.
The make command to build the documentation "make install-doc", not
"make install-docs".
Kindly pointed out by Michael G. Noll.
Supply explicit permission bits to 'install'
'install' will install files with permissions set to '0755' if the
permissions are not specified on the command line. Having the execute
bits set on non-executable content is not desireable. Specify mode
0644 for non-executable content as well as specify mode 0755 for
executable content (in case the defaults change or are different on
different systems). Also tell 'install' to preserve timestamps.
[ Updated to also do it when installing HTML files. --jonas ]
Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
'install' will install files with permissions set to '0755' if the
permissions are not specified on the command line. Having the execute
bits set on non-executable content is not desireable. Specify mode
0644 for non-executable content as well as specify mode 0755 for
executable content (in case the defaults change or are different on
different systems). Also tell 'install' to preserve timestamps.
[ Updated to also do it when installing HTML files. --jonas ]
Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
tig-0.7.git
tig-0.7
Rename sync-docs to release-doc; add release-dist rule
Additionally, allow VERSION to be overwritten from the command
line by setting DIST_VERSION.
Additionally, allow VERSION to be overwritten from the command
line by setting DIST_VERSION.
Various random Makefile cleanups
Update sync-docs target to use git porcelain instead of cogito
Infrastructure for tig rpm builds
Adds RPM_VERSION to Makefile and new make targets: tig.spec, dist, and
rpm. A simple 'make rpm' will build the rpm. Also adds tig.spec.in
which is used to generate tig.spec.
Accidentally VERSION (and adding -DVERSION=$(VERSION) to CFLAGS) is
now defined always, even if we do not compile from the "live" tig
repository.
Minimally tested (meaning "make rpm" from tig repository works).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Adds RPM_VERSION to Makefile and new make targets: tig.spec, dist, and
rpm. A simple 'make rpm' will build the rpm. Also adds tig.spec.in
which is used to generate tig.spec.
Accidentally VERSION (and adding -DVERSION=$(VERSION) to CFLAGS) is
now defined always, even if we do not compile from the "live" tig
repository.
Minimally tested (meaning "make rpm" from tig repository works).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Move "static" version info to VERSION file
Cleanup dynamic version acquiring via git.
Cleanup dynamic version acquiring via git.
Add version information to man pages
Inspired and copied from git 7ef195ba3efe0ffa815e12afc4cb1e39a21ddfb4:
Override the [header] macro of asciidoc's docbook
backend to add version information to the generated
man pages.
by Frank Lichtenheld <frank@lichtenheld.de>. Slightly improved to
use asciidoc {version} macro to avoid having to invoke sed.
Inspired and copied from git 7ef195ba3efe0ffa815e12afc4cb1e39a21ddfb4:
Override the [header] macro of asciidoc's docbook
backend to add version information to the generated
man pages.
by Frank Lichtenheld <frank@lichtenheld.de>. Slightly improved to
use asciidoc {version} macro to avoid having to invoke sed.
Add manpage XSL from git and enhance with literallayout fixes
It ensures that .sp tags will be properly output so they do not appear
in the rendered manpages. Grabed from git's Documentation/callouts.xsl
file. From the git's commit 7ef0435088f41165ece95b6f226d3c15438505a5:
This is just a random hack to work around problems people seem
to be seeing in manpage backend of xmlto (it appears we are
getting ".sp" at the end of line without line break).
Additionally, output an empty line after literallayout blocks (.nf .fi)
so that any text following it will appear in a separate block.
It ensures that .sp tags will be properly output so they do not appear
in the rendered manpages. Grabed from git's Documentation/callouts.xsl
file. From the git's commit 7ef0435088f41165ece95b6f226d3c15438505a5:
This is just a random hack to work around problems people seem
to be seeing in manpage backend of xmlto (it appears we are
getting ".sp" at the end of line without line break).
Additionally, output an empty line after literallayout blocks (.nf .fi)
so that any text following it will appear in a separate block.
Add status view
The new view supports staging, unstaging, and adding of
untracked files. It is still only very basic. The colors
might need a few tweaks.
Bound to 'S' by default.
The new view supports staging, unstaging, and adding of
untracked files. It is still only very basic. The colors
might need a few tweaks.
Bound to 'S' by default.
main_read: cleanup and simplify
Refactor add_line_text parts into add_line_data; use it in main_read
Add open method to view_ops
Use it to turn open_help_view into help_open and make a backend for the
help view.
Use it to turn open_help_view into help_open and make a backend for the
help view.
Add notice about empty pager view
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Add notice about empty pager view
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Make keybinding reference more dynamic
It doesn't honor any key map info, however, hardcoding key information
seems wrong when get_key already exists. Used for the notice when blob
view is requested and no blob ID has yet been assigned to ref_blob.
It doesn't honor any key map info, however, hardcoding key information
seems wrong when get_key already exists. Used for the notice when blob
view is requested and no blob ID has yet been assigned to ref_blob.
Move space separator from get_key to formatting in open_help_view
Improve managment of view->ref and the title line
This removes a blob view specific hack needed for keeping the title line
synchronized with the current blob ID. It further also changes the pager
view to show the actual command that was run, regardless of whether
a commit line has been hovered.
This removes a blob view specific hack needed for keeping the title line
synchronized with the current blob ID. It further also changes the pager
view to show the actual command that was run, regardless of whether
a commit line has been hovered.
Be more paranoid about paths when updating the tree view
Shell quote the path always.
Shell quote the path always.
move_view: fix view->offset overflow bug
Reproducable by opening the tree view, then maximizing the blob view,
move up, and then closing the blob view, causing the view->offset to
have "wrapped around" and nothing to be displayed in the tree view.
The invalid update of view->offset only happend when moving
non-displayed views. Instead use the checked scroll_steps variable
instead of the steps variable. Add a guarding assert after the update.
Reproducable by opening the tree view, then maximizing the blob view,
move up, and then closing the blob view, causing the view->offset to
have "wrapped around" and nothing to be displayed in the tree view.
The invalid update of view->offset only happend when moving
non-displayed views. Instead use the checked scroll_steps variable
instead of the steps variable. Add a guarding assert after the update.
Introduce add_line_text to simplify pager based rendering
Fix revision graph visualization during incremental updating
This caused certain commit lines in the main view to not have have a
visual revision graph.
The reason is that revision graph visualization requires knowledge about
the parent commit. This causes a further one-off needed to be redrawn
for incremental updates.
This caused certain commit lines in the main view to not have have a
visual revision graph.
The reason is that revision graph visualization requires knowledge about
the parent commit. This causes a further one-off needed to be redrawn
for incremental updates.
Add TODO item about diff chunk staging/unstaging
Requested by Pasky.
Requested by Pasky.
Make it possible to install man pages and html files separately
[ Fixed typo and finally corrected the manual.html dependency on
manual.toc. --jonas ]
[ Fixed typo and finally corrected the manual.html dependency on
manual.toc. --jonas ]
tig-0.6.git
Bump the version number to 0.6
Oops, remove -liconv from LDFLAGS
Disable show-rev-graph by default
It can be enabled by adding
set show-rev-graph = yes
to ~/.tigrc or toggled by pressing 'g' when in the main viewer.
It can be enabled by adding
set show-rev-graph = yes
to ~/.tigrc or toggled by pressing 'g' when in the main viewer.
Merge with master
Improve handling of remotes
Hightlight remotes similar to how tags are highlighted.
Colors are configurable via main-remote.
Hightlight remotes similar to how tags are highlighted.
Colors are configurable via main-remote.
TODO: use autoconf to detect newer git and git-config availability
Make tig handle GIT_DIR better
The problem was caused by load_refs() calling "git-ls-remote ." completely
ignoring GIT_DIR. This is fixed by using git-rev-parse --git-dir to extract
the path to the requested git repository.
The problem was caused by load_refs() calling "git-ls-remote ." completely
ignoring GIT_DIR. This is fixed by using git-rev-parse --git-dir to extract
the path to the requested git repository.
Drop --stat usage from the main command assembled during option parsing
This is a follow up to commit fa187d6c87100b0c5d626eceb4369eef79176138
which removes one more useless use of --stat, which is very costly
especially for the main view.
A big thanks to Miciah for reporting this.
This is a follow up to commit fa187d6c87100b0c5d626eceb4369eef79176138
which removes one more useless use of --stat, which is very costly
especially for the main view.
A big thanks to Miciah for reporting this.
Add note about using autoconf to detect iconv(3) presence in libc
... and other build dependencies.
... and other build dependencies.
Fix parameter warning for iconv(3)
[ This reverts commit d9c49e6ec76ac311bbe9a1d0d3699ff4be79e64f that tried
to fix compile warning on Mac OS X. ]
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
[ This reverts commit d9c49e6ec76ac311bbe9a1d0d3699ff4be79e64f that tried
to fix compile warning on Mac OS X. ]
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix SITES URLs; promote git://repo.or.cz/tig.git mirror more
Discard error messages from git-describe
Fix commit author line parsing for when the name is empty
This is also a nice cleanup so the code uses chomp_string() instead of
"custom" removal of spaces.
This is also a nice cleanup so the code uses chomp_string() instead of
"custom" removal of spaces.
Merge with master
Never split the tree view when opening another tree view
The resulting bogus display[] state ment that the blob view was not
initialized causing segmentation faults in the redrawing code.
Reported by Alexey Tourbin <at@altlinux.ru>
The resulting bogus display[] state ment that the blob view was not
initialized causing segmentation faults in the redrawing code.
Reported by Alexey Tourbin <at@altlinux.ru>
Cast second arg to iconv to remove warning
main_read: handle titles that start with whitespace
Increase commit.title size from 75 to 128
Courtesy of Dmitry Levin, my current aterm session has COLUMNS=141
(1280x1024 with standard 9x15 font). So in the main view I can see
some commit headlines truncated. Changing hedline size from 75 to 128
characters seems to be reasonable.
Courtesy of Dmitry Levin, my current aterm session has COLUMNS=141
(1280x1024 with standard 9x15 font). So in the main view I can see
some commit headlines truncated. Changing hedline size from 75 to 128
characters seems to be reasonable.
Hardwire ERR to mean REQ_NONE in the main loop
add_keybinding: always allocate the new keybinding
Fixes infinite loop repoted by Miciah. Also simply continue when wgetch
returns ERR (-1) instead of calling get_keybinding() etc.
Fixes infinite loop repoted by Miciah. Also simply continue when wgetch
returns ERR (-1) instead of calling get_keybinding() etc.
tig-0.5.git
Crap, forgot to update the VERSION string again.
Crap, forgot to update the VERSION string again.
SITES: Point to pasky's git proxy repo.or.cz
INSTALL: mention possible iconv problems and workarounds
manual: document the tree/blob environment variables
Always clear the status window after prompting