Code

git.git
12 years agomerge: use editor by default in interactive sessions
Junio C Hamano [Wed, 11 Jan 2012 06:44:45 +0000 (22:44 -0800)]
merge: use editor by default in interactive sessions

Traditionally, a cleanly resolved merge was committed by "git merge" using
the auto-generated merge commit log message without invoking the editor.

After 5 years of use in the field, it turns out that people perform too
many unjustified merges of the upstream history into their topic branches.
These merges are not just useless, but they are often not explained well,
and making the end result unreadable when it gets time for merging their
history back to their upstream.

Earlier we added the "--edit" option to the command, so that people can
edit the log message to explain and justify their merge commits. Let's
take it one step further and spawn the editor by default when we are in an
interactive session (i.e. the standard input and the standard output are
pointing at the same tty device).

There may be existing scripts that leave the standard input and the
standard output of the "git merge" connected to whatever environment the
scripts were started, and such invocation might trigger the above
"interactive session" heuristics.  GIT_MERGE_AUTOEDIT environment variable
can be set to "no" at the beginning of such scripts to use the historical
behaviour while the script runs.

Note that this backward compatibility is meant only for scripts, and we
deliberately do *not* support "merge.edit = yes/no/auto" configuration
option to allow people to keep the historical behaviour.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocommit: do not lose mergetag header when not amending
Junio C Hamano [Tue, 20 Dec 2011 21:20:56 +0000 (13:20 -0800)]
commit: do not lose mergetag header when not amending

The earlier ed7a42a (commit: teach --amend to carry forward extra headers,
2011-11-08) broke "git merge/pull; edit to fix conflict; git commit"
workflow by forgetting that commit_tree_extended() takes the whole extra
header list.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocommit-tree: teach -m/-F options to read logs from elsewhere
Junio C Hamano [Wed, 9 Nov 2011 19:54:04 +0000 (11:54 -0800)]
commit-tree: teach -m/-F options to read logs from elsewhere

Just like "git commit" does.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocommit-tree: update the command line parsing
Junio C Hamano [Wed, 9 Nov 2011 19:33:55 +0000 (11:33 -0800)]
commit-tree: update the command line parsing

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: Junio C Hamano <gitster@pobox.com>
13 years agocommit: teach --amend to carry forward extra headers
Junio C Hamano [Tue, 8 Nov 2011 23:38:07 +0000 (15:38 -0800)]
commit: teach --amend to carry forward extra headers

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: Junio C Hamano <gitster@pobox.com>
13 years agomerge: force edit and no-ff mode when merging a tag object
Junio C Hamano [Tue, 8 Nov 2011 00:29:34 +0000 (16:29 -0800)]
merge: force edit and no-ff mode when merging a tag object

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: Junio C Hamano <gitster@pobox.com>
13 years agocommit: copy merged signed tags to headers of merge commit
Junio C Hamano [Tue, 8 Nov 2011 00:21:32 +0000 (16:21 -0800)]
commit: copy merged signed tags to headers of merge commit

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>
13 years agomerge: record tag objects without peeling in MERGE_HEAD
Junio C Hamano [Mon, 7 Nov 2011 22:45:10 +0000 (14:45 -0800)]
merge: record tag objects without peeling in MERGE_HEAD

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>
13 years agomerge: make usage of commit->util more extensible
Junio C Hamano [Mon, 7 Nov 2011 21:26:22 +0000 (13:26 -0800)]
merge: make usage of commit->util more extensible

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>
13 years agofmt-merge-msg: Add contents of merged tag in the merge message
Junio C Hamano [Sat, 5 Nov 2011 04:06:30 +0000 (21:06 -0700)]
fmt-merge-msg: Add contents of merged tag in the merge message

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>
13 years agofmt-merge-msg: package options into a structure
Junio C Hamano [Sat, 5 Nov 2011 00:35:42 +0000 (17:35 -0700)]
fmt-merge-msg: package options into a structure

This way new features can be added more easily

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agofmt-merge-msg: avoid early returns
Junio C Hamano [Sat, 5 Nov 2011 00:00:03 +0000 (17:00 -0700)]
fmt-merge-msg: avoid early returns

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>
13 years agorefs DWIMmery: use the same rule for both "git fetch" and others
Junio C Hamano [Fri, 4 Nov 2011 21:14:05 +0000 (14:14 -0700)]
refs DWIMmery: use the same rule for both "git fetch" and others

