Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
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>
Commits on Jun 23, 2008
  1. @sbeyer @gitster

    git-rebase.sh: Add check if rebase is in progress

    sbeyer authored gitster committed
    "git rebase --continue" and friends gave nonsense errors when there is no
    rebase in progress.
    
    Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 15, 2008
  1. @dscho @gitster

    Ignore dirty submodule states during rebase and stash

    dscho authored gitster committed
    When rebasing or stashing, chances are that you do not care about
    dirty submodules, since they are not updated by those actions anyway.
    So ignore the submodules' states.
    
    Note: the submodule states -- as committed in the superproject --
    will still be stashed and rebased, it is _just_ the state of the
    submodule in the working tree which is ignored.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 14, 2008
  1. @gitster

    Merge branch 'bd/tests'

    gitster authored
    * bd/tests:
      Rename the test trash directory to contain spaces.
      Fix tests breaking when checkout path contains shell metacharacters
      Don't use the 'export NAME=value' in the test scripts.
      lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters
      test-lib.sh: Fix some missing path quoting
      Use test_set_editor in t9001-send-email.sh
      test-lib.sh: Add a test_set_editor function to safely set $VISUAL
      git-send-email.perl: Handle shell metacharacters in $EDITOR properly
      config.c: Escape backslashes in section names properly
      git-rebase.sh: Fix --merge --abort failures when path contains whitespace
    
    Conflicts:
    
    	t/t9115-git-svn-dcommit-funky-renames.sh
  2. @peff @gitster

    fix bsd shell negation

    peff authored gitster committed
    On some shells (notably /bin/sh on FreeBSD 6.1), the
    construct
    
      foo && ! bar | baz
    
    is true if
    
      foo && baz
    
    whereas for most other shells (such as bash) is true if
    
      foo && ! baz
    
    We can work around this by specifying
    
      foo && ! (bar | baz)
    
    which works everywhere.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 5, 2008
  1. @gitster

    git-rebase.sh: Fix --merge --abort failures when path contains whites…

    Bryan Donlan authored gitster committed
    …pace
    
    Also update t/t3407-rebase-abort.sh to expose the bug.
    
    Signed-off-by: Bryan Donlan <bdonlan@fushizen.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 16, 2008
  1. @gitster

    rebase [--onto O] A B: omit needless checkout

    gitster authored
    This teaches "git rebase [--onto O] A B" to omit an unnecessary checkout
    of branch B before it goes on.
    
    "git-rebase" originally was about rebasing the current branch to somewhere
    else, and when the extra parameter to name which branch to rebase was
    added, it defined the semantics to the safest but stupid "first switch to
    the named branch and then operate exactly the same way as if we were
    already on that branch".
    
    But the first thing the real part of "rebase" does is to reset the work
    tree and the index to the "onto" commit.  Which means the "rebase that
    branch" form switched the work tree to the tip of the branch only to
    immediately switch again to another commit.  This was wasteful.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @gitster

    Merge branch 'maint'

    gitster authored
    * maint:
      Start draft ReleaseNotes for 1.5.4.5
      rebase -m: do not trigger pre-commit verification
    
    Conflicts:
    
    	RelNotes
  3. @gitster

    rebase -m: do not trigger pre-commit verification

    gitster authored
    When rebasing changes that contain issues that the pre-commit hook flags
    as problematic, the rebase cannot be continued.  However, rebase is about
    transplanting commits that are already made with as little distortion as
    possible, and pre-commit check should not interfere.
    
    Earlier, c5b09fe (Avoid update hook during git-rebase --interactive,
    2007-12-19) fixed "rebase -i", but "rebase -m" shared the same issue.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 12, 2008
  1. @glandium @gitster

    git rebase --abort: always restore the right commit

    glandium authored gitster committed
    Previously, --abort would end by git resetting to ORIG_HEAD, but some
    commands, such as git reset --hard (which happened in git rebase --skip,
    but could just as well be typed by the user), would have already modified
    ORIG_HEAD.
    
    Just use the orig-head we store in $dotest instead.
    
    [jc: cherry-picked from 48411d and 4947cf9 on 'master']
    
    Signed-off-by: Mike Hommey <mh@glandium.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 11, 2008
  1. @szeder @gitster

    update 'git rebase' documentation

    szeder authored gitster committed
    Being in the project's top directory when starting or continuing a rebase
    is not necessary since 533b703 (Allow whole-tree operations to be started
    from a subdirectory, 2007-01-12).
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 5, 2008
  1. @gitster

    am: --rebasing

    gitster authored
    The new option --rebasing is used internally for rebase to tell am that
    it is being used for its purpose.  This would leave .dotest/rebasing to
    help "completion" scripts tell if the ongoing operation is am or rebase.
    
    Also the option at the same time stands for --binary, -3 and -k which
    are always given when rebase drives am as its backend.
    
    Using the information "am" leaves, git-completion.bash tells ongoing
    rebase and am apart.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 2, 2008
  1. @glandium @gitster

    git rebase --abort: always restore the right commit

    glandium authored gitster committed
    Previously, --abort would end by git resetting to ORIG_HEAD, but some
    commands, such as git reset --hard (which happened in git rebase --skip,
    but could just as well be typed by the user), would have already modified
    ORIG_HEAD.
    
    Just use the orig-head we store in $dotest instead.
    
    Signed-off-by: Mike Hommey <mh@glandium.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 29, 2007
  1. @gitster

    Merge branch 'maint'

    gitster authored
    * maint:
      scripts: do not get confused with HEAD in work tree
      Improve description of git-branch -d and -D in man page.
  2. @gitster

    scripts: do not get confused with HEAD in work tree

    gitster authored
    When you have a file called HEAD in your work tree, many commands that
    our scripts feed "HEAD" to would complain about the rev vs path
    ambiguity.  A solution is to form command line more carefully by
    appending -- to them, which makes it clear that we mean HEAD rev not
    HEAD file.
    
    This patch would apply to maint.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 25, 2007
  1. @gitster

    Merge branch 'mh/rebase-skip-hard'

    gitster authored
    * mh/rebase-skip-hard:
      Do git reset --hard HEAD when using git rebase --skip
