git.git
13 years agodiffcore-rename: refactor "too many candidates" logic
Junio C Hamano [Thu, 6 Jan 2011 21:50:04 +0000 (13:50 -0800)]
diffcore-rename: refactor "too many candidates" logic

Move the logic to a separate function, to be enhanced by later patches in
the series.

While at it, swap the condition used in the if statement from "if it is
too big then do this" to "if it would fit then do this".

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

 Rebased to 'master' as the logic to use the result of this logic was
 updated recently, together with the addition of eye-candy.

13 years agobuiltin/diff.c: remove duplicated call to diff_result_code()
Junio C Hamano [Tue, 22 Mar 2011 21:17:30 +0000 (14:17 -0700)]
builtin/diff.c: remove duplicated call to diff_result_code()

The return value from builtin_diff_files() is fed to diff_result_code()
by the caller, and all other callees like builtin_diff_index() do not
have their own call to diff_result_code().  Remove the duplicated one
from builtin_diff_files() and let the caller handle it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix sparse warnings
Stephen Boyd [Tue, 22 Mar 2011 07:51:05 +0000 (00:51 -0700)]
Fix sparse warnings

Fix warnings from 'make check'.

 - These files don't include 'builtin.h' causing sparse to complain that
   cmd_* isn't declared:

   builtin/clone.c:364, builtin/fetch-pack.c:797,
   builtin/fmt-merge-msg.c:34, builtin/hash-object.c:78,
   builtin/merge-index.c:69, builtin/merge-recursive.c:22
   builtin/merge-tree.c:341, builtin/mktag.c:156, builtin/notes.c:426
   builtin/notes.c:822, builtin/pack-redundant.c:596,
   builtin/pack-refs.c:10, builtin/patch-id.c:60, builtin/patch-id.c:149,
   builtin/remote.c:1512, builtin/remote-ext.c:240,
   builtin/remote-fd.c:53, builtin/reset.c:236, builtin/send-pack.c:384,
   builtin/unpack-file.c:25, builtin/var.c:75

 - These files have symbols which should be marked static since they're
   only file scope:

   submodule.c:12, diff.c:631, replace_object.c:92, submodule.c:13,
   submodule.c:14, trace.c:78, transport.c:195, transport-helper.c:79,
   unpack-trees.c:19, url.c:3, url.c:18, url.c:104, url.c:117, url.c:123,
   url.c:129, url.c:136, thread-utils.c:21, thread-utils.c:48

 - These files redeclare symbols to be different types:

   builtin/index-pack.c:210, parse-options.c:564, parse-options.c:571,
   usage.c:49, usage.c:58, usage.c:63, usage.c:72

 - These files use a literal integer 0 when they really should use a NULL
   pointer:

   daemon.c:663, fast-import.c:2942, imap-send.c:1072, notes-merge.c:362

