]> Kevux Git Server - rit/log
rit
11 years agocache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
Michael Haggerty [Wed, 1 Oct 2014 10:28:15 +0000 (12:28 +0200)]
cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN

There are a few places that use these values, so define constants for
them.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agolockfile.c: document the various states of lock_file objects
Michael Haggerty [Wed, 1 Oct 2014 10:28:14 +0000 (12:28 +0200)]
lockfile.c: document the various states of lock_file objects

Document the valid states of lock_file objects, how they get into each
state, and how the state is encoded in the object's fields.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agolock_file(): always initialize and register lock_file object
Michael Haggerty [Wed, 1 Oct 2014 10:28:13 +0000 (12:28 +0200)]
lock_file(): always initialize and register lock_file object

The purpose of this change is to make the state diagram for
lock_file objects simpler and deterministic.

If locking fails, lock_file() sometimes leaves the lock_file object
partly initialized, but sometimes not. It sometimes registers the
object in lock_file_list, but sometimes not. This makes the state
diagram for lock_file objects effectively indeterministic and hard
to reason about. A future patch will also change the filename field
into a strbuf, which needs more involved initialization, so it will
become even more important that the state of a lock_file object is
well-defined after a failed attempt to lock.

The ambiguity doesn't currently have any ill effects, because
lock_file objects cannot be removed from the lock_file_list anyway.
But to make it easier to document and reason about the code, make
this behavior consistent: *always* initialize the lock_file object
and *always* register it in lock_file_list the first time it is
used, regardless of whether an error occurs.

While we're at it, make sure that all of the lock_file fields are
initialized to values appropriate for an unlocked object; the caller
is only responsible for making sure that on_list is set to zero before
the first time it is used.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agohold_lock_file_for_append(): release lock on errors
Michael Haggerty [Wed, 1 Oct 2014 10:28:12 +0000 (12:28 +0200)]
hold_lock_file_for_append(): release lock on errors

If there is an error copying the old contents to the lockfile, roll
back the lockfile before exiting so that the lockfile is not held
until process cleanup.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agolockfile: unlock file if lockfile permissions cannot be adjusted
Michael Haggerty [Wed, 1 Oct 2014 10:28:11 +0000 (12:28 +0200)]
lockfile: unlock file if lockfile permissions cannot be adjusted

If the call to adjust_shared_perm() fails, lock_file returns -1, which
to the caller looks like any other failure to lock the file.  So in
this case, roll back the lockfile before returning so that the lock
file is deleted immediately and the lockfile object is left in a
predictable state (namely, unlocked).  Previously, the lockfile was
retained until process cleanup in this situation.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorollback_lock_file(): set fd to -1
Michael Haggerty [Wed, 1 Oct 2014 10:28:10 +0000 (12:28 +0200)]
rollback_lock_file(): set fd to -1

When rolling back the lockfile, call close_lock_file() so that the
lock_file's fd field gets set back to -1. This keeps the lock_file
object in a valid state, which is important because these objects are
allowed to be reused. It also makes it unnecessary to check whether
the file has already been closed, because close_lock_file() takes care
of that.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorollback_lock_file(): exit early if lock is not active
Michael Haggerty [Wed, 1 Oct 2014 10:28:09 +0000 (12:28 +0200)]
rollback_lock_file(): exit early if lock is not active

Eliminate a layer of nesting.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Ronnie Sahlberg <sahlberg@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorollback_lock_file(): do not clear filename redundantly
Michael Haggerty [Wed, 1 Oct 2014 10:28:08 +0000 (12:28 +0200)]
rollback_lock_file(): do not clear filename redundantly

It is only necessary to clear the lock_file's filename field if it was
not already clear.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Ronnie Sahlberg <sahlberg@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoclose_lock_file(): exit (successfully) if file is already closed
Michael Haggerty [Wed, 1 Oct 2014 10:28:07 +0000 (12:28 +0200)]
close_lock_file(): exit (successfully) if file is already closed

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoapi-lockfile: revise and expand the documentation
Michael Haggerty [Wed, 1 Oct 2014 10:28:06 +0000 (12:28 +0200)]
api-lockfile: revise and expand the documentation

Document a couple more functions and the flags argument as used by
hold_lock_file_for_update() and hold_lock_file_for_append().
Reorganize the document to make it more accessible.

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Helped-by: Junio Hamano <gitster@pobox.com>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agounable_to_lock_die(): rename function from unable_to_lock_index_die()
Michael Haggerty [Wed, 1 Oct 2014 10:28:05 +0000 (12:28 +0200)]
unable_to_lock_die(): rename function from unable_to_lock_index_die()

