git
11 years agoMerge branch 'pw/p4-symlinked-root'
Junio C Hamano [Mon, 25 Mar 2013 21:00:49 +0000 (14:00 -0700)] 
Merge branch 'pw/p4-symlinked-root'

"git p4" did not behave well when the path to the root of the P4
client was not its real path.

* pw/p4-symlinked-root:
  git p4: avoid expanding client paths in chdir
  git p4 test: should honor symlink in p4 client root
  git p4 test: make sure P4CONFIG relative path works

11 years agoMerge branch 'jk/empty-archive'
Junio C Hamano [Mon, 25 Mar 2013 21:00:48 +0000 (14:00 -0700)] 
Merge branch 'jk/empty-archive'

"git archive" reports a failure when asked to create an archive out
of an empty tree.  It would be more intuitive to give an empty
archive back in such a case.

* jk/empty-archive:
  archive: handle commits with an empty tree
  test-lib: factor out $GIT_UNZIP setup

11 years agoMerge branch 'ks/rfc2047-one-char-at-a-time'
Junio C Hamano [Mon, 25 Mar 2013 21:00:46 +0000 (14:00 -0700)] 
Merge branch 'ks/rfc2047-one-char-at-a-time'

When "format-patch" quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in
the middle of it.

* ks/rfc2047-one-char-at-a-time:
  format-patch: RFC 2047 says multi-octet character may not be split

11 years agoMerge branch 'jk/alias-in-bare'
Junio C Hamano [Mon, 25 Mar 2013 21:00:44 +0000 (14:00 -0700)] 
Merge branch 'jk/alias-in-bare'

An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.

* jk/alias-in-bare:
  setup: suppress implicit "." work-tree for bare repos
  environment: add GIT_PREFIX to local_repo_env
  cache.h: drop LOCAL_REPO_ENV_SIZE

11 years agoMerge branch 'jc/push-follow-tag'
Junio C Hamano [Mon, 25 Mar 2013 21:00:40 +0000 (14:00 -0700)] 
Merge branch 'jc/push-follow-tag'

The new "--follow-tags" option tells "git push" to push relevant
annotated tags when pushing branches out.

* jc/push-follow-tag:
  push: --follow-tags
  commit.c: use clear_commit_marks_many() in in_merge_bases_many()
  commit.c: add in_merge_bases_many()
  commit.c: add clear_commit_marks_many()

11 years agoMerge branch 'jc/maint-reflog-expire-clean-mark-typofix'
Junio C Hamano [Mon, 25 Mar 2013 21:00:39 +0000 (14:00 -0700)] 
Merge branch 'jc/maint-reflog-expire-clean-mark-typofix'

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
  reflog: fix typo in "reflog expire" clean-up codepath

11 years agoMerge branch 'ap/maint-diff-rename-avoid-overlap'
Junio C Hamano [Mon, 25 Mar 2013 21:00:37 +0000 (14:00 -0700)] 
Merge branch 'ap/maint-diff-rename-avoid-overlap'

The logic used by "git diff -M --stat" to shorten the names of
files before and after a rename did not work correctly when the
common prefix and suffix between the two filenames overlapped.

* ap/maint-diff-rename-avoid-overlap:
  tests: make sure rename pretty print works
  diff: prevent pprint_rename from underrunning input
  diff: Fix rename pretty-print when suffix and prefix overlap

11 years agoMerge branch 'jl/submodule-deinit'
Junio C Hamano [Mon, 25 Mar 2013 21:00:29 +0000 (14:00 -0700)] 
Merge branch 'jl/submodule-deinit'

There was no Porcelain way to say "I no longer am interested in
this submodule", once you express your interest in a submodule with
"submodule init".  "submodule deinit" is the way to do so.

* jl/submodule-deinit:
  submodule: add 'deinit' command

11 years agoMerge branch 'jc/describe'
Junio C Hamano [Mon, 25 Mar 2013 21:00:23 +0000 (14:00 -0700)] 
Merge branch 'jc/describe'

The "--match=<pattern>" option of "git describe", when used with
"--all" to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command
to those that match the given pattern.

We may want to have a looser matching that does not restrict to tags,
but that can be done as a follow-up topic; this step is purely a bugfix.

* jc/describe:
  describe: --match=<pattern> must limit the refs even when used with --all

11 years agoMerge branch 'pe/pull-rebase-v-q'
Junio C Hamano [Mon, 25 Mar 2013 20:58:34 +0000 (13:58 -0700)] 
Merge branch 'pe/pull-rebase-v-q'

Teach "git pull --rebase" to pass "-v/-q" command line options to
underlying "git rebase".

* pe/pull-rebase-v-q:
  pull: Apply -q and -v options to rebase mode as well

11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 25 Mar 2013 20:52:25 +0000 (13:52 -0700)] 
Merge branch 'maint'

* maint:
  Start preparing for 1.8.2.1
  transport.c: help gcc 4.6.3 users by squelching compiler warning

11 years agoStart preparing for 1.8.2.1
Junio C Hamano [Mon, 25 Mar 2013 20:51:13 +0000 (13:51 -0700)] 
Start preparing for 1.8.2.1

... at the same time, preparation for 1.8.1.6 also has started ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/graph-c-expose-symbols-for-cgit' into maint
Junio C Hamano [Mon, 25 Mar 2013 20:48:39 +0000 (13:48 -0700)] 
Merge branch 'jk/graph-c-expose-symbols-for-cgit' into maint

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
  Revert "graph.c: mark private file-scope symbols as static"