While we're in the area, clean up some unused #includes in builtin files
(mostly exec_cmd.h).

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate drart release notes to 1.7.5
Junio C Hamano [Mon, 21 Mar 2011 05:24:24 +0000 (22:24 -0700)]
Update drart release notes to 1.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 21 Mar 2011 05:14:47 +0000 (22:14 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.7.4.2
  Work around broken ln on solaris as used in t8006
  t/README: Add a note about running commands under valgrind

13 years agoUpdate draft release notes to 1.7.4.2
Junio C Hamano [Mon, 21 Mar 2011 05:14:21 +0000 (22:14 -0700)]
Update draft release notes to 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'sp/maint-fd-limit' into maint
Junio C Hamano [Mon, 21 Mar 2011 05:11:46 +0000 (22:11 -0700)]
Merge branch 'sp/maint-fd-limit' into maint

* sp/maint-fd-limit:
  sha1_file.c: Don't retain open fds on small packs
  mingw: add minimum getrlimit() compatibility stub
  Limit file descriptors used by packs

13 years agoMerge branch 'mr/hpux' into maint
Junio C Hamano [Mon, 21 Mar 2011 05:11:15 +0000 (22:11 -0700)]
Merge branch 'mr/hpux' into maint

* mr/hpux:
  git-compat-util.h: Honor HP C's noreturn attribute
  Makefile: add NO_FNMATCH_CASEFOLD to HP-UX section

13 years agoMerge branch 'so/submodule-no-update-first-time' into maint
Junio C Hamano [Mon, 21 Mar 2011 05:11:02 +0000 (22:11 -0700)]
Merge branch 'so/submodule-no-update-first-time' into maint

* so/submodule-no-update-first-time:
  t7406: "git submodule update {--merge|--rebase]" with new submodules
  submodule: no [--merge|--rebase] when newly cloned

13 years agoMerge branch 'mo/perl-bidi-pipe-envfix' into maint
Junio C Hamano [Mon, 21 Mar 2011 05:10:31 +0000 (22:10 -0700)]
Merge branch 'mo/perl-bidi-pipe-envfix' into maint

* mo/perl-bidi-pipe-envfix:
  perl: command_bidi_pipe() method should set-up git environmens

13 years agoMerge branch 'ae/better-template-failure-report' into maint
Junio C Hamano [Mon, 21 Mar 2011 05:09:39 +0000 (22:09 -0700)]
Merge branch 'ae/better-template-failure-report' into maint

* ae/better-template-failure-report:
  Improve error messages when temporary file creation fails

13 years agoWork around broken ln on solaris as used in t8006
Ben Walton [Mon, 21 Mar 2011 01:12:26 +0000 (21:12 -0400)]
Work around broken ln on solaris as used in t8006

The test setup in t8006-blame-textconv.sh uses "ln -sf" to
overwrite an existing symlink.  Unfortunately, both /usr/bin/ln
and /usr/xpg4/bin/ln on solaris 9 don't properly handle -f and -s
used at the same time.  This caused the test setup and subsequent
checks to fail.

Instead, remove the symlink and then create a new one in the
setup code.

The upstream Solaris bug (fixed in 10, but not 9) is documented
here:

  http://bugs.opensolaris.org/view_bug.do?bug_id=4372462

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/README: Add a note about running commands under valgrind
Carlos Martín Nieto [Tue, 15 Mar 2011 09:32:11 +0000 (10:32 +0100)]
t/README: Add a note about running commands under valgrind

The test suite runs valgrind with certain options activated. Add a
note saying how to run commands under the same conditions as the test
suite does.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'mm/maint-log-n-with-diff-filtering'
Junio C Hamano [Sun, 20 Mar 2011 06:25:38 +0000 (23:25 -0700)]
Merge branch 'mm/maint-log-n-with-diff-filtering'

* mm/maint-log-n-with-diff-filtering:
  log: fix --max-count when used together with -S or -G

13 years agoMerge branch 'mg/rev-list-n-reverse-doc'
Junio C Hamano [Sun, 20 Mar 2011 06:25:32 +0000 (23:25 -0700)]
Merge branch 'mg/rev-list-n-reverse-doc'

* mg/rev-list-n-reverse-doc:
  git-log.txt,rev-list-options.txt: put option blocks in proper order
  git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting

13 years agoMerge branch 'js/rerere-forget-always-take-pathspec'
Junio C Hamano [Sun, 20 Mar 2011 06:24:48 +0000 (23:24 -0700)]
Merge branch 'js/rerere-forget-always-take-pathspec'

* js/rerere-forget-always-take-pathspec:
  rerere forget: deprecate invocation without pathspec

13 years agoMerge branch 'ab/i18n-basic'
Junio C Hamano [Sun, 20 Mar 2011 06:24:42 +0000 (23:24 -0700)]
Merge branch 'ab/i18n-basic'

* ab/i18n-basic:
  i18n: "make distclean" should clean up after "make pot"
  i18n: Makefile: "pot" target to extract messages marked for translation
  i18n: add stub Q_() wrapper for ngettext
  i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
  i18n: add GETTEXT_POISON to simulate unfriendly translator
  i18n: add no-op _() and N_() wrappers
  commit, status: use status_printf{,_ln,_more} helpers
  commit: refer to commit template as s->fp
  wt-status: add helpers for printing wt-status lines

Conflicts:
builtin/commit.c

13 years agoMerge branch 'uk/ls-remote-in-get-remote-url'
Junio C Hamano [Sun, 20 Mar 2011 06:24:34 +0000 (23:24 -0700)]
Merge branch 'uk/ls-remote-in-get-remote-url'

* uk/ls-remote-in-get-remote-url:
  git-request-pull: open-code the only invocation of get_remote_url
  get_remote_url(): use the same data source as ls-remote to get remote urls

13 years agoMerge branch 'ss/mergetool--lib'
Junio C Hamano [Sun, 20 Mar 2011 06:24:27 +0000 (23:24 -0700)]
Merge branch 'ss/mergetool--lib'

* ss/mergetool--lib:
  mergetool--lib: Add Beyond Compare 3 as a tool
  mergetool--lib: Sort tools alphabetically for easier lookup

13 years agoMerge branch 'jn/status-translatable'
Junio C Hamano [Sun, 20 Mar 2011 06:24:19 +0000 (23:24 -0700)]
Merge branch 'jn/status-translatable'

* jn/status-translatable:
  commit, status: use status_printf{,_ln,_more} helpers
  commit: refer to commit template as s->fp
  wt-status: add helpers for printing wt-status lines

Conflicts:
builtin/commit.c

13 years agoMerge branch 'jk/trace-sifter'
Junio C Hamano [Sun, 20 Mar 2011 06:24:12 +0000 (23:24 -0700)]
Merge branch 'jk/trace-sifter'

* jk/trace-sifter:
  trace: give repo_setup trace its own key
  add packet tracing debug code
  trace: add trace_strbuf
  trace: factor out "do we want to trace" logic
  trace: refactor to support multiple env variables
  trace: add trace_vprintf

13 years agoMerge branch 'jk/format-patch-multiline-header'
Junio C Hamano [Sun, 20 Mar 2011 06:24:08 +0000 (23:24 -0700)]
Merge branch 'jk/format-patch-multiline-header'

* jk/format-patch-multiline-header:
  format-patch: rfc2047-encode newlines in headers
  format-patch: wrap long header lines
  strbuf: add fixed-length version of add_wrapped_text

13 years agoMerge branch 'jk/merge-rename-ux'
Junio C Hamano [Sun, 20 Mar 2011 06:23:56 +0000 (23:23 -0700)]
Merge branch 'jk/merge-rename-ux'

* jk/merge-rename-ux:
  pull: propagate --progress to merge
  merge: enable progress reporting for rename detection
  add inexact rename detection progress infrastructure
  commit: stop setting rename limit
  bump rename limit defaults (again)
  merge: improve inexact rename limit warning

13 years agoMerge branch 'maint'
Junio C Hamano [Sun, 20 Mar 2011 06:21:10 +0000 (23:21 -0700)]
Merge branch 'maint'

* maint:
  gitweb: Always call parse_date with timezone parameter
  bisect: explain the rationale behind 125

13 years agogrep: read patterns from stdin with -f -
René Scharfe [Sat, 19 Mar 2011 18:33:15 +0000 (19:33 +0100)]
grep: read patterns from stdin with -f -

Support the well-know convention of reading standard input instead of a
named file if "-" (dash) is specified.  GNU grep does the same.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Always call parse_date with timezone parameter
Jakub Narebski [Sat, 19 Mar 2011 22:53:55 +0000 (23:53 +0100)]
gitweb: Always call parse_date with timezone parameter

Timezone is required to correctly set local time, which would be needed
for future 'localtime' feature.

While at it, remove unnecessary call to the function from git_log_body,
as its return value is not used anywhere.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobisect: explain the rationale behind 125
Junio C Hamano [Sun, 20 Mar 2011 04:46:06 +0000 (21:46 -0700)]
bisect: explain the rationale behind 125

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 18 Mar 2011 23:20:49 +0000 (16:20 -0700)]
Merge branch 'maint'