This function is used for other things besides the index, so rename it
accordingly.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Ronnie Sahlberg <sahlberg@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodaemon: remove write-only variable maxfd
René Scharfe [Wed, 1 Oct 2014 10:21:57 +0000 (12:21 +0200)]
daemon: remove write-only variable maxfd

It became unused when 6573faff (NO_IPV6 support for git daemon) replaced
select() with poll().

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodaemon: fix error message after bind()
René Scharfe [Wed, 1 Oct 2014 10:18:15 +0000 (12:18 +0200)]
daemon: fix error message after bind()

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodaemon: handle gethostbyname() error
René Scharfe [Wed, 1 Oct 2014 10:16:17 +0000 (12:16 +0200)]
daemon: handle gethostbyname() error

If the user-supplied hostname can't be found then we should not use it.
We already avoid doing that in the non-NO_IPV6 case by checking if the
return value of getaddrinfo() is zero (success).  Do the same in the
NO_IPV6 case and make sure the return value of gethostbyname() isn't
NULL before dereferencing this pointer.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agosha1-lookup: handle duplicates in sha1_pos()
René Scharfe [Wed, 1 Oct 2014 15:02:37 +0000 (17:02 +0200)]
sha1-lookup: handle duplicates in sha1_pos()

If the first 18 bytes of the SHA1's of all entries are the same then
sha1_pos() dies and reports that the lower and upper limits of the
binary search were the same that this wasn't supposed to happen.  This
is wrong because the remaining two bytes could still differ.

Furthermore: It wouldn't be a problem if they actually were the same,
i.e. if all entries have the same SHA1.  The code already handles
duplicates just fine.  Simply remove the erroneous check.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agosha1-array: add test-sha1-array and basic tests
René Scharfe [Wed, 1 Oct 2014 15:00:33 +0000 (17:00 +0200)]
sha1-array: add test-sha1-array and basic tests

Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot0090: avoid passing empty string to printf %d
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>
11 years agoSync with 2.1.2
Junio C Hamano [Tue, 30 Sep 2014 05:17:57 +0000 (22:17 -0700)]
Sync with 2.1.2

* maint:
  Git 2.1.2

11 years agoMerge branch 'jt/itimer-autoconf'
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

11 years agoMerge branch 'jc/test-lazy-prereq'
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

11 years agoMerge branch 'sb/merge-recursive-copy-paste-fix'
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

11 years agoMerge branch 'pr/use-default-sigpipe-setting'
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

11 years agoGit 2.1.2
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>
11 years agoMerge branch 'jk/fsck-exit-code-fix' into maint
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()

11 years agoMerge branch 'ta/config-add-to-empty-or-true-fix' into maint
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

11 years agoMerge branch 'mk/reachable-protect-detached-head' into maint
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

11 years agoMerge branch 'mb/fast-import-delete-root' into maint
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

11 years agoMerge branch 'jk/index-pack-threading-races' into maint
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

11 years agoMerge branch 'jk/send-pack-many-refspecs' into maint
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

11 years agoMerge branch 'so/rebase-doc' into maint
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

11 years agotrace.c: do not mark getnanotime() as "inline"
Ben Walton [Sun, 28 Sep 2014 07:50:26 +0000 (08:50 +0100)]
trace.c: do not mark getnanotime() as "inline"

Oracle Studio compilers don't allow for static variables in
functions that are defined to be inline. GNU C does permit this.

Let's reference the C99 standard though, which doesn't allow for
inline functions to contain modifiable static variables.

Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 2.2
Junio C Hamano [Mon, 29 Sep 2014 19:44:43 +0000 (12:44 -0700)]
Update draft release notes to 2.2

11 years agoMerge branch 'jk/mbox-from-line'
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

11 years agoMerge branch 'sb/t6031-typofix'
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

11 years agoMerge branch 'sb/t9300-typofix'
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

11 years agoMerge branch 'rs/remote-simplify'
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

11 years agoMerge branch 'rs/graph-simplify'
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()

11 years agoMerge branch 'da/rev-parse-verify-quiet'
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

11 years agoMerge branch 'hj/pretty-naked-decoration'
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

11 years agoDocumentation/git-rebase.txt: document when --fork-point is auto-enabled
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>
11 years agot/lib-credential: use write_script
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>
11 years agoMerge branch 'maint'
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

11 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po into maint
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

11 years agoUpdate draft release notes to 2.2
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>
11 years agoMerge branch 'sb/help-unknown-command-sort-fix'
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

