Commit Graph

26870 Commits

Author SHA1 Message Date
Junio C Hamano
7c857dda7a Merge branch 'jk/config-test-cleanup' into next
* jk/config-test-cleanup:
  t1300: test mixed-case variable retrieval
  t1300: put git invocations inside test function
2011-10-12 14:59:29 -07:00
Junio C Hamano
a2d177c977 Merge branch 'master' into next
* master:
  Update draft release notes to 1.7.8
  t5403: convert leading spaces to tabs
2011-10-12 12:45:06 -07:00
Junio C Hamano
34c4461ae3 Update draft release notes to 1.7.8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-12 12:42:44 -07:00
Junio C Hamano
5366afaede Merge branch 'cb/do-not-pretend-to-hijack-long-help'
* cb/do-not-pretend-to-hijack-long-help:
  use -h for synopsis and --help for manpage consistently
2011-10-12 12:34:30 -07:00
Junio C Hamano
7ed72d1813 Merge branch 'sp/smart-http-failure'
* sp/smart-http-failure:
  remote-curl: Fix warning after HTTP failure
2011-10-12 12:34:27 -07:00
Junio C Hamano
a99c247c53 Merge branch 'nd/document-err-packet'
* nd/document-err-packet:
  pack-protocol: document "ERR" line
2011-10-12 12:34:18 -07:00
Junio C Hamano
af543833d4 Merge branch 'jc/parse-options-boolean'
* jc/parse-options-boolean:
  apply: use OPT_NOOP_NOARG
  revert: use OPT_NOOP_NOARG
  parseopt: add OPT_NOOP_NOARG
  archive.c: use OPT_BOOL()
  parse-options: deprecate OPT_BOOLEAN

Conflicts:
	builtin/revert.c
2011-10-12 12:34:15 -07:00
Junio C Hamano
fbca6911de Merge branch 'rs/test-ctype'
* rs/test-ctype:
  test-ctype: add test for is_pathspec_magic
  test-ctype: macrofy
2011-10-12 12:34:11 -07:00
Junio C Hamano
9f24152346 Merge branch 'rs/name-rev-usage'
* rs/name-rev-usage:
  name-rev: split usage string
2011-10-12 12:34:08 -07:00
Junio C Hamano
1ff5a41b6b Merge branch 'cs/perl-config-path-send-email'
* cs/perl-config-path-send-email:
  use new Git::config_path() for aliasesfile
  Add Git::config_path()
2011-10-12 12:34:05 -07:00
Junio C Hamano
afc71aa9e6 Merge branch 'zj/send-email-authen-sasl'
* zj/send-email-authen-sasl:
  send-email: auth plain/login fix
2011-10-12 12:34:03 -07:00
Nguyễn Thái Ngọc Duy
a6045720bd t5403: convert leading spaces to tabs
The first and last tests use tabs. The rest uses spaces. Convert all
to tabs.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-12 12:30:30 -07:00
Jeff King
88d42af893 t1300: test mixed-case variable retrieval
We should be able to ask for a config value both by its
canonical all-lowercase name (as git does internally), as
well as by random mixed-case (which will be canonicalized by
git-config for us).

Subsections are a tricky point, though. Since we have both

  [section "Foo"]

and

  [section.Foo]

you might want git-config to canonicalize the subsection or
not, depending on which you are expecting. But there's no
way to communicate this; git-config sees only the key, and
doesn't know which type of section name will be in the
config file.

So it must leave the subsection intact, and it is up to the
caller to provide a canonical version of the subsection if
they want to match the latter form.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-12 11:56:31 -07:00
Jeff King
5a953fc5d1 t1300: put git invocations inside test function
This is a very old script, and did a lot of:

  echo whatever >expect
  git config foo bar
  test_expect_success 'cmp .git/config expect'

which meant that we didn't actually check that the call to
git-config succeeded. Fix this, and while we're at it,
modernize the style to use test_cmp.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-12 11:53:31 -07:00
Junio C Hamano
6d5841794b Merge branch 'ph/transport-with-gitfile' into next
* ph/transport-with-gitfile:
  Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile
2011-10-12 10:50:59 -07:00
Johannes Schindelin
3ac6437016 Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile
The logic to check whether a file is a gitfile used the heuristics that
a gitfile cannot be larger than PATH_MAX or smaller than 10 bytes (as
its contents is "gitdir: " followed by a path) and returned early.

But it returned with a wrong value. It should have said "this cannot
possibly be a gitfile" by returning 0, but it returned 1 instead.  Our
test cases do not cover this, as the bundle files produced are smaller
than PATH_MAX, except on Windows.

