git
12 years agoMerge branch 'rj/mingw-isguid'
Junio C Hamano [Mon, 23 Apr 2012 20:01:42 +0000 (13:01 -0700)] 
Merge branch 'rj/mingw-isguid'

By Ramsay Jones
* rj/mingw-isguid:
  compat/mingw.h: Set S_ISUID to prevent a fast-import test failure

12 years agoMerge branch 'jn/fast-import-doc'
Junio C Hamano [Mon, 23 Apr 2012 20:01:32 +0000 (13:01 -0700)] 
Merge branch 'jn/fast-import-doc'

By Jonathan Nieder
* jn/fast-import-doc:
  fast-import doc: cat-blob and ls responses need to be consumed quickly

12 years agoMerge branch 'jn/more-i18ncmp'
Junio C Hamano [Mon, 23 Apr 2012 20:01:28 +0000 (13:01 -0700)] 
Merge branch 'jn/more-i18ncmp'

By Jonathan Nieder
* jn/more-i18ncmp:
  test: am of empty patch should not succeed
  test: use test_i18ncmp for "Patch format detection failed" message
  test: do not rely on US English tracking-info messages

12 years agoMerge branch 'jl/maint-submodule-recurse-fetch'
Junio C Hamano [Mon, 23 Apr 2012 19:58:28 +0000 (12:58 -0700)] 
Merge branch 'jl/maint-submodule-recurse-fetch'

"git fetch" that recurses into submodules on demand did not check if
it needs to go into submodules when non branches (most notably, tags)
are fetched.

By Jens Lehmann
* jl/maint-submodule-recurse-fetch:
  submodules: recursive fetch also checks new tags for submodule commits

12 years agoMerge branch 'jc/maint-blame-minimal'
Junio C Hamano [Mon, 23 Apr 2012 19:58:22 +0000 (12:58 -0700)] 
Merge branch 'jc/maint-blame-minimal'

"git blame" started missing quite a few changes from the origin since we
stopped using the diff minimalization by default in v1.7.2 era.

* jc/maint-blame-minimal:
  blame: accept --need-minimal

12 years agoMerge branch 'lp/maint-diff-three-dash-with-graph'
Junio C Hamano [Mon, 23 Apr 2012 19:57:20 +0000 (12:57 -0700)] 
Merge branch 'lp/maint-diff-three-dash-with-graph'

"log -p --graph" used with "--stat" had a few formatting error.

By Lucian Poston
* lp/maint-diff-three-dash-with-graph:
  t4202: add test for "log --graph --stat -p" separator lines
  log --graph: fix break in graph lines
  log --graph --stat: three-dash separator should come after graph lines

12 years agoMerge branch 'rs/commit-list-sort-in-batch'
Junio C Hamano [Mon, 23 Apr 2012 19:52:54 +0000 (12:52 -0700)] 
Merge branch 'rs/commit-list-sort-in-batch'

Setting up a revision traversal with many starting points was inefficient
as these were placed in a date-order priority queue one-by-one.

By René Scharfe (3) and Junio C Hamano (1)
* rs/commit-list-sort-in-batch:
  mergesort: rename it to llist_mergesort()
  revision: insert unsorted, then sort in prepare_revision_walk()
  commit: use mergesort() in commit_list_sort_by_date()
  add mergesort() for linked lists

12 years agoMerge branch 'jh/apply-free-patch'
Junio C Hamano [Mon, 23 Apr 2012 19:52:18 +0000 (12:52 -0700)] 
Merge branch 'jh/apply-free-patch'

Valgrind reports quite a lot of discarded memory inside apply.
Fix them, audit and document the buffer ownership rules.

By Junio C Hamano (8) and Jared Hance (1)
* jh/apply-free-patch:
  apply: document buffer ownership rules across functions
  apply: tighten constness of line buffer
  apply: drop unused macro
  apply: free unused fragments for submodule patch
  apply: free patch->result
  apply: release memory for fn_table
  apply: free patch->{def,old,new}_name fields
  apply: rename free_patch() to free_patch_list()
  apply: do not leak patches and fragments

12 years agoMerge branch 'sl/test-wc-l-line-count'
Junio C Hamano [Mon, 23 Apr 2012 19:43:10 +0000 (12:43 -0700)] 
Merge branch 'sl/test-wc-l-line-count'

By Stefano Lattarini
* sl/test-wc-l-line-count:
  tests: modernise style: more uses of test_line_count

12 years agoMerge branch 'jn/debian-customizes-default-editor'
Junio C Hamano [Mon, 23 Apr 2012 19:41:15 +0000 (12:41 -0700)] 
Merge branch 'jn/debian-customizes-default-editor'

Make it easier for distros to document custom pager and editor they
used when building their binary releases in "git var" documentation.

By Jonathan Nieder
* jn/debian-customizes-default-editor:
  var doc: advertise current DEFAULT_PAGER and DEFAULT_EDITOR settings
  var doc: default editor and pager are configurable at build time

12 years agoMerge branch 'rl/show-empty-prefix'
Junio C Hamano [Mon, 23 Apr 2012 19:40:08 +0000 (12:40 -0700)] 
Merge branch 'rl/show-empty-prefix'

"git rev-parse --show-prefix" emitted nothing when run at the
top-level of the working tree, while "git rev-parse --show-cdup" gave
an empty line.  Make them consistent.

By Ross Lagerwall
* rl/show-empty-prefix:
  rev-parse --show-prefix: add in trailing newline

12 years agoMerge branch 'pw/git-p4'
Junio C Hamano [Mon, 23 Apr 2012 19:40:02 +0000 (12:40 -0700)] 
Merge branch 'pw/git-p4'

By Pete Wyckoff
* pw/git-p4:
  git p4: use "git p4" directly in tests
  git p4: update name in script
  git-p4: move to toplevel

12 years agoMerge branch 'ms/remote-usage-string'
Junio C Hamano [Mon, 23 Apr 2012 19:39:17 +0000 (12:39 -0700)] 
Merge branch 'ms/remote-usage-string'

Adds some subcommands that were not listed in "git remote --help"
usage strings.

As an independent follow-up, we may want to rethink how the overall
usage string and subcommand usage strings are maintained.

