1. 28 9月, 2006 1 次提交
    • J
      An illustration of rev-list --parents --pretty=raw · 16652170
      Junio C Hamano 提交于
      This script creates two separate histories, A and B, each of
      which does:
      
            (A0, B0): create fileA and subdir/fileB
            (A1, B1): modify fileA
            (A2, B2): modify subdir/fileB
      
      and then grafts them together to make B0 a child of A2.  So
      the final history looks like (time flows from top to bottom):
      
      		true parent	touches subdir?
      
      	A0	none		yes (creates it)
              A1      A0		no
              A2	A1		yes
              B0	none		yes (different from what's in A2)
              B1	B0		no
              B2	B1		yes
      
      "git rev-list --parents --pretty=raw B2" would give "fake"
      parents on the "commit " header lines while "parent " header
      lines show the parent as recorded in the commit object (i.e. B0
      appears to have A2 as its parent on "commit " header but there
      is no "parent A2" header line in it).
      
      When you have path limiters, we simplify history to omit
      commits that do not affect the specified paths.
      
      So "git rev-list --parents --pretty=raw B2 subdir" would return
      "B2 B0 A2 A0" (because B1 and A1 do not touch the path).  When
      it does so, the "commit " header lines have "fake" parents
      (i.e. B2 appears to have B0 as its parent on "commit " header),
      but you can still get the true parents by looking at "parent "
      header.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      16652170
  2. 27 9月, 2006 3 次提交
  3. 26 9月, 2006 2 次提交
  4. 25 9月, 2006 11 次提交
  5. 24 9月, 2006 9 次提交
  6. 23 9月, 2006 8 次提交
  7. 22 9月, 2006 6 次提交