summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6095c8b)
raw | patch | inline | side by side (parent: 6095c8b)
author | Jonas Fonseca <fonseca@diku.dk> | |
Thu, 5 Feb 2009 11:47:48 +0000 (12:47 +0100) | ||
committer | Jonas Fonseca <fonseca@diku.dk> | |
Thu, 5 Feb 2009 17:57:33 +0000 (18:57 +0100) |
NEWS | patch | blob | history | |
tig.1.txt | patch | blob | history | |
tig.c | patch | blob | history | |
tigrc.5.txt | patch | blob | history |
index bd7d6c4e93eff3ef938db403a4e28f61565308a2..c715318595f8432f101a77d3ba529599440f9fb0 100644 (file)
--- a/NEWS
+++ b/NEWS
Improvements:
- Horizontal scrolling. Bound to Left/Right by default.
+ - Read tigrc(5) options from git configuration files using the syntax:
+
+ [tig] show-rev-graph = true
+ [tig "color"] cursor = yellow red bold
+ [tig "bind"] generic = P parent
+
- Tree view: avoid flickering when updating.
- Tree view: annotate entries with commit information.
- Tree & blob view: open any blob in an editor.
diff --git a/tig.1.txt b/tig.1.txt
index 98e9f5d9cdbe8e5679d736eea4eca592c0c8f914..db8a4d7a45dc750ebf542be377e3d1b9d8a0814d 100644 (file)
--- a/tig.1.txt
+++ b/tig.1.txt
System wide configuration file.
'$GIT_DIR/config'::
- Repository config file. Read on start-up with the help of
+'~/.gitconfig::
+'{sysconfdir}/etc/gitconfig::
+ Git configuration files. Read on start-up with the help of
git-config(1).
include::BUGS[]
index ce406c86fbed25706912987126721960c61cbbc0..83ee8b95e76dd615bdb3513356e9cb6d37a8f267 100644 (file)
--- a/tig.c
+++ b/tig.c
return run_io_load(ls_remote_argv, "\t", read_ref);
}
+static void
+set_repo_config_option(char *name, char *value, int (*cmd)(int, const char **))
+{
+ const char *argv[SIZEOF_ARG] = { name, "=" };
+ int argc = 1 + (cmd == option_set_command);
+ int error = ERR;
+
+ if (!argv_from_string(argv, &argc, value))
+ config_msg = "Too many option arguments";
+ else
+ error = cmd(argc, argv);
+
+ if (error == ERR)
+ warn("Option 'tig.%s': %s", name, config_msg);
+}
+
static int
read_repo_config_option(char *name, size_t namelen, char *value, size_t valuelen)
{
@@ -6618,6 +6634,15 @@ read_repo_config_option(char *name, size_t namelen, char *value, size_t valuelen
if (!strcmp(name, "core.editor"))
string_ncopy(opt_editor, value, valuelen);
+ if (!prefixcmp(name, "tig.color."))
+ set_repo_config_option(name + 10, value, option_color_command);
+
+ else if (!prefixcmp(name, "tig.bind."))
+ set_repo_config_option(name + 9, value, option_bind_command);
+
+ else if (!prefixcmp(name, "tig."))
+ set_repo_config_option(name + 4, value, option_set_command);
+
/* branch.<head>.remote */
if (*opt_head &&
!strncmp(name, "branch.", 7) &&
diff --git a/tigrc.5.txt b/tigrc.5.txt
index ff0613dc7a498af15705bc573065d7f6e57ac406..6f11102a1f9384852f05636a02eaf78ff2951029 100644 (file)
--- a/tigrc.5.txt
+++ b/tigrc.5.txt
NAME
----
-tigrc - tig user configuration file
+tigrc - tig configuration file
SYNOPSIS
comment character to the end of the line is ignored. You can use comments to
annotate your initialization file.
+Alternatively, options can be set by putting them in one of the git
+configuration files, which are read by tig on startup. See 'git-config(1)' for
+which files to use.
Set command
-----------
set show-rev-graph = yes # Show revision graph?
set show-refs = yes # Show references?
set show-line-numbers = no # Show line numbers?
-set author-width = 10 # Set width of the author column
-set line-graphics = no # Disable graphics characters
set line-number-interval = 5 # Interval between line numbers
-set tab-size = 8 # Number of spaces per tab
-set encoding = "UTF-8" # Commit encoding
+--------------------------------------------------------------------------
+
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig]
+ author-width = 10 # Set width of the author column
+ line-graphics = no # Disable graphics characters
+ tab-size = 8 # Number of spaces per tab
+ encoding = "UTF-8" # Commit encoding
--------------------------------------------------------------------------
The type of variables are either bool, int, and string.
bind diff a previous
bind diff d next
bind diff b move-first-line
-# 'unbind' the default quit key binding
-bind main Q none
# An external command to update from upstream
bind generic F !git fetch
-# Cherry-pick current commit onto current branch
-bind generic C !git cherry-pick %(commit)
+--------------------------------------------------------------------------
+
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig "bind"]
+ # 'unbind' the default quit key binding
+ main = Q none
+ # Cherry-pick current commit onto current branch
+ generic = C !git cherry-pick %(commit)
--------------------------------------------------------------------------
Keys are mapped by first searching the keybindings for the current view, then
color diff-header yellow default
color diff-index blue default
color diff-chunk magenta default
-# A strange looking cursor line
-color cursor red default underline
-# UI colors
-color title-blur white blue
-color title-focus white blue bold
+--------------------------------------------------------------------------
+
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig "color"]
+ # A strange looking cursor line
+ cursor red default underline
+ # UI colors
+ title-blur white blue
+ title-focus white blue bold
------------------------------------------------------------------------------
Area names::
SEE ALSO
--------
-manpage:tig[1] and the http://jonas.nitro.dk/tig/manual.html[tig manual].
+manpage:tig[1], git-config(1),
+and the http://jonas.nitro.dk/tig/manual.html[tig manual].