11 years agoMerge branch 'jk/branch-verbose-merged'
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

11 years agoMerge branch 'rs/realloc-array'
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

11 years agoMerge branch 'jk/close-stderr-of-credential-cache-deamon'
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

11 years agoMerge branch 'jc/ignore-sigpipe-while-running-hooks'
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

11 years agoMerge branch 'jk/prune-packed-server-info'
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

11 years agoMerge branch 'jc/hash-object-fsck-tag'
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

11 years agoMerge branch 'jc/hash-object'
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

11 years agoMerge branch 'js/fsck-tag-validation'
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

11 years agoMerge branch 'jk/faster-name-conflicts'
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

11 years agoMerge branch 'jk/write-packed-refs-via-stdio'
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

11 years agol10n: de.po: use comma before "um"
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>
11 years agol10n: de.po: change Email to E-Mail
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>
11 years agopo/TEAMS: add new member to German translation team
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>
11 years agoreceive-pack::hmac_sha1(): copy the entire SHA-1 hash out
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>
11 years agot7004: give the test a bit more stack space
Junio C Hamano [Tue, 23 Sep 2014 22:41:38 +0000 (15:41 -0700)]
t7004: give the test a bit more stack space

It was reported that the allocated stack space was too small for
some archs openSUSE buildfarm runs the tests on.  Double it while
also doubling the amount of data to be handled.

Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Suggested-by: Jeff King <peff@peff.net>
Tested-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agomerge-recursive: remove stale commented debugging code
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>
11 years agomerge-recursive: fix copy-paste mistake
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>
11 years agomailinfo: work around -Wstring-plus-int warning
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>
11 years agomingw.h: add dummy functions for sigset_t operations
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>
11 years agot6031-test-merge-recursive: do not forget to add file to be committed
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>
11 years agot9300-fast-import: fix typo in test description
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>
11 years agosha1_file: don't convert off_t to size_t too early to avoid potential die()
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>
11 years agoremote: simplify match_name_with_pattern() using strbuf
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>
11 years agograph: simplify graph_padding_line()
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>
11 years agoarchive: support filtering paths with glob
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>
11 years agoUpdate draft release notes to 2.2
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>
11 years agoSync with Git 2.1.1
Junio C Hamano [Fri, 19 Sep 2014 21:22:34 +0000 (14:22 -0700)]
Sync with Git 2.1.1

11 years agoGit 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>
11 years agoMerge branch 'et/spell-poll-infinite-with-minus-one-only' into maint
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

11 years agoMerge branch 'nd/fetch-pass-quiet-to-gc-child-process' into maint
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

11 years agoMerge branch 'jk/prune-top-level-refs-after-packing' into maint
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"

11 years agoMerge branch 'jk/fast-import-fixes' into maint
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

11 years agoMerge branch 'jn/unpack-trees-checkout-m-carry-deletion' into maint
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

11 years agoMerge branch 'sp/pack-protocol-doc-on-shallow' into maint
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

11 years agoMerge branch 'jk/prompt-stash-could-be-packed' into maint
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

11 years agoMerge branch 'rs/refresh-beyond-symlink' into maint
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

11 years agoMerge branch 'lf/bundle-exclusion' into maint
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

11 years agoMerge branch 'jc/apply-ws-prefix' into maint
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

11 years agoMerge branch 'jk/command-line-config-empty-string' into maint
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

11 years agoMerge branch 'jk/pretty-empty-format' into maint
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"

11 years agoMerge branch 'jk/fsck-exit-code-fix'
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()

11 years agoMerge branch 'so/rebase-doc'
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>

11 years agoMerge branch 'ir/makefile-typofix'
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

11 years agoMerge branch 'wk/pre-push-sample-hook'
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

11 years agoMerge branch 'ss/compat-default-source-for-newer-gnu'
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

11 years agoMerge branch 'mr/mark-i18n-log-rerere'
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

11 years agoMerge branch 'js/no-test-cmp-for-binaries'
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

11 years agoMerge branch 'ta/config-add-to-empty-or-true-fix'
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

11 years agoMerge branch 'sp/doc-update-index-cacheinfo'
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

11 years agoMerge branch 'rs/export-strbuf-addchars'
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()

11 years agoMerge branch 'kb/perf-trace'
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

11 years agoMerge branch 'jc/parseopt-verify-short-name'
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

11 years agoMerge branch 'mk/reachable-protect-detached-head'
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

11 years agoMerge branch 'tb/complete-diff-ignore-blank-lines'
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

11 years agoMerge branch 'as/calloc-takes-nmemb-then-size'
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