"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>
13 years agofetch: allow "git fetch $there v1.0" to fetch a tag
Junio C Hamano [Fri, 4 Nov 2011 21:05:22 +0000 (14:05 -0700)]
fetch: allow "git fetch $there v1.0" to fetch a tag

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>
13 years agomerge: notice local merging of tags and keep it unwrapped
Junio C Hamano [Sat, 5 Nov 2011 04:31:28 +0000 (21:31 -0700)]
merge: notice local merging of tags and keep it unwrapped

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>
13 years agofetch: do not store peeled tag object names in FETCH_HEAD
Linus Torvalds [Thu, 3 Nov 2011 02:19:34 +0000 (19:19 -0700)]
fetch: do not store peeled tag object names in FETCH_HEAD

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>
13 years agoSplit GPG interface into its own helper library
Junio C Hamano [Thu, 8 Sep 2011 04:19:47 +0000 (21:19 -0700)]
Split GPG interface into its own helper library

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>
13 years agoMerge branch 'js/merge-edit-option'
Junio C Hamano [Wed, 19 Oct 2011 17:49:27 +0000 (10:49 -0700)]
Merge branch 'js/merge-edit-option'

* js/merge-edit-option:
  Teach merge the '[-e|--edit]' option

Conflicts:
builtin/merge.c

13 years agoMerge branch 'rs/diff-whole-function'
Junio C Hamano [Wed, 19 Oct 2011 17:49:13 +0000 (10:49 -0700)]
Merge branch 'rs/diff-whole-function'

* rs/diff-whole-function:
  diff: add option to show whole functions as context
  xdiff: factor out get_func_line()

13 years agoMerge branch 'rs/pickaxe'
Junio C Hamano [Wed, 19 Oct 2011 17:49:09 +0000 (10:49 -0700)]
Merge branch 'rs/pickaxe'

* 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

13 years agoMerge branch 'js/no-cherry-pick-head-after-punted'
Junio C Hamano [Wed, 19 Oct 2011 17:49:05 +0000 (10:49 -0700)]
Merge branch 'js/no-cherry-pick-head-after-punted'

* 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

13 years agoMerge branch 'bk/submodule-in-recursive-merge'
Junio C Hamano [Wed, 19 Oct 2011 17:48:38 +0000 (10:48 -0700)]
Merge branch 'bk/submodule-in-recursive-merge'

* bk/submodule-in-recursive-merge:
  submodule: Search for merges only at end of recursive merge
  submodule: Demonstrate known breakage during recursive merge

13 years agoMerge branch 'jm/maint-apply-detects-corrupt-patch-header'
Junio C Hamano [Wed, 19 Oct 2011 17:48:29 +0000 (10:48 -0700)]
Merge branch 'jm/maint-apply-detects-corrupt-patch-header'

* jm/maint-apply-detects-corrupt-patch-header:
  fix "git apply --index ..." not to deref NULL

13 years agoMerge branch 'jk/config-test-cleanup'
Junio C Hamano [Wed, 19 Oct 2011 17:47:59 +0000 (10:47 -0700)]
Merge branch 'jk/config-test-cleanup'

* jk/config-test-cleanup:
  t1300: attempting to remove a non-existent .git/config is not an error

13 years agot1300: attempting to remove a non-existent .git/config is not an error
Johannes Sixt [Wed, 19 Oct 2011 07:37:06 +0000 (09:37 +0200)]
t1300: attempting to remove a non-existent .git/config is not an error

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>
13 years agoMerge branch 'js/log-show-children'
Junio C Hamano [Wed, 19 Oct 2011 04:59:12 +0000 (21:59 -0700)]
Merge branch 'js/log-show-children'

* js/log-show-children:
  log --children

13 years agoMerge branch 'cb/httpd-test-fix-port'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'cb/httpd-test-fix-port'

* cb/httpd-test-fix-port:
  use test number as port number

13 years agoMerge branch 'jn/gitweb-manpages'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'jn/gitweb-manpages'

* 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

13 years agoMerge branch 'pt/mingw-misc-fixes'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'pt/mingw-misc-fixes'

* 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

13 years agoMerge branch 'md/smtp-tls-hello-again'
Junio C Hamano [Wed, 19 Oct 2011 04:59:10 +0000 (21:59 -0700)]
Merge branch 'md/smtp-tls-hello-again'

* md/smtp-tls-hello-again:
  send-email: Honour SMTP domain when using TLS

