1. 13 11月, 2011 1 次提交
  2. 10 11月, 2011 4 次提交
    • J
      commit-tree: update the command line parsing · 79a9312c
      Junio C Hamano 提交于
      We have kept the original "git commit-tree <tree> -p <parent> ..." syntax
      forever, but "git commit-tree -p <parent> -p <parent> ... <tree>" would be
      more intuitive way to spell it. Dashed flags along with their arguments
      come first and then the "thing" argument after the flags.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      79a9312c
    • J
      commit: teach --amend to carry forward extra headers · ed7a42a0
      Junio C Hamano 提交于
      After running "git pull $there for-linus" to merge a signed tag, the
      integrator may need to amend the resulting merge commit to fix typoes
      in it. Teach --amend option to read the existing extra headers, and
      carry them forward.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ed7a42a0
    • J
      merge: force edit and no-ff mode when merging a tag object · fab47d05
      Junio C Hamano 提交于
      Now that we allow pulling a tag from the remote site to validate the
      authenticity, we should give the user the final chance to verify and edit
      the merge message. The integrator is expected to leave a meaningful merge
      commit log in the history. Disallow fast-forwarding in such a case to
      ensure that a merge commit is always recorded.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fab47d05
    • J
      commit: copy merged signed tags to headers of merge commit · 5231c633
      Junio C Hamano 提交于
      Now MERGE_HEAD records the tag objects without peeling, we could record
      the result of manual conflict resolution via "git commit" without losing
      the tag information. Introduce a new "mergetag" multi-line header field to
      the commit object, and use it to store the entire contents of each signed
      tag merged.
      
      A commit header that has a multi-line payload begins with the header tag
      (e.g. "mergetag" in this case), SP, the first line of payload, LF, and all
      the remaining lines have a SP inserted at the beginning.
      
      In hindsight, it would have been better to make "merge --continue" as the
      way to continue from such an interrupted merge, not "commit", but this is
      a backward compatibility baggage we would need to carry around for now.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5231c633
  3. 09 11月, 2011 3 次提交
    • J
      merge: record tag objects without peeling in MERGE_HEAD · 274a5c06
      Junio C Hamano 提交于
      Otherwise, "git commit" wouldn't have a way to tell that we were in the
      middle of merging an annotated or signed tag, not a plain commit, after
      "git merge" stops to ask the user to resolve conflicts.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      274a5c06
    • J
      merge: make usage of commit->util more extensible · ae8e4c9c
      Junio C Hamano 提交于
      The merge-recursive code uses the commit->util field directly to annotate
      the commit objects given from the command line, i.e. the remote heads to
      be merged, with a single string to be used to describe it in its trace
      messages and conflict markers.
      
      Correct this short-signtedness by redefining the field to be a pointer to
      a structure "struct merge_remote_desc" that later enhancements can add
      more information. Store the original objects we were told to merge in a
      field "obj" in this struct, so that we can recover the tag we were told to
      merge.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ae8e4c9c
    • J
      fmt-merge-msg: Add contents of merged tag in the merge message · 895680f0
      Junio C Hamano 提交于
      When a contributor asks the integrator to merge her history, a signed tag
      can be a good vehicle to communicate the authenticity of the request while
      conveying other information such as the purpose of the topic.
      
      E.g. a signed tag "for-linus" can be created, and the integrator can run:
      
         $ git pull git://example.com/work.git/ for-linus
      
      This would allow the integrator to run "git verify-tag FETCH_HEAD" to
      validate the signed tag.
      
      Update fmt-merge-msg so that it pre-fills the merge message template with
      the body (but not signature) of the tag object to help the integrator write
      a better merge message, in the same spirit as the existing merge.log summary
      lines.
      
      The message that comes from GPG signature validation is also included in
      the merge message template to help the integrator verify it, but they are
      prefixed with "#" to make them comments.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      895680f0
  4. 08 11月, 2011 5 次提交
  5. 05 11月, 2011 2 次提交
    • L
      fetch: do not store peeled tag object names in FETCH_HEAD · 7a2b128d
      Linus Torvalds 提交于
      We do not want to record tags as parents of a merge when the user does
      "git pull $there tag v1.0" to merge tagged commit, but that is not a good
      enough excuse to peel the tag down to commit when storing in FETCH_HEAD.
      The caller of underlying "git fetch $there tag v1.0" may have other uses
      of information contained in v1.0 tag in mind.
      
      [jc: the test adjustment is to update for the new expectation]
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7a2b128d
    • J
      Split GPG interface into its own helper library · 2f47eae2
      Junio C Hamano 提交于
      This mostly moves existing code from builtin/tag.c (for signing)
      and builtin/verify-tag.c (for verifying) to a new gpg-interface.c
      file to provide a more generic library interface.
      
       - sign_buffer() takes a payload strbuf, a signature strbuf, and a signing
         key, runs "gpg" to produce a detached signature for the payload, and
         appends it to the signature strbuf. The contents of a signed tag that
         concatenates the payload and the detached signature can be produced by
         giving the same strbuf as payload and signature strbuf.
      
       - verify_signed_buffer() takes a payload and a detached signature as
         <ptr, len> pairs, and runs "gpg --verify" to see if the payload matches
         the signature. It can optionally capture the output from GPG to allow
         the callers to pretty-print it in a way more suitable for their
         contexts.
      
      "verify-tag" (aka "tag -v") used to save the whole tag contents as if it
      is a detached signature, and fed gpg the payload part of the tag. It
      relied on gpg to fail when the given tag is not signed but just is
      annotated.  The updated run_gpg_verify() function detects the lack of
      detached signature in the input, and errors out without bothering "gpg".
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2f47eae2
  6. 20 10月, 2011 8 次提交
  7. 19 10月, 2011 7 次提交
  8. 18 10月, 2011 10 次提交