ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git]
@ 2006-05-17 12:38 Anton Farygin
  2006-05-17 15:46 ` Alexey I. Froloff
  0 siblings, 1 reply; 4+ messages in thread
From: Anton Farygin @ 2006-05-17 12:38 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 81 bytes --]

Прикольная штука. Никто не хочет упакетить ?

[-- Attachment #2: [ANNOUNCE] tig - text-mode interface for git --]
[-- Type: message/rfc822, Size: 15007 bytes --]

From: Jonas Fonseca <fonseca@diku.dk>
Subject: [ANNOUNCE] tig - text-mode interface for git
Date: Wed, 17 May 2006 14:07:33 +0200
Message-ID: <20060517120733.GA14041@diku.dk>

Hello,

I am pleased to announce tig, a simple git repository browser written
using ncurses. Basically, it just acts as a front-end for git-log and
git-show/git-diff. Additionally, you can also use it as a pager for git
commands.

Currently, it just provides a minimum support for looking through
changes. I hope to slowly extend it to also be usable as a front-end for
git-blame and for tree browsing. Also, it doesn't do any fancy revision
graph rendering, but I want to at least give it a shot at some point. :)

Following is the man page. I've attached the tig.c file if you want to
try it out. Compile it with:

	$ cc -o tig tig.c -lncurses

More project files (including a Makefile) can be found at:

	http://jonas.nitro.dk/tig/

Obligatory screenshots at:

	http://jonas.nitro.dk/tig/screenshots/

---

NAME

   tig - text-mode interface for git

SYNOPSIS

   tig [options]
   tig [options] [--] [git log options]
   tig [options] log  [git log options]
   tig [options] diff [git diff options]
   tig [options] show [git show options]
   tig [options] <    [git command output]

DESCRIPTION

   Browse changes in a git repository. Additionally, tig(1) can also act
   as a pager for output of various git commands.

   When browsing repositories, tig(1) uses the underlying git commands
   to present the user with various views, such as summarized commit log
   and showing the commit with the log message, diffstat, and the diff.

   Using tig(1) as a pager, it will display input from stdin and try to
   colorize it.

OPTIONS

   -l
           Start up in log view using the internal log command.

   -d
           Start up in diff view using the internal diff command.

   -n[INTERVAL], --line-number[=INTERVAL]
           Prefix line numbers in log and diff view. Optionally, with
           interval different than each line.

   -t[NSPACES], --tab-size[=NSPACES]
           Set the number of spaces tabs should be expanded to.

   -v, --version
           Show version and exit.

   --
           End of tig(1) options. Useful when specifying command options
           for the main view. Example:

		$ tig -- --since=1.month

   log [git log options]
           Open log view using the given git log options.

   diff [git diff options]
           Open diff view using the given git diff options.

   show [git show options]
           Open diff view using the given git show options.

   [git log options]
           tig(1) will stop the option parsing when the first command
           line parameter not starting with "-" is encountered. All
           options including this one will be passed to git log when
           loading the main view. This makes it possible to say:

		$ tig tag-1.0..HEAD

  Pager mode

   If stdin is a pipe, any log or diff options will be ignored and the
   pager view will be opened loading data from stdin. The pager mode can
   be used for colorizing output from various git commands.

   Example on how to colorize the output of git-show(1):

	$ git show | tig

  Git command options

   All git command options specified on the command line will be passed
   to the given command and all will be shell quoted before they are
   passed to the shell.

        If you specify options for the main view, you should not use the
   Note --pretty option as this option will be set automatically to the
        format expected by the main view.

   Example on how to open the log view and show both author and
   committer information:

	$ tig log --pretty=fuller

   See the "Specifying revisions" section below for an introduction to
   revision options supported by the git commands. For details on
   specific git command options, refer to the man page of the command in
   question.

ENVIRONMENT VARIABLES

   Several options related to the interface with git can be configured
   via environment options.

  Repository references

   Commits that are referenced by tags and branch heads will be marked
   by the reference name surrounded by [ and ]:

	2006-03-26 19:42 Petr Baudis       | [cogito-0.17.1] Cogito 0.17.1

   If you want to filter out certain directories under .git/refs/, say
   tmp you can do it by setting the following variable:

	$ TIG_LS_REMOTE="git ls-remote . | sed /\/tmp\//d" tig

   Or set the variable permanently in your environment.

   TIG_LS_REMOTE

           Set command for retrieving all repository references. The
           command should output data in the same format as
           git-ls-remote(1).

  View commands

   It is possible to alter which commands are used for the different
   views. If for example you prefer commits in the main view to be
   sorted by date and only show 500 commits, use:

	$ TIG_MAIN_CMD="git log --date-order -n500 --pretty=raw %s" tig

   Or set the variable permanently in your environment.

   Notice, how %s is used to specify the commit reference. There can be
   a maximum of 5 %s ref specifications.

   TIG_DIFF_CMD

           The command used for the diff view. By default, git show is
           used as a backend.

   TIG_LOG_CMD

           The command used for the log view. If you prefer to have both
           author and committer shown in the log view be sure to pass
           --pretty=fuller to git log.

   TIG_MAIN_CMD

           The command used for the main view. Note, you must always
           specify the option: --pretty=raw since the main view parser
           expects to read that format.

The viewer

   tig(1) presents various views of a repository. Each view is based on
   output from an external command, most often git log, git diff, or git
   show.

   The main view
           Is the default view, and it shows a one line summary of each
           commit in the chosen list of revisions. The summary includes
           commit date, author, and the first line of the log message.
           Additionally, any repository references, such as tags, will
           be shown.

   The log view
           Presents a more rich view of the revision log showing the
           whole log message and the diffstat.

   The diff view
           Shows either the diff of the current working tree, that is,
           what has changed since the last commit, or the commit diff
           complete with log message, diffstat and diff.

   The pager view
           Is used for displaying both input from stdin and output from
           git commands entered in the internal prompt.

   The help view
           Displays the information from the tig(1) man page. For the
           help view to work you need to have the tig(1) man page
           installed.

KEYS

   Below the default key bindings are shown.

  View switching

   m       Switch to main view.
   d       Switch to diff view.
   l       Switch to log view.
   p       Switch to pager view.
   h       Show man page.
   Return  If on a commit line show the commit diff. Additionally, if in
           main or log view this will split the view. To open the commit
           diff in full size view either use d or press Return twice.
   Tab     Switch to next view.

  Cursor navigation

   Up      Move cursor one line up.
   Down    Move cursor one line down.
   k       Move cursor one line up and enter. When used in the main view
           this will always show the diff of the current commit in the
           split diff view.
   j       Move cursor one line down and enter.
   PgUp    Move cursor one page up.
   PgDown  Move cursor one page down.
   Home    Jump to first line.
   End     Jump to last line.

  Scrolling

   Insert  Scroll view one line up.
   Delete  Scroll view one line down.
   w       Scroll view one page up.
   s       Scroll view one page down.

  Misc

   q       Quit
   r       Redraw screen.
   z       Stop all background loading. This can be useful if you use
           tig(1) in a repository with a long history without limiting
           the revision log.
   v       Show version.
   n       Toggle line numbers on/off.
   :       Open prompt. This allows you to specify what git command to
           run. Example:

		:log -p

Revision specification

   This section describes various ways to specify what revisions to
   display or otherwise limit the view to. tig(1) does not itself parse
   the described revision options so refer to the relevant git man pages
   for futher information. Relevant man pages besides git-log(1) are
   git-diff(1) and git-rev-list(1).

   You can tune the interaction with git by making use of the options
   explained in this section. For example, by configuring the
   environment variables described in the "View commands" section.

  Limit by path name

   If you are interested only in those revisions that made changes to a
   specific file (or even several files) list the files like this:

	$ tig log Makefile

   To avoid ambiguity with repository references such as tag name, be
   sure to separate file names from other git options using "--". So if
   you have a file named master it will clash with the reference named
   master, and thus you will have to use:

	$ tig log -- master

        For the main view, avoiding ambiguity will in some cases require
   Note you to specify two "--" options. The first will make tig(1) stop
        option processing and the latter will be passed to git log.

  Limit by date or number

   To speed up interaction with git, you can limit the amount of commits
   to show both for the log and main view. Either limit by date using
   e.g. --since=1.month or limit by the number of commits using -n400.

   If you are only interested in changed that happened between two dates
   you can use:

	$ tig -- --after=May.5th --before=2006-05-16.15:44

        The dot (".") is used as a separator instead of a space to avoid
   Note having to quote the option value. If you prefer use --after="May
        5th" instead of --after="May 5th".

  Limiting by commit ranges

   Alternatively, commits can be limited to a specific range, such as
   "all commits between tag-1.0 and tag-2.0". For example:

	$ tig log tag-1.0..tag-2.0

   This way of commit limiting makes it trivial to only browse the
   commits which haven't been pushed to a remote branch. Assuming origin
   is your upstream remote branch, using:

	$ tig log origin..HEAD

   will list what will be pushed to the remote branch. Optionally, the
   ending HEAD can be left out since it is implied.

  Limiting by reachability

   Git interprets the range specifier "tag-1.0..tag-2.0" as "all commits
   reachable from tag-2.0 but not from tag-1.0". Where reachability
   refers to what commits are ancestors (or part of the history) of the
   branch or tagged revision in question.

   If you prefer to specify which commit to preview in this way use the
   following:

	$ tig log tag-2.0 ^tag-1.0

   You can think of ^ as a negation operator. Using this alternate
   syntax, it is possible to further prune commits by specifying
   multiple branch cut offs.

  Combining revisions specification

   Revisions options can to some degree be combined, which makes it
   possible to say "show at most 20 commits from within the last month
   that changed files under the Documentation/ directory."

	$ tig -- --since=1.month -n20 -- Documentation/

  Examining all repository references

   In some cases, it can be useful to query changes across all
   references in a repository. An example is to ask "did any line of
   development in this repository change a particular file within the
   last week". This can be accomplished using:

	$ tig -- --all --since=1.week -- Makefile

BUGS

   Known bugs and problems:

     * If the screen width is very small the main view can draw outside
       the current view causing bad wrapping. Same goes for title and
       status windows.

TODO

   Features that should be explored.

     * Searching.

     * Locale support.

COPYRIGHT

   Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2006

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or (at
   your option) any later version.

SEE ALSO

   git(7),
   cogito(7)
   gitk(1): git repository browser written using tcl/tk,
   gitview(1): git repository browser written using python/gtk.

-- 
Jonas Fonseca

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git]
  2006-05-17 12:38 [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git] Anton Farygin
@ 2006-05-17 15:46 ` Alexey I. Froloff
  2006-05-17 15:55   ` [devel] git-send-email Dmitry V. Levin
  2006-05-17 16:15   ` [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git] Sergey Vlasov
  0 siblings, 2 replies; 4+ messages in thread