13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 19 Oct 2011 04:42:41 +0000 (21:42 -0700)]
Merge branch 'maint'

* maint:
  strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()

13 years agostrbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()
Brandon Casey [Thu, 6 Oct 2011 04:21:33 +0000 (23:21 -0500)]
strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()

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>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Tue, 18 Oct 2011 05:07:57 +0000 (22:07 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/http-auth'
Junio C Hamano [Tue, 18 Oct 2011 04:37:15 +0000 (21:37 -0700)]
Merge branch 'jk/http-auth'

* 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

13 years agoMerge branch 'js/check-ref-format-test-mingw'
Junio C Hamano [Tue, 18 Oct 2011 04:37:15 +0000 (21:37 -0700)]
Merge branch 'js/check-ref-format-test-mingw'

* js/check-ref-format-test-mingw:
  t1402-check-ref-format: skip tests of refs beginning with slash on Windows

13 years agoMerge branch 'jk/pull-rebase-with-work-tree'
Junio C Hamano [Tue, 18 Oct 2011 04:37:14 +0000 (21:37 -0700)]
Merge branch 'jk/pull-rebase-with-work-tree'

* jk/pull-rebase-with-work-tree:
  pull,rebase: handle GIT_WORK_TREE better

Conflicts:
git-pull.sh

13 years agoMerge branch 'jk/config-test-cleanup'
Junio C Hamano [Tue, 18 Oct 2011 04:37:14 +0000 (21:37 -0700)]
Merge branch 'jk/config-test-cleanup'

* jk/config-test-cleanup:
  t1300: test mixed-case variable retrieval
  t1300: put git invocations inside test function

13 years agoMerge branch 'bc/attr-ignore-case'
Junio C Hamano [Tue, 18 Oct 2011 04:37:13 +0000 (21:37 -0700)]
Merge branch 'bc/attr-ignore-case'

* 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

13 years agoMerge branch 'sg/completion'
Junio C Hamano [Tue, 18 Oct 2011 04:37:13 +0000 (21:37 -0700)]
Merge branch 'sg/completion'

* sg/completion:
  completion: unite --format and --pretty for 'log' and 'show'
  completion: unite --reuse-message and --reedit-message for 'notes'

13 years agoMerge branch 'mm/maint-config-explicit-bool-display'
Junio C Hamano [Tue, 18 Oct 2011 04:37:12 +0000 (21:37 -0700)]
Merge branch 'mm/maint-config-explicit-bool-display'

* mm/maint-config-explicit-bool-display:
  config: display key_delim for config --bool --get-regexp

13 years agoMerge branch 'tc/fetch-leak'
Junio C Hamano [Tue, 18 Oct 2011 04:37:12 +0000 (21:37 -0700)]
Merge branch 'tc/fetch-leak'

* tc/fetch-leak:
  fetch: plug two leaks on error exit in store_updated_refs

Conflicts:
builtin/fetch.c

13 years agoMerge branch 'jk/name-hash-dirent'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'jk/name-hash-dirent'

* jk/name-hash-dirent:
  fix phantom untracked files when core.ignorecase is set

13 years agoMerge branch 'ef/mingw-syslog'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'ef/mingw-syslog'

* ef/mingw-syslog:
  mingw: avoid using strbuf in syslog

13 years agoMerge branch 'tm/completion-push-set-upstream'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'tm/completion-push-set-upstream'

* tm/completion-push-set-upstream:
  completion: push --set-upstream

13 years agoMerge branch 'tm/completion-commit-fixup-squash'
Junio C Hamano [Tue, 18 Oct 2011 04:37:10 +0000 (21:37 -0700)]
Merge branch 'tm/completion-commit-fixup-squash'

* tm/completion-commit-fixup-squash:
  completion: commit --fixup and --squash
  completion: unite --reuse-message and --reedit-message handling

13 years agoMerge branch 'ph/push-to-delete-nothing'
Junio C Hamano [Tue, 18 Oct 2011 04:37:10 +0000 (21:37 -0700)]
Merge branch 'ph/push-to-delete-nothing'

* ph/push-to-delete-nothing:
  receive-pack: don't pass non-existent refs to post-{receive,update} hooks

Conflicts:
builtin/receive-pack.c

13 years agoMerge branch 'jc/checkout-from-tree-keep-local-changes'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'jc/checkout-from-tree-keep-local-changes'

* jc/checkout-from-tree-keep-local-changes:
  checkout $tree $path: do not clobber local changes in $path not in $tree

13 years agoMerge branch 'js/bisect-no-checkout'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'js/bisect-no-checkout'

* js/bisect-no-checkout:
  bisect: fix exiting when checkout failed in bisect_start()

13 years agouse test number as port number
Clemens Buchacher [Mon, 17 Oct 2011 19:55:47 +0000 (21:55 +0200)]
use test number as port number

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>
13 years agoresolve_gitlink_packed_ref(): fix mismerge
Junio C Hamano [Mon, 17 Oct 2011 18:43:30 +0000 (11:43 -0700)]
resolve_gitlink_packed_ref(): fix mismerge

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>
13 years agogitweb: Add gitweb manpages to 'gitweb' package in git.spec
Jakub Narebski [Sun, 16 Oct 2011 11:07:35 +0000 (13:07 +0200)]
gitweb: Add gitweb manpages to 'gitweb' package in git.spec

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: Add gitweb config variables to git-config(1)
Jakub Narebski [Sun, 16 Oct 2011 11:07:34 +0000 (13:07 +0200)]
Documentation: Add gitweb config variables to git-config(1)

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>
13 years agoDocumentation: Link to gitweb(1) and gitweb.conf(5) in other manpages
Jakub Narebski [Sun, 16 Oct 2011 11:07:33 +0000 (13:07 +0200)]
Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages

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>
13 years agogitweb: Add gitweb(1) manpage for gitweb itself
Jakub Narebski [Sun, 16 Oct 2011 11:07:32 +0000 (13:07 +0200)]
gitweb: Add gitweb(1) manpage for gitweb itself

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>
13 years agogitweb: Add gitweb.conf(5) manpage for gitweb configuration files
Drew Northup [Sun, 16 Oct 2011 11:07:31 +0000 (13:07 +0200)]
gitweb: Add gitweb.conf(5) manpage for gitweb configuration files

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>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Sun, 16 Oct 2011 17:58:35 +0000 (10:58 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Sun, 16 Oct 2011 10:01:44 +0000 (03:01 -0700)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: incremental goto line in blame view
  git-gui: clear the goto line input when hiding
  git-gui: only accept numbers in the goto-line input
  git-gui: search and linenumber input are mutual exclusive in the blame view
  git-gui: deal with unknown files when pressing the "Stage Changed" button
  git-gui: drop the 'n' and 'Shift-n' bindings from the last patch.
  git-gui: Add keyboard shortcuts for search and goto commands in blame view.
  git-gui: Enable jumping to a specific line number in blame view.
  Fix tooltip display with multiple monitors on windows.
  Fix typo: existant->existent
  git-gui: updated translator README for current procedures.
  git-gui: warn when trying to commit on a detached head
  git-gui: Corrected a typo in the Swedish translation of 'Continue'

13 years agogit-svn: Allow certain refs to be ignored
Michael Olson [Mon, 10 Oct 2011 23:27:37 +0000 (16:27 -0700)]
git-svn: Allow certain refs to be ignored

Implement a new --ignore-refs option which specifies a regex of refs
to ignore while importing svn history.

This is a useful supplement to the --ignore-paths option, as that
option only operates on the contents of branches and tags, not the
branches and tags themselves.

Signed-off-by: Michael Olson <mwolson@gnu.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agogit svn dcommit: new option --interactive.
Frédéric Heitzmann [Fri, 16 Sep 2011 21:02:01 +0000 (23:02 +0200)]
git svn dcommit: new option --interactive.

Allow the user to check the patch set before it is commited to SVN. It is
then possible to accept/discard one patch, accept all, or quit.

This interactive mode is similar with 'git send email' behaviour. However,
'git svn dcommit' returns as soon as one patch is discarded.
Part of the code was taken from git-send-email.perl (see 'ask' function)

Tests several combinations of potential answers to
'git svn dcommit --interactive'. For each of them, test whether patches
were commited to SVN or not.

Thanks-to Eric Wong <normalperson@yhbt.net> for the initial idea.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
13 years agohttp_init: accept separate URL parameter
Jeff King [Fri, 14 Oct 2011 07:40:40 +0000 (09:40 +0200)]
http_init: accept separate URL parameter

The http_init function takes a "struct remote". Part of its
initialization procedure is to look at the remote's url and
grab some auth-related parameters. However, using the url
included in the remote is:

  - wrong; the remote-curl helper may have a separate,
    unrelated URL (e.g., from remote.*.pushurl). Looking at
    the remote's configured url is incorrect.

  - incomplete; http-fetch doesn't have a remote, so passes
    NULL. So http_init never gets to see the URL we are
    actually going to use.

  - cumbersome; http-push has a similar problem to
    http-fetch, but actually builds a fake remote just to
    pass in the URL.

Instead, let's just add a separate URL parameter to
http_init, and all three callsites can pass in the
appropriate information.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agohttp: use hostname in credential description
Michael J Gruber [Fri, 14 Oct 2011 07:40:39 +0000 (09:40 +0200)]
http: use hostname in credential description

Until now, a request for an http password looked like:

  Username:
  Password:

Now it will look like:

  Username for 'example.com':
  Password for 'example.com':

Picked-from: Jeff King <peff@peff.net>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSync with maint
Junio C Hamano [Sun, 16 Oct 2011 03:56:50 +0000 (20:56 -0700)]
Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoPrepare for 1.7.7.1
Junio C Hamano [Sun, 16 Oct 2011 03:55:12 +0000 (20:55 -0700)]
Prepare for 1.7.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'ms/patch-id-with-overlong-line' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'ms/patch-id-with-overlong-line' into maint

* ms/patch-id-with-overlong-line:
  patch-id.c: use strbuf instead of a fixed buffer

13 years agoMerge branch 'jc/maint-bundle-too-quiet' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'jc/maint-bundle-too-quiet' into maint

* jc/maint-bundle-too-quiet:
  Teach progress eye-candy to fetch_refs_from_bundle()

13 years agoMerge branch 'jk/filter-branch-require-clean-work-tree' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/filter-branch-require-clean-work-tree' into maint

* jk/filter-branch-require-clean-work-tree:
  filter-branch: use require_clean_work_tree

13 years agoMerge branch 'jc/maint-fsck-fwrite-size-check' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jc/maint-fsck-fwrite-size-check' into maint

* jc/maint-fsck-fwrite-size-check:
  fsck: do not abort upon finding an empty blob

13 years agoMerge branch 'bk/ancestry-path' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'bk/ancestry-path' into maint

* bk/ancestry-path:
  t6019: avoid refname collision on case-insensitive systems
  revision: do not include sibling history in --ancestry-path output
  revision: keep track of the end-user input from the command line
  rev-list: Demonstrate breakage with --ancestry-path --all

13 years agoMerge branch 'jk/maint-fetch-submodule-check-fix' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/maint-fetch-submodule-check-fix' into maint

* jk/maint-fetch-submodule-check-fix:
  fetch: avoid quadratic loop checking for updated submodules

13 years agoMerge branch 'tr/mergetool-valgrind' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'tr/mergetool-valgrind' into maint

* tr/mergetool-valgrind:
  Symlink mergetools scriptlets into valgrind wrappers

13 years agoMerge branch 'nm/grep-object-sha1-lock' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'nm/grep-object-sha1-lock' into maint

* nm/grep-object-sha1-lock:
  grep: Fix race condition in delta_base_cache

Conflicts:
builtin/grep.c

13 years agoMerge branch 'jc/diff-index-unpack' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)]
Merge branch 'jc/diff-index-unpack' into maint