11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Mon, 25 Mar 2013 20:46:42 +0000 (13:46 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage
  git-compat-util.h: Provide missing netdb.h definitions
  describe: Document --match pattern format
  Documentation/githooks: Explain pre-rebase parameters
  update-index: list supported idx versions and their features
  diff-options: unconfuse description of --color
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places

11 years agoMerge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:46:02 +0000 (13:46 -0700)] 
Merge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1

"git bundle verify" did not say "records a complete history" for a
bundle that does not have any prerequisites.

* lf/bundle-verify-list-prereqs:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete

11 years agoMerge branch 'tk/doc-filter-branch' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:53 +0000 (13:45 -0700)] 
Merge branch 'tk/doc-filter-branch' into maint-1.8.1

Add an example use of "--env-filter" in "filter-branch"
documentation.

* tk/doc-filter-branch:
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage

11 years agoMerge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:42 +0000 (13:45 -0700)] 
Merge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1

Some sources failed to compile on systems that lack NI_MAXHOST in
their system header.

* dm/ni-maxhost-may-be-missing:
  git-compat-util.h: Provide missing netdb.h definitions

11 years agoMerge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:33 +0000 (13:45 -0700)] 
Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1

The "--match=<pattern>" argument "git describe" takes uses glob
pattern but it wasn't obvious from the documentation.

* gp/describe-match-uses-glob-pattern:
  describe: Document --match pattern format

11 years agoMerge branch 'nd/doc-index-format' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:26 +0000 (13:45 -0700)] 
Merge branch 'nd/doc-index-format' into maint-1.8.1

The v4 index format was not documented.

* nd/doc-index-format:
  update-index: list supported idx versions and their features
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places

11 years agoMerge branch 'wk/doc-pre-rebase' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:14 +0000 (13:45 -0700)] 
Merge branch 'wk/doc-pre-rebase' into maint-1.8.1

The arguments given to pre-rebase hook were not documented.

* wk/doc-pre-rebase:
  Documentation/githooks: Explain pre-rebase parameters

11 years agoMerge branch 'jc/color-diff-doc' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:44:53 +0000 (13:44 -0700)] 
Merge branch 'jc/color-diff-doc' into maint-1.8.1

The "--color=<when>" argument to the commands in the diff family
was described poorly.

* jc/color-diff-doc:
  diff-options: unconfuse description of --color

11 years agotransport.c: help gcc 4.6.3 users by squelching compiler warning
Junio C Hamano [Mon, 25 Mar 2013 19:51:50 +0000 (12:51 -0700)] 
transport.c: help gcc 4.6.3 users by squelching compiler warning

To a human reader, it is quite obvious that cmp is assigned before
it is used, but gcc 4.6.3 that ships with Ubuntu 12.04 is among
those that do not get this right.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.3
Junio C Hamano [Thu, 21 Mar 2013 22:29:42 +0000 (15:29 -0700)] 
Update draft release notes to 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Thu, 21 Mar 2013 21:06:55 +0000 (14:06 -0700)] 
Merge branch 'maint'

* maint:
  diff.c: diff.renamelimit => diff.renameLimit in message
  wt-status: fix possible use of uninitialized variable
  fast-import: clarify "inline" logic in file_change_m
  run-command: always set failed_errno in start_command
  transport: drop "int cmp = cmp" hack
  drop some obsolete "x = x" compiler warning hacks
  fast-import: use pointer-to-pointer to keep list tail

11 years agodiff.c: diff.renamelimit => diff.renameLimit in message
Max Nanasy [Thu, 21 Mar 2013 19:53:38 +0000 (12:53 -0700)] 
diff.c: diff.renamelimit => diff.renameLimit in message

In the warning message printed when rename or unmodified copy
detection was skipped due to too many files, change "diff.renamelimit"
to "diff.renameLimit", in order to make it consistent with git
documentation, which consistently uses "diff.renameLimit".

Signed-off-by: Max Nanasy <max.nanasy@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agowt-status: fix possible use of uninitialized variable
Jeff King [Thu, 21 Mar 2013 11:05:28 +0000 (07:05 -0400)] 
wt-status: fix possible use of uninitialized variable

In wt_status_print_change_data, we accept a change_type flag
that is meant to be either WT_STATUS_UPDATED or
WT_STATUS_CHANGED.  We then switch() on this value to set
the local variable "status" for each case, but do not
provide a fallback "default" label to the switch statement.

As a result, the compiler realizes that "status" might be
unset, and complains with a warning. To silence this
warning, we use the "int status = status" trick.  This is
correct with the current code, as all callers provide one of
the two expected change_type flags. However, it's also a
maintenance trap, as there is nothing to prevent future
callers from passing another flag, nor to document this
assumption.

Instead of using the "x = x" hack, let's handle the default
case in the switch() statement with a die("BUG"). That tells
the compiler and any readers of the code exactly what the
function's input assumptions are.

We could also convert the flag to an enum, which would
provide a compile-time check on the function input. However,
since these flags are part of a larger enum, that would make
the code unnecessarily complex (we would have to make a new
enum with just the two flags, and then convert it to the old
enum for passing to sub-functions).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agofast-import: clarify "inline" logic in file_change_m
Jeff King [Thu, 21 Mar 2013 15:44:39 +0000 (11:44 -0400)] 
fast-import: clarify "inline" logic in file_change_m

When we read a fast-import line like:

  M 100644 :1 foo.c

we point the local object_entry variable "oe" to the object
named by the mark ":1". When the input uses the "inline"
construct, however, we do not have such an object_entry.

The current code is careful not to access "oe" in the inline
case, but we can make the assumption even more obvious (and
catch violations of it) by setting oe to NULL and adding a
comment. As a bonus, this also squelches an over-zealous gcc
-Wuninitialized warning, which means we can drop the "oe =
oe" initialization hack.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorun-command: always set failed_errno in start_command
Jeff King [Thu, 21 Mar 2013 15:45:00 +0000 (11:45 -0400)] 
run-command: always set failed_errno in start_command