By Michael Schubert
* ms/remote-usage-string:
  remote: update builtin usage

12 years agoMerge branch 'jk/rebase-i-submodule-conflict-only'
Junio C Hamano [Mon, 23 Apr 2012 19:39:04 +0000 (12:39 -0700)] 
Merge branch 'jk/rebase-i-submodule-conflict-only'

Giving "--continue" to a conflicted "rebase -i" session skipped a commit
that only results in changes to submodules.

By John Keeping
* jk/rebase-i-submodule-conflict-only:
  rebase -i continue: don't skip commits that only change submodules

12 years agoRelNotes: the third batch
Junio C Hamano [Fri, 20 Apr 2012 22:58:40 +0000 (15:58 -0700)] 
RelNotes: the third batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'js/spawn-via-shell-path-fix'
Junio C Hamano [Fri, 20 Apr 2012 22:51:18 +0000 (15:51 -0700)] 
Merge branch 'js/spawn-via-shell-path-fix'

Mops up an unfortunate fallout from bw/spawn-via-shell-path topic.

By Johannes Sixt
* js/spawn-via-shell-path-fix:
  Do not use SHELL_PATH from build system in prepare_shell_cmd on Windows

12 years agoMerge branch 'ct/advise-push-default'
Junio C Hamano [Fri, 20 Apr 2012 22:50:37 +0000 (15:50 -0700)] 
Merge branch 'ct/advise-push-default'

Break down the cases in which "git push" fails due to non-ff into
three categories, and give separate advise messages for each case.

By Christopher Tiwald (2) and Jeff King (1)
* ct/advise-push-default:
  Fix httpd tests that broke when non-ff push advice changed
  clean up struct ref's nonfastforward field
  push: Provide situational hints for non-fast-forward errors

12 years agoMerge branch 'bw/submodule-sed-solaris'
Junio C Hamano [Fri, 20 Apr 2012 22:50:13 +0000 (15:50 -0700)] 
Merge branch 'bw/submodule-sed-solaris'

By Ben Walton
* bw/submodule-sed-solaris:
  Avoid bug in Solaris xpg4/sed as used in submodule

12 years agoMerge branch 'jk/run-command-eacces'
Junio C Hamano [Fri, 20 Apr 2012 22:50:03 +0000 (15:50 -0700)] 
Merge branch 'jk/run-command-eacces'

When PATH contains an unreadable directory, alias expansion code did not
kick in, and failed with an error that said "git-subcmd" was not found.

By Jeff King (1) and Ramsay Jones (1)
* jk/run-command-eacces:
  run-command: treat inaccessible directories as ENOENT
  compat/mingw.[ch]: Change return type of exec functions to int

12 years agoMerge branch 'jc/push-upstream-sanity'
Junio C Hamano [Fri, 20 Apr 2012 22:49:51 +0000 (15:49 -0700)] 
Merge branch 'jc/push-upstream-sanity'

Fix broken 'push to upstream' implementation.  "git push $there" without
refspec, when the current branch is set to push to a remote different from
$there, used to push to $there using the upstream information to a remote
unreleated to $there.

* jc/push-upstream-sanity:
  push: error out when the "upstream" semantics does not make sense

12 years agoMerge branch 'jc/am-report-3way'
Junio C Hamano [Fri, 20 Apr 2012 22:49:37 +0000 (15:49 -0700)] 
Merge branch 'jc/am-report-3way'

When "git am -3" needs to fall back to an application to a synthesized
preimage followed by a 3-way merge, the paths that needed such treatment
are now reported to the end user, so that the result in them can be
eyeballed with extra care.

* jc/am-report-3way:
  am -3: list the paths that needed 3-way fallback

12 years agoMerge branch 'jb/am-include'
Junio C Hamano [Fri, 20 Apr 2012 22:49:15 +0000 (15:49 -0700)] 
Merge branch 'jb/am-include'

"git am" learned the "--include" option, which is an opposite of existing
the "--exclude" option.

By Johannes Berg
* jb/am-include:
  am: support --include option

12 years agoMerge branch 'jc/fmt-merge-msg-people'
Junio C Hamano [Fri, 20 Apr 2012 22:48:33 +0000 (15:48 -0700)] 
Merge branch 'jc/fmt-merge-msg-people'

The "fmt-merge-msg" command learns to list the primary contributors
involved in the side topic you are merging.

* jc/fmt-merge-msg-people:
  fmt-merge-msg: show those involved in a merged series

12 years agocompat/mingw.h: Set S_ISUID to prevent a fast-import test failure
Ramsay Jones [Tue, 17 Apr 2012 18:00:04 +0000 (19:00 +0100)] 
compat/mingw.h: Set S_ISUID to prevent a fast-import test failure

