Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jul 25, 2012
  1. @gitster

    help.c::exclude_cmds(): plug a leak

    gitster authored
    Command name removed from the list of commands via the exclusion
    were overwritten and lost without being freed.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @peff @gitster

    help.c::uniq: plug a leak

    peff authored gitster committed
    We observe that the j-1 element can serve the same purpose as the i-1
    element that we use in the strcmp(); it is either:
    
      1. Exactly i-1, when the loop begins (and until we see a duplicate).
    
      2. The same pointer that was stored at i-1 (if it was not a duplicate,
         and we just copied it into place).
    
      3. A pointer to an equivalent string (i.e., we rejected i-1 _because_
         it was identical to j-1).
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 3, 2012
  1. @peff @gitster

    move git_version_string into version.c

    peff authored gitster committed
    The global git_version_string currently lives in git.c, but
    doesn't have anything to do with the git wrapper. Let's move
    it into its own file, where it will be more appropriate to
    build more version-related functions.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 29, 2012
  1. @moy @gitster

    Reduce cost of deletion in levenstein distance (4 -> 3)

    moy authored gitster committed
    Before this patch, a character deletion has the same cost as 2 swaps, or
    4 additions, so Git prefers suggesting a completely scrambled command
    name to removing a character. For example, "git tags" suggests "stage",
    but not "tag".
    
    By setting the deletion cost to 3, we keep it higher than swaps or
    additions, but prefer 1 deletion to 2 swaps. "git tags" now suggests
    "tag" in addition to staged.
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 3, 2012
  1. @gitster

    Merge branch 'nd/columns'

    gitster authored
    A couple of commands learn --column option to produce columnar output.
    
    By Nguyễn Thái Ngọc Duy (9) and Zbigniew Jędrzejewski-Szmek (1)
    * nd/columns:
      tag: add --column
      column: support piping stdout to external git-column process
      status: add --column
      branch: add --column
      help: reuse print_columns() for help -a
      column: add dense layout support
      t9002: work around shells that are unable to set COLUMNS to 1
      column: add columnar layout
      Stop starting pager recursively
      Add column layout skeleton and git-column
Commits on Apr 27, 2012
  1. @pclouds @gitster

    help: reuse print_columns() for help -a

    pclouds authored gitster committed
    "help -a" also respects column.ui (and column.help if presents)
    
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 25, 2012
  1. @pclouds @gitster

    help: replace underlining "help -a" headers using hyphens with a blan…

    pclouds authored gitster committed
    …k line
    
    We used to underline a header text, like this:
    
        This is a header
        ----------------
        content...
    
    But calculating text length so that the dashes align with the text
    could get complicated because the text could be in any charset in
    translated Git.
    
    There is no point to use this pseudo underline; simply a blank
    line would do and it even makes it easier to read:
    
        This is a header
    
        content...
    
    While at it, give translators more context to translate, e.g.
    e.g.  "git commands available..." instead of "%s available..."
    
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 24, 2012
  1. @pclouds @gitster

    i18n: help: mark strings for translation

    pclouds authored gitster committed
    This patch also marks most common commands' synopsis for translation
    so that "git help" gives a friendly listing.
    
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 13, 2012
  1. @keszybz @gitster

    pager: find out the terminal width before spawning the pager

    keszybz authored gitster committed
    term_columns() checks for terminal width via ioctl(2) on the standard
    output, but we spawn the pager too early for this check to be useful.
    
    The effect of this buglet can be observed by opening a wide terminal and
    running "git -p help --all", which still shows 80-column output, while
    "git help --all" uses the full terminal width. Run the check before we
    spawn the pager to fix this.
    
    While at it, move term_columns() to pager.c and export it from cache.h so
    that callers other than the help subsystem can use it.
    
    Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 22, 2011
  1. @gitster

    Merge branch 'ms/help-unknown'

    gitster authored
    * ms/help-unknown:
      help_unknown_cmd: do not propose an "unknown" cmd