* jc/diff-index-unpack:
  diff-index: pass pathspec down to unpack-trees machinery
  unpack-trees: allow pruning with pathspec
  traverse_trees(): allow pruning with pathspec

13 years agoMerge branch 'mm/rebase-i-exec-edit' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)]
Merge branch 'mm/rebase-i-exec-edit' into maint

* mm/rebase-i-exec-edit:
  rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree
  rebase -i: clean error message for --continue after failed exec

13 years agosend-email: Honour SMTP domain when using TLS
Matthew Daley [Sat, 15 Oct 2011 08:44:52 +0000 (04:44 -0400)]
send-email: Honour SMTP domain when using TLS

git-send-email sends two SMTP EHLOs when using TLS encryption, however
only the first, unencrypted EHLO uses the SMTP domain that can be
optionally specified by the user (--smtp-domain).  This is because the
call to hello() that produces the second, encrypted EHLO does not pass
the SMTP domain as an argument, and hence a default of
'localhost.localdomain' is used instead.

Fix by passing in the SMTP domain in this call.

Signed-off-by: Matthew Daley <mattjd@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jc/grep-untracked-exclude'
Junio C Hamano [Sun, 16 Oct 2011 03:27:19 +0000 (20:27 -0700)]
Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
  grep: fix the error message that mentions --exclude

