summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-11-09commit: copy merged signed tags to headers of merge commitLibravatar Junio C Hamano3-11/+116
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: Junio C Hamano <gitster@pobox.com>
2011-11-08merge: record tag objects without peeling in MERGE_HEADLibravatar Junio C Hamano2-4/+15
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: Junio C Hamano <gitster@pobox.com>
2011-11-08merge: make usage of commit->util more extensibleLibravatar Junio C Hamano4-47/+61
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: Junio C Hamano <gitster@pobox.com>
2011-11-08fmt-merge-msg: Add contents of merged tag in the merge messageLibravatar Junio C Hamano3-2/+92
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: Junio C Hamano <gitster@pobox.com>
2011-11-07fmt-merge-msg: package options into a structureLibravatar Junio C Hamano3-18/+27
This way new features can be added more easily Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-07fmt-merge-msg: avoid early returnsLibravatar Junio C Hamano1-10/+10
In various places in the codepath, the program tries to return early assuming there is no more work needed. That is generally untrue when over time new features are added. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-07refs DWIMmery: use the same rule for both "git fetch" and othersLibravatar Junio C Hamano3-12/+3
"git log frotz" can DWIM to "refs/remotes/frotz/HEAD", but in the remote access context, "git fetch frotz" to fetch what the other side happened to have fetched from what it calls 'frotz' (which may not have any relation to what we consider is 'frotz') the last time would not make much sense, so the fetch rules table did not include "refs/remotes/%.*s/HEAD". When the user really wants to, "git fetch $there remotes/frotz/HEAD" would let her do so anyway, so this is not about safety or security; it merely is about confusion avoidance and discouraging meaningless usage. Specifically, it is _not_ about ambiguity avoidance. A name that would become ambiguous if we use the same rules table for both fetch and local rev-parse would be ambiguous locally at the remote side. So for the same reason as we added rule to allow "git fetch $there v1.0" instead of "git fetch $there tags/v1.0" in the previous commit, here is a bit longer rope for the users, which incidentally simplifies our code. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-07fetch: allow "git fetch $there v1.0" to fetch a tagLibravatar Junio C Hamano1-0/+1
You can already do so with "git fetch $there tags/v1.0" but if it is not ambiguous there is no reason to force users to type more. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-07merge: notice local merging of tags and keep it unwrappedLibravatar Junio C Hamano5-8/+13
This also updates the autogenerated merge title message from "merge commit X" to "merge tag X", and its effect can be seen in the changes to the test suite. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-04fetch: do not store peeled tag object names in FETCH_HEADLibravatar Linus Torvalds59-176/+175
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: Junio C Hamano <gitster@pobox.com>
2011-11-04Split GPG interface into its own helper libraryLibravatar Junio C Hamano6-100/+166
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: Junio C Hamano <gitster@pobox.com>
2011-10-19Merge branch 'js/merge-edit-option'Libravatar Junio C Hamano3-39/+99
* js/merge-edit-option: Teach merge the '[-e|--edit]' option Conflicts: builtin/merge.c
2011-10-19Merge branch 'rs/diff-whole-function'Libravatar Junio C Hamano6-16/+175
* rs/diff-whole-function: diff: add option to show whole functions as context xdiff: factor out get_func_line()
2011-10-19Merge branch 'rs/pickaxe'Libravatar Junio C Hamano1-108/+70
* rs/pickaxe: pickaxe: factor out pickaxe pickaxe: give diff_grep the same signature as has_changes pickaxe: pass diff_options to contains and has_changes pickaxe: factor out has_changes pickaxe: plug regex/kws leak pickaxe: plug regex leak pickaxe: plug diff filespec leak with empty needle
2011-10-19Merge branch 'js/no-cherry-pick-head-after-punted'Libravatar Junio C Hamano2-7/+31
* js/no-cherry-pick-head-after-punted: cherry-pick: do not give irrelevant advice when cherry-pick punted revert.c: defer writing CHERRY_PICK_HEAD till it is safe to do so
2011-10-19Merge branch 'bk/submodule-in-recursive-merge'Libravatar Junio C Hamano4-4/+61
* bk/submodule-in-recursive-merge: submodule: Search for merges only at end of recursive merge submodule: Demonstrate known breakage during recursive merge
2011-10-19Merge branch 'jm/maint-apply-detects-corrupt-patch-header'Libravatar Junio C Hamano2-0/+46
* jm/maint-apply-detects-corrupt-patch-header: fix "git apply --index ..." not to deref NULL
2011-10-19Merge branch 'jk/config-test-cleanup'Libravatar Junio C Hamano1-12/+7
* jk/config-test-cleanup: t1300: attempting to remove a non-existent .git/config is not an error
2011-10-19t1300: attempting to remove a non-existent .git/config is not an errorLibravatar Johannes Sixt1-12/+7
Since some tests before test number 79 ("quoting") are skipped, .git/config does not exist and 'rm .git/config' fails. Fix this particular case. While at it, move other instance of 'rm .git/config' that occur in this file inside the test function to document that the test cases want to protect themselves from remnants of earlier tests. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-18Merge branch 'js/log-show-children'Libravatar Junio C Hamano1-0/+12
* js/log-show-children: log --children
2011-10-18Merge branch 'cb/httpd-test-fix-port'Libravatar Junio C Hamano1-1/+1
* cb/httpd-test-fix-port: use test number as port number
2011-10-18Merge branch 'jn/gitweb-manpages'Libravatar Junio C Hamano9-479/+1649
* jn/gitweb-manpages: gitweb: Add gitweb manpages to 'gitweb' package in git.spec Documentation: Add gitweb config variables to git-config(1) Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages gitweb: Add gitweb(1) manpage for gitweb itself gitweb: Add gitweb.conf(5) manpage for gitweb configuration files
2011-10-18Merge branch 'pt/mingw-misc-fixes'Libravatar Junio C Hamano8-29/+41
* pt/mingw-misc-fixes: t9901: fix line-ending dependency on windows mingw: ensure sockets are initialized before calling gethostname mergetools: use the correct tool for Beyond Compare 3 on Windows t9300: do not run --cat-blob-fd related tests on MinGW git-svn: On MSYS, escape and quote SVN_SSH also if set by the user t9001: do not fail only due to CR/LF issues t1020: disable the pwd test on MinGW
2011-10-18Merge branch 'md/smtp-tls-hello-again'Libravatar Junio C Hamano1-1/+1
* md/smtp-tls-hello-again: send-email: Honour SMTP domain when using TLS
2011-10-18Merge branch 'maint'Libravatar Junio C Hamano1-1/+0
* maint: strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()
2011-10-18strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()Libravatar Brandon Casey1-1/+0
This use of strbuf_grow() is a historical artifact that was once used to ensure that strbuf.buf was allocated and properly nul-terminated. This was added before the introduction of the slopbuf in b315c5c0, which guarantees that strbuf.buf always points to a usable nul-terminated string. So let's remove it. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-17Update draft release notes to 1.7.8Libravatar Junio C Hamano1-1/+37
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-17Merge branch 'jk/http-auth'Libravatar Junio C Hamano9-69/+130
* jk/http-auth: http_init: accept separate URL parameter http: use hostname in credential description http: retry authentication failures for all http requests remote-curl: don't retry auth failures with dumb protocol improve httpd auth tests url: decode buffers that are not NUL-terminated
2011-10-17Merge branch 'js/check-ref-format-test-mingw'Libravatar Junio C Hamano1-36/+52
* js/check-ref-format-test-mingw: t1402-check-ref-format: skip tests of refs beginning with slash on Windows
2011-10-17Merge branch 'jk/pull-rebase-with-work-tree'Libravatar Junio C Hamano2-2/+2
* jk/pull-rebase-with-work-tree: pull,rebase: handle GIT_WORK_TREE better Conflicts: git-pull.sh
2011-10-17Merge branch 'jk/config-test-cleanup'Libravatar Junio C Hamano1-83/+120
* jk/config-test-cleanup: t1300: test mixed-case variable retrieval t1300: put git invocations inside test function
2011-10-17Merge branch 'bc/attr-ignore-case'Libravatar Junio C Hamano10-34/+90
* bc/attr-ignore-case: attr.c: respect core.ignorecase when matching attribute patterns attr: read core.attributesfile from git_default_core_config builtin/mv.c: plug miniscule memory leak cleanup: use internal memory allocation wrapper functions everywhere attr.c: avoid inappropriate access to strbuf "buf" member Conflicts: transport-helper.c
2011-10-17Merge branch 'sg/completion'Libravatar Junio C Hamano1-18/+6
* sg/completion: completion: unite --format and --pretty for 'log' and 'show' completion: unite --reuse-message and --reedit-message for 'notes'
2011-10-17Merge branch 'mm/maint-config-explicit-bool-display'Libravatar Junio C Hamano2-7/+19
* mm/maint-config-explicit-bool-display: config: display key_delim for config --bool --get-regexp
2011-10-17Merge branch 'tc/fetch-leak'Libravatar Junio C Hamano1-4/+9
* tc/fetch-leak: fetch: plug two leaks on error exit in store_updated_refs Conflicts: builtin/fetch.c
2011-10-17Merge branch 'jk/name-hash-dirent'Libravatar Junio C Hamano2-7/+9
* jk/name-hash-dirent: fix phantom untracked files when core.ignorecase is set
2011-10-17Merge branch 'ef/mingw-syslog'Libravatar Junio C Hamano1-12/+18
* ef/mingw-syslog: mingw: avoid using strbuf in syslog
2011-10-17Merge branch 'tm/completion-push-set-upstream'Libravatar Junio C Hamano1-1/+1
* tm/completion-push-set-upstream: completion: push --set-upstream
2011-10-17Merge branch 'tm/completion-commit-fixup-squash'Libravatar Junio C Hamano1-7/+4
* tm/completion-commit-fixup-squash: completion: commit --fixup and --squash completion: unite --reuse-message and --reedit-message handling
2011-10-17Merge branch 'ph/push-to-delete-nothing'Libravatar Junio C Hamano2-8/+215
* ph/push-to-delete-nothing: receive-pack: don't pass non-existent refs to post-{receive,update} hooks Conflicts: builtin/receive-pack.c
2011-10-17Merge branch 'jc/checkout-from-tree-keep-local-changes'Libravatar Junio C Hamano2-1/+47
* jc/checkout-from-tree-keep-local-changes: checkout $tree $path: do not clobber local changes in $path not in $tree
2011-10-17Merge branch 'js/bisect-no-checkout'Libravatar Junio C Hamano1-1/+2
* js/bisect-no-checkout: bisect: fix exiting when checkout failed in bisect_start()
2011-10-17use test number as port numberLibravatar Clemens Buchacher1-1/+1
Test 5550 was apparently using the default port number by mistake. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-17resolve_gitlink_packed_ref(): fix mismergeLibravatar Junio C Hamano2-1/+30
2c5c66b (Merge branch 'jp/get-ref-dir-unsorted', 2011-10-10) merged a topic that forked from the mainline before a new helper function get_packed_refs() refactored code to read packed-refs file. The merge made the call to the helper function with an incorrect argument. The parameter to the function has to be a path to the submodule. Fix the mismerge. Helped-by: Mark Levedahl <mlevedahl@gmail.com> Helped-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16gitweb: Add gitweb manpages to 'gitweb' package in git.specLibravatar Jakub Narebski1-0/+7
Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16Documentation: Add gitweb config variables to git-config(1)Libravatar Jakub Narebski1-0/+17
Add a list of gitweb config variables to git-config(1) manpage, just linking to gitweb(1) or gitweb.conf(5). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpagesLibravatar Jakub Narebski2-0/+5
Add link to gitweb(1) in "SEE ALSO" section of git-instaweb(1) manpage, and "Ancillary Commands" section of git(1) manpage (the latter by the way of command-list.txt file). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16gitweb: Add gitweb(1) manpage for gitweb itselfLibravatar Jakub Narebski5-346/+743
Most of what is in gitweb.txt it has been pulled directly from the README and INSTALL files of gitweb. Current version is somewhat based on structure of SVN::Web manpage (one of web interfaces for Subversion). gitweb.conf(5) i.e. gitweb configuration manpage now refers to appropriate sections in gitweb(1). gitweb/README now refers to gitweb/INSTALL and gitweb(1) manpage. gitweb/INSTALL now refers to gitweb.conf(5) and gitweb(1). Inspired-by: Drew Northup <drew.northup@maine.edu> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16gitweb: Add gitweb.conf(5) manpage for gitweb configuration filesLibravatar Drew Northup3-134/+878
Much of what is in gitweb.conf.txt has been pulled directly from the README file of gitweb. The manpage was supplemented with description of missing gitweb config variables, and with description of gitweb's %features. There remains a bit of redundancy, which should be reduced if possible... but I think some of duplication of information is inevitable. [jn: Improved, extended, removed duplicate info from README] Signed-off-by: Drew Northup <drew.northup@maine.edu> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Helped-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-16Update draft release notes to 1.7.8Libravatar Junio C Hamano1-1/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>