From: Alexey I. Froloff @ 2006-05-17 15:46 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 270 bytes --]

* Anton Farygin <rider@> [060517 16:31]:
> Прикольная штука. Никто не хочет упакетить ?
Упаковать не очень, но пару патчей аффтару я уже отправил ;-)

P.S. А git-send-email принципиально не умеет работать через
/usr/sbin/sendmail -t ?

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] git-send-email
  2006-05-17 15:46 ` Alexey I. Froloff
@ 2006-05-17 15:55   ` Dmitry V. Levin
  2006-05-17 16:15   ` [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git] Sergey Vlasov
  1 sibling, 0 replies; 4+ messages in thread
From: Dmitry V. Levin @ 2006-05-17 15:55 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2939 bytes --]

On Wed, May 17, 2006 at 07:46:19PM +0400, Alexey I. Froloff wrote:
[...]
> P.S. А git-send-email принципиально не умеет работать через
> /usr/sbin/sendmail -t ?

Тот, который в бранче по имени "master", умеет:

$ git-log maint..master git-send-email.perl
commit db3106b274a75d5b9ea7f6fe1030b8528df7389b
Author: Eric Wong <normalperson@........>
Date:   Mon May 15 02:41:01 2006 -0700

    send-email: quiet some warnings, reject invalid addresses
    
    I'm not sure why we never actually rejected invalid addresses in
    the first place.  We just seemed to be using our email validity
    checkers to kill duplicates.
    
    Now we just drop invalid email addresses completely and warn
    the user about it.
    
    Since we support local sendmail, we'll also accept username-only
    addresses.
    
    Signed-off-by: Eric Wong <normalperson@........>
    Signed-off-by: Junio C Hamano <junkio@.......>

commit aca7ad7628ce72afbd1d0d99778c9a5c9cac7a7a
Author: Eric Wong <normalperson@........>
Date:   Mon May 15 02:34:44 2006 -0700

    send-email: allow sendmail binary to be used instead of SMTP
    
    This should make local mailing possible for machines without
    a connection to an SMTP server.
    
    It'll default to using /usr/sbin/sendmail or /usr/lib/sendmail
    if no SMTP server is specified (the default).  If it can't find
    either of those paths, it'll fall back to connecting to an SMTP
    server on localhost.
    
    Signed-off-by: Eric Wong <normalperson@........>
    Signed-off-by: Junio C Hamano <junkio@.......>

commit 994d6c66d360198c16eb483e4f33d412358f30a1
Author: Eric Wong <normalperson@........>
Date:   Sun May 14 19:13:44 2006 -0700

    send-email: address expansion for common mailers
    
    mutt, gnus, pine, mailrc formats should be supported.
    
    Testing and feedback for correctness and completeness of all formats
    and support for additional formats would be good.
    
    Nested expansions are also supported.
    
    More than one alias file to be used.
    
    All alias file formats must still of be the same type, though.
    
    Two git repo-config keys are required for this
    (as suggested by Ryan Anderson):
    
        sendemail.aliasesfile = <filename of aliases file>
        sendemail.aliasfiletype = (mutt|gnus|pine|mailrc)
    
    Signed-off-by: Eric Wong <normalperson@........>
    Acked-by: Ryan Anderson <ryan@..............>
    Signed-off-by: Junio C Hamano <junkio@.......>

commit 782b3b6aafe8d2d270a5f6153c183e1bde7a030a
Merge: c1aee1f... e923eff...
Author: Junio C Hamano <junkio@.......>
Date:   Tue May 2 15:05:34 2006 -0700

    Merge branch 'fix'
    
    * fix:
      git-send-email: fix version string to be valid perl
      Give the user a hint for how to continue in the case that git-am fails because it requires user intervention


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git]
  2006-05-17 15:46 ` Alexey I. Froloff
  2006-05-17 15:55   ` [devel] git-send-email Dmitry V. Levin
@ 2006-05-17 16:15   ` Sergey Vlasov
  1 sibling, 0 replies; 4+ messages in thread
