1. 10 7月, 2012 4 次提交
  2. 04 7月, 2012 1 次提交
  3. 13 11月, 2011 1 次提交
    • J
      log: --show-signature · 0c37f1fc
      Junio C Hamano 提交于
      This teaches the "log" family of commands to pass the GPG signature in the
      commit objects to "gpg --verify" via the verify_signed_buffer() interface
      used to verify signed tag objects. E.g.
      
          $ git show --show-signature -s HEAD
      
      shows GPG output in the header part of the output.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0c37f1fc
  4. 04 10月, 2011 2 次提交
  5. 19 9月, 2011 1 次提交
    • N
      Accept tags in HEAD or MERGE_HEAD · baf18fc2
      Nguyễn Thái Ngọc Duy 提交于
      HEAD and MERGE_HEAD (among other branch tips) should never hold a
      tag. That can only be caused by broken tools and is cumbersome to fix
      by an end user with:
      
        $ git update-ref HEAD $(git rev-parse HEAD^{commit})
      
      which may look like a magic to a new person.
      
      Be easy, warn users (so broken tools can be fixed if they bother to
      report) and move on.
      
      Be robust, if the given SHA-1 cannot be resolved to a commit object,
      die (therefore return value is always valid).
      Signed-off-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      baf18fc2
  6. 02 9月, 2011 1 次提交
    • J
      rev-list --verify-object · 5a48d240
      Junio C Hamano 提交于
      Often we want to verify everything reachable from a given set of commits
      are present in our repository and connected without a gap to the tips of
      our refs. We used to do this for this purpose:
      
          $ rev-list --objects $commits_to_be_tested --not --all
      
      Even though this is good enough for catching missing commits and trees,
      we show the object name but do not verify their existence, let alone their
      well-formedness, for the blob objects at the leaf level.
      
      Add a new "--verify-object" option so that we can catch missing and broken
      blobs as well.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5a48d240
  7. 26 8月, 2011 2 次提交
    • J
      revision: do not include sibling history in --ancestry-path output · c3502fa8
      Junio C Hamano 提交于
      If the commit specified as the bottom of the commit range has a direct
      parent that has another child commit that contributed to the resulting
      history, "rev-list --ancestry-path" was confused and listed that side
      history as well, due to the command line parser subtlety corrected by the
      previous commit.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c3502fa8
    • J
      revision: keep track of the end-user input from the command line · 281eee47
      Junio C Hamano 提交于
      Given a complex set of revision specifiers on the command line, it is too
      late to look at the flags of the objects in the initial traversal list at
      the beginning of limit_list() in order to determine what the objects the
      end-user explicitly listed on the command line were. The process to move
      objects from the pending array to the traversal list may have marked
      objects that are not mentioned as UNINTERESTING, when handle_commit()
      marked the parents of UNINTERESTING commits mentioned on the command line
      by calling mark_parents_uninteresting().
      
      This made "rev-list --ancestry-path ^A ..." to mistakenly list commits
      that are descendants of A's parents but that are not descendants of A
      itself, as ^A from the command line causes A and its parents marked as
      UNINTERESTING before coming to limit_list(), and we try to enumerate the
      commits that are descendants of these commits that are UNINTERESTING
      before we start walking the history.
      
      It actually is too late even if we inspected the pending object array
      before calling prepare_revision_walk(), as some of the same objects might
      have been mentioned twice, once as positive and another time as negative.
      The "rev-list --some-option A --not --all" command may want to notice,
      even if the resulting set is empty, that the user showed some interest in
      "A" and do something special about it.
      
      Prepare a separate array to keep track of what syntactic element was used
      to cause each object to appear in the pending array from the command line,
      and populate it as setup_revisions() parses the command line.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      281eee47
  8. 23 8月, 2011 2 次提交
  9. 20 5月, 2011 1 次提交
  10. 19 5月, 2011 1 次提交
  11. 12 5月, 2011 2 次提交
    • J
      revision.c: leave a note for "a lone :" enhancement · 93e7d672
      Junio C Hamano 提交于
      If we later add a command in the log family that by default limit
      its operation to the current subdirectory, we would need to resurrect
      the "a lone ':' on the command line means no pathspec whatsoever".
      
      Now the codepath was cleaned up, we can do so in one place.  Leave a
      note to mark where it is for later generations.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      93e7d672
    • J
      setup_revisions(): take pathspec from command line and --stdin correctly · 4da5af31
      Junio C Hamano 提交于
      When the command line has "--" disambiguator, we take the remainder of
      argv[] as "prune_data", but when --stdin is given at the same time,
      we need to append to the existing prune_data and end up attempting to
      realloc(3) it.  That would not work.
      
      Fix it by consistently using append_prune_data() throughout the input
      processing.  Also avoid counting the number of existing paths in the
      function over and over again.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4da5af31
  12. 22 4月, 2011 2 次提交
  13. 30 3月, 2011 5 次提交
  14. 24 3月, 2011 1 次提交
    • M
      revision.c: introduce --min-parents and --max-parents options · ad5aeede
      Michael J Gruber 提交于
      Introduce --min-parents and --max-parents options which limit the
      revisions to those commits which have at least (or at most) that many
      commits, where negative arguments for --max-parents= denote infinity
      (i.e. no upper limit).
      
      In particular:
      
        --max-parents=1 is the same as --no-merges;
        --min-parents=2 is the same as --merges;
        --max-parents=0 shows only roots; and
        --min-parents=3 shows only octopus merges
      
      Using --min-parents=n and --max-parents=m with n>m gives you what you ask
      for (i.e. nothing) for obvious reasons, just like when you give --merges
      (show only merge commits) and --no-merges (show only non-merge commits) at
      the same time.
      
      Also, introduce --no-min-parents and --no-max-parents to do the obvious
      thing for convenience.
      
      We compute the number of parents only when we limit by that, so there
      is no performance impact when there are no limiters.
      Signed-off-by: NMichael J Gruber <git@drmicha.warpmail.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ad5aeede
  15. 11 3月, 2011 1 次提交
    • M
      git-log: put space after commit mark · b1b47554
      Michael J Gruber 提交于
      Currently, commit marks (left, right, boundary, cherry) are output right
      before the commit sha1, which makes it difficult to copy sha1s. Sample
      output for "git log --oneline --cherry":
      
      =049c269 t6007: test rev-list --cherry
      
      Change this to
      
      = 049c269 t6007: test rev-list --cherry
      
      which matches exactly the current output of "git log --graph".
      
      Leave "git rev-list" output as is (no space) so that they do not break.
      
      Adjust "git-svn" which uses "git log --pretty=raw --boundary".
      Signed-off-by: NMichael J Gruber <git@drmicha.warpmail.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b1b47554
  16. 10 3月, 2011 3 次提交
  17. 22 2月, 2011 2 次提交
  18. 04 2月, 2011 3 次提交
  19. 30 11月, 2010 1 次提交
  20. 24 11月, 2010 1 次提交
    • J
      reflogs: clear flags properly in corner case · ffa1eeae
      Jeff King 提交于
      The reflog-walking mechanism is based on the regular
      revision traversal. We just rewrite the parents of each
      commit in fake_reflog_parent to point to the commit in the
      next reflog entry instead of the real parents.
      
      However, the regular revision traversal tries not to show
      the same commit twice, and so sets the SHOWN flag on each
      commit it shows. In a reflog, however, we may want to see
      the same commit more than once if it appears in the reflog
      multiple times (which easily happens, for example, if you do
      a reset to a prior state).
      
      The fake_reflog_parent function takes care of this by
      clearing flags, including SHOWN. Unfortunately, it does so
      at the very end of the function, and it is possible to
      return early from the function if there is no fake parent to
      set up (e.g., because we are at the very first reflog entry
      on the branch). In such a case the flag is not cleared, and
      the entry is skipped by the revision traversal machinery as
      already shown.
      
      You can see this by walking the log of a ref which is set to
      its very first commit more than once (the test below shows
      such a situation). In this case the reflog walk will fail to
      show the entry for the initial creation of the ref.
      
      We don't want to simply move the flag-clearing to the top of
      the function; we want to make sure flags set during the
      fake-parent installation are also cleared. Instead, let's
      hoist the flag-clearing out of the fake_reflog_parent
      function entirely. It's not really about fake parents
      anyway, and the only caller is the get_revision machinery.
      Reported-by: NMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
      Signed-off-by: NJeff King <peff@peff.net>
      Acked-by: NJohannes Schindelin <Johannes.Schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ffa1eeae
  21. 07 8月, 2010 2 次提交
  22. 08 7月, 2010 1 次提交