Commits on Jul 8, 2011
  1. @gitster

    help_unknown_cmd: do not propose an "unknown" cmd

    Michael Schubert authored gitster committed
    When executing an external shell script like `git foo` with a bad
    shebang, e.g. "#!/usr/bin/not/existing", execvp returns 127 (ENOENT).
    
    Since help_unknown_cmd proposes the use of all external commands similar
    to the name of the "unknown" command, it suggests the just failed command
    again. Stop it and give some advice to the user.
    
    Helped-by: Jeff King <peff@peff.net>
    Signed-off-by: Michael Schubert <mschub@elegosoft.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 16, 2011
  1. @gitster

    help.c: Fix detection of custom merge strategy on cygwin

    Ramsay Jones authored gitster committed
    Test t7606-merge-custom.sh fails on cygwin when git-merge fails
    with an "Could not find merge strategy 'theirs'" error, despite
    the test correctly preparing an (executable) git-merge-theirs
    script.
    
    The cause of the failure is the mis-detection of the executable
    status of the script, by the is_executable() function, while the
    load_command_list() function is searching the path for additional
    merge strategy programs.
    
    Note that the l/stat() "functions" on cygwin are somewhat
    schizophrenic (see commits adbc0b6, 7faee6b and 7974843), and
    their behaviour depends on the timing of various git setup and
    config function calls. In particular, until the "git_dir" has
    been set (have_git_dir() returns true), the real cygwin (POSIX
    emulating) l/stat() functions are called. Once "git_dir" has
    been set, the "native Win32 API" implementations of l/stat()
    may, or may not, be called depending on the setting of the
    core.filemode and core.ignorecygwinfstricks config variables.
    
    We also note that, since commit c869753, core.filemode is forced
    to false, even on NTFS, by git-init and git-clone. A user (or a
    test) can, of course, reset core.filemode to true explicitly if
    the filesystem supports it (and he doesn't use any problematic
    windows software). The test-suite currently runs all tests on
    cygwin with core.filemode set to false.
    
    Given the above, we see that the built-in merge strategies are
    correctly detected as executable, since they are checked for
    before "git_dir" is set, whereas all custom merge strategies are
    not, since they are checked for after "git_dir" is set.
    
    In order to fix the mis-detection problem, we change the code in
    is_executable() to re-use the conditional WIN32 code section,
    which actually looks at the content of the file to determine if
    the file is executable. On cygwin we also make the additional
    code conditional on the executable bit of the file mode returned
    by the initial stat() call. (only the real cygwin function would
    set the executable bit in the file mode.)
    
    Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Dec 5, 2010
  1. @kusma @gitster

    help: always suggest common-cmds if prefix of cmd

    kusma authored gitster committed
    If someone runs "git st", the command "git status" is not suggested
    because it's not one of the closest levenshtein-neighbour.
    
    Reserve the distance of 0 for common commands where the entered command
    is a prefixe, as these are often more likely to be what the user meant.
    
    This way, "git status" is the first suggestion, while a list of possible
    typos are still suggested as well.
    
    Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 16, 2010
  1. @gitster

    Remove hyphen from "git-command" in two error messages

    Pete Harlan authored gitster committed
    Signed-off-by: Pete Harlan <pgit@pcharlan.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Dec 16, 2009
  1. @gitster

    help.autocorrect: do not run a command if the command given is junk

    Johannes Sixt authored gitster committed
    If a given command is not found, then help.c tries to guess which one the
    user could have meant. If help.autocorrect is 0 or unset, then a list of
    suggestions is given as long as the dissimilarity between the given command
    and the candidates is not excessively high. But if help.autocorrect was
    non-zero (i.e., a delay after which the command is run automatically), the
    latter restriction on dissimilarity was not obeyed.
    
    In my case, this happened:
    
     $ git ..daab02
     WARNING: You called a Git command named '..daab02', which does not exist.
     Continuing under the assumption that you meant 'read-tree'
     in 4.0 seconds automatically...
    
    The patch reuses the similarity limit that is also applied when the list of
    suggested commands is printed.
    
    Signed-off-by: Johannes Sixt <j6t@kdbg.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 19, 2009
  1. @lznuaa @gitster

    Test for WIN32 instead of __MINGW32_

    lznuaa authored gitster committed
    The code which is conditional on MinGW32 is actually conditional on Windows.
    Use the WIN32 symbol, which is defined by the MINGW32 and MSVC environments,
    but not by Cygwin.
    
    Define SNPRINTF_SIZE_CORR=1 for MSVC too, as its vsnprintf function does
    not add NUL at the end of the buffer if the result fits the buffer size
    exactly.
    
    Signed-off-by: Frank Li <lznuaa@gmail.com>
    Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
    Acked-by: Johannes Sixt <j6t@kdbg.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @lznuaa @gitster

    Avoid declaration after statement

    lznuaa authored gitster committed
    MSVC does not understand this C99 style.
    
    Signed-off-by: Frank Li <lznuaa@gmail.com>
    Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
    Acked-by: Johannes Sixt <j6t@kdbg.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 12, 2009
  1. @gitster

    Merge branch 'maint-1.6.3' into maint

    gitster authored
    * maint-1.6.3:
      Change mentions of "git programs" to "git commands"
      Documentation: merge: one <remote> is required
      help.c: give correct structure's size to memset()
  2. @salty-horse @gitster

    Change mentions of "git programs" to "git commands"

    salty-horse authored gitster committed
    Most of the docs and printouts refer to "commands" when discussing what
    the end users call via the "git" top-level program. We should refer them
    as "git programs" when we discuss the fact that the commands are
    implemented as separate programs, but in other contexts, it is better to
    use the term "git commands" consistently.
    
    Signed-off-by: Ori Avtalion <ori@avtalion.name>
    Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @jherland @gitster

    help.c: give correct structure's size to memset()

    jherland authored gitster committed
    These two structures are of the same type, but we'd better be consistent.
    
    Signed-off-by: Johan Herland <johan@herland.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 23, 2009
  1. @MadCoder @gitster

    janitor: add DIV_ROUND_UP and use it.

    MadCoder authored gitster committed
    Signed-off-by: Pierre Habouzit <madcoder@debian.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 12, 2008
  1. @pieter @gitster

    git wrapper: also use aliases to correct mistyped commands

    pieter authored gitster committed
    Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 8, 2008
  1. @gitster

    Merge branch 'ar/autospell'

    gitster authored
    * ar/autospell:
      Add help.autocorrect to enable/disable autocorrecting
      git wrapper: DWIM mistyped commands