* maint:
  docs: fix grammar in gitattributes.txt

13 years agodocs: fix grammar in gitattributes.txt
Alexei Sholik [Fri, 18 Mar 2011 13:14:27 +0000 (15:14 +0200)]
docs: fix grammar in gitattributes.txt

[jc: with a fixlet from Marc Branchaud]

Signed-off-by: Alexei Sholik <alcosholik@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoName make_*_path functions more accurately
Carlos Martín Nieto [Thu, 17 Mar 2011 11:26:46 +0000 (12:26 +0100)]
Name make_*_path functions more accurately

Rename the make_*_path functions so it's clearer what they do, in
particlar make clear what the differnce between make_absolute_path and
make_nonrelative_path is by renaming them real_path and absolute_path
respectively. make_relative_path has an understandable name and is
renamed to relative_path to maintain the name convention.

The function calls have been replaced 1-to-1 in their usage.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoRelNotes/1.7.5.txt: typo and language fixes
Michael J Gruber [Wed, 16 Mar 2011 09:23:23 +0000 (10:23 +0100)]
RelNotes/1.7.5.txt: typo and language fixes

Also remove entries for fixes that are already present in the
maintenance track.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 16 Mar 2011 23:59:30 +0000 (16:59 -0700)]
Merge branch 'maint'

* maint:
  Prepare draft release notes to 1.7.4.2
  gitweb: highlight: replace tabs with spaces
  make_absolute_path: return the input path if it points to our buffer
  valgrind: ignore SSE-based strlen invalid reads
  diff --submodule: split into bite-sized pieces
  cherry: split off function to print output lines
  branch: split off function that writes tracking info and commit subject
  standardize brace placement in struct definitions
  compat: make gcc bswap an inline function
  enums: omit trailing comma for portability

Conflicts:
RelNotes

13 years agoPrepare draft release notes to 1.7.4.2
Junio C Hamano [Wed, 16 Mar 2011 23:29:03 +0000 (16:29 -0700)]
Prepare draft release notes to 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jn/maint-commit-missing-template' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'jn/maint-commit-missing-template' into maint

* jn/maint-commit-missing-template:
  commit: error out for missing commit message template

13 years agoMerge branch 'lt/rename-no-extra-copy-detection' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'lt/rename-no-extra-copy-detection' into maint

* lt/rename-no-extra-copy-detection:
  diffcore-rename: improve estimate_similarity() heuristics
  diffcore-rename: properly honor the difference between -M and -C
  for_each_hash: allow passing a 'void *data' pointer to callback

13 years agoMerge branch 'jk/diffstat-binary' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'jk/diffstat-binary' into maint

* jk/diffstat-binary:
  diff: don't retrieve binary blobs for diffstat
  diff: handle diffstat of rewritten binary files

13 years agoMerge branch 'mg/maint-difftool-vim-readonly' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'mg/maint-difftool-vim-readonly' into maint

* mg/maint-difftool-vim-readonly:
  mergetool-lib: call vim in readonly mode for diffs

13 years agoMerge branch 'jn/test-terminal-punt-on-osx-breakage' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'jn/test-terminal-punt-on-osx-breakage' into maint

* jn/test-terminal-punt-on-osx-breakage:
  tests: skip terminal output tests on OS X

13 years agoMerge branch 'jk/fail-null-clone' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'jk/fail-null-clone' into maint

* jk/fail-null-clone:
  clone: die when trying to clone missing local path

13 years agoMerge branch 'jh/push-default-upstream-configname' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)]
Merge branch 'jh/push-default-upstream-configname' into maint