From: Sergey Vlasov @ 2006-05-17 16:15 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 958 bytes --]

On Wed, May 17, 2006 at 07:46:19PM +0400, Alexey I. Froloff wrote:
> P.S. А git-send-email принципиально не умеет работать через
> /usr/sbin/sendmail -t ?

В git.git#master позавчера приделали поддержку.  Точнее, изначально она
там была, поскольку использовался модуль Mail::Sendmail, но потом из-за
ругани по поводу использования нестандартного модуля код переписали с
использованием имеющегося в комплекте Perl модуля Net::SMTP, который не
умеет работать через /usr/sbin/sendmail.  Теперь поддержку добавили снова,
но без использования дополнительных модулей; правда, вот как раз опция -t
там не передаётся:

+	if ($smtp_server =~ m#^/#) {
+		my $pid = open my $sm, '|-';
+		defined $pid or die $!;
+		if (!$pid) {
+			exec($smtp_server,'-i',@recipients) or die $!;
+		}
+		print $sm "$header\n$message";
+		close $sm or die $?;

Конечно, можно что-нибудь засунуть через --smtp-server (из конфига эту
опцию оно тоже брать не умеет).

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-05-17 16:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-17 12:38 [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git] Anton Farygin
2006-05-17 15:46 ` Alexey I. Froloff
2006-05-17 15:55   ` [devel] git-send-email Dmitry V. Levin
2006-05-17 16:15   ` [devel] [Fwd: [ANNOUNCE] tig - text-mode interface for git] Sergey Vlasov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git