Commits on Nov 18, 2007
  1. @gitster

    Merge branch 'ph/parseopt-sh'

    gitster authored
    * ph/parseopt-sh:
      git-quiltimport.sh fix --patches handling
      git-am: -i does not take a string parameter.
      sh-setup: don't let eval output to be shell-expanded.
      git-sh-setup: fix parseopt `eval` string underquoting
      Give git-am back the ability to add Signed-off-by lines.
      git-rev-parse --parseopt
      scripts: Add placeholders for OPTIONS_SPEC
      Migrate git-repack.sh to use git-rev-parse --parseopt
      Migrate git-quiltimport.sh to use git-rev-parse --parseopt
      Migrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdash
      Migrate git-instaweb.sh to use git-rev-parse --parseopt
      Migrate git-merge.sh to use git-rev-parse --parseopt
      Migrate git-am.sh to use git-rev-parse --parseopt
      Migrate git-clone to use git-rev-parse --parseopt
      Migrate git-clean.sh to use git-rev-parse --parseopt.
      Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt
      Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.
Commits on Nov 13, 2007
  1. @dscho @gitster

    rebase: fix "rebase --continue" breakage

    dscho authored gitster committed
    The --skip case was handled properly when rebasing without --merge,
    but the --continue case was not.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 12, 2007
  1. @glandium @gitster

    Do git reset --hard HEAD when using git rebase --skip

    glandium authored gitster committed
    When you have a merge conflict and want to bypass the commit causing it,
    you don't want to care about the dirty state of the working tree.
    
    Also, don't git reset --hard HEAD in the rebase-skip test, so that the
    lack of support for this is detected.
    
    Signed-off-by: Mike Hommey <mh@glandium.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 9, 2007
  1. @dscho @gitster

    rebase: operate on a detached HEAD

    dscho authored gitster committed
    The interactive version of rebase does all the operations on a detached
    HEAD, so that after a successful rebase, <branch>@{1} is the pre-rebase
    state.  The reflogs of "HEAD" still show all the actions in detail.
    
    This teaches the non-interactive version to do the same.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 6, 2007
  1. @gitster

    scripts: Add placeholders for OPTIONS_SPEC

    gitster authored
    --text follows this line--
    These commands currently lack OPTIONS_SPEC; allow people to
    easily list with "git grep 'OPTIONS_SPEC=$'" what they can help
    improving.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 2, 2007
  1. @gitster

    Fixing path quoting in git-rebase

    Jonathan del Strother authored gitster committed
    git-rebase used to fail when run from a path containing a space.
    
    Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Oct 18, 2007
  1. @spearce

    Fixing path quoting in git-rebase

    Jonathan del Strother authored spearce committed
    git-rebase used to fail when run from a path containing a space.
    
    Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Commits on Sep 24, 2007
  1. @gitster

    Merge branch 'maint'

    gitster authored
    * maint:
      git-svn: don't attempt to spawn pager if we don't want one
      Supplant the "while case ... break ;; esac" idiom
      User Manual: add a chapter for submodules
      user-manual: don't assume refs are stored under .git/refs
      Detect exec bit in more cases.
      Conjugate "search" correctly in the git-prune-packed man page.
      Move the paragraph specifying where the .idx and .pack files should be
      Documentation/git-lost-found.txt: drop unnecessarily duplicated name.
Something went wrong with that request. Please try again.