When we fail to fork, we set the failed_errno variable to
the value of errno so it is not clobbered by later syscalls.
However, we do so in a conditional, and it is hard to see
later under what conditions the variable has a valid value.

Instead of setting it only when fork fails, let's just
always set it after forking. This is more obvious for human
readers (as we are no longer setting it as a side effect of
a strerror call), and it is more obvious to gcc, which no
longer generates a spurious -Wuninitialized warning. It also
happens to match what the WIN32 half of the #ifdef does.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotransport: drop "int cmp = cmp" hack
Jeff King [Thu, 21 Mar 2013 11:13:33 +0000 (07:13 -0400)] 
transport: drop "int cmp = cmp" hack

According to 47ec794, this initialization is meant to
squelch an erroneous uninitialized variable warning from gcc
4.0.1.  That version is quite old at this point, and gcc 4.1
and up handle it fine, with one exception. There seems to be
a regression in gcc 4.6.3, which produces the warning;
however, gcc versions 4.4.7 and 4.7.2 do not.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodrop some obsolete "x = x" compiler warning hacks
Jeff King [Thu, 21 Mar 2013 11:10:28 +0000 (07:10 -0400)] 
drop some obsolete "x = x" compiler warning hacks

In cases where the setting and access of a variable are
protected by the same conditional flag, older versions of
gcc would generate a "might be used unitialized" warning. We
silence the warning by initializing the variable to itself,
a hack that gcc recognizes.

Modern versions of gcc are smart enough to get this right,
going back to at least version 4.3.5. gcc 4.1 does get it
wrong in both cases, but is sufficiently old that we
probably don't need to care about it anymore.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agofast-import: use pointer-to-pointer to keep list tail
Jeff King [Thu, 21 Mar 2013 11:08:17 +0000 (07:08 -0400)] 
fast-import: use pointer-to-pointer to keep list tail

This is shorter, idiomatic, and it means the compiler does
not get confused about whether our "e" pointer is valid,
letting us drop the "e = e" hack.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'we/submodule-update-prefix-output'
Junio C Hamano [Thu, 21 Mar 2013 21:03:10 +0000 (14:03 -0700)] 
Merge branch 'we/submodule-update-prefix-output'

"git submodule update", when recursed into sub-submodules, did not
acccumulate the prefix paths.

* we/submodule-update-prefix-output:
  submodule update: when using recursion, show full path

11 years agoMerge branch 'jk/mailsplit-maildir-muttsort'
Junio C Hamano [Thu, 21 Mar 2013 21:03:08 +0000 (14:03 -0700)] 
Merge branch 'jk/mailsplit-maildir-muttsort'

Sort filenames read from the maildir/ in a way that is more likely
to sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.

* jk/mailsplit-maildir-muttsort:
  mailsplit: sort maildir filenames more cleverly

11 years agoMerge branch 'rs/zip-compresssed-size-with-export-subst'
Junio C Hamano [Thu, 21 Mar 2013 21:03:04 +0000 (14:03 -0700)] 
Merge branch 'rs/zip-compresssed-size-with-export-subst'

When export-subst is used, "zip" output recorded incorrect
size of the file.

* rs/zip-compresssed-size-with-export-subst:
  archive-zip: fix compressed size for stored export-subst files

11 years agoMerge branch 'mn/send-email-works-with-credential'
Junio C Hamano [Thu, 21 Mar 2013 21:03:02 +0000 (14:03 -0700)] 
Merge branch 'mn/send-email-works-with-credential'

Hooks the credential system to send-email.

* mn/send-email-works-with-credential:
  git-send-email: use git credential to obtain password
  Git.pm: add interface for git credential command
  Git.pm: allow pipes to be closed prior to calling command_close_bidi_pipe
  Git.pm: refactor command_close_bidi_pipe to use _cmd_close
  Git.pm: fix example in command_close_bidi_pipe documentation
  Git.pm: allow command_close_bidi_pipe to be called as method

11 years agoMerge branch 'tz/credential-authinfo'
Junio C Hamano [Thu, 21 Mar 2013 21:03:00 +0000 (14:03 -0700)] 
Merge branch 'tz/credential-authinfo'

A new read-only credential helper (in contrib/) to interact with
the .netrc/.authinfo files.  Hopefully mn/send-email-authinfo topic
can rebuild on top of something like this.

* tz/credential-authinfo:
  Add contrib/credentials/netrc with GPG support

11 years agoMerge branch 'jk/utf-8-can-be-spelled-differently'
Junio C Hamano [Thu, 21 Mar 2013 21:02:58 +0000 (14:02 -0700)] 
Merge branch 'jk/utf-8-can-be-spelled-differently'

Some platforms and users spell UTF-8 differently; retry with the
most official "UTF-8" when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.

* jk/utf-8-can-be-spelled-differently:
  utf8: accept alternate spellings of UTF-8

11 years agoMerge branch 'mg/gpg-interface-using-status'
Junio C Hamano [Thu, 21 Mar 2013 21:02:55 +0000 (14:02 -0700)] 
Merge branch 'mg/gpg-interface-using-status'

Call "gpg" using the right API when validating the signature on
tags.

* mg/gpg-interface-using-status:
  pretty: make %GK output the signing key for signed commits
  pretty: parse the gpg status lines rather than the output
  gpg_interface: allow to request status return
  log-tree: rely upon the check in the gpg_interface
  gpg-interface: check good signature in a reliable way