* jh/push-default-upstream-configname:
  push.default: Rename 'tracking' to 'upstream'

13 years agoMerge branch 'mg/placeholders-are-lowercase' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)]
Merge branch 'mg/placeholders-are-lowercase' into maint

* mg/placeholders-are-lowercase:
  Make <identifier> lowercase in Documentation
  Make <identifier> lowercase as per CodingGuidelines
  Make <identifier> lowercase as per CodingGuidelines
  Make <identifier> lowercase as per CodingGuidelines
  CodingGuidelines: downcase placeholders in usage messages

13 years agoMerge branch 'mg/patch-id' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)]
Merge branch 'mg/patch-id' into maint

* mg/patch-id:
  git-patch-id: do not trip over "no newline" markers
  git-patch-id: test for "no newline" markers

13 years agoMerge branch 'js/maint-merge-use-prepare-commit-msg-hook' into maint
Junio C Hamano [Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)]
Merge branch 'js/maint-merge-use-prepare-commit-msg-hook' into maint

* js/maint-merge-use-prepare-commit-msg-hook:
  merge: honor prepare-commit-msg hook

13 years agogitweb: highlight: replace tabs with spaces
Kevin Cernekee [Wed, 16 Mar 2011 22:34:13 +0000 (15:34 -0700)]
gitweb: highlight: replace tabs with spaces

Consider the following code fragment:

        /*
         * test
         */

vim ":set list" mode shows that the first character on each line is a
tab:

^I/*$
^I * test$
^I */$

By default, the "highlight" program will retain the tabs in the HTML
output:

$ highlight --fragment --syntax c test.c
        <span class="hl com">/*</span>
<span class="hl com">    * test</span>
<span class="hl com">    */</span>

vim list mode:

^I<span class="hl com">/*</span>$
<span class="hl com">^I * test</span>$
<span class="hl com">^I */</span>$

In gitweb, this winds up looking something like:

   1         /*
   2     * test
   3     */

I tried both Firefox and Opera and saw the same behavior.

The desired output is:

   1         /*
   2          * test
   3          */

This can be accomplished by specifying "--replace-tabs=8" on the
highlight command line.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomake_absolute_path: return the input path if it points to our buffer
Carlos Martín Nieto [Wed, 16 Mar 2011 16:06:17 +0000 (17:06 +0100)]
make_absolute_path: return the input path if it points to our buffer

Some codepaths call make_absolute_path with its own return value as
input. In such a cases, return the path immediately.

This fixes a valgrind-discovered error, whereby we tried to copy a
string onto itself.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agovalgrind: ignore SSE-based strlen invalid reads
Carlos Martín Nieto [Wed, 16 Mar 2011 11:46:01 +0000 (12:46 +0100)]
valgrind: ignore SSE-based strlen invalid reads

Some versions of strlen use SSE to speed up the calculation and load 4
bytes at a time, even if it means reading past the end of the
allocated memory. This read is safe and when the strlen function is
inlined, it is not replaced by valgrind, which reports a
false-possitive.

Tell valgrind to ignore this particular error, as the read is, in
fact, safe. Current upstream-released version 3.6.1 is affected. Some
distributions have this fixed in their latest versions.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agovcs-svn: remove spurious semicolons
Jonathan Nieder [Wed, 16 Mar 2011 07:02:42 +0000 (02:02 -0500)]
vcs-svn: remove spurious semicolons

trp_gen is not a statement or function call, so it should not be
followed with a semicolon.  Noticed by gcc -pedantic.

 vcs-svn/repo_tree.c:41:81: warning: ISO C does not allow extra ';'
  outside of a function [-pedantic]

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff --submodule: split into bite-sized pieces
Jonathan Nieder [Wed, 16 Mar 2011 07:14:11 +0000 (02:14 -0500)]
diff --submodule: split into bite-sized pieces

Introduce two functions:

 - prepare_submodule_summary prepares the revision walker
   to list changes in a submodule.  That is, it:

   * finds merge bases between the commits pointed to this
     path from before ("left") and after ("right") the change;
   * checks whether this is a fast-forward or fast-backward;
   * prepares a revision walk to list commits in the symmetric
     difference between the commits at each endpoint.

   It returns nonzero on error.

 - print_submodule_summary runs the revision walk and saves
   the result to a strbuf in --left-right format.

The goal is just readability.  No functional change intended.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocherry: split off function to print output lines
Jonathan Nieder [Wed, 16 Mar 2011 07:12:48 +0000 (02:12 -0500)]
cherry: split off function to print output lines

Readers uninterested in the details of "git cherry"'s output format
can see

print_commit('-', commit, verbose, abbrev);

and ignore the details.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobranch: split off function that writes tracking info and commit subject
Jonathan Nieder [Wed, 16 Mar 2011 07:10:14 +0000 (02:10 -0500)]
branch: split off function that writes tracking info and commit subject

Introduce a add_verbose_info function that takes care of adding

 - an abbreviated object name;
 - a summary of the form [ahead x, behind y] of the relationship
   to the corresponding upstream branch;
 - a one line commit subject

for the tip commit of a branch, for use in "git branch -v" output.

