OSDN Git Service
Junio C Hamano [Tue, 14 Oct 2014 17:49:11 +0000 (10:49 -0700)]
Merge branch 'dt/cache-tree-repair'
This fixes a topic that has graduated to 'master'.
* dt/cache-tree-repair:
t0090: avoid passing empty string to printf %d
Junio C Hamano [Tue, 14 Oct 2014 17:49:06 +0000 (10:49 -0700)]
Merge branch 'so/rebase-doc-fork-point'
* so/rebase-doc-fork-point:
Documentation/git-rebase.txt: document when --fork-point is auto-enabled
Junio C Hamano [Tue, 14 Oct 2014 17:49:00 +0000 (10:49 -0700)]
Merge branch 'da/include-compat-util-first-in-c'
Code clean-up.
* da/include-compat-util-first-in-c:
cleanups: ensure that git-compat-util.h is included first
Junio C Hamano [Wed, 8 Oct 2014 20:08:55 +0000 (13:08 -0700)]
Update draft release notes to 2.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 8 Oct 2014 20:05:32 +0000 (13:05 -0700)]
Merge branch 'sp/stream-clean-filter'
When running a required clean filter, we do not have to mmap the
original before feeding the filter. Instead, stream the file
contents directly to the filter and process its output.
* sp/stream-clean-filter:
sha1_file: don't convert off_t to size_t too early to avoid potential die()
convert: stream from fd to required clean filter to reduce used address space
copy_fd(): do not close the input file descriptor
mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
config.c: add git_env_ulong() to parse environment variable
convert: drop arguments other than 'path' from would_convert_to_git()
Junio C Hamano [Wed, 8 Oct 2014 20:05:29 +0000 (13:05 -0700)]
Merge branch 'bw/use-write-script-in-tests'
* bw/use-write-script-in-tests:
t/lib-credential: use write_script
Junio C Hamano [Wed, 8 Oct 2014 20:05:25 +0000 (13:05 -0700)]
Merge branch 'nd/archive-pathspec'
"git archive" learned to filter what gets archived with pathspec.
* nd/archive-pathspec:
archive: support filtering paths with glob
Junio C Hamano [Wed, 8 Oct 2014 20:05:15 +0000 (13:05 -0700)]
Merge branch 'jc/push-cert'
Allow "git push" request to be signed, so that it can be verified and
audited, using the GPG signature of the person who pushed, that the
tips of branches at a public repository really point the commits
the pusher wanted to, without having to "trust" the server.
* jc/push-cert: (24 commits)
receive-pack::hmac_sha1(): copy the entire SHA-1 hash out
signed push: allow stale nonce in stateless mode
signed push: teach smart-HTTP to pass "git push --signed" around
signed push: fortify against replay attacks
signed push: add "pushee" header to push certificate
signed push: remove duplicated protocol info
send-pack: send feature request on push-cert packet
receive-pack: GPG-validate push certificates
push: the beginning of "git push --signed"
pack-protocol doc: typofix for PKT-LINE
gpg-interface: move parse_signature() to where it should be
gpg-interface: move parse_gpg_output() to where it should be
send-pack: clarify that cmds_sent is a boolean
send-pack: refactor inspecting and resetting status and sending commands
send-pack: rename "new_refs" to "need_pack_data"
receive-pack: factor out capability string generation
send-pack: factor out capability string generation
send-pack: always send capabilities
send-pack: refactor decision to send update per ref
send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
...
Junio C Hamano [Tue, 7 Oct 2014 20:41:03 +0000 (13:41 -0700)]
Sync with maint
* maint:
git-tag.txt: Add a missing hyphen to `-s`
Junio C Hamano [Tue, 7 Oct 2014 20:40:51 +0000 (13:40 -0700)]
Merge branch 'maint-2.0' into maint
* maint-2.0:
git-tag.txt: Add a missing hyphen to `-s`
Junio C Hamano [Tue, 7 Oct 2014 20:40:39 +0000 (13:40 -0700)]
Merge branch 'maint-1.9' into maint-2.0
* maint-1.9:
git-tag.txt: Add a missing hyphen to `-s`
Junio C Hamano [Tue, 7 Oct 2014 20:40:19 +0000 (13:40 -0700)]
Merge branch 'maint-1.8.5' into maint-1.9
* maint-1.8.5:
git-tag.txt: Add a missing hyphen to `-s`
Junio C Hamano [Tue, 7 Oct 2014 20:39:24 +0000 (13:39 -0700)]
Merge branch 'jk/mbox-from-line' into maint
Some MUAs mangled a line in a message that begins with "From " to
">From " when writing to a mailbox file and feeding such an input to
"git am" used to lose such a line.
* jk/mbox-from-line:
mailinfo: work around -Wstring-plus-int warning
mailinfo: make ">From" in-body header check more robust
Wieland Hoffmann [Sat, 4 Oct 2014 16:27:16 +0000 (18:27 +0200)]
git-tag.txt: Add a missing hyphen to `-s`
Signed-off-by: Wieland Hoffmann <themineo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Tue, 30 Sep 2014 17:42:03 +0000 (19:42 +0200)]
t0090: avoid passing empty string to printf %d
FreeBSD's printf(1) doesn't accept empty strings for numerical format
specifiers:
$ printf "%d\n" "" >/dev/null; echo $?
printf: : expected numeric value
1
Initialize the AWK variable c to make sure the shell variable
subtree_count always contains a numerical value, in order to keep the
subsequently called printf happy.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 30 Sep 2014 05:17:57 +0000 (22:17 -0700)]
Sync with 2.1.2
* maint:
Git 2.1.2
Junio C Hamano [Tue, 30 Sep 2014 05:17:23 +0000 (22:17 -0700)]
Merge branch 'jt/itimer-autoconf'
setitmer(2) and related API elements can be configured from
Makefile but autoconf did not know about it.
* jt/itimer-autoconf:
autoconf: check for setitimer()
autoconf: check for struct itimerval
git-compat-util.h: add missing semicolon after struct itimerval
Junio C Hamano [Tue, 30 Sep 2014 05:17:22 +0000 (22:17 -0700)]
Merge branch 'jc/test-lazy-prereq'
Test-script clean-up.
* jc/test-lazy-prereq:
tests: drop GIT_*_TIMING_TESTS environment variable support
Junio C Hamano [Tue, 30 Sep 2014 05:17:21 +0000 (22:17 -0700)]
Merge branch 'sb/merge-recursive-copy-paste-fix'
"git merge-recursive" had a small bug that could have made it
mishandle "one side deleted, the other side did not touch it" in a
rare corner case, where the other side actually did touch to cause
the blob object names to be different but both blobs before and
after the change normalize to the same (e.g. correcting mistake to
check in a blob with CRLF line endings by replacing it with another
blob that records the same contents with LF line endings).
* sb/merge-recursive-copy-paste-fix:
merge-recursive: remove stale commented debugging code
merge-recursive: fix copy-paste mistake
Junio C Hamano [Tue, 30 Sep 2014 05:17:20 +0000 (22:17 -0700)]
Merge branch 'pr/use-default-sigpipe-setting'
We used to get confused when a process called us with SIGPIPE
ignored; we do want to die with SIGPIPE when the output is not
read by default, and do ignore the signal when appropriate.
* pr/use-default-sigpipe-setting:
mingw.h: add dummy functions for sigset_t operations
unblock and unignore SIGPIPE
Junio C Hamano [Tue, 30 Sep 2014 05:15:00 +0000 (22:15 -0700)]
Git 2.1.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 30 Sep 2014 05:10:55 +0000 (22:10 -0700)]
Merge branch 'jk/fsck-exit-code-fix' into maint
"git fsck" failed to report that it found corrupt objects via its
exit status in some cases.
* jk/fsck-exit-code-fix:
fsck: return non-zero status on missing ref tips
fsck: exit with non-zero status upon error from fsck_obj()
Junio C Hamano [Tue, 30 Sep 2014 05:10:25 +0000 (22:10 -0700)]
Merge branch 'ta/config-add-to-empty-or-true-fix' into maint
"git config --add section.var val" used to lose existing
section.var whose value was an empty string.
* ta/config-add-to-empty-or-true-fix:
config: avoid a funny sentinel value "a^"
make config --add behave correctly for empty and NULL values
Junio C Hamano [Tue, 30 Sep 2014 05:10:04 +0000 (22:10 -0700)]
Merge branch 'mk/reachable-protect-detached-head' into maint
Reachability check (used in "git prune" and friends) did not add a
detached HEAD as a starting point to traverse objects still in use.
* mk/reachable-protect-detached-head:
reachable.c: add HEAD to reachability starting commits
Junio C Hamano [Tue, 30 Sep 2014 05:09:47 +0000 (22:09 -0700)]
Merge branch 'mb/fast-import-delete-root' into maint
An attempt to remove the entire tree in the "git fast-import" input
stream caused it to misbehave.
* mb/fast-import-delete-root:
fast-import: fix segfault in store_tree()
t9300: test filedelete command
Junio C Hamano [Tue, 30 Sep 2014 05:09:24 +0000 (22:09 -0700)]
Merge branch 'jk/index-pack-threading-races' into maint
When receiving an invalid pack stream that records the same object
twice, multiple threads got confused due to a race.
* jk/index-pack-threading-races:
index-pack: fix race condition with duplicate bases
Junio C Hamano [Tue, 30 Sep 2014 05:08:17 +0000 (22:08 -0700)]
Merge branch 'jk/send-pack-many-refspecs' into maint
"git push" over HTTP transport had an artificial limit on number of
refs that can be pushed imposed by the command line length.
* jk/send-pack-many-refspecs:
send-pack: take refspecs over stdin
Junio C Hamano [Tue, 30 Sep 2014 05:08:12 +0000 (22:08 -0700)]
Merge branch 'so/rebase-doc' into maint
* so/rebase-doc:
Documentation/git-rebase.txt: <upstream> must be given to specify <branch>
Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
Junio C Hamano [Mon, 29 Sep 2014 19:44:43 +0000 (12:44 -0700)]
Update draft release notes to 2.2
Junio C Hamano [Mon, 29 Sep 2014 19:36:15 +0000 (12:36 -0700)]
Merge branch 'jk/mbox-from-line'
Some MUAs mangled a line in a message that begins with "From " to
">From " when writing to a mailbox file and feeding such an input
to "git am" used to lose such a line.
* jk/mbox-from-line:
mailinfo: work around -Wstring-plus-int warning
mailinfo: make ">From" in-body header check more robust
Junio C Hamano [Mon, 29 Sep 2014 19:36:14 +0000 (12:36 -0700)]
Merge branch 'sb/t6031-typofix'
* sb/t6031-typofix:
t6031-test-merge-recursive: do not forget to add file to be committed
Junio C Hamano [Mon, 29 Sep 2014 19:36:13 +0000 (12:36 -0700)]
Merge branch 'sb/t9300-typofix'
* sb/t9300-typofix:
t9300-fast-import: fix typo in test description
Junio C Hamano [Mon, 29 Sep 2014 19:36:12 +0000 (12:36 -0700)]
Merge branch 'rs/remote-simplify'
* rs/remote-simplify:
remote: simplify match_name_with_pattern() using strbuf
Junio C Hamano [Mon, 29 Sep 2014 19:36:11 +0000 (12:36 -0700)]
Merge branch 'rs/graph-simplify'
* rs/graph-simplify:
graph: simplify graph_padding_line()
Junio C Hamano [Mon, 29 Sep 2014 19:36:10 +0000 (12:36 -0700)]
Merge branch 'da/rev-parse-verify-quiet'
"rev-parse --verify --quiet $name" is meant to quietly exit with a
non-zero status when $name is not a valid object name, but still
gave error messages in some cases.
* da/rev-parse-verify-quiet:
stash: prefer --quiet over shell redirection of the standard error stream
refs: make rev-parse --quiet actually quiet
t1503: use test_must_be_empty
Documentation: a note about stdout for git rev-parse --verify --quiet
Junio C Hamano [Mon, 29 Sep 2014 19:36:08 +0000 (12:36 -0700)]
Merge branch 'hj/pretty-naked-decoration'
The pretty-format specifier "%d", which expanded to " (tagname)"
for a tagged commit, gained a cousin "%D" that just gives the
"tagname" without frills.
* hj/pretty-naked-decoration:
pretty: add %D format specifier
Sergey Organov [Thu, 18 Sep 2014 19:03:25 +0000 (23:03 +0400)]
Documentation/git-rebase.txt: document when --fork-point is auto-enabled
Running "git rebase" without giving a specific commit with respect
to which the operation is done enables --fork-point mode, while
telling the command to rebase with respect to a specific commit,
i.e. "git rebase <upstream>" does not.
This was not mentioned in the DESCRIPTION section of the manual
page, even though the case of omitted <upstream> was otherwise
discussed. That in turn made actual behavior of vanilla "git
rebase" hardly discoverable.
While we are at it, clarify the --fork-point description itself as
well.
Signed-off-by: Sergey Organov <sorganov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ben Walton [Mon, 29 Sep 2014 07:02:07 +0000 (08:02 +0100)]
t/lib-credential: use write_script
Use write_script to create the helper "askpass" script, instead of
hand-creating it with hardcoded "#!/bin/sh" to make sure we use the
shell the user told us to use.
Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 28 Sep 2014 07:03:25 +0000 (00:03 -0700)]
Merge branch 'maint'
* maint:
l10n: de.po: use comma before "um"
l10n: de.po: change Email to E-Mail
po/TEAMS: add new member to German translation team
Junio C Hamano [Sun, 28 Sep 2014 07:02:57 +0000 (00:02 -0700)]
Merge branch 'maint' of git://github.com/git-l10n/git-po into maint
* 'maint' of git://github.com/git-l10n/git-po:
l10n: de.po: use comma before "um"
l10n: de.po: change Email to E-Mail
po/TEAMS: add new member to German translation team
Junio C Hamano [Fri, 26 Sep 2014 21:51:23 +0000 (14:51 -0700)]
Update draft release notes to 2.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 26 Sep 2014 21:39:46 +0000 (14:39 -0700)]
Merge branch 'sb/help-unknown-command-sort-fix'
Code cleanup.
* sb/help-unknown-command-sort-fix:
help: fix the size passed to qsort
Junio C Hamano [Fri, 26 Sep 2014 21:39:45 +0000 (14:39 -0700)]
Merge branch 'jk/branch-verbose-merged'
The "--verbose" option no longer breaks "git branch --merged $it".
* jk/branch-verbose-merged:
branch: clean up commit flags after merge-filter walk
Junio C Hamano [Fri, 26 Sep 2014 21:39:45 +0000 (14:39 -0700)]
Merge branch 'rs/realloc-array'
Code cleanup.
* rs/realloc-array:
use REALLOC_ARRAY for changing the allocation size of arrays
add macro REALLOC_ARRAY
Junio C Hamano [Fri, 26 Sep 2014 21:39:45 +0000 (14:39 -0700)]
Merge branch 'jk/close-stderr-of-credential-cache-deamon'
Plug fd leaks.
* jk/close-stderr-of-credential-cache-deamon:
credential-cache: close stderr in daemon process
Junio C Hamano [Fri, 26 Sep 2014 21:39:44 +0000 (14:39 -0700)]
Merge branch 'jc/ignore-sigpipe-while-running-hooks'
pre- and post-receive hooks are no longer required to read all
their inputs.
* jc/ignore-sigpipe-while-running-hooks:
receive-pack: allow hooks to ignore its standard input stream
Junio C Hamano [Fri, 26 Sep 2014 21:39:44 +0000 (14:39 -0700)]
Merge branch 'jk/prune-packed-server-info'
Code cleanup.
* jk/prune-packed-server-info:
repack: call prune_packed_objects() and update_server_info() directly
server-info: clean up after writing info/packs
make update-server-info more robust
prune-packed: fix minor memory leak
Junio C Hamano [Fri, 26 Sep 2014 21:39:44 +0000 (14:39 -0700)]
Merge branch 'jc/hash-object-fsck-tag'
Using "hash-object --literally", test one of the new breakages
js/fsck-tag-validation topic teaches "fsck" to catch is caught.
* jc/hash-object-fsck-tag:
t1450: make sure fsck detects a malformed tagger line
Junio C Hamano [Fri, 26 Sep 2014 21:39:43 +0000 (14:39 -0700)]
Merge branch 'jc/hash-object'
"hash-object" learned a new "--literally" option to hash any random
garbage into a loose object, to allow us to create a test data for
mechanisms to catch corrupt objects.
* jc/hash-object:
hash-object: add --literally option
hash-object: pass 'write_object' as a flag
hash-object: reduce file-scope statics
Junio C Hamano [Fri, 26 Sep 2014 21:39:43 +0000 (14:39 -0700)]
Merge branch 'js/fsck-tag-validation'
Teach "git fsck" to inspect the contents of annotated tag objects.
* js/fsck-tag-validation:
Make sure that index-pack --strict checks tag objects
Add regression tests for stricter tag fsck'ing
fsck: check tag objects' headers
Make sure fsck_commit_buffer() does not run out of the buffer
fsck_object(): allow passing object data separately from the object itself
Refactor type_from_string() to allow continuing after detecting an error
Junio C Hamano [Fri, 26 Sep 2014 21:39:43 +0000 (14:39 -0700)]
Merge branch 'jk/faster-name-conflicts'
Optimize the check to see if a ref $F can be created by making sure
no existing ref has $F/ as its prefix, which especially matters in
a repository with a large number of existing refs.
* jk/faster-name-conflicts:
refs: speed up is_refname_available
Junio C Hamano [Fri, 26 Sep 2014 21:39:42 +0000 (14:39 -0700)]
Merge branch 'jk/write-packed-refs-via-stdio'
Optimize the code path to write out the packed-refs file, which
especially matters in a repository with a large number of refs.
* jk/write-packed-refs-via-stdio:
refs: write packed_refs file using stdio
Phillip Sz [Tue, 23 Sep 2014 12:00:52 +0000 (14:00 +0200)]
l10n: de.po: use comma before "um"
This patch adds a comma before the "um". See:
http://www.duden.de/sprachwissen/rechtschreibregeln/komma#K117
Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Phillip Sz [Sat, 20 Sep 2014 15:51:53 +0000 (17:51 +0200)]
l10n: de.po: change Email to E-Mail
Change all Email to E-Mail, as this is the correct form in German.
Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Ralf Thielow [Fri, 5 Sep 2014 16:30:49 +0000 (18:30 +0200)]
po/TEAMS: add new member to German translation team
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Brian Gernhardt [Thu, 25 Sep 2014 15:02:20 +0000 (11:02 -0400)]
receive-pack::hmac_sha1(): copy the entire SHA-1 hash out
clang gives the following warning:
builtin/receive-pack.c:327:35: error: sizeof on array function
parameter will return size of 'unsigned char *' instead of 'unsigned
char [20]' [-Werror,-Wsizeof-array-argument]
git_SHA1_Update(&ctx, out, sizeof(out));
^
builtin/receive-pack.c:292:37: note: declared here
static void hmac_sha1(unsigned char out[20],
^
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Tue, 23 Sep 2014 14:55:50 +0000 (16:55 +0200)]
merge-recursive: remove stale commented debugging code
Signed-off-by: Stefan Beller <stefanbeller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Sun, 21 Sep 2014 20:49:46 +0000 (22:49 +0200)]
merge-recursive: fix copy-paste mistake
The following issue was found by scan.coverity.com (ID:
1049510),
and claimed to be likely a copy-paste mistake.
Introduced in
331a1838b (2010-07-02, Try normalizing files
to avoid delete/modify conflicts when merging), which is
quite a long time ago, so I'm rather unsure if it's of any impact
or just went unnoticed.
The line after the changed line has a comparison of 'o.len' to 'a.len',
so we should assume the lengths may be different.
I'd be happy to have a test for this bug(?) attached to
t6031-merge-recursive.sh, but I did not manage to
come up with a test in a reasonable amount of time.
Signed-off-by: Stefan Beller <stefanbeller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Sun, 21 Sep 2014 09:13:58 +0000 (05:13 -0400)]
mailinfo: work around -Wstring-plus-int warning
The just-released Apple Xcode 6.0.1 has -Wstring-plus-int enabled by
default which complains about pointer arithmetic applied to a string
literal:
builtin/mailinfo.c:303:24: warning:
adding 'long' to a string does not append to the string
return !memcmp(SAMPLE + (cp - line), cp, strlen(SAMPLE) ...
~~~~~~~^~~~~~~~~~~~~
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 22 Sep 2014 18:24:34 +0000 (20:24 +0200)]
mingw.h: add dummy functions for sigset_t operations
Windows does not have POSIX-like signals, and so we ignore all
operations on the non-existent signal mask machinery.
Do not turn sigemptyset into a function, but leave it a macro that
erases the code in the argument because it is used to set sa_mask
of a struct sigaction, but our dummy in mingw.h does not have that
member.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Sun, 21 Sep 2014 20:38:17 +0000 (22:38 +0200)]
t6031-test-merge-recursive: do not forget to add file to be committed
Signed-off-by: Stefan Beller <stefanbeller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Sun, 21 Sep 2014 15:02:57 +0000 (17:02 +0200)]
t9300-fast-import: fix typo in test description
Signed-off-by: Stefan Beller <stefanbeller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Steffen Prohaska [Sun, 21 Sep 2014 10:03:26 +0000 (12:03 +0200)]
sha1_file: don't convert off_t to size_t too early to avoid potential die()
xsize_t() checks if an off_t argument can be safely converted to
a size_t return value. If the check is executed too early, it could
fail for large files on 32-bit architectures even if the size_t code
path is not taken. Other paths might be able to handle the large file.
Specifically, index_stream_convert_blob() is able to handle a large file
if a filter is configured that returns a small result.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sun, 21 Sep 2014 08:23:37 +0000 (10:23 +0200)]
remote: simplify match_name_with_pattern() using strbuf
Make the code simpler and shorter by avoiding repetitive use of
string length variables and leaving memory allocation to strbuf
functions.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sat, 20 Sep 2014 18:29:53 +0000 (20:29 +0200)]
graph: simplify graph_padding_line()
Deduplicate code common to both branches of if statements.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Sun, 21 Sep 2014 03:55:06 +0000 (10:55 +0700)]
archive: support filtering paths with glob
This patch fixes two problems with using :(glob) (or even "*.c"
without ":(glob)").
The first one is we forgot to turn on the 'recursive' flag in struct
pathspec. Without that, tree_entry_interesting() will not mark
potential directories "interesting" so that it can confirm whether
those directories have anything matching the pathspec.
The marking directories interesting has a side effect that we need to
walk inside a directory to realize that there's nothing interested in
there. By that time, 'archive' code has already written the (empty)
directory down. That means lots of empty directories in the result
archive.
This problem is fixed by lazily writing directories down when we know
they are actually needed. There is a theoretical bug in this
implementation: we can't write empty trees/directories that match that
pathspec.
path_exists() is also made stricter in order to detect non-matching
pathspec because when this 'recursive' flag is on, we most likely
match some directories. The easiest way is not consider any
directories "matched".
Noticed-by: Peter Wu <peter@lekensteyn.nl>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Sep 2014 18:51:14 +0000 (11:51 -0700)]
Update draft release notes to 2.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Sep 2014 21:22:34 +0000 (14:22 -0700)]
Sync with Git 2.1.1
Junio C Hamano [Fri, 19 Sep 2014 21:21:31 +0000 (14:21 -0700)]
Git 2.1.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Sep 2014 21:05:13 +0000 (14:05 -0700)]
Merge branch 'et/spell-poll-infinite-with-minus-one-only' into maint
* et/spell-poll-infinite-with-minus-one-only:
upload-pack: keep poll(2)'s timeout to -1
Junio C Hamano [Fri, 19 Sep 2014 21:05:12 +0000 (14:05 -0700)]
Merge branch 'nd/fetch-pass-quiet-to-gc-child-process' into maint
* nd/fetch-pass-quiet-to-gc-child-process:
fetch: silence git-gc if --quiet is given
fetch: convert argv_gc_auto to struct argv_array
Junio C Hamano [Fri, 19 Sep 2014 21:05:12 +0000 (14:05 -0700)]
Merge branch 'jk/prune-top-level-refs-after-packing' into maint
* jk/prune-top-level-refs-after-packing:
pack-refs: prune top-level refs like "refs/foo"
Junio C Hamano [Fri, 19 Sep 2014 21:05:12 +0000 (14:05 -0700)]
Merge branch 'jk/fast-import-fixes' into maint
* jk/fast-import-fixes:
fast-import: fix buffer overflow in dump_tags
fast-import: clean up pack_data pointer in end_packfile
Junio C Hamano [Fri, 19 Sep 2014 21:05:12 +0000 (14:05 -0700)]
Merge branch 'jn/unpack-trees-checkout-m-carry-deletion' into maint
* jn/unpack-trees-checkout-m-carry-deletion:
checkout -m: attempt merge when deletion of path was staged
unpack-trees: use 'cuddled' style for if-else cascade
unpack-trees: simplify 'all other failures' case
Junio C Hamano [Fri, 19 Sep 2014 21:05:11 +0000 (14:05 -0700)]
Merge branch 'sp/pack-protocol-doc-on-shallow' into maint
* sp/pack-protocol-doc-on-shallow:
Document LF appearing in shallow command during send-pack/receive-pack
Junio C Hamano [Fri, 19 Sep 2014 21:05:11 +0000 (14:05 -0700)]
Merge branch 'jk/prompt-stash-could-be-packed' into maint
* jk/prompt-stash-could-be-packed:
git-prompt: do not look for refs/stash in $GIT_DIR
Junio C Hamano [Fri, 19 Sep 2014 21:05:11 +0000 (14:05 -0700)]
Merge branch 'rs/refresh-beyond-symlink' into maint
* rs/refresh-beyond-symlink:
read-cache: check for leading symlinks when refreshing index
Junio C Hamano [Fri, 19 Sep 2014 21:05:11 +0000 (14:05 -0700)]
Merge branch 'lf/bundle-exclusion' into maint
* lf/bundle-exclusion:
bundle: fix exclusion of annotated tags
Junio C Hamano [Fri, 19 Sep 2014 21:05:10 +0000 (14:05 -0700)]
Merge branch 'jc/apply-ws-prefix' into maint
* jc/apply-ws-prefix:
apply: omit ws check for excluded paths
apply: hoist use_patch() helper for path exclusion up
apply: use the right attribute for paths in non-Git patches
Conflicts:
builtin/apply.c
Junio C Hamano [Fri, 19 Sep 2014 21:05:10 +0000 (14:05 -0700)]
Merge branch 'jk/command-line-config-empty-string' into maint
* jk/command-line-config-empty-string:
config: teach "git -c" to recognize an empty string
Conflicts:
config.c
Junio C Hamano [Fri, 19 Sep 2014 21:05:09 +0000 (14:05 -0700)]
Merge branch 'jk/pretty-empty-format' into maint
* jk/pretty-empty-format:
pretty: make empty userformats truly empty
pretty: treat "--format=" as an empty userformat
revision: drop useless string offset when parsing "--pretty"
Junio C Hamano [Fri, 19 Sep 2014 18:38:42 +0000 (11:38 -0700)]
Merge branch 'jk/fsck-exit-code-fix'
"git fsck" failed to report that it found corrupt objects via its
exit status in some cases.
* jk/fsck-exit-code-fix:
fsck: return non-zero status on missing ref tips
fsck: exit with non-zero status upon error from fsck_obj()
Junio C Hamano [Fri, 19 Sep 2014 18:38:42 +0000 (11:38 -0700)]
Merge branch 'so/rebase-doc'
* so/rebase-doc:
Documentation/git-rebase.txt: <upstream> must be given to specify <branch>
Junio C Hamano [Fri, 19 Sep 2014 18:38:41 +0000 (11:38 -0700)]
Merge branch 'ir/makefile-typofix'
* ir/makefile-typofix:
Makefile: fix some typos in the preamble
Junio C Hamano [Fri, 19 Sep 2014 18:38:41 +0000 (11:38 -0700)]
Merge branch 'wk/pre-push-sample-hook'
* wk/pre-push-sample-hook:
pre-push.sample: Write error message to stderr
Junio C Hamano [Fri, 19 Sep 2014 18:38:41 +0000 (11:38 -0700)]
Merge branch 'ss/compat-default-source-for-newer-gnu'
* ss/compat-default-source-for-newer-gnu:
compat-util: add _DEFAULT_SOURCE define
Junio C Hamano [Fri, 19 Sep 2014 18:38:40 +0000 (11:38 -0700)]
Merge branch 'mr/mark-i18n-log-rerere'
* mr/mark-i18n-log-rerere:
builtin/log.c: mark strings for translation
rerere.h: mark string for translation
Junio C Hamano [Fri, 19 Sep 2014 18:38:40 +0000 (11:38 -0700)]
Merge branch 'js/no-test-cmp-for-binaries'
* js/no-test-cmp-for-binaries:
t9300: use test_cmp_bin instead of test_cmp to compare binary files
Junio C Hamano [Fri, 19 Sep 2014 18:38:40 +0000 (11:38 -0700)]
Merge branch 'ta/config-add-to-empty-or-true-fix'
"git config --add section.var val" used to lose existing
section.var whose value was an empty string.
* ta/config-add-to-empty-or-true-fix:
config: avoid a funny sentinel value "a^"
make config --add behave correctly for empty and NULL values
Junio C Hamano [Fri, 19 Sep 2014 18:38:39 +0000 (11:38 -0700)]
Merge branch 'sp/doc-update-index-cacheinfo'
* sp/doc-update-index-cacheinfo:
Documentation: use single-parameter --cacheinfo in example
Junio C Hamano [Fri, 19 Sep 2014 18:38:39 +0000 (11:38 -0700)]
Merge branch 'rs/export-strbuf-addchars'
Code clean-up.
* rs/export-strbuf-addchars:
strbuf: use strbuf_addchars() for adding a char multiple times
strbuf: export strbuf_addchars()
Junio C Hamano [Fri, 19 Sep 2014 18:38:39 +0000 (11:38 -0700)]
Merge branch 'kb/perf-trace'
Compilation fix for some compilers.
* kb/perf-trace:
trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
Junio C Hamano [Fri, 19 Sep 2014 18:38:38 +0000 (11:38 -0700)]
Merge branch 'jc/parseopt-verify-short-name'
Add checks for a common programming mistake to assign the same
short option name to two separate options to help developers.
* jc/parseopt-verify-short-name:
parse-options: detect attempt to add a duplicate short option name
Junio C Hamano [Fri, 19 Sep 2014 18:38:38 +0000 (11:38 -0700)]
Merge branch 'mk/reachable-protect-detached-head'
* mk/reachable-protect-detached-head:
reachable.c: add HEAD to reachability starting commits
Junio C Hamano [Fri, 19 Sep 2014 18:38:38 +0000 (11:38 -0700)]
Merge branch 'tb/complete-diff-ignore-blank-lines'
* tb/complete-diff-ignore-blank-lines:
completion: Add --ignore-blank-lines for diff
Junio C Hamano [Fri, 19 Sep 2014 18:38:37 +0000 (11:38 -0700)]
Merge branch 'as/calloc-takes-nmemb-then-size'
Code clean-up.
* as/calloc-takes-nmemb-then-size:
calloc() and xcalloc() takes nmemb and then size
Junio C Hamano [Fri, 19 Sep 2014 18:38:37 +0000 (11:38 -0700)]
Merge branch 'tb/crlf-tests'
* tb/crlf-tests:
MinGW: update tests to handle a native eol of crlf
Makefile: propagate NATIVE_CRLF to C
t0027: Tests for core.eol=native, eol=lf, eol=crlf
Junio C Hamano [Fri, 19 Sep 2014 18:38:36 +0000 (11:38 -0700)]
Merge branch 'rs/simplify-http-walker'
Code clean-up.
* rs/simplify-http-walker:
http-walker: simplify process_alternates_response() using strbuf
Junio C Hamano [Fri, 19 Sep 2014 18:38:36 +0000 (11:38 -0700)]
Merge branch 'rs/simplify-config-include'
Code clean-up.
* rs/simplify-config-include:
config: simplify git_config_include()
Junio C Hamano [Fri, 19 Sep 2014 18:38:36 +0000 (11:38 -0700)]
Merge branch 'rs/merge-tree-simplify'
Code clean-up.
* rs/merge-tree-simplify:
merge-tree: remove unused df_conflict arguments