11 years agoMerge branch 'rt/commit-cleanup-config'
Junio C Hamano [Thu, 21 Mar 2013 21:02:53 +0000 (14:02 -0700)] 
Merge branch 'rt/commit-cleanup-config'

Fix tests that contaminated their environments and affected new
tests introduced later in the sequence by containing their effects
in their own subshells.

* rt/commit-cleanup-config:
  t7502: perform commits using alternate editor in a subshell

11 years agoMerge branch 'nd/branch-error-cases'
Junio C Hamano [Thu, 21 Mar 2013 21:02:51 +0000 (14:02 -0700)] 
Merge branch 'nd/branch-error-cases'

"git branch" had more cases where it did not bother to check
nonsense command line parameters.

* nd/branch-error-cases:
  branch: segfault fixes and validation

11 years agoMerge branch 'ap/maint-update-index-h-is-for-help'
Junio C Hamano [Thu, 21 Mar 2013 21:02:48 +0000 (14:02 -0700)] 
Merge branch 'ap/maint-update-index-h-is-for-help'

"git update-index -h" did not do the usual "-h(elp)" thing.

* ap/maint-update-index-h-is-for-help:
  update-index: allow "-h" to also display options

11 years agoMerge branch 'jc/perl-cat-blob'
Junio C Hamano [Thu, 21 Mar 2013 21:02:46 +0000 (14:02 -0700)] 
Merge branch 'jc/perl-cat-blob'

perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.

* jc/perl-cat-blob:
  Git.pm: fix cat_blob crashes on large files

11 years agoMerge branch 'da/difftool-fixes'
Junio C Hamano [Thu, 21 Mar 2013 21:02:43 +0000 (14:02 -0700)] 
Merge branch 'da/difftool-fixes'

Minor maintenance updates to difftool, and updates to its tests.

* da/difftool-fixes:
  t7800: "defaults" is no longer a builtin tool name
  t7800: modernize tests
  t7800: update copyright notice
  difftool: silence uninitialized variable warning

11 years agoMerge branch 'ob/imap-send-ssl-verify'
Junio C Hamano [Thu, 21 Mar 2013 21:02:39 +0000 (14:02 -0700)] 
Merge branch 'ob/imap-send-ssl-verify'

Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.

* ob/imap-send-ssl-verify:
  imap-send: support Server Name Indication (RFC4366)

11 years agoMerge branch 'bc/commit-complete-lines-given-via-m-option'
Junio C Hamano [Thu, 21 Mar 2013 21:02:37 +0000 (14:02 -0700)] 
Merge branch 'bc/commit-complete-lines-given-via-m-option'

'git commit -m "$str"' when $str was already terminated with a LF
now avoids adding an extra LF to the message.

* bc/commit-complete-lines-given-via-m-option:
  Documentation/git-commit.txt: rework the --cleanup section
  git-commit: only append a newline to -m mesg if necessary
  t7502: demonstrate breakage with a commit message with trailing newlines
  t/t7502: compare entire commit message with what was expected

11 years agoMerge branch 'nd/count-garbage'
Junio C Hamano [Thu, 21 Mar 2013 21:02:34 +0000 (14:02 -0700)] 
Merge branch 'nd/count-garbage'

"git count-objects -v" did not count leftover temporary packfiles
and other kinds of garbage.

* nd/count-garbage:
  count-objects: report how much disk space taken by garbage files
  count-objects: report garbage files in pack directory too
  sha1_file: reorder code in prepare_packed_git_one()
  git-count-objects.txt: describe each line in -v output

11 years agoMerge branch 'jc/fetch-raw-sha1'
Junio C Hamano [Thu, 21 Mar 2013 21:02:27 +0000 (14:02 -0700)] 
Merge branch 'jc/fetch-raw-sha1'

Allows requests to fetch objects at any tip of refs (including
hidden ones).  It seems that there may be use cases even outside
Gerrit (e.g. $gmane/215701).

* jc/fetch-raw-sha1:
  fetch: fetch objects by their exact SHA-1 object names
  upload-pack: optionally allow fetching from the tips of hidden refs
  fetch: use struct ref to represent refs to be fetched
  parse_fetch_refspec(): clarify the codeflow a bit

11 years agoMerge branch 'nd/preallocate-hash'
Junio C Hamano [Thu, 21 Mar 2013 21:02:19 +0000 (14:02 -0700)] 
Merge branch 'nd/preallocate-hash'

When we know approximately how many entries we will have in the
hash-table, it makes sense to size the hash table to that number
from the beginning to avoid unnecessary rehashing.

* nd/preallocate-hash:
  Preallocate hash tables when the number of inserts are known in advance

11 years agoMerge branch 'nd/index-pack-l10n-buf-overflow'
Junio C Hamano [Thu, 21 Mar 2013 21:02:16 +0000 (14:02 -0700)] 
Merge branch 'nd/index-pack-l10n-buf-overflow'

* nd/index-pack-l10n-buf-overflow:
  index-pack: fix buffer overflow caused by translations

11 years agoMerge branch 'tb/document-status-u-tradeoff'
Junio C Hamano [Thu, 21 Mar 2013 21:02:10 +0000 (14:02 -0700)] 
Merge branch 'tb/document-status-u-tradeoff'

Suggest users to look into using--untracked=no option when "git
status" takes too long.

* tb/document-status-u-tradeoff:
  status: advise to consider use of -u when read_directory takes too long
  git status: document trade-offs in choosing parameters to the -u option

11 years agoMerge branch 'jn/shell-disable-interactive'
Junio C Hamano [Thu, 21 Mar 2013 21:01:53 +0000 (14:01 -0700)] 
Merge branch 'jn/shell-disable-interactive'

