Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Nov 28, 2011
  1. @gitster

    Git 1.7.8-rc4

    gitster authored
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 23, 2011
  1. @vfr-nl @gitster

    builtin-reset: Documentation update

    vfr-nl authored gitster committed
    The second mode of 'git reset' is defined by the --patch
    option, while the third mode is defined by the <mode> option.
    Hence, these options are mandatory in the description of the
    individual modes.
    
    Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @vfr-nl @gitster

    builtin-branch: Fix crash on invalid use of --force

    vfr-nl authored gitster committed
    The option --force should not put us in 'create branch' mode. The
    fact that this option is only valid in 'create branch' mode is
    already caught by the the next 'if' in which we assure that we
    are in the correct mode.
    
    Without this patch, "git branch -f" without any other argument ends
    up calling create_branch without any branch name.
    
    Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @jrn @gitster

    revert --abort: do not leave behind useless sequencer-old directory

    jrn authored gitster committed
    The "git cherry-pick --abort" command currently renames the
    .git/sequencer directory to .git/sequencer-old instead of removing it
    on success due to an accident.  cherry-pick --abort is designed to
    work in three steps:
    
     1) find which commit to roll back to
     2) call "git reset --merge <commit>" to move to that commit
     3) remove the .git/sequencer directory
    
    But the careless author forgot step 3 entirely.  The only reason the
    command worked anyway is that "git reset --merge <commit>" renames the
    .git/sequencer directory as a secondary effect --- after moving to
    <commit>, or so the logic goes, it is unlikely but possible that the
    caller of git reset wants to continue the series of cherry-picks that
    was in progress, so git renames the sequencer state to
    .git/sequencer-old to be helpful while allowing the cherry-pick to be
    resumed if the caller did not want to end the sequence after all.
    
    By running "git cherry-pick --abort", the operator has clearly
    indicated that she is not planning to continue cherry-picking.  Remove
    the (renamed) .git/sequencer directory as intended all along.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. @gitster

    Fix revert --abort on Windows

    Johannes Sixt authored gitster committed
    On Windows, it is not possible to rename or remove a directory that has
    open files. 'revert --abort' renamed .git/sequencer when it still had
    .git/sequencer/head open. Close the file as early as possible to allow
    the rename operation on Windows.
    
    Signed-off-by: Johannes Sixt <j6t@kdbg.org>
    Acked-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. @pclouds @gitster

    revert: do not pass non-literal string as format to git_path()

    pclouds authored gitster committed
    This fixes the following warning.
    
        CC builtin/revert.o
    builtin/revert.c: In function ‘write_cherry_pick_head’:
    builtin/revert.c:311: warning: format not a string literal and no format arguments
    
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. @gitster

    Update 1.7.8 draft release notes in preparation for rc4

    gitster authored
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. @gitster

    Merge branch 'jn/revert-quit'

    gitster authored
    * jn/revert-quit:
      revert: remove --reset compatibility option
      revert: introduce --abort to cancel a failed cherry-pick
      revert: write REVERT_HEAD pseudoref during conflicted revert
      revert: improve error message for cherry-pick during cherry-pick
      revert: rearrange pick_revisions() for clarity
      revert: rename --reset option to --quit
  8. @jrn @gitster

    revert: remove --reset compatibility option

    jrn authored gitster committed
    Remove the "git cherry-pick --reset" option, which has a different
    preferred spelling nowadays ("--quit").  Luckily the old --reset name
    was not around long enough for anyone to get used to it.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  9. @jrn @gitster

    revert: introduce --abort to cancel a failed cherry-pick

    jrn authored gitster committed
    After running some ill-advised command like "git cherry-pick
    HEAD..linux-next", the bewildered novice may want to return to more
    familiar territory.  Introduce a "git cherry-pick --abort" command
    that rolls back the entire cherry-pick sequence and places the
    repository back on solid ground.
    
    Just like "git merge --abort", this internally uses "git reset
    --merge", so local changes not involved in the conflict resolution are
    preserved.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 22, 2011
  1. @jrn @gitster

    revert: write REVERT_HEAD pseudoref during conflicted revert

    jrn authored gitster committed
    When conflicts are encountered while reverting a commit, it can be
    handy to have the name of that commit easily available.  For example,
    to produce a copy of the patch to refer to while resolving conflicts:
    
    	$ git revert 2eceb2a8
    	error: could not revert 2eceb2a8... awesome, buggy feature
    	$ git show -R REVERT_HEAD >the-patch
    	$ edit $(git diff --name-only)
    
    Set a REVERT_HEAD pseudoref when "git revert" does not make a commit,
    for cases like this.  This also makes it possible for scripts to
    distinguish between a revert that encountered conflicts and other
    sources of an unmerged index.
    
    After successfully committing, resetting with "git reset", or moving
    to another commit with "git checkout" or "git reset", the pseudoref is
    no longer useful, so remove it.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @jrn @gitster

    revert: improve error message for cherry-pick during cherry-pick

    jrn authored gitster committed
    In the spirit of v1.6.3.3~3^2 (refuse to merge during a merge,
    2009-07-01), "git cherry-pick" refuses to start a new cherry-pick when
    in the middle of an existing conflicted cherry-pick in the following
    sequence:
    
     1. git cherry-pick HEAD..origin
     2. resolve conflicts
     3. git cherry-pick HEAD..origin (instead of "git cherry-pick
        --continue", by mistake)
    
    Good.  However, the error message on attempting step 3 is more
    convoluted than necessary:
    
      $ git cherry-pick HEAD..origin
      error: .git/sequencer already exists.
      error: A cherry-pick or revert is in progress.
      hint: Use --continue to continue the operation
      hint: or --quit to forget about it
      fatal: cherry-pick failed
    
    Clarify by removing the redundant first "error:" message, simplifying
    the advice, and using lower-case and no full stops to be consistent
    with other commands that prefix their messages with "error:", so it
    becomes
    
      error: a cherry-pick or revert is already in progress
      hint: try "git cherry-pick (--continue | --quit)"
      fatal: cherry-pick failed
    
    The "fatal: cherry-pick failed" line seems unnecessary, too, but
    that can be fixed some other day.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @jrn @gitster

    revert: rearrange pick_revisions() for clarity

    jrn authored gitster committed
    Deal completely with "cherry-pick --quit" and --continue at the
    beginning of pick_revisions(), leaving the rest of the function for
    the more interesting "git cherry-pick <commits>" case.
    
    No functional change intended.  The impact is just to unindent the
    code a little.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. @jrn @gitster

    revert: rename --reset option to --quit

    jrn authored gitster committed
    The option to "git cherry-pick" and "git revert" to discard the
    sequencer state introduced by v1.7.8-rc0~141^2~6 (revert: Introduce
    --reset to remove sequencer state, 2011-08-04) has a confusing name.
    Change it now, while we still have the time.
    
    The new name for "cherry-pick, please get out of my way, since I've
    long forgotten about the sequence of commits I was cherry-picking when
    you wrote that old .git/sequencer directory" is --quit.  Mnemonic:
    this is analagous to quiting a program the user is no longer using ---
    we just want to get out of the multiple-command cherry-pick procedure
    and not to reset HEAD or rewind any other old state.
    
    The "--reset" option is kept as a synonym to minimize the impact.  We
    might consider dropping it for simplicity in a separate patch, though.
    
    Adjust documentation and tests to use the newly preferred name (--quit)
    instead of --reset.  While at it, let's clarify the short descriptions
    of these operations in "-h" output.
    
    Before:
    
    	--reset		forget the current operation
    	--continue	continue the current operation
    
    After:
    
    	--quit		end revert or cherry-pick sequence
    	--continue	resume revert or cherry-pick sequence
    
    Noticed-by: Phil Hord <phil.hord@gmail.com>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 21, 2011
  1. @gitster

    Merge branch 'maint'

    gitster authored
    * maint:
      documentation fix: git difftool uses diff tools, not merge tools.
  2. @gitster

    Merge branch 'rr/misc-fixes'

    gitster authored
    * rr/misc-fixes:
      convert.c: Fix return type of git_path_check_eol()
  3. @gitster

    convert.c: Fix return type of git_path_check_eol()

    Ramsay Jones authored gitster committed
    The git_path_check_eol() function converts a string value to the
    corresponding 'enum eol' value. However, the function is currently
    declared to return an 'enum crlf_action', which causes sparse to
    complain thus:
    
            SP convert.c
        convert.c:736:50: warning: mixing different enum types
        convert.c:736:50:     int enum crlf_action  versus
        convert.c:736:50:     int enum eol
    
    In order to suppress the warning, we simply correct the return type
    in the function declaration.
    
    Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. @th-h @gitster

    documentation fix: git difftool uses diff tools, not merge tools.

    th-h authored gitster committed
    Let the documentation for -t list valid *diff* tools,
    not valid *merge* tools.
    
    Signed-off-by: Thomas Hochstein <thh@inter.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. @gitster

    config.c: Fix a static buffer overwrite bug by avoiding mkpath()

    Ramsay Jones authored gitster committed
    On cygwin, test number 21 of t3200-branch.sh (git branch -m q q2
    without config should succeed) fails. The failure involves the
    functions from path.c which parcel out internal static buffers
    from the git_path() and mkpath() functions.
    
    In particular, the rename_ref() function calls safe_create_leading\
    _directories() with a filename returned by git_path("logs/%s", ref).
    safe_create_leading_directories(), in turn, calls stat() on each
    element of the path it is given. On cygwin, this leads to a call
    to git_config() for each component of the path, since this test
    explicitly removes the config file. git_config() calls mkpath(), so
    on the fourth component of the path, the original buffer passed
    into the function is overwritten with the config filename.
    
    Note that this bug is specific to cygwin and it's schizophrenic
    stat() functions (see commits adbc0b6, 7faee6b and 7974843). The
    lack of a config file and a path with at least four elements is
    also important to trigger the bug.
    
    In order to fix the problem, we replace the call to mkpath() with
    a call to mksnpath() and provide our own buffer.
    
    Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. @gitster

    t5501-*.sh: Fix url passed to clone in setup test

    Ramsay Jones authored gitster committed
    In particular, the url passed to git-clone has an extra '/' given
    after the 'file://' schema prefix, thus:
    
        git clone --reference=original "file:///$(pwd)/original one
    
    Once the prefix is removed, the remainder of the url looks something
    like "//home/ramsay/git/t/...", which is then interpreted as an
    network path. This then results in a "Permission denied" error, like
    so:
    
        ramsay $ ls //home
        ls: cannot access //home: No such host or network path
        ramsay $ ls //home/ramsay
        ls: cannot access //home/ramsay: Permission denied
        ramsay $
    
    In order to fix the problem, we simply remove the extraneous '/'
    character from the url.
    
    Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 18, 2011
  1. @gitster

    Hopefully final update of release notes before 1.7.8 final

    gitster authored
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @gitster

    Merge branch 'rr/misc-fixes'

    gitster authored
    * rr/misc-fixes:
      git-compat-util: don't assume value for undefined variable
      sha1_file: don't mix enum with int
      convert: don't mix enum with int
      http: remove unused function hex()
  3. @jrn @gitster

    Makefile: add option to disable automatic dependency generation

    jrn authored gitster committed
    Now that the COMPUTE_HEADER_DEPENDENCIES feature is turned on
    automatically for compilers that support it (see v1.7.8-rc0~142^2~1,
    2011-08-18), there is no easy way to force it off.  For example,
    setting COMPUTE_HEADER_DEPENDENCIES to the empty string in config.mak
    just tells the makefile to treat it as undefined and run a test
    command to see if the -MMD option is supported.
    
    So allow setting COMPUTE_HEADER_DEPENDENCIES=no to explicitly force
    the feature off.  The new semantics:
    
     - "yes" means to explicitly enable the feature
     - "no" means to disable it
     - "auto" means to autodetect
    
    The default is still "auto".  Any value other than these three will
    cause the build to error out with a descriptive message so typos and
    stale settings in config.mak don't result in mysterious behavior.
    
    	Makefile:1278: *** please set COMPUTE_HEADER_DEPENDENCIES to
    	yes, no, or auto (not "1").  Stop.
    
    So now when someone using a compiler without -MMD support reports
    trouble building git, you can reproduce it by running "make
    COMPUTE_HEADER_DEPENDENCIES=no".
    
    Suggested-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Improved-by: Junio C Hamano <gitster@pobox.com>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Tested-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. @gitster

    Sync with 1.7.7.4

    gitster authored
  5. @gitster

    Git 1.7.7.4

    gitster authored
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. @gitster

    Merge branch 'jc/maint-name-rev-all' into maint

    gitster authored
    * jc/maint-name-rev-all:
      name-rev --all: do not even attempt to describe non-commit object
  7. @gitster

    Merge branch 'ml/mailmap' into maint

    gitster authored
    * ml/mailmap:
      mailmap: xcalloc mailmap_info
    
    Conflicts:
    	mailmap.c
  8. @gitster

    Merge branch 'jn/maint-notes-avoid-va-args' into maint

    gitster authored
    * jn/maint-notes-avoid-va-args:
      notes merge: eliminate OUTPUT macro
    
    Conflicts:
    	notes-merge.c
  9. @jrn @gitster

    Makefile: add missing header file dependencies

    jrn authored gitster committed
    When the streaming filter API was introduced in v1.7.7-rc0~60^2~7
    (2011-05-20), we forgot to add its header to LIB_H.  Most translation
    units depend on streaming.h via cache.h.
    
    v1.7.5-rc0~48 (Fix sparse warnings, 2011-03-22) introduced undeclared
    dependencies by url.o on url.h and thread-utils.o on thread-utils.h.
    
    Noticed by make CHECK_HEADER_DEPENDENCIES=1.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  10. @jrn @gitster

    notes merge: eliminate OUTPUT macro

    jrn authored gitster committed
    The macro is variadic, which breaks support for pre-C99 compilers,
    and it hides an "if", which can make code hard to understand on
    first reading if some arguments have side-effects.
    
    The OUTPUT macro seems to have been inspired by the "output" function
    from merge-recursive.  But that function in merge-recursive exists to
    indent output based on the level of recursion and there is no similar
    justification for such a function in "notes merge".
    
    Noticed with 'make CC="gcc -std=c89 -pedantic"':
    
     notes-merge.c:24:22: warning: anonymous variadic macros were introduced in C99 [-Wvariadic-macros]
    
    Encouraged-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Acked-by: Johan Herland <johan@herland.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 17, 2011
  1. @jrn @gitster

    do not let git_path clobber errno when reporting errors

    jrn authored gitster committed
    Because git_path() calls vsnprintf(), code like
    
    	fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
    	die_errno(_("Could not write to '%s'"), git_path("SQUASH_MSG"));
    
    can end up printing an error indicator from vsnprintf() instead of
    open() by mistake.  Store the path we are trying to write to in a
    temporary variable and pass _that_ to die_errno(), so the messages
    written by git cherry-pick/revert and git merge can avoid this source
    of confusion.
    
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @gitster

    Git 1.7.8-rc3

    gitster authored
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @gitster

    refs: loosen over-strict "format" check

    gitster authored
    The add_extra_ref() interface is used to add an extra-ref that is _not_
    our ref for the purpose of helping auto-following of tags and reducing
    object transfer from remote repository, and they are typically formatted
    as a tagname followed by ^{} to make sure no valid refs match that
    pattern. In other words, these entries are deliberately formatted not to
    pass check-refname-format test.
    
    A recent series however added a test unconditionally to the add_ref()
    function that is called from add_extra_ref(). The check may be sensible
    for other two callsites of the add_ref() interface, but definitely is
    a wrong thing to do in add_extra_ref(). Disable it.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Acked-by: Michael Haggerty <mhagger@alum.mit.edu>
  4. @elmarco @gitster

    mailmap: xcalloc mailmap_info

    elmarco authored gitster committed
    This is to avoid reaching free of uninitialized members.
    
    With an invalid .mailmap (and perhaps in other cases), it can reach
    free(mi->name) with garbage for example.
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 16, 2011
  1. @artagnon @gitster

    revert: prettify fatal messages

    artagnon authored gitster committed
    Some of the fatal messages printed by revert and cherry-pick look ugly
    like the following:
    
      fatal: Could not open .git/sequencer/todo.: No such file or directory
    
    The culprit here is that these callers of the die_errno() function did not
    take it into account that the message string they give to it is followed
    by ": <strerror>", hence the message typically should not end with the
    full-stop.
    
    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Something went wrong with that request. Please try again.