Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Jan 27, 2011

  1. Junio C Hamano

    Merge branch 'maint'

    * maint:
      rebase -i: clarify in-editor documentation of "exec"
      tests: sanitize more git environment variables
      fast-import: treat filemodify with empty tree as delete
      rebase: give a better error message for bogus branch
      rebase: use explicit "--" with checkout
    
    Conflicts:
    	t/t9300-fast-import.sh
    authored January 27, 2011
  2. Jeff King

    rebase: give a better error message for bogus branch

    When you give a non-existent branch to git-rebase, it spits
    out the usage. This can be confusing, since you may
    understand the usage just fine, but simply have made a
    mistake in the branch name.
    
    Before:
    
      $ git rebase origin bogus
      Usage: git rebase ...
    
    After:
    
      $ git rebase origin bogus
      fatal: no such branch: bogus
      Usage: git rebase ...
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 26, 2011 gitster committed January 26, 2011
  3. Jeff King

    rebase: use explicit "--" with checkout

    In the case of a ref/pathname conflict, checkout will
    already do the right thing and checkout the ref. However,
    for a non-existant ref, this has two advantages:
    
      1. If a file with that pathname exists, rebase will
         refresh the file from the index and then rebase the
         current branch instead of producing an error.
    
      2. If no such file exists, the error message using an
         explicit "--" is better:
    
           # before
           $ git rebase -i origin bogus
           error: pathspec 'bogus' did not match any file(s) known to git.
           Could not checkout bogus
    
           # after
           $ git rebase -i origin bogus
           fatal: invalid reference: bogus
           Could not checkout bogus
    
    The problems seem to be trigger-able only through "git
    rebase -i", as regular git-rebase checks the validity of the
    branch parameter as a ref very early on. However, it doesn't
    hurt to be defensive.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored January 26, 2011 gitster committed January 26, 2011

Dec 14, 2010

  1. Junio C Hamano

    Merge branch 'mz/rebase-abort-reflog-fix' into maint

    * mz/rebase-abort-reflog-fix:
      rebase --abort: do not update branch ref
    authored December 14, 2010
  2. Junio C Hamano

    Merge branch 'mz/maint-rebase-stat-config' into maint

    * mz/maint-rebase-stat-config:
      rebase: only show stat if configured to true
    authored December 14, 2010

Dec 13, 2010

  1. Junio C Hamano

    Merge branch 'mz/rebase-i-verify'

    * mz/rebase-i-verify:
      rebase: support --verify
    authored December 12, 2010
  2. Junio C Hamano

    Merge branch 'mz/rebase-abort-reflog-fix'

    * mz/rebase-abort-reflog-fix:
      rebase --abort: do not update branch ref
    authored December 12, 2010
  3. Junio C Hamano

    Merge branch 'mz/maint-rebase-stat-config'

    * mz/maint-rebase-stat-config:
      rebase: only show stat if configured to true
    authored December 12, 2010

Nov 30, 2010

  1. Junio C Hamano

    Merge branch 'rr/needs-clean-work-tree'

    * rr/needs-clean-work-tree:
      Porcelain scripts: Rewrite cryptic "needs update" error message
    authored November 29, 2010

Nov 29, 2010

  1. rebase: only show stat if configured to true

    If rebase.stat is set to true, a diffstat should be displayed. If it is
    not set, it should default to false. However, if it is explicitly set to
    false (or other value), a diffstat is still displayed, which is probably
    not what most users would expect. Show diffstat only if it is set
    to true.
    
    Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 09, 2010 gitster committed November 29, 2010

Nov 24, 2010

  1. rebase --abort: do not update branch ref

    If a non-interactive rebase of a ref fails at commit X and is aborted by
    the user, the ref will be updated twice. First to point at X (with the
    reflog message "rebase finished: $head_name onto $onto"), and then back
    to $orig_head. It should not be updated at all.
    
    Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 21, 2010 gitster committed November 23, 2010

Nov 23, 2010

  1. rebase: support --verify

    Interactive rebase allows the '--verify' option to be passed, but it will
    be ignored. Implement proper support for the option for both interactive
    and non-interactive rebase by making it override any previous
    '--no-verify'.
    
    Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 22, 2010 gitster committed November 23, 2010