When the interactive access to git-shell is not enabled, we issue a
message meant to help the system admininstrator to enable it. Add
an explicit way to help the end users who connect to the service by
issuing custom messages to refuse such an access.

* jn/shell-disable-interactive:
  shell: new no-interactive-login command to print a custom message
  shell doc: emphasize purpose and security model

11 years agoMerge branch 'jc/maint-push-refspec-default-doc'
Junio C Hamano [Thu, 21 Mar 2013 21:01:47 +0000 (14:01 -0700)] 
Merge branch 'jc/maint-push-refspec-default-doc'

Clarify in the documentation "what" gets pushed to "where" when the
command line to "git push" does not say these explicitly.

* jc/maint-push-refspec-default-doc:
  Documentation/git-push: clarify the description of defaults

11 years agoThe first wave of topics for 1.8.3
Junio C Hamano [Tue, 19 Mar 2013 19:30:25 +0000 (12:30 -0700)] 
The first wave of topics for 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jc/add-2.0-u-A-sans-pathspec' (early part)
Junio C Hamano [Tue, 19 Mar 2013 19:21:27 +0000 (12:21 -0700)] 
Merge branch 'jc/add-2.0-u-A-sans-pathspec' (early part)

* 'jc/add-2.0-u-A-sans-pathspec' (early part):
  t2200: check that "add -u" limits itself to subdirectory

11 years agoMerge branch 'lf/bundle-verify-list-prereqs'
Junio C Hamano [Tue, 19 Mar 2013 19:21:09 +0000 (12:21 -0700)] 
Merge branch 'lf/bundle-verify-list-prereqs'

* lf/bundle-verify-list-prereqs:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete

11 years agoMerge branch 'jk/graph-c-expose-symbols-for-cgit'
Junio C Hamano [Tue, 19 Mar 2013 19:20:56 +0000 (12:20 -0700)] 
Merge branch 'jk/graph-c-expose-symbols-for-cgit'

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
  Revert "graph.c: mark private file-scope symbols as static"

11 years agoMerge branch 'tk/doc-filter-branch'
Junio C Hamano [Tue, 19 Mar 2013 19:20:50 +0000 (12:20 -0700)] 
Merge branch 'tk/doc-filter-branch'

* tk/doc-filter-branch:
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage

11 years agoMerge branch 'wk/user-manual-literal-format'
Junio C Hamano [Tue, 19 Mar 2013 19:20:44 +0000 (12:20 -0700)] 
Merge branch 'wk/user-manual-literal-format'

* wk/user-manual-literal-format:
  user-manual: Standardize backtick quoting

11 years agoMerge branch 'rj/msvc-build'
Junio C Hamano [Tue, 19 Mar 2013 19:20:40 +0000 (12:20 -0700)] 
Merge branch 'rj/msvc-build'

* rj/msvc-build:
  msvc: avoid collisions between "tags" and "TAGS"
  msvc: test-svn-fe: Fix linker "unresolved external" error
  msvc: Fix build by adding missing symbol defines
  msvc: git-daemon: Fix linker "unresolved external" errors
  msvc: Fix compilation errors caused by poll.h emulation

11 years agoMerge branch 'dm/ni-maxhost-may-be-missing'
Junio C Hamano [Tue, 19 Mar 2013 19:18:21 +0000 (12:18 -0700)] 
Merge branch 'dm/ni-maxhost-may-be-missing'

On systems without NI_MAXHOST in their system header files,
connect.c (hence most of the transport) did not compile.

* dm/ni-maxhost-may-be-missing:
  git-compat-util.h: Provide missing netdb.h definitions

11 years agoMerge branch 'gp/describe-match-uses-glob-pattern'
Junio C Hamano [Tue, 19 Mar 2013 19:16:31 +0000 (12:16 -0700)] 
Merge branch 'gp/describe-match-uses-glob-pattern'

The syntax of the pattern given to the "--match=<pattern>" argument
to "git describe" was not documented to be a glob.

* gp/describe-match-uses-glob-pattern:
  describe: Document --match pattern format

11 years agoMerge branch 'gp/avoid-explicit-mention-of-dot-git-refs'
Junio C Hamano [Tue, 19 Mar 2013 19:16:22 +0000 (12:16 -0700)] 
Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs'

* gp/avoid-explicit-mention-of-dot-git-refs:
  Fix ".git/refs" stragglers

11 years agoMerge branch 'da/downcase-u-in-usage'
Junio C Hamano [Tue, 19 Mar 2013 19:15:54 +0000 (12:15 -0700)] 
Merge branch 'da/downcase-u-in-usage'

* da/downcase-u-in-usage:
  contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
  contrib/examples/git-remote.perl: use a lowercase "usage:" string
  tests: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  Documentation/user-manual.txt: use a lowercase "usage:" string
  templates/hooks--update.sample: use a lowercase "usage:" string
  contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
  contrib/examples: use a lowercase "usage:" string
  contrib/fast-import/import-zips.py: use spaces instead of tabs
  contrib/fast-import/import-zips.py: fix broken error message
  contrib/fast-import: use a lowercase "usage:" string
  contrib/credential: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsexportcommit: use a lowercase "usage:" string
  git-archimport: use a lowercase "usage:" string
  git-merge-one-file: use a lowercase "usage:" string
  git-relink: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  git-sh-setup: use a lowercase "usage:" string

11 years agoMerge branch 'nd/doc-index-format'
Junio C Hamano [Tue, 19 Mar 2013 19:15:14 +0000 (12:15 -0700)] 
Merge branch 'nd/doc-index-format'

Update the index format documentation to mention the v4 format.

* nd/doc-index-format:
  update-index: list supported idx versions and their features
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places

