1. 21 11月, 2005 7 次提交
  2. 20 11月, 2005 23 次提交
  3. 19 11月, 2005 10 次提交
    • J
      git-count-objects: dc replacement · a4caa521
      Junio C Hamano 提交于
      Johannes suggested this earlier but I did not take it so
      seriously because this command is not that important.  But this
      probably matters on Cygwin which does not seem to come with
      precompiled dc.  It is a mystery for me that anything that
      mimics UNIX does not offer a dc, though.
      
      I did the detection for the lack of dc command a bit differently
      from the verison Johannes did.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a4caa521
    • S
      e3fe532d
    • P
      gitk: use git-diff-tree --no-commit-id · fd913b39
      Pavel Roskin 提交于
      gitk switched to use git-diff-tree with one argument in gettreediffs and
      getblobdiffs.  git-diff-tree with one argument outputs commit ID in from
      of the patch.  This causes an empty line after "Comments" in the lower
      right pane.  Also, the diff in the lower left pane has the commit ID,
      which is useless there.
      
      This patch makes git use the newly added -no-commit-id option for
      git-diff-tree to suppress commit ID.  It also removes the p variable in
      both functions, since it has become useless after switching to the
      one-argument invocation for git-diff-tree.
      Signed-off-by: NPavel Roskin <proski@gnu.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      fd913b39
    • F
      gitk: Specify line hover font · e246483d
      Frank Sorenson 提交于
      Hovering over a line in gitk displays the commit one-liner in a
      box, but the text usually overflows the box.  The box size is
      computed with a specified font, so this patch sets the text font
      as well.
      Signed-off-by: NFrank Sorenson <frank@tuxrocks.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e246483d
    • J
      readrefs: grab all refs with one call to ls-remote. · 36a7cad6
      Junio C Hamano 提交于
      Instead of reading refs/heads/* and refs/tags/* files ourselves
      and missing files in subdirectories of heads/ and tags/, use
      ls-remote on local repository and grab all of them.  This lets us
      also remove the procedure readotherrefs.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      36a7cad6
    • J
      Merge http://www.kernel.org/pub/scm/gitk/gitk · 3eeb4199
      Junio C Hamano 提交于
      3eeb4199
    • J
      Merge branches 'jc/branch' and 'jc/rebase' · 0b427693
      Junio C Hamano 提交于
      0b427693
    • J
      Rewrite rebase to use git-format-patch piped to git-am. · 7f59dbbb
      Junio C Hamano 提交于
      The current rebase implementation finds commits in our tree but
      not in the upstream tree using git-cherry, and tries to apply
      them using git-cherry-pick (i.e. always use 3-way) one by one.
      
      Which is fine, but when some of the changes do not apply
      cleanly, it punts, and punts badly.
      
      Suppose you have commits A-B-C-D-E since you forked from the
      upstream and submitted the changes for inclusion.  You fetch
      from upstream head U and find that B has been picked up.  You
      run git-rebase to update your branch, which tries to apply
      changes contained in A-C-D-E, in this order, but replaying of C
      fails, because the upstream got changes that touch the same area
      from elsewhere.
      
      Now what?
      
      It notes that fact, and goes ahead to apply D and E, and at the
      very end tells you to deal with C by hand.  Even if you somehow
      managed to replay C on top of the result, you would now end up
      with ...-B-...-U-A-D-E-C.
      
      Breaking the order between B and others was the conscious
      decision made by the upstream, so we would not worry about it,
      and even if it were worrisome, it is too late for us to fix now.
      What D and E do may well depend on having C applied before them,
      which is a problem for us.
      
      This rewrites rebase to use git-format-patch piped to git-am,
      and when the patch does not apply, have git-am fall back on
      3-way merge.  The updated diff/patch pair knows how to apply
      trivial binary patches as long as the pre- and post-images are
      locally available, so this should work on a repository with
      binary files as well.
      
      The primary benefit of this change is that it makes rebase
      easier to use when some of the changes do not replay cleanly.
      In the "unapplicable patch in the middle" case, this "rebase"
      works like this:
      
       - A series of patches in e-mail form is created that records
         what A-C-D-E do, and is fed to git-am.  This is stored in
         .dotest/ directory, just like the case you tried to apply
         them from your mailbox.  Your branch is rewound to the tip of
         upstream U, and the original head is kept in .git/ORIG_HEAD,
         so you could "git reset --hard ORIG_HEAD" in case the end
         result is really messy.
      
       - Patch A applies cleanly.  This could either be a clean patch
         application on top of rewound head (i.e. same as upstream
         head), or git-am might have internally fell back on 3-way
         (i.e.  it would have done the same thing as git-cherry-pick).
         In either case, a rebased commit A is made on top of U.
      
       - Patch C does not apply.  git-am stops here, with conflicts to
         be resolved in the working tree.  Yet-to-be-applied D and E
         are still kept in .dotest/ directory at this point.  What the
         user does is exactly the same as fixing up unapplicable patch
         when running git-am:
      
         - Resolve conflict just like any merge conflicts.
         - "git am --resolved --3way" to continue applying the patches.
      
       - This applies the fixed-up patch so by definition it had
         better apply.  "git am" knows the patch after the fixed-up
         one is D and then E; it applies them, and you will get the
         changes from A-C-D-E commits on top of U, in this order.
      
      I've been using this without noticing any problem, and as people
      may know I do a lot of rebases.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7f59dbbb
    • J
      git-branch: -f to forcibly reset branch head. · eb777612
      Junio C Hamano 提交于
      A new usage, 'git-branch -f branch [start]', resets the branch head at
      start (or current head).  Should be considered a dangerous operation,
      but if you are like me to keep rewinding branches it is handy.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      eb777612
    • J
      Do not show .exe in git command list. · f9039f30
      Junio C Hamano 提交于
      Truncate the result from readdir() in the exec-path if they end
      with .exe, to make it a bit more readable on Cygwin.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      f9039f30