1. 28 1月, 2006 9 次提交
    • J
      combine-diff: minor output changes. · e2283409
      Junio C Hamano 提交于
      Remove extra whitespace between the change indicators and the
      body text.  That is more in line with the uncombined unified
      diff output (pointed out by Santi Bejar).
      
      When showing --cc, say so instead of saying just --combined.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e2283409
    • J
      combine-diff: fix appending at the tail of a list. · 5290a0f8
      Junio C Hamano 提交于
      ... and use the established pattern of tail initialized to point
      at the head pointer for an empty list, and updated to point at
      the next pointer field of the item at the tail when appending.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5290a0f8
    • J
      diff-tree --cc: denser combined diff output for a merge commit. · d8f4790e
      Junio C Hamano 提交于
      Building on the previous '-c' (combined) option, '--cc' option
      squelches the output further by omitting hunks that consist of
      difference with solely one parent.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d8f4790e
    • J
      diff-tree -c: show a merge commit a bit more sensibly. · af3feefa
      Junio C Hamano 提交于
      A new option '-c' to diff-tree changes the way a merge commit is
      displayed when generating a patch output.  It shows a "combined
      diff" (hence the option letter 'c'), which looks like this:
      
          $ git-diff-tree --pretty -c -p fec9ebf1 | head -n 18
          diff-tree fec9ebf1... (from parents)
          Merge: 0620db36... 8a263aeb...
          Author: Junio C Hamano <junkio@cox.net>
          Date:   Sun Jan 15 22:25:35 2006 -0800
      
      	Merge fixes up to GIT 1.1.3
      
          diff --combined describe.c
          @@@ +98,7 @@@
      	    return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
             }
      
          -  static void describe(char *arg)
           - static void describe(struct commit *cmit, int last_one)
          ++ static void describe(char *arg, int last_one)
             {
           +      unsigned char sha1[20];
           +      struct commit *cmit;
      
      There are a few things to note about this feature:
      
       - The '-c' option implies '-p'.  It also implies '-m' halfway
         in the sense that "interesting" merges are shown, but not all
         merges.
      
       - When a blob matches one of the parents, we do not show a diff
         for that path at all.  For a merge commit, this option shows
         paths with real file-level merge (aka "interesting things").
      
       - As a concequence of the above, an "uninteresting" merge is
         not shown at all.  You can use '-m' in addition to '-c' to
         show the commit log for such a merge, but there will be no
         combined diff output.
      
       - Unlike "gitk", the output is monochrome.
      
      A '-' character in the nth column means the line is from the nth
      parent and does not appear in the merge result (i.e. removed
      from that parent's version).
      
      A '+' character in the nth column means the line appears in the
      merge result, and the nth parent does not have that line
      (i.e. added by the merge itself or inherited from another
      parent).
      
      The above example output shows that the function signature was
      changed from either parents (hence two "-" lines and a "++"
      line), and "unsigned char sha1[20]", prefixed by a " +", was
      inherited from the first parent.
      
      The code as sent to the list was buggy in few corner cases,
      which I have fixed since then.
      
      It does not bother to keep track of and show the line numbers
      from parent commits, which it probably should.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      af3feefa
    • J
      merge: seed the commit message with list of conflicted files. · 6b94f1e4
      Junio C Hamano 提交于
      The files with conflicts need to be hand resolved, and it is a
      good discipline for the committer to explain which branch was
      taken and why.  Pre-fill the merge message template with the
      list of conflicted paths to encourage it.
      
      This is from Linus.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      6b94f1e4
    • J
      Merge fixes up to GIT 1.1.5 · 767e1309
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      767e1309
    • J
      GIT 1.1.5 · 2111168f
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      2111168f
    • J
      GIT 1.0.13 · ca182053
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ca182053
    • J
      checkout: do not make a temporary copy of symlink target. · 1ecc18e4
      Junio C Hamano 提交于
      If the index records an insanely long symbolic link, copying
      into the temporary would overflow the buffer (noticed by Mark
      Wooding).
      
      Because read_sha1_file() terminates the returned buffer with NUL
      since late May 2005, there is no reason to copy it anymore.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      1ecc18e4
  2. 27 1月, 2006 5 次提交
  3. 26 1月, 2006 7 次提交
  4. 25 1月, 2006 10 次提交
  5. 23 1月, 2006 3 次提交
  6. 22 1月, 2006 6 次提交
    • J
      git-grep: clarification on parameters. · 5b2bcc7b
      Junio C Hamano 提交于
      We forgot to make sure that there is no more than one pattern
      parameter.  Also when looking for files in a directory called
      '--others', it passed that path limiter without preceding the
      end-of-options marker '--' to underlying git-ls-files, which
      misunderstood it as one of its options instead.
      
      	$ git grep --others -e Meta/Make Meta
      	$ git grep -o -e Meta/Make Meta
      	$ git grep -o Meta/Make Meta
      
      look for a string "Meta/Make" from untracked files in Meta/
      directory.
      
      	$ git grep Meta/Make --others
      
      looks for the same string from tracked files in ./--others
      directory.
      
      On the other hand,
      
      	$ git grep -e Meta/Make --others
      
      does not have a freestanding pattern, so everybody is parameter
      and there is no path specifier.  It looks for the string in all
      the untracked files without any path limiter.
      
      [jc: updated with usability enhancements and documentation
      cleanups from Sean.]
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5b2bcc7b
    • J
      Undef DT_* before redefining them. · 0bdd79af
      Junio C Hamano 提交于
      When overriding DT_* macro detection with NO_D_TYPE_IN_DIRENT (recent
      Cygwin build problem, which hopefully is already fixed in their CVS
      snapshot version), we define DTYPE() macro to return just "we do not
      know", but still needed to use DT_* macro to avoid ifdef in the code
      we use them.  If the platform defines DT_* macro but with unusable
      d_type, this would have resulted in us redefining these preprocessor
      symbols.
      
      Admittedly, that would be just a couple of compilation warnings, and
      on Cygwin at least this particular problem is transitory (the problem
      is already fixed in their CVS snapshot version), so this is a low
      priority fix.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      0bdd79af
    • J
      t4011: "sleep 1" is not enough on FAT · 5df9140c
      Junio C Hamano 提交于
      This test depended on "sleep 1" to be enough to dirty the index
      entry for a symlink.  Alex noticed that on his Cygwin installation
      "sleep 1" was sometimes not enough, and after further discussion with
      Christopher Faylor, it was brought up that on FAT filesystem timestamp
      granularity is 2 seconds so sleeping 1 second is not enough.
      
      For now this patch takes an easy workaround of sleeping for 3 seconds.
      
      Very strictly speaking, POSIX requires lstat to fill only S_IFMT part
      of st_mode and st_size for symlinks, and depending on timestamp might
      be considered a bug, but we depend on that anyway, so it is better to
      test that.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5df9140c
    • J
      DT_UNKNOWN: do not fully trust existence of DT_UNKNOWN · 63be37b0
      Junio C Hamano 提交于
      The recent Cygwin defines DT_UNKNOWN although it does not have d_type
      in struct dirent.  Give an option to tell us not to use d_type on such
      platforms.  Hopefully this problem will be transient.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      63be37b0
    • J
      fsck-objects: support platforms without d_ino in struct dirent. · 35a730f0
      Junio C Hamano 提交于
      The d_ino field is only used for performance reasons in
      fsck-objects.  On a typical filesystem, i-number tends to have a
      strong correlation with where the actual bits sit on the disk
      platter, and we sort the entries to allow us scan things that
      ought to be close together together.
      
      If the platform lacks support for it, it is not a big deal.
      Just do not use d_ino for sorting, and scan them unsorted.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      35a730f0
    • J
      Makefile: do not assume lack of IPV6 means no sockaddr_storage. · bdc37f5a
      Junio C Hamano 提交于
      Noticed first by Alex, that the latest Cygwin now properly has
      sockaddr_storage.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      bdc37f5a