13 years agoMerge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude
Junio C Hamano [Sun, 16 Oct 2011 03:26:52 +0000 (20:26 -0700)]
Merge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude

* jc/maint-grep-untracked-exclude:
  grep: fix the error message that mentions --exclude

Conflicts:
builtin/grep.c

13 years agogrep: fix the error message that mentions --exclude
Bert Wesarg [Sat, 15 Oct 2011 18:36:22 +0000 (20:36 +0200)]
grep: fix the error message that mentions --exclude

Missing rename from --exclude to --standard-exclude.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot9901: fix line-ending dependency on windows
Pat Thoyts [Sat, 15 Oct 2011 14:05:17 +0000 (15:05 +0100)]
t9901: fix line-ending dependency on windows

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomingw: ensure sockets are initialized before calling gethostname
Pat Thoyts [Sat, 15 Oct 2011 14:05:20 +0000 (15:05 +0100)]
mingw: ensure sockets are initialized before calling gethostname

If the Windows sockets subsystem has not been initialized yet then an
attempt to get the hostname returns an error and prints a warning to the
console. This solves this issue for msysGit as seen with 'git fetch'.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomergetools: use the correct tool for Beyond Compare 3 on Windows
Pat Thoyts [Sat, 15 Oct 2011 14:05:19 +0000 (15:05 +0100)]
mergetools: use the correct tool for Beyond Compare 3 on Windows