The current t9300-fast-import.sh test number 62 ("L: nested tree
copy does not corrupt deltas") was introduced in commit 9a0edb79
("fast-import: add a test for tree delta base corruption",
15-08-2011). A fix for the demonstrated problem was introduced
by commit 8fb3ad76 ("fast-import: prevent producing bad delta",
15-08-2011). However, this fix didn't work on MinGW and so this
test has always failed on MinGW.

Part of the solution in commit 8fb3ad76 was to add an NO_DELTA
preprocessor constant which was defined as follows:

  +/*
  + * We abuse the setuid bit on directories to mean "do not delta".
  + */
  +#define NO_DELTA S_ISUID
  +

Unfortunately, the S_ISUID constant on MinGW is defined as zero.

In order to fix the problem, we simply alter the definition of
S_ISUID in the mingw header file to a more appropriate value.
Also, we take the opportunity to similarly define S_ISGID and
S_ISVTX.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agomergesort: rename it to llist_mergesort()
Junio C Hamano [Tue, 17 Apr 2012 18:07:01 +0000 (11:07 -0700)] 
mergesort: rename it to llist_mergesort()

Even though the function is generic enough, <anything>sort() inherits
connotations from the standard function qsort() that sorts an array.
Rename it to llist_mergesort() and describe the external interface in
its header file.

This incidentally avoids name clashes with mergesort() some platforms
declare in, and contaminate user namespace with, their <stdlib.h>.

Reported-by: Brian Gernhardt
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDo not use SHELL_PATH from build system in prepare_shell_cmd on Windows
Johannes Sixt [Tue, 17 Apr 2012 07:03:21 +0000 (09:03 +0200)] 
Do not use SHELL_PATH from build system in prepare_shell_cmd on Windows

The recent change to use SHELL_PATH instead of "sh" to spawn shell commands
is not suited for Windows:

- The default setting, "/bin/sh", does not work when git has to run the
  shell because it is a POSIX style path, but not a proper Windows style
  path.

- If it worked, it would hard-code a position in the files system where
  the shell is expected, making git (more precisely, the POSIX toolset that
  is needed alongside git) non-relocatable. But we cannot sacrifice
  relocatability on Windows.

- Apart from that, even though the Makefile leaves SHELL_PATH set to
  "/bin/sh" for the Windows builds, the build system passes a mangled path
  to the compiler, and something like "D:/Src/msysgit/bin/sh" is used,
  which is doubly bad because it points to where /bin/sh resolves to on
  the system where git was built.

- Finally, the system's CreateProcess() function that is used under
  mingw.c's hood does not work with forward slashes and cannot find the
  shell.

Undo the earlier change on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoRelNotes: the second batch of topics graduated to 'master'
Junio C Hamano [Mon, 16 Apr 2012 19:55:11 +0000 (12:55 -0700)] 
RelNotes: the second batch of topics graduated to 'master'

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/add-p-skip-conflicts'
Junio C Hamano [Mon, 16 Apr 2012 19:43:36 +0000 (12:43 -0700)] 
Merge branch 'jk/add-p-skip-conflicts'

Excludes conflicted paths from "add -p" processing, as it is not prepared
to handle them.

By Jeff King
* jk/add-p-skip-conflicts:
  add--interactive: ignore unmerged entries in patch mode

12 years agoMerge branch 'jc/commit-unedited-template'
Junio C Hamano [Mon, 16 Apr 2012 19:43:07 +0000 (12:43 -0700)] 
Merge branch 'jc/commit-unedited-template'

When "git commit --template F" errors out because the user did not touch
the message, it claimed that it aborts due to "empty message", which was
utterly wrong.

By Junio C Hamano (4) and Adam Monsen (1)
* jc/commit-unedited-template:
  Documentation/git-commit: rephrase the "initial-ness" of templates
  git-commit.txt: clarify -t requires editing message
  commit: rephrase the error when user did not touch templated log message
  commit: do not trigger bogus "has templated message edited" check
  t7501: test the right kind of breakage

12 years agoMerge branch 'bw/spawn-via-shell-path'
Junio C Hamano [Mon, 16 Apr 2012 19:42:54 +0000 (12:42 -0700)] 
Merge branch 'bw/spawn-via-shell-path'

"sh" on the user's PATH may be utterly broken on some systems;
consistently use SHELL_PATH even from inside run-command API.

By Ben Walton
* bw/spawn-via-shell-path:
  Use SHELL_PATH from build system in run_command.c:prepare_shell_cmd

12 years agoMerge branch 'wk/gitweb-snapshot-use-if-modified-since'
Junio C Hamano [Mon, 16 Apr 2012 19:42:48 +0000 (12:42 -0700)] 
Merge branch 'wk/gitweb-snapshot-use-if-modified-since'

Makes 'snapshot' request to "gitweb" honor If-Modified-Since: header,
based on the commit date.

By W. Trevor King
* wk/gitweb-snapshot-use-if-modified-since:
  gitweb: add If-Modified-Since handling to git_snapshot().
  gitweb: refactor If-Modified-Since handling
  gitweb: add `status` headers to git_feed() responses.

12 years agoMerge branch 'jk/http-backend-keep-committer-ident-env'
Junio C Hamano [Mon, 16 Apr 2012 19:42:40 +0000 (12:42 -0700)] 
Merge branch 'jk/http-backend-keep-committer-ident-env'

The smart-http backend used to always override GIT_COMMITTER_* variables
with REMOTE_USER and REMOTE_ADDR.

By Jeff King
* jk/http-backend-keep-committer-ident-env:
  http-backend: respect existing GIT_COMMITTER_* variables

12 years agoMerge branch 'sl/autoconf'
Junio C Hamano [Mon, 16 Apr 2012 19:42:29 +0000 (12:42 -0700)] 
Merge branch 'sl/autoconf'

Updates our configure.ac to follow a better "autoconf" style.

By Stefano Lattarini
* sl/autoconf:
  configure: be more idiomatic
  configure: avoid some code repetitions thanks to m4_{push,pop}def
  configure: move definitions of private m4 macros before AC_INIT invocation

12 years agoMerge branch 'jk/branch-quiet'
Junio C Hamano [Mon, 16 Apr 2012 19:42:22 +0000 (12:42 -0700)] 
Merge branch 'jk/branch-quiet'

Even with "-q"uiet option, "checkout" used to report setting up tracking.
Also "branch" learns "-q"uiet option to squelch informational message.

By Jeff King
* jk/branch-quiet:
  teach "git branch" a --quiet option
  checkout: suppress tracking message with "-q"

12 years agoMerge branch 'rs/combine-diff-zero-context-at-the-beginning'
Junio C Hamano [Mon, 16 Apr 2012 19:41:59 +0000 (12:41 -0700)] 
Merge branch 'rs/combine-diff-zero-context-at-the-beginning'

Fixes an age old corner case bug in combine diff (only triggered with -U0
and the hunk at the beginning of the file needs to be shown).

By René Scharfe
* rs/combine-diff-zero-context-at-the-beginning:
  combine-diff: fix loop index underflow

12 years agoMerge branch 'jk/diff-no-rename-empty'
Junio C Hamano [Mon, 16 Apr 2012 19:41:49 +0000 (12:41 -0700)] 
Merge branch 'jk/diff-no-rename-empty'

Forbids rename detection logic from matching two empty files as renames
during merge-recursive to prevent mismerges.

By Jeff King
* jk/diff-no-rename-empty:
  merge-recursive: don't detect renames of empty files
  teach diffcore-rename to optionally ignore empty content
  make is_empty_blob_sha1 available everywhere
  drop casts from users EMPTY_TREE_SHA1_BIN

12 years agoMerge branch 'jc/maint-clean-nested-worktree-in-subdir'
Junio C Hamano [Mon, 16 Apr 2012 19:40:22 +0000 (12:40 -0700)] 
Merge branch 'jc/maint-clean-nested-worktree-in-subdir'

"git clean -d -f" (not "-d -f -f") is supposed to protect nested working
trees of independent git repositories that exist in the current project
working tree from getting removed, but the protection applied only to such
working trees that are at the top-level of the current project by mistake.

* jc/maint-clean-nested-worktree-in-subdir:
  clean: preserve nested git worktree in subdirectories

12 years agoMerge branch 'rs/unpack-trees-leakfix'
Junio C Hamano [Mon, 16 Apr 2012 19:39:58 +0000 (12:39 -0700)] 
Merge branch 'rs/unpack-trees-leakfix'

By René Scharfe
* rs/unpack-trees-leakfix:
  unpack-trees: plug minor memory leak
  unpack-trees: don't perform any index operation if we're not merging

12 years agoMerge branch 'nl/rebase-i-cheat-sheet'
Junio C Hamano [Mon, 16 Apr 2012 19:39:41 +0000 (12:39 -0700)] 
Merge branch 'nl/rebase-i-cheat-sheet'

* nl/rebase-i-cheat-sheet:
  rebase -i: remind that the lines are top-to-bottom

12 years agoRelNotes: the first batch of topics graduated to 'master'
Junio C Hamano [Mon, 16 Apr 2012 05:59:31 +0000 (22:59 -0700)] 
RelNotes: the first batch of topics graduated to 'master'

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'da/difftool-test'
Junio C Hamano [Mon, 16 Apr 2012 05:52:04 +0000 (22:52 -0700)] 
Merge branch 'da/difftool-test'

Makes sure "difftool" options can be given in any order.

By David Aguilar
* da/difftool-test:
  t7800: Test difftool passing arguments to diff

12 years agoMerge branch 'zj/test-cred-helper-nicer-prove'
Junio C Hamano [Mon, 16 Apr 2012 05:51:56 +0000 (22:51 -0700)] 
Merge branch 'zj/test-cred-helper-nicer-prove'

Minor improvement to t0303.

By Zbigniew Jędrzejewski-Szmek
* zj/test-cred-helper-nicer-prove:
  t0303: resurrect commit message as test documentation
  t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER

12 years agoMerge branch 'jh/notes-merge-in-git-dir-worktree'
Junio C Hamano [Mon, 16 Apr 2012 05:51:44 +0000 (22:51 -0700)] 
Merge branch 'jh/notes-merge-in-git-dir-worktree'

Running "notes merge --commit" failed to perform correctly when run
from any directory inside $GIT_DIR/.  When "notes merge" stops with
conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
to resolve it.

By Johan Herland (3) and Junio C Hamano (1)
* jh/notes-merge-in-git-dir-worktree:
  notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd
  notes-merge: use opendir/readdir instead of using read_directory()
  t3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/
  remove_dir_recursively(): Add flag for skipping removal of toplevel dir

12 years agoMerge branch 'tr/maint-word-diff-regex-sticky'
Junio C Hamano [Mon, 16 Apr 2012 05:51:34 +0000 (22:51 -0700)] 
Merge branch 'tr/maint-word-diff-regex-sticky'

The regexp configured with wordregex was incorrectly reused across files.

By Thomas Rast (2) and Johannes Sixt (1)
* tr/maint-word-diff-regex-sticky:
  diff: tweak a _copy_ of diff_options with word-diff
  diff: refactor the word-diff setup from builtin_diff_cmd
  t4034: diff.*.wordregex should not be "sticky" in --word-diff

12 years agoMerge branch 'jn/diffstat-tests'
Junio C Hamano [Mon, 16 Apr 2012 05:51:24 +0000 (22:51 -0700)] 
Merge branch 'jn/diffstat-tests'

Some tests checked the "diff --stat" output when they do not have to,
which unnecessarily made things harder to verify under GETTEXT_POISON.

By Jonathan Nieder
* jn/diffstat-tests:
  diffstat summary line varies by locale: miscellany
  test: use numstat instead of diffstat in binary-diff test
  test: use --numstat instead of --stat in "git stash show" tests
  test: test cherry-pick functionality and output separately
  test: modernize funny-names test style
  test: use numstat instead of diffstat in funny-names test
  test: use test_i18ncmp when checking --stat output

12 years agoMerge branch 'jc/diff-algo-cleanup'
Junio C Hamano [Mon, 16 Apr 2012 05:51:14 +0000 (22:51 -0700)] 
Merge branch 'jc/diff-algo-cleanup'

Resurrects the preparatory clean-up patches from another topic that was
discarded, as this would give a saner foundation to build on diff.algo
configuration option series.

* jc/diff-algo-cleanup:
  xdiff: PATIENCE/HISTOGRAM are not independent option bits
  xdiff: remove XDL_PATCH_* macros

12 years agoMerge branch 'jc/commit-hook-authorship'
Junio C Hamano [Mon, 16 Apr 2012 05:51:01 +0000 (22:51 -0700)] 
Merge branch 'jc/commit-hook-authorship'

"git commit --author=$name" did not tell the name that was being recorded
in the resulting commit to hooks, even though it does do so when the end
user overrode the authorship via the "GIT_AUTHOR_NAME" environment
variable.

* jc/commit-hook-authorship:
  commit: pass author/committer info to hooks
  t7503: does pre-commit-hook learn authorship?
  ident.c: add split_ident_line() to parse formatted ident line

12 years agoMerge branch 'nd/stream-more'
Junio C Hamano [Mon, 16 Apr 2012 05:50:38 +0000 (22:50 -0700)] 
Merge branch 'nd/stream-more'

Use API to read blob data in smaller chunks in more places to reduce the
memory footprint.

By Nguyễn Thái Ngọc Duy (6) and Junio C Hamano (1)
* nd/stream-more:
  update-server-info: respect core.bigfilethreshold
  fsck: use streaming API for writing lost-found blobs
  show: use streaming API for showing blobs
  parse_object: avoid putting whole blob in core
  cat-file: use streaming API to print blobs
  Add more large blob test cases
  streaming: make streaming-write-entry to be more reusable

12 years agomerge overwrites unstaged changes in renamed file
Clemens Buchacher [Sat, 14 Apr 2012 23:15:17 +0000 (01:15 +0200)] 
merge overwrites unstaged changes in renamed file

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agofast-import doc: cat-blob and ls responses need to be consumed quickly
Jonathan Nieder [Wed, 11 Apr 2012 21:25:01 +0000 (16:25 -0500)] 
fast-import doc: cat-blob and ls responses need to be consumed quickly

If fast-import's command pipe and the frontend's cat-blob/ls response
pipe are both filled, there can be a deadlock.  Luckily all existing
frontends consume any pending cat-blob/ls responses completely before
writing the next command.

Document the requirements so future frontend authors and users can be
spared from the problem, too.  It is not always easy to catch that
kind of bug by testing.

To set the scene, add some words of explanation to help the novice
understand that "cat-blob" and "ls" output are meant for consumption
by the frontend.

Reported-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agosubmodules: recursive fetch also checks new tags for submodule commits
Jens Lehmann [Fri, 13 Apr 2012 16:25:16 +0000 (18:25 +0200)] 
submodules: recursive fetch also checks new tags for submodule commits

Since 88a21979c (fetch/pull: recurse into submodules when necessary) all
fetched commits are examined if they contain submodule changes (unless
configuration or command line options inhibit that). If a newly recorded
submodule commit is not present in the submodule, a fetch is run inside
it to download that commit.

Checking new refs was done in an else branch where it wasn't executed for
tags. This normally isn't a problem because tags are only fetched with
the branches they live on, then checking the new commits in the fetched
branches for submodule commits will also process all tags. But when a
specific tag is fetched (or the refspec contains refs/tags/) commits only
reachable by tags won't be searched for submodule commits, which is a bug.

Fix that by moving the code outside the if/else construct to handle new
tags just like any other ref. The performance impact of adding tags that
most of the time lie on a branch which is checked anyway for new submodule
commit should be minimal, as since 6859de4 (fetch: avoid quadratic loop
checking for updated submodules) all ref-tips are collected first and then
fed to a single rev-list.

Spotted-by: Jeff King <peff@peff.net>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: am of empty patch should not succeed
Jonathan Nieder [Sat, 14 Apr 2012 04:48:13 +0000 (23:48 -0500)] 
test: am of empty patch should not succeed

The "git am empty" test uses the construct

git am empty-file && false || :

which unconditionally returns true.  Use test_must_fail instead, which
also has the benefit of noticing if "git am" has segfaulted.

While at it, tighten the test to check that the diagnostic appears on
stderr and not stdout.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: use test_i18ncmp for "Patch format detection failed" message
Jonathan Nieder [Sat, 14 Apr 2012 04:46:18 +0000 (23:46 -0500)] 
test: use test_i18ncmp for "Patch format detection failed" message

v1.7.8.5~2 (am: don't infloop for an empty input file, 2012-02-25)
added a check for the human-readable message "Patch format detection
failed." but we forgot to suppress that check when running tests with
git configured to write output in another language.

Noticed by running tests with GETTEXT_POISON=YesPlease.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: do not rely on US English tracking-info messages
Jonathan Nieder [Sat, 14 Apr 2012 04:45:31 +0000 (23:45 -0500)] 
test: do not rely on US English tracking-info messages

When v1.7.9.2~28^2 (2012-02-02) marked "Your branch is behind" and
friends for translation, it forgot to adjust tests not to check those
messages when tests are being run with git configured to write its
output in another language.

With this patch applied, t2020 and t6040 pass again with
GETTEXT_POISON=YesPlease.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Explained-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFix httpd tests that broke when non-ff push advice changed
Christopher Tiwald [Thu, 12 Apr 2012 17:56:28 +0000 (13:56 -0400)] 
Fix httpd tests that broke when non-ff push advice changed

Signed-off-by: Christopher Tiwald <christiwald@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: document buffer ownership rules across functions
Junio C Hamano [Wed, 11 Apr 2012 21:43:48 +0000 (14:43 -0700)] 
apply: document buffer ownership rules across functions

In general, the private functions in this file were not very
much documented; even though what each of them do is reasonably
self explanatory, the ownership rules for various buffers and
data structures were not very obvious.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: tighten constness of line buffer
Junio C Hamano [Wed, 11 Apr 2012 21:41:42 +0000 (14:41 -0700)] 
apply: tighten constness of line buffer

These point into a single line in the patch text we read from
the input, and they are not used to modify it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: drop unused macro
Junio C Hamano [Wed, 11 Apr 2012 21:38:31 +0000 (14:38 -0700)] 
apply: drop unused macro

CHUNKSIZE is no longer used.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoblame: accept --need-minimal
Junio C Hamano [Wed, 11 Apr 2012 20:08:08 +0000 (13:08 -0700)] 
blame: accept --need-minimal

Between v1.7.1 and v1.7.2, 582aa00bdffb switched the default "diff"
invocation not to use XDF_NEED_MINIMAL, but this breaks "git blame"
rather badly.

Allow the command line option to ask for an extra careful matching.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoKick off post 1.7.10 cycle
Junio C Hamano [Wed, 11 Apr 2012 19:17:17 +0000 (12:17 -0700)] 
Kick off post 1.7.10 cycle

I tentatively named the release notes "1.7.11" but this may have to
be renamed to "1.8" or some other name later.  Let's see how well
we would do during this cycle.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogitweb: Fix unintended "--no-merges" for regular Atom feed
Sebastian Pipping [Wed, 4 Apr 2012 12:25:44 +0000 (14:25 +0200)] 
gitweb: Fix unintended "--no-merges" for regular Atom feed

The print_feed_meta() subroutine generates links for feeds with and
without merges, in RSS and Atom formats.  However because %href_params
was not properly reset, it generated links with "--no-merges" for all
except the very first link.

Before:
<link rel="alternate" title="[..] - Atom feed" href="/?p=.git;a=atom;opt=--no-merges" type="application/atom+xml" />
<link rel="alternate" title="[..] - Atom feed (no merges)" href="/?p=.git;a=atom;opt=--no-merges" type="application/atom+xml" />

After:
<link rel="alternate" title="[..] - Atom feed" href="/?p=.git;a=atom" type="application/atom+xml" />
<link rel="alternate" title="[..] - Atom feed (no merges)" href="/?p=.git;a=atom;opt=--no-merges" type="application/atom+xml" />

Signed-off-by: Sebastian Pipping <sebastian@pipping.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotests: modernise style: more uses of test_line_count
Stefano Lattarini [Wed, 11 Apr 2012 11:24:01 +0000 (13:24 +0200)] 
tests: modernise style: more uses of test_line_count

Prefer:

  test_line_count <OP> COUNT FILE

over:

  test $(wc -l <FILE) <OP> COUNT

(or similar usages) in several tests.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorevision: insert unsorted, then sort in prepare_revision_walk()
René Scharfe [Sat, 31 Mar 2012 22:11:01 +0000 (00:11 +0200)] 
revision: insert unsorted, then sort in prepare_revision_walk()

Speed up prepare_revision_walk() by adding commits without sorting
to the commit_list and at the end sort the list in one go.  Thanks
to mergesort() working behind the scenes, this is a lot faster for
large numbers of commits than the current insert sort.

Also introduce and use commit_list_reverse(), to keep the ordering
of commits sharing the same commit date unchanged.  That's because
commit_list_insert_by_date() sorts commits with descending date,
but adds later entries with the same date entries last, while
commit_list_insert() always inserts entries at the top.  The
following commit_list_sort_by_date() keeps the order of entries
sharing the same date.

Jeff's test case, in a repo with lots of refs, was to run:

  # make a new commit on top of HEAD, but not yet referenced
  sha1=`git commit-tree HEAD^{tree} -p HEAD </dev/null`

  # now do the same "connected" test that receive-pack would do
  git rev-list --objects $sha1 --not --all

With a git.git with a ref for each revision, master needs (best of
five):

real 0m2.210s
user 0m2.188s
sys 0m0.016s

And with this patch:

real 0m0.480s
user 0m0.456s
sys 0m0.020s

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocommit: use mergesort() in commit_list_sort_by_date()
René Scharfe [Sat, 31 Mar 2012 22:10:39 +0000 (00:10 +0200)] 
commit: use mergesort() in commit_list_sort_by_date()

Replace the insertion sort in commit_list_sort_by_date() with a
call to the generic mergesort function.  This sets the stage for
using commit_list_sort_by_date() for larger lists, as shown in
the next patch.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoadd mergesort() for linked lists
René Scharfe [Sat, 31 Mar 2012 22:10:11 +0000 (00:10 +0200)] 
add mergesort() for linked lists

This adds a generic bottom-up mergesort implementation for singly linked
lists.  It was inspired by Simon Tatham's webpage on the topic[1], but
not so much by his implementation -- for no good reason, really, just a
case of NIH.

[1] http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agounpack-trees: plug minor memory leak
René Scharfe [Tue, 6 Mar 2012 19:37:23 +0000 (20:37 +0100)] 
unpack-trees: plug minor memory leak

The allocations made by unpack_nondirectories() using create_ce_entry()
are never freed.

In the non-merge case, we duplicate them using add_entry() and later
only look at the first allocated element (src[0]), perhaps even only
by mistake.  Split out the actual addition from add_entry() into the
new helper do_add_entry() and call this non-duplicating function
instead of add_entry() to avoid the leak.

Valgrind reports this for the command "git archive v1.7.9" without
the patch:

  ==13372== LEAK SUMMARY:
  ==13372==    definitely lost: 230,986 bytes in 2,325 blocks
  ==13372==    indirectly lost: 0 bytes in 0 blocks
  ==13372==      possibly lost: 98 bytes in 1 blocks
  ==13372==    still reachable: 2,259,198 bytes in 3,243 blocks
  ==13372==         suppressed: 0 bytes in 0 blocks

And with the patch applied:

  ==13375== LEAK SUMMARY:
  ==13375==    definitely lost: 65 bytes in 1 blocks
  ==13375==    indirectly lost: 0 bytes in 0 blocks
  ==13375==      possibly lost: 0 bytes in 0 blocks
  ==13375==    still reachable: 2,364,417 bytes in 3,245 blocks
  ==13375==         suppressed: 0 bytes in 0 blocks

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agounpack-trees: don't perform any index operation if we're not merging
René Scharfe [Tue, 10 Apr 2012 18:55:58 +0000 (20:55 +0200)] 
unpack-trees: don't perform any index operation if we're not merging

src[0] points to the index entry in the merge case and to the first
tree to unpack in the non-merge case.  We only want to mark the index
entry, so check first if we're merging.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agovar doc: advertise current DEFAULT_PAGER and DEFAULT_EDITOR settings
Jonathan Nieder [Sat, 31 Mar 2012 08:44:53 +0000 (03:44 -0500)] 
var doc: advertise current DEFAULT_PAGER and DEFAULT_EDITOR settings

Document the default pager and editor chosen at compile time in the
git-var(1) manpage so users curious about what command _this_ copy of
git will fall back to when EDITOR, VISUAL, and PAGER are unset can
find the answer quickly.

In builds leaving those settings uncustomized, this patch makes the
manpage continue to say "usually vi" and "usually less" so the
formatted documentation is usable for a wide audience including users
of custom builds that change those settings.  If you would like your
copy of the docs to be less noncommittal, you will need to set
DEFAULT_PAGER=less and DEFAULT_EDITOR=vi explicitly.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'maint'
Junio C Hamano [Tue, 10 Apr 2012 19:45:35 +0000 (12:45 -0700)] 
Merge branch 'maint'

* maint:
  test-subprocess: fix segfault without arguments
  submodule: fix prototype of gitmodules_config

12 years agoMerge branch 'maint-1.7.9' into maint
Junio C Hamano [Tue, 10 Apr 2012 19:44:58 +0000 (12:44 -0700)] 
Merge branch 'maint-1.7.9' into maint

* maint-1.7.9:

12 years agoMerge branch 'maint-1.7.8' into maint-1.7.9
Junio C Hamano [Tue, 10 Apr 2012 19:44:45 +0000 (12:44 -0700)] 
Merge branch 'maint-1.7.8' into maint-1.7.9

* maint-1.7.8:
  Documentation/gitweb: trivial English fixes
  fetch/receive: remove over-pessimistic connectivity check

12 years agotest-subprocess: fix segfault without arguments
René Scharfe [Tue, 10 Apr 2012 19:07:34 +0000 (21:07 +0200)] 
test-subprocess: fix segfault without arguments

Check if we even have a parameter before checking its value.  Running
this command without any arguments may not make a lot of sense, but
reacting with a segmentation fault is unduly harsh.

While we're at it, avoid casting argv by declaring it const right away.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agosubmodule: fix prototype of gitmodules_config
René Scharfe [Tue, 10 Apr 2012 19:10:26 +0000 (21:10 +0200)] 
submodule: fix prototype of gitmodules_config

Add void to make it match its definition in submodule.c.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorev-parse --show-prefix: add in trailing newline
Ross Lagerwall [Mon, 9 Apr 2012 13:27:56 +0000 (15:27 +0200)] 
rev-parse --show-prefix: add in trailing newline

Print out a trailing newline when --show-prefix is run with cwd
at the top level of the tree which results in an empty prefix.
Behavior is now like --show-cdup.

Fixes an expected failure in t1501.

Signed-off-by: Ross Lagerwall <rosslagerwall@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFix git-subtree install instructions
David A. Greene [Tue, 10 Apr 2012 03:19:01 +0000 (22:19 -0500)] 
Fix git-subtree install instructions

Update the install instructions to reflect the changes for an
integrated git-subtree.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoUse git-subtree test Makefile
David A. Greene [Tue, 10 Apr 2012 03:07:02 +0000 (22:07 -0500)] 
Use git-subtree test Makefile

Use the Makefile in contrib/subtree/t to run git-subtree tests.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoAdd subtree test Makefile
David A. Greene [Sun, 5 Feb 2012 22:29:06 +0000 (16:29 -0600)] 
Add subtree test Makefile

Add a Makefile to run subtree tests.  This is largely copied
from the standard test suite with irrelevant targets removed
and some paths altered to account for where subtree tests live.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoInstall git-subtree from contrib
David A. Greene [Tue, 10 Apr 2012 02:13:03 +0000 (21:13 -0500)] 
Install git-subtree from contrib

Build git-subtree in its contrib directory and install from there.
The main Makefile no longer discovers subcommands build in the main
build area so we cannot count on it to install git-subtree.  The user
should make && make install in contrib/subtree to install git-subtree.

Change the rule to install the git-subtree manpage.  The main
Documentation area doesn't directly support installing documentation
from other directories so the user will have to do that from within
contrib/subtree for now.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoUse configure settings for git-subtree
David A. Greene [Tue, 10 Apr 2012 02:39:08 +0000 (21:39 -0500)] 
Use configure settings for git-subtree

Include config.make.autogen in the git-subtree contrib area to pick up
settings for prefix and other such things.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoUse project config files
David A. Greene [Sun, 29 Jan 2012 22:17:43 +0000 (16:17 -0600)] 
Use project config files

Use project-wide files to process documentation for git-subtree.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoRemove unnecessary git-subtree files
David A. Greene [Tue, 10 Apr 2012 03:11:25 +0000 (22:11 -0500)] 
Remove unnecessary git-subtree files

Remove various files that simply duplicate functionality already
provided by the main project files.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoSet TEST_DIRECTORY
David A. Greene [Tue, 20 Mar 2012 23:11:49 +0000 (18:11 -0500)] 
Set TEST_DIRECTORY

Set TEST_DIRECTORY to the main git test area.  This allows the
git-subtree out-of-tree tests to run correctly.

Signed-off-by: David A. Greene <greened@obbligato.org>
12 years agoAdd 'contrib/subtree/' from commit 'd3a04e06c77d57978bb5230361c64946232cc346'
David A. Greene [Tue, 10 Apr 2012 01:22:55 +0000 (20:22 -0500)] 
Add 'contrib/subtree/' from commit 'd3a04e06c77d57978bb5230361c64946232cc346'

git-subtree-dir: contrib/subtree
git-subtree-mainline: e8dde3e5f9ddb7cf95a6ff3cea6cf07c3a2db80d
git-subtree-split: d3a04e06c77d57978bb5230361c64946232cc346

12 years agorebase -i continue: don't skip commits that only change submodules
John Keeping [Sat, 7 Apr 2012 10:20:53 +0000 (11:20 +0100)] 
rebase -i continue: don't skip commits that only change submodules

When git-rebase--interactive stops due to a conflict and the only change
to be committed is in a submodule, the test for whether there is
anything to be committed ignores the staged submodule change.  This
leads rebase to skip creating the commit for the change.

While unstaged submodule changes should be ignored to avoid needing to
update submodules during a rebase, it is safe to remove the
--ignore-submodules option to diff-index because --cached ensures that
it is only checking the index.  This was discussed in [1] and a test is
included to ensure that unstaged changes are still ignored correctly.

[1] http://thread.gmane.org/gmane.comp.version-control.git/188713

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoremote: update builtin usage
Michael Schubert [Sat, 7 Apr 2012 14:25:52 +0000 (16:25 +0200)] 
remote: update builtin usage

Add missing options "--tags|--no-tags" and "--push".

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: use "git p4" directly in tests
Pete Wyckoff [Mon, 9 Apr 2012 00:18:02 +0000 (20:18 -0400)] 
git p4: use "git p4" directly in tests

Drop the $GITP4 variable that was used to specify the script in
contrib/fast-import/.  The command is called "git p4" now, not
"git-p4".

Note that configuration variables will remain in a section called
"git-p4".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: update name in script
Pete Wyckoff [Mon, 9 Apr 2012 00:18:01 +0000 (20:18 -0400)] 
git p4: update name in script

In messages to the user and comments, change "git-p4" to "git p4".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: move to toplevel
Pete Wyckoff [Mon, 9 Apr 2012 00:18:00 +0000 (20:18 -0400)] 
git-p4: move to toplevel

Move git-p4 out of contrib/fast-import into the main code base,
aside other foreign SCM tools.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoAvoid bug in Solaris xpg4/sed as used in submodule
Ben Walton [Mon, 9 Apr 2012 20:08:02 +0000 (16:08 -0400)] 
Avoid bug in Solaris xpg4/sed as used in submodule

The sed provided by Solaris in /usr/xpg4/bin has a bug whereby an
unanchored regex using * for zero or more repetitions sees two
separate matches fed to the substitution engine in some cases.

This is evidenced by:

$ for sed in /usr/xpg4/bin/sed /usr/bin/sed /opt/csw/gnu/sed; do \
echo 'ab' | $sed -e 's|[a]*|X|g'; \
done
XXbX
XbX
XbX

This bug was triggered during a git submodule clone operation as
exercised in the setup stage of t5526-fetch-submodules when using the
default SANE_TOOL_PATH for Solaris.  It led to paths such as
..../.. being used in the submodule .git gitdir reference.

Using the expression 's|\([^/]*\(/*\)\)|..\2|g' provides the desired
result with all three three tested sed implementations but is harder
to read.  As we do not need to handle fully qualified paths though,
the expression could actually be [^/]+ which isn't properly handled
either.  Instead, use [^/][^/]*, as suggested by Andreas Schwab, which
works on all three tested sed implementations.

The new expression is semantically different than the original one.
It will not place a leading '..' on a fully qualified path as the
original expression did.  All of the paths being passed through this
regex are relative and did not rely on this behaviour so it's a safe
change.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-verify-objects-remove-pessimism' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:43:16 +0000 (13:43 -0700)] 
Merge branch 'jc/maint-verify-objects-remove-pessimism' into maint-1.7.8

* jc/maint-verify-objects-remove-pessimism:
  fetch/receive: remove over-pessimistic connectivity check

12 years agoMerge branch 'dw/gitweb-doc-grammo' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:42:56 +0000 (13:42 -0700)] 
Merge branch 'dw/gitweb-doc-grammo' into maint-1.7.8

* dw/gitweb-doc-grammo:
  Documentation/gitweb: trivial English fixes

12 years agoMerge branch 'tr/cache-tree' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:40:32 +0000 (13:40 -0700)] 
Merge branch 'tr/cache-tree' into maint-1.7.8

