Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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

    Merge branch 'jk/maint-advise-vaddf'

    gitster authored
    The advise() function did not use varargs correctly to format
    its message.
    
    * jk/maint-advise-vaddf:
      advice: pass varargs to strbuf_vaddf, not strbuf_addf
Commits on Jul 23, 2012
  1. @peff @gitster

    advice: pass varargs to strbuf_vaddf, not strbuf_addf

    peff authored gitster committed
    The advise() function takes a variable number of arguments
    and converts them into a va_list object to pass to strbuf
    for handling. However, we accidentally called strbuf_addf
    (that takes a variable number of arguments) instead of
    strbuf_vaddf (that takes a va_list).
    
    This bug dates back to v1.7.8.1-1-g23cb5bf, but we never
    noticed because none of the current callers passes a string
    with a format specifier in it. And the compiler did not
    notice because the format string is not available at
    compile time.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 20, 2012
  1. @ctiwald @gitster

    push: Provide situational hints for non-fast-forward errors

    ctiwald authored gitster committed
    Pushing a non-fast-forward update to a remote repository will result in
    an error, but the hint text doesn't provide the correct resolution in
    every case. Give better resolution advice in three push scenarios:
    
    1) If you push your current branch and it triggers a non-fast-forward
    error, you should merge remote changes with 'git pull' before pushing
    again.
    
    2) If you push to a shared repository others push to, and your local
    tracking branches are not kept up to date, the 'matching refs' default
    will generate non-fast-forward errors on outdated branches. If this is
    your workflow, the 'matching refs' default is not for you. Consider
    setting the 'push.default' configuration variable to 'current' or
    'upstream' to ensure only your current branch is pushed.
    
    3) If you explicitly specify a ref that is not your current branch or
    push matching branches with ':', you will generate a non-fast-forward
    error if any pushed branch tip is out of date. You should checkout the
    offending branch and merge remote changes before pushing again.
    
    Teach transport.c to recognize these scenarios and configure push.c
    to hint for them. If 'git push's default behavior changes or we
    discover more scenarios, extension is easy. Standardize on the
    advice API and add three new advice variables, 'pushNonFFCurrent',
    'pushNonFFDefault', and 'pushNonFFMatching'. Setting any of these
    to 'false' will disable their affiliated advice. Setting
    'pushNonFastForward' to false will disable all three, thus preserving the
    config option for users who already set it, but guaranteeing new
    users won't disable push advice accidentally.
    
    Based-on-patch-by: Junio C Hamano <gitster@pobox.com>
    Signed-off-by: Christopher Tiwald <christiwald@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 1, 2012
  1. @gitster

    Merge branch 'nd/clone-detached'

    gitster authored
    * nd/clone-detached:
      clone: fix up delay cloning conditions
      push: do not let configured foreign-vcs permanently clobbered
      clone: print advice on checking out detached HEAD
      clone: allow --branch to take a tag
      clone: refuse to clone if --branch points to bogus ref
      clone: --branch=<branch> always means refs/heads/<branch>
      clone: delay cloning until after remote HEAD checking
      clone: factor out remote ref writing
      clone: factor out HEAD update code
      clone: factor out checkout code
      clone: write detached HEAD in bare repositories
      t5601: add missing && cascade