Nov 10, 2010

  1. rebase -X: do not clobber strategy

    If any strategy options are passed to -X, the strategy will always be
    set to 'recursive'. According to the documentation, it should default to
    'recursive' if it is not set, but it should be possible to set it to
    other values.
    
    This fixes a regression introduced in v1.7.3-rc0~67^2 (2010-07-29).
    
    Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 10, 2010 gitster committed November 10, 2010

Oct 28, 2010

  1. Ramkumar Ramachandra

    Porcelain scripts: Rewrite cryptic "needs update" error message

    Although Git interally has the facility to differentiate between
    porcelain and plubmbing commands and appropriately print errors,
    several shell scripts invoke plubming commands triggering cryptic
    plumbing errors to be displayed on a porcelain interface. This patch
    replaces the "needs update" message in git-pull and git-rebase, when
    `git update-index` is run, with a more friendly message.
    
    Reported-by: Joshua Jensen <jjensen@workspacewhiz.com>
    Reported-by: Thore Husfeldt <thore.husfeldt@gmail.com>
    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored October 19, 2010 gitster committed October 28, 2010

Oct 13, 2010

  1. Junio C Hamano

    shell portability: no "export VAR=VAL"

    It is more portable to say "VAR=VAL && export VAR" instead.
    
    Noticed by Ævar.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored October 13, 2010

Sep 15, 2010

  1. Junio C Hamano

    Merge branch 'os/fix-rebase-diff-no-prefix'

    * os/fix-rebase-diff-no-prefix:
      Add --src/dst-prefix to git-formt-patch in git-rebase.sh
    authored September 15, 2010

Sep 10, 2010

  1. Add --src/dst-prefix to git-formt-patch in git-rebase.sh

    For the case of "diff.noprefix" in git-config, git-format-patch should
    still output diff with standard prefixes for git-am
    
    Signed-off-by: Oded Shimon <ods15@ods15.dyndns.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored September 09, 2010 gitster committed September 09, 2010

Aug 20, 2010

  1. Junio C Hamano

    Merge branch 'jn/rebase-rename-am' into maint

    * jn/rebase-rename-am:
      rebase: protect against diff.renames configuration
      t3400 (rebase): whitespace cleanup
      Teach "apply --index-info" to handle rename patches
      t4150 (am): futureproof against failing tests
      t4150 (am): style fix
    authored August 20, 2010

Aug 18, 2010

  1. Junio C Hamano

    Merge branch 'ml/rebase-x-strategy'

    * ml/rebase-x-strategy:
      rebase: support -X to pass through strategy options
    authored August 18, 2010
  2. Junio C Hamano

    Merge branch 'jn/rebase-rename-am'

    * jn/rebase-rename-am:
      rebase: protect against diff.renames configuration
      t3400 (rebase): whitespace cleanup
      Teach "apply --index-info" to handle rename patches
      t4150 (am): futureproof against failing tests
      t4150 (am): style fix
    authored August 18, 2010

Aug 09, 2010

  1. git-rebase: fix typo when parsing --force-rebase

    Due to two missing hyphens, The "force" keyword on the command line
    would be taken as an alias for the --force-rebase option.
    
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored August 08, 2010 gitster committed August 09, 2010

Aug 03, 2010

  1. Mike Lundy

    rebase: support -X to pass through strategy options

    git-rebase calls out to merge strategies, but did not support merge
    strategy options so far.  Add this, in the same style used in
    git-merge.
    
    Sadly we have to do the full quoting/eval dance here, since
    merge-recursive supports the --subtree=<path> option which potentially
    contains whitespace.
    
    This patch does not cover git rebase -i, which does not call any merge
    strategy directly except in --preserve-merges, and even then only for
    merges.
    
    [jc: with a trivial fix-up for 'expr']
    
    Signed-off-by: Mike Lundy <mike@fluffypenguin.org>
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored July 29, 2010 gitster committed August 03, 2010

Jul 28, 2010

  1. David Kilzer

    Fix git rebase --continue to work with touched files

    When performing a non-interactive rebase, sometimes
    "git rebase --continue" will fail if an unmodified file is
    touched in the working directory:
    
        You must edit all merge conflicts and then
        mark them as resolved using git add
    
    This is caused by "git diff-files" reporting a difference
    between the index and the filesystem:
    
        :100644 100644 d00491...... 000000...... M	file
    
    The fix is to run "git update-index --refresh" before
    "git diff-files" as is done in git-rebase--interactive.
    
    Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
    Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored July 28, 2010 gitster committed July 28, 2010