No functional change intended.  This just unindents the code a little
and makes it easier to skip on first reading.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agostandardize brace placement in struct definitions
Jonathan Nieder [Wed, 16 Mar 2011 07:08:34 +0000 (02:08 -0500)]
standardize brace placement in struct definitions

In a struct definitions, unlike functions, the prevailing style is for
the opening brace to go on the same line as the struct name, like so:

 struct foo {
int bar;
char *baz;
 };

Indeed, grepping for 'struct [a-z_]* {$' yields about 5 times as many
matches as 'struct [a-z_]*$'.

Linus sayeth:

 Heretic people all over the world have claimed that this inconsistency
 is ...  well ...  inconsistent, but all right-thinking people know that
 (a) K&R are _right_ and (b) K&R are right.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompat: make gcc bswap an inline function
Jonathan Nieder [Wed, 16 Mar 2011 07:00:49 +0000 (02:00 -0500)]
compat: make gcc bswap an inline function

Without this change, gcc -pedantic warns:

 cache.h: In function 'ce_to_dtype':
 cache.h:270:21: warning: ISO C forbids braced-groups within expressions [-pedantic]

An inline function is more readable anyway.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoenums: omit trailing comma for portability
Jonathan Nieder [Wed, 16 Mar 2011 06:59:10 +0000 (01:59 -0500)]
enums: omit trailing comma for portability

Since v1.7.2-rc0~23^2~2 (Add per-repository eol normalization,
2010-05-19), building with gcc -std=gnu89 -pedantic produces warnings
like the following:

 convert.c:21:11: warning: comma at end of enumerator list [-pedantic]

gcc is right to complain --- these commas are not permitted in C89.
In the spirit of v1.7.2-rc0~32^2~16 (2010-05-14), remove them.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'nd/struct-pathspec'
Junio C Hamano [Wed, 16 Mar 2011 07:17:05 +0000 (00:17 -0700)]
Merge branch 'nd/struct-pathspec'

* nd/struct-pathspec:
  declare 1-bit bitfields to be unsigned

13 years agodeclare 1-bit bitfields to be unsigned
Jonathan Nieder [Wed, 16 Mar 2011 03:42:32 +0000 (22:42 -0500)]
declare 1-bit bitfields to be unsigned

As "gcc -pedantic" notices, a two's complement 1-bit signed integer
cannot represent the value '1'.

 dir.c: In function 'init_pathspec':
 dir.c:1291:4: warning: overflow in implicit constant conversion [-Woverflow]

In the spirit of v1.7.1-rc1~10 (2010-04-06), 'unsigned' is what was
intended, so let's make the flags unsigned.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.5
Junio C Hamano [Tue, 15 Mar 2011 22:17:54 +0000 (15:17 -0700)]
Update draft release notes to 1.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/strbuf-vaddf'
Junio C Hamano [Tue, 15 Mar 2011 21:23:04 +0000 (14:23 -0700)]
Merge branch 'jk/strbuf-vaddf'

* jk/strbuf-vaddf:
  compat: fall back on __va_copy if available
  strbuf: add strbuf_vaddf
  compat: provide a fallback va_copy definition

13 years agoMerge branch 'mm/push-default-advice'
Junio C Hamano [Tue, 15 Mar 2011 21:22:55 +0000 (14:22 -0700)]
Merge branch 'mm/push-default-advice'

* mm/push-default-advice:
  push: better error message when no remote configured
  push: better error messages when push.default = tracking

13 years agoMerge branch 'jn/maint-instaweb-plack-fix'
Junio C Hamano [Tue, 15 Mar 2011 21:22:37 +0000 (14:22 -0700)]
Merge branch 'jn/maint-instaweb-plack-fix'

* jn/maint-instaweb-plack-fix:
  git-instaweb: Change how gitweb.psgi is made runnable as standalone app

13 years agoMerge branch 'sp/maint-fd-limit'
Junio C Hamano [Tue, 15 Mar 2011 21:22:23 +0000 (14:22 -0700)]
Merge branch 'sp/maint-fd-limit'

* sp/maint-fd-limit:
  sha1_file.c: Don't retain open fds on small packs
  mingw: add minimum getrlimit() compatibility stub
  Limit file descriptors used by packs

13 years agoMerge branch 'jc/checkout-orphan-warning'
Junio C Hamano [Tue, 15 Mar 2011 21:22:16 +0000 (14:22 -0700)]
Merge branch 'jc/checkout-orphan-warning'

* jc/checkout-orphan-warning:
  commit: give final warning when reattaching HEAD to leave commits behind

13 years agoMerge branch 'jh/maint-do-not-track-non-branches'
Junio C Hamano [Tue, 15 Mar 2011 21:22:13 +0000 (14:22 -0700)]
Merge branch 'jh/maint-do-not-track-non-branches'

* jh/maint-do-not-track-non-branches:
  branch/checkout --track: Ensure that upstream branch is indeed a branch

13 years agoMerge branch 'fk/maint-cvsimport-early-failure'
Junio C Hamano [Tue, 15 Mar 2011 21:22:09 +0000 (14:22 -0700)]
Merge branch 'fk/maint-cvsimport-early-failure'

* fk/maint-cvsimport-early-failure:
  git-cvsimport.perl: Bail out right away when reading from the server fails