On Windows the bcompare tool launches a graphical program and does
not wait for it to terminate. A separate 'bcomp' tool is provided which
will wait for the view to exit so we use this instead.

Reported-by: Werner BEROUX <werner@beroux.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-gui: incremental goto line in blame view
Bert Wesarg [Thu, 13 Oct 2011 13:48:15 +0000 (15:48 +0200)]
git-gui: incremental goto line in blame view

The view jumps now to the given line number after each key press.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: clear the goto line input when hiding
Bert Wesarg [Thu, 13 Oct 2011 13:48:13 +0000 (15:48 +0200)]
git-gui: clear the goto line input when hiding

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: only accept numbers in the goto-line input
Bert Wesarg [Thu, 13 Oct 2011 13:48:14 +0000 (15:48 +0200)]
git-gui: only accept numbers in the goto-line input

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: search and linenumber input are mutual exclusive in the blame view
Bert Wesarg [Thu, 13 Oct 2011 13:48:12 +0000 (15:48 +0200)]
git-gui: search and linenumber input are mutual exclusive in the blame view

It was possible to open the search input (Ctrl+S) and the goto-line input
(Ctrl+G) at the same time. Prevent this.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agot9300: do not run --cat-blob-fd related tests on MinGW
Johannes Schindelin [Fri, 14 Oct 2011 22:53:33 +0000 (23:53 +0100)]
t9300: do not run --cat-blob-fd related tests on MinGW

As diagnosed by Johannes Sixt, msys.dll does not hand through file
descriptors > 2 to child processes, so these test cases cannot passes when
run through an MSys bash.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-svn: On MSYS, escape and quote SVN_SSH also if set by the user
Sebastian Schuberth [Fri, 14 Oct 2011 22:53:31 +0000 (23:53 +0100)]
git-svn: On MSYS, escape and quote SVN_SSH also if set by the user

While GIT_SSH does not require any escaping / quoting (e.g. for paths
containing spaces), SVN_SSH requires it due to its use in a Perl script.

Previously, SVN_SSH has only been escaped and quoted automatically if it
was unset and thus derived from GIT_SSH. For user convenience, do the
escaping and quoting also for a SVN_SSH set by the user. This way, the
user is able to use the same unescaped and unquoted syntax for GIT_SSH
and SVN_SSH.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot9001: do not fail only due to CR/LF issues
Johannes Schindelin [Fri, 14 Oct 2011 22:53:30 +0000 (23:53 +0100)]
t9001: do not fail only due to CR/LF issues

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot1020: disable the pwd test on MinGW
Johannes Schindelin [Fri, 14 Oct 2011 22:53:28 +0000 (23:53 +0100)]
t1020: disable the pwd test on MinGW