11 years agoMerge branch 'wk/doc-pre-rebase'
Junio C Hamano [Tue, 19 Mar 2013 19:14:05 +0000 (12:14 -0700)] 
Merge branch 'wk/doc-pre-rebase'

* wk/doc-pre-rebase:
  Documentation/githooks: Explain pre-rebase parameters

11 years agoMerge branch 'jc/color-diff-doc'
Junio C Hamano [Tue, 19 Mar 2013 19:11:31 +0000 (12:11 -0700)] 
Merge branch 'jc/color-diff-doc'

The --color[=<when>] option to the diff family was documented in a
confusing way.

* jc/color-diff-doc:
  diff-options: unconfuse description of --color

11 years agoStart the post 1.8.2 cycle
Junio C Hamano [Mon, 18 Mar 2013 22:01:19 +0000 (15:01 -0700)] 
Start the post 1.8.2 cycle

Again, tentatively let's call this cycle 1.8.3.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Sun, 17 Mar 2013 22:39:43 +0000 (15:39 -0700)] 
Merge branch 'maint'

* maint:
  t1507: Test that branchname@{upstream} is interpreted as branch

11 years agot1507: Test that branchname@{upstream} is interpreted as branch
Kacper Kornet [Sun, 17 Mar 2013 22:17:09 +0000 (23:17 +0100)] 
t1507: Test that branchname@{upstream} is interpreted as branch

Syntax branchname@{upstream} should interpret its argument as a name of
a branch. Add the test to check that it doesn't try to interpret it as a
refname if the branch in question does not exist.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Sun, 17 Mar 2013 07:11:11 +0000 (00:11 -0700)] 
Merge branch 'maint'

* maint:
  rev-parse: clarify documentation of $name@{upstream} syntax
  sha1_name: pass object name length to diagnose_invalid_sha1_path()
  Makefile: keep LIB_H entries together and sorted

11 years agorev-parse: clarify documentation of $name@{upstream} syntax
Kacper Kornet [Sat, 16 Mar 2013 18:51:43 +0000 (19:51 +0100)] 
rev-parse: clarify documentation of $name@{upstream} syntax

"git rev-parse" interprets string in string@{upstream} as a name of
a branch not a ref. For example, refs/heads/master@{upstream} looks
for an upstream branch that is merged by git-pull to ref
refs/heads/refs/heads/master not to refs/heads/master.

However the documentation could mislead a user to believe that the
string is interpreted as ref.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agosha1_name: pass object name length to diagnose_invalid_sha1_path()
René Scharfe [Sat, 16 Mar 2013 18:29:31 +0000 (19:29 +0100)] 
sha1_name: pass object name length to diagnose_invalid_sha1_path()

The only caller of diagnose_invalid_sha1_path() extracts a substring from
an object name by creating a NUL-terminated copy of the interesting part.
Add a length parameter to the function and thus avoid the need for an
allocation, thereby simplifying the code.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agopull: Apply -q and -v options to rebase mode as well
Peter Eisentraut [Fri, 15 Mar 2013 02:26:08 +0000 (22:26 -0400)] 
pull: Apply -q and -v options to rebase mode as well

git pull passed -q and -v only to git merge, but they can be useful for
git rebase as well, so pass them there, too.

In particular, using -q shuts up the "Already up-to-date." message.
Especially, a new test script runs the same "pull --rebase" twice to
make sure both cases are quiet, when it has something to fetch and
when it is already up to date.

Signed-off-by: Peter Eisentraut <peter@eisentraut.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoPreallocate hash tables when the number of inserts are known in advance
Nguyễn Thái Ngọc Duy [Sun, 17 Mar 2013 03:28:06 +0000 (10:28 +0700)] 
Preallocate hash tables when the number of inserts are known in advance

This avoids unnecessary re-allocations and reinsertions. On webkit.git
(i.e. about 182k inserts to the name hash table), this reduces about
100ms out of 3s user time.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMakefile: keep LIB_H entries together and sorted
René Scharfe [Sat, 16 Mar 2013 15:58:28 +0000 (16:58 +0100)] 
Makefile: keep LIB_H entries together and sorted

As a follow-up to 60d24dd25 (Makefile: fold XDIFF_H and VCSSVN_H into
LIB_H), let the unconditional additions to LIB_H form a single sorted
list.  Also drop the duplicate entry for xdiff/xdiff.h, which was easy
to spot after sorting.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoindex-pack: fix buffer overflow caused by translations
Nguyễn Thái Ngọc Duy [Sat, 16 Mar 2013 01:25:18 +0000 (08:25 +0700)] 
index-pack: fix buffer overflow caused by translations

The translation of "completed with %d local objects" is put in a
48-byte buffer, which may be enough for English but not true for any
translations. Convert it to use strbuf (i.e. no hard limit on
translation length).

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agostatus: advise to consider use of -u when read_directory takes too long
Nguyễn Thái Ngọc Duy [Wed, 13 Mar 2013 12:59:16 +0000 (19:59 +0700)] 
status: advise to consider use of -u when read_directory takes too long

Introduce advice.statusUoption to suggest considering use of -u to
strike different trade-off when it took more than 2 seconds to
enumerate untracked/ignored files.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit status: document trade-offs in choosing parameters to the -u option
Junio C Hamano [Fri, 15 Mar 2013 16:53:48 +0000 (09:53 -0700)] 
git status: document trade-offs in choosing parameters to the -u option

In some repostories users experience that "git status" command takes
long time.  The command spends some time searching the file system
for untracked files.

Explain the trade-off struck by the default choice of `normal` to
help users make an appropriate choice better, before talking about
the configuration variable.

