git.git
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 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>
13 years agowt-status: add helpers for printing wt-status lines
Jonathan Nieder [Sat, 26 Feb 2011 05:09:41 +0000 (23:09 -0600)]
wt-status: add helpers for printing wt-status lines

Introduce status_printf{,_ln,_more} wrapper functions around
color_vfprintf() which take care of adding "#" to the beginning of
status lines automatically.  The semantics:

 - status_printf() is just like color_fprintf() but it adds a "# "
   at the beginning of each line of output;

 - status_printf_ln() is a convenience function that additionally
   adds "\n" at the end;

 - status_printf_more() is a variant of status_printf() used to
   continue lines that have already started.  It suppresses the "#" at
   the beginning of the first line.

Helped-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 agotrace: give repo_setup trace its own key
Jeff King [Thu, 24 Feb 2011 14:30:30 +0000 (09:30 -0500)]
trace: give repo_setup trace its own key

You no longer get this output with GIT_TRACE=1; instead, you
can do GIT_TRACE_SETUP=1.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoadd packet tracing debug code
Jeff King [Thu, 24 Feb 2011 14:30:19 +0000 (09:30 -0500)]
add packet tracing debug code

This shows a trace of all packets coming in or out of a given
program. This can help with debugging object negotiation or
other protocol issues.

To keep the code changes simple, we operate at the lowest
level, meaning we don't necessarily understand what's in the
packets. The one exception is a packet starting with "PACK",
which causes us to skip that packet and turn off tracing
(since the gigantic pack data will not be interesting to
read, at least not in the trace format).

We show both written and read packets. In the local case,
this may mean you will see packets twice (written by the
sender and read by the receiver). However, for cases where
the other end is remote, this allows you to see the full
conversation.

Packet tracing can be enabled with GIT_TRACE_PACKET=<foo>,
where <foo> takes the same arguments as GIT_TRACE.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotrace: add trace_strbuf
Jeff King [Thu, 24 Feb 2011 14:29:50 +0000 (09:29 -0500)]
trace: add trace_strbuf

If you happen to have a strbuf, it is a little more readable
and a little more efficient to be able to print it directly
instead of jamming it through the trace_printf interface.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotrace: factor out "do we want to trace" logic
Jeff King [Thu, 24 Feb 2011 14:28:59 +0000 (09:28 -0500)]
trace: factor out "do we want to trace" logic

As we add more tracing areas, this will avoid repeated code.

Technically, trace_printf already checks this and will avoid
printing if the trace key is not set. However, callers may
want to find out early whether or not tracing is enabled so
they can avoid doing work in the common non-trace case.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotrace: refactor to support multiple env variables
Jeff King [Thu, 24 Feb 2011 14:28:41 +0000 (09:28 -0500)]
trace: refactor to support multiple env variables

Right now you turn all tracing off and on with GIT_TRACE. To
support new types of tracing without forcing the user to see
all of them, we will soon support turning each tracing area
on with GIT_TRACE_*.

This patch lays the groundwork by providing an interface
which does not assume GIT_TRACE. However, we still maintain
the trace_printf interface so that existing callers do not
need to be refactored.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotrace: add trace_vprintf
Jeff King [Thu, 24 Feb 2011 14:28:15 +0000 (09:28 -0500)]
trace: add trace_vprintf

This is a necessary cleanup to adding new types of trace
functions.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoi18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
Jonathan Nieder [Tue, 22 Feb 2011 23:41:22 +0000 (23:41 +0000)]
i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set

Tweak the GETTEXT_POISON facility so it is activated at run time
instead of compile time.  If the GIT_GETTEXT_POISON environment
variable is set, _(msg) will result in gibberish as before; but if the
GIT_GETTEXT_POISON variable is not set, it will return the message for
human-readable output.  So the behavior of mistranslated and
untranslated git can be compared without rebuilding git in between.

For simplicity we always set the GIT_GETTEXT_POISON variable in tests.

This does not affect builds without the GETTEXT_POISON compile-time
option set, so non-i18n git will not be slowed down.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoi18n: add GETTEXT_POISON to simulate unfriendly translator
Ævar Arnfjörð Bjarmason [Tue, 22 Feb 2011 23:41:21 +0000 (23:41 +0000)]
i18n: add GETTEXT_POISON to simulate unfriendly translator