While at it, fix the faulty logic that the path stored in a gitfile cannot
be larger than PATH_MAX-sizeof("gitdir: ").

Problem identified by running the test suite in msysGit, offending commit
identified by Jörg Rosenkranz.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-11 13:46:20 -07:00
Junio C Hamano
6196752f9e Merge branch 'rs/diff-whole-function' into next
* rs/diff-whole-function:
  diff: add option to show whole functions as context
  xdiff: factor out get_func_line()
2011-10-11 12:27:11 -07:00
Junio C Hamano
795939f857 Merge branch 'mm/maint-config-explicit-bool-display' into next
* mm/maint-config-explicit-bool-display:
  config: display key_delim for config --bool --get-regexp
2011-10-11 12:27:11 -07:00
Junio C Hamano
38d7e84c81 Merge branch 'sc/difftool-skip' into next
* sc/difftool-skip:
  git-difftool: allow skipping file by typing 'n' at prompt
2011-10-11 12:27:10 -07:00
Junio C Hamano
d867153887 Merge branch 'tc/fetch-leak' into next
* tc/fetch-leak:
  fetch: plug two leaks on error exit in store_updated_refs

Conflicts:
	builtin/fetch.c
2011-10-11 12:27:10 -07:00
Junio C Hamano
27d02b2e28 Merge branch 'rs/pickaxe' into next
* rs/pickaxe:
  pickaxe: factor out pickaxe
  pickaxe: give diff_grep the same signature as has_changes
  pickaxe: pass diff_options to contains and has_changes
  pickaxe: factor out has_changes
  pickaxe: plug regex/kws leak
  pickaxe: plug regex leak
  pickaxe: plug diff filespec leak with empty needle
2011-10-11 12:27:10 -07:00
Junio C Hamano
e2ea68b2b6 Merge branch 'jk/name-hash-dirent' into next
* jk/name-hash-dirent:
  fix phantom untracked files when core.ignorecase is set
2011-10-11 12:27:09 -07:00
Junio C Hamano
d5d6945b29 Merge branch 'ef/mingw-syslog' into next
* ef/mingw-syslog:
  mingw: avoid using strbuf in syslog
2011-10-11 12:27:09 -07:00
Junio C Hamano
daa6b51d45 Merge branch 'bc/attr-ignore-case' into next
* bc/attr-ignore-case:
  attr.c: respect core.ignorecase when matching attribute patterns
  attr: read core.attributesfile from git_default_core_config
  builtin/mv.c: plug miniscule memory leak
  cleanup: use internal memory allocation wrapper functions everywhere
  attr.c: avoid inappropriate access to strbuf "buf" member

Conflicts:
	transport-helper.c
2011-10-11 12:27:09 -07:00
Junio C Hamano
4724640046 Merge branch 'sg/completion' into next
* sg/completion:
  completion: unite --format and --pretty for 'log' and 'show'
  completion: unite --reuse-message and --reedit-message for 'notes'
2011-10-11 12:27:08 -07:00
Junio C Hamano
85544e5a49 Merge branch 'tm/completion-push-set-upstream' into next
* tm/completion-push-set-upstream:
  completion: push --set-upstream
2011-10-11 12:27:08 -07:00
Junio C Hamano
6bb192e49d Merge branch 'tm/completion-commit-fixup-squash' into next
* tm/completion-commit-fixup-squash:
  completion: commit --fixup and --squash
  completion: unite --reuse-message and --reedit-message handling
2011-10-11 12:27:08 -07:00
Brandon Casey
6eba6210d9 attr.c: respect core.ignorecase when matching attribute patterns
When core.ignorecase is true, the file globs configured in the
.gitattributes file should be matched case-insensitively against the paths
in the working directory.  Let's do so.

Plus, add some tests.

The last set of tests is performed only on a case-insensitive filesystem.
Those tests make sure that git handles the case where the .gitignore file
resides in a subdirectory and the user supplies a path that does not match
the case in the filesystem.  In that case^H^H^H^Hsituation, part of the
path supplied by the user is effectively interpreted case-insensitively,
and part of it is dependent on the setting of core.ignorecase.  git will
currently only match the portion of the path below the directory holding
the .gitignore file according to the setting of core.ignorecase.