Inspired by Torsten Bögershausen.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot2200: check that "add -u" limits itself to subdirectory
Jeff King [Thu, 14 Mar 2013 06:44:04 +0000 (02:44 -0400)] 
t2200: check that "add -u" limits itself to subdirectory

This behavior is due to change in the future, but let's test
it anyway. That helps make sure we do not accidentally
switch the behavior too soon while we are working in the
area, and it means that we can easily verify the change when
we do make it.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoGit 1.8.2 v1.8.2
Junio C Hamano [Wed, 13 Mar 2013 18:28:08 +0000 (11:28 -0700)] 
Git 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: avoid expanding client paths in chdir
Miklós Fazekas [Mon, 11 Mar 2013 21:45:29 +0000 (17:45 -0400)] 
git p4: avoid expanding client paths in chdir

The generic chdir() helper sets the PWD environment
variable, as that is what is used by p4 to know its
current working directory.  Normally the shell would
do this, but in git-p4, we must do it by hand.

However, when the path contains a symbolic link,
os.getcwd() will return the physical location.  If the
p4 client specification includes symlinks, setting PWD
to the physical location causes p4 to think it is not
inside the client workspace.  It complains, e.g.

    Path /vol/bar/projects/foo/... is not under client root /p/foo

One workaround is to use AltRoots in the p4 client specification,
but it is cleaner to handle it directly in git-p4.

Other uses of chdir still require setting PWD to an
absolute path so p4 features like P4CONFIG work.  See
bf1d68f (git-p4: use absolute directory for PWD env
var, 2011-12-09).

[ pw: tweak patch and commit message ]

Thanks-to: John Keeping <john@keeping.me.uk>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4 test: should honor symlink in p4 client root
Pete Wyckoff [Mon, 11 Mar 2013 21:45:28 +0000 (17:45 -0400)] 
git p4 test: should honor symlink in p4 client root

This test fails when the p4 client root includes
a symlink.  It complains:

    Path /vol/bar/projects/foo/... is not under client root /p/foo

and dumps a traceback.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 11 Mar 2013 20:00:16 +0000 (13:00 -0700)] 
Merge branch 'maint'

* maint:
  git.c: make usage match manual page

11 years agogit.c: make usage match manual page
Kevin Bracey [Mon, 11 Mar 2013 19:44:15 +0000 (21:44 +0200)] 
git.c: make usage match manual page

Reorder option list in command-line usage to match the manual page.
Also make it less than 80-characters wide.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'mp/complete-paths'
Junio C Hamano [Mon, 11 Mar 2013 17:32:16 +0000 (10:32 -0700)] 
Merge branch 'mp/complete-paths'

* mp/complete-paths:
  git-completion.bash: zsh does not implement function redirection correctly

11 years agoMerge branch 'mm/add-u-A-finishing-touches'
Junio C Hamano [Mon, 11 Mar 2013 17:32:03 +0000 (10:32 -0700)] 
Merge branch 'mm/add-u-A-finishing-touches'

* mm/add-u-A-finishing-touches:
  add: update pathless 'add [-u|-A]' warning to reflect change of plan

11 years agogit-completion.bash: zsh does not implement function redirection correctly
Matthieu Moy [Mon, 11 Mar 2013 12:21:27 +0000 (13:21 +0100)] 
git-completion.bash: zsh does not implement function redirection correctly

A recent change added functions whose entire standard error stream
is redirected to /dev/null using a construct that is valid POSIX.1
but is not widely used:

funcname () {
cd "$1" && run some command "$2"
} 2>/dev/null

Even though this file is "git-completion.bash", zsh completion
support dot-sources it (instead of asking bash to grok it like tcsh
completion does), and zsh does not implement this redirection
correctly.

With zsh, trying to complete an inexistant directory gave this:

  git add no-such-dir/__git_ls_files_helper:cd:2: no such file or directory: no-such-dir/

Also these functions use "cd" to first go somewhere else before
running a command, but the location the caller wants them to go that
is given as an argument to them should not be affected by CDPATH
variable the users may have set for their interactive session.

To fix both of these, wrap the body of the function in a subshell,
unset CDPATH at the beginning of the subshell, and redirect the
standard error stream of the subshell to /dev/null.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'gp/add-u-A-documentation'
Junio C Hamano [Mon, 11 Mar 2013 15:11:37 +0000 (08:11 -0700)] 
Merge branch 'gp/add-u-A-documentation'

* gp/add-u-A-documentation:
  add: Clarify documentation of -A and -u

11 years agoadd: update pathless 'add [-u|-A]' warning to reflect change of plan
Matthieu Moy [Mon, 11 Mar 2013 08:01:32 +0000 (09:01 +0100)] 
add: update pathless 'add [-u|-A]' warning to reflect change of plan

We originally thought the transition would need a period where "git add
[-u|-A]" without pathspec would be forbidden, but the warning is big
enough to scare people and teach them not to use it (or, if so, to
understand the consequences).

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 11 Mar 2013 05:29:29 +0000 (22:29 -0700)] 
Merge branch 'maint'

* maint:
  Translate git_more_info_string consistently

11 years agoarchive: handle commits with an empty tree
Jeff King [Mon, 11 Mar 2013 01:32:32 +0000 (21:32 -0400)] 
archive: handle commits with an empty tree

git-archive relies on get_pathspec to convert its argv into
a list of pathspecs. When get_pathspec is given an empty
argv list, it returns a single pathspec, the empty string,
to indicate that everything matches. When we feed this to
our path_exists function, we typically see that the pathspec
turns up at least one item in the tree, and we are happy.

But when our tree is empty, we erroneously think it is
because the pathspec is too limited, when in fact it is
simply that there is nothing to be found in the tree. This
is a weird corner case, but the correct behavior is almost
certainly to produce an empty archive, not to exit with an
error.