13 years agoMerge branch 'jc/maint-apply-report-offset'
Junio C Hamano [Tue, 15 Mar 2011 21:22:02 +0000 (14:22 -0700)]
Merge branch 'jc/maint-apply-report-offset'

* jc/maint-apply-report-offset:
  apply -v: show offset count when patch did not apply exactly

13 years agoMerge branch 'jc/maint-apply-no-double-patch'
Junio C Hamano [Tue, 15 Mar 2011 21:22:00 +0000 (14:22 -0700)]
Merge branch 'jc/maint-apply-no-double-patch'

* jc/maint-apply-no-double-patch:
  apply: do not patch lines that were already patched

13 years agoMerge branch 'mr/hpux'
Junio C Hamano [Tue, 15 Mar 2011 21:21:47 +0000 (14:21 -0700)]
Merge branch 'mr/hpux'

* mr/hpux:
  git-compat-util.h: Honor HP C's noreturn attribute
  Makefile: add NO_FNMATCH_CASEFOLD to HP-UX section

13 years agoDocumentation: running test with --debug keeps "trash" directory
Piotr Krukowiecki [Tue, 15 Mar 2011 19:58:14 +0000 (20:58 +0100)]
Documentation: running test with --debug keeps "trash" directory

Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/doc-credits' of git://github.com/peff/git
Junio C Hamano [Tue, 15 Mar 2011 20:32:09 +0000 (13:32 -0700)]
Merge branch 'jk/doc-credits' of git://github.com/peff/git

* 'jk/doc-credits' of git://github.com/peff/git:
  docs: point git.txt author credits to git-scm.com
  doc: add missing git footers
  doc: drop author/documentation sections from most pages

13 years agoMerge branch 'sp/maint-smart-http-sans-100-continue'
Junio C Hamano [Mon, 14 Mar 2011 18:59:10 +0000 (11:59 -0700)]
Merge branch 'sp/maint-smart-http-sans-100-continue'

* sp/maint-smart-http-sans-100-continue:
  smart-http: Really never use Expect: 100-continue

13 years agosmart-http: Really never use Expect: 100-continue
Shawn O. Pearce [Mon, 14 Mar 2011 18:28:17 +0000 (11:28 -0700)]
smart-http: Really never use Expect: 100-continue

libcurl may choose to try and use Expect: 100-continue for
any type of POST, not just a Transfer: chunked-encoding type.
Force it to disable this feature, as not all proxy servers support
100-continue and leaving it enabled can cause 1 second stalls during
the negotiation phase of fetch-pack/upload-pack.

In ("206b099d26 smart-http: Don't use Expect: 100-Continue") we
tried to disable this for only large POST bodies, but it should be
disabled for every POST body.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: "rebase <onto> <that>" stays on <that> branch upon exit
Drew Northup [Mon, 14 Mar 2011 15:47:37 +0000 (11:47 -0400)]
Documentation: "rebase <onto> <that>" stays on <that> branch upon exit

This change makes it clearer that the change to the history effected by
executing 'git rebase master' while on 'topic' branch, and by executing
'git rebase master topic' on any branch, will be the same; the implicit
checkout of the second form will remain after the rebase exits.

Signed-off-by: Drew Northup <drew.northup@maine.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoobject.h: Remove obsolete struct object_refs
Jakob Pfender [Mon, 14 Mar 2011 16:23:52 +0000 (17:23 +0100)]
object.h: Remove obsolete struct object_refs

7914053 (Remove unused object-ref code, 2008-02-25) removed all uses of
the structure from the code, but forgot to remove the type definition
itself.

Signed-off-by: Jakob Pfender <jpfender@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'pw/p4'
Junio C Hamano [Sun, 13 Mar 2011 08:10:06 +0000 (00:10 -0800)]
Merge branch 'pw/p4'

* pw/p4:
  git-p4: test clone @all
  git-p4: fix clone @all regression

13 years agogit-p4: test clone @all
Pete Wyckoff [Sat, 12 Mar 2011 16:24:49 +0000 (11:24 -0500)]
git-p4: test clone @all

Cloning a p4 depot by default generates a single commit.  The use
of the "@all" revision specifier instead tells git-p4 to import
all commits.  Check to make sure both these invocations work as
expected.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4: fix clone @all regression
Pete Wyckoff [Sat, 12 Mar 2011 16:23:23 +0000 (11:23 -0500)]
git-p4: fix clone @all regression

e32e00d (git-p4: better message for "git-p4 sync" when not cloned,
2011-02-19) broke the use of the "@all" revision specifier, e.g.,

    git-p4 clone //depot/xxx@all

Fix it as per Tor Arvid's quick patch.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Based-on-patch-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodocs: point git.txt author credits to git-scm.com
Jeff King [Sun, 13 Mar 2011 03:00:38 +0000 (22:00 -0500)]
docs: point git.txt author credits to git-scm.com

There is a nice shortlog-ish output of the authors there. We
also point people directly to shortlog, but of course they
might be reading the documentation online or from a binary
package of git.

13 years agodoc: add missing git footers
Jeff King [Fri, 11 Mar 2011 06:08:48 +0000 (01:08 -0500)]
doc: add missing git footers

Almost every page has a footer that links back to the main
git(1) page. Let's add it on the few that are missing it.

