Junio C Hamano [Tue, 16 May 2017 02:51:51 +0000 (11:51 +0900)]
Merge branch 'nd/worktree-kill-parse-ref'
"git gc" did not interact well with "git worktree"-managed
per-worktree refs.
* nd/worktree-kill-parse-ref:
refs: kill set_worktree_head_symref()
worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
refs: introduce get_worktree_ref_store()
refs: add REFS_STORE_ALL_CAPS
refs.c: make submodule ref store hashmap generic
environment.c: fix potential segfault by get_git_common_dir()
Junio C Hamano [Tue, 16 May 2017 02:51:50 +0000 (11:51 +0900)]
Merge branch 'dt/gc-ignore-old-gc-logs'
Attempt to allow us notice "fishy" situation where we fail to
remove the temporary directory used during the test.
* dt/gc-ignore-old-gc-logs:
test-lib: retire $remove_trash variable
test-lib.sh: do not barf under --debug at the end of the test
test-lib: abort when can't remove trash directory
Junio C Hamano [Tue, 16 May 2017 02:51:50 +0000 (11:51 +0900)]
Merge branch 'jk/no-null-sha1-in-cache-tree'
Code to update the cache-tree has been tightened so that we won't
accidentally write out any 0{40} entry in the tree object.
* jk/no-null-sha1-in-cache-tree:
cache-tree: reject entries with null sha1
Junio C Hamano [Tue, 16 May 2017 02:51:49 +0000 (11:51 +0900)]
Merge branch 'dt/raise-core-packed-git-limit'
The default packed-git limit value has been raised on larger
platforms to save "git fetch" from a (recoverable) failure while
"gc" is running in parallel.
* dt/raise-core-packed-git-limit:
Increase core.packedGitLimit
Junio C Hamano [Tue, 9 May 2017 14:26:02 +0000 (23:26 +0900)]
Git 2.13
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 9 May 2017 14:25:26 +0000 (23:25 +0900)]
Merge tag 'l10n-2.13.0-rnd2.1' of git://github.com/git-l10n/git-po
l10n for Git 2.13.0 round 2.1
* tag 'l10n-2.13.0-rnd2.1' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.13.0 l10n round 2
l10n: sv.po: Update Swedish translation (3195t0f0u)
l10n: zh_CN: review for git v2.13.0 l10n round 1
l10n: Update Catalan translation
l10n: bg.po: Updated Bulgarian translation (3195t)
l10n: fr.po v2.13 rnd 2
l10n: de.po: translate 4 new messages
l10n: de.po: update German translation
l10n: de.po: lower case after semi-colon
l10n: vi.po(3195t): Update translation for v2.13.0 round 2
l10n: git.pot: v2.13.0 round 2 (4 new, 7 removed)
l10n: zh_CN: for git v2.13.0 l10n round 1
l10n: fr.po v2.13 round 1
l10n: pt_PT: update Portuguese translation
l10n: bg.po: Updated Bulgarian translation (3201t)
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
l10n: sv.po: Update Swedish translation (3199t0f0u)
l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
Jiang Xin [Tue, 9 May 2017 14:12:34 +0000 (22:12 +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 (3195t0f0u)
Jiang Xin [Tue, 9 May 2017 13:55:38 +0000 (21:55 +0800)]
l10n: zh_CN: for git v2.13.0 l10n round 2
Translate 4 messages (3195t0f0u) for git v2.13.0-rc2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Peter Krefting [Tue, 9 May 2017 07:05:09 +0000 (08:05 +0100)]
l10n: sv.po: Update Swedish translation (3195t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Junio C Hamano [Tue, 9 May 2017 03:20:21 +0000 (20:20 -0700)]
Sync with v2.12.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 9 May 2017 03:17:42 +0000 (12:17 +0900)]
Merge branch 'jh/verify-index-checksum-only-in-fsck'
* jh/verify-index-checksum-only-in-fsck:
t1450: avoid use of "sed" on the index, which is a binary file
Ray Chen [Tue, 2 May 2017 15:42:43 +0000 (23:42 +0800)]
l10n: zh_CN: review for git v2.13.0 l10n round 1
Signed-off-by: Ray Chen <oldsharp@gmail.com>
Jiang Xin [Mon, 8 May 2017 22:39:31 +0000 (06:39 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3195t): Update translation for v2.13.0 round 2
Jordi Mas [Sun, 7 May 2017 08:12:01 +0000 (10:12 +0200)]
l10n: Update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
Alexander Shopov [Sun, 7 May 2017 07:25:19 +0000 (09:25 +0200)]
l10n: bg.po: Updated Bulgarian translation (3195t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Jiang Xin [Mon, 8 May 2017 22:18:53 +0000 (06:18 +0800)]
Merge branch 'fr_l10n_v2.13_rnd2' of git://github.com/jnavila/git
* 'fr_l10n_v2.13_rnd2' of git://github.com/jnavila/git:
l10n: fr.po v2.13 rnd 2
Jean-Noel Avila [Fri, 5 May 2017 09:55:14 +0000 (11:55 +0200)]
l10n: fr.po v2.13 rnd 2
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Ralf Thielow [Fri, 5 May 2017 09:23:53 +0000 (11:23 +0200)]
l10n: de.po: translate 4 new messages
Translate 4 new messages came from git.pot update in
28e1aaa48 (l10n:
git.pot: v2.13.0 round 2 (4 new, 7 removed)).
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
Ralf Thielow [Thu, 13 Apr 2017 14:45:29 +0000 (16:45 +0200)]
l10n: de.po: update German translation
Translate 96 new messages came from git.pot update in
dfc182b (l10n:
git.pot: v2.13.0 round 1 (96 new, 37 removed)).
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
Michael J Gruber [Fri, 17 Mar 2017 15:04:19 +0000 (16:04 +0100)]
l10n: de.po: lower case after semi-colon
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Tran Ngoc Quan [Fri, 5 May 2017 06:41:32 +0000 (13:41 +0700)]
l10n: vi.po(3195t): Update translation for v2.13.0 round 2
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Junio C Hamano [Fri, 5 May 2017 04:33:22 +0000 (13:33 +0900)]
Git 2.12.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 04:31:40 +0000 (13:31 +0900)]
Merge branch 'maint-2.11' into maint
Junio C Hamano [Fri, 5 May 2017 04:29:43 +0000 (13:29 +0900)]
Git 2.11.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 04:26:31 +0000 (13:26 +0900)]
Merge branch 'maint-2.10' into maint-2.11
Junio C Hamano [Fri, 5 May 2017 04:24:10 +0000 (13:24 +0900)]
Git 2.10.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 04:21:52 +0000 (13:21 +0900)]
Merge branch 'maint-2.9' into maint-2.10
Junio C Hamano [Fri, 5 May 2017 04:18:23 +0000 (13:18 +0900)]
Git 2.9.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 04:13:48 +0000 (13:13 +0900)]
Merge branch 'maint-2.8' into maint-2.9
Junio C Hamano [Fri, 5 May 2017 04:08:54 +0000 (13:08 +0900)]
Git 2.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 04:05:03 +0000 (13:05 +0900)]
Merge branch 'maint-2.7' into maint-2.8
Junio C Hamano [Fri, 5 May 2017 04:03:40 +0000 (13:03 +0900)]
Git 2.7.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 03:59:16 +0000 (12:59 +0900)]
Merge branch 'maint-2.6' into maint-2.7
Junio C Hamano [Fri, 5 May 2017 03:56:19 +0000 (12:56 +0900)]
Git 2.6.7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 03:52:26 +0000 (12:52 +0900)]
Merge branch 'maint-2.5' into maint-2.6
Junio C Hamano [Fri, 5 May 2017 03:49:00 +0000 (12:49 +0900)]
Git 2.5.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 03:46:53 +0000 (12:46 +0900)]
Merge branch 'maint-2.4' into maint-2.5
Junio C Hamano [Fri, 5 May 2017 03:25:09 +0000 (12:25 +0900)]
Git 2.4.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 5 May 2017 03:17:55 +0000 (12:17 +0900)]
Merge branch 'jk/shell-no-repository-that-begins-with-dash' into maint-2.4
* jk/shell-no-repository-that-begins-with-dash:
shell: disallow repo names beginning with dash
Jeff King [Sat, 29 Apr 2017 12:36:44 +0000 (08:36 -0400)]
shell: disallow repo names beginning with dash
When a remote server uses git-shell, the client side will
connect to it like:
ssh server "git-upload-pack 'foo.git'"
and we literally exec ("git-upload-pack", "foo.git"). In
early versions of upload-pack and receive-pack, we took a
repository argument and nothing else. But over time they
learned to accept dashed options. If the user passes a
repository name that starts with a dash, the results are
confusing at best (we complain of a bogus option instead of
a non-existent repository) and malicious at worst (the user
can start an interactive pager via "--help").
We could pass "--" to the sub-process to make sure the
user's argument is interpreted as a branch name. I.e.:
git-upload-pack -- -foo.git
But adding "--" automatically would make us inconsistent
with a normal shell (i.e., when git-shell is not in use),
where "-foo.git" would still be an error. For that case, the
client would have to specify the "--", but they can't do so
reliably, as existing versions of git-shell do not allow
more than a single argument.
The simplest thing is to simply disallow "-" at the start of
the repo name argument. This hasn't worked either with or
without git-shell since version 1.0.0, and nobody has
complained.
Note that this patch just applies to do_generic_cmd(), which
runs upload-pack, receive-pack, and upload-archive. There
are two other types of commands that git-shell runs:
- do_cvs_cmd(), but this already restricts the argument to
be the literal string "server"
- admin-provided commands in the git-shell-commands
directory. We'll pass along arbitrary arguments there,
so these commands could have similar problems. But these
commands might actually understand dashed arguments, so
we cannot just block them here. It's up to the writer of
the commands to make sure they are safe. With great
power comes great responsibility.
Reported-by: Timo Schmid <tschmid@ernw.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Fri, 5 May 2017 01:37:02 +0000 (09:37 +0800)]
l10n: git.pot: v2.13.0 round 2 (4 new, 7 removed)
Generate po/git.pot from v2.13.0-rc2 for git v2.13.0 l10n round 2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Fri, 5 May 2017 01:35:22 +0000 (09:35 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po
* 'master' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.13.0 l10n round 1
l10n: fr.po v2.13 round 1
l10n: pt_PT: update Portuguese translation
l10n: bg.po: Updated Bulgarian translation (3201t)
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
l10n: sv.po: Update Swedish translation (3199t0f0u)
l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
Jiang Xin [Sun, 23 Apr 2017 01:55:51 +0000 (09:55 +0800)]
l10n: zh_CN: for git v2.13.0 l10n round 1
Translate 96 messages (3198t0f0u) for git v2.13.0-rc0.
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Fri, 5 May 2017 01:30:33 +0000 (09:30 +0800)]
Merge branch 'fr_l10n_v2.13_rnd1' of git://github.com/jnavila/git
* 'fr_l10n_v2.13_rnd1' of git://github.com/jnavila/git:
l10n: fr.po v2.13 round 1
Junio C Hamano [Thu, 4 May 2017 07:27:19 +0000 (16:27 +0900)]
Git 2.13-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 4 May 2017 07:26:47 +0000 (16:26 +0900)]
Merge branch 'rg/a-the-typo'
Typofix.
* rg/a-the-typo:
fix minor typos
Junio C Hamano [Thu, 4 May 2017 07:26:46 +0000 (16:26 +0900)]
Merge branch 'sr/hooks-cwd-doc'
* sr/hooks-cwd-doc:
githooks.txt: clarify push hooks are always executed in $GIT_DIR
Junio C Hamano [Thu, 4 May 2017 07:26:46 +0000 (16:26 +0900)]
Merge branch 'rg/doc-submittingpatches-wordfix'
* rg/doc-submittingpatches-wordfix:
doc: update SubmittingPatches
Junio C Hamano [Thu, 4 May 2017 07:26:45 +0000 (16:26 +0900)]
Merge branch 'rg/doc-pull-typofix'
* rg/doc-pull-typofix:
doc: git-pull.txt use US spelling, fix minor typo
Junio C Hamano [Thu, 4 May 2017 07:26:44 +0000 (16:26 +0900)]
Merge branch 'ja/i18n-cleanup'
* ja/i18n-cleanup:
i18n: read-cache: typofix
i18n: remove i18n from tag reflog message
Jean-Noel Avila [Sun, 23 Apr 2017 21:29:44 +0000 (23:29 +0200)]
l10n: fr.po v2.13 round 1
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Vasco Almeida [Tue, 25 Apr 2017 14:35:41 +0000 (14:35 +0000)]
l10n: pt_PT: update Portuguese translation
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Junio C Hamano [Mon, 1 May 2017 05:16:18 +0000 (22:16 -0700)]
Merging a handful of topics before -rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 1 May 2017 05:14:44 +0000 (14:14 +0900)]
Merge branch 'sh/rebase-i-reread-todo-after-exec'
"git rebase -i" failed to re-read the todo list file when the
command specified with the `exec` instruction updated it.
* sh/rebase-i-reread-todo-after-exec:
rebase -i: reread the todo list if `exec` touched it
Junio C Hamano [Mon, 1 May 2017 05:14:44 +0000 (14:14 +0900)]
Merge branch 'ls/travis-stricter-linux32-builds'
32-bit Linux build on Travis CI uses stricter compilation options.
* ls/travis-stricter-linux32-builds:
travis-ci: set DEVELOPER knob for Linux32 build
Junio C Hamano [Mon, 1 May 2017 05:14:44 +0000 (14:14 +0900)]
Merge branch 'ls/travis-win-fix-status'
Relaying status from Windows build by Travis CI was done with an
unsafe invocation of printf.
* ls/travis-win-fix-status:
travis-ci: printf $STATUS as string
Junio C Hamano [Mon, 1 May 2017 05:14:43 +0000 (14:14 +0900)]
Merge branch 'jk/submodule-init-segv-fix'
Fix a segv in 'submodule init' when url is not given for a submodule.
* jk/submodule-init-segv-fix:
submodule_init: die cleanly on submodules without url defined
Junio C Hamano [Mon, 1 May 2017 05:14:43 +0000 (14:14 +0900)]
Merge branch 'jk/prio-queue-avoid-swap-with-self'
Code clean-up.
* jk/prio-queue-avoid-swap-with-self:
prio_queue_reverse: don't swap elements with themselves
Junio C Hamano [Mon, 1 May 2017 05:14:42 +0000 (14:14 +0900)]
Merge branch 'ab/align-perf-descriptions'
Output from perf tests have been updated to align their titles.
* ab/align-perf-descriptions:
t/perf: correctly align non-ASCII descriptions in output
Junio C Hamano [Mon, 1 May 2017 05:14:41 +0000 (14:14 +0900)]
Merge branch 'jk/complete-checkout-sans-dwim-remote'
Completion for "git checkout <branch>" that auto-creates the branch
out of a remote tracking branch can now be disabled, as this
completion often gets in the way when completing to checkout an
existing local branch that happens to share the same prefix with
bunch of remote tracking branches.
* jk/complete-checkout-sans-dwim-remote:
completion: optionally disable checkout DWIM
Peter Krefting [Sun, 30 Apr 2017 21:32:48 +0000 (23:32 +0200)]
i18n: read-cache: typofix
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jean-Noel Avila [Sun, 30 Apr 2017 21:32:47 +0000 (23:32 +0200)]
i18n: remove i18n from tag reflog message
The building of the reflog message is using strbuf, which is not
friendly with internationalization frameworks. No other reflog
messages are translated right now and switching all the messages to
i18n would require a major rework of the way the messages are built.
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Genz [Sun, 30 Apr 2017 14:54:25 +0000 (16:54 +0200)]
doc: git-pull.txt use US spelling, fix minor typo
Signed-off-by: René Genz <liebundartig@freenet.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Genz [Sun, 30 Apr 2017 15:48:27 +0000 (17:48 +0200)]
fix minor typos
Helped-by: Stefan Beller <sbeller@google.com>
Signed-off-by: René Genz <liebundartig@freenet.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Simon Ruderich [Sat, 29 Apr 2017 12:28:29 +0000 (14:28 +0200)]
githooks.txt: clarify push hooks are always executed in $GIT_DIR
Listing the specific hooks might feel verbose but without it the
reader is left to wonder which hooks are triggered during the
push. Something which is not immediately obvious when only trying
to find out where the hook is executed.
Signed-off-by: Simon Ruderich <simon@ruderich.org>
Reviewed-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Genz [Sun, 30 Apr 2017 15:42:21 +0000 (17:42 +0200)]
doc: update SubmittingPatches
-use US English spelling
-minor wording change for better readability
Helped-by: Stefan Beller <sbeller@google.com>
Signed-off-by: René Genz <liebundartig@freenet.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alexander Shopov [Fri, 10 Mar 2017 08:39:56 +0000 (10:39 +0200)]
l10n: bg.po: Updated Bulgarian translation (3201t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Jiang Xin [Sat, 29 Apr 2017 02:01:41 +0000 (10:01 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
Stephen Hicks [Wed, 26 Apr 2017 19:17:40 +0000 (21:17 +0200)]
rebase -i: reread the todo list if `exec` touched it
In the scripted version of the interactive rebase, there was no internal
representation of the todo list; it was re-read before every command.
That allowed the hack that an `exec` command could append (or even
completely rewrite) the todo list.
This hack was broken by the partial conversion of the interactive rebase
to C, and this patch reinstates it.
We also add a small test to verify that this fix does not regress in the
future.
Signed-off-by: Stephen Hicks <sdh@google.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Lars Schneider [Wed, 26 Apr 2017 19:18:57 +0000 (21:18 +0200)]
travis-ci: set DEVELOPER knob for Linux32 build
The Linux32 build was not build with our strict compiler settings (e.g.
warnings as errors). Fix this by passing the DEVELOPER environment
variable to the docker container.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Lars Schneider [Wed, 26 Apr 2017 19:39:33 +0000 (21:39 +0200)]
travis-ci: printf $STATUS as string
If the $STATUS variable contains a "%" character then printf will
interpret that as invalid format string. Fix this by formatting $STATUS
as string.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff Hostetler [Tue, 25 Apr 2017 18:41:09 +0000 (18:41 +0000)]
t1450: avoid use of "sed" on the index, which is a binary file
The previous step added a path zzzzzzzz to the index, and then used
"sed" to replace this string to yyyyyyyy to create a test case where
the checksum at the end of the file does not match the contents.
Unfortunately, use of "sed" on a non-text file is not portable.
Instead, use a Perl script that seeks to the end and modifies the
last byte of the file (where we _know_ stores the trailing
checksum).
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 26 Apr 2017 06:44:07 +0000 (15:44 +0900)]
Git 2.13-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 26 Apr 2017 06:39:13 +0000 (15:39 +0900)]
Merge branch 'mh/separate-ref-cache'
The internals of the refs API around the cached refs has been
streamlined.
* mh/separate-ref-cache:
do_for_each_entry_in_dir(): delete function
files_pack_refs(): use reference iteration
commit_packed_refs(): use reference iteration
cache_ref_iterator_begin(): make function smarter
get_loose_ref_cache(): new function
get_loose_ref_dir(): function renamed from get_loose_refs()
do_for_each_entry_in_dir(): eliminate `offset` argument
refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
ref-cache: use a callback function to fill the cache
refs: record the ref_store in ref_cache, not ref_dir
ref-cache: introduce a new type, ref_cache
refs: split `ref_cache` code into separate files
ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
ref-cache: rename `find_ref()` to `find_ref_entry()`
ref-cache: rename `add_ref()` to `add_ref_entry()`
refs_verify_refname_available(): use function in more places
refs_verify_refname_available(): implement once for all backends
refs_ref_iterator_begin(): new function
refs_read_raw_ref(): new function
get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
Junio C Hamano [Wed, 26 Apr 2017 06:39:12 +0000 (15:39 +0900)]
Merge branch 'nd/worktree-add-lock'
Allow to lock a worktree immediately after it's created. This helps
prevent a race between "git worktree add; git worktree lock" and
"git worktree prune".
* nd/worktree-add-lock:
worktree add: add --lock option
Junio C Hamano [Wed, 26 Apr 2017 06:39:11 +0000 (15:39 +0900)]
Merge branch 'jk/update-links-in-docs'
Many stale HTTP(s) links have been updated in our documentation.
* jk/update-links-in-docs:
docs/bisect-lk2009: update java code conventions link
docs/bisect-lk2009: update nist report link
docs/archimport: quote sourcecontrol.net reference
gitcore-tutorial: update broken link
doc: replace or.cz gitwiki link with git.wiki.kernel.org
doc: use https links to avoid http redirect
Junio C Hamano [Wed, 26 Apr 2017 06:39:10 +0000 (15:39 +0900)]
Merge branch 'sf/putty-w-args'
Plug a memleak.
* sf/putty-w-args:
connect.c: fix leak in handle_ssh_variant
Junio C Hamano [Wed, 26 Apr 2017 06:39:09 +0000 (15:39 +0900)]
Merge branch 'ab/completion-push-delete-ref'
The completion script (in contrib/) learned to complete "git push
--delete b<TAB>" to complete branch name to be deleted.
* ab/completion-push-delete-ref:
completion: expand "push --delete <remote> <ref>" for refs on that <remote>
Junio C Hamano [Wed, 26 Apr 2017 06:39:09 +0000 (15:39 +0900)]
Merge branch 'cc/split-index-config'
The split-index code configuration code used an unsafe git_path()
function without copying its result out.
* cc/split-index-config:
read-cache: avoid using git_path() in freshen_shared_index()
Junio C Hamano [Wed, 26 Apr 2017 06:39:08 +0000 (15:39 +0900)]
Merge branch 'jk/war-on-git-path'
While handy, "git_path()" is a dangerous function to use as a
callsite that uses it safely one day can be broken by changes
to other code that calls it. Reduction of its use continues.
* jk/war-on-git-path:
am: drop "dir" parameter from am_state_init
replace strbuf_addstr(git_path()) with git_path_buf()
replace xstrdup(git_path(...)) with git_pathdup(...)
use git_path_* helper functions
branch: add edit_description() helper
bisect: add git_path_bisect_terms helper
Junio C Hamano [Wed, 26 Apr 2017 06:39:07 +0000 (15:39 +0900)]
Merge branch 'jh/add-index-entry-optim'
"git checkout" that handles a lot of paths has been optimized by
reducing the number of unnecessary checks of paths in the
has_dir_name() function.
* jh/add-index-entry-optim:
read-cache: speed up has_dir_name (part 2)
read-cache: speed up has_dir_name (part 1)
read-cache: speed up add_index_entry during checkout
p0006-read-tree-checkout: perf test to time read-tree
read-cache: add strcmp_offset function
Junio C Hamano [Wed, 26 Apr 2017 06:39:07 +0000 (15:39 +0900)]
Merge branch 'ss/submodule-shallow-doc'
Doc update.
* ss/submodule-shallow-doc:
gitmodules: clarify what history depth a shallow clone has
Junio C Hamano [Wed, 26 Apr 2017 06:39:06 +0000 (15:39 +0900)]
Merge branch 'ss/gitmodules-ignore-doc'
Doc update.
* ss/gitmodules-ignore-doc:
gitmodules: clarify the ignore option values
Junio C Hamano [Wed, 26 Apr 2017 06:39:05 +0000 (15:39 +0900)]
Merge branch 'nd/conditional-config-in-early-config'
The recently introduced conditional inclusion of configuration did
not work well when early-config mechanism was involved.
* nd/conditional-config-in-early-config:
config: correct file reading order in read_early_config()
config: handle conditional include when $GIT_DIR is not set up
config: prepare to pass more info in git_config_with_options()
Junio C Hamano [Wed, 26 Apr 2017 06:39:05 +0000 (15:39 +0900)]
Merge branch 'ab/push-cas-doc-n-test'
Doc update.
* ab/push-cas-doc-n-test:
push: document & test --force-with-lease with multiple remotes
Junio C Hamano [Wed, 26 Apr 2017 06:39:04 +0000 (15:39 +0900)]
Merge branch 'ls/travis-coccicheck'
Travis CI learns to run coccicheck.
* ls/travis-coccicheck:
travis-ci: add static analysis build job to run coccicheck
Junio C Hamano [Wed, 26 Apr 2017 06:39:03 +0000 (15:39 +0900)]
Merge branch 'ps/pathspec-empty-prefix-origin'
A recent update broke "git add -p ../foo" from a subdirectory.
* ps/pathspec-empty-prefix-origin:
pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
Junio C Hamano [Wed, 26 Apr 2017 06:39:02 +0000 (15:39 +0900)]
Merge branch 'pc/t2027-git-to-pipe-cleanup'
Having a git command on the upstream side of a pipe in a test
script will hide the exit status from the command, which may cause
us to fail to notice a breakage; rewrite tests in a script to avoid
this issue.
* pc/t2027-git-to-pipe-cleanup:
t2027: avoid using pipes
Junio C Hamano [Wed, 26 Apr 2017 06:39:01 +0000 (15:39 +0900)]
Merge branch 'gb/rebase-signoff'
"git rebase" learns "--signoff" option.
* gb/rebase-signoff:
rebase: pass --[no-]signoff option to git am
builtin/am: fold am_signoff() into am_append_signoff()
builtin/am: honor --signoff also when --rebasing
Tran Ngoc Quan [Tue, 25 Apr 2017 08:09:06 +0000 (15:09 +0700)]
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Junio C Hamano [Mon, 24 Apr 2017 00:15:09 +0000 (17:15 -0700)]
test-lib: retire $remove_trash variable
The convention "$remove_trash is set to the trash directory that is
used during the test, so that it will be removed at the end, but
under --debug option we set the varilable to empty string to
preserve the directory" made sense back when it was introduced, as
there was no $TRASH_DIRECTORY variable. These days, since no tests
looks at the variable, it is obscure and even risks that by mistake
the variable gets used for something else (e.g. remove_trash=yes)
and cause us misbehave. Worse yet, remove_trash was not initialized
to an empty string at the beginning, so a stray environment variable
the user has could have affected the logic when "--debug" is in use.
Rewrite the clean-up sequence in test_done helper to explicitly
check the $debug condition and remove the trash directory using
the $TRASH_DIRECTORY variable.
Note that "go to the directory one level above the trash and then
remove it" is kept and this is deliverate; test_at_end_hook_ will
keep running from the expected location, and also some platforms may
not like a directory that is serving as the $cwd of a still-active
process removed.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 25 Apr 2017 06:39:47 +0000 (23:39 -0700)]
test-lib.sh: do not barf under --debug at the end of the test
The original did "does $remove_trash exist? Then go one level above
and remove it". There was no problem under "--debug", where
the variable is left empty, as the first "test -d $remove_trash" would
have said "No, it doesn't".
With the check implemented in the previous step, we'd always get an
error under "--debug".
Noticed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Mon, 24 Apr 2017 10:01:24 +0000 (17:01 +0700)]
refs: kill set_worktree_head_symref()
70999e9cec (branch -m: update all per-worktree HEADs - 2016-03-27)
added this function in order to update HEADs of all relevant
worktrees, when a branch is renamed.
It, as a public ref api, kind of breaks abstraction when it uses
internal functions of files backend. With the introduction of
refs_create_symref(), we can move back pretty close to the code before
70999e9cec, where create_symref() was used for updating HEAD.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Mon, 24 Apr 2017 10:01:23 +0000 (17:01 +0700)]
worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
The manual parsing code is replaced with a call to refs_resolve_ref_unsafe().
The manual parsing code must die because only refs/files-backend.c
should do that.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Mon, 24 Apr 2017 10:01:22 +0000 (17:01 +0700)]
refs: introduce get_worktree_ref_store()
files-backend at this point is still aware of the per-repo/worktree
separation in refs, so it can handle a linked worktree.
Some refs operations are known not working when current files-backend is
used in a linked worktree (e.g. reflog). Tests will be written when
refs_* functions start to be called with worktree backend to verify that
they work as expected.
Note: accessing a worktree of a submodule remains unaddressed. Perhaps
after get_worktrees() can access submodule (or rather a new function
get_submodule_worktrees(), that lists worktrees of a submodule), we can
update this function to work with submodules as well.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Mon, 24 Apr 2017 10:01:21 +0000 (17:01 +0700)]
refs: add REFS_STORE_ALL_CAPS
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 24 Apr 2017 11:49:20 +0000 (07:49 -0400)]
prio_queue_reverse: don't swap elements with themselves
Our array-reverse algorithm does the usual "walk from both
ends, swapping elements". We can quit when the two indices
are equal, since:
1. Swapping an element with itself is a noop.
2. If i and j are equal, then in the next iteration i is
guaranteed to be bigge than j, and we will exit the
loop.
So exiting the loop on equality is slightly more efficient.
And more importantly, the new SWAP() macro does not expect
to handle noop swaps; it will call memcpy() with the same src
and dst pointers in this case. It's unclear whether that
causes a problem on any platforms by violating the
"overlapping memory" constraint of memcpy, but it does cause
valgrind to complain.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Tue, 25 Apr 2017 00:57:47 +0000 (20:57 -0400)]
submodule_init: die cleanly on submodules without url defined
When we init a submodule, we try to die when it has no URL
defined:
url = xstrdup(sub->url);
if (!url)
die(...);
But that's clearly nonsense. xstrdup() will never return
NULL, and if sub->url is NULL, we'll segfault.
These two bits of code need to be flipped, so we check
sub->url before looking at it.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 24 Apr 2017 05:08:33 +0000 (22:08 -0700)]
Getting ready for -rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 24 Apr 2017 05:07:57 +0000 (22:07 -0700)]
Merge branch 'dt/xgethostname-nul-termination'
gethostname(2) may not NUL terminate the buffer if hostname does
not fit; unfortunately there is no easy way to see if our buffer
was too small, but at least this will make sure we will not end up
using garbage past the end of the buffer.
* dt/xgethostname-nul-termination:
xgethostname: handle long hostnames
use HOST_NAME_MAX to size buffers for gethostname(2)