Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Jan 30, 2010

  1. Markus Heidelberg

    rebase: don't invoke the pager for each commit summary

    This regression was introduced by commit 0aa958d (rebase: replace
    antiquated sed invocation, 2010-01-24), which changed the invocation of
    "git rev-list | sed" to "git log".
    
    It can be reproduced by something like this:
    $ git rebase -s recursive origin/master
    
    Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 30, 2010 gitster committed January 30, 2010

Jan 25, 2010

  1. Stephen Boyd

    rebase: replace antiquated sed invocation

    Use the modern form of printing a commit subject instead of piping
    the output of rev-list to sed.
    
    Signed-off-by: Stephen Boyd <bebarino@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 24, 2010 gitster committed January 25, 2010

Jan 19, 2010

  1. Junio C Hamano

    Merge branch 'jc/rerere'

    * jc/rerere:
      Teach --[no-]rerere-autoupdate option to merge, revert and friends
    authored January 18, 2010

Jan 13, 2010

  1. Junio C Hamano

    Merge branch 'jc/checkout-merge-base'

    * jc/checkout-merge-base:
      rebase -i: teach --onto A...B syntax
      rebase: fix --onto A...B parsing and add tests
      "rebase --onto A...B" replays history on the merge base between A and B
      "checkout A...B" switches to the merge base between A and B
    authored January 13, 2010

Jan 07, 2010

  1. rebase: fix --onto A...B parsing and add tests

    The previous patch didn't parse "rebase --onto A...B" correctly when A
    isn't an empty string. It also tried to be careful to notice a case in
    which there are more than one merge bases, but forgot to give --all option
    to merge-base, making the test pointless.
    
    Fix these problems and add a test script to verify. Improvements to the
    script to parse A...B syntax was taken from review comments by Johannes
    Schindelin.
    
    Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 07, 2010 gitster committed January 07, 2010

Dec 04, 2009

  1. Junio C Hamano

    Teach --[no-]rerere-autoupdate option to merge, revert and friends

    Introduce a command line option to override rerere.autoupdate configuration
    variable to make it more useful.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored December 04, 2009

Nov 25, 2009

  1. Junio C Hamano

    Merge branch 'rs/work-around-grep-opt-insanity'

    * rs/work-around-grep-opt-insanity:
      Protect scripted Porcelains from GREP_OPTIONS insanity
      mergetool--lib: simplify guess_merge_tool()
    
    Conflicts:
    	git-instaweb.sh
    authored November 25, 2009

Nov 24, 2009

  1. Junio C Hamano

    Protect scripted Porcelains from GREP_OPTIONS insanity

    If the user has exported the GREP_OPTIONS environment variable, the output
    from "grep" and "egrep" in scripted Porcelains may be different from what
    they expect.  For example, we may want to count number of matching lines,
    by "grep" piped to "wc -l", and GREP_OPTIONS=-C3 will break such use.
    
    The approach taken by this change to address this issue is to protect only
    our own use of grep/egrep.  Because we do not unset it at the beginning of
    our scripts, hook scripts run from the scripted Porcelains are exposed to
    the same insanity this environment variable causes when grep/egrep is used
    to implement logic (e.g. "grep | wc -l"), and it is entirely up to the
    hook scripts to protect themselves.
    
    On the other hand, applypatch-msg hook may want to show offending words in
    the proposed commit log message using grep to the end user, and the user
    might want to set GREP_OPTIONS=--color to paint the match more visibly.
    The approach to protect only our own use without unsetting the environment
    variable globally will allow this use case.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 23, 2009

Nov 21, 2009

  1. Junio C Hamano

    "rebase --onto A...B" replays history on the merge base between A and B

    This is in spirit similar to "checkout A...B".  To re-queue a new set of
    patches for a series that the original author prepared to apply on 'next'
    on the same base as before, you would do something like this:
    
        $ git checkout next^0
        $ git am -s rerolled-series.mbox
        $ git rebase --onto next...jh/notes next
    
    The first two commands recreates commits to be rebased as the original
    author intended (i.e. applies directly on top of 'next'), and the rebase
    command replays that history on top of the same commit the series being
    replaced was built on (which is typically much older than the tip of
    'next').
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 20, 2009

Oct 25, 2009

  1. Felipe Contreras

    Use 'fast-forward' all over the place

    It's a compound word.
    
    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored October 24, 2009 gitster committed October 24, 2009

Sep 12, 2009

  1. Jeff King

    rebase: use plumbing to show dirty state

    Commit 4cfbe06 introduced the use of "git diff" to show
    dirty state in a format more familiar to users. However, it
    should have used the plumbing "git diff-files" instead.
    
    Not only is it good practice in general to use plumbing in
    scripts, but in this case we really don't want the automatic
    pager to kick in for an error message.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored September 09, 2009 gitster committed September 11, 2009