Commits on Aug 31, 2008
  1. @raalkml @gitster

    Add help.autocorrect to enable/disable autocorrecting

    raalkml authored gitster committed
    It is off(0) by default, to avoid scaring people unless they asked to.
    If set to a non-0 value, wait for that amount of deciseconds before
    running the corrected command.
    
    Suggested by Junio, so he has a chance to hit Ctrl-C.
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @dscho @gitster

    git wrapper: DWIM mistyped commands

    dscho authored gitster committed
    This patch introduces a modified Damerau-Levenshtein algorithm into
    Git's code base, and uses it with the following penalties to show some
    similar commands when an unknown command was encountered:
    
    	swap = 0, insertion = 1, substitution = 2, deletion = 4
    
    A typical output would now look like this:
    
    	$ git sm
    	git: 'sm' is not a git-command. See 'git --help'.
    
    	Did you mean one of these?
    		am
    		rm
    
    The cut-off is at similarity rating 6, which was empirically determined
    to give sensible results.
    
    As a convenience, if there is only one candidate, Git continues under
    the assumption that the user mistyped it.  Example:
    
    	$ git reabse
    	WARNING: You called a Git program named 'reabse', which does
    	not exist.
    	Continuing under the assumption that you meant 'rebase'
    	[...]
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 29, 2008
  1. @raalkml @gitster

    list_commands: only call git_exec_path if it is needed

    raalkml authored gitster committed
    Even if it always needed
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @raalkml @gitster

    Allow git help work without PATH set

    raalkml authored gitster committed
    Just because we can
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @raalkml @gitster

    Remove calculation of the longest command name from where it is not used

    raalkml authored gitster committed
    Just calculate it where it is needed - it is cheap and trivial,
    as all the lengths are already there (stored when creating the
    command lists).
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 3, 2008
  1. @gitster

    Builtin git-help.

    Miklos Vajna authored gitster committed
    This patch splits out git-help's functions to builtin-help.c and leaves
    only functions used by other builtins in help.c.
    
    First this removes git-help's functions from libgit which are not
    interesting for other builtins, second this makes 'git help help' work
    again.
    
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 31, 2008
  1. @gitster

    builtin-help: always load_command_list() in cmd_help()

    Miklos Vajna authored gitster committed
    When cmd_help() is called, we always need the list of main and other
    commands, not just when the list of all commands is shown. Before this
    patch 'git help diff' invoked 'man gitdiff' because cmd_to_page()
    thought 'diff' is not a git command.
    
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 30, 2008
  1. @gitster

    builtin-help: make some internal functions available to other builtins

    Miklos Vajna authored gitster committed
    Make load_command_list() capable of filtering for a given prefix and
    loading into a pair of "struct cmdnames" supplied by the caller.
    
    Make the static add_cmdname(), exclude_cmds() and is_in_cmdlist()
    functions non-static.
    
    Make list_commands() accept a custom title, and work from a pair of
    "struct cmdnames" supplied by the caller.
    
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 27, 2008
  1. @dscho @gitster

    Avoid chdir() in list_commands_in_dir()

    dscho authored gitster committed
    The function list_commands_in_dir() tried to be lazy and just chdir()
    to the directory which entries it listed, so that the check if the
    file is executable could be done on dir->d_name.
    
    However, there is no good reason to jump around wildly just to find
    all Git commands.
    
    Instead, have a strbuf and construct the full path dynamically.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 17, 2008
  1. @gitster

    Merge branch 'sb/dashless'

    gitster authored
    * sb/dashless:
      Make usage strings dash-less
      t/: Use "test_must_fail git" instead of "! git"
      t/test-lib.sh: exit with small negagive int is ok with test_must_fail
    
    Conflicts:
    	builtin-blame.c
    	builtin-mailinfo.c
    	builtin-mailsplit.c
    	builtin-shortlog.c
    	git-am.sh
    	t/t4150-am.sh
    	t/t4200-rerere.sh