It fails both for line ending and for DOS path reasons.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosend-email: Fix %config_path_settings handling
Cord Seele [Fri, 14 Oct 2011 20:53:31 +0000 (22:53 +0200)]
send-email: Fix %config_path_settings handling

cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30) broke
the expansion of aliases.

This was caused by treating %config_path_settings, newly introduced in
said patch, like %config_bool_settings instead of like %config_settings.
Copy from %config_settings, making it more readable.

While at it add basic test for expansion of aliases, and for path
expansion, which would catch this error.

Nb. there were a few issues that were responsible for this error:

1. %config_bool_settings and %config_settings despite similar name have
   different semantic.

   %config_bool_settings values are arrays where the first element is
   (reference to) the variable to set, and second element is default
   value... which admittedly is a bit cryptic.  More readable if more
   verbose option would be to use hash reference, e.g.:

        my %config_bool_settings = (
            "thread" => { variable => \$thread, default => 1},
            [...]

   %config_settings values are either either reference to scalar variable
   or reference to array.  In second case it means that option (or config
   option) is multi-valued.  BTW. this is similar to what Getopt::Long does.

2. In cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30)
   the setting "aliasesfile" was moved from %config_settings to newly
   introduced %config_path_settings.  But the loop that parses settings
   from %config_path_settings was copy'n'pasted *wrongly* from
   %config_bool_settings instead of from %config_settings.

   It looks like cec5dae author cargo-culted this change...

3. 994d6c6 (send-email: address expansion for common mailers, 2006-05-14)
   didn't add test for alias expansion to t9001-send-email.sh

Signed-off-by: Cord Seele <cowose@gmail.com>
Tested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 14 Oct 2011 19:51:24 +0000 (12:51 -0700)]
Merge branch 'maint'

* maint:
  t1304: fall back to $USER if $LOGNAME is not defined

13 years agot1304: fall back to $USER if $LOGNAME is not defined
René Scharfe [Fri, 14 Oct 2011 17:44:45 +0000 (19:44 +0200)]
t1304: fall back to $USER if $LOGNAME is not defined

For some reason $LOGNAME is not set anymore for me after an upgrade from
Ubuntu 11.04 to 11.10.  Use $USER in such a case.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Fri, 14 Oct 2011 05:15:39 +0000 (22:15 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'js/maint-merge-one-file-osx-expr'
Junio C Hamano [Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)]
Merge branch 'js/maint-merge-one-file-osx-expr'

* js/maint-merge-one-file-osx-expr:
  merge-one-file: fix "expr: non-numeric argument"

13 years agoMerge branch 'jn/ident-from-etc-mailname'
Junio C Hamano [Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)]
Merge branch 'jn/ident-from-etc-mailname'

* jn/ident-from-etc-mailname:
  ident: do not retrieve default ident when unnecessary
  ident: check /etc/mailname if email is unknown

13 years agoMerge branch 'il/archive-err-signal'
Junio C Hamano [Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)]
Merge branch 'il/archive-err-signal'

* il/archive-err-signal:
  Support ERR in remote archive like in fetch/push

13 years agoMerge branch 'jc/grep-untracked-exclude'
Junio C Hamano [Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)]
Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
  grep: teach --untracked and --exclude-standard options

13 years agoMerge branch 'rs/diff-cleanup-records-fix'
Junio C Hamano [Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)]
Merge branch 'rs/diff-cleanup-records-fix'

* rs/diff-cleanup-records-fix:
  diff: resurrect XDF_NEED_MINIMAL with --minimal
  Revert removal of multi-match discard heuristic in 27af01

13 years agoMerge branch 'rs/pending'
Junio C Hamano [Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)]
Merge branch 'rs/pending'

* rs/pending:
  commit: factor out clear_commit_marks_for_object_array
  checkout: use leak_pending flag
  bundle: use leak_pending flag
  bisect: use leak_pending flag
  revision: add leak_pending flag
  checkout: use add_pending_{object,sha1} in orphan check
  revision: factor out add_pending_sha1
  checkout: check for "Previous HEAD" notice in t2020

Conflicts:
builtin/checkout.c
revision.c

13 years agoMerge branch 'jn/no-g-plus-s-on-bsd'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'jn/no-g-plus-s-on-bsd'

* jn/no-g-plus-s-on-bsd:
  Makefile: do not set setgid bit on directories on GNU/kFreeBSD

13 years agoMerge branch 'jc/is-url-simplify'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'jc/is-url-simplify'

* jc/is-url-simplify:
  url.c: simplify is_url()