This is also partly future-proofing.  Currently, git builds the attr stack
based on the path supplied by the user, so we don't have to do anything
special (like use strcmp_icase) to handle the parts of that path that don't
match the filesystem with respect to case.  If git instead built the attr
stack by scanning the repository, then the paths in the origin field would
not necessarily match the paths supplied by the user.  If someone makes a
change like that in the future, these tests will notice.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-11 09:43:05 -07:00
Junio C Hamano
acb29eedc6 Merge branch 'js/no-cherry-pick-head-after-punted' into next
* js/no-cherry-pick-head-after-punted:
  cherry-pick: do not give irrelevant advice when cherry-pick punted
  revert.c: defer writing CHERRY_PICK_HEAD till it is safe to do so
2011-10-10 16:19:36 -07:00
Junio C Hamano
db689dd0f9 Merge branch 'master' into next
* master:
  Update draft release notes to 1.7.8
  Fix some "variable might be used uninitialized" warnings
  Makefile: fix permissions of mergetools/ checked out with permissive umask

Conflicts:
	refs.c

This also fixes an earlier mismerge where I still had sort_ref_array() at
the end of get_ref_dir() which defeats the whole purpose of one of the
topic branches. get_loose_refs() asks get_ref_dir() to recursively fill
the ref array and sorts the result only once.
2011-10-10 16:16:34 -07:00
Junio C Hamano
8b0e15fa95 Update draft release notes to 1.7.8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-10 16:14:59 -07:00
Junio C Hamano
4909bbe40a Merge branch 'dm/tree-walk'
* dm/tree-walk:
  tree-walk: micro-optimization in tree_entry_interesting
  tree-walk: drop unused parameter from match_dir_prefix
2011-10-10 15:56:20 -07:00
Junio C Hamano
59b32ff338 Merge branch 'ps/gitweb-js-with-lineno'
* ps/gitweb-js-with-lineno:
  gitweb: Fix links to lines in blobs when javascript-actions are enabled
2011-10-10 15:56:20 -07:00
Junio C Hamano
e579a5d398 Merge branch 'mh/maint-notes-merge-pathbuf-fix'
* mh/maint-notes-merge-pathbuf-fix:
  notes_merge_commit(): do not pass temporary buffer to other function
2011-10-10 15:56:20 -07:00
Junio C Hamano
bf604e64fb Merge branch 'nd/sparse-doc'
* nd/sparse-doc:
  git-read-tree.txt: update sparse checkout examples
2011-10-10 15:56:20 -07:00
Junio C Hamano
2c5c66be6e Merge branch 'jp/get-ref-dir-unsorted'
* jp/get-ref-dir-unsorted:
  refs.c: free duplicate entries in the ref array instead of leaking them
  refs.c: abort ref search if ref array is empty
  refs.c: ensure struct whose member may be passed to realloc is initialized
  refs: Use binary search to lookup refs faster
  Don't sort ref_list too early

Conflicts:
	refs.c
2011-10-10 15:56:19 -07:00
Junio C Hamano
9bd500048d Merge branch 'mh/check-ref-format-3'
* mh/check-ref-format-3: (23 commits)
  add_ref(): verify that the refname is formatted correctly
  resolve_ref(): expand documentation
  resolve_ref(): also treat a too-long SHA1 as invalid
  resolve_ref(): emit warnings for improperly-formatted references
  resolve_ref(): verify that the input refname has the right format
  remote: avoid passing NULL to read_ref()
  remote: use xstrdup() instead of strdup()
  resolve_ref(): do not follow incorrectly-formatted symbolic refs
  resolve_ref(): extract a function get_packed_ref()
  resolve_ref(): turn buffer into a proper string as soon as possible
  resolve_ref(): only follow a symlink that contains a valid, normalized refname
  resolve_ref(): use prefixcmp()
  resolve_ref(): explicitly fail if a symlink is not readable
  Change check_refname_format() to reject unnormalized refnames
  Inline function refname_format_print()
  Make collapse_slashes() allocate memory for its result
  Do not allow ".lock" at the end of any refname component
  Refactor check_refname_format()
  Change check_ref_format() to take a flags argument
  Change bad_ref_char() to return a boolean value
  ...
2011-10-10 15:56:18 -07:00
Junio C Hamano
11fa509957 Merge branch 'mh/iterate-refs'
* mh/iterate-refs:
  refs.c: make create_cached_refs() static
  Retain caches of submodule refs
  Store the submodule name in struct cached_refs
  Allocate cached_refs objects dynamically
  Change the signature of read_packed_refs()
  Access reference caches only through new function get_cached_refs()
  Extract a function clear_cached_refs()