Jul 23, 2010

  1. Junio C Hamano

    rebase: protect against diff.renames configuration

    We currently do not disable diff.renames configuration while rebase
    internally runs "format-patch" to feed "am -3".
    
    The end user configuration for "diff" should not affect the result
    produced by the higher level command that is related to "diff" only
    because internally it is implemented in terms of it.
    
    For that matter, I have a feeling that format-patch should not even look
    at diff.renames, but we seem to have been doing this for a long time so
    there is no easy way to fix this thinko.
    
    In any case, here is a much straightforward fix for "rebase".
    
    [jn: with test case from David]
    
    Reported-by: David D. Kilzer <ddkilzer@kilzer.net>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored November 10, 2008

Jun 01, 2010

  1. jrn

    rebase: improve error message when upstream argument is missing

    Strip out options before checking for a missing upstream argument.
    Before:
    
     $ git rebase -m
     shift: 426: can't shift that many
    
    After:
    
     $ git rebase -m
     Usage: git rebase ...
    
    While at it, fix the usage message to explain that the upstream
    argument is mandatory.
    
    Reported-by: Jon Dowland <jmtd@debian.org>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored May 31, 2010 gitster committed May 31, 2010

Apr 03, 2010

  1. Junio C Hamano

    Merge branch 'mb/rebase-i-no-ff'

    * mb/rebase-i-no-ff:
      Teach rebase the --no-ff option.
    
    Conflicts:
    	git-rebase--interactive.sh
    	t/t3404-rebase-interactive.sh
    authored April 03, 2010

Mar 24, 2010

  1. Junio C Hamano

    Merge branch 'tr/notes-display'

    * tr/notes-display:
      git-notes(1): add a section about the meaning of history
      notes: track whether notes_trees were changed at all
      notes: add shorthand --ref to override GIT_NOTES_REF
      commit --amend: copy notes to the new commit
      rebase: support automatic notes copying
      notes: implement helpers needed for note copying during rewrite
      notes: implement 'git notes copy --stdin'
      rebase -i: invoke post-rewrite hook
      rebase: invoke post-rewrite hook
      commit --amend: invoke post-rewrite hook
      Documentation: document post-rewrite hook
      Support showing notes from more than one notes tree
      test-lib: unset GIT_NOTES_REF to stop it from influencing tests
    
    Conflicts:
    	git-am.sh
    	refs.c
    authored March 24, 2010
  2. Teach rebase the --no-ff option.

    For git-rebase.sh, --no-ff is a synonym for --force-rebase.
    
    For git-rebase--interactive.sh, --no-ff cherry-picks all the commits in
    the rebased branch, instead of fast-forwarding over any unchanged commits.
    
    --no-ff offers an alternative way to deal with reverted merges.  Instead of
    "reverting the revert" you can use "rebase --no-ff" to recreate the branch
    with entirely new commits (they're new because at the very least the
    committer time is different).  This obviates the need to revert the
    reversion, as you can re-merge the new topic branch directly.  Added an
    addendum to revert-a-faulty-merge.txt describing the situation and how to
    use --no-ff to handle it.
    
    Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 24, 2010 gitster committed March 24, 2010

Mar 13, 2010

  1. trast

    rebase: support automatic notes copying

    Luckily, all the support already happens to be there.
    
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 12, 2010 gitster committed March 12, 2010
  2. trast

    rebase: invoke post-rewrite hook

    We have to deal with two separate code paths: a normal rebase, which
    actually goes through git-am; and rebase {-m|-s}.
    
    The only small issue with both is that they need to remember the
    original sha1 across a possible conflict resolution.  rebase -m
    already puts this information in $dotest/current, and we just
    introduce a similar file for git-am.
    
    Note that in git-am, the hook really only runs when coming from
    git-rebase: the code path that sets the $dotest/original-commit file
    is guarded by a test for $dotest/rebasing.
    
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    authored March 12, 2010 gitster committed March 12, 2010

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
Something went wrong with that request. Please try again.