gitweb.git
sha1_file: restore OBJECT_INFO_QUICK functionalityJonathan Tan Tue, 13 Mar 2018 15:30:29 +0000 (08:30 -0700)

sha1_file: restore OBJECT_INFO_QUICK functionality

Support for the OBJECT_INFO_QUICK flag in sha1_object_info_extended()
was added in commit dfdd4afcf9 ("sha1_file: teach
sha1_object_info_extended more flags", 2017-06-26) in order to support
commit e83e71c5e1 ("sha1_file: refactor has_sha1_file_with_flags",
2017-06-26), but it was inadvertently removed in commit 8b4c0103a9
("sha1_file: support lazily fetching missing objects", 2017-12-08).

Restore this functionality.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gc: do not repack promisor packfilesJonathan Tan Fri, 8 Dec 2017 15:27:16 +0000 (15:27 +0000)

gc: do not repack promisor packfiles

Teach gc to stop traversal at promisor objects, and to leave promisor
packfiles alone. This has the effect of only repacking non-promisor
packfiles, and preserves the distinction between promisor packfiles and
non-promisor packfiles.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-list: support termination at promisor objectsJonathan Tan Fri, 8 Dec 2017 15:27:15 +0000 (15:27 +0000)

rev-list: support termination at promisor objects

Teach rev-list to support termination of an object traversal at any
object from a promisor remote (whether one that the local repo also has,
or one that the local repo knows about because it has another promisor
object that references it).

This will be used subsequently in gc and in the connectivity check used
by fetch.

For efficiency, if an object is referenced by a promisor object, and is
in the local repo only as a non-promisor object, object traversal will
not stop there. This is to avoid building the list of promisor object
references.

(In list-objects.c, the case where obj is NULL in process_blob() and
process_tree() do not need to be changed because those happen only when
there is a conflict between the expected type and the existing object.
If the object doesn't exist, an object will be synthesized, which is
fine.)

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file: support lazily fetching missing objectsJonathan Tan Fri, 8 Dec 2017 15:27:14 +0000 (15:27 +0000)

sha1_file: support lazily fetching missing objects

Teach sha1_file to fetch objects from the remote configured in
extensions.partialclone whenever an object is requested but missing.

The fetching of objects can be suppressed through a global variable.
This is used by fsck and index-pack.

However, by default, such fetching is not suppressed. This is meant as a
temporary measure to ensure that all Git commands work in such a
situation. Future patches will update some commands to either tolerate
missing objects (without fetching them) or be more efficient in fetching
them.

In order to determine the code changes in sha1_file.c necessary, I
investigated the following:
(1) functions in sha1_file.c that take in a hash, without the user
regarding how the object is stored (loose or packed)
(2) functions in packfile.c (because I need to check callers that know
about the loose/packed distinction and operate on both differently,
and ensure that they can handle the concept of objects that are
neither loose nor packed)

(1) is handled by the modification to sha1_object_info_extended().

For (2), I looked at for_each_packed_object and others. For
for_each_packed_object, the callers either already work or are fixed in
this patch:
- reachable - only to find recent objects
- builtin/fsck - already knows about missing objects
- builtin/cat-file - warning message added in this commit

Callers of the other functions do not need to be changed:
- parse_pack_index
- http - indirectly from http_get_info_packs
- find_pack_entry_one
- this searches a single pack that is provided as an argument; the
caller already knows (through other means) that the sought object
is in a specific pack
- find_sha1_pack
- fast-import - appears to be an optimization to not store a file if
it is already in a pack
- http-walker - to search through a struct alt_base
- http-push - to search through remote packs
- has_sha1_pack
- builtin/fsck - already knows about promisor objects
- builtin/count-objects - informational purposes only (check if loose
object is also packed)
- builtin/prune-packed - check if object to be pruned is packed (if
not, don't prune it)
- revision - used to exclude packed objects if requested by user
- diff - just for optimization

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

introduce fetch-object: fetch one promisor objectJonathan Tan Tue, 5 Dec 2017 16:58:49 +0000 (16:58 +0000)

introduce fetch-object: fetch one promisor object

Introduce fetch-object, providing the ability to fetch one object from a
promisor remote.

This uses fetch-pack. To do this, the transport mechanism has been
updated with 2 flags, "from-promisor" to indicate that the resulting
pack comes from a promisor remote (and thus should be annotated as such
by index-pack), and "no-dependents" to indicate that only the objects
themselves need to be fetched (but fetching additional objects is
nevertheless safe).

Whenever "no-dependents" is used, fetch-pack will refrain from using any
object flags, because it is most likely invoked as part of a dynamic
object fetch by another Git command (which may itself use object flags).
An alternative to this is to leave fetch-pack alone, and instead update
the allocation of flags so that fetch-pack's flags never overlap with
any others, but this will end up shrinking the number of flags available
to nearly every other Git command (that is, every Git command that
accesses objects), so the approach in this commit was used instead.

This will be tested in a subsequent commit.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index-pack: refactor writing of .keep filesJonathan Tan Tue, 5 Dec 2017 16:58:48 +0000 (16:58 +0000)

index-pack: refactor writing of .keep files

In a subsequent commit, index-pack will be taught to write ".promisor"
files which are similar to the ".keep" files it knows how to write.
Refactor the writing of ".keep" files, so that the implementation of
writing ".promisor" files becomes easier.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck: support promisor objects as CLI argumentJonathan Tan Tue, 5 Dec 2017 16:58:47 +0000 (16:58 +0000)

fsck: support promisor objects as CLI argument

Teach fsck to not treat missing promisor objects provided on the CLI as
an error when extensions.partialclone is set.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck: support referenced promisor objectsJonathan Tan Tue, 5 Dec 2017 16:58:46 +0000 (16:58 +0000)

fsck: support referenced promisor objects

Teach fsck to not treat missing promisor objects indirectly pointed to
by refs as an error when extensions.partialclone is set.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck: support refs pointing to promisor objectsJonathan Tan Tue, 5 Dec 2017 16:58:45 +0000 (16:58 +0000)

fsck: support refs pointing to promisor objects

Teach fsck to not treat refs referring to missing promisor objects as an
error when extensions.partialclone is set.

For the purposes of warning about no default refs, such refs are still
treated as legitimate refs.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck: introduce partialclone extensionJonathan Tan Tue, 5 Dec 2017 16:58:44 +0000 (16:58 +0000)

fsck: introduce partialclone extension

Currently, Git does not support repos with very large numbers of objects
or repos that wish to minimize manipulation of certain blobs (for
example, because they are very large) very well, even if the user
operates mostly on part of the repo, because Git is designed on the
assumption that every referenced object is available somewhere in the
repo storage. In such an arrangement, the full set of objects is usually
available in remote storage, ready to be lazily downloaded.

Teach fsck about the new state of affairs. In this commit, teach fsck
that missing promisor objects referenced from the reflog are not an
error case; in future commits, fsck will be taught about other cases.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

extension.partialclone: introduce partial clone extensionJonathan Tan Tue, 5 Dec 2017 16:58:43 +0000 (16:58 +0000)

extension.partialclone: introduce partial clone extension

Introduce new repository extension option:
`extensions.partialclone`

See the update to Documentation/technical/repository-version.txt
in this patch for more information.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-list: support --no-filter argumentJeff Hostetler Tue, 5 Dec 2017 16:50:14 +0000 (16:50 +0000)

rev-list: support --no-filter argument

Teach rev-list to support --no-filter to override a
previous --filter=<filter_spec> argument. This is
to be consistent with commands that use OPT_PARSE
macros.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

list-objects-filter-options: support --no-filterJeff Hostetler Tue, 5 Dec 2017 16:50:13 +0000 (16:50 +0000)

list-objects-filter-options: support --no-filter

Teach opt_parse_list_objects_filter() to take --no-filter
option and to free the contents of struct filter_options.
This command line argument will be automatically inherited
by commands using OPT_PARSE_LIST_OBJECTS_FILTER(); this
includes pack-objects.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

list-objects-filter-options: fix 'keword' typo in commentChristian Couder Tue, 5 Dec 2017 16:50:12 +0000 (16:50 +0000)

list-objects-filter-options: fix 'keword' typo in comment

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pack-objects: add list-objects filteringJeff Hostetler Tue, 21 Nov 2017 20:58:52 +0000 (20:58 +0000)

pack-objects: add list-objects filtering

Teach pack-objects to use the filtering provided by the
traverse_commit_list_filtered() interface to omit unwanted
objects from the resulting packfile.

Filtering requires the use of the "--stdout" option.

Add t5317 test.

In the future, we will introduce a "partial clone" mechanism
wherein an object in a repo, obtained from a remote, may
reference a missing object that can be dynamically fetched from
that remote once needed. This "partial clone" mechanism will
have a way, sometimes slow, of determining if a missing link
is one of the links expected to be produced by this mechanism.

This patch introduces handling of missing objects to help
debugging and development of the "partial clone" mechanism,
and once the mechanism is implemented, for a power user to
perform operations that are missing-object aware without
incurring the cost of checking if a missing link is expected.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-list: add list-objects filtering supportJeff Hostetler Tue, 21 Nov 2017 20:58:51 +0000 (20:58 +0000)

rev-list: add list-objects filtering support

Teach rev-list to use the filtering provided by the
traverse_commit_list_filtered() interface to omit
unwanted objects from the result.

Object filtering is only allowed when one of the "--objects*"
options are used.

When the "--filter-print-omitted" option is used, the omitted
objects are printed at the end. These are marked with a "~".
This option can be combined with "--quiet" to get a list of
just the omitted objects.

Add t6112 test.

In the future, we will introduce a "partial clone" mechanism
wherein an object in a repo, obtained from a remote, may
reference a missing object that can be dynamically fetched from
that remote once needed. This "partial clone" mechanism will
have a way, sometimes slow, of determining if a missing link
is one of the links expected to be produced by this mechanism.

This patch introduces handling of missing objects to help
debugging and development of the "partial clone" mechanism,
and once the mechanism is implemented, for a power user to
perform operations that are missing-object aware without
incurring the cost of checking if a missing link is expected.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

list-objects: filter objects in traverse_commit_listJeff Hostetler Tue, 21 Nov 2017 20:58:50 +0000 (20:58 +0000)

list-objects: filter objects in traverse_commit_list

Create traverse_commit_list_filtered() and add filtering
interface to allow certain objects to be omitted from the
traversal.

Update traverse_commit_list() to be a wrapper for the above
with a null filter to minimize the number of callers that
needed to be changed.

Object filtering will be used in a future commit by rev-list
and pack-objects for partial clone and fetch to omit unwanted
objects from the result.

traverse_bitmap_commit_list() does not work with filtering.
If a packfile bitmap is present, it will not be used. It
should be possible to extend such support in the future (at
least to simple filters that do not require object pathnames),
but that is beyond the scope of this patch series.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

oidset: add iterator methods to oidsetJeff Hostetler Tue, 21 Nov 2017 20:58:49 +0000 (20:58 +0000)

oidset: add iterator methods to oidset

Add the usual iterator methods to oidset.
Add oidset_remove().

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

oidmap: add oidmap iterator methodsJeff Hostetler Tue, 21 Nov 2017 20:58:48 +0000 (20:58 +0000)

oidmap: add oidmap iterator methods

Add the usual map iterator functions to oidmap.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir: allow exclusions from blob in addition to fileJeff Hostetler Tue, 21 Nov 2017 20:58:47 +0000 (20:58 +0000)

dir: allow exclusions from blob in addition to file

Refactor add_excludes() to separate the reading of the
exclude file into a buffer and the parsing of the buffer
into exclude_list items.

Add add_excludes_from_blob_to_list() to allow an exclude
file be specified with an OID without assuming a local
worktree or index exists.

Refactor read_skip_worktree_file_from_index() and add
do_read_blob() to eliminate duplication of preliminary
processing of blob contents.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.15 v2.15.0Junio C Hamano Mon, 30 Oct 2017 05:00:44 +0000 (14:00 +0900)

Git 2.15

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.15.0-rnd2.1' of git://github.com... Junio C Hamano Mon, 30 Oct 2017 00:32:54 +0000 (09:32 +0900)

Merge tag 'l10n-2.15.0-rnd2.1' of git://github.com/git-l10n/git-po

l10n for Git 2.15.0 round 2 with Catalan updates

* tag 'l10n-2.15.0-rnd2.1' of git://github.com/git-l10n/git-po:
l10n: Update Catalan translation

l10n: Update Catalan translationJordi Mas Wed, 25 Oct 2017 17:50:59 +0000 (19:50 +0200)

l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>

Hopefully final batch before 2.15Junio C Hamano Sat, 28 Oct 2017 01:20:30 +0000 (10:20 +0900)

Hopefully final batch before 2.15

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sg/rev-list-doc-reorder-fix'Junio C Hamano Sat, 28 Oct 2017 01:18:42 +0000 (10:18 +0900)

Merge branch 'sg/rev-list-doc-reorder-fix'

Doc flow fix.

* sg/rev-list-doc-reorder-fix:
rev-list-options.txt: use correct directional reference

Merge branch 'sb/rev-parse-show-superproject-root'Junio C Hamano Sat, 28 Oct 2017 01:18:40 +0000 (10:18 +0900)

Merge branch 'sb/rev-parse-show-superproject-root'

Doc markup fix.

* sb/rev-parse-show-superproject-root:
docs: fix formatting of rev-parse's --show-superproject-working-tree

Merge branch 'ao/path-use-xmalloc'Junio C Hamano Sat, 28 Oct 2017 01:18:39 +0000 (10:18 +0900)

Merge branch 'ao/path-use-xmalloc'

A possible oom error is now caught as a fatal error, instead of
continuing and dereferencing NULL.

* ao/path-use-xmalloc:
path.c: use xmalloc() in add_to_trie()

Merge branch 'np/config-path-doc'Junio C Hamano Sat, 28 Oct 2017 01:18:39 +0000 (10:18 +0900)

Merge branch 'np/config-path-doc'

Doc update.

* np/config-path-doc:
config doc: clarify "git config --path" example

docs: fix formatting of rev-parse's --show-superproject... Sebastian Schuberth Thu, 26 Oct 2017 11:53:37 +0000 (11:53 +0000)

docs: fix formatting of rev-parse's --show-superproject-working-tree

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-list-options.txt: use correct directional referenceSZEDER Gábor Thu, 26 Oct 2017 15:26:37 +0000 (17:26 +0200)

rev-list-options.txt: use correct directional reference

The descriptions of the options '--parents', '--children' and
'--graph' say "see 'History Simplification' below", although the
referred section is in fact above the description of these options.

Send readers in the right direction by saying "above" instead of
"below".

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mh/ref-locking-fix'Junio C Hamano Thu, 26 Oct 2017 03:29:23 +0000 (12:29 +0900)

Merge branch 'mh/ref-locking-fix'

Transactions to update multiple references that involves a deletion
was quite broken in an error codepath and did not abort everything
correctly.

* mh/ref-locking-fix:
files_transaction_prepare(): fix handling of ref lock failure
t1404: add a bunch of tests of D/F conflicts

path.c: use xmalloc() in add_to_trie()Andrey Okoshkin Tue, 24 Oct 2017 15:15:05 +0000 (18:15 +0300)

path.c: use xmalloc() in add_to_trie()

Add usage of xmalloc() instead of malloc() in add_to_trie() as xmalloc wraps
and checks memory allocation result.

Signed-off-by: Andrey Okoshkin <a.okoshkin@samsung.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

files_transaction_prepare(): fix handling of ref lock... Michael Haggerty Tue, 24 Oct 2017 15:16:25 +0000 (17:16 +0200)

files_transaction_prepare(): fix handling of ref lock failure

Since dc39e09942 (files_ref_store: use a transaction to update packed
refs, 2017-09-08), failure to lock a reference has been handled
incorrectly by `files_transaction_prepare()`. If
`lock_ref_for_update()` fails in the lock-acquisition loop of that
function, it sets `ret` then breaks out of that loop. Prior to
dc39e09942, that was OK, because the only thing following the loop was
the cleanup code. But dc39e09942 added another blurb of code between
the loop and the cleanup. That blurb sometimes resets `ret` to zero,
making the cleanup code think that the locking was successful.

Specifically, whenever

* One or more reference deletions have been processed successfully in
the lock-acquisition loop. (Processing the first such reference
causes a packed-ref transaction to be initialized.)

* Then `lock_ref_for_update()` fails for a subsequent reference. Such
a failure can happen for a number of reasons, such as the old SHA-1
not being correct, lock contention, etc. This causes a `break` out
of the lock-acquisition loop.

* The `packed-refs` lock is acquired successfully and
`ref_transaction_prepare()` succeeds for the packed-ref transaction.
This has the effect of resetting `ret` back to 0, and making the
cleanup code think that lock acquisition was successful.

In that case, any reference updates that were processed prior to
breaking out of the loop would be carried out (loose and packed), but
the reference that couldn't be locked and any subsequent references
would silently be ignored.

This can easily cause data loss if, for example, the user was trying
to push a new name for an existing branch while deleting the old name.
After the push, the branch could be left unreachable, and could even
subsequently be garbage-collected.

This problem was noticed in the context of deleting one reference and
creating another in a single transaction, when the two references D/F
conflict with each other, like

git update-ref --stdin <<EOF
delete refs/foo
create refs/foo/bar HEAD
EOF

This triggers the above bug because the deletion is processed
successfully for `refs/foo`, then the D/F conflict causes
`lock_ref_for_update()` to fail when `refs/foo/bar` is processed. In
this case the transaction *should* fail, but instead it causes
`refs/foo` to be deleted without creating `refs/foo`. This could
easily result in data loss.

The fix is simple: instead of just breaking out of the loop, jump
directly to the cleanup code. This fixes some tests in t1404 that were
added in the previous commit.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t1404: add a bunch of tests of D/F conflictsMichael Haggerty Tue, 24 Oct 2017 15:16:24 +0000 (17:16 +0200)

t1404: add a bunch of tests of D/F conflicts

It is currently not allowed, in a single transaction, to add one
reference and delete another reference if the two reference names D/F
conflict with each other (e.g., like `refs/foo/bar` and `refs/foo`).
The reason is that the code would need to take locks

$GIT_DIR/refs/foo.lock
$GIT_DIR/refs/foo/bar.lock

But the latter lock couldn't coexist with the loose reference file

$GIT_DIR/refs/foo

, because `$GIT_DIR/refs/foo` cannot be both a directory and a file at
the same time (hence the name "D/F conflict).

Add a bunch of tests that we cleanly reject such transactions.

In fact, many of the new tests currently fail. They will be fixed in
the next commit along with an explanation.

Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.15.0-rnd2' of git://github.com/git... Junio C Hamano Tue, 24 Oct 2017 02:44:52 +0000 (11:44 +0900)

Merge tag 'l10n-2.15.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.15.0 round 2

* tag 'l10n-2.15.0-rnd2' of git://github.com/git-l10n/git-po: (22 commits)
l10n: zh_CN: review for git v2.15.0 l10n round 2
l10n: zh_CN: for git v2.15.0 l10n round 2
l10n: de.po: fix typos
l10n: de.po: translate 70 new messages
l10n: ru.po: update Russian translation
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2
l10n: sv.po: Update Swedish translation (3245t0f0u)
l10n: fr.po: v2.15.0 round 2
l10n: fr.po change translation of "First, rewinding"
l10n: fr.po fix some mistakes
l10n: Update Catalan translation
l10n: ko.po: Update Korean translation
l10n: es.po: v2.15.0 round 2
l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)
l10n: ru.po: update Russian translation
l10n: bg.po: Updated Bulgarian translation (3245t)
l10n: sv.po: Update Swedish translation (3245t0f0u)
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0
l10n: es.po: Update translation v2.15.0 round 1
l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)
...

Merge branch 'jx/zh_CN-proposed' of github.com:jiangxin/gitJiang Xin Tue, 24 Oct 2017 02:11:48 +0000 (10:11 +0800)

Merge branch 'jx/zh_CN-proposed' of github.com:jiangxin/git

* 'jx/zh_CN-proposed' of github.com:jiangxin/git:
l10n: zh_CN: review for git v2.15.0 l10n round 2
l10n: zh_CN: for git v2.15.0 l10n round 2

l10n: zh_CN: review for git v2.15.0 l10n round 2Ray Chen Mon, 23 Oct 2017 16:17:59 +0000 (00:17 +0800)

l10n: zh_CN: review for git v2.15.0 l10n round 2

Signed-off-by: Ray Chen <oldsharp@gmail.com>

l10n: zh_CN: for git v2.15.0 l10n round 2Jiang Xin Sun, 8 Oct 2017 07:29:11 +0000 (15:29 +0800)

l10n: zh_CN: for git v2.15.0 l10n round 2

Translate 69 messages (3245t0f0u) for git v2.15.0-rc2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: 依云 <lilydjwg@gmail.com>

Merge branch 'master' of https://github.com/ralfth... Jiang Xin Tue, 24 Oct 2017 01:56:09 +0000 (09:56 +0800)

Merge branch 'master' of https://github.com/ralfth/git-po-de

* 'master' of https://github.com/ralfth/git-po-de:
l10n: de.po: fix typos
l10n: de.po: translate 70 new messages

l10n: de.po: fix typosAndre Hinrichs Thu, 19 Oct 2017 06:25:25 +0000 (08:25 +0200)

l10n: de.po: fix typos

Signed-off-by: Andre Hinrichs <andre.hinrichs@gmx.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: de.po: translate 70 new messagesRalf Thielow Wed, 11 Oct 2017 10:48:48 +0000 (12:48 +0200)

l10n: de.po: translate 70 new messages

Translate 70 new messages came from git.pot update in 25eab542b
(l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)) and 9c07fab78
(l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

Sync with 2.14.3Junio C Hamano Mon, 23 Oct 2017 05:54:30 +0000 (14:54 +0900)

Sync with 2.14.3

Git 2.14.3 v2.14.3Junio C Hamano Mon, 23 Oct 2017 05:44:17 +0000 (14:44 +0900)

Git 2.14.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/info-alternates-fix' into maintJunio C Hamano Mon, 23 Oct 2017 05:40:00 +0000 (14:40 +0900)

Merge branch 'jk/info-alternates-fix' into maint

A regression fix for 2.11 that made the code to read the list of
alternate object stores overrun the end of the string.

* jk/info-alternates-fix:
read_info_alternates: warn on non-trivial errors
read_info_alternates: read contents into strbuf

Merge branch 'jc/fetch-refspec-doc-update' into maintJunio C Hamano Mon, 23 Oct 2017 05:39:08 +0000 (14:39 +0900)

Merge branch 'jc/fetch-refspec-doc-update' into maint

"git fetch <there> <src>:<dst>" allows an object name on the <src>
side when the other side accepts such a request since Git v2.5, but
the documentation was left stale.

* jc/fetch-refspec-doc-update:
fetch doc: src side of refspec could be full SHA-1

Merge branch 'jk/write-in-full-fix' into maintJunio C Hamano Mon, 23 Oct 2017 05:37:21 +0000 (14:37 +0900)

Merge branch 'jk/write-in-full-fix' into maint

Many codepaths did not diagnose write failures correctly when disks
go full, due to their misuse of write_in_full() helper function,
which have been corrected.

* jk/write-in-full-fix:
read_pack_header: handle signed/unsigned comparison in read result
config: flip return value of store_write_*()
notes-merge: use ssize_t for write_in_full() return value
pkt-line: check write_in_full() errors against "< 0"
convert less-trivial versions of "write_in_full() != len"
avoid "write_in_full(fd, buf, len) != len" pattern
get-tar-commit-id: check write_in_full() return against 0
config: avoid "write_in_full(fd, buf, len) < len" pattern

Merge branch 'rj/no-sign-compare' into maintJunio C Hamano Mon, 23 Oct 2017 05:20:18 +0000 (14:20 +0900)

Merge branch 'rj/no-sign-compare' into maint

Many codepaths have been updated to squelch -Wsign-compare
warnings.

* rj/no-sign-compare:
ALLOC_GROW: avoid -Wsign-compare warnings
cache.h: hex2chr() - avoid -Wsign-compare warnings
commit-slab.h: avoid -Wsign-compare warnings
git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings

Merge branch 'ma/ts-cleanups' into maintJunio C Hamano Mon, 23 Oct 2017 05:19:02 +0000 (14:19 +0900)

Merge branch 'ma/ts-cleanups' into maint

Assorted bugfixes and clean-ups.

* ma/ts-cleanups:
ThreadSanitizer: add suppressions
strbuf_setlen: don't write to strbuf_slopbuf
pack-objects: take lock before accessing `remaining`
convert: always initialize attr_action in convert_attrs

Merge branch 'ls/travis-scriptify' into maintJunio C Hamano Mon, 23 Oct 2017 05:17:53 +0000 (14:17 +0900)

Merge branch 'ls/travis-scriptify' into maint

The scripts to drive TravisCI has been reorganized and then an
optimization to avoid spending cycles on a branch whose tip is
tagged has been implemented.

* ls/travis-scriptify:
travis-ci: fix "skip_branch_tip_with_tag()" string comparison
travis: dedent a few scripts that are indented overly deeply
travis-ci: skip a branch build if equal tag is present
travis-ci: move Travis CI code into dedicated scripts

Merge branch 'er/fast-import-dump-refs-on-checkpoint... Junio C Hamano Mon, 23 Oct 2017 05:17:27 +0000 (14:17 +0900)

Merge branch 'er/fast-import-dump-refs-on-checkpoint' into maint

The checkpoint command "git fast-import" did not flush updates to
refs and marks unless at least one object was created since the
last checkpoint, which has been corrected, as these things can
happen without any new object getting created.

* er/fast-import-dump-refs-on-checkpoint:
fast-import: checkpoint: dump branches/tags/marks even if object_count==0

Merge branch 'jt/fast-export-copy-modify-fix' into... Junio C Hamano Mon, 23 Oct 2017 05:14:51 +0000 (14:14 +0900)

Merge branch 'jt/fast-export-copy-modify-fix' into maint

"git fast-export" with -M/-C option issued "copy" instruction on a
path that is simultaneously modified, which was incorrect.

* jt/fast-export-copy-modify-fix:
fast-export: do not copy from modified file

Merge branch 'nd/worktree-kill-parse-ref' into maintJunio C Hamano Mon, 23 Oct 2017 05:14:16 +0000 (14:14 +0900)

Merge branch 'nd/worktree-kill-parse-ref' into maint

"git branch -M a b" while on a branch that is completely unrelated
to either branch a or branch b misbehaved when multiple worktree
was in use. This has been fixed.

* nd/worktree-kill-parse-ref:
branch: fix branch renaming not updating HEADs correctly

l10n: ru.po: update Russian translationDimitriy Ryazantcev Sun, 22 Oct 2017 17:35:13 +0000 (20:35 +0300)

l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>

Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin Sun, 22 Oct 2017 11:01:07 +0000 (19:01 +0800)

Merge branch 'master' of https://github.com/vnwildman/git

* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2

Git 2.15-rc2 v2.15.0-rc2Junio C Hamano Thu, 19 Oct 2017 05:49:17 +0000 (14:49 +0900)

Git 2.15-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/branch-force-doc-readability-fix'Junio C Hamano Thu, 19 Oct 2017 05:45:45 +0000 (14:45 +0900)

Merge branch 'jc/branch-force-doc-readability-fix'

Doc update.

* jc/branch-force-doc-readability-fix:
branch doc: sprinkle a few commas for readability

Merge branch 'dg/filter-branch-filter-order-doc'Junio C Hamano Thu, 19 Oct 2017 05:45:45 +0000 (14:45 +0900)

Merge branch 'dg/filter-branch-filter-order-doc'

Update the documentation for "git filter-branch" so that the filter
options are listed in the same order as they are applied, as
described in an earlier part of the doc.

* dg/filter-branch-filter-order-doc:
doc: list filter-branch subdirectory-filter first

Merge branch 'jc/fetch-refspec-doc-update'Junio C Hamano Thu, 19 Oct 2017 05:45:44 +0000 (14:45 +0900)

Merge branch 'jc/fetch-refspec-doc-update'

"git fetch <there> <src>:<dst>" allows an object name on the <src>
side when the other side accepts such a request since Git v2.5, but
the documentation was left stale.

* jc/fetch-refspec-doc-update:
fetch doc: src side of refspec could be full SHA-1

Merge branch 'wk/merge-options-gpg-sign-doc'Junio C Hamano Thu, 19 Oct 2017 05:45:43 +0000 (14:45 +0900)

Merge branch 'wk/merge-options-gpg-sign-doc'

Doc updates.

* wk/merge-options-gpg-sign-doc:
Documentation/merge-options.txt: describe -S/--gpg-sign for 'pull'

config doc: clarify "git config --path" exampleNathan Payre Wed, 18 Oct 2017 20:27:16 +0000 (22:27 +0200)

config doc: clarify "git config --path" example

Change the word "bla" to "section.variable"; "bla" is a placeholder
for a variable name but it wasn't clear for everyone.

While we're here, also reformat this sample command line to use
monospace instead of italics, to better match the rest of the file.

Use a space instead of a dash in "git config", as is common in the
rest of Git's documentation.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: MOY Matthieu <matthieu.moy@univ-lyon1.fr>
Signed-off-by: Daniel Bensoussan <daniel.bensoussan--bohm@etu.univ-lyon1.fr>
Signed-off-by: Timothee Albertin <timothee.albertin@etu.univ-lyon1.fr>
Signed-off-by: Nathan Payre <nathan.payre@etu.univ-lyon1.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'l10n_fr_v2.15.0r2' of git://github.com... Jiang Xin Thu, 19 Oct 2017 00:17:23 +0000 (08:17 +0800)

Merge branch 'l10n_fr_v2.15.0r2' of git://github.com/jnavila/git

* 'l10n_fr_v2.15.0r2' of git://github.com/jnavila/git:
l10n: fr.po: v2.15.0 round 2
l10n: fr.po change translation of "First, rewinding"
l10n: fr.po fix some mistakes

Merge branch 'master' of git://github.com/nafmo/git... Jiang Xin Thu, 19 Oct 2017 00:16:30 +0000 (08:16 +0800)

Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
l10n: sv.po: Update Swedish translation (3245t0f0u)

Merge branch 'master' of https://github.com/Softcatala... Jiang Xin Thu, 19 Oct 2017 00:14:55 +0000 (08:14 +0800)

Merge branch 'master' of https://github.com/Softcatala/git-po

* 'master' of https://github.com/Softcatala/git-po:
l10n: Update Catalan translation

Merge branch 'translation' of https://github.com/ChrisA... Jiang Xin Thu, 19 Oct 2017 00:13:29 +0000 (08:13 +0800)

Merge branch 'translation' of https://github.com/ChrisADR/git-po

* 'translation' of https://github.com/ChrisADR/git-po:
l10n: es.po: v2.15.0 round 2

l10n: vi.po(3245t): Updated Vietnamese translation... Tran Ngoc Quan Thu, 19 Oct 2017 00:08:04 +0000 (07:08 +0700)

l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: sv.po: Update Swedish translation (3245t0f0u)Peter Krefting Wed, 18 Oct 2017 18:35:32 +0000 (19:35 +0100)

l10n: sv.po: Update Swedish translation (3245t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: fr.po: v2.15.0 round 2Jean-Noel Avila Sun, 8 Oct 2017 12:37:52 +0000 (14:37 +0200)

l10n: fr.po: v2.15.0 round 2

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

l10n: fr.po change translation of "First, rewinding"Nicolas Cornu Tue, 19 Sep 2017 07:37:34 +0000 (09:37 +0200)

l10n: fr.po change translation of "First, rewinding"

Signed-off-by: Nicolas Cornu <nicolac76@yahoo.fr>

l10n: fr.po fix some mistakesJean-Noel Avila Thu, 14 Sep 2017 12:05:41 +0000 (14:05 +0200)

l10n: fr.po fix some mistakes

Reported-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jean-Noel Avila <jean-noel.avila@scantech.fr>

Sync with maintJunio C Hamano Wed, 18 Oct 2017 05:26:53 +0000 (14:26 +0900)

Sync with maint

* maint:
Prepare for 2.14.3

Prepare for 2.14.3Junio C Hamano Wed, 18 Oct 2017 05:24:09 +0000 (14:24 +0900)

Prepare for 2.14.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/ref-filter-colors-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:20:43 +0000 (14:20 +0900)

Merge branch 'jk/ref-filter-colors-fix' into maint

This is the "theoretically more correct" approach of simply
stepping back to the state before plumbing commands started paying
attention to "color.ui" configuration variable.

* jk/ref-filter-colors-fix:
tag: respect color.ui config
Revert "color: check color.ui in git_default_config()"
Revert "t6006: drop "always" color config tests"
Revert "color: make "always" the same as "auto" in config"
color: make "always" the same as "auto" in config
provide --color option for all ref-filter users
t3205: use --color instead of color.branch=always
t3203: drop "always" color test
t6006: drop "always" color config tests
t7502: use diff.noprefix for --verbose test
t7508: use test_terminal for color output
t3701: use test-terminal to collect color output
t4015: prefer --color to -c color.diff=always
test-terminal: set TERM=vt100

Merge branch 'jc/doc-checkout' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'jc/doc-checkout' into maint

Doc update.

* jc/doc-checkout:
checkout doc: clarify command line args for "checkout paths" mode

Merge branch 'tb/complete-describe' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'tb/complete-describe' into maint

Docfix.

* tb/complete-describe:
completion: add --broken and --dirty to describe

Merge branch 'rs/rs-mailmap' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'rs/rs-mailmap' into maint

* rs/rs-mailmap:
.mailmap: normalize name for René Scharfe

Merge branch 'rs/fsck-null-return-from-lookup' into... Junio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'rs/fsck-null-return-from-lookup' into maint

Improve behaviour of "git fsck" upon finding a missing object.

* rs/fsck-null-return-from-lookup:
fsck: handle NULL return of lookup_blob() and lookup_tree()

Merge branch 'jk/sha1-loose-object-info-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'jk/sha1-loose-object-info-fix' into maint

Leakfix and futureproofing.

* jk/sha1-loose-object-info-fix:
sha1_loose_object_info: handle errors from unpack_sha1_rest

Merge branch 'sb/branch-avoid-repeated-strbuf-release... Junio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'sb/branch-avoid-repeated-strbuf-release' into maint

* sb/branch-avoid-repeated-strbuf-release:
branch: reset instead of release a strbuf

Merge branch 'rs/qsort-s' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)

Merge branch 'rs/qsort-s' into maint

* rs/qsort-s:
test-stringlist: avoid buffer underrun when sorting nothing

Merge branch 'jn/strbuf-doc-re-reuse' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:13 +0000 (14:19 +0900)

Merge branch 'jn/strbuf-doc-re-reuse' into maint

* jn/strbuf-doc-re-reuse:
strbuf doc: reuse after strbuf_release is fine

Merge branch 'rs/run-command-use-alloc-array' into... Junio C Hamano Wed, 18 Oct 2017 05:19:13 +0000 (14:19 +0900)

Merge branch 'rs/run-command-use-alloc-array' into maint

Code clean-up.

* rs/run-command-use-alloc-array:
run-command: use ALLOC_ARRAY

Merge branch 'rs/tag-null-pointer-arith-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'rs/tag-null-pointer-arith-fix' into maint

Code clean-up.

* rs/tag-null-pointer-arith-fix:
tag: avoid NULL pointer arithmetic

Merge branch 'rs/cocci-de-paren-call-params' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'rs/cocci-de-paren-call-params' into maint

Code clean-up.

* rs/cocci-de-paren-call-params:
coccinelle: remove parentheses that become unnecessary

Merge branch 'ad/doc-markup-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'ad/doc-markup-fix' into maint

Docfix.

* ad/doc-markup-fix:
doc: correct command formatting

Merge branch 'mr/doc-negative-pathspec' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'mr/doc-negative-pathspec' into maint

Doc updates.

* mr/doc-negative-pathspec:
docs: improve discoverability of exclude pathspec

Merge branch 'jk/validate-headref-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'jk/validate-headref-fix' into maint

Code clean-up.

* jk/validate-headref-fix:
validate_headref: use get_oid_hex for detached HEADs
validate_headref: use skip_prefix for symref parsing
validate_headref: NUL-terminate HEAD buffer

Merge branch 'ks/doc-use-camelcase-for-config-name... Junio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'ks/doc-use-camelcase-for-config-name' into maint

Doc update.

* ks/doc-use-camelcase-for-config-name:
doc: camelCase the config variables to improve readability

Merge branch 'jk/doc-read-tree-table-asciidoctor-fix... Junio C Hamano Wed, 18 Oct 2017 05:19:11 +0000 (14:19 +0900)

Merge branch 'jk/doc-read-tree-table-asciidoctor-fix' into maint

A docfix.

* jk/doc-read-tree-table-asciidoctor-fix:
doc: put literal block delimiter around table

Merge branch 'hn/typofix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:11 +0000 (14:19 +0900)

Merge branch 'hn/typofix' into maint

* hn/typofix:
submodule.h: typofix

Merge branch 'ks/test-readme-phrasofix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'ks/test-readme-phrasofix' into maint

Doc updates.

* ks/test-readme-phrasofix:
t/README: fix typo and grammatically improve a sentence

Merge branch 'ez/doc-duplicated-words-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'ez/doc-duplicated-words-fix' into maint

Typofix.

* ez/doc-duplicated-words-fix:
doc: fix minor typos (extra/duplicated words)

Merge branch 'kd/doc-for-each-ref' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'kd/doc-for-each-ref' into maint

Doc update.

* kd/doc-for-each-ref:
doc/for-each-ref: explicitly specify option names
doc/for-each-ref: consistently use '=' to between argument names and values

Merge branch 'cc/subprocess-handshake-missing-capabilit... Junio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'cc/subprocess-handshake-missing-capabilities' into maint

Finishing touches to a topic already in 'master'.

* cc/subprocess-handshake-missing-capabilities:
subprocess: loudly die when subprocess asks for an unsupported capability

Merge branch 'jk/system-path-cleanup' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'jk/system-path-cleanup' into maint

Code clean-up.

* jk/system-path-cleanup:
git_extract_argv0_path: do nothing without RUNTIME_PREFIX
system_path: move RUNTIME_PREFIX to a sub-function

Merge branch 'bb/doc-eol-dirty' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:09 +0000 (14:19 +0900)

Merge branch 'bb/doc-eol-dirty' into maint

Doc update.

* bb/doc-eol-dirty:
Documentation: mention that `eol` can change the dirty status of paths

Merge branch 'mg/timestamp-t-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:09 +0000 (14:19 +0900)

Merge branch 'mg/timestamp-t-fix' into maint

A mismerge fix.

* mg/timestamp-t-fix:
name-rev: change ULONG_MAX to TIME_MAX

Merge branch 'ma/pkt-line-leakfix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:08 +0000 (14:19 +0900)

Merge branch 'ma/pkt-line-leakfix' into maint

A leakfix.

* ma/pkt-line-leakfix:
pkt-line: re-'static'-ify buffer in packet_write_fmt_1()

Merge branch 'jk/config-lockfile-leak-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:07 +0000 (14:19 +0900)

Merge branch 'jk/config-lockfile-leak-fix' into maint

A leakfix.

* jk/config-lockfile-leak-fix:
config: use a static lock_file struct

Merge branch 'dw/diff-highlight-makefile-fix' into... Junio C Hamano Wed, 18 Oct 2017 05:19:07 +0000 (14:19 +0900)

Merge branch 'dw/diff-highlight-makefile-fix' into maint

Build clean-up.

* dw/diff-highlight-makefile-fix:
diff-highlight: add clean target to Makefile

Merge branch 'jk/drop-sha1-entry-pos' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:06 +0000 (14:19 +0900)

Merge branch 'jk/drop-sha1-entry-pos' into maint

Code clean-up.

* jk/drop-sha1-entry-pos:
sha1-lookup: remove sha1_entry_pos() from header file
sha1_file: drop experimental GIT_USE_LOOKUP search