Commits on Jan 17, 2012
  1. @pclouds @gitster

    clone: print advice on checking out detached HEAD

    pclouds authored gitster committed
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Dec 22, 2011
  1. @gitster

    i18n of multi-line advice messages

    gitster authored
    Advice messages are by definition meant for human end-users, and prime
    candidates for i18n/l10n. They tend to also be more verbose to be helpful,
    and need to be longer than just one line.
    
    Although we do not have parameterized multi-line advice messages yet, once
    we do, we cannot emit such a message like this:
    
        advise(_("Please rename %s to something else"), gostak);
        advise(_("so that we can avoid distimming %s unnecessarily."), doshes);
    
    because some translations may need to have the replacement of 'gostak' on
    the second line (or 'doshes' on the first line). Some languages may even
    need to use three lines in order to fit the same message within a
    reasonable width.
    
    Instead, it has to be a single advise() construct, like this:
    
        advise(_("Please rename %s to something else\n"
                 "so that we can avoid distimming %s unnecessarily."),
               gostak, doshes);
    
    Update the advise() function and its existing callers to
    
     - take a format string that can be multi-line and translatable as a
       whole;
     - use the string and the parameters to form a localized message; and
     - show each line in the result with the localization of the "hint: ".
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 4, 2011
  1. @artagnon @gitster

    advice: Introduce error_resolve_conflict

    artagnon authored gitster committed
    Enable future callers to report a conflict and not die immediately by
    introducing a new function called error_resolve_conflict.
    Re-implement die_resolve_conflict as a call to error_resolve_conflict
    followed by a call to die.  Consequently, the message printed by
    die_resolve_conflict changes from
    
      fatal: 'commit' is not possible because you have unmerged files.
             Please, fix them up in the work tree ...
             ...
    
    to
    
      error: 'commit' is not possible because you have unmerged files.
      hint: Fix them up in the work tree ...
      hint: ...
      fatal: Exiting because of an unresolved conflict.
    
    Hints are printed using the same advise function introduced in
    v1.7.3-rc0~26^2~3 (Introduce advise() to print hints, 2010-08-11).
    
    Inspired-by: Christian Couder <chistian.couder@gmail.com>
    Helped-by: Jonathan Nieder <jrnieder@gmail.com>
    Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 30, 2010
  1. @gitster

    Reword "detached HEAD" notification

    gitster authored
    The old "advice" message explained how to create a branch after going into
    a detached HEAD state but didn't make it clear why the user may want to do
    so.  Also "moving to ... which isn't a local branch" was unclear if it is
    complaining, if it is describing the new state, or if it is explaining why
    the HEAD is detached (the true reason is the last one).
    
    Give the established phrase 'detached HEAD' first to make it easy for
    users to look up the concept in documentation, and briefly describe what
    can be done in the state (i.e. play around without having to clean up)
    before telling the user how to keep what was done during the temporary
    state.
    
    Allow the long description to be hidden by setting advice.detachedHead
    configuration to false.
    
    We might want to customize the advice depending on how the commit to check
    out was spelled (e.g. instead of "new-branch-name", we way want to say
    "topic" when "git checkout origin/topic" triggered this message) in later
    updates, but this encapsulates that into a separate function and it should
    be a good first step.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 20, 2010
  1. @gitster

    Merge branch 'mm/conflict-advice'

    gitster authored
    * mm/conflict-advice:
      Be more user-friendly when refusing to do something because of conflict.
    
    Conflicts:
    	Documentation/config.txt
    	advice.c
    	advice.h
Commits on Jan 14, 2010
  1. @peff @gitster

    commit: allow suppression of implicit identity advice

    peff authored gitster committed
    We now nag the user with a giant warning when their identity
    was pulled from the username, hostname, and gecos
    information, in case it is not correct. Most users will
    suppress this by simply setting up their information
    correctly.
    
    However, there may be some users who consciously want to use
    that information, because having the value change from host
    to host contains useful information. These users can now set
    advice.implicitidentity to false to suppress the message.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 12, 2010
  1. @moy @gitster

    Be more user-friendly when refusing to do something because of conflict.

    moy authored gitster committed
    Various commands refuse to run in the presence of conflicts (commit,
    merge, pull, cherry-pick/revert). They all used to provide rough, and
    inconsistant error messages.
    
    A new variable advice.resolveconflict is introduced, and allows more
    verbose messages, pointing the user to the appropriate solution.
    
    For commit, the error message used to look like this:
    
    $ git commit
    foo.txt: needs merge
    foo.txt: unmerged (c34a92682e0394bc0d6f4d4a67a8e2d32395c169)
    foo.txt: unmerged (3afcd75de8de0bb5076942fcb17446be50451030)
    foo.txt: unmerged (c9785d77b76dfe4fb038bf927ee518f6ae45ede4)
    error: Error building trees
    
    The "need merge" line is given by refresh_cache. We add the IN_PORCELAIN
    option to make the output more consistant with the other porcelain
    commands, and catch the error in return, to stop with a clean error
    message. The next lines were displayed by a call to cache_tree_update(),
    which is not reached anymore if we noticed the conflict.
    
    The new output looks like:
    
    U       foo.txt
    fatal: 'commit' is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>' as
    appropriate to mark resolution and make a commit, or use 'git commit -a'.
    
    Pull is slightly modified to abort immediately if $GIT_DIR/MERGE_HEAD
    exists instead of waiting for merge to complain.
    
    The behavior of merge and the test-case are slightly modified to reflect
    the usual flow: start with conflicts, fix them, and afterwards get rid of
    MERGE_HEAD, with different error messages at each stage.
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 23, 2009
  1. @moy @gitster

    merge-recursive: point the user to commit when file would be overwrit…

    moy authored gitster committed
    …ten.
    
    The commit-before-pull is well accepted in the DVCS community, but is
    confusing some new users. This should get them back in the right way when
    the problem occurs.
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 12, 2009
  1. @peff @gitster

    status: make "how to stage" messages optional

    peff authored gitster committed
    These messages are nice for new users, but experienced git
    users know how to manipulate the index, and these messages
    waste a lot of screen real estate.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @peff @gitster

    push: make non-fast-forward help message configurable

    peff authored gitster committed
    This message is designed to help new users understand what
    has happened when refs fail to push. However, it does not
    help experienced users at all, and significantly clutters
    the output, frequently dwarfing the regular status table and
    making it harder to see.
    
    This patch introduces a general configuration mechanism for
    optional messages, with this push message as the first
    example.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Something went wrong with that request. Please try again.