Commits on Jul 13, 2008
  1. @sprohaska @gitster

    help (Windows): Display HTML in default browser using Windows' shell API

    sprohaska authored gitster committed
    The system's default browser for displaying HTML help pages is now used
    directly on Windows, instead of launching git-web--browser, which
    requires a Unix shell.  Avoiding MSYS' bash when possible is good
    because it avoids potential path translation issues.  In this case it is
    not too hard to avoid launching a shell, so let's avoid it.
    
    The Windows-specific code is implemented in compat/mingw.c to avoid
    platform-specific code in the main code base.  On Windows, open_html is
    provided as a define.  If open_html is not defined, git-web--browse is
    used.  This approach avoids platform-specific ifdefs by using
    per-function ifdefs.  The "ifndef open_html" together with the
    introductory comment should sufficiently warn developers, so that they
    hopefully will not break this mechanism.
    
    Signed-off-by: Steffen Prohaska <prohaska@zib.de>
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @sprohaska @gitster

    help.c: Add support for htmldir relative to git_exec_path()

    sprohaska authored gitster committed
    If htmldir (in the Makefile) is a relative path, this path will now be
    interpreted relative to git_exec_path.  This can be used to create an
    installation that can be moved to a different directory without
    re-compiling.  The Windows installer (msysgit) is an example for such
    a setup.
    
    Note that the Makefile maps htmldir to the define GIT_HTML_PATH.
    
    Signed-off-by: Steffen Prohaska <prohaska@zib.de>
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Something went wrong with that request. Please try again.