Junio C Hamano [Mon, 22 Jul 2013 18:24:11 +0000 (11:24 -0700)]
Merge branch 'jx/clean-interactive'
Add "interactive" mode to "git clean".
The early part to refactor relative path related helper functions
looked sensible.
* jx/clean-interactive:
test: run testcases with POSIX absolute paths on Windows
test: add t7301 for git-clean--interactive
git-clean: add documentation for interactive git-clean
git-clean: add ask each interactive action
git-clean: add select by numbers interactive action
git-clean: add filter by pattern interactive action
git-clean: use a git-add-interactive compatible UI
git-clean: add colors to interactive git-clean
git-clean: show items of del_list in columns
git-clean: add support for -i/--interactive
git-clean: refactor git-clean into two phases
write_name{_quoted_relative,}(): remove redundant parameters
quote_path_relative(): remove redundant parameter
quote.c: substitute path_relative with relative_path
path.c: refactor relative_path(), not only strip prefix
test: add test cases for relative_path
Junio C Hamano [Mon, 22 Jul 2013 18:24:09 +0000 (11:24 -0700)]
Merge branch 'hv/config-from-blob'
Allow configuration data to be read from in-tree blob objects,
which would help working in a bare repository and submodule
updates.
* hv/config-from-blob:
do not die when error in config parsing of buf occurs
teach config --blob option to parse config from database
config: make parsing stack struct independent from actual data source
config: drop cf validity check in get_next_char()
config: factor out config file stack management
Junio C Hamano [Mon, 22 Jul 2013 18:24:05 +0000 (11:24 -0700)]
Merge branch 'mk/upload-pack-off-by-one-dead-code-removal'
* mk/upload-pack-off-by-one-dead-code-removal:
upload-pack: remove a piece of dead code
Junio C Hamano [Mon, 22 Jul 2013 18:24:02 +0000 (11:24 -0700)]
Merge branch 'jk/t0008-sigpipe-fix'
Fix for recent test breakage on 'master'.
* jk/t0008-sigpipe-fix:
t0008: avoid SIGPIPE race condition on fifo
Junio C Hamano [Mon, 22 Jul 2013 18:24:00 +0000 (11:24 -0700)]
Merge branch 'nd/const-struct-cache-entry'
* nd/const-struct-cache-entry:
Convert "struct cache_entry *" to "const ..." wherever possible
Junio C Hamano [Mon, 22 Jul 2013 18:23:59 +0000 (11:23 -0700)]
Merge branch 'jk/gcc-function-attributes'
Use the function attributes extension to catch mistakes in use of
our own variadic functions that use NULL sentinel at the end
(i.e. like execl(3)) and format strings (i.e. like printf(3)).
* jk/gcc-function-attributes:
Add the LAST_ARG_MUST_BE_NULL macro
wt-status: use "format" function attribute for status_printf
use "sentinel" function attribute for variadic lists
add missing "format" function attributes
Junio C Hamano [Mon, 22 Jul 2013 18:23:56 +0000 (11:23 -0700)]
Merge branch 'db/show-ref-head'
The "--head" option to "git show-ref" was only to add "HEAD" to the
list of candidate refs to be filtered by the usual rules
(e.g. "--heads" that only show refs under refs/heads). Change the
meaning of the option to always show "HEAD" regardless of what
filtering will be applied to any other ref (this is a backward
incompatible change, so I may need to add an entry to the Release
Notes).
* db/show-ref-head:
show-ref: make --head always show the HEAD ref
Junio C Hamano [Mon, 22 Jul 2013 18:23:53 +0000 (11:23 -0700)]
Merge branch 'es/blame-L-breakage'
The refactoring made for parsing "-L" option recently to support
"git log -L" seems to have broken "git blame -L X,-5" to show 5
lines leading to X.
* es/blame-L-breakage:
blame-options.txt: explain that -L <start> and <end> are optional
blame-options.txt: place each -L option variation on its own line
t8001/t8002 (blame): add blame -L :funcname tests
t8001/t8002 (blame): add blame -L tests
t8001/t8002 (blame): modernize style
line-range: fix "blame -L X,-N" regression
Junio C Hamano [Mon, 22 Jul 2013 18:23:35 +0000 (11:23 -0700)]
Merge branch 'tr/protect-low-3-fds'
When "git" is spawned in such a way that any of the low 3 file
descriptors is closed, our first open() may yield file descriptor 2,
and writing error message to it would screw things up in a big way.
* tr/protect-low-3-fds:
git: ensure 0/1/2 are open in main()
daemon/shell: refactor redirection of 0/1/2 from /dev/null
Junio C Hamano [Mon, 22 Jul 2013 18:23:32 +0000 (11:23 -0700)]
Merge branch 'sb/parse-object-buffer-eaten'
* sb/parse-object-buffer-eaten:
parse_object_buffer: correct freeing the buffer
Junio C Hamano [Mon, 22 Jul 2013 18:23:30 +0000 (11:23 -0700)]
Merge branch 'tr/do-not-call-submodules-subprojects'
* tr/do-not-call-submodules-subprojects:
show-branch: fix description of --date-order
apply, entry: speak of submodules instead of subprojects
Junio C Hamano [Mon, 22 Jul 2013 18:23:27 +0000 (11:23 -0700)]
Merge branch 'mm/diff-no-patch-synonym-to-s'
"git show -s" was less discoverable than it should be.
* mm/diff-no-patch-synonym-to-s:
Documentation/git-log.txt: capitalize section names
Documentation: move description of -s, --no-patch to diff-options.txt
Documentation/git-show.txt: include common diff options, like git-log.txt
diff: allow --patch & cie to override -s/--no-patch
diff: allow --no-patch as synonym for -s
t4000-diff-format.sh: modernize style
Junio C Hamano [Mon, 22 Jul 2013 18:23:24 +0000 (11:23 -0700)]
Merge branch 'dw/request-pull-diag'
* dw/request-pull-diag:
request-pull: improve error message for invalid revision args
Junio C Hamano [Mon, 22 Jul 2013 18:23:16 +0000 (11:23 -0700)]
Merge branch 'jc/mailmap-case-insensitivity'
The mailmap mechanism unnecessarily downcased the e-mail addresses
in the output, and also ignored the human name when it is a single
character name.
This now has become Eric Sunshine's series, even though it still is
under jc/ hierarchy.
* jc/mailmap-case-insensitivity:
mailmap: style fixes
mailmap: debug: avoid passing NULL to fprintf() '%s' conversion specification
mailmap: debug: eliminate -Wformat field precision type warning
mailmap: debug: fix malformed fprintf() format conversion specification
mailmap: debug: fix out-of-order fprintf() arguments
mailmap: do not downcase mailmap entries
t4203: demonstrate loss of uppercase characters in canonical email
mailmap: do not lose single-letter names
t4203: demonstrate loss of single-character name in mailmap entry
Junio C Hamano [Mon, 22 Jul 2013 18:23:12 +0000 (11:23 -0700)]
Merge branch 'tr/fd-gotcha-fixes'
Two places we did not check return value (expected to be a file
descriptor) correctly.
* tr/fd-gotcha-fixes:
run-command: dup_devnull(): guard against syscalls failing
git_mkstemps: correctly test return value of open()
Junio C Hamano [Mon, 22 Jul 2013 18:23:10 +0000 (11:23 -0700)]
Merge branch 'mm/color-auto-default'
A finishing touch to fix breakage to "add -e" caused by defaulting
ui.color to "auto".
* mm/color-auto-default:
git add -e: Explicitly specify that patch should have no color
Junio C Hamano [Mon, 22 Jul 2013 18:23:06 +0000 (11:23 -0700)]
Merge branch 'jc/simple-add-must-be-a-no-op'
This detected a mismerge of one of "add-2.0" topics to the 'jch'
and 'pu' branches.
* jc/simple-add-must-be-a-no-op:
t2202: make sure "git add" (no args) stays a no-op
Junio C Hamano [Mon, 22 Jul 2013 06:03:46 +0000 (23:03 -0700)]
Sync with maint
* maint:
Update draft release notes to 1.8.3.4
t9801: git-p4: check ignore files with client spec
Junio C Hamano [Mon, 22 Jul 2013 06:02:53 +0000 (23:02 -0700)]
Update draft release notes to 1.8.3.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 22 Jul 2013 05:51:45 +0000 (22:51 -0700)]
Merge branch 'rr/maint-fetch-tag-doc-asterisks' into maint
* rr/maint-fetch-tag-doc-asterisks:
fetch-options.txt: prevent a wildcard refspec from getting misformatted
Junio C Hamano [Mon, 22 Jul 2013 05:51:43 +0000 (22:51 -0700)]
Merge branch 'dk/maint-t5150-dirname' into maint
* dk/maint-t5150-dirname:
tests: allow sha1's as part of the path
Junio C Hamano [Mon, 22 Jul 2013 05:51:41 +0000 (22:51 -0700)]
Merge branch 'dk/version-gen-gitdir' into maint
* dk/version-gen-gitdir:
GIT-VERSION-GEN: support non-standard $GIT_DIR path
Junio C Hamano [Mon, 22 Jul 2013 05:51:39 +0000 (22:51 -0700)]
Merge branch 'nk/config-local-doc' into maint
* nk/config-local-doc:
config: Add description of --local option
Junio C Hamano [Mon, 22 Jul 2013 05:51:37 +0000 (22:51 -0700)]
Merge branch 'kb/diff-blob-blob-doc' into maint
* kb/diff-blob-blob-doc:
Documentation: Move "git diff <blob> <blob>"
Junio C Hamano [Mon, 22 Jul 2013 05:51:32 +0000 (22:51 -0700)]
Merge branch 'mm/merge-in-dirty-worktree-doc' into maint
* mm/merge-in-dirty-worktree-doc:
Documentation/git-merge.txt: weaken warning about uncommited changes
Junio C Hamano [Mon, 22 Jul 2013 05:51:29 +0000 (22:51 -0700)]
Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' into maint
* ph/builtin-srcs-are-in-subdir-these-days:
fix "builtin-*" references to be "builtin/*"
Junio C Hamano [Mon, 22 Jul 2013 05:51:24 +0000 (22:51 -0700)]
Merge branch 'ft/doc-git-transport' into maint
* ft/doc-git-transport:
documentation: add git:// transport security notice
Junio C Hamano [Mon, 22 Jul 2013 05:51:22 +0000 (22:51 -0700)]
Merge branch 'mh/maint-lockfile-overflow' into maint
* mh/maint-lockfile-overflow:
lockfile: fix buffer overflow in path handling
Junio C Hamano [Mon, 22 Jul 2013 05:48:13 +0000 (22:48 -0700)]
Merge branch 'jc/maint-diff-core-safecrlf' into maint
Avoid failing "git diff" when core.safecrlf is set to true, because
the user cannot tell where the breakage is in preparation for fixing
and committing.
* jc/maint-diff-core-safecrlf:
diff: demote core.safecrlf=true to core.safecrlf=warn
Vitor Antunes [Thu, 18 Jul 2013 23:04:53 +0000 (00:04 +0100)]
t9801: git-p4: check ignore files with client spec
This test confirms that a file can be ignored during git p4 sync if if is
excluded in P4 client specification.
Signed-off-by: Vitor Antunes <vitor.hda@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 20 Jul 2013 03:57:01 +0000 (20:57 -0700)]
t2202: make sure "git add" (no args) stays a no-op
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Andrew Wong [Thu, 18 Jul 2013 22:58:04 +0000 (18:58 -0400)]
git add -e: Explicitly specify that patch should have no color
After
4c7f1819 (make color.ui default to 'auto', 2013-06-10), the
patch file to be edited during 'git add -e' receives all the color
codes. This is because diffopt.use_color defaults to -1, which
causes want_color to now return 'auto'.
By explicitly setting use_color to 0, we can ensure the diff output
has no color codes in it.
Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Jul 2013 18:15:48 +0000 (11:15 -0700)]
Sync with maint
Junio C Hamano [Fri, 19 Jul 2013 17:59:36 +0000 (10:59 -0700)]
Start preparing for 1.8.3.4
Hopefully this will be the final maintenance release before we go to
feature freeze for 1.8.4.
Stefan Beller [Thu, 18 Jul 2013 21:35:27 +0000 (23:35 +0200)]
apply.c::find_name_traditional(): do not initialize len to the line's length
The variable len is set to
len = strchrnul(line, '\n') - line;
unconditionally 9 lines later, hence we can remove the call to strlen.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 18 Jul 2013 21:35:26 +0000 (23:35 +0200)]
http-push.c::add_send_request(): do not initialize transfer_request
That pointer will be assigned to new memory via
request = xmalloc(sizeof(*request));
20 lines later unconditionally anyway, so it's safe to not assign it
to an arbitrary variable.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Jul 2013 17:43:13 +0000 (10:43 -0700)]
Merge branch 'tr/test-lint-no-export-assignment-in-shell' into maint
* tr/test-lint-no-export-assignment-in-shell:
test-lint: detect 'export FOO=bar'
t9902: fix 'test A == B' to use = operator
Junio C Hamano [Fri, 19 Jul 2013 17:43:08 +0000 (10:43 -0700)]
Merge branch 'rr/name-rev-stdin-doc' into maint
* rr/name-rev-stdin-doc:
name-rev doc: rewrite --stdin paragraph
Junio C Hamano [Fri, 19 Jul 2013 17:43:05 +0000 (10:43 -0700)]
Merge branch 'ft/diff-rename-default-score-is-half' into maint
* ft/diff-rename-default-score-is-half:
diff-options: document default similarity index
Junio C Hamano [Fri, 19 Jul 2013 17:43:01 +0000 (10:43 -0700)]
Merge branch 'jc/t1512-fix' into maint
* jc/t1512-fix:
get_short_sha1(): correctly disambiguate type-limited abbreviation
t1512: correct leftover constants from earlier edition
Junio C Hamano [Fri, 19 Jul 2013 17:42:57 +0000 (10:42 -0700)]
Merge branch 'vl/typofix' into maint
* vl/typofix:
random typofixes (committed missing a 't', successful missing an 's')
Junio C Hamano [Fri, 19 Jul 2013 17:42:52 +0000 (10:42 -0700)]
Merge branch 'wk/doc-git-has-grown' into maint
* wk/doc-git-has-grown:
user-manual: Update download size for Git and the kernel
Junio C Hamano [Fri, 19 Jul 2013 17:42:49 +0000 (10:42 -0700)]
Merge branch 'ys/cygstart' into maint
* ys/cygstart:
web--browse: support /usr/bin/cygstart on Cygwin
Junio C Hamano [Fri, 19 Jul 2013 17:42:46 +0000 (10:42 -0700)]
Merge branch 'mm/push-force-is-dangerous' into maint
* mm/push-force-is-dangerous:
Documentation/git-push.txt: explain better cases where --force is dangerous
Junio C Hamano [Fri, 19 Jul 2013 17:42:18 +0000 (10:42 -0700)]
Merge branch 'rs/logical-vs-binary-or' into maint
* rs/logical-vs-binary-or:
use logical OR (||) instead of binary OR (|) in logical context
Junio C Hamano [Fri, 19 Jul 2013 17:41:22 +0000 (10:41 -0700)]
Merge branch 'js/test-ln-s-add' into maint
* js/test-ln-s-add:
t4011: remove SYMLINKS prerequisite
t6035: use test_ln_s_add to remove SYMLINKS prerequisite
t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite
t3100: use test_ln_s_add to remove SYMLINKS prerequisite
t3030: use test_ln_s_add to remove SYMLINKS prerequisite
t0000: use test_ln_s_add to remove SYMLINKS prerequisite
tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)
tests: introduce test_ln_s_add
t3010: modernize style
test-chmtime: Fix exit code on Windows
Junio C Hamano [Fri, 19 Jul 2013 17:41:01 +0000 (10:41 -0700)]
Merge branch 'jk/apache-test-for-2.4' into maint
Allow our tests to run with newer Apache.
* jk/apache-test-for-2.4:
lib-httpd/apache.conf: check version only after mod_version loads
t/lib-httpd/apache.conf: configure an MPM module for apache 2.4
t/lib-httpd/apache.conf: load compat access module in apache 2.4
t/lib-httpd/apache.conf: load extra auth modules in apache 2.4
t/lib-httpd/apache.conf: do not use LockFile in apache >= 2.4
Junio C Hamano [Fri, 19 Jul 2013 17:40:57 +0000 (10:40 -0700)]
Merge branch 'tr/test-commit-only-on-orphan' into maint
* tr/test-commit-only-on-orphan:
Test 'commit --only' after 'checkout --orphan'
Junio C Hamano [Fri, 19 Jul 2013 17:40:53 +0000 (10:40 -0700)]
Merge branch 'sb/archive-zip-double-assignment-fix' into maint
* sb/archive-zip-double-assignment-fix:
archive-zip:write_zip_entry: Remove second reset of size variable to zero.
Junio C Hamano [Fri, 19 Jul 2013 17:39:12 +0000 (10:39 -0700)]
Merge branch 'th/bisect-skip-report-range-fix' into maint
The bisect log listed incorrect commits when bisection ends with
only skipped ones.
* th/bisect-skip-report-range-fix:
bisect: Fix log output for multi-parent skip ranges
Junio C Hamano [Fri, 19 Jul 2013 17:39:09 +0000 (10:39 -0700)]
Merge branch 'rs/tar-tests' into maint
* rs/tar-tests:
t5000: test long filenames
t5000: simplify tar-tree tests
t5000: use check_tar for prefix test
t5000: factor out check_tar
t5000, t5003: create directories for extracted files lazily
t5000: integrate export-subst tests into regular tests
Junio C Hamano [Fri, 19 Jul 2013 17:39:06 +0000 (10:39 -0700)]
Merge branch 'rr/column-doc' into maint
* rr/column-doc:
column doc: rewrite documentation for column.ui
Junio C Hamano [Fri, 19 Jul 2013 17:39:01 +0000 (10:39 -0700)]
Merge branch 'rs/discard-index-discard-array' into maint
* rs/discard-index-discard-array:
read-cache: free cache in discard_index
read-cache: add simple performance test
Junio C Hamano [Fri, 19 Jul 2013 17:38:18 +0000 (10:38 -0700)]
Merge branch 'tr/coverage' into maint
The test coverage framework was left broken for some time.
* tr/coverage:
coverage: build coverage-untested-functions by default
coverage: set DEFAULT_TEST_TARGET to avoid using prove
coverage: do not delete .gcno files before building
coverage: split build target into compile and test
Stefan Beller [Fri, 19 Jul 2013 16:26:24 +0000 (18:26 +0200)]
Documentation: "git reset <tree-ish> <pathspec>" takes a tree-ish, not tree-sh
Reported-By: Ibrahim M. Ghazal <imgx64@gmail.com>
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramsay Jones [Thu, 18 Jul 2013 20:02:12 +0000 (21:02 +0100)]
Add the LAST_ARG_MUST_BE_NULL macro
The sentinel function attribute is not understood by versions of
the gcc compiler prior to v4.0. At present, for earlier versions
of gcc, the build issues 108 warnings related to the unknown
attribute. In order to suppress the warnings, we conditionally
define the LAST_ARG_MUST_BE_NULL macro to provide the sentinel attribute
for gcc v4.0 and newer.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 18 Jul 2013 19:57:38 +0000 (12:57 -0700)]
Update draft release notes to 1.8.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 18 Jul 2013 19:59:59 +0000 (12:59 -0700)]
Merge branch 'jc/revert-clone-doc-update-for-push-from-shallow'
* jc/revert-clone-doc-update-for-push-from-shallow:
Revert "git-clone.txt: remove the restriction on pushing from a shallow clone"
Junio C Hamano [Thu, 18 Jul 2013 19:59:58 +0000 (12:59 -0700)]
Merge branch 'rs/mailmap-himself'
* rs/mailmap-himself:
.mailmap: René Scharfe has a new email address
Junio C Hamano [Thu, 18 Jul 2013 19:59:56 +0000 (12:59 -0700)]
Merge branch 'sb/mailmap-updates'
* sb/mailmap-updates:
.mailmap: combine more (email, name) to individual persons
.mailmap: Combine more (email, name) to individual persons
.mailmap: Map email addresses to names
Junio C Hamano [Thu, 18 Jul 2013 19:59:41 +0000 (12:59 -0700)]
Merge branch 'jk/in-pack-size-measurement'
"git cat-file --batch-check=<format>" is added, primarily to allow
on-disk footprint of objects in packfiles (often they are a lot
smaller than their true size, when expressed as deltas) to be
reported.
* jk/in-pack-size-measurement:
pack-revindex: radix-sort the revindex
pack-revindex: use unsigned to store number of objects
cat-file: split --batch input lines on whitespace
cat-file: add %(objectsize:disk) format atom
cat-file: add --batch-check=<format>
cat-file: refactor --batch option parsing
cat-file: teach --batch to stream blob objects
t1006: modernize output comparisons
teach sha1_object_info_extended a "disk_size" query
zero-initialize object_info structs
Junio C Hamano [Thu, 18 Jul 2013 19:59:34 +0000 (12:59 -0700)]
Merge branch 'bp/mediawiki-preview'
Add a command to allow previewing the contents locally before
pushing it out, when working with a MediaWiki remote.
I personally do not think this belongs to Git. If you are working
on a set of AsciiDoc source files, you sure do want to locally
format to preview what you will be pushing out, and if you are
working on a set of C or Java source files, you do want to test it
before pushing it out, too. That kind of thing belongs to your
build script, not to your SCM.
But I'll let it pass, as this is only a contrib/ thing.
* bp/mediawiki-preview:
git-remote-mediawiki: add preview subcommand into git mw
git-remote-mediawiki: add git-mw command
git-remote-mediawiki: factoring code between git-remote-mediawiki and Git::Mediawiki
git-remote-mediawiki: update tests to run with the new bin-wrapper
git-remote-mediawiki: add a git bin-wrapper for developement
wrap-for-bin: make bin-wrappers chainable
git-remote-mediawiki: introduction of Git::Mediawiki.pm
Junio C Hamano [Thu, 18 Jul 2013 19:58:19 +0000 (12:58 -0700)]
Merge branch 'bc/commit-invalid-utf8'
Logic to auto-detect character encodings in the commit log message
did not reject overlong and invalid UTF-8 characters.
* bc/commit-invalid-utf8:
commit: reject non-characters
commit: reject overlong UTF-8 sequences
commit: reject invalid UTF-8 codepoints
Junio C Hamano [Thu, 18 Jul 2013 19:58:17 +0000 (12:58 -0700)]
Merge branch 'es/overlapping-range-set'
* es/overlapping-range-set:
range_set: fix coalescing bug when range is a subset of another
t4211: fix broken test when one -L range is subset of another
Junio C Hamano [Thu, 18 Jul 2013 19:48:28 +0000 (12:48 -0700)]
Merge branch 'jk/maint-clone-shared-no-connectivity-validation'
"git clone -s/-l" is a filesystem level copy and does not offer any
protection against source repository being corrupt. While the
connectivity validation checks commits and trees being readable, it
made the otherwise instantaneous local modes of clone much more
expensive, without protecting blob data from bitflips.
* jk/maint-clone-shared-no-connectivity-validation:
clone: drop connectivity check for local clones
Junio C Hamano [Thu, 18 Jul 2013 19:48:25 +0000 (12:48 -0700)]
Merge branch 'bc/push-match-many-refs'
Pushing to repositories with many refs employed O(m*n) algorithm
where n is the number of refs on the receiving end.
* bc/push-match-many-refs:
remote.c: avoid O(m*n) behavior in match_push_refs
Junio C Hamano [Thu, 18 Jul 2013 19:48:20 +0000 (12:48 -0700)]
Merge branch 'rr/rebase-reflog-message-reword'
"git rebase [-i]" used to leave just "rebase" as its reflog message
for some operations. This rewords them to be more informative.
* rr/rebase-reflog-message-reword:
rebase -i: use a better reflog message
rebase: use a better reflog message
Thomas Rast [Thu, 18 Jul 2013 12:26:56 +0000 (14:26 +0200)]
show-branch: fix description of --date-order
The existing description reads as if it somehow applies a filter.
Change it to explain that it is merely about the ordering.
Message-proposed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Thu, 18 Jul 2013 12:26:55 +0000 (14:26 +0200)]
apply, entry: speak of submodules instead of subprojects
There are only four (with some generous rounding) instances in the
current source code where we speak of "subproject" instead of
"submodule". They are as follows:
* one error message in git-apply and two in entry.c
* the patch format for submodule changes
The latter was introduced in
0478675 (Expose subprojects as special
files to "git diff" machinery, 2007-04-15), apparently before the
terminology was settled. We can of course not change the patch
format.
Let's at least change the error messages to consistently call them
"submodule".
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Wed, 17 Jul 2013 20:16:31 +0000 (22:16 +0200)]
.mailmap: combine more (email, name) to individual persons
I got more responses from people regarding the .mailmap file.
All added persons gave permission to add them to the .mailmap file.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Wed, 17 Jul 2013 22:09:42 +0000 (00:09 +0200)]
parse_object_buffer: correct freeing the buffer
If we exit early in the function parse_object_buffer, we did not
write to *eaten_p. Then the calling function parse_object, which looks
like the following with respect to the eaten variable, cannot rely on a
proper value set in eaten, hence the freeing of the buffer depends
on random values in memory.
struct object *parse_object(const unsigned char *sha1)
{
int eaten;
...
obj = parse_object_buffer(sha1, type, size, buffer, &eaten);
if (!eaten)
free(buffer);
}
This change makes sure, the buffer freeing condition is deterministic.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:32 +0000 (17:25 -0400)]
blame-options.txt: explain that -L <start> and <end> are optional
The ability to omit either end of the -L range is a handy but
undocumented shortcut, and is thus not easily discovered. Fix this
shortcoming.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:31 +0000 (17:25 -0400)]
blame-options.txt: place each -L option variation on its own line
Standard practice in Git documentation is for each variation of an
option (such as: -p / --porcelain) to be placed on its own line in the
OPTIONS table. The -L option does not follow suit. It cuddles
"-L <start>,<end>" and "-L :<regex>", separated by a comma. This is
inconsistent and potentially confusing since the comma separating them
is typeset the same as the comma in "<start>,<end>". Fix this by placing
each variation on its own line.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:30 +0000 (17:25 -0400)]
t8001/t8002 (blame): add blame -L :funcname tests
git-blame inherited "-L :funcname" support when "-L :funcname:file" was
implemented for git-log. Add tests.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:29 +0000 (17:25 -0400)]
t8001/t8002 (blame): add blame -L tests
With the exception of a couple "corner case" checks in t8003 (and some
indirect tests in t4211 of -L parsing code shared by log -L), there is
no systematic checking of blame -L. Add tests to check blame -L
directly.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:28 +0000 (17:25 -0400)]
t8001/t8002 (blame): modernize style
In particular,
- indent with tabs
- cuddle test description and opening body quote with test_expect_foo
- normalize test descriptions and case
- remove whitepsace following redirection operator
- use standardized filenames (such as "actual", "expected")
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Wed, 17 Jul 2013 21:25:27 +0000 (17:25 -0400)]
line-range: fix "blame -L X,-N" regression
"blame -L X,-N" is documented as blaming "N lines ending at X". In
practice, the behavior is achieved by swapping the two range endpoints
if the second is less than the first.
25ed3412 (Refactor parse_loc;
2013-03-28) broke this interpretation by removing the swapping code from
blame.c and failing to add it to line-range.c along with other code
relocated from blame.c. Thus, such a range is effectively treated as
empty. Fix this regression.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Wed, 17 Jul 2013 19:54:25 +0000 (21:54 +0200)]
.mailmap: René Scharfe has a new email address
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Doug Bell [Wed, 17 Jul 2013 00:05:14 +0000 (19:05 -0500)]
show-ref: make --head always show the HEAD ref
The docs seem to say that doing
git show-ref --head --tags
would show both the HEAD ref and all the tag refs. However, doing
both --head and either of --tags or --heads would filter out the HEAD
ref.
Also update the documentation to describe the new behavior and add
tests for the show-ref command.
[jc: Doug did proofread the tests, but it was done by me and bugs in
it are mine].
Signed-off-by: Doug Bell <madcityzen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:40 +0000 (10:05 +0200)]
Documentation/git-log.txt: capitalize section names
This is the convention in most other files and even at the beginning of
git-log.txt
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:39 +0000 (10:05 +0200)]
Documentation: move description of -s, --no-patch to diff-options.txt
Technically, "-s, --no-patch" is implemented in diff.c ("git diff
--no-patch" is essentially useless, but valid). From the user point of
view, this allows the documentation to show up in "git show --help",
which is one of the most useful use of the option.
While we're there, add a sentence explaining why the option can be
useful.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:38 +0000 (10:05 +0200)]
Documentation/git-show.txt: include common diff options, like git-log.txt
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:37 +0000 (10:05 +0200)]
diff: allow --patch & cie to override -s/--no-patch
All options that trigger a patch output now override --no-patch.
The case of --binary deserves extra attention: the name may suggest that
it turns a normal patch into a binary patch, but it actually already
enables patch output when normally disabled (e.g. "git log --binary"
displays a patch), hence it makes sense for "git show --no-patch
--binary" to display the binary patch.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:36 +0000 (10:05 +0200)]
diff: allow --no-patch as synonym for -s
This follows the usual convention of having a --no-foo option to negate
--foo.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Tue, 16 Jul 2013 08:05:35 +0000 (10:05 +0200)]
t4000-diff-format.sh: modernize style
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Tue, 16 Jul 2013 00:10:36 +0000 (20:10 -0400)]
git-log.txt: fix typesetting of example "git-log -L" invocation
All surrounding examples are typeset as monospaced text. Follow suit.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Tue, 16 Jul 2013 09:27:37 +0000 (11:27 +0200)]
git: ensure 0/1/2 are open in main()
Not having an open FD in the 0--2 range can lead to strange results,
for example, a subsequent open() may return 2 (stderr) and then a
die() would clobber this file.
git-daemon and git-shell already guarded against this, but apparently
users also manage to trip over it in other git commands. So we call
sanitize_stdfds() during main git startup.
Since these FDs are inherited, this covers all use of 'git foo ...',
and all internal C commands when called directly. It does not fix
shell/perl commands called directly.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Tue, 16 Jul 2013 09:27:36 +0000 (11:27 +0200)]
daemon/shell: refactor redirection of 0/1/2 from /dev/null
Both daemon.c and shell.c contain logic to open FDs 0/1/2 from
/dev/null if they are not already open. Move the function in daemon.c
to setup.c and use it in shell.c, too.
While there, remove a 'not' that inverted the meaning of the comment.
The point is indeed to *avoid* messing up.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Dirk Wallenstein [Wed, 17 Jul 2013 17:28:11 +0000 (19:28 +0200)]
request-pull: improve error message for invalid revision args
Currently, when an invalid revision is specified, the error message is:
fatal: Needed a single revision
This is misleading because, you might think there is something wrong
with the command line as a whole.
Now the user gets a more meaningful error message, showing the invalid
revision.
Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthijs Kooijman [Thu, 11 Jul 2013 11:25:52 +0000 (13:25 +0200)]
upload-pack: remove a piece of dead code
Commit
682c7d2 (upload-pack: fix off-by-one depth calculation in shallow
clone) introduced a new check in get_shallow_commits to decide when to
stop traversing the history and mark the current commit as a shallow
root.
With this new check in place, the old check can no longer be true, since
the first check always fires first. This commit removes that check,
making the code a bit more simple again.
Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
Acked-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:33:21 +0000 (10:33 -0700)]
Update draft release notes to 1.8.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:45:02 +0000 (10:45 -0700)]
Sync with 1.8.3.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:39:43 +0000 (10:39 -0700)]
Git 1.8.3.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:36:14 +0000 (10:36 -0700)]
Merge branch 'tr/maint-apply-non-git-patch-parsefix' into maint
"git apply" parsed patches that add new files, generated by programs
other than Git, incorrectly. This is an old breakage in v1.7.11.
* tr/maint-apply-non-git-patch-parsefix:
apply: carefully strdup a possibly-NULL name
Junio C Hamano [Mon, 15 Jul 2013 17:36:01 +0000 (10:36 -0700)]
Merge branch 'bc/http-keep-memory-given-to-curl' into maint
Older cURL wanted piece of memory we call it with to be stable, but
we updated the auth material after handing it to a call.
* bc/http-keep-memory-given-to-curl:
http.c: don't rewrite the user:passwd string multiple times
Junio C Hamano [Mon, 15 Jul 2013 17:35:43 +0000 (10:35 -0700)]
Merge branch 'jk/pull-into-dirty-unborn' into maint
"git pull" into nothing trashed "local changes" that were in the
index.
* jk/pull-into-dirty-unborn:
pull: merge into unborn by fast-forwarding from empty tree
pull: update unborn branch tip after index
Junio C Hamano [Mon, 15 Jul 2013 17:35:17 +0000 (10:35 -0700)]
Merge branch 'fg/submodule-non-ascii-path' into maint
Many "git submodule" operations did not work on a submodule at a
path whose name is not in ASCII.
* fg/submodule-non-ascii-path:
t7400: test of UTF-8 submodule names pass under Mac OS
handle multibyte characters in name
Junio C Hamano [Mon, 15 Jul 2013 17:35:04 +0000 (10:35 -0700)]
Merge branch 'fc/sequencer-plug-leak' into maint
"cherry-pick" had a small leak in its error codepath.
* fc/sequencer-plug-leak:
sequencer: avoid leaking message buffer when refusing to create an empty commit
sequencer: remove useless indentation
Junio C Hamano [Mon, 15 Jul 2013 17:34:36 +0000 (10:34 -0700)]
Merge branch 'mt/send-email-cc-match-fix' into maint
Logic used by git-send-email to suppress cc mishandled names like "A
U. Thor" <author@example.xz>, where the human readable part needs to
be quoted (the user input may not have the double quotes around the
name, and comparison was done between quoted and unquoted strings).
It also mishandled names that need RFC2047 quoting.
* mt/send-email-cc-match-fix:
send-email: sanitize author when writing From line
send-email: add test for duplicate utf8 name
test-send-email: test for pre-sanitized self name
t/send-email: test suppress-cc=self with non-ascii
t/send-email: add test with quoted sender
send-email: make --suppress-cc=self sanitize input
t/send-email: test suppress-cc=self on cccmd
send-email: fix suppress-cc=self on cccmd
t/send-email.sh: add test for suppress-cc=self
Junio C Hamano [Mon, 15 Jul 2013 17:28:50 +0000 (10:28 -0700)]
Merge branch 'bc/send-email-use-port-as-separate-param'
Pass port number as a separate argument when send-email initializes
Net::SMTP, instead of as a part of the hostname, i.e. host:port.
This allows GSSAPI codepath to match with the hostname given.
* bc/send-email-use-port-as-separate-param:
send-email: provide port separately from hostname