Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jan 19, 2010
  1. @gitster

    Merge branch 'jc/rerere'

    gitster authored
    * jc/rerere:
      Teach --[no-]rerere-autoupdate option to merge, revert and friends
Commits on Jan 13, 2010
  1. @gitster

    Merge branch 'jc/checkout-merge-base'

    gitster authored
    * 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
Commits on Jan 7, 2010
  1. @gitster

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

    Nanako Shiraishi authored gitster committed
    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>
Commits on Dec 4, 2009
  1. @gitster

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

    gitster authored
    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>
Commits on Nov 25, 2009
  1. @gitster

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

    gitster authored
    * rs/work-around-grep-opt-insanity:
      Protect scripted Porcelains from GREP_OPTIONS insanity
      mergetool--lib: simplify guess_merge_tool()
    
    Conflicts:
    	git-instaweb.sh
Commits on Nov 24, 2009
  1. @gitster

    Protect scripted Porcelains from GREP_OPTIONS insanity

    gitster authored
    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>
Commits on Nov 21, 2009
  1. @gitster

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

    gitster authored
    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>
Commits on Oct 25, 2009
  1. @felipec @gitster

    Use 'fast-forward' all over the place

    felipec authored gitster committed
    It's a compound word.
    
    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 12, 2009
  1. @peff @gitster

    rebase: use plumbing to show dirty state

    peff authored gitster committed
    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>
Commits on Aug 22, 2009
  1. @gitster

    Merge branch 'gb/apply-ignore-whitespace'

    gitster authored
    * gb/apply-ignore-whitespace:
      git apply: option to ignore whitespace differences
Commits on Aug 6, 2009
  1. @moy @gitster

    rebase: consistent error messages for staged and unstaged changes.

    moy authored gitster committed
    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>
Commits on Aug 5, 2009
  1. @Oblomov @gitster

    git apply: option to ignore whitespace differences

    Oblomov authored gitster committed
    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>
Commits on Jul 2, 2009
  1. @gitster

    Merge branch 'sb/quiet-porcelains'

    gitster authored
    * 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
Commits on Jun 18, 2009
  1. @bebarino @gitster

    am, rebase: teach quiet option

    bebarino authored gitster committed
    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>
Commits on Jun 15, 2009
  1. @bebarino @gitster

    pull, rebase: simplify to use die()

    bebarino authored gitster committed
    Signed-off-by: Stephen Boyd <bebarino@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 27, 2009
  1. @gitster

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

    Michele Ballabio authored gitster committed
    Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 19, 2009
  1. @gitster

    rebase: add options passed to git-am

    Michele Ballabio authored gitster committed
    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>
Commits on Mar 11, 2009
  1. @gitster

    Merge branch 'tv/rebase-stat'

    gitster authored
    * 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
Commits on Mar 5, 2009
  1. @gitster

    Merge branch 'sr/force-rebase'

    gitster authored
    * sr/force-rebase:
      Teach rebase to rebase even if upstream is up to date
Commits on Mar 3, 2009
  1. @torarnv @gitster

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

    torarnv authored gitster committed
    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>
Commits on Feb 18, 2009
  1. @jaysoffian @gitster

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

    jaysoffian authored gitster committed
    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>
Commits on Feb 14, 2009
  1. @SRabbelier @gitster

    Teach rebase to rebase even if upstream is up to date

    SRabbelier authored gitster committed
    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>
Commits on Jan 12, 2009
  1. @trast @gitster

    rebase: learn to rebase root commit

    trast authored gitster committed
    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>
Commits on Dec 11, 2008
  1. @peff @gitster

    rebase: improve error messages about dirty state

    peff authored gitster committed
    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>
Commits on Dec 3, 2008
  1. @gitster

    rebase: use git rev-parse -q

    Miklos Vajna authored gitster committed
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 19, 2008
  1. @gitster

    Merge branch 'ae/preservemerge'

    gitster authored
    * ae/preservemerge:
      rebase: Support preserving merges in non-interactive mode
Commits on Oct 6, 2008
  1. @spearce

    rebase --no-verify

    Nanako Shiraishi authored spearce committed
    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>
  2. @spearce

    Teach rebase -i to honor pre-rebase hook

    Nanako Shiraishi authored spearce committed
    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>
Commits on Sep 30, 2008
  1. @ageric @spearce

    rebase: Support preserving merges in non-interactive mode

    ageric authored spearce committed
    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>
Commits on Aug 17, 2008
  1. @sbeyer @gitster

    Improve error output of git-rebase

    sbeyer authored gitster committed
    "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>
Commits on Jul 22, 2008
  1. @dscho @gitster

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

    dscho authored gitster committed
    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>
Commits on Jul 17, 2008
  1. @gitster

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

    gitster authored
    * rs/rebase-checkout-not-so-quiet:
      git-rebase: report checkout failure
    
    Conflicts:
    	git-rebase.sh
Commits on Jul 16, 2008
  1. @dscho @gitster

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

    dscho authored gitster committed
    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>
Commits on Jul 14, 2008
  1. @gitster

    git-rebase: report checkout failure

    gitster authored
    When detaching the HEAD to the base commit, the "git checkout" command
    could fail if, for example, upstream contains a file that would overrwrite
    a local, untracked file.  Unconditionally discarding the standard error
    stream was done to squelch the progress and notices back when checkout
    did not have -q option, but there is no reason to keep doing it anymore.
    
    Noticed by Robert Shearman.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 7, 2008
  1. @gitster

    Teach "am" and "rebase" to mark the original position with ORIG_HEAD

    gitster authored
    "merge" and "reset" leave the original point in history in ORIG_HEAD,
    which makes it easy to go back to where you were before you inflict a
    major damage to your history and realize that you do not like the result
    at all.  These days with reflog, we technically do not need to use
    ORIG_HEAD, but it is a handy way nevertheless.
    
    This teaches "am" and "rebase" (all forms --- the vanilla one that uses
    "am" as its backend, "-m" variant that cherry-picks, and "--interactive")
    to do the same.
    
    The original idea and a partial implementation to do this only for "rebase
    -m" was by Brian Gernhardt; this extends on his idea.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Something went wrong with that request. Please try again.