1. 08 9月, 2007 2 次提交
  2. 01 9月, 2007 2 次提交
  3. 07 7月, 2007 1 次提交
  4. 05 7月, 2007 1 次提交
    • J
      Allow rebase to run if upstream is completely merged · 1308c17b
      Johannes Sixt 提交于
      Consider this history:
      
        o--o-...-B          <- origin
            \     \
             x--x--M--x--x  <- master
      
      In this situation, rebase considers master fully up-to-date and would
      not do anything. However, if there were additional commits on origin,
      the rebase would run and move the commits x on top of origin.
      
      Here we change rebase to short-circuit out only if the history since origin
      is strictly linear. Consequently, the above as well as a history like this
      would be linearized:
      
        o--o               <- origin
            \
             x--x
              \  \
               x--M--x--x  <- master
      Signed-off-by: NJohannes Sixt <johannes.sixt@telecom.at>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      1308c17b
  5. 03 7月, 2007 1 次提交
  6. 25 6月, 2007 1 次提交
    • J
      Teach rebase an interactive mode · 1b1dce4b
      Johannes Schindelin 提交于
      Don't you just hate the fact sometimes, that git-rebase just applies
      the patches, without any possibility to edit them, or rearrange them?
      With "--interactive", git-rebase now lets you edit the list of patches,
      so that you can reorder, edit and delete patches.
      
      Such a list will typically look like this:
      
      	pick deadbee The oneline of this commit
      	pick fa1afe1 The oneline of the next commit
      	...
      
      By replacing the command "pick" with the command "edit", you can amend
      that patch and/or its commit message, and by replacing it with "squash"
      you can tell rebase to fold that patch into the patch before that.
      
      It is derived from the script sent to the list in
      <Pine.LNX.4.63.0702252156190.22628@wbgn013.biozentrum.uni-wuerzburg.de>
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      1b1dce4b
  7. 03 6月, 2007 1 次提交
  8. 11 5月, 2007 1 次提交
  9. 14 4月, 2007 1 次提交
  10. 25 3月, 2007 1 次提交
  11. 22 3月, 2007 1 次提交
    • J
      git-rebase: make 'rebase HEAD branch' work as expected. · a1bf91e0
      Junio C Hamano 提交于
      When you want to amend the commit message of 3 commits before
      the tip of the current branch, say 'master',
      
      	A--B--C--D--E(master)
      
      it is sometimes handy to make your head detached at that commit
      with:
      
      	$ git checkout HEAD~3 ;# check out B
      	$ git commit --amend ;# without modifying contents...
      
      to create:
      
                .B'(HEAD)
               /
      	A--B--C--D--E(master)
      
      and then rebase 'master' branch onto HEAD with this:
      
      	$ git rebase HEAD master
      
      to result in:
      
                .B'-C'-D'-E(master=HEAD)
               /
      	A--B--C--D--E
      
      However, the current code interprets HEAD after it switches to
      the branch 'master', which means the rebase will not do
      anything.  You have to say something unwieldly like this
      instead:
      
      	$ git rebase $(git rev-parse HEAD) master
      
      This fixes it by expanding the $onto commit name before
      switching to the target branch.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a1bf91e0
  12. 09 2月, 2007 1 次提交
  13. 01 2月, 2007 1 次提交
  14. 21 1月, 2007 1 次提交
  15. 13 1月, 2007 1 次提交
    • J
      Allow whole-tree operations to be started from a subdirectory · 533b7039
      Junio C Hamano 提交于
      This updates five commands (merge, pull, rebase, revert and cherry-pick)
      so that they can be started from a subdirectory.
      
      This may not actually be what we want to do.  These commands are
      inherently whole-tree operations, and an inexperienced user may
      mistakenly expect a "git pull" from a subdirectory would merge
      only the subdirectory the command started from.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      533b7039
  16. 11 1月, 2007 1 次提交
  17. 28 12月, 2006 2 次提交
    • S
      Use branch names in 'git-rebase -m' conflict hunks. · 0bb733c9
      Shawn O. Pearce 提交于
      If a three-way merge in git-rebase generates a conflict then we
      should take advantage of git-merge-recursive's ability to include
      the branch name of each side of the conflict hunk by setting the
      GITHEAD_* environment variables.
      
      In the case of rebase there aren't really two clear branches; we
      have the branch we are rebasing onto, and we have the branch we are
      currently rebasing.  Since most conflicts will be arising between
      the user's current branch and the branch they are rebasing onto
      we assume the stuff that isn't in the current commit is the "onto"
      branch and the stuff in the current commit is the "current" branch.
      
      This assumption may however come up wrong if the user resolves one
      conflict in such a way that it conflicts again on a future commit
      also being rebased.  In this case the user's prior resolution will
      appear to be in the "onto" part of the hunk.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      0bb733c9
    • S
      Use GIT_REFLOG_ACTION environment variable instead. · f9474132
      Shawn O. Pearce 提交于
      Junio rightly pointed out that the --reflog-action parameter
      was starting to get out of control, as most porcelain code
      needed to hand it to other porcelain and plumbing alike to
      ensure the reflog contained the top-level user action and
      not the lower-level actions it invoked.
      
      At Junio's suggestion we are introducing the new set_reflog_action
      function to all shell scripts, allowing them to declare early on
      what their default reflog name should be, but this setting only
      takes effect if the caller has not already set the GIT_REFLOG_ACTION
      environment variable.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      f9474132
  18. 23 12月, 2006 1 次提交
    • J
      merge and reset: adjust for "reset --hard" messages · 228e2eb6
      Junio C Hamano 提交于
      An earlier commit made "reset --hard" chattier but leaking its
      message from "git rebase" (which calls it when first rewinding
      the current branch to prepare replaying our own changes) without
      explanation was confusing, so add an extra message to mention
      it.  Inside restorestate in merge (which is rarely exercised
      codepath, where more than one strategies are attempted),
      resetting to the original state uses "reset --hard" -- this can
      be squelched entirely.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      228e2eb6
  19. 10 12月, 2006 1 次提交
  20. 22 11月, 2006 1 次提交
  21. 10 11月, 2006 1 次提交
  22. 05 10月, 2006 2 次提交
  23. 25 9月, 2006 1 次提交
    • J
      Deprecate merge-recursive.py · a06f678e
      Junio C Hamano 提交于
      This renames merge-recursive written in Python to merge-recursive-old,
      and makes merge-recur as a synonym to merge-recursive.  We do not remove
      merge-recur yet, but we will remove merge-recur and merge-recursive-old
      in a few releases down the road.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a06f678e
  24. 31 7月, 2006 2 次提交
  25. 14 7月, 2006 3 次提交
    • J
      recur vs recursive: help testing without touching too many stuff. · 06d30f4f
      Junio C Hamano 提交于
      During git-merge-recur development, you could set an environment
      variable GIT_USE_RECUR_FOR_RECURSIVE to use WIP recur in place
      of the recursive strategy.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      06d30f4f
    • J
      Status update on merge-recursive in C · 6d297f81
      Johannes Schindelin 提交于
      This is just an update for people being interested. Alex and me were
      busy with that project for a few days now. While it has progressed nicely,
      there are quite a couple TODOs in merge-recursive.c, just search for "TODO".
      
      For impatient people: yes, it passes all the tests, and yes, according
      to the evil test Alex did, it is faster than the Python script.
      
      But no, it is not yet finished. Biggest points are:
      
      - there are still three external calls
      - in the end, it should not be necessary to write the index more than once
        (just before exiting)
      - a lot of things can be refactored to make the code easier and shorter
      
      BTW we cannot just plug in git-merge-tree yet, because git-merge-tree
      does not handle renames at all.
      
      This patch is meant for testing, and as such,
      
      - it compile the program to git-merge-recur
      - it adjusts the scripts and tests to use git-merge-recur instead of
        git-merge-recursive
      - it provides "TEST", a script to execute the tests regarding -recursive
      - it inlines the changes to read-cache.c (read_cache_from(), discard_cache()
        and refresh_cache_entry())
      
      Brought to you by Alex Riesen and Dscho
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      6d297f81
    • S
      8ef1c7c7
  26. 09 7月, 2006 1 次提交
  27. 28 6月, 2006 3 次提交
  28. 25 6月, 2006 3 次提交
  29. 22 6月, 2006 1 次提交
    • J
      rebase --merge: fix for rebasing more than 7 commits. · 5887ac82
      Junio C Hamano 提交于
      Instead of using 4-digit numbers to name commits being rebased,
      just use "cmt.$msgnum" string, with $msgnum as a decimal number
      without leading zero padding.  This makes it possible to rebase
      more than 9999 commits, but of more practical importance is that
      the earlier code used "printf" to format already formatted
      $msgnum and barfed when it counted up to 0008.  In other words,
      the old code was incapable of rebasing more than 7 commits, and
      this fixes that problem.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5887ac82