Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Mar 5, 2012
  1. @carlosmn @gitster

    Make git-{pull,rebase} message without tracking information friendlier

    carlosmn authored gitster committed
    The current message is too long and at too low a level for anybody
    to understand it if they don't know about the configuration format
    already.
    
    The text about setting up a remote is superfluous and doesn't help
    understand or recover from the error that has happened.  Show the
    usage more prominently and explain how to set up the tracking
    information. If there is only one remote, that name is used instead
    of the generic <remote>.
    
    Also simplify the message we print on detached HEAD to remove
    unnecessary information which is better left for the documentation.
    
    Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 13, 2012
  1. @torvalds @gitster

    "git pull" doesn't know "--edit"

    torvalds authored gitster committed
    Ok, so now "git merge" defaults to editing when interactive - lovely. But
    when testing that, I noticed that while you can say
    
       git merge --[no-]edit ..branch..
    
    that does not work with "git pull". You get a message like
    
      error: unknown option `no-edit'
      usage: git fetch [<options>] [<repository> [<refspec>...]]
         or: git fetch [<options>] <group>
         or: git fetch --multiple [<options>] [(<repository> | <group>)...]
         or: git fetch --all [<options>]
    
          -v, --verbose         be more verbose
          -q, --quiet           be more quiet
          --all                 fetch from all remotes
      ...
    
    which is because that stupid shell script doesn't know about the new
    flags, and just passes it to "git fetch" instead.
    
    Now, I really wanted to just make "git pull" a built-in instead of that
    nasty shell script, but I'm lazy. So here's the trivial updates to
    git-pull.sh to at least teach it about -e/--edit/--no-edit.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Dec 9, 2011
  1. @gitster

    Merge branch 'ab/pull-rebase-config'

    gitster authored
    * ab/pull-rebase-config:
      pull: introduce a pull.rebase option to enable --rebase
Commits on Nov 7, 2011
  1. @avar @gitster

    pull: introduce a pull.rebase option to enable --rebase

    avar authored gitster committed
    Currently we either need to set branch.<name>.rebase for existing
    branches if we'd like "git pull" to mean "git pull --rebase", or have
    the forethought of setting "branch.autosetuprebase" before we create
    the branch.
    
    Introduce a "pull.rebase" option to globally configure "git pull" to
    mean "git pull --rebase" for any branch.
    
    This option will be considered at a lower priority than
    branch.<name>.rebase, i.e. we could set pull.rebase=true and
    branch.<name>.rebase=false and the latter configuration option would
    win.
    
    Reviewed-by: Sverre Rabbelier <srabbelier@gmail.com>
    Reviewed-by: Fernando Vezzosi <buccia@repnz.net>
    Reviewed-by: Eric Herman <eric@freesa.org>
    Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    Liked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 18, 2011
  1. @gitster

    Merge branch 'jk/pull-rebase-with-work-tree'

    gitster authored
    * jk/pull-rebase-with-work-tree:
      pull,rebase: handle GIT_WORK_TREE better
    
    Conflicts:
    	git-pull.sh
Commits on Oct 13, 2011
  1. @peff @gitster

    pull,rebase: handle GIT_WORK_TREE better

    peff authored gitster committed
    You can't currently run git-pull or git-rebase from outside
    of the work tree, even with GIT_WORK_TREE set, due to an
    overeager require_work_tree function. Commit e2eb527
    documents this problem and provides the infrastructure for a
    fix, but left it to later commits to audit and update
    individual scripts.
    
    Changing these scripts to use require_work_tree_exists is
    easy to verify. We immediately call cd_to_toplevel, anyway.
    Therefore no matter which function we use, the state
    afterwards is one of:
    
      1. We have a work tree, and we are at the top level.
    
      2. We don't have a work tree, and we have died.
    
    The only catch is that we must also make sure no code that
    ran before the cd_to_toplevel assumed that we were already
    in the working tree.
    
    In this case, we will only have included shell libraries and
    called set_reflog_action, neither of which care about the
    current working directory at all.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 5, 2011
  1. @drizzd @gitster

    use -h for synopsis and --help for manpage consistently

    drizzd authored gitster committed
    A few scripted Porcelain implementations pretend as if the routine to show
    their own help messages are triggered upon "git cmd --help", but a command
    line parser of "git" will hijack such a request and shows the manpage for
    the cmd subcommand.
    
    Leaving the code to handle such input is simply misleading.
    
    Signed-off-by: Clemens Buchacher <drizzd@aon.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 25, 2011
  1. @gitster

    Merge branch 'js/i18n-scripts'

    gitster authored
    * js/i18n-scripts:
      submodule: take advantage of gettextln and eval_gettextln.
      stash: take advantage of eval_gettextln
      pull: take advantage of eval_gettextln
      git-am: take advantage of gettextln and eval_gettextln.
      gettext: add gettextln, eval_gettextln to encode common idiom
Commits on Aug 8, 2011
  1. @gitster

    Merge branch 'oa/pull-reflog'

    gitster authored
    * oa/pull-reflog:
      pull: remove extra space from reflog message
    
    Conflicts:
    	git-pull.sh
  2. @jonseymour @gitster

    pull: take advantage of eval_gettextln

    jonseymour authored gitster committed
    Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Aug 1, 2011
  1. @salty-horse @gitster

    pull: remove extra space from reflog message

    salty-horse authored gitster committed
    When executing "git pull" with no arguments, the reflog message was:
      "pull : Fast-forward"
    
    Signed-off-by: Ori Avtalion <ori@avtalion.name>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 21, 2011
  1. @avar @gitster

    i18n: git-pull eval_gettext + warning message

    avar authored gitster committed
    Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @avar @gitster

    i18n: git-pull eval_gettext + die message

    avar authored gitster committed
    Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. @avar @gitster

    i18n: git-pull die messages

    avar authored gitster committed
    Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. @avar @gitster

    i18n: git-pull add git-sh-i18n

    avar authored gitster committed
    Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 28, 2011
  1. @gitster

    Merge branch 'mz/rebase'

    gitster authored
    * mz/rebase: (34 commits)
      rebase: define options in OPTIONS_SPEC
      Makefile: do not install sourced rebase scripts
      rebase: use @{upstream} if no upstream specified
      rebase -i: remove unnecessary state rebase-root
      rebase -i: don't read unused variable preserve_merges
      git-rebase--am: remove unnecessary --3way option
      rebase -m: don't print exit code 2 when merge fails
      rebase -m: remember allow_rerere_autoupdate option
      rebase: remember strategy and strategy options
      rebase: remember verbose option
      rebase: extract code for writing basic state
      rebase: factor out sub command handling
      rebase: make -v a tiny bit more verbose
      rebase -i: align variable names
      rebase: show consistent conflict resolution hint
      rebase: extract am code to new source file
      rebase: extract merge code to new source file
      rebase: remove $branch as synonym for $orig_head
      rebase -i: support --stat
      rebase: factor out call to pre-rebase hook
      ...
Commits on Apr 4, 2011
  1. @gitster

    Merge branch 'jl/submodule-fetch-on-demand'

    gitster authored
    * jl/submodule-fetch-on-demand:
      fetch/pull: Describe --recurse-submodule restrictions in the BUGS section
      submodule update: Don't fetch when the submodule commit is already present
      fetch/pull: Don't recurse into a submodule when commits are already present
      Submodules: Add 'on-demand' value for the 'fetchRecurseSubmodule' option
      config: teach the fetch.recurseSubmodules option the 'on-demand' value
      fetch/pull: Add the 'on-demand' value to the --recurse-submodules option
      fetch/pull: recurse into submodules when necessary
    
    Conflicts:
    	builtin/fetch.c
    	submodule.c
Commits on Mar 25, 2011
  1. @peff @gitster

    pull: do not clobber untracked files on initial pull

    peff authored gitster committed
    For a pull into an unborn branch, we do not use "git merge"
    at all. Instead, we call read-tree directly. However, we
    used the --reset parameter instead of "-m", which turns off
    the safety features.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 20, 2011
  1. @gitster

    Merge branch 'jk/merge-rename-ux'

    gitster authored
    * jk/merge-rename-ux:
      pull: propagate --progress to merge
      merge: enable progress reporting for rename detection
      add inexact rename detection progress infrastructure
      commit: stop setting rename limit
      bump rename limit defaults (again)
      merge: improve inexact rename limit warning
Commits on Mar 9, 2011
  1. @jlehmann @gitster

    fetch/pull: Add the 'on-demand' value to the --recurse-submodules option

    jlehmann authored gitster committed
    Until now the --recurse-submodules option could only be used to either
    fetch all populated submodules recursively or to disable recursion
    completely. As fetch and pull now by default just fetch those submodules
    for which new commits have been fetched in the superproject, a command
    line option to enforce that behavior is needed to be able to override
    configuration settings.
    
    Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 21, 2011
  1. @peff @gitster

    pull: propagate --progress to merge

    peff authored gitster committed
    Now that merge understands progress, we should pass it
    along. While we're at it, pass along --no-progress, too.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 15, 2011
  1. @mjg @gitster

    pull: do not display fetch usage on --help-all

    mjg authored gitster committed
    Currently, "git pull --help-all" displays the fetch usage info.
    
    Make it equivalent to "git pull -h" instead since "--help-all" is
    documented in gitcli(7).
    
    Do not try to sanitize the pull option parser (aka last hair puller).
    
    Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 10, 2011
  1. @gitster

    rebase: use @{upstream} if no upstream specified

    Martin von Zweigbergk authored gitster committed
    'git rebase' without arguments is currently not supported. Make it
    default to 'git rebase @{upstream}'. That is also what 'git pull
    [--rebase]' defaults to, so it only makes sense that 'git rebase'
    defaults to the same thing.
    
    Defaulting to @{upstream} will make it possible to run e.g. 'git
    rebase -i' without arguments, which is probably a quite common use
    case. It also improves the scenario where you have multiple branches
    that rebase against a remote-tracking branch, where you currently have
    to choose between the extra network delay of 'git pull' or the
    slightly awkward keys to enter 'git rebase @{u}'.
    
    The error reporting when no upstream is configured for the current
    branch or when no branch is checked out is reused from git-pull.sh. A
    function is extracted into git-parse-remote.sh for this purpose.
    
    Helped-by: Yann Dirson <ydirson@altern.org>
    Helped-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Dec 16, 2010
  1. @gitster

    Merge branch 'jl/fetch-submodule-recursive'

    gitster authored
    * jl/fetch-submodule-recursive:
      fetch_populated_submodules(): document dynamic allocation
      Submodules: Add the "fetchRecurseSubmodules" config option
      Add the 'fetch.recurseSubmodules' config setting
      fetch/pull: Add the --recurse-submodules option
    
    Conflicts:
    	builtin/fetch.c
Commits on Nov 12, 2010
  1. @jlehmann @gitster

    Add the 'fetch.recurseSubmodules' config setting

    jlehmann authored gitster committed
    This new boolean option can be used to override the default for "git
    fetch" and "git pull", which is to not recurse into populated submodules
    and fetch all new commits there too.
    
    Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. @jlehmann @gitster

    fetch/pull: Add the --recurse-submodules option

    jlehmann authored gitster committed
    Until now you had to call "git submodule update" (without -N|--no-fetch
    option) or something like "git submodule foreach git fetch" to fetch
    new commits in populated submodules from their remote.
    
    This could lead to "(commits not present)" messages in the output of
    "git diff --submodule" (which is used by "git gui" and "gitk") after
    fetching or pulling new commits in the superproject and is an obstacle for
    implementing recursive checkout of submodules. Also "git submodule
    update" cannot fetch changes when disconnected, so it was very easy to
    forget to fetch the submodule changes before disconnecting only to
    discover later that they are needed.
    
    This patch adds the "--recurse-submodules" option to recursively fetch
    each populated submodule from the url configured in the .git/config of the
    submodule at the end of each "git fetch" or during "git pull" in the
    superproject. The submodule paths are taken from the index.
    
    The hidden option "--submodule-prefix" is added to "git fetch" to be able
    to print out the full paths of nested submodules.
    
    Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 28, 2010
  1. @artagnon @gitster

    Porcelain scripts: Rewrite cryptic "needs update" error message

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

    Merge branch 'en/rebase-against-rebase-fix'

    gitster authored
    * en/rebase-against-rebase-fix:
      pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches
      t5520-pull: Add testcases showing spurious conflicts from git pull --rebase
Commits on Aug 13, 2010
  1. @newren @gitster

    pull --rebase: Avoid spurious conflicts and reapplying unnecessary pa…

    newren authored gitster committed
    …tches
    
    Prior to c85c792 (pull --rebase: be cleverer with rebased upstream
    branches, 2008-01-26), pull --rebase would run
    
      git rebase $merge_head
    
    which resulted in a call to
    
      git format-patch ... --ignore-if-in-upstream $merge_head..$cur_branch
    
    This resulted in patches from $merge_head..$cur_branch being applied, as
    long as they did not already exist in $cur_branch..$merge_head.
    
    Unfortunately, when upstream is rebased, $merge_head..$cur_branch also
    refers to "old" commits that have already been rebased upstream, meaning
    that many patches that were already fixed upstream would be reapplied.
    This could result in many spurious conflicts, as well as reintroduce
    patches that were intentionally dropped upstream.
    
    So the algorithm was changed in c85c792 (pull --rebase: be cleverer with
    rebased upstream branches, 2008-01-26) and d44e712 (pull: support rebased
    upstream + fetch + pull --rebase, 2009-07-19).  Defining $old_remote_ref to
    be the most recent entry in the reflog for @{upstream} that is an ancestor
    of $cur_branch, pull --rebase was changed to run
    
      git rebase --onto $merge_head $old_remote_ref
    
    which results in a call to
    
      git format-patch ... --ignore-if-in-upstream $old_remote_ref..$cur_branch
    
    The whole point of this change was to reduce the number of commits being
    reapplied, by avoiding commits that upstream already has or had.
    
    In the rebased upstream case, this change achieved that purpose.  It is
    worth noting, though, that since $old_remote_ref is always an ancestor of
    $cur_branch (by its definition), format-patch will not know what upstream
    is and thus will not be able to determine if any patches are already
    upstream; they will all be reapplied.
    
    In the non-rebased upstream case, this new form is usually the same as the
    original code but in some cases $old_remote_ref can be an ancestor of
    
       $(git merge-base $merge_head $cur_branch)
    
    meaning that instead of avoiding reapplying commits that upstream already
    has, it actually includes more such commits.  Combined with the fact that
    format-patch can no longer detect commits that are already upstream (since
    it is no longer told what upstream is), results in lots of confusion for
    users (e.g. "git is giving me lots of conflicts in stuff I didn't even
    change since my last push.")
    
    Cases where additional commits could be reapplied include forking from a
    commit other than the tracking branch, or amending/rebasing after pushing.
    Cases where the inability to detect upstreamed commits cause problems
    include independent discovery of a fix and having your patches get
    upstreamed by some alternative route (e.g. pulling your changes to a third
    machine, pushing from there, and then going back to your original machine
    and trying to pull --rebase).
    
    Fix the non-rebased upstream case by ignoring $old_remote_ref whenever it
    is contained in $(git merge-base $merge_head $cur_branch).  This should
    have no affect on the rebased upstream case.
    
    Acked-by: Santi Béjar <santi@agolina.net>
    Signed-off-by: Elijah Newren <newren@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 25, 2010
  1. @peff @gitster

    pull: do nothing on --dry-run

    peff authored gitster committed
    Pull was never meant to take --dry-run at all. However, it
    passes unknown arguments to git-fetch, which does do a
    dry-run. Unfortunately, pull then attempts to merge whatever
    cruft was in FETCH_HEAD (which the dry-run fetch will not
    have written to).
    
    Even though we never advertise --dry-run as something that
    should work, it is still worth being defensive because:
    
      1. Other commands (including fetch) take --dry-run, so a
         user might try it.
    
      2. Rather than simply producing an error, it actually
         changes the repository in totally unexpected ways.
    
    This patch makes "pull --dry-run" equivalent to "fetch
    --dry-run".
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Mar 20, 2010
  1. @gitster

    Merge branch 'maint'

    gitster authored
    * maint:
      Update draft release notes to 1.7.0.3
      fetch: Fix minor memory leak
      fetch: Future-proof initialization of a refspec on stack
      fetch: Check for a "^{}" suffix with suffixcmp()
      daemon: parse_host_and_port SIGSEGV if port is specified
      Makefile: Fix CDPATH problem
      pull: replace unnecessary sed invocation
  2. @bebarino @gitster

    pull: replace unnecessary sed invocation

    bebarino authored gitster committed
    Getting the shortened branch name is as easy as using the shell's
    parameter expansion.
    
    Signed-off-by: Stephen Boyd <bebarino@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 24, 2010
  1. @rctay @gitster

    fetch and pull: learn --progress

    rctay authored gitster committed
    Note that in the documentation for git-pull, documentation for the
    --progress option is displayed under the "Options related to fetching"
    subtitle via fetch-options.txt.
    
    Also, update the documentation of the -q/--quiet option for git-pull to
    mention its effect on progress reporting during fetching.
    
    Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 24, 2010
  1. @gitster

    pull: re-fix command line generation

    gitster authored
    14e5d40 (pull: Fix parsing of -X<option>, 2010-01-17) forgot that
    merge_name needs to stay as a single non-interpolated string.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 21, 2010
  1. @gitster

    Merge branch 'ap/merge-backend-opts'

    gitster authored
    * ap/merge-backend-opts:
      Document that merge strategies can now take their own options
      Extend merge-subtree tests to test -Xsubtree=dir.
      Make "subtree" part more orthogonal to the rest of merge-recursive.
      pull: Fix parsing of -X<option>
      Teach git-pull to pass -X<option> to git-merge
      git merge -X<option>
      git-merge-file --ours, --theirs
    
    Conflicts:
    	git-compat-util.h
Something went wrong with that request. Please try again.