13 years agodoc: drop author/documentation sections from most pages
Jeff King [Fri, 11 Mar 2011 05:52:08 +0000 (00:52 -0500)]
doc: drop author/documentation sections from most pages

The point of these sections is generally to:

  1. Give credit where it is due.

  2. Give the reader an idea of where to ask questions or
     file bug reports.

But they don't do a good job of either case. For (1), they
are out of date and incomplete. A much more accurate answer
can be gotten through shortlog or blame.  For (2), the
correct contact point is generally git@vger, and even if you
wanted to cc the contact point, the out-of-date and
incomplete fields mean you're likely sending to somebody
useless.

So let's drop the fields entirely from all manpages except
git(1) itself. We already point people to the mailing list
for bug reports there, and we can update the Authors section
to give credit to the major contributors and point to
shortlog and blame for more information.

Each page has a "This is part of git" footer, so people can
follow that to the main git manpage.

13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 11 Mar 2011 06:45:49 +0000 (22:45 -0800)]
Merge branch 'maint'

* maint:
  Revert "core.abbrevguard: Ensure short object names stay unique a bit longer"

13 years agoRevert "core.abbrevguard: Ensure short object names stay unique a bit longer"
Junio C Hamano [Fri, 11 Mar 2011 06:41:14 +0000 (22:41 -0800)]
Revert "core.abbrevguard: Ensure short object names stay unique a bit longer"

This reverts commit 72a5b561fc1c4286bc7c5b0693afc076af261e1f, as adding
fixed number of hexdigits more than necessary to make one object name
locally unique does not help in futureproofing the uniqueness of names
we generate today.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoi18n: "make distclean" should clean up after "make pot"
Jonathan Nieder [Fri, 25 Feb 2011 07:22:12 +0000 (01:22 -0600)]
i18n: "make distclean" should clean up after "make pot"

This is in "make distclean" and not "make clean" to avoid needlessly
changing the POT-Creation-Date in the following scenario:

make clean; # cleaning up after an old build
git pull
make pot; # regenerate po template if necessary
msgmerge po/my_language.po po/git.pot

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoi18n: Makefile: "pot" target to extract messages marked for translation
Ævar Arnfjörð Bjarmason [Tue, 22 Feb 2011 23:41:23 +0000 (23:41 +0000)]
i18n: Makefile: "pot" target to extract messages marked for translation

Add rules to generate a template (po/git.pot) listing messages marked
for translation in the C portion of git.

To get started translating, just run "make pot".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoi18n: add stub Q_() wrapper for ngettext
Jonathan Nieder [Thu, 10 Mar 2011 03:17:58 +0000 (21:17 -0600)]
i18n: add stub Q_() wrapper for ngettext

The Q_ function translates a string representing some pharse with an
alternative plural form and uses the 'count' argument to choose which
form to return.  Use of Q_ solves the "%d noun(s)" problem in a way
that is portable to languages outside the Germanic and Romance
families.

In English, the semantics of Q_(sing, plur, count) are roughly
equivalent to

count == 1 ? _(sing) : _(plur)

while in other languages there can be more variants (count == 0; more
random-looking rules based on the historical pronunciation of the
number).  Behind the scenes, the singular form is used to look up a
family of translations and the plural form is ignored unless no
translation is available.

Define such a Q_ in gettext.h with the English semantics so C code can
start using it to mark phrases with a count for translation.

The name "Q_" is taken from subversion and stands for "quantity".
Many projects just use ngettext directly without a wrapper analogous
to _; we should not do so because git's gettext.h is meant not to
conflict with system headers that might include libintl.h.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate Release Notes to 1.7.5
Junio C Hamano [Thu, 10 Mar 2011 00:21:16 +0000 (16:21 -0800)]
Update Release Notes to 1.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'js/cherry-pick-usability'
Junio C Hamano [Wed, 9 Mar 2011 23:56:17 +0000 (15:56 -0800)]
Merge branch 'js/cherry-pick-usability'

* js/cherry-pick-usability:
  Teach commit about CHERRY_PICK_HEAD
  bash: teach __git_ps1 about CHERRY_PICK_HEAD
  Introduce CHERRY_PICK_HEAD
  t3507: introduce pristine-detach helper

13 years agoMerge branch 'js/checkout-untracked-symlink'
Junio C Hamano [Wed, 9 Mar 2011 23:54:04 +0000 (15:54 -0800)]
Merge branch 'js/checkout-untracked-symlink'

* js/checkout-untracked-symlink:
  do not overwrite untracked symlinks
  Demonstrate breakage: checkout overwrites untracked symlink with directory

13 years agoMerge branch 'so/submodule-no-update-first-time'
Junio C Hamano [Wed, 9 Mar 2011 23:53:32 +0000 (15:53 -0800)]
Merge branch 'so/submodule-no-update-first-time'

* so/submodule-no-update-first-time:
  t7406: "git submodule update {--merge|--rebase]" with new submodules
  submodule: no [--merge|--rebase] when newly cloned

13 years agogit-log.txt,rev-list-options.txt: put option blocks in proper order
Michael J Gruber [Tue, 8 Mar 2011 08:31:26 +0000 (09:31 +0100)]
git-log.txt,rev-list-options.txt: put option blocks in proper order