* tr/cache-tree:
  t0090: be prepared that 'wc -l' writes leading blanks
  reset: update cache-tree data when appropriate
  commit: write cache-tree data when writing index anyway
  Refactor cache_tree_update idiom from commit
  Test the current state of the cache-tree optimization
  Add test-scrap-cache-tree

12 years agoMerge branch 'cb/maint-t5541-make-server-port-portable' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:38:41 +0000 (13:38 -0700)] 
Merge branch 'cb/maint-t5541-make-server-port-portable' into maint-1.7.8

* cb/maint-t5541-make-server-port-portable:
  t5541: check error message against the real port number used
  remote-curl: Fix push status report when all branches fail

12 years agoMerge branch 'cn/maint-rev-list-doc' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:36:44 +0000 (13:36 -0700)] 
Merge branch 'cn/maint-rev-list-doc' into maint-1.7.8

* cn/maint-rev-list-doc:
  Documentation: use {asterisk} in rev-list-options.txt when needed

12 years agoMerge branch 'tr/maint-bundle-boundary' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:36:26 +0000 (13:36 -0700)] 
Merge branch 'tr/maint-bundle-boundary' into maint-1.7.8

* tr/maint-bundle-boundary:
  bundle: keep around names passed to add_pending_object()
  t5510: ensure we stay in the toplevel test dir
  t5510: refactor bundle->pack conversion

