Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Mon, 3 Nov 2008 00:36:40 +0000 (16:36 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Nov 2008 00:36:40 +0000 (16:36 -0800)
* maint:
Add reference for status letters in documentation.
Document that git-log takes --all-match.
Update draft 1.6.0.4 release notes

1  2 
Documentation/rev-list-options.txt
diffcore.h
index 0ce916a1887b0846bfc5a6e2233242601e0dde79,5df35ce519e27e3fa20a0f3732ac4ddb58d9ab69..966276b169d6fb09c571a05257dfbc1fe3bd4f03
@@@ -174,6 -174,10 +174,10 @@@ endif::git-rev-list[
        Limit the commits output to ones with log message that
        matches the specified pattern (regular expression).
  
+ --all-match::
+       Limit the commits output to ones that match all given --grep,
+       --author and --committer instead of ones that match at least one.
  -i::
  --regexp-ignore-case::
  
@@@ -409,48 -413,6 +413,48 @@@ Note that without '\--full-history', th
  one of the parents is TREESAME, we follow only that one, so the other
  sides of the merge are never walked.
  
 +Finally, there is a fourth simplification mode available:
 +
 +--simplify-merges::
 +
 +      First, build a history graph in the same way that
 +      '\--full-history' with parent rewriting does (see above).
 ++
 +Then simplify each commit `C` to its replacement `C'` in the final
 +history according to the following rules:
 ++
 +--
 +* Set `C'` to `C`.
 ++
 +* Replace each parent `P` of `C'` with its simplification `P'`.  In
 +  the process, drop parents that are ancestors of other parents, and
 +  remove duplicates.
 ++
 +* If after this parent rewriting, `C'` is a root or merge commit (has
 +  zero or >1 parents), a boundary commit, or !TREESAME, it remains.
 +  Otherwise, it is replaced with its only parent.
 +--
 ++
 +The effect of this is best shown by way of comparing to
 +'\--full-history' with parent rewriting.  The example turns into:
 ++
 +-----------------------------------------------------------------------
 +        .-A---M---N---O
 +       /     /       /
 +      I     B       D
 +       \   /       /
 +        `---------'
 +-----------------------------------------------------------------------
 ++
 +Note the major differences in `N` and `P` over '\--full-history':
 ++
 +--
 +* `N`'s parent list had `I` removed, because it is an ancestor of the
 +  other parent `M`.  Still, `N` remained because it is !TREESAME.
 ++
 +* `P`'s parent list similarly had `I` removed.  `P` was then
 +  removed completely, because it had one parent and is TREESAME.
 +--
  
  ifdef::git-rev-list[]
  Bisection Helpers
diff --combined diffcore.h
index 713cca785c4b986b5f667086ad43c324f248929c,1ebfdae8b8ba1ede00cddd17bfd0fb5610866d03..5b634585e8970de81067b9807d8813c083b86b0a
@@@ -22,8 -22,6 +22,8 @@@
  
  #define MINIMUM_BREAK_SIZE     400 /* do not break a file smaller than this */
  
 +struct userdiff_driver;
 +
  struct diff_filespec {
        unsigned char sha1[20];
        char *path;
  #define DIFF_FILE_VALID(spec) (((spec)->mode) != 0)
        unsigned should_free : 1; /* data should be free()'ed */
        unsigned should_munmap : 1; /* data should be munmap()'ed */
 -      unsigned checked_attr : 1;
 -      unsigned is_binary : 1; /* data should be considered "binary" */
 +
 +      struct userdiff_driver *driver;
 +      /* data should be considered "binary"; -1 means "don't know yet" */
 +      int is_binary;
  };
  
  extern struct diff_filespec *alloc_filespec(const char *);
@@@ -62,7 -58,7 +62,7 @@@ struct diff_filepair 
        struct diff_filespec *one;
        struct diff_filespec *two;
        unsigned short int score;
-       char status; /* M C R N D U (see Documentation/diff-format.txt) */
+       char status; /* M C R A D U etc. (see Documentation/diff-format.txt or DIFF_STATUS_* in diff.h) */
        unsigned broken_pair : 1;
        unsigned renamed_pair : 1;
        unsigned is_unmerged : 1;