2011-10-10 15:56:18 -07:00
Junio C Hamano
5fbdb9c2e8 Merge branch 'jm/mergetool-pathspec'
* jm/mergetool-pathspec:
  mergetool: no longer need to save standard input
  mergetool: Use args as pathspec to unmerged files
2011-10-10 15:56:18 -07:00
Junio C Hamano
7ddd582402 Merge branch 'jc/maint-diffstat-numstat-context'
* jc/maint-diffstat-numstat-context:
  diff: teach --stat/--numstat to honor -U$num
2011-10-10 15:56:18 -07:00
Junio C Hamano
034a8a0df3 Merge branch 'mz/remote-rename'
* mz/remote-rename:
  remote: only update remote-tracking branch if updating refspec
  remote rename: warn when refspec was not updated
  remote: "rename o foo" should not rename ref "origin/bar"
  remote: write correct fetch spec when renaming remote 'remote'
2011-10-10 15:56:17 -07:00
Junio C Hamano
ca3ef81ad7 Merge branch 'cb/common-prefix-unification'
* cb/common-prefix-unification:
  rename pathspec_prefix() to common_prefix() and move to dir.[ch]
  consolidate pathspec_prefix and common_prefix
  remove prefix argument from pathspec_prefix
2011-10-10 15:56:17 -07:00
Junio C Hamano
9488c18923 Merge branch 'jn/maint-http-error-message'
* jn/maint-http-error-message:
  http: avoid empty error messages for some curl errors
  http: remove extra newline in error message
2011-10-10 15:56:17 -07:00
Junio C Hamano
61f9db7a50 Merge branch 'hv/submodule-update-none'
* hv/submodule-update-none:
  add update 'none' flag to disable update of submodule by default
  submodule: move update configuration variable further up
2011-10-10 15:56:17 -07:00
Junio C Hamano
efc5fb6a77 Merge branch 'fg/submodule-git-file-git-dir'
* fg/submodule-git-file-git-dir:
  Move git-dir for submodules
  rev-parse: add option --resolve-git-dir <path>

Conflicts:
	cache.h
	git-submodule.sh
2011-10-10 15:56:17 -07:00
Junio C Hamano
40d03c91bc Merge branch 'jp/get-ref-dir-unsorted' into next
* jp/get-ref-dir-unsorted:
  refs.c: free duplicate entries in the ref array instead of leaking them
  refs.c: abort ref search if ref array is empty
  refs.c: ensure struct whose member may be passed to realloc is initialized

Conflicts:
	refs.c
2011-10-10 15:28:31 -07:00
Junio C Hamano
092175e3e5 Merge branch 'jc/request-pull-show-head-4' into next
* jc/request-pull-show-head-4:
  environment.c: Fix an sparse "symbol not declared" warning
  builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
2011-10-10 15:28:29 -07:00
Matthieu Moy
008e3cc5d7 config: display key_delim for config --bool --get-regexp
The previous logic in show_config was to print the delimiter when the
value was set, but Boolean variables have an implicit value "true" when
they appear with no value in the config file. As a result, we got:

git_Config        --get-regexp '.*\.Boolean'	#1. Ok: example.boolean
git_Config --bool --get-regexp '.*\.Boolean'	#2. NO: example.booleantrue

Fix this by defering the display of the separator until after the value
to display has been computed.

Reported-by: Brian Foster <brian.foster@maxim-ic.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-10 12:34:44 -07:00
René Scharfe
14937c2c06 diff: add option to show whole functions as context
Add the option -W/--function-context to git diff.  It is similar to
the same option of git grep and expands the context of change hunks
so that the whole surrounding function is shown.  This "natural"
context can allow changes to be understood better.

Note: GNU patch doesn't like diffs generated with the new option;
it seems to expect context lines to be the same before and after
changes.  git apply doesn't complain.

This implementation has the same shortcoming as the one in grep,
namely that there is no way to explicitly find the end of a
function.  That means that a few lines of extra context are shown,
right up to the next recognized function begins.  It's already
useful in its current form, though.

The function get_func_line() in xdiff/xemit.c is extended to work
forward as well as backward to find post-context as well as
pre-context.  It returns the position of the first found matching
line.  The func_line parameter is made optional, as we don't need
it for -W.

The enhanced function is then used in xdl_emit_diff() to extend
the context as needed.  If the added context overlaps with the
next change, it is merged into the current hunk.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-10 12:05:07 -07:00
René Scharfe
f99f4b3667 xdiff: factor out get_func_line()
Move the code to search for a function line to be shown in the hunk
header into its own function and to make returning the length-limited
result string easier, introduce struct func_line.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-10 11:59:30 -07:00