Match the order of the description to the one in which they get applied:

  commit limiting
  commit ordering
  commit formatting
  diff options

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agolog: fix --max-count when used together with -S or -G
Matthieu Moy [Wed, 9 Mar 2011 20:52:15 +0000 (21:52 +0100)]
log: fix --max-count when used together with -S or -G

The --max-count limit is implemented by counting revisions in
get_revision(), but the -S and -G take effect later when running diff.
Hence "--max-count=10 -Sfoo" meant "examine the 10 first revisions, and
out of them, show only those changing the occurences of foo", not "show 10
revisions changing the occurences of foo".

In case the commit isn't actually shown, cancel the decrement of
max_count.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 9 Mar 2011 22:20:39 +0000 (14:20 -0800)]
Merge branch 'maint'

* maint:
  Fix typo in t/README
  ls-remote documentation: <refs> argument is optional
  Add Author and Documentation sections to git-for-each-ref.txt
  Documentation: remove redundant colons in git-for-each-ref.txt

13 years agoFix typo in t/README
Mathias Lafeldt [Wed, 9 Mar 2011 20:25:09 +0000 (21:25 +0100)]
Fix typo in t/README

Signed-off-by: Mathias Lafeldt <misfire@debugon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agols-remote documentation: <refs> argument is optional
Piotr Krukowiecki [Wed, 9 Mar 2011 20:03:48 +0000 (21:03 +0100)]
ls-remote documentation: <refs> argument is optional

Correct SYNOPSIS section.

Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoAdd Author and Documentation sections to git-for-each-ref.txt
Alexei Sholik [Tue, 8 Mar 2011 13:16:10 +0000 (15:16 +0200)]
Add Author and Documentation sections to git-for-each-ref.txt

Signed-off-by: Alexei Sholik <alcosholik@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: remove redundant colons in git-for-each-ref.txt
Alexei Sholik [Tue, 8 Mar 2011 13:16:09 +0000 (15:16 +0200)]
Documentation: remove redundant colons in git-for-each-ref.txt

Signed-off-by: Alexei Sholik <alcosholik@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 9 Mar 2011 05:37:23 +0000 (21:37 -0800)]
Merge branch 'maint'

* maint:
  SubmittingPatches: clarify the expected commit log description
  diff format documentation: clarify --cc and -c
  rev-list-options.txt: typo fix

13 years agotransport-helper.c: fix check for (size_t < 0)
Nicolas Kaiser [Fri, 4 Mar 2011 23:16:26 +0000 (00:16 +0100)]
transport-helper.c: fix check for (size_t < 0)

'bytes' is of type size_t which is unsigned thus can't be negative.  But
the assigned write() returns ssize_t, and -1 on error.

For testing < 0, 'bytes' needs to be of a signed type.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSubmittingPatches: clarify the expected commit log description
Junio C Hamano [Wed, 9 Mar 2011 00:58:19 +0000 (16:58 -0800)]
SubmittingPatches: clarify the expected commit log description

Earlier, 47afed5 (SubmittingPatches: itemize and reflect upon well written
changes, 2009-04-28) added a discussion on the contents of the commit log
message, but the last part of the new paragraph didn't make much sense.
Reword it slightly to make it more readable.

Update the "quicklist" to clarify what we mean by "motivation" and
"contrast".  Also mildly discourage external references.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff format documentation: clarify --cc and -c
Adam Monsen [Tue, 8 Mar 2011 20:51:37 +0000 (12:51 -0800)]
diff format documentation: clarify --cc and -c

The description was unclear if -c or --cc was the default (--cc is for
some commands), and incorrectly implied that the default applies to
all the diff generating commands.

Most importantly, "log" does not default to "--cc" (it defaults to
"--no-merges") and "log -p" obeys the user's wish to see non-combined
format.  Only "diff" (during merge and three-blob comparison) and
"show" use --cc as the default.

Signed-off-by: Adam Monsen <haircut@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocommit, status: use status_printf{,_ln,_more} helpers
Jonathan Nieder [Sat, 26 Feb 2011 05:11:37 +0000 (23:11 -0600)]
commit, status: use status_printf{,_ln,_more} helpers

wt-status code is used to provide a reminder of changes included and
not included for the commit message template opened in the operator's
text editor by "git commit".  Therefore each line of its output begins
with the comment character "#":

# Please enter the commit message for your changes. Lines starting

Use the new status_printf{,_ln,_more} functions to take care of adding
"#" to the beginning of such status lines automatically.  Using these
will have two advantages over the current code:

 - The obvious one is to force separation of the "#" from the
   translatable part of the message when git learns to translate its
   output.

 - Another advantage is that this makes it easier for us to drop "#"
   prefix in "git status" output in later versions of git if we want
   to.

Explained-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocommit: refer to commit template as s->fp
Jonathan Nieder [Sat, 26 Feb 2011 05:10:49 +0000 (23:10 -0600)]
commit: refer to commit template as s->fp

Instead of maintaining a local variable for it, use s->fp to keep
track of where the commit message template should be written.

This prepares us to take advantage of the status_printf functions,
which use a struct wt_status instead of a FILE pointer to determine
where to send their output.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>