Aug 22, 2009

  1. Junio C Hamano

    Merge branch 'gb/apply-ignore-whitespace'

    * gb/apply-ignore-whitespace:
      git apply: option to ignore whitespace differences
    authored August 21, 2009

Aug 06, 2009

  1. Matthieu Moy

    rebase: consistent error messages for staged and unstaged changes.

    Previous version expose the output of the plumbing update-index to the
    user, which novice users have difficulty to understand.
    
    We still need to run update-index to refresh the cache (if
    diff.autorefreshindex is false, git diff won't do it).
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored August 05, 2009 gitster committed August 06, 2009

Aug 05, 2009

  1. Oblomov

    git apply: option to ignore whitespace differences

    Introduce --ignore-whitespace option and corresponding config bool to
    ignore whitespace differences while applying patches, akin to the
    'patch' program.
    
    'git am', 'git rebase' and the bash git completion are made aware of
    this option.
    
    Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored August 04, 2009 gitster committed August 05, 2009

Jul 02, 2009

  1. Junio C Hamano

    Merge branch 'sb/quiet-porcelains'

    * sb/quiet-porcelains:
      stash: teach quiet option
      am, rebase: teach quiet option
      submodule, repack: migrate to git-sh-setup's say()
      git-sh-setup: introduce say() for quiet options
      am: suppress apply errors when using 3-way
      t4150: test applying with a newline in subject
    authored July 01, 2009

Jun 18, 2009

  1. Stephen Boyd

    am, rebase: teach quiet option

    git-am and git-rebase are talkative scripts. Teach them to be quiet when
    told, allowing them to speak only when they fail or experience errors.
    
    The quiet option is maintained when git-am or git-rebase fails to apply
    a patch. This means subsequent --resolved, --continue, --skip, --abort
    invocations will be quiet if the original invocation was quiet.
    
    Drop a handful of >&2 redirection; the rest of the program sends all the
    info messages to stdout, not to stderr.
    
    Signed-off-by: Stephen Boyd <bebarino@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored June 16, 2009 gitster committed June 18, 2009

Jun 15, 2009

  1. Stephen Boyd

    pull, rebase: simplify to use die()

    Signed-off-by: Stephen Boyd <bebarino@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored June 14, 2009 gitster committed June 14, 2009

Mar 27, 2009

  1. rebase: fix typo (force_rebas -> force-rebas)

    Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 18, 2009 gitster committed March 27, 2009

Mar 19, 2009

  1. rebase: add options passed to git-am

    Add the options --committer-date-is-author-date and --ignore-date
    to git-rebase. They were introduced in commit a79ec62 for git-am.
    These options imply --force-rebase.
    
    Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 18, 2009 gitster committed March 18, 2009

Mar 11, 2009

  1. Junio C Hamano

    Merge branch 'tv/rebase-stat'

    * tv/rebase-stat:
      git-pull: Allow --stat and --no-stat to be used with --rebase
      git-rebase: Add --stat and --no-stat for producing diffstat on rebase
    authored March 11, 2009

Mar 05, 2009

  1. Junio C Hamano

    Merge branch 'sr/force-rebase'

    * sr/force-rebase:
      Teach rebase to rebase even if upstream is up to date
    authored March 05, 2009

Mar 03, 2009

  1. Tor Arne Vestbø

    git-rebase: Add --stat and --no-stat for producing diffstat on rebase

    The behavior of --verbose is unchanged, but uses a different state
    variable internally, so that the meaning of verbose output may be
    expanded without affecting the diffstat. This is also reflected in
    the documentation.
    
    The configuration option rebase.stat works the same was as merg.stat,
    but the default is currently false.
    
    Signed-off-by: Tor Arne Vestbø <torarnv@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 01, 2009 gitster committed March 02, 2009

Feb 18, 2009

  1. Jay Soffian

    disallow providing multiple upstream branches to rebase, pull --rebase

    It does not make sense to provide multiple upstream branches to either
    git pull --rebase, or to git rebase, so disallow both.
    
    Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored February 18, 2009 gitster committed February 18, 2009

Feb 14, 2009

  1. Sverre Rabbelier

    Teach rebase to rebase even if upstream is up to date

    Normally, if the current branch is up to date, the rebase is aborted.
    However, it may be desirable to allow rebasing even if the current
    branch is up to date. When using the '--whitespace=fix' option -f is
    implied.
    
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored February 13, 2009 gitster committed February 13, 2009

Jan 12, 2009

  1. trast

    rebase: learn to rebase root commit

    Teach git-rebase a new option --root, which instructs it to rebase the
    entire history leading up to <branch>.  This option must be used with
    --onto <newbase>, and causes commits that already exist in <newbase>
    to be skipped.  (Normal operation skips commits that already exist in
    <upstream> instead.)
    
    One possible use-case is with git-svn: suppose you start hacking
    (perhaps offline) on a new project, but later notice you want to
    commit this work to SVN.  You will have to rebase the entire history,
    including the root commit, on a (possibly empty) commit coming from
    git-svn, to establish a history connection.  This previously had to
    be done by cherry-picking the root commit manually.
    
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 05, 2009 gitster committed January 11, 2009

Dec 11, 2008

  1. Jeff King

    rebase: improve error messages about dirty state

    If you have unstaged changes in your working tree and try to
    rebase, you will get the cryptic "foo: needs update"
    message, but nothing else.  If you have staged changes, you
    get "your index is not up-to-date".
    
    Let's improve this situation in two ways:
    
     - for unstaged changes, let's also tell them we are
       canceling the rebase, and why (in addition to the "needs
       update" lines)
    
     - for the staged changes case, let's use language that is a
       little more clear to the user: their index contains
       uncommitted changes
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored December 10, 2008 gitster committed December 10, 2008

Dec 03, 2008

  1. Miklos Vajna

    rebase: use git rev-parse -q

    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored December 03, 2008 gitster committed December 03, 2008

Oct 19, 2008

  1. Junio C Hamano

    Merge branch 'ae/preservemerge'

    * ae/preservemerge:
      rebase: Support preserving merges in non-interactive mode
    authored October 19, 2008

Oct 06, 2008

  1. rebase --no-verify

    It is sometimes desirable to disable the safety net of pre-rebase hook
    when the user knows what he is doing (for example, when the original
    changes on the branch have not been shown to the public yet).
    
    This teaches --no-verify option to git-rebase, which is similar to the way
    pre-commit hook is bypassed by git-commit.
    
    Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    authored October 06, 2008 spearce committed October 06, 2008
  2. Teach rebase -i to honor pre-rebase hook

    The original git-rebase honored pre-rebase hook so that public branches
    can be protected from getting rebased, but rebase --interactive ignored
    the hook entirely.  This fixes it.
    
    Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    authored October 06, 2008 spearce committed October 06, 2008

Sep 30, 2008

  1. Andreas Ericsson

    rebase: Support preserving merges in non-interactive mode

    As a result of implementation details, 'git rebase' could
    previously only preserve merges in interactive mode. That
    limitation was hard for users to understand and awkward to
    explain.
    
    This patch works around it by running the interactive rebase
    helper git-rebase--interactive with GIT_EDITOR set to ':'
    when the user passes "-p" but not "-i" to the rebase command.
    The effect is that the interactive rebase helper is used but
    the user never sees an editor.
    
    The test-case included in this patch was originally written
    by Stephen Habermann <stephen@exigencecorp.com>, but has
    been extensively modified since its creation.
    
    Signed-off-by: Andreas Ericsson <ae@op5.se>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    authored September 29, 2008 spearce committed September 30, 2008

Aug 17, 2008

  1. Stephan Beyer

    Improve error output of git-rebase

    "git rebase" without arguments on initial startup showed:
    
    	fatal: Needed a single revision
    	invalid upstream
    
    This patch makes it show the ordinary usage string.
    
    If .git/rebase-merge or .git/rebase-apply/rebasing exists, git-rebase
    will die with a message saying that a rebase is in progress and the user
    should try --skip/--abort/--continue.
    
    If .git/rebase-apply/applying exists, git-rebase will die with a message
    saying that git-am is in progress, regardless how many arguments are
    given.
    
    If no arguments are given and .git/rebase-apply/ exists, but neither a
    rebasing nor applying file is in that directory, git-rebase dies with a
    message saying that rebase-apply exists and no arguments were given.
    
    Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored August 17, 2008 gitster committed August 16, 2008

Jul 22, 2008

  1. dscho

    Rename .git/rebase to .git/rebase-apply

    With git-am, it sounds awkward to have the patches in ".git/rebase/",
    but for technical reasons, we have to keep the same directory name
    for git-am and git-rebase. ".git/rebase-apply" seems to be a good
    compromise.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored July 21, 2008 gitster committed July 21, 2008

Jul 17, 2008

  1. Junio C Hamano

    Merge branch 'rs/rebase-checkout-not-so-quiet'

    * rs/rebase-checkout-not-so-quiet:
      git-rebase: report checkout failure
    
    Conflicts:
    	git-rebase.sh
    authored July 16, 2008

Jul 16, 2008

  1. dscho

    Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"

    Since the files generated and used during a rebase are never to be
    tracked, they should live in $GIT_DIR.  While at it, avoid the rather
    meaningless term "dotest" to "rebase", and unhide ".dotest-merge".
    
    This was wished for on the mailing list, but so far unimplemented.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored July 16, 2008 gitster committed July 15, 2008
Something went wrong with that request. Please try again.