1. 05 7月, 2005 2 次提交
  2. 04 7月, 2005 3 次提交
  3. 30 6月, 2005 2 次提交
  4. 27 6月, 2005 2 次提交
  5. 25 6月, 2005 1 次提交
    • L
      git-rev-list: add option to list all objects (not just commits) · 9de48752
      Linus Torvalds 提交于
      When you do
      
      	git-rev-list --objects $(git-rev-parse HEAD^..HEAD)
      
      it now lists not only the "commit difference" between the parent of HEAD
      and HEAD itself (which is normally just the parent, but in the case of a
      merge will be all the newly merged commits), but also all the new tree
      and blob objects that weren't in the original.
      
      NOTE! It doesn't walk all the way to the root, so it doesn't do a full
      object search in the full old history.  Instead, it will only look as
      far back in the history as it needs to resolve the commits.  Thus, if
      the commit reverts a blob (or tree) back to a state much further back in
      history, we may end up listing some blobs (or trees) as "new" even
      though they exist further back.
      
      Regardless, the list of objects will be a superset (usually exact) list
      of objects needed to go from the beginning commit to ending commit.
      
      As a particularly obvious special case,
      
      	git-rev-list --objects HEAD
      
      will end up listing every single object that is reachable from the HEAD
      commit.
      
      Side note: the objects are sorted by "recency", with commits first.
      9de48752
  6. 20 6月, 2005 2 次提交
  7. 19 6月, 2005 1 次提交
  8. 18 6月, 2005 1 次提交
    • L
      git-rev-list: add "--bisect" flag to find the "halfway" point · 8b3a1e05
      Linus Torvalds 提交于
      This is useful for doing binary searching for problems.  You start with
      a known good and known bad point, and you then test the "halfway" point
      in between:
      
      	git-rev-list --bisect bad ^good
      
      and you test that.  If that one tests good, you now still have a known
      bad case, but two known good points, and you can bisect again:
      
      	git-rev-list --bisect bad ^good1 ^good2
      
      and test that point.  If that point is bad, you now use that as your
      known-bad starting point:
      
      	git-rev-list --bisect newbad ^good1 ^good2
      
      and basically at every iteration you shrink your list of commits by
      half: you're binary searching for the point where the troubles started,
      even though there isn't a nice linear ordering.
      8b3a1e05
  9. 09 6月, 2005 1 次提交
    • P
      [PATCH] Tidy up some rev-list-related stuff · 17ebe977
      Petr Baudis 提交于
      This patch tidies up the git-rev-list documentation and epoch.c, which
      are in severe clash with the unwritten coding style now, and quite
      unreadable.
      
      It also fixes up compile failures with older compilers due to variable
      declarations after code.
      
      The patch mostly wraps lines before or on the 80th column, removes
      plenty of superfluous empty lines and changes comments from // to /* */.
      Signed-off-by: NPetr Baudis <pasky@ucw.cz>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      17ebe977
  10. 07 6月, 2005 1 次提交
    • J
      [PATCH] Modify git-rev-list to linearise the commit history in merge order. · a3437b8c
      jon@blackcubes.dyndns.org 提交于
      This patch linearises the GIT commit history graph into merge order
      which is defined by invariants specified in Documentation/git-rev-list.txt.
      
      The linearisation produced by this patch is superior in an objective sense
      to that produced by the existing git-rev-list implementation in that
      the linearisation produced is guaranteed to have the minimum number of
      discontinuities, where a discontinuity is defined as an adjacent pair of
      commits in the output list which are not related in a direct child-parent
      relationship.
      
      With this patch a graph like this:
      
      	a4 ---
      	| \   \
      	|  b4 |
      	|/ |  |
      	a3 |  |
      	|  |  |
      	a2 |  |
      	|  |  c3
      	|  |  |
      	|  |  c2
      	|  b3 |
      	|  | /|
      	|  b2 |
      	|  |  c1
      	|  | /
      	|  b1
      	a1 |
      	|  |
      	a0 |
      	| /
      	root
      
      Sorts like this:
      
      	= a4
      	| c3
      	| c2
      	| c1
      	^ b4
      	| b3
      	| b2
      	| b1
      	^ a3
      	| a2
      	| a1
      	| a0
      	= root
      
      Instead of this:
      
      	= a4
      	| c3
      	^ b4
      	| a3
      	^ c2
      	^ b3
      	^ a2
      	^ b2
      	^ c1
      	^ a1
      	^ b1
      	^ a0
      	= root
      
      A test script, t/t6000-rev-list.sh, includes a test which demonstrates
      that the linearisation produced by --merge-order has less discontinuities
      than the linearisation produced by git-rev-list without the --merge-order
      flag specified. To see this, do the following:
      
      	cd t
      	./t6000-rev-list.sh
      	cd trash
      	cat actual-default-order
      	cat actual-merge-order
      
      The existing behaviour of git-rev-list is preserved, by default. To obtain
      the modified behaviour, specify --merge-order or --merge-order --show-breaks
      on the command line.
      
      This version of the patch has been tested on the git repository and also on the linux-2.6
      repository and has reasonable performance on both - ~50-100% slower than the original algorithm.
      
      This version of the patch has incorporated a functional equivalent of the Linus' output limiting
      algorithm into the merge-order algorithm itself. This operates per the notes associated
      with Linus' commit 337cb3fb.
      
      This version has incorporated Linus' feedback regarding proposed changes to rev-list.c.
      (see: [PATCH] Factor out filtering in rev-list.c)
      
      This version has improved the way sort_first_epoch marks commits as uninteresting.
      
      For more details about this change, refer to Documentation/git-rev-list.txt
      and http://blackcubes.dyndns.org/epoch/.
      Signed-off-by: NJon Seymour <jon.seymour@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a3437b8c
  11. 06 6月, 2005 1 次提交
    • L
      pretty_print_commit: add different formats · 000182ea
      Linus Torvalds 提交于
      You can ask to print out "raw" format (full headers, full body),
      "medium" format (author and date, full body) or "short" format
      (author only, condensed body).
      
      Use "git-rev-list --pretty=short HEAD | less -S" for an example.
      000182ea
  12. 05 6月, 2005 1 次提交
    • L
      git-rev-list: allow arbitrary head selections, use git-rev-tree syntax · 337cb3fb
      Linus Torvalds 提交于
      This makes git-rev-list use the same command line syntax to mark the
      commits as git-rev-tree does, and instead of just allowing a start and
      end commit, it allows an arbitrary list of "interesting" and "uninteresting"
      commits.
      
      For example, imagine that you had three branches (a, b and c) that you
      are interested in, but you don't want to see stuff that already exists
      in another persons three releases (x, y and z). You can do
      
      	git-rev-list a b c ^x ^y ^z
      
      (order doesn't matter, btw - feel free to put the uninteresting ones
      first or otherwise swithc them around), and it will show all the
      commits that are reachable from a/b/c but not reachable from x/y/z.
      
      The old syntax "git-rev-list start end" would not be written as
      "git-rev-list start ^end", or "git-rev-list ^end start".
      
      There's no limit to the number of heads you can specify (unlike
      git-rev-tree, which can handle a maximum of 16 heads).
      337cb3fb
  13. 03 6月, 2005 2 次提交
  14. 01 6月, 2005 1 次提交
    • L
      git-rev-list: add "--pretty" command line option · 9d97aa64
      Linus Torvalds 提交于
      That pretty-prints the resulting commit messages, so
      
      	git-rev-list --pretty HEAD v2.6.12-rc5 | less -S
      
      basically ends up being a log of the changes between -rc5
      and current head.
      
      It uses the pretty-printing helper function I just extracted
      from diff-tree.c.
      9d97aa64
  15. 31 5月, 2005 2 次提交
  16. 26 5月, 2005 1 次提交
    • L
      git-rev-list: add "end" commit and "--header" flag · a6f68d47
      Linus Torvalds 提交于
      The "end" commit is just faking it right now, it's sorting things
      purely by date, so this is _not_ a reachability analysis. Some day.
      
      The "--header" flag causes the commit message to be printed out,
      with a NUL character separator after it for parseability. This
      allows you to do things like use "grep -z" to grep for certain
      authors etc.
      a6f68d47
  17. 20 5月, 2005 1 次提交
  18. 07 5月, 2005 1 次提交
  19. 02 5月, 2005 1 次提交
    • L
      Add "get_sha1()" helper function. · 3c249c95
      Linus Torvalds 提交于
      This allows the programs to use various simplified versions of
      the SHA1 names, eg just say "HEAD" for the SHA1 pointed to by
      the .git/HEAD file etc.
      
      For example, this commit has been done with
      
      	git-commit-tree $(git-write-tree) -p HEAD
      
      instead of the traditional "$(cat .git/HEAD)" syntax.
      3c249c95
  20. 24 4月, 2005 2 次提交