This patch teaches git-archive to create empty archives when
there is no pathspec given (we continue to complain if a
pathspec is given, since it obviously is not matched). It
also confirms that the tar and zip writers produce sane
output in this instance.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotest-lib: factor out $GIT_UNZIP setup
Jeff King [Mon, 11 Mar 2013 01:31:47 +0000 (21:31 -0400)] 
test-lib: factor out $GIT_UNZIP setup

We set up the $GIT_UNZIP variable and lazy prereq in
multiple places (and the next patch is about to add another
one). Let's factor it out to avoid repeating ourselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoTranslate git_more_info_string consistently
Kevin Bracey [Sun, 10 Mar 2013 15:10:20 +0000 (17:10 +0200)] 
Translate git_more_info_string consistently

"git help" translated the "See 'git help <command>' for more
information..." message, but "git" didn't.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoshell: new no-interactive-login command to print a custom message
Jonathan Nieder [Sat, 9 Mar 2013 22:00:11 +0000 (14:00 -0800)] 
shell: new no-interactive-login command to print a custom message

If I disable git-shell's interactive mode by removing the
~/git-shell-commands directory, attempts to ssh in to the service
produce a message intended for the administrator:

$ ssh git@myserver
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
$

That is helpful for the new admin who is wondering "What? Why isn't
the git-shell I just set up working?", but once the site setup is
complete, it would be better to give the user a friendly hint that she
is on the right track, like GitHub does.

Hi <username>! You've successfully authenticated, but
GitHub does not provide shell access.

An appropriate greeting might even include more complex dynamic
information, like gitolite's list of repositories the user has access
to.  Add support for a ~/git-shell-commands/no-interactive-login
command that generates an arbitrary greeting.  When the user tries to
log in:

 * If the file ~/git-shell-commands/no-interactive-login exists,
   run no-interactive-login to let the server say what it likes,
   then hang up.

 * Otherwise, if ~/git-shell-commands/ is present, start an
   interactive read-eval-print loop.

 * Otherwise, print the usual configuration hint and hang up.

Reported-by: Ethan Reesor <firelizzard@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoshell doc: emphasize purpose and security model
Jonathan Nieder [Sat, 9 Mar 2013 21:55:37 +0000 (13:55 -0800)] 
shell doc: emphasize purpose and security model

The original git-shell(1) manpage emphasized that the shell supports
only git transport commands.  As the shell gained features, that
emphasis and focus in the manual has been lost.  Bring it back by
splitting the manpage into a few short sections and fleshing out each:

 - SYNOPSIS, describing how the shell gets used in practice
 - DESCRIPTION, which gives an overview of the purpose and guarantees
   provided by this restricted shell
 - COMMANDS, listing supported commands and restrictions on the
   arguments they accept
 - INTERACTIVE USE, describing the interactive mode

Also add a "see also" section with related reading.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Sat, 9 Mar 2013 19:54:05 +0000 (11:54 -0800)] 
Merge branch 'maint'

* maint:
  perf: update documentation of GIT_PERF_REPEAT_COUNT

11 years agoperf: update documentation of GIT_PERF_REPEAT_COUNT
Antoine Pelisse [Sat, 9 Mar 2013 15:29:25 +0000 (16:29 +0100)] 
perf: update documentation of GIT_PERF_REPEAT_COUNT

Currently the documentation of GIT_PERF_REPEAT_COUNT says the default is
five while "perf-lib.sh" uses a value of three as a default.

Update the documentation so that it is consistent with the code.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoformat-patch: RFC 2047 says multi-octet character may not be split
Kirill Smelkov [Thu, 7 Mar 2013 10:55:07 +0000 (14:55 +0400)] 
format-patch: RFC 2047 says multi-octet character may not be split

Even though an earlier attempt (bafc478..41dd00bad) cleaned
up RFC 2047 encoding, pretty.c::add_rfc2047() still decides
where to split the output line by going through the input
one byte at a time, and potentially splits a character in
the middle.  A subject line may end up showing like this:

     ".... fö?? bar".   (instead of  ".... föö bar".)

if split incorrectly.

RFC 2047, section 5 (3) explicitly forbids such beaviour

    Each 'encoded-word' MUST represent an integral number of
    characters.  A multi-octet character may not be split across
    adjacent 'encoded- word's.

that means that e.g. for

    Subject: .... föö bar

encoding

    Subject: =?UTF-8?q?....=20f=C3=B6=C3=B6?=
     =?UTF-8?q?=20bar?=

is correct, and

    Subject: =?UTF-8?q?....=20f=C3=B6=C3?=      <-- NOTE ö is broken here
     =?UTF-8?q?=B6=20bar?=

is not, because "ö" character UTF-8 encoding C3 B6 is split here across
adjacent encoded words.

To fix the problem, make the loop grab one _character_ at a time and
determine its output length to see where to break the output line.  Note
that this version only knows about UTF-8, but the logic to grab one
character is abstracted out in mbs_chrlen() function to make it possible
to extend it to other encodings with the help of iconv in the future.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Fri, 8 Mar 2013 22:15:55 +0000 (14:15 -0800)] 
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git svn: consistent spacing after "W:" in warnings
  git svn: ignore partial svn:mergeinfo

11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Fri, 8 Mar 2013 22:14:27 +0000 (14:14 -0800)] 
Update draft release notes to 1.8.2

Split the backward-compatibility notes into two sections, the ones
that affect this release, and the other to describe changes meant
for Git 2.0.  The latter gives a context to understand why the
changes for this release is necessary.

Signed-off-by: Junio C Hamano <gitster@pobox.com>