Add a new GETTEXT_POISON compile-time parameter to make _(msg) always
return gibberish. So now you can run

make GETTEXT_POISON=YesPlease

to get a copy of git that functions correctly (one hopes) but produces
output that is in nobody's native language at all.

This is a debugging aid for people who are working on the i18n part of
the system, to make sure that they are not marking plumbing messages
that should never be translated with _().

As new strings get marked for translation, naturally a number of tests
will be broken in this mode. Tests that depend on output from
Porcelain will need to be marked with the new C_LOCALE_OUTPUT test
prerequisite. Newly failing tests that do not depend on output from
Porcelain would be bugs due to messages that should not have been
marked for translation.

Note that the string we're using ("# GETTEXT POISON #") intentionally
starts the pound sign. Some of Git's tests such as
t3404-rebase-interactive.sh rely on interactive editing with a fake
editor, and will needlessly break if the message doesn't start with
something the interactive editor considers a comment.

A future patch will fix fix the underlying cause of that issue by
adding "#" characters to the commit advice automatically.

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 no-op _() and N_() wrappers
Ævar Arnfjörð Bjarmason [Tue, 22 Feb 2011 23:41:20 +0000 (23:41 +0000)]
i18n: add no-op _() and N_() wrappers

The _ function is for translating strings into the user's chosen
language.  The N_ macro just marks translatable strings for the
xgettext(1) tool without translating them; it is intended for use in
contexts where a function call cannot be used.  So, for example:

fprintf(stderr, _("Expansion of alias '%s' failed; "
"'%s' is not a git command\n"),
cmd, argv[0]);

and

const char *unpack_plumbing_errors[NB_UNPACK_TREES_ERROR_TYPES] = {
/* ERROR_WOULD_OVERWRITE */
N_("Entry '%s' would be overwritten by merge. Cannot merge."),
[...]

Define such _ and N_ in a new gettext.h and include it in cache.h, so
they can be used everywhere.  Each just returns its argument for now.
_ is a function rather than a macro like N_ to avoid the temptation to
use _("foo") as a string literal (which would be a compile-time error
once _(s) expands to an expression for the translation of s).

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 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>
13 years agowt-status: add helpers for printing wt-status lines
Jonathan Nieder [Sat, 26 Feb 2011 05:09:41 +0000 (23:09 -0600)]
wt-status: add helpers for printing wt-status lines

Introduce status_printf{,_ln,_more} wrapper functions around
color_vfprintf() which take care of adding "#" to the beginning of
status lines automatically.  The semantics:

 - status_printf() is just like color_fprintf() but it adds a "# "
   at the beginning of each line of output;

 - status_printf_ln() is a convenience function that additionally
   adds "\n" at the end;

 - status_printf_more() is a variant of status_printf() used to
   continue lines that have already started.  It suppresses the "#" at
   the beginning of the first line.

Helped-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 agocompat: fall back on __va_copy if available
Jonathan Nieder [Tue, 8 Mar 2011 08:33:44 +0000 (02:33 -0600)]
compat: fall back on __va_copy if available

Since an obvious implementation of va_list is to make it a pointer
into the stack frame, implementing va_copy as "dst = src" will work on
many systems.  Platforms that use something different (e.g., a size-1
array of structs, to be assigned with *(dst) = *(src)) will need some
other compatibility macro, though.

Luckily, as the glibc manual hints, such systems tend to provide the
__va_copy macro (introduced in GCC in March, 1997).  By using that if
it is available, we can cover our bases pretty well.

Discovered by building with CC="gcc -std=c89" on an amd64 machine:

 $ make CC=c89 strbuf.o
 [...]
 strbuf.c: In function 'strbuf_vaddf':
 strbuf.c:211:2: error: incompatible types when assigning to type 'va_list'
  from type 'struct __va_list_tag *'
 make: *** [strbuf.o] Error 1

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 agogit-log.txt,rev-list-options.txt: -n/--max-count is commit limiting
Michael J Gruber [Tue, 8 Mar 2011 08:31:25 +0000 (09:31 +0100)]
git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting

They are applied after commit ordering and formatting options, in
particular --reverse.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>