12 years agoMerge branch 'tr/maint-bundle-long-subject' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:36:20 +0000 (13:36 -0700)] 
Merge branch 'tr/maint-bundle-long-subject' into maint-1.7.8

* tr/maint-bundle-long-subject:
  t5704: match tests to modern style
  strbuf: improve strbuf_get*line documentation
  bundle: use a strbuf to scan the log for boundary commits
  bundle: put strbuf_readline_fd in strbuf.c with adjustments

12 years agoMerge branch 'ph/rerere-doc' into maint-1.7.8
Junio C Hamano [Mon, 9 Apr 2012 20:34:09 +0000 (13:34 -0700)] 
Merge branch 'ph/rerere-doc' into maint-1.7.8

* ph/rerere-doc:
  rerere: Document 'rerere remaining'

12 years agoGit 1.7.10 v1.7.10
Junio C Hamano [Fri, 6 Apr 2012 17:47:58 +0000 (10:47 -0700)] 
Git 1.7.10

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agospec: add missing build dependency
Felipe Contreras [Fri, 6 Apr 2012 12:22:30 +0000 (15:22 +0300)] 
spec: add missing build dependency

Otherwise:

/usr/bin/perl Makefile.PL PREFIX='/opt/git' INSTALL_BASE=''
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: ...) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorun-command: treat inaccessible directories as ENOENT
Jeff King [Fri, 30 Mar 2012 07:52:18 +0000 (03:52 -0400)] 
run-command: treat inaccessible directories as ENOENT

When execvp reports EACCES, it can be one of two things:

  1. We found a file to execute, but did not have
     permissions to do so.

  2. We did not have permissions to look in some directory
     in the $PATH.

In the former case, we want to consider this a
permissions problem and report it to the user as such (since
getting this for something like "git foo" is likely a
configuration error).

In the latter case, there is a good chance that the
inaccessible directory does not contain anything of
interest. Reporting "permission denied" is confusing to the
user (and prevents our usual "did you mean...?" lookup). It
also prevents git from trying alias lookup, since we do so
only when an external command does not exist (not when it
exists but has an error).

This patch detects EACCES from execvp, checks whether we are
in case (2), and if so converts errno to ENOENT. This
behavior matches that of "bash" (but not of simpler shells
that use execvp more directly, like "dash").

Test stolen from Junio.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>