From f8112a780b3d91567cb03f9bb9fb1ecd4f4d8cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20A=C3=9Fhauer?= <mha1993@live.de> Date: Tue, 23 Jul 2019 20:14:15 +0200 Subject: [PATCH] nb_NO: update to v2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matthias Aíš©hauer <mha1993@live.de> --- po/documentation.nb_NO.po | 74552 +++++++++++++++++------------------- 1 file changed, 35639 insertions(+), 38913 deletions(-) diff --git a/po/documentation.nb_NO.po b/po/documentation.nb_NO.po index e93b358..cb3aeef 100644 --- a/po/documentation.nb_NO.po +++ b/po/documentation.nb_NO.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-12-22 17:08+0100\n" +"POT-Creation-Date: 2019-02-13 20:53+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -15,64265 +15,62317 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. type: Title = -#: en/git.txt:2 -#, no-wrap -msgid "git(1)" -msgstr "" - -#. type: Title - -#: en/git.txt:5 en/git-add.txt:5 en/git-am.txt:5 en/git-annotate.txt:5 en/git-apply.txt:5 en/git-archimport.txt:5 en/git-archive.txt:5 en/git-bisect.txt:5 en/git-blame.txt:5 en/git-branch.txt:5 en/git-bundle.txt:5 en/git-cat-file.txt:5 en/git-check-attr.txt:5 en/git-check-ignore.txt:5 en/git-check-mailmap.txt:5 en/git-checkout-index.txt:5 en/git-checkout.txt:5 en/git-check-ref-format.txt:5 en/git-cherry-pick.txt:5 en/git-cherry.txt:5 en/git-citool.txt:5 en/git-clean.txt:5 en/git-clone.txt:5 en/git-column.txt:5 en/git-commit.txt:5 en/git-commit-tree.txt:5 en/git-config.txt:5 en/git-count-objects.txt:5 en/git-credential-cache--daemon.txt:5 en/git-credential-cache.txt:5 en/git-credential-store.txt:5 en/git-credential.txt:5 en/git-cvsexportcommit.txt:5 en/git-cvsimport.txt:5 en/git-cvsserver.txt:5 en/git-daemon.txt:5 en/git-describe.txt:5 en/git-diff-files.txt:5 en/git-diff-index.txt:5 en/git-difftool.txt:5 en/git-diff-tree.txt:5 en/git-diff.txt:5 en/git-fast-export.txt:5 en/git-fast-import.txt:5 en/git-fetch-pack.txt:5 en/git-fetch.txt:5 en/git-filter-branch.txt:5 en/git-fmt-merge-msg.txt:5 en/git-for-each-ref.txt:5 en/git-format-patch.txt:5 en/git-fsck-objects.txt:5 en/git-fsck.txt:5 en/git-gc.txt:5 en/git-get-tar-commit-id.txt:5 en/git-grep.txt:5 en/git-gui.txt:5 en/git-hash-object.txt:5 en/git-help.txt:5 en/git-http-backend.txt:5 en/git-http-fetch.txt:5 en/git-http-push.txt:5 en/git-imap-send.txt:5 en/git-index-pack.txt:5 en/git-init-db.txt:5 en/git-init.txt:5 en/git-instaweb.txt:5 en/git-interpret-trailers.txt:5 en/git-log.txt:5 en/git-ls-files.txt:5 en/git-ls-remote.txt:5 en/git-ls-tree.txt:5 en/git-mailinfo.txt:5 en/git-mailsplit.txt:5 en/git-merge-base.txt:5 en/git-merge-file.txt:5 en/git-merge-index.txt:5 en/git-merge-one-file.txt:5 en/git-mergetool--lib.txt:5 en/git-mergetool.txt:5 en/git-merge-tree.txt:5 en/git-merge.txt:5 en/git-mktag.txt:5 en/git-mktree.txt:5 en/git-mv.txt:5 en/git-name-rev.txt:5 en/git-notes.txt:5 en/git-p4.txt:5 en/git-pack-objects.txt:5 en/git-pack-redundant.txt:5 en/git-pack-refs.txt:5 en/git-parse-remote.txt:5 en/git-patch-id.txt:5 en/git-prune-packed.txt:5 en/git-prune.txt:5 en/git-pull.txt:5 en/git-push.txt:5 en/git-quiltimport.txt:5 en/git-read-tree.txt:5 en/git-rebase.txt:5 en/git-receive-pack.txt:5 en/git-reflog.txt:5 en/git-remote-ext.txt:5 en/git-remote-fd.txt:5 en/git-remote-testgit.txt:5 en/git-remote.txt:5 en/git-repack.txt:5 en/git-replace.txt:5 en/git-request-pull.txt:5 en/git-rerere.txt:5 en/git-reset.txt:5 en/git-revert.txt:5 en/git-rev-list.txt:5 en/git-rev-parse.txt:5 en/git-rm.txt:5 en/git-send-email.txt:5 en/git-send-pack.txt:5 en/git-shell.txt:5 en/git-sh-i18n--envsubst.txt:5 en/git-sh-i18n.txt:5 en/git-shortlog.txt:5 en/git-show-branch.txt:5 en/git-show-index.txt:5 en/git-show-ref.txt:5 en/git-show.txt:5 en/git-sh-setup.txt:5 en/git-stage.txt:5 en/git-stash.txt:5 en/git-status.txt:5 en/git-stripspace.txt:5 en/git-submodule.txt:5 en/git-svn.txt:5 en/git-symbolic-ref.txt:5 en/git-tag.txt:5 en/git-unpack-file.txt:5 en/git-unpack-objects.txt:5 en/git-update-index.txt:5 en/git-update-ref.txt:5 en/git-update-server-info.txt:5 en/git-upload-archive.txt:5 en/git-upload-pack.txt:5 en/git-var.txt:5 en/git-verify-commit.txt:5 en/git-verify-pack.txt:5 en/git-verify-tag.txt:5 en/git-web--browse.txt:5 en/git-whatchanged.txt:5 en/git-worktree.txt:5 en/git-write-tree.txt:5 +#. type: Labeled list +#: en/blame-options.txt:1 en/diff-options.txt:646 en/git-instaweb.txt:45 +#: en/git-mailinfo.txt:47 en/git-mailsplit.txt:35 en/git-repack.txt:126 +#: en/git-status.txt:31 en/git-submodule.txt:258 #, no-wrap -msgid "NAME" +msgid "-b" msgstr "" #. type: Plain text -#: en/git.txt:7 -msgid "git - the stupid content tracker" +#: en/blame-options.txt:4 +msgid "" +"Show blank SHA-1 for boundary commits. This can also be controlled via the " +"`blame.blankboundary` config option." msgstr "" -#. type: Title - -#: en/git.txt:10 en/git-add.txt:9 en/git-am.txt:10 en/git-annotate.txt:9 en/git-apply.txt:10 en/git-archimport.txt:10 en/git-archive.txt:10 en/git-bisect.txt:10 en/git-blame.txt:9 en/git-branch.txt:9 en/git-bundle.txt:10 en/git-cat-file.txt:10 en/git-check-attr.txt:10 en/git-check-ignore.txt:10 en/git-check-mailmap.txt:10 en/git-checkout-index.txt:10 en/git-checkout.txt:9 en/git-check-ref-format.txt:9 en/git-cherry-pick.txt:9 en/git-cherry.txt:9 en/git-citool.txt:9 en/git-clean.txt:9 en/git-clone.txt:10 en/git-column.txt:9 en/git-commit.txt:9 en/git-commit-tree.txt:10 en/git-config.txt:10 en/git-count-objects.txt:9 en/git-credential-cache--daemon.txt:9 en/git-credential-cache.txt:9 en/git-credential-store.txt:9 en/git-credential.txt:9 en/git-cvsexportcommit.txt:10 en/git-cvsimport.txt:10 en/git-cvsserver.txt:9 en/git-daemon.txt:9 en/git-describe.txt:10 en/git-diff-files.txt:10 en/git-diff-index.txt:10 en/git-difftool.txt:9 en/git-diff-tree.txt:10 en/git-diff.txt:10 en/git-fast-export.txt:10 en/git-fast-import.txt:10 en/git-fetch-pack.txt:10 en/git-fetch.txt:10 en/git-filter-branch.txt:9 en/git-fmt-merge-msg.txt:10 en/git-for-each-ref.txt:9 en/git-format-patch.txt:10 en/git-fsck-objects.txt:10 en/git-fsck.txt:10 en/git-gc.txt:10 en/git-get-tar-commit-id.txt:10 en/git-grep.txt:10 en/git-gui.txt:9 en/git-hash-object.txt:10 en/git-help.txt:9 en/git-http-backend.txt:9 en/git-http-fetch.txt:10 en/git-http-push.txt:10 en/git-imap-send.txt:10 en/git-index-pack.txt:10 en/git-init-db.txt:10 en/git-init.txt:10 en/git-instaweb.txt:9 en/git-interpret-trailers.txt:9 en/git-log.txt:10 en/git-ls-files.txt:10 en/git-ls-remote.txt:10 en/git-ls-tree.txt:10 en/git-mailinfo.txt:10 en/git-mailsplit.txt:9 en/git-merge-base.txt:10 en/git-merge-file.txt:10 en/git-merge-index.txt:10 en/git-merge-one-file.txt:10 en/git-mergetool--lib.txt:9 en/git-mergetool.txt:9 en/git-merge-tree.txt:10 en/git-merge.txt:10 en/git-mktag.txt:10 en/git-mktree.txt:10 en/git-mv.txt:10 en/git-name-rev.txt:10 en/git-notes.txt:9 en/git-p4.txt:10 en/git-pack-objects.txt:10 en/git-pack-redundant.txt:10 en/git-pack-refs.txt:9 en/git-parse-remote.txt:10 en/git-patch-id.txt:9 en/git-prune-packed.txt:10 en/git-prune.txt:10 en/git-pull.txt:10 en/git-push.txt:10 en/git-quiltimport.txt:10 en/git-read-tree.txt:10 en/git-rebase.txt:9 en/git-receive-pack.txt:10 en/git-reflog.txt:10 en/git-remote-ext.txt:9 en/git-remote-fd.txt:9 en/git-remote-testgit.txt:10 en/git-remote.txt:10 en/git-repack.txt:10 en/git-replace.txt:9 en/git-request-pull.txt:9 en/git-rerere.txt:9 en/git-reset.txt:9 en/git-revert.txt:9 en/git-rev-list.txt:10 en/git-rev-parse.txt:10 en/git-rm.txt:9 en/git-send-email.txt:10 en/git-send-pack.txt:10 en/git-shell.txt:10 en/git-sh-i18n--envsubst.txt:9 en/git-sh-i18n.txt:9 en/git-shortlog.txt:9 en/git-show-branch.txt:9 en/git-show-index.txt:10 en/git-show-ref.txt:9 en/git-show.txt:10 en/git-sh-setup.txt:9 en/git-stage.txt:10 en/git-stash.txt:9 en/git-status.txt:10 en/git-stripspace.txt:10 en/git-submodule.txt:10 en/git-svn.txt:9 en/git-symbolic-ref.txt:9 en/git-tag.txt:10 en/git-unpack-file.txt:11 en/git-unpack-objects.txt:10 en/git-update-index.txt:10 en/git-update-ref.txt:9 en/git-update-server-info.txt:10 en/git-upload-archive.txt:10 en/git-upload-pack.txt:10 en/git-var.txt:10 en/git-verify-commit.txt:9 en/git-verify-pack.txt:10 en/git-verify-tag.txt:9 en/git-web--browse.txt:9 en/git-whatchanged.txt:10 en/git-worktree.txt:10 en/git-write-tree.txt:10 +#. type: Labeled list +#: en/blame-options.txt:5 en/git-diff-tree.txt:42 en/git-format-patch.txt:314 +#: en/git-fsck.txt:38 en/git-rebase.txt:465 #, no-wrap -msgid "SYNOPSIS" +msgid "--root" msgstr "" #. type: Plain text -#: en/git.txt:18 -#, no-wrap +#: en/blame-options.txt:8 msgid "" -"'git' [--version] [--help] [-C <path>] [-c <name>=<value>]\n" -" [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" -" [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n" -" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" -" [--super-prefix=<path>]\n" -" <command> [<args>]\n" +"Do not treat root commits as boundaries. This can also be controlled via " +"the `blame.showRoot` config option." msgstr "" -#. type: Title - -#: en/git.txt:20 en/git-add.txt:17 en/git-am.txt:22 en/git-annotate.txt:14 en/git-apply.txt:22 en/git-archimport.txt:16 en/git-archive.txt:18 en/git-bisect.txt:15 en/git-blame.txt:17 en/git-branch.txt:24 en/git-bundle.txt:18 en/git-cat-file.txt:16 en/git-check-attr.txt:16 en/git-check-ignore.txt:16 en/git-check-mailmap.txt:16 en/git-checkout-index.txt:19 en/git-checkout.txt:19 en/git-check-ref-format.txt:17 en/git-cherry-pick.txt:18 en/git-cherry.txt:14 en/git-citool.txt:14 en/git-clean.txt:14 en/git-clone.txt:21 en/git-column.txt:15 en/git-commit.txt:19 en/git-commit-tree.txt:18 en/git-config.txt:29 en/git-count-objects.txt:14 en/git-credential-cache--daemon.txt:14 en/git-credential-cache.txt:15 en/git-credential-store.txt:15 en/git-credential.txt:15 en/git-cvsexportcommit.txt:17 en/git-cvsimport.txt:20 en/git-cvsserver.txt:61 en/git-daemon.txt:26 en/git-describe.txt:16 en/git-diff-files.txt:15 en/git-diff-index.txt:15 en/git-difftool.txt:14 en/git-diff-tree.txt:17 en/git-diff.txt:19 en/git-fast-export.txt:15 en/git-fast-import.txt:15 en/git-fetch-pack.txt:18 en/git-fetch.txt:19 en/git-filter-branch.txt:20 en/git-fmt-merge-msg.txt:16 en/git-for-each-ref.txt:17 en/git-format-patch.txt:30 en/git-fsck-objects.txt:15 en/git-fsck.txt:18 en/git-gc.txt:15 en/git-get-tar-commit-id.txt:16 en/git-grep.txt:34 en/git-gui.txt:14 en/git-hash-object.txt:16 en/git-help.txt:15 en/git-http-backend.txt:14 en/git-http-fetch.txt:15 en/git-http-push.txt:15 en/git-imap-send.txt:16 en/git-index-pack.txt:18 en/git-init-db.txt:16 en/git-init.txt:18 en/git-instaweb.txt:16 en/git-interpret-trailers.txt:14 en/git-log.txt:15 en/git-ls-files.txt:25 en/git-ls-remote.txt:17 en/git-ls-tree.txt:17 en/git-mailinfo.txt:16 en/git-mailsplit.txt:15 en/git-merge-base.txt:19 en/git-merge-file.txt:18 en/git-merge-index.txt:15 en/git-merge-one-file.txt:15 en/git-mergetool--lib.txt:14 en/git-mergetool.txt:14 en/git-merge-tree.txt:15 en/git-merge.txt:21 en/git-mktag.txt:15 en/git-mktree.txt:15 en/git-mv.txt:15 en/git-name-rev.txt:16 en/git-notes.txt:26 en/git-p4.txt:19 en/git-pack-objects.txt:20 en/git-pack-redundant.txt:15 en/git-pack-refs.txt:14 en/git-parse-remote.txt:15 en/git-patch-id.txt:14 en/git-prune-packed.txt:16 en/git-prune.txt:15 en/git-pull.txt:16 en/git-push.txt:20 en/git-quiltimport.txt:17 en/git-read-tree.txt:19 en/git-rebase.txt:18 en/git-receive-pack.txt:15 en/git-reflog.txt:15 en/git-remote-ext.txt:14 en/git-remote-fd.txt:13 en/git-remote-testgit.txt:15 en/git-remote.txt:27 en/git-repack.txt:15 en/git-replace.txt:18 en/git-request-pull.txt:14 en/git-rerere.txt:14 en/git-reset.txt:16 en/git-revert.txt:17 en/git-rev-list.txt:64 en/git-rev-parse.txt:15 en/git-rm.txt:14 en/git-send-email.txt:17 en/git-send-pack.txt:18 en/git-shell.txt:17 en/git-sh-i18n--envsubst.txt:19 en/git-sh-i18n.txt:14 en/git-shortlog.txt:15 en/git-show-branch.txt:19 en/git-show-index.txt:16 en/git-show-ref.txt:17 en/git-show.txt:15 en/git-sh-setup.txt:14 en/git-stage.txt:16 en/git-stash.txt:26 en/git-status.txt:15 en/git-stripspace.txt:16 en/git-submodule.txt:24 en/git-svn.txt:14 en/git-symbolic-ref.txt:16 en/git-tag.txt:21 en/git-unpack-file.txt:16 en/git-unpack-objects.txt:16 en/git-update-index.txt:29 en/git-update-ref.txt:14 en/git-update-server-info.txt:15 en/git-upload-archive.txt:15 en/git-var.txt:15 en/git-verify-commit.txt:14 en/git-verify-pack.txt:16 en/git-verify-tag.txt:14 en/git-web--browse.txt:14 en/git-whatchanged.txt:15 en/git-worktree.txt:19 en/git-write-tree.txt:15 +#. type: Labeled list +#: en/blame-options.txt:9 #, no-wrap -msgid "DESCRIPTION" +msgid "--show-stats" msgstr "" #. type: Plain text -#: en/git.txt:24 -msgid "" -"Git is a fast, scalable, distributed revision control system with an " -"unusually rich command set that provides both high-level operations and full " -"access to internals." +#: en/blame-options.txt:11 +msgid "Include additional statistics at the end of blame output." msgstr "" -#. type: Plain text -#: en/git.txt:29 -msgid "" -"See linkgit:gittutorial[7] to get started, then see linkgit:giteveryday[7] " -"for a useful minimum set of commands. The link:user-manual.html[Git User's " -"Manual] has a more in-depth introduction." +#. type: Labeled list +#: en/blame-options.txt:12 +#, no-wrap +msgid "-L <start>,<end>" msgstr "" -#. type: Plain text -#: en/git.txt:34 -msgid "" -"After you mastered the basic concepts, you can come back to this page to " -"learn what commands Git offers. You can learn more about individual Git " -"commands with \"git help command\". linkgit:gitcli[7] manual page gives you " -"an overview of the command-line command syntax." +#. type: Labeled list +#: en/blame-options.txt:13 +#, no-wrap +msgid "-L :<funcname>" msgstr "" #. type: Plain text -#: en/git.txt:37 +#: en/blame-options.txt:16 msgid "" -"A formatted and hyperlinked copy of the latest Git documentation can be " -"viewed at `https://git.github.io/htmldocs/git.html`." +"Annotate only the given line range. May be specified multiple times. " +"Overlapping ranges are allowed." msgstr "" -#. type: delimited block = -#: en/git.txt:46 +#. type: Plain text +#: en/blame-options.txt:19 msgid "" -"You are reading the documentation for the latest (possibly unreleased) " -"version of Git, that is available from the 'master' branch of the `git.git` " -"repository. Documentation for older releases are available here:" +"<start> and <end> are optional. ``-L <start>'' or ``-L <start>,'' spans from " +"<start> to end of file. ``-L ,<end>'' spans from start of file to <end>." msgstr "" -#. type: delimited block = -#: en/git.txt:48 -msgid "link:v2.12.1/git.html[documentation for release 2.12.1]" +#. type: Labeled list +#: en/blame-options.txt:22 en/git-archive.txt:43 en/git-branch.txt:157 +#: en/git-checkout.txt:185 en/git-clone.txt:44 en/git-config.txt:164 +#: en/git-grep.txt:186 en/git-instaweb.txt:23 en/git-ls-tree.txt:51 +#: en/git-repack.txt:66 en/git-svn.txt:244 en/git-tag.txt:92 en/git-var.txt:20 +#, no-wrap +msgid "-l" msgstr "" -#. type: delimited block = -#: en/git.txt:52 -msgid "" -"release notes for link:RelNotes/2.12.1.txt[2.12.1]. " -"link:RelNotes/2.12.0.txt[2.12]." +#. type: Plain text +#: en/blame-options.txt:24 +msgid "Show long rev (Default: off)." msgstr "" -#. type: delimited block = -#: en/git.txt:54 -msgid "link:v2.11.1/git.html[documentation for release 2.11.1]" +#. type: Labeled list +#: en/blame-options.txt:25 en/fetch-options.txt:137 en/git-branch.txt:185 +#: en/git-cat-file.txt:36 en/git-checkout.txt:166 en/git-diff-tree.txt:39 +#: en/git-ls-files.txt:113 en/git-ls-remote.txt:26 en/git-ls-tree.txt:47 +#: en/git-svn.txt:312 en/rev-list-options.txt:974 +#, no-wrap +msgid "-t" msgstr "" -#. type: delimited block = -#: en/git.txt:58 -msgid "" -"release notes for link:RelNotes/2.11.1.txt[2.11.1], " -"link:RelNotes/2.11.0.txt[2.11]." +#. type: Plain text +#: en/blame-options.txt:27 +msgid "Show raw timestamp (Default: off)." msgstr "" -#. type: delimited block = -#: en/git.txt:60 -msgid "link:v2.10.2/git.html[documentation for release 2.10.2]" +#. type: Labeled list +#: en/blame-options.txt:28 +#, no-wrap +msgid "-S <revs-file>" msgstr "" -#. type: delimited block = -#: en/git.txt:65 +#. type: Plain text +#: en/blame-options.txt:30 msgid "" -"release notes for link:RelNotes/2.10.2.txt[2.10.2], " -"link:RelNotes/2.10.1.txt[2.10.1], link:RelNotes/2.10.0.txt[2.10]." +"Use revisions from revs-file instead of calling linkgit:git-rev-list[1]." msgstr "" -#. type: delimited block = -#: en/git.txt:67 -msgid "link:v2.9.3/git.html[documentation for release 2.9.3]" +#. type: Labeled list +#: en/blame-options.txt:31 +#, no-wrap +msgid "--reverse <rev>..<rev>" msgstr "" -#. type: delimited block = -#: en/git.txt:73 +#. type: Plain text +#: en/blame-options.txt:38 msgid "" -"release notes for link:RelNotes/2.9.3.txt[2.9.3], " -"link:RelNotes/2.9.2.txt[2.9.2], link:RelNotes/2.9.1.txt[2.9.1], " -"link:RelNotes/2.9.0.txt[2.9]." -msgstr "" - -#. type: delimited block = -#: en/git.txt:75 -msgid "link:v2.8.4/git.html[documentation for release 2.8.4]" +"Walk history forward instead of backward. Instead of showing the revision in " +"which a line appeared, this shows the last revision in which a line has " +"existed. This requires a range of revision like START..END where the path to " +"blame exists in START. `git blame --reverse START` is taken as `git blame --" +"reverse START..HEAD` for convenience." msgstr "" -#. type: delimited block = -#: en/git.txt:82 -msgid "" -"release notes for link:RelNotes/2.8.4.txt[2.8.4], " -"link:RelNotes/2.8.3.txt[2.8.3], link:RelNotes/2.8.2.txt[2.8.2], " -"link:RelNotes/2.8.1.txt[2.8.1], link:RelNotes/2.8.0.txt[2.8]." +#. type: Labeled list +#: en/blame-options.txt:39 en/diff-options.txt:16 en/diff-options.txt:22 +#: en/fetch-options.txt:91 en/git-add.txt:88 en/git-cat-file.txt:49 +#: en/git-checkout.txt:253 en/git-commit.txt:70 en/git-cvsexportcommit.txt:41 +#: en/git-grep.txt:237 en/git-instaweb.txt:41 en/git-merge-file.txt:63 +#: en/git-rebase.txt:428 en/git-request-pull.txt:29 en/git-svn.txt:535 +#: en/git-svn.txt:679 en/git.txt:99 +#, no-wrap +msgid "-p" msgstr "" -#. type: delimited block = -#: en/git.txt:84 -msgid "link:v2.7.3/git.html[documentation for release 2.7.3]" +#. type: Labeled list +#: en/blame-options.txt:40 en/git-commit.txt:113 en/git-push.txt:176 +#: en/git-worktree.txt:179 +#, no-wrap +msgid "--porcelain" msgstr "" -#. type: delimited block = -#: en/git.txt:90 -msgid "" -"release notes for link:RelNotes/2.7.3.txt[2.7.3], " -"link:RelNotes/2.7.2.txt[2.7.2], link:RelNotes/2.7.1.txt[2.7.1], " -"link:RelNotes/2.7.0.txt[2.7]." +#. type: Plain text +#: en/blame-options.txt:42 +msgid "Show in a format designed for machine consumption." msgstr "" -#. type: delimited block = -#: en/git.txt:92 -msgid "link:v2.6.6/git.html[documentation for release 2.6.6]" +#. type: Labeled list +#: en/blame-options.txt:43 +#, no-wrap +msgid "--line-porcelain" msgstr "" -#. type: delimited block = -#: en/git.txt:101 +#. type: Plain text +#: en/blame-options.txt:47 msgid "" -"release notes for link:RelNotes/2.6.6.txt[2.6.6], " -"link:RelNotes/2.6.5.txt[2.6.5], link:RelNotes/2.6.4.txt[2.6.4], " -"link:RelNotes/2.6.3.txt[2.6.3], link:RelNotes/2.6.2.txt[2.6.2], " -"link:RelNotes/2.6.1.txt[2.6.1], link:RelNotes/2.6.0.txt[2.6]." +"Show the porcelain format, but output commit information for each line, not " +"just the first time a commit is referenced. Implies --porcelain." msgstr "" -#. type: delimited block = -#: en/git.txt:103 -msgid "link:v2.5.5/git.html[documentation for release 2.5.5]" +#. type: Labeled list +#: en/blame-options.txt:48 en/git-pack-objects.txt:138 en/git-svn.txt:373 +#, no-wrap +msgid "--incremental" msgstr "" -#. type: delimited block = -#: en/git.txt:111 +#. type: Plain text +#: en/blame-options.txt:51 msgid "" -"release notes for link:RelNotes/2.5.5.txt[2.5.5], " -"link:RelNotes/2.5.4.txt[2.5.4], link:RelNotes/2.5.3.txt[2.5.3], " -"link:RelNotes/2.5.2.txt[2.5.2], link:RelNotes/2.5.1.txt[2.5.1], " -"link:RelNotes/2.5.0.txt[2.5]." +"Show the result incrementally in a format designed for machine consumption." msgstr "" -#. type: delimited block = -#: en/git.txt:113 -msgid "link:v2.4.11/git.html[documentation for release 2.4.11]" +#. type: Labeled list +#: en/blame-options.txt:52 en/git-mailinfo.txt:62 en/pretty-options.txt:35 +#, no-wrap +msgid "--encoding=<encoding>" msgstr "" -#. type: delimited block = -#: en/git.txt:127 +#. type: Plain text +#: en/blame-options.txt:58 msgid "" -"release notes for link:RelNotes/2.4.11.txt[2.4.11], " -"link:RelNotes/2.4.10.txt[2.4.10], link:RelNotes/2.4.9.txt[2.4.9], " -"link:RelNotes/2.4.8.txt[2.4.8], link:RelNotes/2.4.7.txt[2.4.7], " -"link:RelNotes/2.4.6.txt[2.4.6], link:RelNotes/2.4.5.txt[2.4.5], " -"link:RelNotes/2.4.4.txt[2.4.4], link:RelNotes/2.4.3.txt[2.4.3], " -"link:RelNotes/2.4.2.txt[2.4.2], link:RelNotes/2.4.1.txt[2.4.1], " -"link:RelNotes/2.4.0.txt[2.4]." +"Specifies the encoding used to output author names and commit summaries. " +"Setting it to `none` makes blame output unconverted data. For more " +"information see the discussion about encoding in the linkgit:git-log[1] " +"manual page." msgstr "" -#. type: delimited block = -#: en/git.txt:129 -msgid "link:v2.3.10/git.html[documentation for release 2.3.10]" +#. type: Labeled list +#: en/blame-options.txt:59 +#, no-wrap +msgid "--contents <file>" msgstr "" -#. type: delimited block = -#: en/git.txt:142 +#. type: Plain text +#: en/blame-options.txt:65 msgid "" -"release notes for link:RelNotes/2.3.10.txt[2.3.10], " -"link:RelNotes/2.3.9.txt[2.3.9], link:RelNotes/2.3.8.txt[2.3.8], " -"link:RelNotes/2.3.7.txt[2.3.7], link:RelNotes/2.3.6.txt[2.3.6], " -"link:RelNotes/2.3.5.txt[2.3.5], link:RelNotes/2.3.4.txt[2.3.4], " -"link:RelNotes/2.3.3.txt[2.3.3], link:RelNotes/2.3.2.txt[2.3.2], " -"link:RelNotes/2.3.1.txt[2.3.1], link:RelNotes/2.3.0.txt[2.3]." +"When <rev> is not specified, the command annotates the changes starting " +"backwards from the working tree copy. This flag makes the command pretend " +"as if the working tree copy has the contents of the named file (specify `-` " +"to make the command read from the standard input)." msgstr "" -#. type: delimited block = -#: en/git.txt:144 -msgid "link:v2.2.3/git.html[documentation for release 2.2.3]" +#. type: Labeled list +#: en/blame-options.txt:66 +#, no-wrap +msgid "--date <format>" msgstr "" -#. type: delimited block = -#: en/git.txt:150 +#. type: Plain text +#: en/blame-options.txt:72 msgid "" -"release notes for link:RelNotes/2.2.3.txt[2.2.3], " -"link:RelNotes/2.2.2.txt[2.2.2], link:RelNotes/2.2.1.txt[2.2.1], " -"link:RelNotes/2.2.0.txt[2.2]." +"Specifies the format used to output dates. If --date is not provided, the " +"value of the blame.date config variable is used. If the blame.date config " +"variable is also not set, the iso format is used. For supported values, see " +"the discussion of the --date option at linkgit:git-log[1]." msgstr "" -#. type: delimited block = -#: en/git.txt:152 -msgid "link:v2.1.4/git.html[documentation for release 2.1.4]" +#. type: Labeled list +#: en/blame-options.txt:73 en/git-checkout.txt:121 en/git-fsck.txt:92 +#, no-wrap +msgid "--[no-]progress" msgstr "" -#. type: delimited block = -#: en/git.txt:159 +#. type: Plain text +#: en/blame-options.txt:79 msgid "" -"release notes for link:RelNotes/2.1.4.txt[2.1.4], " -"link:RelNotes/2.1.3.txt[2.1.3], link:RelNotes/2.1.2.txt[2.1.2], " -"link:RelNotes/2.1.1.txt[2.1.1], link:RelNotes/2.1.0.txt[2.1]." +"Progress status is reported on the standard error stream by default when it " +"is attached to a terminal. This flag enables progress reporting even if not " +"attached to a terminal. Can't use `--progress` together with `--porcelain` " +"or `--incremental`." msgstr "" -#. type: delimited block = -#: en/git.txt:161 -msgid "link:v2.0.5/git.html[documentation for release 2.0.5]" +#. type: Labeled list +#: en/blame-options.txt:80 +#, no-wrap +msgid "-M[<num>]" msgstr "" -#. type: delimited block = -#: en/git.txt:169 +#. type: Plain text +#: en/blame-options.txt:90 msgid "" -"release notes for link:RelNotes/2.0.5.txt[2.0.5], " -"link:RelNotes/2.0.4.txt[2.0.4], link:RelNotes/2.0.3.txt[2.0.3], " -"link:RelNotes/2.0.2.txt[2.0.2], link:RelNotes/2.0.1.txt[2.0.1], " -"link:RelNotes/2.0.0.txt[2.0.0]." -msgstr "" - -#. type: delimited block = -#: en/git.txt:171 -msgid "link:v1.9.5/git.html[documentation for release 1.9.5]" +"Detect moved or copied lines within a file. When a commit moves or copies a " +"block of lines (e.g. the original file has A and then B, and the commit " +"changes it to B and then A), the traditional 'blame' algorithm notices only " +"half of the movement and typically blames the lines that were moved up (i.e. " +"B) to the parent and assigns blame to the lines that were moved down (i.e. " +"A) to the child commit. With this option, both groups of lines are blamed " +"on the parent by running extra passes of inspection." msgstr "" -#. type: delimited block = -#: en/git.txt:179 +#. type: Plain text +#: en/blame-options.txt:95 msgid "" -"release notes for link:RelNotes/1.9.5.txt[1.9.5], " -"link:RelNotes/1.9.4.txt[1.9.4], link:RelNotes/1.9.3.txt[1.9.3], " -"link:RelNotes/1.9.2.txt[1.9.2], link:RelNotes/1.9.1.txt[1.9.1], " -"link:RelNotes/1.9.0.txt[1.9.0]." +"<num> is optional but it is the lower bound on the number of alphanumeric " +"characters that Git must detect as moving/copying within a file for it to " +"associate those lines with the parent commit. The default value is 20." msgstr "" -#. type: delimited block = -#: en/git.txt:181 -msgid "link:v1.8.5.6/git.html[documentation for release 1.8.5.6]" +#. type: Labeled list +#: en/blame-options.txt:96 +#, no-wrap +msgid "-C[<num>]" msgstr "" -#. type: delimited block = -#: en/git.txt:190 +#. type: Plain text +#: en/blame-options.txt:105 msgid "" -"release notes for link:RelNotes/1.8.5.6.txt[1.8.5.6], " -"link:RelNotes/1.8.5.5.txt[1.8.5.5], link:RelNotes/1.8.5.4.txt[1.8.5.4], " -"link:RelNotes/1.8.5.3.txt[1.8.5.3], link:RelNotes/1.8.5.2.txt[1.8.5.2], " -"link:RelNotes/1.8.5.1.txt[1.8.5.1], link:RelNotes/1.8.5.txt[1.8.5]." -msgstr "" - -#. type: delimited block = -#: en/git.txt:192 -msgid "link:v1.8.4.5/git.html[documentation for release 1.8.4.5]" +"In addition to `-M`, detect lines moved or copied from other files that were " +"modified in the same commit. This is useful when you reorganize your " +"program and move code around across files. When this option is given twice, " +"the command additionally looks for copies from other files in the commit " +"that creates the file. When this option is given three times, the command " +"additionally looks for copies from other files in any commit." msgstr "" -#. type: delimited block = -#: en/git.txt:200 +#. type: Plain text +#: en/blame-options.txt:112 msgid "" -"release notes for link:RelNotes/1.8.4.5.txt[1.8.4.5], " -"link:RelNotes/1.8.4.4.txt[1.8.4.4], link:RelNotes/1.8.4.3.txt[1.8.4.3], " -"link:RelNotes/1.8.4.2.txt[1.8.4.2], link:RelNotes/1.8.4.1.txt[1.8.4.1], " -"link:RelNotes/1.8.4.txt[1.8.4]." +"<num> is optional but it is the lower bound on the number of alphanumeric " +"characters that Git must detect as moving/copying between files for it to " +"associate those lines with the parent commit. And the default value is 40. " +"If there are more than one `-C` options given, the <num> argument of the " +"last `-C` will take effect." msgstr "" -#. type: delimited block = -#: en/git.txt:202 -msgid "link:v1.8.3.4/git.html[documentation for release 1.8.3.4]" +#. type: Labeled list +#: en/blame-options.txt:113 en/git-archimport.txt:71 en/git-cvsimport.txt:184 +#: en/git-cvsserver.txt:48 en/git-grep.txt:144 en/git-ls-remote.txt:24 +#, no-wrap +msgid "-h" msgstr "" -#. type: delimited block = -#: en/git.txt:209 -msgid "" -"release notes for link:RelNotes/1.8.3.4.txt[1.8.3.4], " -"link:RelNotes/1.8.3.3.txt[1.8.3.3], link:RelNotes/1.8.3.2.txt[1.8.3.2], " -"link:RelNotes/1.8.3.1.txt[1.8.3.1], link:RelNotes/1.8.3.txt[1.8.3]." +#. type: Plain text +#: en/blame-options.txt:114 +msgid "Show help message." msgstr "" -#. type: delimited block = -#: en/git.txt:211 -msgid "link:v1.8.2.3/git.html[documentation for release 1.8.2.3]" +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:1 en/git-blame.txt:232 +#, no-wrap +msgid "linkgit:git-annotate[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:217 -msgid "" -"release notes for link:RelNotes/1.8.2.3.txt[1.8.2.3], " -"link:RelNotes/1.8.2.2.txt[1.8.2.2], link:RelNotes/1.8.2.1.txt[1.8.2.1], " -"link:RelNotes/1.8.2.txt[1.8.2]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:3 +msgid "Annotate file lines with commit information." msgstr "" -#. type: delimited block = -#: en/git.txt:219 -msgid "link:v1.8.1.6/git.html[documentation for release 1.8.1.6]" +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:4 en/git-annotate.txt:30 +#, no-wrap +msgid "linkgit:git-blame[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:228 -msgid "" -"release notes for link:RelNotes/1.8.1.6.txt[1.8.1.6], " -"link:RelNotes/1.8.1.5.txt[1.8.1.5], link:RelNotes/1.8.1.4.txt[1.8.1.4], " -"link:RelNotes/1.8.1.3.txt[1.8.1.3], link:RelNotes/1.8.1.2.txt[1.8.1.2], " -"link:RelNotes/1.8.1.1.txt[1.8.1.1], link:RelNotes/1.8.1.txt[1.8.1]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:6 +msgid "Show what revision and author last modified each line of a file." msgstr "" -#. type: delimited block = -#: en/git.txt:230 -msgid "link:v1.8.0.3/git.html[documentation for release 1.8.0.3]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:7 +#, no-wrap +msgid "linkgit:git-count-objects[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:236 -msgid "" -"release notes for link:RelNotes/1.8.0.3.txt[1.8.0.3], " -"link:RelNotes/1.8.0.2.txt[1.8.0.2], link:RelNotes/1.8.0.1.txt[1.8.0.1], " -"link:RelNotes/1.8.0.txt[1.8.0]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:9 +msgid "Count unpacked number of objects and their disk consumption." msgstr "" -#. type: delimited block = -#: en/git.txt:238 -msgid "link:v1.7.12.4/git.html[documentation for release 1.7.12.4]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:10 +#, no-wrap +msgid "linkgit:git-difftool[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:245 -msgid "" -"release notes for link:RelNotes/1.7.12.4.txt[1.7.12.4], " -"link:RelNotes/1.7.12.3.txt[1.7.12.3], link:RelNotes/1.7.12.2.txt[1.7.12.2], " -"link:RelNotes/1.7.12.1.txt[1.7.12.1], link:RelNotes/1.7.12.txt[1.7.12]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:12 +msgid "Show changes using common diff tools." msgstr "" -#. type: delimited block = -#: en/git.txt:247 -msgid "link:v1.7.11.7/git.html[documentation for release 1.7.11.7]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:13 +#, no-wrap +msgid "linkgit:git-fsck[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:257 -msgid "" -"release notes for link:RelNotes/1.7.11.7.txt[1.7.11.7], " -"link:RelNotes/1.7.11.6.txt[1.7.11.6], link:RelNotes/1.7.11.5.txt[1.7.11.5], " -"link:RelNotes/1.7.11.4.txt[1.7.11.4], link:RelNotes/1.7.11.3.txt[1.7.11.3], " -"link:RelNotes/1.7.11.2.txt[1.7.11.2], link:RelNotes/1.7.11.1.txt[1.7.11.1], " -"link:RelNotes/1.7.11.txt[1.7.11]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:15 en/git-fsck.txt:20 +msgid "Verifies the connectivity and validity of the objects in the database." msgstr "" -#. type: delimited block = -#: en/git.txt:259 -msgid "link:v1.7.10.5/git.html[documentation for release 1.7.10.5]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:16 +#, no-wrap +msgid "linkgit:git-help[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:267 -msgid "" -"release notes for link:RelNotes/1.7.10.5.txt[1.7.10.5], " -"link:RelNotes/1.7.10.4.txt[1.7.10.4], link:RelNotes/1.7.10.3.txt[1.7.10.3], " -"link:RelNotes/1.7.10.2.txt[1.7.10.2], link:RelNotes/1.7.10.1.txt[1.7.10.1], " -"link:RelNotes/1.7.10.txt[1.7.10]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:18 +msgid "Display help information about Git." msgstr "" -#. type: delimited block = -#: en/git.txt:269 -msgid "link:v1.7.9.7/git.html[documentation for release 1.7.9.7]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:19 +#, no-wrap +msgid "linkgit:git-instaweb[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:279 -msgid "" -"release notes for link:RelNotes/1.7.9.7.txt[1.7.9.7], " -"link:RelNotes/1.7.9.6.txt[1.7.9.6], link:RelNotes/1.7.9.5.txt[1.7.9.5], " -"link:RelNotes/1.7.9.4.txt[1.7.9.4], link:RelNotes/1.7.9.3.txt[1.7.9.3], " -"link:RelNotes/1.7.9.2.txt[1.7.9.2], link:RelNotes/1.7.9.1.txt[1.7.9.1], " -"link:RelNotes/1.7.9.txt[1.7.9]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:21 +msgid "Instantly browse your working repository in gitweb." msgstr "" -#. type: delimited block = -#: en/git.txt:281 -msgid "link:v1.7.8.6/git.html[documentation for release 1.7.8.6]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:22 +#, no-wrap +msgid "linkgit:git-merge-tree[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:290 -msgid "" -"release notes for link:RelNotes/1.7.8.6.txt[1.7.8.6], " -"link:RelNotes/1.7.8.5.txt[1.7.8.5], link:RelNotes/1.7.8.4.txt[1.7.8.4], " -"link:RelNotes/1.7.8.3.txt[1.7.8.3], link:RelNotes/1.7.8.2.txt[1.7.8.2], " -"link:RelNotes/1.7.8.1.txt[1.7.8.1], link:RelNotes/1.7.8.txt[1.7.8]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:24 +msgid "Show three-way merge without touching index." msgstr "" -#. type: delimited block = -#: en/git.txt:292 -msgid "link:v1.7.7.7/git.html[documentation for release 1.7.7.7]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:25 +#, no-wrap +msgid "linkgit:git-rerere[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:302 -msgid "" -"release notes for link:RelNotes/1.7.7.7.txt[1.7.7.7], " -"link:RelNotes/1.7.7.6.txt[1.7.7.6], link:RelNotes/1.7.7.5.txt[1.7.7.5], " -"link:RelNotes/1.7.7.4.txt[1.7.7.4], link:RelNotes/1.7.7.3.txt[1.7.7.3], " -"link:RelNotes/1.7.7.2.txt[1.7.7.2], link:RelNotes/1.7.7.1.txt[1.7.7.1], " -"link:RelNotes/1.7.7.txt[1.7.7]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:27 +msgid "Reuse recorded resolution of conflicted merges." msgstr "" -#. type: delimited block = -#: en/git.txt:304 -msgid "link:v1.7.6.6/git.html[documentation for release 1.7.6.6]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:28 +#, no-wrap +msgid "linkgit:git-show-branch[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:313 -msgid "" -"release notes for link:RelNotes/1.7.6.6.txt[1.7.6.6], " -"link:RelNotes/1.7.6.5.txt[1.7.6.5], link:RelNotes/1.7.6.4.txt[1.7.6.4], " -"link:RelNotes/1.7.6.3.txt[1.7.6.3], link:RelNotes/1.7.6.2.txt[1.7.6.2], " -"link:RelNotes/1.7.6.1.txt[1.7.6.1], link:RelNotes/1.7.6.txt[1.7.6]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:30 +msgid "Show branches and their commits." msgstr "" -#. type: delimited block = -#: en/git.txt:315 -msgid "link:v1.7.5.4/git.html[documentation for release 1.7.5.4]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:31 +#, no-wrap +msgid "linkgit:git-verify-commit[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:322 -msgid "" -"release notes for link:RelNotes/1.7.5.4.txt[1.7.5.4], " -"link:RelNotes/1.7.5.3.txt[1.7.5.3], link:RelNotes/1.7.5.2.txt[1.7.5.2], " -"link:RelNotes/1.7.5.1.txt[1.7.5.1], link:RelNotes/1.7.5.txt[1.7.5]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:33 +msgid "Check the GPG signature of commits." msgstr "" -#. type: delimited block = -#: en/git.txt:324 -msgid "link:v1.7.4.5/git.html[documentation for release 1.7.4.5]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:34 +#, no-wrap +msgid "linkgit:git-verify-tag[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:332 -msgid "" -"release notes for link:RelNotes/1.7.4.5.txt[1.7.4.5], " -"link:RelNotes/1.7.4.4.txt[1.7.4.4], link:RelNotes/1.7.4.3.txt[1.7.4.3], " -"link:RelNotes/1.7.4.2.txt[1.7.4.2], link:RelNotes/1.7.4.1.txt[1.7.4.1], " -"link:RelNotes/1.7.4.txt[1.7.4]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:36 +msgid "Check the GPG signature of tags." msgstr "" -#. type: delimited block = -#: en/git.txt:334 -msgid "link:v1.7.3.5/git.html[documentation for release 1.7.3.5]" +#. type: Labeled list +#: en/cmds-ancillaryinterrogators.txt:37 +#, no-wrap +msgid "linkgit:git-whatchanged[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:342 -msgid "" -"release notes for link:RelNotes/1.7.3.5.txt[1.7.3.5], " -"link:RelNotes/1.7.3.4.txt[1.7.3.4], link:RelNotes/1.7.3.3.txt[1.7.3.3], " -"link:RelNotes/1.7.3.2.txt[1.7.3.2], link:RelNotes/1.7.3.1.txt[1.7.3.1], " -"link:RelNotes/1.7.3.txt[1.7.3]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:39 +msgid "Show logs with difference each commit introduces." msgstr "" -#. type: delimited block = -#: en/git.txt:344 -msgid "link:v1.7.2.5/git.html[documentation for release 1.7.2.5]" +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:40 en/git-instaweb.txt:91 +#, no-wrap +msgid "linkgit:gitweb[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:352 -msgid "" -"release notes for link:RelNotes/1.7.2.5.txt[1.7.2.5], " -"link:RelNotes/1.7.2.4.txt[1.7.2.4], link:RelNotes/1.7.2.3.txt[1.7.2.3], " -"link:RelNotes/1.7.2.2.txt[1.7.2.2], link:RelNotes/1.7.2.1.txt[1.7.2.1], " -"link:RelNotes/1.7.2.txt[1.7.2]." +#. type: Plain text +#: en/cmds-ancillaryinterrogators.txt:42 +msgid "Git web interface (web frontend to Git repositories)." msgstr "" -#. type: delimited block = -#: en/git.txt:354 -msgid "link:v1.7.1.4/git.html[documentation for release 1.7.1.4]" +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:1 en/git-difftool.txt:142 +#, no-wrap +msgid "linkgit:git-config[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:361 -msgid "" -"release notes for link:RelNotes/1.7.1.4.txt[1.7.1.4], " -"link:RelNotes/1.7.1.3.txt[1.7.1.3], link:RelNotes/1.7.1.2.txt[1.7.1.2], " -"link:RelNotes/1.7.1.1.txt[1.7.1.1], link:RelNotes/1.7.1.txt[1.7.1]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:3 +msgid "Get and set repository or global options." msgstr "" -#. type: delimited block = -#: en/git.txt:363 -msgid "link:v1.7.0.9/git.html[documentation for release 1.7.0.9]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:4 en/git-fast-import.txt:1489 +#, no-wrap +msgid "linkgit:git-fast-export[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:375 -msgid "" -"release notes for link:RelNotes/1.7.0.9.txt[1.7.0.9], " -"link:RelNotes/1.7.0.8.txt[1.7.0.8], link:RelNotes/1.7.0.7.txt[1.7.0.7], " -"link:RelNotes/1.7.0.6.txt[1.7.0.6], link:RelNotes/1.7.0.5.txt[1.7.0.5], " -"link:RelNotes/1.7.0.4.txt[1.7.0.4], link:RelNotes/1.7.0.3.txt[1.7.0.3], " -"link:RelNotes/1.7.0.2.txt[1.7.0.2], link:RelNotes/1.7.0.1.txt[1.7.0.1], " -"link:RelNotes/1.7.0.txt[1.7.0]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:6 +msgid "Git data exporter." msgstr "" -#. type: delimited block = -#: en/git.txt:377 -msgid "link:v1.6.6.3/git.html[documentation for release 1.6.6.3]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:7 en/git-fast-export.txt:236 +#, no-wrap +msgid "linkgit:git-fast-import[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:383 -msgid "" -"release notes for link:RelNotes/1.6.6.3.txt[1.6.6.3], " -"link:RelNotes/1.6.6.2.txt[1.6.6.2], link:RelNotes/1.6.6.1.txt[1.6.6.1], " -"link:RelNotes/1.6.6.txt[1.6.6]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:9 +msgid "Backend for fast Git data importers." msgstr "" -#. type: delimited block = -#: en/git.txt:385 -msgid "link:v1.6.5.9/git.html[documentation for release 1.6.5.9]" +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:10 +#, no-wrap +msgid "linkgit:git-filter-branch[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:397 -msgid "" -"release notes for link:RelNotes/1.6.5.9.txt[1.6.5.9], " -"link:RelNotes/1.6.5.8.txt[1.6.5.8], link:RelNotes/1.6.5.7.txt[1.6.5.7], " -"link:RelNotes/1.6.5.6.txt[1.6.5.6], link:RelNotes/1.6.5.5.txt[1.6.5.5], " -"link:RelNotes/1.6.5.4.txt[1.6.5.4], link:RelNotes/1.6.5.3.txt[1.6.5.3], " -"link:RelNotes/1.6.5.2.txt[1.6.5.2], link:RelNotes/1.6.5.1.txt[1.6.5.1], " -"link:RelNotes/1.6.5.txt[1.6.5]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:12 +msgid "Rewrite branches." msgstr "" -#. type: delimited block = -#: en/git.txt:399 -msgid "link:v1.6.4.5/git.html[documentation for release 1.6.4.5]" +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:13 en/git-difftool.txt:139 +#, no-wrap +msgid "linkgit:git-mergetool[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:407 -msgid "" -"release notes for link:RelNotes/1.6.4.5.txt[1.6.4.5], " -"link:RelNotes/1.6.4.4.txt[1.6.4.4], link:RelNotes/1.6.4.3.txt[1.6.4.3], " -"link:RelNotes/1.6.4.2.txt[1.6.4.2], link:RelNotes/1.6.4.1.txt[1.6.4.1], " -"link:RelNotes/1.6.4.txt[1.6.4]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:15 +msgid "Run merge conflict resolution tools to resolve merge conflicts." msgstr "" -#. type: delimited block = -#: en/git.txt:409 -msgid "link:v1.6.3.4/git.html[documentation for release 1.6.3.4]" +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:16 +#, no-wrap +msgid "linkgit:git-pack-refs[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:416 -msgid "" -"release notes for link:RelNotes/1.6.3.4.txt[1.6.3.4], " -"link:RelNotes/1.6.3.3.txt[1.6.3.3], link:RelNotes/1.6.3.2.txt[1.6.3.2], " -"link:RelNotes/1.6.3.1.txt[1.6.3.1], link:RelNotes/1.6.3.txt[1.6.3]." +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:18 +msgid "Pack heads and tags for efficient repository access." msgstr "" -#. type: delimited block = -#: en/git.txt:424 -msgid "" -"release notes for link:RelNotes/1.6.2.5.txt[1.6.2.5], " -"link:RelNotes/1.6.2.4.txt[1.6.2.4], link:RelNotes/1.6.2.3.txt[1.6.2.3], " -"link:RelNotes/1.6.2.2.txt[1.6.2.2], link:RelNotes/1.6.2.1.txt[1.6.2.1], " -"link:RelNotes/1.6.2.txt[1.6.2]." +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:19 +#, no-wrap +msgid "linkgit:git-prune[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:426 -msgid "link:v1.6.1.3/git.html[documentation for release 1.6.1.3]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:21 +msgid "Prune all unreachable objects from the object database." msgstr "" -#. type: delimited block = -#: en/git.txt:432 -msgid "" -"release notes for link:RelNotes/1.6.1.3.txt[1.6.1.3], " -"link:RelNotes/1.6.1.2.txt[1.6.1.2], link:RelNotes/1.6.1.1.txt[1.6.1.1], " -"link:RelNotes/1.6.1.txt[1.6.1]." +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:22 +#, no-wrap +msgid "linkgit:git-reflog[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:434 -msgid "link:v1.6.0.6/git.html[documentation for release 1.6.0.6]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:24 +msgid "Manage reflog information." msgstr "" -#. type: delimited block = -#: en/git.txt:443 -msgid "" -"release notes for link:RelNotes/1.6.0.6.txt[1.6.0.6], " -"link:RelNotes/1.6.0.5.txt[1.6.0.5], link:RelNotes/1.6.0.4.txt[1.6.0.4], " -"link:RelNotes/1.6.0.3.txt[1.6.0.3], link:RelNotes/1.6.0.2.txt[1.6.0.2], " -"link:RelNotes/1.6.0.1.txt[1.6.0.1], link:RelNotes/1.6.0.txt[1.6.0]." +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:25 +#, no-wrap +msgid "linkgit:git-remote[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:445 -msgid "link:v1.5.6.6/git.html[documentation for release 1.5.6.6]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:27 +msgid "Manage set of tracked repositories." msgstr "" -#. type: delimited block = -#: en/git.txt:454 -msgid "" -"release notes for link:RelNotes/1.5.6.6.txt[1.5.6.6], " -"link:RelNotes/1.5.6.5.txt[1.5.6.5], link:RelNotes/1.5.6.4.txt[1.5.6.4], " -"link:RelNotes/1.5.6.3.txt[1.5.6.3], link:RelNotes/1.5.6.2.txt[1.5.6.2], " -"link:RelNotes/1.5.6.1.txt[1.5.6.1], link:RelNotes/1.5.6.txt[1.5.6]." +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:28 +#, no-wrap +msgid "linkgit:git-repack[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:456 -msgid "link:v1.5.5.6/git.html[documentation for release 1.5.5.6]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:30 +msgid "Pack unpacked objects in a repository." msgstr "" -#. type: delimited block = -#: en/git.txt:465 -msgid "" -"release notes for link:RelNotes/1.5.5.6.txt[1.5.5.6], " -"link:RelNotes/1.5.5.5.txt[1.5.5.5], link:RelNotes/1.5.5.4.txt[1.5.5.4], " -"link:RelNotes/1.5.5.3.txt[1.5.5.3], link:RelNotes/1.5.5.2.txt[1.5.5.2], " -"link:RelNotes/1.5.5.1.txt[1.5.5.1], link:RelNotes/1.5.5.txt[1.5.5]." +#. type: Labeled list +#: en/cmds-ancillarymanipulators.txt:31 +#, no-wrap +msgid "linkgit:git-replace[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:467 -msgid "link:v1.5.4.7/git.html[documentation for release 1.5.4.7]" +#. type: Plain text +#: en/cmds-ancillarymanipulators.txt:33 +msgid "Create, list, delete refs to replace objects." msgstr "" -#. type: delimited block = -#: en/git.txt:477 -msgid "" -"release notes for link:RelNotes/1.5.4.7.txt[1.5.4.7], " -"link:RelNotes/1.5.4.6.txt[1.5.4.6], link:RelNotes/1.5.4.5.txt[1.5.4.5], " -"link:RelNotes/1.5.4.4.txt[1.5.4.4], link:RelNotes/1.5.4.3.txt[1.5.4.3], " -"link:RelNotes/1.5.4.2.txt[1.5.4.2], link:RelNotes/1.5.4.1.txt[1.5.4.1], " -"link:RelNotes/1.5.4.txt[1.5.4]." +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:1 +#, no-wrap +msgid "linkgit:git-archimport[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:479 -msgid "link:v1.5.3.8/git.html[documentation for release 1.5.3.8]" +#. type: Plain text +#: en/cmds-foreignscminterface.txt:3 +msgid "Import a GNU Arch repository into Git." msgstr "" -#. type: delimited block = -#: en/git.txt:490 -msgid "" -"release notes for link:RelNotes/1.5.3.8.txt[1.5.3.8], " -"link:RelNotes/1.5.3.7.txt[1.5.3.7], link:RelNotes/1.5.3.6.txt[1.5.3.6], " -"link:RelNotes/1.5.3.5.txt[1.5.3.5], link:RelNotes/1.5.3.4.txt[1.5.3.4], " -"link:RelNotes/1.5.3.3.txt[1.5.3.3], link:RelNotes/1.5.3.2.txt[1.5.3.2], " -"link:RelNotes/1.5.3.1.txt[1.5.3.1], link:RelNotes/1.5.3.txt[1.5.3]." -msgstr "" - -#. type: delimited block = -#: en/git.txt:492 -msgid "link:v1.5.2.5/git.html[documentation for release 1.5.2.5]" +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:4 +#, no-wrap +msgid "linkgit:git-cvsexportcommit[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:500 -msgid "" -"release notes for link:RelNotes/1.5.2.5.txt[1.5.2.5], " -"link:RelNotes/1.5.2.4.txt[1.5.2.4], link:RelNotes/1.5.2.3.txt[1.5.2.3], " -"link:RelNotes/1.5.2.2.txt[1.5.2.2], link:RelNotes/1.5.2.1.txt[1.5.2.1], " -"link:RelNotes/1.5.2.txt[1.5.2]." +#. type: Plain text +#: en/cmds-foreignscminterface.txt:6 +msgid "Export a single commit to a CVS checkout." msgstr "" -#. type: delimited block = -#: en/git.txt:502 -msgid "link:v1.5.1.6/git.html[documentation for release 1.5.1.6]" +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:7 +#, no-wrap +msgid "linkgit:git-cvsimport[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:511 -msgid "" -"release notes for link:RelNotes/1.5.1.6.txt[1.5.1.6], " -"link:RelNotes/1.5.1.5.txt[1.5.1.5], link:RelNotes/1.5.1.4.txt[1.5.1.4], " -"link:RelNotes/1.5.1.3.txt[1.5.1.3], link:RelNotes/1.5.1.2.txt[1.5.1.2], " -"link:RelNotes/1.5.1.1.txt[1.5.1.1], link:RelNotes/1.5.1.txt[1.5.1]." +#. type: Plain text +#: en/cmds-foreignscminterface.txt:9 +msgid "Salvage your data out of another SCM people love to hate." msgstr "" -#. type: delimited block = -#: en/git.txt:513 -msgid "link:v1.5.0.7/git.html[documentation for release 1.5.0.7]" +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:10 +#, no-wrap +msgid "linkgit:git-cvsserver[1]" msgstr "" -#. type: delimited block = -#: en/git.txt:522 -msgid "" -"release notes for link:RelNotes/1.5.0.7.txt[1.5.0.7], " -"link:RelNotes/1.5.0.6.txt[1.5.0.6], link:RelNotes/1.5.0.5.txt[1.5.0.5], " -"link:RelNotes/1.5.0.3.txt[1.5.0.3], link:RelNotes/1.5.0.2.txt[1.5.0.2], " -"link:RelNotes/1.5.0.1.txt[1.5.0.1], link:RelNotes/1.5.0.txt[1.5.0]." +#. type: Plain text +#: en/cmds-foreignscminterface.txt:12 +msgid "A CVS server emulator for Git." msgstr "" -#. type: delimited block = -#: en/git.txt:527 -msgid "" -"documentation for release link:v1.4.4.4/git.html[1.4.4.4], " -"link:v1.3.3/git.html[1.3.3], link:v1.2.6/git.html[1.2.6], " -"link:v1.0.13/git.html[1.0.13]." +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:13 +#, no-wrap +msgid "linkgit:git-imap-send[1]" msgstr "" -#. type: Title - -#: en/git.txt:533 en/git-add.txt:51 en/git-am.txt:28 en/git-annotate.txt:24 en/git-apply.txt:36 en/git-archimport.txt:68 en/git-archive.txt:34 en/git-bisect.txt:357 en/git-blame.txt:49 en/git-branch.txt:77 en/git-bundle.txt:34 en/git-cat-file.txt:30 en/git-check-attr.txt:21 en/git-check-ignore.txt:27 en/git-check-mailmap.txt:25 en/git-checkout-index.txt:24 en/git-checkout.txt:105 en/git-check-ref-format.txt:87 en/git-cherry-pick.txt:44 en/git-cherry.txt:28 en/git-clean.txt:27 en/git-clone.txt:42 en/git-column.txt:19 en/git-commit.txt:59 en/git-commit-tree.txt:42 en/git-config.txt:72 en/git-count-objects.txt:20 en/git-credential-cache.txt:27 en/git-credential-store.txt:30 en/git-cvsexportcommit.txt:35 en/git-cvsimport.txt:51 en/git-cvsserver.txt:28 en/git-daemon.txt:47 en/git-describe.txt:28 en/git-diff-files.txt:22 en/git-diff-index.txt:23 en/git-difftool.txt:21 en/git-diff-tree.txt:26 en/git-diff.txt:96 en/git-fast-export.txt:25 en/git-fast-import.txt:35 en/git-fetch-pack.txt:34 en/git-fetch.txt:46 en/git-filter-branch.txt:83 en/git-fmt-merge-msg.txt:25 en/git-for-each-ref.txt:27 en/git-format-patch.txt:81 en/git-fsck.txt:22 en/git-gc.txt:34 en/git-grep.txt:71 en/git-hash-object.txt:26 en/git-help.txt:40 en/git-http-fetch.txt:22 en/git-http-push.txt:24 en/git-imap-send.txt:30 en/git-index-pack.txt:26 en/git-init.txt:39 en/git-instaweb.txt:21 en/git-interpret-trailers.txt:69 en/git-log.txt:25 en/git-ls-files.txt:34 en/git-ls-remote.txt:23 en/git-ls-tree.txt:37 en/git-mailinfo.txt:26 en/git-mailsplit.txt:23 en/git-merge-base.txt:70 en/git-merge-file.txt:53 en/git-merge-index.txt:22 en/git-mergetool.txt:26 en/git-merge.txt:69 en/git-mktree.txt:22 en/git-mv.txt:30 en/git-name-rev.txt:22 en/git-notes.txt:126 en/git-p4.txt:162 en/git-pack-objects.txt:48 en/git-pack-redundant.txt:29 en/git-pack-refs.txt:46 en/git-patch-id.txt:31 en/git-prune-packed.txt:30 en/git-prune.txt:34 en/git-pull.txt:75 en/git-quiltimport.txt:32 en/git-read-tree.txt:33 en/git-rebase.txt:226 en/git-receive-pack.txt:40 en/git-reflog.txt:61 en/git-remote.txt:33 en/git-repack.txt:29 en/git-replace.txt:58 en/git-request-pull.txt:28 en/git-reset.txt:94 en/git-revert.txt:34 en/git-rev-list.txt:112 en/git-rev-parse.txt:26 en/git-rm.txt:28 en/git-send-email.txt:43 en/git-send-pack.txt:27 en/git-shortlog.txt:27 en/git-show-branch.txt:32 en/git-show-ref.txt:34 en/git-show.txt:36 en/git-stash.txt:49 en/git-status.txt:25 en/git-stripspace.txt:37 en/git-submodule.txt:270 en/git-svn.txt:544 en/git-symbolic-ref.txt:33 en/git-tag.txt:58 en/git-unpack-file.txt:22 en/git-unpack-objects.txt:29 en/git-update-index.txt:41 en/git-update-server-info.txt:24 en/git-upload-archive.txt:56 en/git-var.txt:19 en/git-verify-commit.txt:18 en/git-verify-pack.txt:22 en/git-verify-tag.txt:18 en/git-web--browse.txt:43 en/git-worktree.txt:83 en/git-write-tree.txt:29 -#, no-wrap -msgid "OPTIONS" +#. type: Plain text +#: en/cmds-foreignscminterface.txt:15 +msgid "Send a collection of patches from stdin to an IMAP folder." msgstr "" #. type: Labeled list -#: en/git.txt:534 en/git-cvsserver.txt:45 +#: en/cmds-foreignscminterface.txt:16 #, no-wrap -msgid "--version" +msgid "linkgit:git-p4[1]" msgstr "" #. type: Plain text -#: en/git.txt:536 -msgid "Prints the Git suite version that the 'git' program came from." +#: en/cmds-foreignscminterface.txt:18 +msgid "Import from and submit to Perforce repositories." msgstr "" #. type: Labeled list -#: en/git.txt:537 en/git-cvsserver.txt:50 +#: en/cmds-foreignscminterface.txt:19 #, no-wrap -msgid "--help" -msgstr "" - -#. type: Plain text -#: en/git.txt:542 -msgid "" -"Prints the synopsis and a list of the most commonly used commands. If the " -"option `--all` or `-a` is given then all available commands are printed. If " -"a Git command is named this option will bring up the manual page for that " -"command." +msgid "linkgit:git-quiltimport[1]" msgstr "" #. type: Plain text -#: en/git.txt:547 -msgid "" -"Other options are available to control how the manual page is displayed. See " -"linkgit:git-help[1] for more information, because `git --help ...` is " -"converted internally into `git help ...`." +#: en/cmds-foreignscminterface.txt:21 +msgid "Applies a quilt patchset onto the current branch." msgstr "" #. type: Labeled list -#: en/git.txt:548 +#: en/cmds-foreignscminterface.txt:22 #, no-wrap -msgid "-C <path>" +msgid "linkgit:git-request-pull[1]" msgstr "" #. type: Plain text -#: en/git.txt:553 -msgid "" -"Run as if git was started in '<path>' instead of the current working " -"directory. When multiple `-C` options are given, each subsequent " -"non-absolute `-C <path>` is interpreted relative to the preceding `-C " -"<path>`." +#: en/cmds-foreignscminterface.txt:24 +msgid "Generates a summary of pending changes." msgstr "" -#. type: Plain text -#: en/git.txt:558 -msgid "" -"This option affects options that expect path name like `--git-dir` and " -"`--work-tree` in that their interpretations of the path names would be made " -"relative to the working directory caused by the `-C` option. For example the " -"following invocations are equivalent:" +#. type: Labeled list +#: en/cmds-foreignscminterface.txt:25 +#, no-wrap +msgid "linkgit:git-send-email[1]" msgstr "" #. type: Plain text -#: en/git.txt:561 -#, no-wrap -msgid "" -" git --git-dir=a.git --work-tree=b -C c status\n" -" git --git-dir=c/a.git --work-tree=c/b status\n" +#: en/cmds-foreignscminterface.txt:27 +msgid "Send a collection of patches as emails." msgstr "" #. type: Labeled list -#: en/git.txt:562 +#: en/cmds-foreignscminterface.txt:28 #, no-wrap -msgid "-c <name>=<value>" +msgid "linkgit:git-svn[1]" msgstr "" #. type: Plain text -#: en/git.txt:567 -msgid "" -"Pass a configuration parameter to the command. The value given will override " -"values from configuration files. The <name> is expected in the same format " -"as listed by 'git config' (subkeys separated by dots)." +#: en/cmds-foreignscminterface.txt:30 +msgid "Bidirectional operation between a Subversion repository and Git." msgstr "" #. type: Plain text -#: en/git.txt:572 -msgid "" -"Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets " -"`foo.bar` to the boolean true value (just like `[foo]bar` would in a config " -"file). Including the equals but with an empty value (like `git -c foo.bar= " -"...`) sets `foo.bar` to the empty string." +#: en/cmds-mainporcelain.txt:1 en/git-rm.txt:186 +#, no-wrap +msgid "linkgit:git-add[1]" +msgstr "" + +#. type: Plain text +#: en/cmds-mainporcelain.txt:3 +msgid "Add file contents to the index." msgstr "" #. type: Labeled list -#: en/git.txt:573 +#: en/cmds-mainporcelain.txt:4 #, no-wrap -msgid "--exec-path[=<path>]" +msgid "linkgit:git-am[1]" msgstr "" #. type: Plain text -#: en/git.txt:578 -msgid "" -"Path to wherever your core Git programs are installed. This can also be " -"controlled by setting the GIT_EXEC_PATH environment variable. If no path is " -"given, 'git' will print the current setting and then exit." +#: en/cmds-mainporcelain.txt:6 +msgid "Apply a series of patches from a mailbox." msgstr "" #. type: Labeled list -#: en/git.txt:579 +#: en/cmds-mainporcelain.txt:7 #, no-wrap -msgid "--html-path" +msgid "linkgit:git-archive[1]" msgstr "" #. type: Plain text -#: en/git.txt:582 -msgid "" -"Print the path, without trailing slash, where Git's HTML documentation is " -"installed and exit." +#: en/cmds-mainporcelain.txt:9 +msgid "Create an archive of files from a named tree." msgstr "" #. type: Labeled list -#: en/git.txt:583 +#: en/cmds-mainporcelain.txt:10 #, no-wrap -msgid "--man-path" +msgid "linkgit:git-bisect[1]" msgstr "" #. type: Plain text -#: en/git.txt:586 -msgid "" -"Print the manpath (see `man(1)`) for the man pages for this version of Git " -"and exit." +#: en/cmds-mainporcelain.txt:12 +msgid "Use binary search to find the commit that introduced a bug." msgstr "" #. type: Labeled list -#: en/git.txt:587 +#: en/cmds-mainporcelain.txt:13 #, no-wrap -msgid "--info-path" +msgid "linkgit:git-branch[1]" msgstr "" #. type: Plain text -#: en/git.txt:590 -msgid "" -"Print the path where the Info files documenting this version of Git are " -"installed and exit." +#: en/cmds-mainporcelain.txt:15 +msgid "List, create, or delete branches." msgstr "" #. type: Labeled list -#: en/git.txt:591 en/git-add.txt:85 en/git-cat-file.txt:48 en/git-checkout.txt:242 en/git-commit.txt:66 en/git-cvsexportcommit.txt:41 en/git-grep.txt:222 en/git-instaweb.txt:40 en/git-merge-file.txt:63 en/git-rebase.txt:383 en/git-request-pull.txt:29 en/git-svn.txt:504 en/git-svn.txt:641 en/blame-options.txt:39 en/diff-options.txt:16 en/diff-options.txt:22 en/fetch-options.txt:67 +#: en/cmds-mainporcelain.txt:16 #, no-wrap -msgid "-p" +msgid "linkgit:git-bundle[1]" +msgstr "" + +#. type: Plain text +#: en/cmds-mainporcelain.txt:18 +msgid "Move objects and refs by archive." msgstr "" #. type: Labeled list -#: en/git.txt:592 +#: en/cmds-mainporcelain.txt:19 #, no-wrap -msgid "--paginate" +msgid "linkgit:git-checkout[1]" msgstr "" #. type: Plain text -#: en/git.txt:597 -msgid "" -"Pipe all output into 'less' (or if set, $PAGER) if standard output is a " -"terminal. This overrides the `pager.<cmd>` configuration options (see the " -"\"Configuration Mechanism\" section below)." +#: en/cmds-mainporcelain.txt:21 +msgid "Switch branches or restore working tree files." msgstr "" -#. type: Labeled list -#: en/git.txt:598 +#. type: Plain text +#: en/cmds-mainporcelain.txt:22 en/git-revert.txt:126 #, no-wrap -msgid "--no-pager" +msgid "linkgit:git-cherry-pick[1]" msgstr "" #. type: Plain text -#: en/git.txt:600 -msgid "Do not pipe Git output into a pager." +#: en/cmds-mainporcelain.txt:24 +msgid "Apply the changes introduced by some existing commits." msgstr "" #. type: Labeled list -#: en/git.txt:601 +#: en/cmds-mainporcelain.txt:25 #, no-wrap -msgid "--git-dir=<path>" +msgid "linkgit:git-citool[1]" msgstr "" #. type: Plain text -#: en/git.txt:605 -msgid "" -"Set the path to the repository. This can also be controlled by setting the " -"`GIT_DIR` environment variable. It can be an absolute path or relative path " -"to current working directory." +#: en/cmds-mainporcelain.txt:27 +msgid "Graphical alternative to git-commit." msgstr "" #. type: Labeled list -#: en/git.txt:606 +#: en/cmds-mainporcelain.txt:28 #, no-wrap -msgid "--work-tree=<path>" +msgid "linkgit:git-clean[1]" msgstr "" #. type: Plain text -#: en/git.txt:613 -msgid "" -"Set the path to the working tree. It can be an absolute path or a path " -"relative to the current working directory. This can also be controlled by " -"setting the GIT_WORK_TREE environment variable and the core.worktree " -"configuration variable (see core.worktree in linkgit:git-config[1] for a " -"more detailed discussion)." +#: en/cmds-mainporcelain.txt:30 +msgid "Remove untracked files from the working tree." msgstr "" #. type: Labeled list -#: en/git.txt:614 +#: en/cmds-mainporcelain.txt:31 #, no-wrap -msgid "--namespace=<path>" +msgid "linkgit:git-clone[1]" msgstr "" #. type: Plain text -#: en/git.txt:618 -msgid "" -"Set the Git namespace. See linkgit:gitnamespaces[7] for more details. " -"Equivalent to setting the `GIT_NAMESPACE` environment variable." +#: en/cmds-mainporcelain.txt:33 +msgid "Clone a repository into a new directory." msgstr "" #. type: Labeled list -#: en/git.txt:619 +#: en/cmds-mainporcelain.txt:34 #, no-wrap -msgid "--super-prefix=<path>" +msgid "linkgit:git-commit[1]" msgstr "" #. type: Plain text -#: en/git.txt:623 -msgid "" -"Currently for internal use only. Set a prefix which gives a path from above " -"a repository down to its root. One use is to give submodules context about " -"the superproject that invoked it." +#: en/cmds-mainporcelain.txt:36 +msgid "Record changes to the repository." msgstr "" #. type: Labeled list -#: en/git.txt:624 en/git-clone.txt:138 en/git-init.txt:48 en/git-p4.txt:268 +#: en/cmds-mainporcelain.txt:37 #, no-wrap -msgid "--bare" +msgid "linkgit:git-describe[1]" msgstr "" #. type: Plain text -#: en/git.txt:628 -msgid "" -"Treat the repository as a bare repository. If GIT_DIR environment is not " -"set, it is set to the current working directory." +#: en/cmds-mainporcelain.txt:39 +msgid "Give an object a human readable name based on an available ref." msgstr "" #. type: Labeled list -#: en/git.txt:629 +#: en/cmds-mainporcelain.txt:40 en/git-difftool.txt:136 #, no-wrap -msgid "--no-replace-objects" +msgid "linkgit:git-diff[1]" msgstr "" #. type: Plain text -#: en/git.txt:632 -msgid "" -"Do not use replacement refs to replace Git objects. See " -"linkgit:git-replace[1] for more information." +#: en/cmds-mainporcelain.txt:42 +msgid "Show changes between commits, commit and working tree, etc." msgstr "" -#. type: Labeled list -#: en/git.txt:633 +#. type: Plain text +#: en/cmds-mainporcelain.txt:43 en/git-fetch-pack.txt:129 #, no-wrap -msgid "--literal-pathspecs" +msgid "linkgit:git-fetch[1]" msgstr "" #. type: Plain text -#: en/git.txt:637 -msgid "" -"Treat pathspecs literally (i.e. no globbing, no pathspec magic). This is " -"equivalent to setting the `GIT_LITERAL_PATHSPECS` environment variable to " -"`1`." +#: en/cmds-mainporcelain.txt:45 +msgid "Download objects and refs from another repository." msgstr "" #. type: Labeled list -#: en/git.txt:638 +#: en/cmds-mainporcelain.txt:46 #, no-wrap -msgid "--glob-pathspecs" +msgid "linkgit:git-format-patch[1]" msgstr "" #. type: Plain text -#: en/git.txt:643 -msgid "" -"Add \"glob\" magic to all pathspec. This is equivalent to setting the " -"`GIT_GLOB_PATHSPECS` environment variable to `1`. Disabling globbing on " -"individual pathspecs can be done using pathspec magic \":(literal)\"" +#: en/cmds-mainporcelain.txt:48 +msgid "Prepare patches for e-mail submission." msgstr "" #. type: Labeled list -#: en/git.txt:644 +#: en/cmds-mainporcelain.txt:49 #, no-wrap -msgid "--noglob-pathspecs" +msgid "linkgit:git-gc[1]" msgstr "" #. type: Plain text -#: en/git.txt:649 -msgid "" -"Add \"literal\" magic to all pathspec. This is equivalent to setting the " -"`GIT_NOGLOB_PATHSPECS` environment variable to `1`. Enabling globbing on " -"individual pathspecs can be done using pathspec magic \":(glob)\"" +#: en/cmds-mainporcelain.txt:51 +msgid "Cleanup unnecessary files and optimize the local repository." msgstr "" #. type: Labeled list -#: en/git.txt:650 +#: en/cmds-mainporcelain.txt:52 #, no-wrap -msgid "--icase-pathspecs" +msgid "linkgit:git-grep[1]" msgstr "" #. type: Plain text -#: en/git.txt:653 -msgid "" -"Add \"icase\" magic to all pathspec. This is equivalent to setting the " -"`GIT_ICASE_PATHSPECS` environment variable to `1`." +#: en/cmds-mainporcelain.txt:54 +msgid "Print lines matching a pattern." msgstr "" -#. type: Title - -#: en/git.txt:655 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:55 #, no-wrap -msgid "GIT COMMANDS" +msgid "linkgit:git-gui[1]" msgstr "" #. type: Plain text -#: en/git.txt:659 -msgid "" -"We divide Git into high level (\"porcelain\") commands and low level " -"(\"plumbing\") commands." +#: en/cmds-mainporcelain.txt:57 +msgid "A portable graphical interface to Git." msgstr "" -#. type: Title - -#: en/git.txt:661 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:58 #, no-wrap -msgid "High-level commands (porcelain)" +msgid "linkgit:git-init[1]" msgstr "" #. type: Plain text -#: en/git.txt:665 -msgid "" -"We separate the porcelain commands into the main commands and some ancillary " -"user utilities." +#: en/cmds-mainporcelain.txt:60 +msgid "Create an empty Git repository or reinitialize an existing one." msgstr "" -#. type: Title ~ -#: en/git.txt:667 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:61 #, no-wrap -msgid "Main porcelain commands" +msgid "linkgit:git-log[1]" msgstr "" -#. type: Title ~ -#: en/git.txt:672 -#, no-wrap -msgid "Ancillary Commands" +#. type: Plain text +#: en/cmds-mainporcelain.txt:63 +msgid "Show commit logs." msgstr "" #. type: Plain text -#: en/git.txt:674 -msgid "Manipulators:" +#: en/cmds-mainporcelain.txt:64 en/git-fmt-merge-msg.txt:75 +#, no-wrap +msgid "linkgit:git-merge[1]" msgstr "" #. type: Plain text -#: en/git.txt:678 -msgid "Interrogators:" +#: en/cmds-mainporcelain.txt:66 +msgid "Join two or more development histories together." msgstr "" -#. type: Title ~ -#: en/git.txt:683 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:67 #, no-wrap -msgid "Interacting with Others" +msgid "linkgit:git-mv[1]" msgstr "" #. type: Plain text -#: en/git.txt:687 -msgid "" -"These commands are to interact with foreign SCM and with other people via " -"patch over e-mail." +#: en/cmds-mainporcelain.txt:69 +msgid "Move or rename a file, a directory, or a symlink." msgstr "" -#. type: Title - -#: en/git.txt:692 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:70 #, no-wrap -msgid "Low-level commands (plumbing)" +msgid "linkgit:git-notes[1]" msgstr "" #. type: Plain text -#: en/git.txt:699 -msgid "" -"Although Git includes its own porcelain layer, its low-level commands are " -"sufficient to support development of alternative porcelains. Developers of " -"such porcelains might start by reading about linkgit:git-update-index[1] and " -"linkgit:git-read-tree[1]." +#: en/cmds-mainporcelain.txt:72 +msgid "Add or inspect object notes." msgstr "" #. type: Plain text -#: en/git.txt:706 -msgid "" -"The interface (input, output, set of options and the semantics) to these " -"low-level commands are meant to be a lot more stable than Porcelain level " -"commands, because these commands are primarily for scripted use. The " -"interface to Porcelain commands on the other hand are subject to change in " -"order to improve the end user experience." +#: en/cmds-mainporcelain.txt:73 en/git-fetch.txt:296 +#, no-wrap +msgid "linkgit:git-pull[1]" msgstr "" #. type: Plain text -#: en/git.txt:712 -msgid "" -"The following description divides the low-level commands into commands that " -"manipulate objects (in the repository, index, and working tree), commands " -"that interrogate and compare objects, and commands that move objects and " -"references between repositories." -msgstr "" - -#. type: Title ~ -#: en/git.txt:715 -#, no-wrap -msgid "Manipulation commands" +#: en/cmds-mainporcelain.txt:75 +msgid "Fetch from and integrate with another repository or a local branch." msgstr "" -#. type: Title ~ -#: en/git.txt:721 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:76 #, no-wrap -msgid "Interrogation commands" +msgid "linkgit:git-push[1]" msgstr "" #. type: Plain text -#: en/git.txt:727 -msgid "" -"In general, the interrogate commands do not touch the files in the working " -"tree." +#: en/cmds-mainporcelain.txt:78 +msgid "Update remote refs along with associated objects." msgstr "" -#. type: Title ~ -#: en/git.txt:730 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:79 #, no-wrap -msgid "Synching repositories" +msgid "linkgit:git-range-diff[1]" msgstr "" #. type: Plain text -#: en/git.txt:736 -msgid "" -"The following are helper commands used by the above; end users typically do " -"not use them directly." +#: en/cmds-mainporcelain.txt:81 +msgid "Compare two commit ranges (e.g. two versions of a branch)." msgstr "" -#. type: Title ~ -#: en/git.txt:741 +#. type: Plain text +#: en/cmds-mainporcelain.txt:82 en/git-svn.txt:1171 #, no-wrap -msgid "Internal helper commands" +msgid "linkgit:git-rebase[1]" msgstr "" #. type: Plain text -#: en/git.txt:745 -msgid "" -"These are internal helper commands used by other commands; end users " -"typically do not use them directly." +#: en/cmds-mainporcelain.txt:84 +msgid "Reapply commits on top of another base tip." msgstr "" -#. type: Title - -#: en/git.txt:750 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:85 #, no-wrap -msgid "Configuration Mechanism" +msgid "linkgit:git-reset[1]" msgstr "" #. type: Plain text -#: en/git.txt:755 -msgid "" -"Git uses a simple text format to store customizations that are per " -"repository and are per user. Such a configuration file may look like this:" +#: en/cmds-mainporcelain.txt:87 +msgid "Reset current HEAD to the specified state." msgstr "" -#. type: delimited block - -#: en/git.txt:760 +#. type: Plain text +#: en/cmds-mainporcelain.txt:88 en/git-cherry-pick.txt:230 #, no-wrap -msgid "" -"#\n" -"# A '#' or ';' character indicates a comment.\n" -"#\n" +msgid "linkgit:git-revert[1]" msgstr "" -#. type: delimited block - -#: en/git.txt:765 -#, no-wrap -msgid "" -"; core variables\n" -"[core]\n" -"\t; Don't trust file modes\n" -"\tfilemode = false\n" +#. type: Plain text +#: en/cmds-mainporcelain.txt:90 +msgid "Revert some existing commits." msgstr "" -#. type: delimited block - -#: en/git.txt:770 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:91 #, no-wrap -msgid "" -"; user identity\n" -"[user]\n" -"\tname = \"Junio C Hamano\"\n" -"\temail = \"gitster@pobox.com\"\n" +msgid "linkgit:git-rm[1]" msgstr "" #. type: Plain text -#: en/git.txt:776 -msgid "" -"Various commands read from the configuration file and adjust their operation " -"accordingly. See linkgit:git-config[1] for a list and more details about " -"the configuration mechanism." +#: en/cmds-mainporcelain.txt:93 +msgid "Remove files from the working tree and from the index." msgstr "" -#. type: Title - -#: en/git.txt:779 +#. type: Labeled list +#: en/cmds-mainporcelain.txt:94 #, no-wrap -msgid "Identifier Terminology" +msgid "linkgit:git-shortlog[1]" +msgstr "" + +#. type: Plain text +#: en/cmds-mainporcelain.txt:96 +msgid "Summarize 'git log' output." msgstr "" #. type: Labeled list -#: en/git.txt:780 en/git-cat-file.txt:31 en/git-fsck.txt:23 en/git-tag.txt:166 +#: en/cmds-mainporcelain.txt:97 #, no-wrap -msgid "<object>" +msgid "linkgit:git-show[1]" msgstr "" #. type: Plain text -#: en/git.txt:782 -msgid "Indicates the object name for any type of object." +#: en/cmds-mainporcelain.txt:99 +msgid "Show various types of objects." msgstr "" #. type: Labeled list -#: en/git.txt:783 en/git-unpack-file.txt:23 +#: en/cmds-mainporcelain.txt:100 #, no-wrap -msgid "<blob>" +msgid "linkgit:git-stash[1]" msgstr "" #. type: Plain text -#: en/git.txt:785 -msgid "Indicates a blob object name." +#: en/cmds-mainporcelain.txt:102 +msgid "Stash the changes in a dirty working directory away." msgstr "" #. type: Labeled list -#: en/git.txt:786 en/git-commit-tree.txt:43 +#: en/cmds-mainporcelain.txt:103 #, no-wrap -msgid "<tree>" +msgid "linkgit:git-status[1]" msgstr "" #. type: Plain text -#: en/git.txt:788 -msgid "Indicates a tree object name." +#: en/cmds-mainporcelain.txt:105 +msgid "Show the working tree status." msgstr "" #. type: Labeled list -#: en/git.txt:789 en/git-tag.txt:165 +#: en/cmds-mainporcelain.txt:106 #, no-wrap -msgid "<commit>" +msgid "linkgit:git-submodule[1]" msgstr "" #. type: Plain text -#: en/git.txt:791 -msgid "Indicates a commit object name." +#: en/cmds-mainporcelain.txt:108 +msgid "Initialize, update or inspect submodules." msgstr "" #. type: Labeled list -#: en/git.txt:792 en/git-archive.txt:77 en/git-checkout.txt:281 en/git-diff-index.txt:26 en/git-diff-tree.txt:29 en/git-ls-tree.txt:38 +#: en/cmds-mainporcelain.txt:109 #, no-wrap -msgid "<tree-ish>" +msgid "linkgit:git-tag[1]" msgstr "" #. type: Plain text -#: en/git.txt:797 -msgid "" -"Indicates a tree, commit or tag object name. A command that takes a " -"<tree-ish> argument ultimately wants to operate on a <tree> object but " -"automatically dereferences <commit> and <tag> objects that point at a " -"<tree>." +#: en/cmds-mainporcelain.txt:111 +msgid "Create, list, delete or verify a tag object signed with GPG." msgstr "" #. type: Labeled list -#: en/git.txt:798 +#: en/cmds-mainporcelain.txt:112 #, no-wrap -msgid "<commit-ish>" +msgid "linkgit:git-worktree[1]" msgstr "" #. type: Plain text -#: en/git.txt:803 -msgid "" -"Indicates a commit or tag object name. A command that takes a <commit-ish> " -"argument ultimately wants to operate on a <commit> object but automatically " -"dereferences <tag> objects that point at a <commit>." +#: en/cmds-mainporcelain.txt:114 +msgid "Manage multiple working trees." msgstr "" #. type: Labeled list -#: en/git.txt:804 en/git-cat-file.txt:51 +#: en/cmds-mainporcelain.txt:115 en/git-gui.txt:104 #, no-wrap -msgid "<type>" +msgid "linkgit:gitk[1]" msgstr "" #. type: Plain text -#: en/git.txt:807 -msgid "" -"Indicates that an object type is required. Currently one of: `blob`, " -"`tree`, `commit`, or `tag`." +#: en/cmds-mainporcelain.txt:117 +msgid "The Git repository browser." msgstr "" #. type: Labeled list -#: en/git.txt:808 en/git-ls-files.txt:177 en/git-update-index.txt:207 +#: en/cmds-plumbinginterrogators.txt:1 #, no-wrap -msgid "<file>" +msgid "linkgit:git-cat-file[1]" msgstr "" #. type: Plain text -#: en/git.txt:811 -msgid "" -"Indicates a filename - almost always relative to the root of the tree " -"structure `GIT_INDEX_FILE` describes." +#: en/cmds-plumbinginterrogators.txt:3 +msgid "Provide content or type and size information for repository objects." msgstr "" -#. type: Title - -#: en/git.txt:813 +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:4 #, no-wrap -msgid "Symbolic Identifiers" +msgid "linkgit:git-cherry[1]" msgstr "" #. type: Plain text -#: en/git.txt:816 -msgid "" -"Any Git command accepting any <object> can also use the following symbolic " -"notation:" +#: en/cmds-plumbinginterrogators.txt:6 +msgid "Find commits yet to be applied to upstream." msgstr "" #. type: Labeled list -#: en/git.txt:817 en/git-for-each-ref.txt:148 +#: en/cmds-plumbinginterrogators.txt:7 #, no-wrap -msgid "HEAD" +msgid "linkgit:git-diff-files[1]" msgstr "" #. type: Plain text -#: en/git.txt:819 -msgid "indicates the head of the current branch." +#: en/cmds-plumbinginterrogators.txt:9 +msgid "Compares files in the working tree and the index." msgstr "" #. type: Labeled list -#: en/git.txt:820 +#: en/cmds-plumbinginterrogators.txt:10 #, no-wrap -msgid "<tag>" +msgid "linkgit:git-diff-index[1]" msgstr "" #. type: Plain text -#: en/git.txt:823 -msgid "a valid tag 'name' (i.e. a `refs/tags/<tag>` reference)." +#: en/cmds-plumbinginterrogators.txt:12 +msgid "Compare a tree to the working tree or index." msgstr "" #. type: Labeled list -#: en/git.txt:824 en/git-cherry.txt:36 +#: en/cmds-plumbinginterrogators.txt:13 #, no-wrap -msgid "<head>" +msgid "linkgit:git-diff-tree[1]" msgstr "" #. type: Plain text -#: en/git.txt:827 -msgid "a valid head 'name' (i.e. a `refs/heads/<head>` reference)." +#: en/cmds-plumbinginterrogators.txt:15 +msgid "Compares the content and mode of blobs found via two tree objects." msgstr "" -#. type: Plain text -#: en/git.txt:830 -msgid "" -"For a more complete list of ways to spell object names, see \"SPECIFYING " -"REVISIONS\" section in linkgit:gitrevisions[7]." -msgstr "" - -#. type: Title - -#: en/git.txt:833 +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:16 #, no-wrap -msgid "File/Directory Structure" +msgid "linkgit:git-for-each-ref[1]" msgstr "" #. type: Plain text -#: en/git.txt:836 -msgid "Please see the linkgit:gitrepository-layout[5] document." +#: en/cmds-plumbinginterrogators.txt:18 +msgid "Output information on each ref." msgstr "" -#. type: Plain text -#: en/git.txt:838 -msgid "Read linkgit:githooks[5] for more details about each hook." +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:19 +#, no-wrap +msgid "linkgit:git-get-tar-commit-id[1]" msgstr "" #. type: Plain text -#: en/git.txt:841 -msgid "" -"Higher level SCMs may provide and manage additional information in the " -"`$GIT_DIR`." +#: en/cmds-plumbinginterrogators.txt:21 +msgid "Extract commit ID from an archive created using git-archive." msgstr "" -#. type: Title - -#: en/git.txt:844 +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:22 #, no-wrap -msgid "Terminology" +msgid "linkgit:git-ls-files[1]" msgstr "" #. type: Plain text -#: en/git.txt:846 -msgid "Please see linkgit:gitglossary[7]." +#: en/cmds-plumbinginterrogators.txt:24 +msgid "Show information about files in the index and the working tree." msgstr "" -#. type: Title - -#: en/git.txt:849 en/git-fsck.txt:146 +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:25 #, no-wrap -msgid "Environment Variables" +msgid "linkgit:git-ls-remote[1]" msgstr "" #. type: Plain text -#: en/git.txt:851 -msgid "Various Git commands use the following environment variables:" +#: en/cmds-plumbinginterrogators.txt:27 +msgid "List references in a remote repository." msgstr "" -#. type: Title ~ -#: en/git.txt:853 +#. type: Labeled list +#: en/cmds-plumbinginterrogators.txt:28 #, no-wrap -msgid "The Git Repository" +msgid "linkgit:git-ls-tree[1]" msgstr "" #. type: Plain text -#: en/git.txt:857 -msgid "" -"These environment variables apply to 'all' core Git commands. Nb: it is " -"worth noting that they may be used/overridden by SCMS sitting above Git so " -"take care if using a foreign front-end." +#: en/cmds-plumbinginterrogators.txt:30 +msgid "List the contents of a tree object." msgstr "" #. type: Labeled list -#: en/git.txt:858 +#: en/cmds-plumbinginterrogators.txt:31 #, no-wrap -msgid "`GIT_INDEX_FILE`" +msgid "linkgit:git-merge-base[1]" msgstr "" #. type: Plain text -#: en/git.txt:862 -msgid "" -"This environment allows the specification of an alternate index file. If not " -"specified, the default of `$GIT_DIR/index` is used." +#: en/cmds-plumbinginterrogators.txt:33 +msgid "Find as good common ancestors as possible for a merge." msgstr "" #. type: Labeled list -#: en/git.txt:863 +#: en/cmds-plumbinginterrogators.txt:34 #, no-wrap -msgid "`GIT_INDEX_VERSION`" +msgid "linkgit:git-name-rev[1]" msgstr "" #. type: Plain text -#: en/git.txt:868 -msgid "" -"This environment variable allows the specification of an index version for " -"new repositories. It won't affect existing index files. By default index " -"file version 2 or 3 is used. See linkgit:git-update-index[1] for more " -"information." +#: en/cmds-plumbinginterrogators.txt:36 +msgid "Find symbolic names for given revs." msgstr "" #. type: Labeled list -#: en/git.txt:869 +#: en/cmds-plumbinginterrogators.txt:37 #, no-wrap -msgid "`GIT_OBJECT_DIRECTORY`" +msgid "linkgit:git-pack-redundant[1]" msgstr "" #. type: Plain text -#: en/git.txt:874 -msgid "" -"If the object storage directory is specified via this environment variable " -"then the sha1 directories are created underneath - otherwise the default " -"`$GIT_DIR/objects` directory is used." +#: en/cmds-plumbinginterrogators.txt:39 +msgid "Find redundant pack files." msgstr "" #. type: Labeled list -#: en/git.txt:875 +#: en/cmds-plumbinginterrogators.txt:40 #, no-wrap -msgid "`GIT_ALTERNATE_OBJECT_DIRECTORIES`" -msgstr "" - -#. type: Plain text -#: en/git.txt:881 -msgid "" -"Due to the immutable nature of Git objects, old objects can be archived into " -"shared, read-only directories. This variable specifies a \":\" separated (on " -"Windows \";\" separated) list of Git object directories which can be used to " -"search for Git objects. New objects will not be written to these " -"directories." +msgid "linkgit:git-rev-list[1]" msgstr "" #. type: Plain text -#: en/git.txt:887 -msgid "" -"Entries that begin with `\"` (double-quote) will be interpreted as C-style " -"quoted paths, removing leading and trailing double-quotes and respecting " -"backslash escapes. E.g., the value " -"`\"path-with-\\\"-and-:-in-it\":vanilla-path` has two paths: " -"`path-with-\"-and-:-in-it` and `vanilla-path`." +#: en/cmds-plumbinginterrogators.txt:42 +msgid "Lists commit objects in reverse chronological order." msgstr "" #. type: Labeled list -#: en/git.txt:888 +#: en/cmds-plumbinginterrogators.txt:43 #, no-wrap -msgid "`GIT_DIR`" +msgid "linkgit:git-rev-parse[1]" msgstr "" #. type: Plain text -#: en/git.txt:893 -msgid "" -"If the `GIT_DIR` environment variable is set then it specifies a path to use " -"instead of the default `.git` for the base of the repository. The " -"`--git-dir` command-line option also sets this value." +#: en/cmds-plumbinginterrogators.txt:45 +msgid "Pick out and massage parameters." msgstr "" #. type: Labeled list -#: en/git.txt:894 +#: en/cmds-plumbinginterrogators.txt:46 #, no-wrap -msgid "`GIT_WORK_TREE`" +msgid "linkgit:git-show-index[1]" msgstr "" #. type: Plain text -#: en/git.txt:898 -msgid "" -"Set the path to the root of the working tree. This can also be controlled " -"by the `--work-tree` command-line option and the core.worktree configuration " -"variable." +#: en/cmds-plumbinginterrogators.txt:48 +msgid "Show packed archive index." msgstr "" -#. type: Labeled list -#: en/git.txt:899 +#. type: Plain text +#: en/cmds-plumbinginterrogators.txt:49 en/git-for-each-ref.txt:386 #, no-wrap -msgid "`GIT_NAMESPACE`" +msgid "linkgit:git-show-ref[1]" msgstr "" #. type: Plain text -#: en/git.txt:902 -msgid "" -"Set the Git namespace; see linkgit:gitnamespaces[7] for details. The " -"`--namespace` command-line option also sets this value." +#: en/cmds-plumbinginterrogators.txt:51 +msgid "List references in a local repository." msgstr "" #. type: Labeled list -#: en/git.txt:903 +#: en/cmds-plumbinginterrogators.txt:52 #, no-wrap -msgid "`GIT_CEILING_DIRECTORIES`" +msgid "linkgit:git-unpack-file[1]" msgstr "" #. type: Plain text -#: en/git.txt:917 -msgid "" -"This should be a colon-separated list of absolute paths. If set, it is a " -"list of directories that Git should not chdir up into while looking for a " -"repository directory (useful for excluding slow-loading network " -"directories). It will not exclude the current working directory or a " -"GIT_DIR set on the command line or in the environment. Normally, Git has to " -"read the entries in this list and resolve any symlink that might be present " -"in order to compare them with the current directory. However, if even this " -"access is slow, you can add an empty entry to the list to tell Git that the " -"subsequent entries are not symlinks and needn't be resolved; e.g., " -"`GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink`." +#: en/cmds-plumbinginterrogators.txt:54 +msgid "Creates a temporary file with a blob's contents." msgstr "" #. type: Labeled list -#: en/git.txt:918 +#: en/cmds-plumbinginterrogators.txt:55 #, no-wrap -msgid "`GIT_DISCOVERY_ACROSS_FILESYSTEM`" +msgid "linkgit:git-var[1]" msgstr "" #. type: Plain text -#: en/git.txt:927 -msgid "" -"When run in a directory that does not have \".git\" repository directory, " -"Git tries to find such a directory in the parent directories to find the top " -"of the working tree, but by default it does not cross filesystem " -"boundaries. This environment variable can be set to true to tell Git not to " -"stop at filesystem boundaries. Like `GIT_CEILING_DIRECTORIES`, this will " -"not affect an explicit repository directory set via `GIT_DIR` or on the " -"command line." +#: en/cmds-plumbinginterrogators.txt:57 +msgid "Show a Git logical variable." msgstr "" #. type: Labeled list -#: en/git.txt:928 +#: en/cmds-plumbinginterrogators.txt:58 #, no-wrap -msgid "`GIT_COMMON_DIR`" +msgid "linkgit:git-verify-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:936 -msgid "" -"If this variable is set to a path, non-worktree files that are normally in " -"$GIT_DIR will be taken from this path instead. Worktree-specific files such " -"as HEAD or index are taken from $GIT_DIR. See " -"linkgit:gitrepository-layout[5] and linkgit:git-worktree[1] for " -"details. This variable has lower precedence than other path variables such " -"as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY..." -msgstr "" - -#. type: Title ~ -#: en/git.txt:938 -#, no-wrap -msgid "Git Commits" +#: en/cmds-plumbinginterrogators.txt:60 +msgid "Validate packed Git archive files." msgstr "" #. type: Labeled list -#: en/git.txt:939 +#: en/cmds-plumbingmanipulators.txt:1 #, no-wrap -msgid "`GIT_AUTHOR_NAME`" +msgid "linkgit:git-apply[1]" msgstr "" -#. type: Labeled list -#: en/git.txt:940 -#, no-wrap -msgid "`GIT_AUTHOR_EMAIL`" +#. type: Plain text +#: en/cmds-plumbingmanipulators.txt:3 +msgid "Apply a patch to files and/or to the index." msgstr "" #. type: Labeled list -#: en/git.txt:941 +#: en/cmds-plumbingmanipulators.txt:4 #, no-wrap -msgid "`GIT_AUTHOR_DATE`" +msgid "linkgit:git-checkout-index[1]" msgstr "" -#. type: Labeled list -#: en/git.txt:942 -#, no-wrap -msgid "`GIT_COMMITTER_NAME`" +#. type: Plain text +#: en/cmds-plumbingmanipulators.txt:6 +msgid "Copy files from the index to the working tree." msgstr "" #. type: Labeled list -#: en/git.txt:943 +#: en/cmds-plumbingmanipulators.txt:7 #, no-wrap -msgid "`GIT_COMMITTER_EMAIL`" +msgid "linkgit:git-commit-graph[1]" msgstr "" -#. type: Labeled list -#: en/git.txt:944 -#, no-wrap -msgid "`GIT_COMMITTER_DATE`" +#. type: Plain text +#: en/cmds-plumbingmanipulators.txt:9 +msgid "Write and verify Git commit-graph files." msgstr "" #. type: Labeled list -#: en/git.txt:945 +#: en/cmds-plumbingmanipulators.txt:10 #, no-wrap -msgid "'EMAIL'" +msgid "linkgit:git-commit-tree[1]" msgstr "" #. type: Plain text -#: en/git.txt:947 -msgid "see linkgit:git-commit-tree[1]" -msgstr "" - -#. type: Title ~ -#: en/git.txt:949 -#, no-wrap -msgid "Git Diffs" +#: en/cmds-plumbingmanipulators.txt:12 +msgid "Create a new commit object." msgstr "" #. type: Labeled list -#: en/git.txt:950 +#: en/cmds-plumbingmanipulators.txt:13 #, no-wrap -msgid "`GIT_DIFF_OPTS`" +msgid "linkgit:git-hash-object[1]" msgstr "" #. type: Plain text -#: en/git.txt:955 -msgid "" -"Only valid setting is \"--unified=??\" or \"-u??\" to set the number of " -"context lines shown when a unified diff is created. This takes precedence " -"over any \"-U\" or \"--unified\" option value passed on the Git diff command " -"line." +#: en/cmds-plumbingmanipulators.txt:15 +msgid "Compute object ID and optionally creates a blob from a file." msgstr "" #. type: Labeled list -#: en/git.txt:956 +#: en/cmds-plumbingmanipulators.txt:16 #, no-wrap -msgid "`GIT_EXTERNAL_DIFF`" +msgid "linkgit:git-index-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:961 -msgid "" -"When the environment variable `GIT_EXTERNAL_DIFF` is set, the program named " -"by it is called, instead of the diff invocation described above. For a path " -"that is added, removed, or modified, `GIT_EXTERNAL_DIFF` is called with 7 " -"parameters:" +#: en/cmds-plumbingmanipulators.txt:18 +msgid "Build pack index file for an existing packed archive." msgstr "" -#. type: Plain text -#: en/git.txt:963 -msgid "path old-file old-hex old-mode new-file new-hex new-mode" +#. type: Labeled list +#: en/cmds-plumbingmanipulators.txt:19 +#, no-wrap +msgid "linkgit:git-merge-file[1]" msgstr "" #. type: Plain text -#: en/git.txt:965 -msgid "where:" +#: en/cmds-plumbingmanipulators.txt:21 +msgid "Run a three-way file merge." msgstr "" #. type: Labeled list -#: en/git.txt:966 +#: en/cmds-plumbingmanipulators.txt:22 #, no-wrap -msgid "<old|new>-file" -msgstr "" - -#. type: Plain text -#: en/git.txt:967 -msgid "are files GIT_EXTERNAL_DIFF can use to read the" +msgid "linkgit:git-merge-index[1]" msgstr "" #. type: Plain text -#: en/git.txt:968 -#, no-wrap -msgid "contents of <old|new>,\n" +#: en/cmds-plumbingmanipulators.txt:24 +msgid "Run a merge for files needing merging." msgstr "" #. type: Labeled list -#: en/git.txt:968 +#: en/cmds-plumbingmanipulators.txt:25 #, no-wrap -msgid "<old|new>-hex" +msgid "linkgit:git-mktag[1]" msgstr "" #. type: Plain text -#: en/git.txt:969 -msgid "are the 40-hexdigit SHA-1 hashes," +#: en/cmds-plumbingmanipulators.txt:27 +msgid "Creates a tag object." msgstr "" #. type: Labeled list -#: en/git.txt:969 +#: en/cmds-plumbingmanipulators.txt:28 #, no-wrap -msgid "<old|new>-mode" -msgstr "" - -#. type: Plain text -#: en/git.txt:970 -msgid "are the octal representation of the file modes." +msgid "linkgit:git-mktree[1]" msgstr "" #. type: Plain text -#: en/git.txt:976 -msgid "" -"The file parameters can point at the user's working file (e.g. `new-file` in " -"\"git-diff-files\"), `/dev/null` (e.g. `old-file` when a new file is added), " -"or a temporary file (e.g. `old-file` in the index). `GIT_EXTERNAL_DIFF` " -"should not worry about unlinking the temporary file --- it is removed when " -"`GIT_EXTERNAL_DIFF` exits." +#: en/cmds-plumbingmanipulators.txt:30 +msgid "Build a tree-object from ls-tree formatted text." msgstr "" -#. type: Plain text -#: en/git.txt:979 -msgid "" -"For a path that is unmerged, `GIT_EXTERNAL_DIFF` is called with 1 parameter, " -"<path>." +#. type: Labeled list +#: en/cmds-plumbingmanipulators.txt:31 +#, no-wrap +msgid "linkgit:git-multi-pack-index[1]" msgstr "" #. type: Plain text -#: en/git.txt:982 -msgid "" -"For each path `GIT_EXTERNAL_DIFF` is called, two environment variables, " -"`GIT_DIFF_PATH_COUNTER` and `GIT_DIFF_PATH_TOTAL` are set." +#: en/cmds-plumbingmanipulators.txt:33 +msgid "Write and verify multi-pack-indexes." msgstr "" #. type: Labeled list -#: en/git.txt:983 +#: en/cmds-plumbingmanipulators.txt:34 #, no-wrap -msgid "`GIT_DIFF_PATH_COUNTER`" +msgid "linkgit:git-pack-objects[1]" msgstr "" #. type: Plain text -#: en/git.txt:985 -msgid "A 1-based counter incremented by one for every path." +#: en/cmds-plumbingmanipulators.txt:36 +msgid "Create a packed archive of objects." msgstr "" #. type: Labeled list -#: en/git.txt:986 +#: en/cmds-plumbingmanipulators.txt:37 #, no-wrap -msgid "`GIT_DIFF_PATH_TOTAL`" -msgstr "" - -#. type: Plain text -#: en/git.txt:988 -msgid "The total number of paths." +msgid "linkgit:git-prune-packed[1]" msgstr "" #. type: Plain text -#: en/git.txt:990 en/git-ls-files.txt:130 -#, no-wrap -msgid "other" +#: en/cmds-plumbingmanipulators.txt:39 +msgid "Remove extra objects that are already in pack files." msgstr "" #. type: Labeled list -#: en/git.txt:991 +#: en/cmds-plumbingmanipulators.txt:40 #, no-wrap -msgid "`GIT_MERGE_VERBOSITY`" +msgid "linkgit:git-read-tree[1]" msgstr "" #. type: Plain text -#: en/git.txt:995 -msgid "" -"A number controlling the amount of output shown by the recursive merge " -"strategy. Overrides merge.verbosity. See linkgit:git-merge[1]" +#: en/cmds-plumbingmanipulators.txt:42 +msgid "Reads tree information into the index." msgstr "" #. type: Labeled list -#: en/git.txt:996 +#: en/cmds-plumbingmanipulators.txt:43 #, no-wrap -msgid "`GIT_PAGER`" +msgid "linkgit:git-symbolic-ref[1]" msgstr "" #. type: Plain text -#: en/git.txt:1001 -msgid "" -"This environment variable overrides `$PAGER`. If it is set to an empty " -"string or to the value \"cat\", Git will not launch a pager. See also the " -"`core.pager` option in linkgit:git-config[1]." +#: en/cmds-plumbingmanipulators.txt:45 +msgid "Read, modify and delete symbolic refs." msgstr "" #. type: Labeled list -#: en/git.txt:1002 +#: en/cmds-plumbingmanipulators.txt:46 #, no-wrap -msgid "`GIT_EDITOR`" +msgid "linkgit:git-unpack-objects[1]" msgstr "" #. type: Plain text -#: en/git.txt:1007 -msgid "" -"This environment variable overrides `$EDITOR` and `$VISUAL`. It is used by " -"several Git commands when, on interactive mode, an editor is to be " -"launched. See also linkgit:git-var[1] and the `core.editor` option in " -"linkgit:git-config[1]." +#: en/cmds-plumbingmanipulators.txt:48 +msgid "Unpack objects from a packed archive." msgstr "" #. type: Labeled list -#: en/git.txt:1008 +#: en/cmds-plumbingmanipulators.txt:49 #, no-wrap -msgid "`GIT_SSH`" +msgid "linkgit:git-update-index[1]" +msgstr "" + +#. type: Plain text +#: en/cmds-plumbingmanipulators.txt:51 +msgid "Register file contents in the working tree to the index." msgstr "" #. type: Labeled list -#: en/git.txt:1009 +#: en/cmds-plumbingmanipulators.txt:52 #, no-wrap -msgid "`GIT_SSH_COMMAND`" +msgid "linkgit:git-update-ref[1]" msgstr "" #. type: Plain text -#: en/git.txt:1018 -msgid "" -"If either of these environment variables is set then 'git fetch' and 'git " -"push' will use the specified command instead of 'ssh' when they need to " -"connect to a remote system. The command will be given exactly two or four " -"arguments: the 'username@host' (or just 'host') from the URL and the shell " -"command to execute on that remote system, optionally preceded by `-p` " -"(literally) and the 'port' from the URL when it specifies something other " -"than the default SSH port." +#: en/cmds-plumbingmanipulators.txt:54 +msgid "Update the object name stored in a ref safely." msgstr "" #. type: Plain text -#: en/git.txt:1024 -msgid "" -"`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted by " -"the shell, which allows additional arguments to be included. `$GIT_SSH` on " -"the other hand must be just the path to a program (which can be a wrapper " -"shell script, if additional arguments are needed)." +#: en/cmds-plumbingmanipulators.txt:55 en/git-commit-tree.txt:115 +#, no-wrap +msgid "linkgit:git-write-tree[1]" msgstr "" #. type: Plain text -#: en/git.txt:1028 -msgid "" -"Usually it is easier to configure any desired options through your personal " -"`.ssh/config` file. Please consult your ssh documentation for further " -"details." +#: en/cmds-plumbingmanipulators.txt:57 +msgid "Create a tree object from the current index." msgstr "" #. type: Labeled list -#: en/git.txt:1029 +#: en/cmds-purehelpers.txt:1 #, no-wrap -msgid "`GIT_SSH_VARIANT`" +msgid "linkgit:git-check-attr[1]" msgstr "" #. type: Plain text -#: en/git.txt:1034 -msgid "" -"If this environment variable is set, it overrides Git's autodetection " -"whether `GIT_SSH`/`GIT_SSH_COMMAND`/`core.sshCommand` refer to OpenSSH, " -"plink or tortoiseplink. This variable overrides the config setting " -"`ssh.variant` that serves the same purpose." +#: en/cmds-purehelpers.txt:3 +msgid "Display gitattributes information." msgstr "" #. type: Labeled list -#: en/git.txt:1035 +#: en/cmds-purehelpers.txt:4 #, no-wrap -msgid "`GIT_ASKPASS`" +msgid "linkgit:git-check-ignore[1]" msgstr "" #. type: Plain text -#: en/git.txt:1041 -msgid "" -"If this environment variable is set, then Git commands which need to acquire " -"passwords or passphrases (e.g. for HTTP or IMAP authentication) will call " -"this program with a suitable prompt as command-line argument and read the " -"password from its STDOUT. See also the `core.askPass` option in " -"linkgit:git-config[1]." +#: en/cmds-purehelpers.txt:6 +msgid "Debug gitignore / exclude files." msgstr "" #. type: Labeled list -#: en/git.txt:1042 +#: en/cmds-purehelpers.txt:7 #, no-wrap -msgid "`GIT_TERMINAL_PROMPT`" +msgid "linkgit:git-check-mailmap[1]" msgstr "" #. type: Plain text -#: en/git.txt:1045 -msgid "" -"If this environment variable is set to `0`, git will not prompt on the " -"terminal (e.g., when asking for HTTP authentication)." +#: en/cmds-purehelpers.txt:9 +msgid "Show canonical names and email addresses of contacts." msgstr "" #. type: Labeled list -#: en/git.txt:1046 +#: en/cmds-purehelpers.txt:10 #, no-wrap -msgid "`GIT_CONFIG_NOSYSTEM`" +msgid "linkgit:git-check-ref-format[1]" msgstr "" #. type: Plain text -#: en/git.txt:1053 -msgid "" -"Whether to skip reading settings from the system-wide " -"`$(prefix)/etc/gitconfig` file. This environment variable can be used along " -"with `$HOME` and `$XDG_CONFIG_HOME` to create a predictable environment for " -"a picky script, or you can set it temporarily to avoid using a buggy " -"`/etc/gitconfig` file while waiting for someone with sufficient permissions " -"to fix it." +#: en/cmds-purehelpers.txt:12 +msgid "Ensures that a reference name is well formed." msgstr "" #. type: Labeled list -#: en/git.txt:1054 +#: en/cmds-purehelpers.txt:13 #, no-wrap -msgid "`GIT_FLUSH`" +msgid "linkgit:git-column[1]" msgstr "" #. type: Plain text -#: en/git.txt:1064 -#, no-wrap -msgid "" -"If this environment variable is set to \"1\", then commands such\n" -"as 'git blame' (in incremental mode), 'git rev-list', 'git log',\n" -"'git check-attr' and 'git check-ignore' will\n" -"force a flush of the output stream after each record have been\n" -"flushed. If this\n" -"variable is set to \"0\", the output of these commands will be done\n" -"using completely buffered I/O. If this environment variable is\n" -"not set, Git will choose buffered or record-oriented flushing\n" -"based on whether stdout appears to be redirected to a file or not.\n" +#: en/cmds-purehelpers.txt:15 +msgid "Display data in columns." msgstr "" #. type: Labeled list -#: en/git.txt:1065 +#: en/cmds-purehelpers.txt:16 #, no-wrap -msgid "`GIT_TRACE`" +msgid "linkgit:git-credential[1]" msgstr "" #. type: Plain text -#: en/git.txt:1068 -msgid "" -"Enables general trace messages, e.g. alias expansion, built-in command " -"execution and external command execution." +#: en/cmds-purehelpers.txt:18 +msgid "Retrieve and store user credentials." msgstr "" -#. type: Plain text -#: en/git.txt:1072 -msgid "" -"If this variable is set to \"1\", \"2\" or \"true\" (comparison is case " -"insensitive), trace messages will be printed to stderr." +#. type: Labeled list +#: en/cmds-purehelpers.txt:19 +#, no-wrap +msgid "linkgit:git-credential-cache[1]" msgstr "" #. type: Plain text -#: en/git.txt:1077 -msgid "" -"If the variable is set to an integer value greater than 2 and lower than 10 " -"(strictly) then Git will interpret this value as an open file descriptor and " -"will try to write the trace messages into this file descriptor." +#: en/cmds-purehelpers.txt:21 +msgid "Helper to temporarily store passwords in memory." msgstr "" -#. type: Plain text -#: en/git.txt:1082 -msgid "" -"Alternatively, if the variable is set to an absolute path (starting with a " -"'/' character), Git will interpret this as a file path and will try to write " -"the trace messages into it." +#. type: Labeled list +#: en/cmds-purehelpers.txt:22 +#, no-wrap +msgid "linkgit:git-credential-store[1]" msgstr "" #. type: Plain text -#: en/git.txt:1085 -msgid "" -"Unsetting the variable, or setting it to empty, \"0\" or \"false\" (case " -"insensitive) disables trace messages." +#: en/cmds-purehelpers.txt:24 +msgid "Helper to store credentials on disk." msgstr "" #. type: Labeled list -#: en/git.txt:1086 +#: en/cmds-purehelpers.txt:25 #, no-wrap -msgid "`GIT_TRACE_PACK_ACCESS`" +msgid "linkgit:git-fmt-merge-msg[1]" msgstr "" #. type: Plain text -#: en/git.txt:1092 -msgid "" -"Enables trace messages for all accesses to any packs. For each access, the " -"pack file name and an offset in the pack is recorded. This may be helpful " -"for troubleshooting some pack-related performance problems. See `GIT_TRACE` " -"for available trace output options." +#: en/cmds-purehelpers.txt:27 +msgid "Produce a merge commit message." msgstr "" #. type: Labeled list -#: en/git.txt:1093 +#: en/cmds-purehelpers.txt:28 #, no-wrap -msgid "`GIT_TRACE_PACKET`" +msgid "linkgit:git-interpret-trailers[1]" msgstr "" #. type: Plain text -#: en/git.txt:1099 -msgid "" -"Enables trace messages for all packets coming in or out of a given " -"program. This can help with debugging object negotiation or other protocol " -"issues. Tracing is turned off at a packet starting with \"PACK\" (but see " -"`GIT_TRACE_PACKFILE` below). See `GIT_TRACE` for available trace output " -"options." +#: en/cmds-purehelpers.txt:30 +msgid "add or parse structured information in commit messages." msgstr "" #. type: Labeled list -#: en/git.txt:1100 +#: en/cmds-purehelpers.txt:31 #, no-wrap -msgid "`GIT_TRACE_PACKFILE`" -msgstr "" - -#. type: Plain text -#: en/git.txt:1107 -msgid "" -"Enables tracing of packfiles sent or received by a given program. Unlike " -"other trace output, this trace is verbatim: no headers, and no quoting of " -"binary data. You almost certainly want to direct into a file (e.g., " -"`GIT_TRACE_PACKFILE=/tmp/my.pack`) rather than displaying it on the terminal " -"or mixing it with other trace output." +msgid "linkgit:git-mailinfo[1]" msgstr "" #. type: Plain text -#: en/git.txt:1110 -msgid "" -"Note that this is currently only implemented for the client side of clones " -"and fetches." +#: en/cmds-purehelpers.txt:33 +msgid "Extracts patch and authorship from a single e-mail message." msgstr "" #. type: Labeled list -#: en/git.txt:1111 +#: en/cmds-purehelpers.txt:34 #, no-wrap -msgid "`GIT_TRACE_PERFORMANCE`" +msgid "linkgit:git-mailsplit[1]" msgstr "" #. type: Plain text -#: en/git.txt:1115 -msgid "" -"Enables performance related trace messages, e.g. total execution time of " -"each Git command. See `GIT_TRACE` for available trace output options." +#: en/cmds-purehelpers.txt:36 +msgid "Simple UNIX mbox splitter program." msgstr "" #. type: Labeled list -#: en/git.txt:1116 +#: en/cmds-purehelpers.txt:37 #, no-wrap -msgid "`GIT_TRACE_SETUP`" +msgid "linkgit:git-merge-one-file[1]" msgstr "" #. type: Plain text -#: en/git.txt:1120 -msgid "" -"Enables trace messages printing the .git, working tree and current working " -"directory after Git has completed its setup phase. See `GIT_TRACE` for " -"available trace output options." +#: en/cmds-purehelpers.txt:39 +msgid "The standard helper program to use with git-merge-index." msgstr "" -#. type: Labeled list -#: en/git.txt:1121 +#. type: Plain text +#: en/cmds-purehelpers.txt:40 en/git-cherry.txt:142 #, no-wrap -msgid "`GIT_TRACE_SHALLOW`" +msgid "linkgit:git-patch-id[1]" msgstr "" #. type: Plain text -#: en/git.txt:1125 -msgid "" -"Enables trace messages that can help debugging fetching / cloning of shallow " -"repositories. See `GIT_TRACE` for available trace output options." +#: en/cmds-purehelpers.txt:42 +msgid "Compute unique ID for a patch." msgstr "" #. type: Labeled list -#: en/git.txt:1126 +#: en/cmds-purehelpers.txt:43 #, no-wrap -msgid "`GIT_TRACE_CURL`" +msgid "linkgit:git-sh-i18n[1]" msgstr "" #. type: Plain text -#: en/git.txt:1133 -msgid "" -"Enables a curl full trace dump of all incoming and outgoing data, including " -"descriptive information, of the git transport protocol. This is similar to " -"doing curl `--trace-ascii` on the command line. This option overrides " -"setting the `GIT_CURL_VERBOSE` environment variable. See `GIT_TRACE` for " -"available trace output options." +#: en/cmds-purehelpers.txt:45 +msgid "Git's i18n setup code for shell scripts." msgstr "" #. type: Labeled list -#: en/git.txt:1134 +#: en/cmds-purehelpers.txt:46 #, no-wrap -msgid "`GIT_LITERAL_PATHSPECS`" +msgid "linkgit:git-sh-setup[1]" msgstr "" #. type: Plain text -#: en/git.txt:1142 -msgid "" -"Setting this variable to `1` will cause Git to treat all pathspecs " -"literally, rather than as glob patterns. For example, running " -"`GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search for commits that " -"touch the path `*.c`, not any paths that the glob `*.c` matches. You might " -"want this if you are feeding literal paths to Git (e.g., paths previously " -"given to you by `git ls-tree`, `--raw` diff output, etc)." +#: en/cmds-purehelpers.txt:48 +msgid "Common Git shell script setup code." msgstr "" #. type: Labeled list -#: en/git.txt:1143 +#: en/cmds-purehelpers.txt:49 #, no-wrap -msgid "`GIT_GLOB_PATHSPECS`" +msgid "linkgit:git-stripspace[1]" msgstr "" #. type: Plain text -#: en/git.txt:1146 -msgid "" -"Setting this variable to `1` will cause Git to treat all pathspecs as glob " -"patterns (aka \"glob\" magic)." +#: en/cmds-purehelpers.txt:51 +msgid "Remove unnecessary whitespace." msgstr "" #. type: Labeled list -#: en/git.txt:1147 +#: en/cmds-synchelpers.txt:1 #, no-wrap -msgid "`GIT_NOGLOB_PATHSPECS`" +msgid "linkgit:git-http-fetch[1]" msgstr "" #. type: Plain text -#: en/git.txt:1150 -msgid "" -"Setting this variable to `1` will cause Git to treat all pathspecs as " -"literal (aka \"literal\" magic)." +#: en/cmds-synchelpers.txt:3 +msgid "Download from a remote Git repository via HTTP." msgstr "" #. type: Labeled list -#: en/git.txt:1151 +#: en/cmds-synchelpers.txt:4 #, no-wrap -msgid "`GIT_ICASE_PATHSPECS`" +msgid "linkgit:git-http-push[1]" msgstr "" #. type: Plain text -#: en/git.txt:1154 -msgid "" -"Setting this variable to `1` will cause Git to treat all pathspecs as " -"case-insensitive." +#: en/cmds-synchelpers.txt:6 +msgid "Push objects over HTTP/DAV to another repository." msgstr "" #. type: Labeled list -#: en/git.txt:1155 +#: en/cmds-synchelpers.txt:7 #, no-wrap -msgid "`GIT_REFLOG_ACTION`" +msgid "linkgit:git-parse-remote[1]" msgstr "" #. type: Plain text -#: en/git.txt:1164 -msgid "" -"When a ref is updated, reflog entries are created to keep track of the " -"reason why the ref was updated (which is typically the name of the " -"high-level command that updated the ref), in addition to the old and new " -"values of the ref. A scripted Porcelain command can use set_reflog_action " -"helper function in `git-sh-setup` to set its name to this variable when it " -"is invoked as the top level command by the end user, to be recorded in the " -"body of the reflog." +#: en/cmds-synchelpers.txt:9 +msgid "Routines to help parsing remote repository access parameters." msgstr "" #. type: Labeled list -#: en/git.txt:1165 +#: en/cmds-synchelpers.txt:10 #, no-wrap -msgid "`GIT_REF_PARANOIA`" +msgid "linkgit:git-receive-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:1175 -msgid "" -"If set to `1`, include broken or badly named refs when iterating over lists " -"of refs. In a normal, non-corrupted repository, this does nothing. However, " -"enabling it may help git to detect and abort some operations in the presence " -"of broken refs. Git sets this variable automatically when performing " -"destructive operations like linkgit:git-prune[1]. You should not need to set " -"it yourself unless you want to be paranoid about making sure an operation " -"has touched every ref (e.g., because you are cloning a repository to make a " -"backup)." +#: en/cmds-synchelpers.txt:12 +msgid "Receive what is pushed into the repository." msgstr "" #. type: Labeled list -#: en/git.txt:1176 +#: en/cmds-synchelpers.txt:13 #, no-wrap -msgid "`GIT_ALLOW_PROTOCOL`" +msgid "linkgit:git-shell[1]" msgstr "" #. type: Plain text -#: en/git.txt:1184 -msgid "" -"If set to a colon-separated list of protocols, behave as if `protocol.allow` " -"is set to `never`, and each of the listed protocols has " -"`protocol.<name>.allow` set to `always` (overriding any existing " -"configuration). In other words, any protocol not mentioned will be " -"disallowed (i.e., this is a whitelist, not a blacklist). See the description " -"of `protocol.allow` in linkgit:git-config[1] for more details." +#: en/cmds-synchelpers.txt:15 +msgid "Restricted login shell for Git-only SSH access." msgstr "" #. type: Labeled list -#: en/git.txt:1185 +#: en/cmds-synchelpers.txt:16 #, no-wrap -msgid "`GIT_PROTOCOL_FROM_USER`" +msgid "linkgit:git-upload-archive[1]" msgstr "" #. type: Plain text -#: en/git.txt:1191 -msgid "" -"Set to 0 to prevent protocols used by fetch/push/clone which are configured " -"to the `user` state. This is useful to restrict recursive submodule " -"initialization from an untrusted repository or for programs which feed " -"potentially-untrusted URLS to git commands. See linkgit:git-config[1] for " -"more details." +#: en/cmds-synchelpers.txt:18 +msgid "Send archive back to git-archive." msgstr "" -#. type: Title - -#: en/git.txt:1193 +#. type: Labeled list +#: en/cmds-synchelpers.txt:19 #, no-wrap -msgid "Discussion[[Discussion]]" +msgid "linkgit:git-upload-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:1198 -msgid "" -"More detail on the following is available from the " -"link:user-manual.html#git-concepts[Git concepts chapter of the user-manual] " -"and linkgit:gitcore-tutorial[7]." +#: en/cmds-synchelpers.txt:21 +msgid "Send objects packed back to git-fetch-pack." msgstr "" -#. type: Plain text -#: en/git.txt:1205 -msgid "" -"A Git project normally consists of a working directory with a \".git\" " -"subdirectory at the top level. The .git directory contains, among other " -"things, a compressed object database representing the complete history of " -"the project, an \"index\" file which links that history to the current " -"contents of the working tree, and named pointers into that history such as " -"tags and branch heads." +#. type: Labeled list +#: en/cmds-synchingrepositories.txt:1 +#, no-wrap +msgid "linkgit:git-daemon[1]" msgstr "" #. type: Plain text -#: en/git.txt:1210 -msgid "" -"The object database contains objects of three main types: blobs, which hold " -"file data; trees, which point to blobs and other trees to build up directory " -"hierarchies; and commits, which each reference a single tree and some number " -"of parent commits." +#: en/cmds-synchingrepositories.txt:3 +msgid "A really simple server for Git repositories." msgstr "" -#. type: Plain text -#: en/git.txt:1215 -msgid "" -"The commit, equivalent to what other systems call a \"changeset\" or " -"\"version\", represents a step in the project's history, and each parent " -"represents an immediately preceding step. Commits with more than one parent " -"represent merges of independent lines of development." +#. type: Labeled list +#: en/cmds-synchingrepositories.txt:4 +#, no-wrap +msgid "linkgit:git-fetch-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:1221 -msgid "" -"All objects are named by the SHA-1 hash of their contents, normally written " -"as a string of 40 hex digits. Such names are globally unique. The entire " -"history leading up to a commit can be vouched for by signing just that " -"commit. A fourth object type, the tag, is provided for this purpose." +#: en/cmds-synchingrepositories.txt:6 +msgid "Receive missing objects from another repository." msgstr "" -#. type: Plain text -#: en/git.txt:1224 -msgid "" -"When first created, objects are stored in individual files, but for " -"efficiency may later be compressed together into \"pack files\"." +#. type: Labeled list +#: en/cmds-synchingrepositories.txt:7 +#, no-wrap +msgid "linkgit:git-http-backend[1]" msgstr "" #. type: Plain text -#: en/git.txt:1231 -msgid "" -"Named pointers called refs mark interesting points in history. A ref may " -"contain the SHA-1 name of an object or the name of another ref. Refs with " -"names beginning `ref/head/` contain the SHA-1 name of the most recent commit " -"(or \"head\") of a branch under development. SHA-1 names of tags of " -"interest are stored under `ref/tags/`. A special ref named `HEAD` contains " -"the name of the currently checked-out branch." +#: en/cmds-synchingrepositories.txt:9 +msgid "Server side implementation of Git over HTTP." msgstr "" -#. type: Plain text -#: en/git.txt:1240 -msgid "" -"The index file is initialized with a list of all paths and, for each path, a " -"blob object and a set of attributes. The blob object represents the " -"contents of the file as of the head of the current branch. The attributes " -"(last modified time, size, etc.) are taken from the corresponding file in " -"the working tree. Subsequent changes to the working tree can be found by " -"comparing these attributes. The index may be updated with new content, and " -"new commits may be created from the content stored in the index." +#. type: Labeled list +#: en/cmds-synchingrepositories.txt:10 +#, no-wrap +msgid "linkgit:git-send-pack[1]" msgstr "" #. type: Plain text -#: en/git.txt:1244 -msgid "" -"The index is also capable of storing multiple entries (called \"stages\") " -"for a given pathname. These stages are used to hold the various unmerged " -"version of a file when a merge is in progress." +#: en/cmds-synchingrepositories.txt:12 +msgid "Push objects over Git protocol to another repository." msgstr "" -#. type: Title - -#: en/git.txt:1246 +#. type: Labeled list +#: en/cmds-synchingrepositories.txt:13 #, no-wrap -msgid "FURTHER DOCUMENTATION" -msgstr "" - -#. type: Plain text -#: en/git.txt:1251 -msgid "" -"See the references in the \"description\" section to get started using Git. " -"The following is probably more detail than necessary for a first-time user." +msgid "linkgit:git-update-server-info[1]" msgstr "" #. type: Plain text -#: en/git.txt:1255 -msgid "" -"The link:user-manual.html#git-concepts[Git concepts chapter of the " -"user-manual] and linkgit:gitcore-tutorial[7] both provide introductions to " -"the underlying Git architecture." +#: en/cmds-synchingrepositories.txt:15 +msgid "Update auxiliary info file to help dumb servers." msgstr "" -#. type: Plain text -#: en/git.txt:1257 -msgid "See linkgit:gitworkflows[7] for an overview of recommended workflows." +#. type: Title - +#: en/config.txt:2 en/git-worktree.txt:237 +#, no-wrap +msgid "CONFIGURATION FILE" msgstr "" #. type: Plain text -#: en/git.txt:1260 +#: en/config.txt:11 msgid "" -"See also the link:howto-index.html[howto] documents for some useful " -"examples." +"The Git configuration file contains a number of variables that affect the " +"Git commands' behavior. The files `.git/config` and optionally `config." +"worktree` (see `extensions.worktreeConfig` below) in each repository are " +"used to store the configuration for that repository, and `$HOME/.gitconfig` " +"is used to store a per-user configuration as fallback values for the `.git/" +"config` file. The file `/etc/gitconfig` can be used to store a system-wide " +"default configuration." msgstr "" #. type: Plain text -#: en/git.txt:1263 +#: en/config.txt:20 msgid "" -"The internals are documented in the link:technical/api-index.html[Git API " -"documentation]." -msgstr "" - -#. type: Plain text -#: en/git.txt:1266 -msgid "Users migrating from CVS may also want to read linkgit:gitcvs-migration[7]." +"The configuration variables are used by both the Git plumbing and the " +"porcelains. The variables are divided into sections, wherein the fully " +"qualified variable name of the variable itself is the last dot-separated " +"segment and the section name is everything before the last dot. The variable " +"names are case-insensitive, allow only alphanumeric characters and `-`, and " +"must start with an alphabetic character. Some variables may appear multiple " +"times; we say then that the variable is multivalued." msgstr "" -#. type: Title - -#: en/git.txt:1269 +#. type: Title ~ +#: en/config.txt:22 #, no-wrap -msgid "Authors" +msgid "Syntax" msgstr "" #. type: Plain text -#: en/git.txt:1274 +#: en/config.txt:27 msgid "" -"Git was started by Linus Torvalds, and is currently maintained by Junio C " -"Hamano. Numerous contributions have come from the Git mailing list " -"<git@vger.kernel.org>. http://www.openhub.net/p/git/contributors/summary " -"gives you a more complete list of contributors." +"The syntax is fairly flexible and permissive; whitespaces are mostly " +"ignored. The '#' and ';' characters begin comments to the end of line, " +"blank lines are ignored." msgstr "" #. type: Plain text -#: en/git.txt:1278 +#: en/config.txt:34 msgid "" -"If you have a clone of git.git itself, the output of linkgit:git-shortlog[1] " -"and linkgit:git-blame[1] can show you the authors for specific parts of the " -"project." -msgstr "" - -#. type: Title - -#: en/git.txt:1280 -#, no-wrap -msgid "Reporting Bugs" +"The file consists of sections and variables. A section begins with the name " +"of the section in square brackets and continues until the next section " +"begins. Section names are case-insensitive. Only alphanumeric characters, " +"`-` and `.` are allowed in section names. Each variable must belong to some " +"section, which means that there must be a section header before the first " +"setting of a variable." msgstr "" #. type: Plain text -#: en/git.txt:1285 +#: en/config.txt:38 msgid "" -"Report bugs to the Git mailing list <git@vger.kernel.org> where the " -"development and maintenance is primarily done. You do not have to be " -"subscribed to the list to send a message there." +"Sections can be further divided into subsections. To begin a subsection put " +"its name in double quotes, separated by space from the section name, in the " +"section header, like in the example below:" msgstr "" -#. type: Title - -#: en/git.txt:1287 en/git-add.txt:406 en/git-am.txt:228 en/git-annotate.txt:29 en/git-apply.txt:270 en/git-archive.txt:192 en/git-bisect.txt:494 en/git-blame.txt:232 en/git-branch.txt:313 en/git-check-attr.txt:115 en/git-check-ignore.txt:113 en/git-cherry-pick.txt:228 en/git-cherry.txt:140 en/git-clean.txt:136 en/git-commit.txt:480 en/git-commit-tree.txt:113 en/git-difftool.txt:135 en/git-diff.txt:179 en/git-fast-export.txt:213 en/git-fast-import.txt:1470 en/git-fetch-pack.txt:127 en/git-fetch.txt:207 en/git-fmt-merge-msg.txt:73 en/git-for-each-ref.txt:339 en/git-format-patch.txt:636 en/git-gc.txt:178 en/git-gui.txt:103 en/git-imap-send.txt:178 en/git-instaweb.txt:88 en/git-interpret-trailers.txt:334 en/git-ls-files.txt:237 en/git-merge.txt:353 en/git-pack-objects.txt:235 en/git-pack-redundant.txt:43 en/git-prune-packed.txt:41 en/git-prune.txt:78 en/git-pull.txt:252 en/git-read-tree.txt:425 en/git-receive-pack.txt:218 en/git-remote-ext.txt:120 en/git-remote-fd.txt:54 en/git-remote-testgit.txt:25 en/git-remote.txt:245 en/git-repack.txt:160 en/git-replace.txt:144 en/git-revert.txt:124 en/git-rm.txt:183 en/git-send-email.txt:477 en/git-shell.txt:83 en/git-show-ref.txt:178 en/git-stash.txt:287 en/git-status.txt:354 en/git-svn.txt:1131 en/git-tag.txt:345 en/git-update-index.txt:479 en/git-upload-pack.txt:48 en/git-var.txt:63 +#. type: delimited block - +#: en/config.txt:41 #, no-wrap -msgid "SEE ALSO" +msgid "\t[section \"subsection\"]\n" msgstr "" #. type: Plain text -#: en/git.txt:1293 +#: en/config.txt:52 msgid "" -"linkgit:gittutorial[7], linkgit:gittutorial-2[7], linkgit:giteveryday[7], " -"linkgit:gitcvs-migration[7], linkgit:gitglossary[7], " -"linkgit:gitcore-tutorial[7], linkgit:gitcli[7], link:user-manual.html[The " -"Git User's Manual], linkgit:gitworkflows[7]" -msgstr "" - -#. type: Title - -#: en/git.txt:1295 en/git-add.txt:415 en/git-am.txt:232 en/git-annotate.txt:33 en/git-apply.txt:274 en/git-archimport.txt:111 en/git-archive.txt:196 en/git-bisect.txt:499 en/git-blame.txt:236 en/git-branch.txt:321 en/git-bundle.txt:204 en/git-cat-file.txt:301 en/git-check-attr.txt:119 en/git-check-ignore.txt:119 en/git-check-mailmap.txt:46 en/git-checkout-index.txt:176 en/git-checkout.txt:521 en/git-check-ref-format.txt:126 en/git-cherry-pick.txt:232 en/git-cherry.txt:144 en/git-citool.txt:24 en/git-clean.txt:140 en/git-clone.txt:296 en/git-column.txt:47 en/git-commit.txt:488 en/git-commit-tree.txt:117 en/git-config.txt:429 en/git-count-objects.txt:53 en/git-credential-cache--daemon.txt:29 en/git-credential-cache.txt:76 en/git-credential-store.txt:105 en/git-cvsexportcommit.txt:117 en/git-cvsimport.txt:227 en/git-cvsserver.txt:432 en/git-daemon.txt:317 en/git-describe.txt:181 en/git-diff-files.txt:51 en/git-diff-index.txt:121 en/git-difftool.txt:146 en/git-diff-tree.txt:166 en/git-diff.txt:188 en/git-fast-export.txt:217 en/git-fast-import.txt:1474 en/git-fetch-pack.txt:131 en/git-fetch.txt:211 en/git-filter-branch.txt:462 en/git-fmt-merge-msg.txt:77 en/git-for-each-ref.txt:343 en/git-format-patch.txt:640 en/git-fsck-objects.txt:21 en/git-fsck.txt:158 en/git-gc.txt:185 en/git-get-tar-commit-id.txt:29 en/git-grep.txt:313 en/git-gui.txt:126 en/git-hash-object.txt:64 en/git-help.txt:190 en/git-http-backend.txt:276 en/git-http-fetch.txt:51 en/git-http-push.txt:96 en/git-imap-send.txt:182 en/git-index-pack.txt:104 en/git-init-db.txt:22 en/git-init.txt:157 en/git-instaweb.txt:92 en/git-interpret-trailers.txt:338 en/git-log.txt:223 en/git-ls-files.txt:241 en/git-ls-remote.txt:94 en/git-ls-tree.txt:103 en/git-mailinfo.txt:101 en/git-mailsplit.txt:56 en/git-merge-base.txt:182 en/git-merge-file.txt:94 en/git-merge-index.txt:78 en/git-merge-one-file.txt:20 en/git-mergetool--lib.txt:46 en/git-mergetool.txt:100 en/git-merge-tree.txt:28 en/git-merge.txt:362 en/git-mktag.txt:38 en/git-mktree.txt:39 en/git-mv.txt:68 en/git-name-rev.txt:88 en/git-notes.txt:404 en/git-pack-objects.txt:241 en/git-pack-redundant.txt:49 en/git-pack-refs.txt:72 en/git-parse-remote.txt:22 en/git-patch-id.txt:63 en/git-prune-packed.txt:46 en/git-prune.txt:85 en/git-pull.txt:256 en/git-push.txt:566 en/git-quiltimport.txt:60 en/git-read-tree.txt:430 en/git-rebase.txt:801 en/git-receive-pack.txt:222 en/git-reflog.txt:132 en/git-remote-ext.txt:124 en/git-remote-fd.txt:58 en/git-remote-testgit.txt:29 en/git-remote.txt:251 en/git-repack.txt:165 en/git-replace.txt:155 en/git-request-pull.txt:78 en/git-rerere.txt:215 en/git-reset.txt:453 en/git-revert.txt:128 en/git-rev-list.txt:120 en/git-rev-parse.txt:452 en/git-rm.txt:187 en/git-send-email.txt:481 en/git-send-pack.txt:149 en/git-shell.txt:89 en/git-sh-i18n--envsubst.txt:35 en/git-sh-i18n.txt:42 en/git-shortlog.txt:89 en/git-show-branch.txt:203 en/git-show-index.txt:26 en/git-show-ref.txt:185 en/git-show.txt:86 en/git-sh-setup.txt:94 en/git-stage.txt:22 en/git-stash.txt:294 en/git-status.txt:358 en/git-stripspace.txt:93 en/git-submodule.txt:437 en/git-svn.txt:1135 en/git-symbolic-ref.txt:68 en/git-tag.txt:350 en/git-unpack-file.txt:27 en/git-unpack-objects.txt:51 en/git-update-index.txt:485 en/git-update-ref.txt:151 en/git-update-server-info.txt:43 en/git-upload-archive.txt:61 en/git-upload-pack.txt:52 en/git-var.txt:69 en/git-verify-commit.txt:31 en/git-verify-pack.txt:52 en/git-verify-tag.txt:31 en/git-web--browse.txt:123 en/git-whatchanged.txt:42 en/git-worktree.txt:258 en/git-write-tree.txt:41 -#, no-wrap -msgid "GIT" +"Subsection names are case sensitive and can contain any characters except " +"newline and the null byte. Doublequote `\"` and backslash can be included by " +"escaping them as `\\\"` and `\\\\`, respectively. Backslashes preceding " +"other characters are dropped when reading; for example, `\\t` is read as `t` " +"and `\\0` is read as `0` Section headers cannot span multiple lines. " +"Variables may belong directly to a section or to a given subsection. You can " +"have `[section]` if you have `[section \"subsection\"]`, but you don't need " +"to." msgstr "" #. type: Plain text -#: en/git.txt:1296 en/git-add.txt:416 en/git-am.txt:233 en/git-annotate.txt:34 en/git-apply.txt:275 en/git-archimport.txt:112 en/git-archive.txt:197 en/git-bisect.txt:500 en/git-blame.txt:237 en/git-branch.txt:322 en/git-bundle.txt:205 en/git-cat-file.txt:302 en/git-check-attr.txt:120 en/git-check-ignore.txt:120 en/git-check-mailmap.txt:47 en/git-checkout-index.txt:177 en/git-checkout.txt:522 en/git-check-ref-format.txt:127 en/git-cherry-pick.txt:233 en/git-cherry.txt:145 en/git-citool.txt:25 en/git-clean.txt:141 en/git-clone.txt:297 en/git-column.txt:48 en/git-commit.txt:489 en/git-commit-tree.txt:118 en/git-config.txt:430 en/git-count-objects.txt:54 en/git-credential-cache--daemon.txt:30 en/git-credential-cache.txt:77 en/git-credential-store.txt:106 en/git-cvsexportcommit.txt:118 en/git-cvsimport.txt:228 en/git-cvsserver.txt:433 en/git-daemon.txt:318 en/git-describe.txt:182 en/git-diff-files.txt:52 en/git-diff-index.txt:122 en/git-difftool.txt:147 en/git-diff-tree.txt:167 en/git-diff.txt:189 en/git-fast-export.txt:218 en/git-fast-import.txt:1475 en/git-fetch-pack.txt:132 en/git-fetch.txt:212 en/git-filter-branch.txt:463 en/git-fmt-merge-msg.txt:78 en/git-for-each-ref.txt:344 en/git-format-patch.txt:641 en/git-fsck-objects.txt:22 en/git-fsck.txt:159 en/git-gc.txt:186 en/git-get-tar-commit-id.txt:30 en/git-grep.txt:314 en/git-gui.txt:127 en/git-hash-object.txt:65 en/git-help.txt:191 en/git-http-backend.txt:277 en/git-http-fetch.txt:52 en/git-http-push.txt:97 en/git-imap-send.txt:183 en/git-index-pack.txt:105 en/git-init-db.txt:23 en/git-init.txt:158 en/git-instaweb.txt:93 en/git-interpret-trailers.txt:339 en/git-log.txt:224 en/git-ls-files.txt:242 en/git-ls-remote.txt:95 en/git-ls-tree.txt:104 en/git-mailinfo.txt:102 en/git-mailsplit.txt:57 en/git-merge-base.txt:183 en/git-merge-file.txt:95 en/git-merge-index.txt:79 en/git-merge-one-file.txt:21 en/git-mergetool--lib.txt:47 en/git-mergetool.txt:101 en/git-merge-tree.txt:29 en/git-merge.txt:363 en/git-mktag.txt:39 en/git-mktree.txt:40 en/git-mv.txt:69 en/git-name-rev.txt:89 en/git-notes.txt:405 en/git-pack-objects.txt:242 en/git-pack-redundant.txt:50 en/git-pack-refs.txt:73 en/git-parse-remote.txt:23 en/git-patch-id.txt:64 en/git-prune-packed.txt:47 en/git-prune.txt:86 en/git-pull.txt:257 en/git-push.txt:567 en/git-quiltimport.txt:61 en/git-read-tree.txt:431 en/git-rebase.txt:802 en/git-receive-pack.txt:223 en/git-reflog.txt:133 en/git-remote-ext.txt:125 en/git-remote-fd.txt:59 en/git-remote-testgit.txt:30 en/git-remote.txt:252 en/git-repack.txt:166 en/git-replace.txt:156 en/git-request-pull.txt:79 en/git-rerere.txt:216 en/git-reset.txt:454 en/git-revert.txt:129 en/git-rev-list.txt:121 en/git-rev-parse.txt:453 en/git-rm.txt:188 en/git-send-email.txt:482 en/git-send-pack.txt:150 en/git-shell.txt:90 en/git-sh-i18n--envsubst.txt:36 en/git-sh-i18n.txt:43 en/git-shortlog.txt:90 en/git-show-branch.txt:204 en/git-show-index.txt:27 en/git-show-ref.txt:186 en/git-show.txt:87 en/git-sh-setup.txt:95 en/git-stage.txt:23 en/git-stash.txt:295 en/git-status.txt:359 en/git-stripspace.txt:94 en/git-submodule.txt:438 en/git-svn.txt:1136 en/git-symbolic-ref.txt:69 en/git-tag.txt:351 en/git-unpack-file.txt:28 en/git-unpack-objects.txt:52 en/git-update-index.txt:486 en/git-update-ref.txt:152 en/git-update-server-info.txt:44 en/git-upload-archive.txt:62 en/git-upload-pack.txt:53 en/git-var.txt:70 en/git-verify-commit.txt:32 en/git-verify-pack.txt:53 en/git-verify-tag.txt:32 en/git-web--browse.txt:124 en/git-whatchanged.txt:43 en/git-worktree.txt:259 en/git-write-tree.txt:42 -msgid "Part of the linkgit:git[1] suite" -msgstr "" - -#. type: Title = -#: en/git-add.txt:2 -#, no-wrap -msgid "git-add(1)" +#: en/config.txt:57 +msgid "" +"There is also a deprecated `[section.subsection]` syntax. With this syntax, " +"the subsection name is converted to lower-case and is also compared case " +"sensitively. These subsection names follow the same restrictions as section " +"names." msgstr "" #. type: Plain text -#: en/git-add.txt:7 -msgid "git-add - Add file contents to the index" +#: en/config.txt:64 +msgid "" +"All the other lines (and the remainder of the line after the section header) " +"are recognized as setting variables, in the form 'name = value' (or just " +"'name', which is a short-hand to say that the variable is the boolean \"true" +"\"). The variable names are case-insensitive, allow only alphanumeric " +"characters and `-`, and must start with an alphabetic character." msgstr "" #. type: Plain text -#: en/git-add.txt:15 -#, no-wrap +#: en/config.txt:72 msgid "" -"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | " -"-i] [--patch | -p]\n" -"\t [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n" -"\t [--intent-to-add | -N] [--refresh] [--ignore-errors] " -"[--ignore-missing]\n" -"\t [--chmod=(+|-)x] [--] [<pathspec>...]\n" +"A line that defines a value can be continued to the next line by ending it " +"with a `\\`; the backquote and the end-of-line are stripped. Leading " +"whitespaces after 'name =', the remainder of the line after the first " +"comment character '#' or ';', and trailing whitespaces of the line are " +"discarded unless they are enclosed in double quotes. Internal whitespaces " +"within the value are retained verbatim." msgstr "" #. type: Plain text -#: en/git-add.txt:24 +#: en/config.txt:75 msgid "" -"This command updates the index using the current content found in the " -"working tree, to prepare the content staged for the next commit. It " -"typically adds the current content of existing paths as a whole, but with " -"some options it can also be used to add content with only part of the " -"changes made to the working tree files applied, or remove paths that do not " -"exist in the working tree anymore." +"Inside double quotes, double quote `\"` and backslash `\\` characters must " +"be escaped: use `\\\"` for `\"` and `\\\\` for `\\`." msgstr "" #. type: Plain text -#: en/git-add.txt:30 +#: en/config.txt:80 msgid "" -"The \"index\" holds a snapshot of the content of the working tree, and it is " -"this snapshot that is taken as the contents of the next commit. Thus after " -"making any changes to the working tree, and before running the commit " -"command, you must use the `add` command to add any new or modified files to " -"the index." +"The following escape sequences (beside `\\\"` and `\\\\`) are recognized: `" +"\\n` for newline character (NL), `\\t` for horizontal tabulation (HT, TAB) " +"and `\\b` for backspace (BS). Other char escape sequences (including octal " +"escape sequences) are invalid." msgstr "" -#. type: Plain text -#: en/git-add.txt:35 -msgid "" -"This command can be performed multiple times before a commit. It only adds " -"the content of the specified file(s) at the time the add command is run; if " -"you want subsequent changes included in the next commit, then you must run " -"`git add` again to add the new content to the index." +#. type: Title ~ +#: en/config.txt:83 +#, no-wrap +msgid "Includes" msgstr "" #. type: Plain text -#: en/git-add.txt:38 +#: en/config.txt:90 msgid "" -"The `git status` command can be used to obtain a summary of which files have " -"changes that are staged for the next commit." +"The `include` and `includeIf` sections allow you to include config " +"directives from another source. These sections behave identically to each " +"other with the exception that `includeIf` sections may be ignored if their " +"condition does not evaluate to true; see \"Conditional includes\" below." msgstr "" #. type: Plain text -#: en/git-add.txt:45 +#: en/config.txt:95 msgid "" -"The `git add` command will not add ignored files by default. If any ignored " -"files were explicitly specified on the command line, `git add` will fail " -"with a list of ignored files. Ignored files reached by directory recursion " -"or filename globbing performed by Git (quote your globs before the shell) " -"will be silently ignored. The 'git add' command can be used to add ignored " -"files with the `-f` (force) option." +"You can include a config file from another by setting the special `include." +"path` (or `includeIf.*.path`) variable to the name of the file to be " +"included. The variable takes a pathname as its value, and is subject to " +"tilde expansion. These variables can be given multiple times." msgstr "" #. type: Plain text -#: en/git-add.txt:48 +#: en/config.txt:101 msgid "" -"Please see linkgit:git-commit[1] for alternative ways to add content to a " -"commit." +"The contents of the included file are inserted immediately, as if they had " +"been found at the location of the include directive. If the value of the " +"variable is a relative path, the path is considered to be relative to the " +"configuration file in which the include directive was found. See below for " +"examples." msgstr "" -#. type: Labeled list -#: en/git-add.txt:52 en/git-grep.txt:293 +#. type: Title ~ +#: en/config.txt:103 #, no-wrap -msgid "<pathspec>..." +msgid "Conditional includes" msgstr "" #. type: Plain text -#: en/git-add.txt:64 +#: en/config.txt:108 msgid "" -"Files to add content from. Fileglobs (e.g. `*.c`) can be given to add all " -"matching files. Also a leading directory name (e.g. `dir` to add " -"`dir/file1` and `dir/file2`) can be given to update the index to match the " -"current state of the directory as a whole (e.g. specifying `dir` will " -"record not just a file `dir/file1` modified in the working tree, a file " -"`dir/file2` added to the working tree, but also a file `dir/file3` removed " -"from the working tree). Note that older versions of Git used to ignore " -"removed files; use `--no-all` option if you want to add modified or new " -"files but ignore removed ones." -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:65 en/git-blame.txt:70 en/git-checkout-index.txt:43 en/git-cherry-pick.txt:87 en/git-clean.txt:47 en/git-clone.txt:135 en/git-commit.txt:168 en/git-format-patch.txt:93 en/git-grep.txt:172 en/git-mailinfo.txt:66 en/git-mv.txt:39 en/git-notes.txt:178 en/git-p4.txt:294 en/git-prune-packed.txt:31 en/git-prune.txt:36 en/git-push.txt:117 en/git-quiltimport.txt:34 en/git-read-tree.txt:57 en/git-rebase.txt:318 en/git-reflog.txt:114 en/git-repack.txt:77 en/git-revert.txt:69 en/git-rm.txt:43 en/git-shortlog.txt:29 en/git-submodule.txt:310 en/git-svn.txt:648 en/git-unpack-objects.txt:30 en/git-worktree.txt:110 en/fetch-options.txt:80 en/merge-options.txt:56 -#, no-wrap -msgid "-n" -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:66 en/git-clean.txt:48 en/git-commit.txt:310 en/git-http-push.txt:37 en/git-mv.txt:40 en/git-notes.txt:179 en/git-p4.txt:295 en/git-prune-packed.txt:32 en/git-prune.txt:37 en/git-push.txt:118 en/git-quiltimport.txt:35 en/git-read-tree.txt:58 en/git-reflog.txt:115 en/git-rm.txt:44 en/git-send-email.txt:362 en/git-send-pack.txt:51 en/git-svn.txt:649 en/git-worktree.txt:111 en/fetch-options.txt:46 -#, no-wrap -msgid "--dry-run" +"You can include a config file from another conditionally by setting a " +"`includeIf.<condition>.path` variable to the name of the file to be included." msgstr "" #. type: Plain text -#: en/git-add.txt:69 +#: en/config.txt:112 msgid "" -"Don't actually add the file(s), just show if they exist and/or will be " -"ignored." -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:70 en/git-apply.txt:214 en/git-archimport.txt:73 en/git-archive.txt:47 en/git-branch.txt:148 en/git-cherry.txt:29 en/git-clone.txt:124 en/git-commit.txt:291 en/git-count-objects.txt:21 en/git-cvsexportcommit.txt:82 en/git-cvsimport.txt:52 en/git-diff-tree.txt:81 en/git-fetch-pack.txt:111 en/git-grep.txt:137 en/git-http-fetch.txt:33 en/git-imap-send.txt:32 en/git-index-pack.txt:27 en/git-ls-files.txt:131 en/git-mv.txt:43 en/git-notes.txt:210 en/git-p4.txt:171 en/git-prune.txt:41 en/git-pull.txt:83 en/git-push.txt:264 en/git-read-tree.txt:62 en/git-rebase.txt:310 en/git-remote.txt:35 en/git-status.txt:47 en/git-svn.txt:350 en/git-tag.txt:79 en/git-verify-commit.txt:23 en/git-verify-pack.txt:26 en/git-verify-tag.txt:23 en/git-worktree.txt:120 en/fetch-options.txt:165 en/merge-options.txt:108 -#, no-wrap -msgid "-v" +"The condition starts with a keyword followed by a colon and some data whose " +"format and meaning depends on the keyword. Supported keywords are:" msgstr "" #. type: Labeled list -#: en/git-add.txt:71 en/git-apply.txt:215 en/git-archive.txt:48 en/git-branch.txt:150 en/git-clone.txt:123 en/git-commit.txt:292 en/git-count-objects.txt:22 en/git-daemon.txt:126 en/git-fsck.txt:77 en/git-http-push.txt:40 en/git-imap-send.txt:33 en/git-mv.txt:44 en/git-notes.txt:211 en/git-p4.txt:172 en/git-pack-redundant.txt:39 en/git-prune.txt:42 en/git-pull.txt:84 en/git-push.txt:265 en/git-rebase.txt:311 en/git-reflog.txt:119 en/git-remote.txt:36 en/git-send-pack.txt:61 en/git-status.txt:48 en/git-svn.txt:351 en/git-update-index.txt:145 en/git-verify-commit.txt:24 en/git-verify-pack.txt:27 en/git-verify-tag.txt:24 en/git-worktree.txt:121 en/fetch-options.txt:166 en/merge-options.txt:109 +#: en/config.txt:113 #, no-wrap -msgid "--verbose" +msgid "`gitdir`" msgstr "" #. type: Plain text -#: en/git-add.txt:73 en/git-imap-send.txt:35 en/fetch-options.txt:168 en/merge-options.txt:111 -msgid "Be verbose." -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:74 en/git-archimport.txt:80 en/git-blame.txt:64 en/git-branch.txt:98 en/git-checkout-index.txt:34 en/git-checkout.txt:116 en/git-clean.txt:34 en/git-cvsexportcommit.txt:54 en/git-filter-branch.txt:189 en/git-mv.txt:31 en/git-notes.txt:127 en/git-push.txt:221 en/git-rebase.txt:335 en/git-repack.txt:65 en/git-replace.txt:59 en/git-rm.txt:39 en/git-submodule.txt:287 en/git-tag.txt:71 en/git-update-server-info.txt:26 en/git-worktree.txt:85 en/fetch-options.txt:50 -#, no-wrap -msgid "-f" -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:75 en/git-branch.txt:99 en/git-checkout-index.txt:35 en/git-checkout.txt:117 en/git-clean.txt:35 en/git-fast-import.txt:37 en/git-filter-branch.txt:190 en/git-gc.txt:77 en/git-http-push.txt:30 en/git-mv.txt:32 en/git-notes.txt:128 en/git-push.txt:222 en/git-replace.txt:60 en/git-rm.txt:40 en/git-send-email.txt:387 en/git-send-pack.txt:54 en/git-submodule.txt:288 en/git-tag.txt:72 en/git-update-server-info.txt:27 en/git-worktree.txt:86 en/fetch-options.txt:51 -#, no-wrap -msgid "--force" +#: en/config.txt:118 +msgid "" +"The data that follows the keyword `gitdir:` is used as a glob pattern. If " +"the location of the .git directory matches the pattern, the include " +"condition is met." msgstr "" #. type: Plain text -#: en/git-add.txt:77 -msgid "Allow adding otherwise ignored files." -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:78 en/git-am.txt:123 en/git-branch.txt:124 en/git-clean.txt:42 en/git-commit.txt:253 en/git-cvsimport.txt:88 en/git-grep.txt:116 en/git-help.txt:51 en/git-ls-files.txt:51 en/git-read-tree.txt:48 en/git-rebase.txt:373 en/git-tag.txt:111 en/rev-list-options.txt:75 -#, no-wrap -msgid "-i" +#: en/config.txt:123 +msgid "" +"The .git location may be auto-discovered, or come from `$GIT_DIR` " +"environment variable. If the repository is auto discovered via a .git file " +"(e.g. from submodules, or a linked worktree), the .git location would be the " +"final location where the .git directory is, not where the" msgstr "" -#. type: Labeled list -#: en/git-add.txt:79 en/git-am.txt:124 en/git-clean.txt:43 en/git-rebase.txt:374 en/git-svn.txt:281 +#. type: Block title +#: en/config.txt:123 #, no-wrap -msgid "--interactive" +msgid "git file is." msgstr "" #. type: Plain text -#: en/git-add.txt:84 +#: en/config.txt:128 msgid "" -"Add modified contents in the working tree interactively to the " -"index. Optional path arguments may be supplied to limit operation to a " -"subset of the working tree. See ``Interactive mode'' for details." +"The pattern can contain standard globbing wildcards and two additional ones, " +"`**/` and `/**`, that can match multiple path components. Please refer to " +"linkgit:gitignore[5] for details. For convenience:" msgstr "" -#. type: Labeled list -#: en/git-add.txt:86 en/git-checkout.txt:243 en/git-commit.txt:67 en/diff-options.txt:24 -#, no-wrap -msgid "--patch" +#. type: Plain text +#: en/config.txt:131 +msgid "" +"If the pattern starts with `~/`, `~` will be substituted with the content of " +"the environment variable `HOME`." msgstr "" #. type: Plain text -#: en/git-add.txt:91 +#: en/config.txt:134 msgid "" -"Interactively choose hunks of patch between the index and the work tree and " -"add them to the index. This gives the user a chance to review the difference " -"before adding modified contents to the index." +"If the pattern starts with `./`, it is replaced with the directory " +"containing the current config file." msgstr "" #. type: Plain text -#: en/git-add.txt:95 +#: en/config.txt:138 msgid "" -"This effectively runs `add --interactive`, but bypasses the initial command " -"menu and directly jumps to the `patch` subcommand. See ``Interactive mode'' " -"for details." +"If the pattern does not start with either `~/`, `./` or `/`, `**/` will be " +"automatically prepended. For example, the pattern `foo/bar` becomes `**/foo/" +"bar` and would match `/any/path/to/foo/bar`." msgstr "" -#. type: Labeled list -#: en/git-add.txt:96 en/git-blame.txt:77 en/git-cat-file.txt:44 en/git-cherry-pick.txt:55 en/git-commit.txt:212 en/git-config.txt:220 en/git-grep.txt:260 en/git-revert.txt:43 en/git-shortlog.txt:38 en/git-svn.txt:583 en/merge-options.txt:11 -#, no-wrap -msgid "-e" +#. type: Plain text +#: en/config.txt:142 +msgid "" +"If the pattern ends with `/`, `**` will be automatically added. For example, " +"the pattern `foo/` becomes `foo/**`. In other words, it matches \"foo\" and " +"everything inside, recursively." msgstr "" #. type: Labeled list -#: en/git-add.txt:97 en/git-cherry-pick.txt:56 en/git-commit.txt:213 en/git-config.txt:221 en/git-revert.txt:44 en/git-svn.txt:584 en/merge-options.txt:10 +#: en/config.txt:143 #, no-wrap -msgid "--edit" +msgid "`gitdir/i`" msgstr "" #. type: Plain text -#: en/git-add.txt:101 +#: en/config.txt:146 msgid "" -"Open the diff vs. the index in an editor and let the user edit it. After " -"the editor was closed, adjust the hunk headers and apply the patch to the " -"index." +"This is the same as `gitdir` except that matching is done case-insensitively " +"(e.g. on case-insensitive file sytems)" msgstr "" #. type: Plain text -#: en/git-add.txt:107 -msgid "" -"The intent of this option is to pick and choose lines of the patch to apply, " -"or even to modify the contents of lines to be staged. This can be quicker " -"and more flexible than using the interactive hunk selector. However, it is " -"easy to confuse oneself and create a patch that does not apply to the " -"index. See EDITING PATCHES below." +#: en/config.txt:148 +msgid "A few more notes on matching via `gitdir` and `gitdir/i`:" msgstr "" -#. type: Labeled list -#: en/git-add.txt:108 en/git-am.txt:78 en/git-checkout-index.txt:25 en/git-cvsexportcommit.txt:64 en/git-cvsimport.txt:98 en/git-ls-files.txt:69 en/git-mailinfo.txt:52 en/git-push.txt:245 en/git-read-tree.txt:44 en/diff-options.txt:23 en/fetch-options.txt:143 -#, no-wrap -msgid "-u" +#. type: Plain text +#: en/config.txt:150 +msgid "Symlinks in `$GIT_DIR` are not resolved before matching." msgstr "" -#. type: Labeled list -#: en/git-add.txt:109 -#, no-wrap -msgid "--update" +#. type: Plain text +#: en/config.txt:155 +msgid "" +"Both the symlink & realpath versions of paths will be matched outside of `" +"$GIT_DIR`. E.g. if ~/git is a symlink to /mnt/storage/git, both `gitdir:~/" +"git` and `gitdir:/mnt/storage/git` will match." msgstr "" #. type: Plain text -#: en/git-add.txt:113 +#: en/config.txt:160 msgid "" -"Update the index just where it already has an entry matching <pathspec>. " -"This removes as well as modifies index entries to match the working tree, " -"but adds no new files." +"This was not the case in the initial release of this feature in v2.13.0, " +"which only matched the realpath version. Configuration that wants to be " +"compatible with the initial release of this feature needs to either specify " +"only the realpath version, or both versions." msgstr "" #. type: Plain text -#: en/git-add.txt:118 +#: en/config.txt:163 msgid "" -"If no <pathspec> is given when `-u` option is used, all tracked files in the " -"entire working tree are updated (old versions of Git used to limit the " -"update to the current directory and its subdirectories)." +"Note that \"../\" is not special and will match literally, which is unlikely " +"what you want." msgstr "" -#. type: Labeled list -#: en/git-add.txt:119 en/git-repack.txt:44 en/git-svn.txt:402 +#. type: Title ~ +#: en/config.txt:165 en/git-rev-parse.txt:359 en/git-rev-parse.txt:415 #, no-wrap -msgid "-A" +msgid "Example" msgstr "" -#. type: Labeled list -#: en/git-add.txt:120 en/git-branch.txt:141 en/git-checkout-index.txt:39 en/git-commit.txt:61 en/git-describe.txt:37 en/git-fetch-pack.txt:35 en/git-help.txt:42 en/git-http-push.txt:25 en/git-merge-base.txt:72 en/git-name-rev.txt:42 en/git-pack-objects.txt:75 en/git-pack-redundant.txt:32 en/git-pack-refs.txt:48 en/git-push.txt:94 en/git-reflog.txt:72 en/git-rev-parse.txt:161 en/git-send-pack.txt:37 en/git-show-branch.txt:48 en/git-submodule.txt:275 en/fetch-options.txt:1 en/rev-list-options.txt:135 +#. type: Plain text +#: en/config.txt:171 #, no-wrap -msgid "--all" +msgid "" +"\t# Core variables\n" +"\t[core]\n" +"\t\t; Don't trust file modes\n" +"\t\tfilemode = false\n" msgstr "" -#. type: Labeled list -#: en/git-add.txt:121 +#. type: Plain text +#: en/config.txt:176 #, no-wrap -msgid "--no-ignore-removal" +msgid "" +"\t# Our diff algorithm\n" +"\t[diff]\n" +"\t\texternal = /usr/local/bin/diff-wrapper\n" +"\t\trenames = true\n" msgstr "" #. type: Plain text -#: en/git-add.txt:126 +#: en/config.txt:180 +#, no-wrap msgid "" -"Update the index not only where the working tree has a file matching " -"<pathspec> but also where the index already has an entry. This adds, " -"modifies, and removes index entries to match the working tree." +"\t[branch \"devel\"]\n" +"\t\tremote = origin\n" +"\t\tmerge = refs/heads/devel\n" msgstr "" #. type: Plain text -#: en/git-add.txt:131 +#: en/config.txt:185 +#, no-wrap msgid "" -"If no <pathspec> is given when `-A` option is used, all files in the entire " -"working tree are updated (old versions of Git used to limit the update to " -"the current directory and its subdirectories)." +"\t# Proxy settings\n" +"\t[core]\n" +"\t\tgitProxy=\"ssh\" for \"kernel.org\"\n" +"\t\tgitProxy=default-proxy ; for the rest\n" msgstr "" -#. type: Labeled list -#: en/git-add.txt:132 +#. type: Plain text +#: en/config.txt:190 #, no-wrap -msgid "--no-all" +msgid "" +"\t[include]\n" +"\t\tpath = /path/to/foo.inc ; include by absolute path\n" +"\t\tpath = foo.inc ; find \"foo.inc\" relative to the current file\n" +"\t\tpath = ~/foo.inc ; find \"foo.inc\" in your `$HOME` directory\n" msgstr "" -#. type: Labeled list -#: en/git-add.txt:133 +#. type: Plain text +#: en/config.txt:194 #, no-wrap -msgid "--ignore-removal" +msgid "" +"\t; include if $GIT_DIR is /path/to/foo/.git\n" +"\t[includeIf \"gitdir:/path/to/foo/.git\"]\n" +"\t\tpath = /path/to/foo.inc\n" msgstr "" #. type: Plain text -#: en/git-add.txt:138 +#: en/config.txt:198 +#, no-wrap msgid "" -"Update the index by adding new files that are unknown to the index and files " -"modified in the working tree, but ignore files that have been removed from " -"the working tree. This option is a no-op when no <pathspec> is used." +"\t; include for all repositories inside /path/to/group\n" +"\t[includeIf \"gitdir:/path/to/group/\"]\n" +"\t\tpath = /path/to/foo.inc\n" msgstr "" #. type: Plain text -#: en/git-add.txt:142 +#: en/config.txt:202 +#, no-wrap msgid "" -"This option is primarily to help users who are used to older versions of " -"Git, whose \"git add <pathspec>...\" was a synonym for \"git add --no-all " -"<pathspec>...\", i.e. ignored removed files." +"\t; include for all repositories inside $HOME/to/group\n" +"\t[includeIf \"gitdir:~/to/group/\"]\n" +"\t\tpath = /path/to/foo.inc\n" msgstr "" -#. type: Labeled list -#: en/git-add.txt:143 en/git-format-patch.txt:97 en/git-submodule.txt:349 +#. type: Plain text +#: en/config.txt:208 #, no-wrap -msgid "-N" +msgid "" +"\t; relative paths are always relative to the including\n" +"\t; file (if the condition is true); their location is not\n" +"\t; affected by the condition\n" +"\t[includeIf \"gitdir:/path/to/group/\"]\n" +"\t\tpath = foo.inc\n" msgstr "" -#. type: Labeled list -#: en/git-add.txt:144 +#. type: Title ~ +#: en/config.txt:210 #, no-wrap -msgid "--intent-to-add" +msgid "Values" msgstr "" #. type: Plain text -#: en/git-add.txt:150 +#: en/config.txt:215 msgid "" -"Record only the fact that the path will be added later. An entry for the " -"path is placed in the index with no content. This is useful for, among other " -"things, showing the unstaged content of such files with `git diff` and " -"committing them with `git commit -a`." +"Values of many variables are treated as a simple string, but there are " +"variables that take values of specific types and there are rules as to how " +"to spell them." msgstr "" #. type: Labeled list -#: en/git-add.txt:151 en/git-update-index.txt:52 +#: en/config.txt:216 #, no-wrap -msgid "--refresh" +msgid "boolean" msgstr "" #. type: Plain text -#: en/git-add.txt:154 +#: en/config.txt:221 msgid "" -"Don't add the file(s), but only refresh their stat() information in the " -"index." +"When a variable is said to take a boolean value, many synonyms are accepted " +"for 'true' and 'false'; these are all case-insensitive." msgstr "" #. type: Labeled list -#: en/git-add.txt:155 +#: en/config.txt:222 #, no-wrap -msgid "--ignore-errors" +msgid "true" +msgstr "" + +#. type: Plain text +#: en/config.txt:223 +msgid "Boolean true literals are `yes`, `on`, `true`," msgstr "" #. type: Plain text -#: en/git-add.txt:161 +#: en/config.txt:225 +#, no-wrap msgid "" -"If some files could not be added because of errors indexing them, do not " -"abort the operation, but continue adding the others. The command shall still " -"exit with non-zero status. The configuration variable `add.ignoreErrors` " -"can be set to true to make this the default behaviour." +"and `1`. Also, a variable defined without `= <value>`\n" +"is taken as true.\n" msgstr "" #. type: Labeled list -#: en/git-add.txt:162 en/git-notes.txt:169 en/git-update-index.txt:70 en/rev-list-options.txt:182 +#: en/config.txt:226 #, no-wrap -msgid "--ignore-missing" +msgid "false" msgstr "" #. type: Plain text -#: en/git-add.txt:167 -msgid "" -"This option can only be used together with --dry-run. By using this option " -"the user can check if any of the given files would be ignored, no matter if " -"they are already present in the work tree or not." +#: en/config.txt:227 +msgid "Boolean false literals are `no`, `off`, `false`," msgstr "" -#. type: Labeled list -#: en/git-add.txt:168 en/git-update-index.txt:83 +#. type: Plain text +#: en/config.txt:228 #, no-wrap -msgid "--chmod=(+|-)x" +msgid "`0` and the empty string.\n" msgstr "" #. type: Plain text -#: en/git-add.txt:172 +#: en/config.txt:232 msgid "" -"Override the executable bit of the added files. The executable bit is only " -"changed in the index, the files on disk are left unchanged." +"When converting a value to its canonical form using the `--type=bool` type " +"specifier, 'git config' will ensure that the output is \"true\" or \"false" +"\" (spelled in lowercase)." msgstr "" #. type: Labeled list -#: en/git-add.txt:173 en/git-check-attr.txt:39 en/git-checkout-index.txt:71 en/git-commit.txt:336 en/git-grep.txt:289 en/git-ls-files.txt:174 en/git-merge-index.txt:23 en/git-prune.txt:45 en/git-rm.txt:53 en/git-update-index.txt:204 en/git-verify-pack.txt:36 +#: en/config.txt:233 #, no-wrap -msgid "\\--" +msgid "integer" msgstr "" #. type: Plain text -#: en/git-add.txt:177 en/git-rm.txt:57 +#: en/config.txt:237 msgid "" -"This option can be used to separate command-line options from the list of " -"files, (useful when filenames might be mistaken for command-line options)." +"The value for many variables that specify various sizes can be suffixed with " +"`k`, `M`,... to mean \"scale the number by 1024\", \"by 1024x1024\", etc." msgstr "" -#. type: Title - -#: en/git-add.txt:180 en/git-apply.txt:244 en/git-gc.txt:82 en/git-repack.txt:147 en/git-update-index.txt:451 +#. type: Labeled list +#: en/config.txt:238 en/diff-options.txt:339 en/git-for-each-ref.txt:177 #, no-wrap -msgid "Configuration" +msgid "color" msgstr "" #. type: Plain text -#: en/git-add.txt:186 +#: en/config.txt:242 msgid "" -"The optional configuration variable `core.excludesFile` indicates a path to " -"a file containing patterns of file names to exclude from git-add, similar to " -"$GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to " -"those in info/exclude. See linkgit:gitignore[5]." +"The value for a variable that takes a color is a list of colors (at most " +"two, one for foreground and one for background) and attributes (as many as " +"you want), separated by spaces." msgstr "" -#. type: Title - -#: en/git-add.txt:189 en/git-archive.txt:149 en/git-bisect.txt:370 en/git-check-attr.txt:71 en/git-checkout-index.txt:143 en/git-checkout.txt:435 en/git-check-ref-format.txt:110 en/git-cherry-pick.txt:156 en/git-cherry.txt:43 en/git-commit.txt:350 en/git-config.txt:296 en/git-credential-cache.txt:52 en/git-credential-store.txt:71 en/git-cvsexportcommit.txt:91 en/git-daemon.txt:235 en/git-describe.txt:110 en/git-diff.txt:109 en/git-fast-export.txt:125 en/git-fetch.txt:155 en/git-for-each-ref.txt:237 en/git-format-patch.txt:591 en/git-http-backend.txt:67 en/git-init.txt:141 en/git-interpret-trailers.txt:205 en/git-log.txt:108 en/git-ls-remote.txt:75 en/git-merge-file.txt:81 en/git-merge.txt:310 en/git-notes.txt:278 en/git-pull.txt:206 en/git-remote-fd.txt:37 en/git-reset.txt:102 en/git-revert.txt:109 en/git-rev-parse.txt:427 en/git-rm.txt:159 en/git-show.txt:58 en/git-stash.txt:201 en/git-stripspace.txt:49 en/git-worktree.txt:224 -#, no-wrap -msgid "EXAMPLES" +#. type: Plain text +#: en/config.txt:246 +msgid "" +"The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`, " +"`blue`, `magenta`, `cyan` and `white`. The first color given is the " +"foreground; the second is the background." msgstr "" #. type: Plain text -#: en/git-add.txt:193 +#: en/config.txt:251 msgid "" -"Adds content from all `*.txt` files under `Documentation` directory and its " -"subdirectories:" +"Colors may also be given as numbers between 0 and 255; these use ANSI 256-" +"color mode (but note that not all terminals may support this). If your " +"terminal supports it, you may also specify 24-bit RGB values as hex, like " +"`#ff0ab3`." msgstr "" -#. type: delimited block - -#: en/git-add.txt:196 -#, no-wrap -msgid "$ git add Documentation/\\*.txt\n" +#. type: Plain text +#: en/config.txt:258 +msgid "" +"The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, " +"`italic`, and `strike` (for crossed-out or \"strikethrough\" letters). The " +"position of any attributes with respect to the colors (before, after, or in " +"between), doesn't matter. Specific attributes may be turned off by prefixing " +"them with `no` or `no-` (e.g., `noreverse`, `no-ul`, etc)." msgstr "" #. type: Plain text -#: en/git-add.txt:201 +#: en/config.txt:261 msgid "" -"Note that the asterisk `*` is quoted from the shell in this example; this " -"lets the command include the files from subdirectories of `Documentation/` " -"directory." +"An empty color string produces no color effect at all. This can be used to " +"avoid coloring specific elements without disabling color entirely." msgstr "" #. type: Plain text -#: en/git-add.txt:203 -msgid "Considers adding content from all git-*.sh scripts:" +#: en/config.txt:270 +msgid "" +"For git's pre-defined color slots, the attributes are meant to be reset at " +"the beginning of each item in the colored output. So setting `color.decorate." +"branch` to `black` will paint that branch name in a plain `black`, even if " +"the previous thing on the same output line (e.g. opening parenthesis before " +"the list of branch names in `log --decorate` output) is set to be painted " +"with `bold` or some other attribute. However, custom log formats may do " +"more complicated and layered coloring, and the negated forms may be useful " +"there." msgstr "" -#. type: delimited block - -#: en/git-add.txt:206 +#. type: Labeled list +#: en/config.txt:271 #, no-wrap -msgid "$ git add git-*.sh\n" +msgid "pathname" msgstr "" #. type: Plain text -#: en/git-add.txt:211 +#: en/config.txt:277 msgid "" -"Because this example lets the shell expand the asterisk (i.e. you are " -"listing the files explicitly), it does not consider `subdir/git-foo.sh`." +"A variable that takes a pathname value can be given a string that begins " +"with \"`~/`\" or \"`~user/`\", and the usual tilde expansion happens to such " +"a string: `~/` is expanded to the value of `$HOME`, and `~user/` to the " +"specified user's home directory." msgstr "" -#. type: Title - -#: en/git-add.txt:213 en/git-clean.txt:75 +#. type: Title ~ +#: en/config.txt:280 en/git-imap-send.txt:58 #, no-wrap -msgid "Interactive mode" +msgid "Variables" msgstr "" #. type: Plain text -#: en/git-add.txt:217 +#: en/config.txt:285 msgid "" -"When the command enters the interactive mode, it shows the output of the " -"'status' subcommand, and then goes into its interactive command loop." +"Note that this list is non-comprehensive and not necessarily complete. For " +"command-specific variables, you will find a more detailed description in the " +"appropriate manual page." msgstr "" #. type: Plain text -#: en/git-add.txt:222 en/git-clean.txt:84 +#: en/config.txt:290 msgid "" -"The command loop shows the list of subcommands available, and gives a prompt " -"\"What now> \". In general, when the prompt ends with a single '>', you can " -"pick only one of the choices given and type return, like this:" +"Other git-related tools may and do use their own variables. When inventing " +"new variables for use in your own tool, make sure their names do not " +"conflict with those that are used by Git itself and other popular tools, and " +"describe them in your documentation." msgstr "" -#. type: delimited block - -#: en/git-add.txt:228 +#. type: Title - +#: en/date-formats.txt:2 #, no-wrap -msgid "" -" *** Commands ***\n" -" 1: status 2: update 3: revert 4: add untracked\n" -" 5: patch 6: diff 7: quit 8: help\n" -" What now> 1\n" +msgid "DATE FORMATS" msgstr "" #. type: Plain text -#: en/git-add.txt:232 -msgid "" -"You also could say `s` or `sta` or `status` above as long as the choice is " -"unique." +#: en/date-formats.txt:5 +msgid "The `GIT_AUTHOR_DATE`, `GIT_COMMITTER_DATE` environment variables" msgstr "" #. type: Plain text -#: en/git-add.txt:234 -msgid "The main command loop has 6 subcommands (plus help and quit)." +#: en/date-formats.txt:7 +msgid "and the `--date` option" +msgstr "" + +#. type: Plain text +#: en/date-formats.txt:9 +msgid "support the following date formats:" msgstr "" #. type: Labeled list -#: en/git-add.txt:235 +#: en/date-formats.txt:10 #, no-wrap -msgid "status" +msgid "Git internal format" msgstr "" #. type: Plain text -#: en/git-add.txt:242 +#: en/date-formats.txt:15 msgid "" -"This shows the change between HEAD and index (i.e. what will be committed if " -"you say `git commit`), and between index and working tree files (i.e. what " -"you could stage further before `git commit` using `git add`) for each path. " -"A sample output looks like this:" +"It is `<unix timestamp> <time zone offset>`, where `<unix timestamp>` is the " +"number of seconds since the UNIX epoch. `<time zone offset>` is a positive " +"or negative offset from UTC. For example CET (which is 1 hour ahead of UTC) " +"is `+0100`." msgstr "" -#. type: delimited block - -#: en/git-add.txt:247 +#. type: Labeled list +#: en/date-formats.txt:16 #, no-wrap -msgid "" -" staged unstaged path\n" -" 1: binary nothing foo.png\n" -" 2: +403/-35 +1/-1 git-add--interactive.perl\n" +msgid "RFC 2822" msgstr "" #. type: Plain text -#: en/git-add.txt:258 +#: en/date-formats.txt:19 msgid "" -"It shows that foo.png has differences from HEAD (but that is binary so line " -"count cannot be shown) and there is no difference between indexed copy and " -"the working tree version (if the working tree version were also different, " -"'binary' would have been shown in place of 'nothing'). The other file, " -"git-add{litdd}interactive.perl, has 403 lines added and 35 lines deleted if " -"you commit what is in the index, but working tree file has further " -"modifications (one addition and one deletion)." +"The standard email format as described by RFC 2822, for example `Thu, 07 Apr " +"2005 22:13:13 +0200`." msgstr "" #. type: Labeled list -#: en/git-add.txt:259 en/git-update-ref.txt:94 +#: en/date-formats.txt:20 #, no-wrap -msgid "update" +msgid "ISO 8601" msgstr "" #. type: Plain text -#: en/git-add.txt:268 +#: en/date-formats.txt:24 msgid "" -"This shows the status information and issues an \"Update>>\" prompt. When " -"the prompt ends with double '>>', you can make more than one selection, " -"concatenated with whitespace or comma. Also you can say ranges. E.g. \"2-5 " -"7,9\" to choose 2,3,4,5,7,9 from the list. If the second number in a range " -"is omitted, all remaining patches are taken. E.g. \"7-\" to choose 7,8,9 " -"from the list. You can say '*' to choose everything." +"Time and date specified by the ISO 8601 standard, for example " +"`2005-04-07T22:13:13`. The parser accepts a space instead of the `T` " +"character as well." msgstr "" #. type: Plain text -#: en/git-add.txt:271 -msgid "What you chose are then highlighted with '*', like this:" +#: en/date-formats.txt:26 +msgid "" +"In addition, the date part is accepted in the following formats: `YYYY.MM." +"DD`, `MM/DD/YYYY` and `DD.MM.YYYY`." msgstr "" -#. type: delimited block - -#: en/git-add.txt:276 +#. type: Title - +#: en/diff-format.txt:2 #, no-wrap -msgid "" -" staged unstaged path\n" -" 1: binary nothing foo.png\n" -"* 2: +403/-35 +1/-1 git-add--interactive.perl\n" +msgid "Raw output format" msgstr "" #. type: Plain text -#: en/git-add.txt:280 -msgid "To remove selection, prefix the input with `-` like this:" -msgstr "" - -#. type: delimited block - -#: en/git-add.txt:283 -#, no-wrap -msgid "Update>> -2\n" +#: en/diff-format.txt:6 +msgid "" +"The raw output format from \"git-diff-index\", \"git-diff-tree\", \"git-diff-" +"files\" and \"git diff --raw\" are very similar." msgstr "" #. type: Plain text -#: en/git-add.txt:287 +#: en/diff-format.txt:9 msgid "" -"After making the selection, answer with an empty line to stage the contents " -"of working tree files for selected paths in the index." +"These commands all compare two sets of things; what is compared differs:" msgstr "" #. type: Labeled list -#: en/git-add.txt:288 +#: en/diff-format.txt:10 #, no-wrap -msgid "revert" +msgid "git-diff-index <tree-ish>" msgstr "" #. type: Plain text -#: en/git-add.txt:293 -msgid "" -"This has a very similar UI to 'update', and the staged information for " -"selected paths are reverted to that of the HEAD version. Reverting new " -"paths makes them untracked." +#: en/diff-format.txt:12 +msgid "compares the <tree-ish> and the files on the filesystem." msgstr "" #. type: Labeled list -#: en/git-add.txt:294 +#: en/diff-format.txt:13 #, no-wrap -msgid "add untracked" +msgid "git-diff-index --cached <tree-ish>" msgstr "" #. type: Plain text -#: en/git-add.txt:298 -msgid "" -"This has a very similar UI to 'update' and 'revert', and lets you add " -"untracked paths to the index." +#: en/diff-format.txt:15 +msgid "compares the <tree-ish> and the index." msgstr "" #. type: Labeled list -#: en/git-add.txt:299 +#: en/diff-format.txt:16 #, no-wrap -msgid "patch" +msgid "git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]" msgstr "" #. type: Plain text -#: en/git-add.txt:306 -msgid "" -"This lets you choose one path out of a 'status' like selection. After " -"choosing the path, it presents the diff between the index and the working " -"tree file and asks you if you want to stage the change of each hunk. You " -"can select one of the following options and type return:" +#: en/diff-format.txt:18 +msgid "compares the trees named by the two arguments." msgstr "" -#. type: Plain text -#: en/git-add.txt:321 +#. type: Labeled list +#: en/diff-format.txt:19 #, no-wrap -msgid "" -"y - stage this hunk\n" -"n - do not stage this hunk\n" -"q - quit; do not stage this hunk or any of the remaining ones\n" -"a - stage this hunk and all later hunks in the file\n" -"d - do not stage this hunk or any of the later hunks in the file\n" -"g - select a hunk to go to\n" -"/ - search for a hunk matching the given regex\n" -"j - leave this hunk undecided, see next undecided hunk\n" -"J - leave this hunk undecided, see next hunk\n" -"k - leave this hunk undecided, see previous undecided hunk\n" -"K - leave this hunk undecided, see previous hunk\n" -"s - split the current hunk into smaller hunks\n" -"e - manually edit the current hunk\n" -"? - print help\n" +msgid "git-diff-files [<pattern>...]" msgstr "" #. type: Plain text -#: en/git-add.txt:324 -msgid "" -"After deciding the fate for all hunks, if there is any hunk that was chosen, " -"the index is updated with the selected hunks." +#: en/diff-format.txt:21 +msgid "compares the index and the files on the filesystem." msgstr "" #. type: Plain text -#: en/git-add.txt:327 +#: en/diff-format.txt:25 msgid "" -"You can omit having to type return here, by setting the configuration " -"variable `interactive.singleKey` to `true`." -msgstr "" - -#. type: Labeled list -#: en/git-add.txt:328 -#, no-wrap -msgid "diff" +"The \"git-diff-tree\" command begins its output by printing the hash of what " +"is being compared. After that, all the commands print one output line per " +"changed file." msgstr "" #. type: Plain text -#: en/git-add.txt:332 -msgid "This lets you review what will be committed (i.e. between HEAD and index)." +#: en/diff-format.txt:27 +msgid "An output line is formatted this way:" msgstr "" -#. type: Title - -#: en/git-add.txt:335 +#. type: delimited block - +#: en/diff-format.txt:35 #, no-wrap -msgid "EDITING PATCHES" +msgid "" +"in-place edit :100644 100644 bcd1234 0123456 M file0\n" +"copy-edit :100644 100644 abcd123 1234567 C68 file1 file2\n" +"rename-edit :100644 100644 abcd123 1234567 R86 file1 file3\n" +"create :000000 100644 0000000 1234567 A file4\n" +"delete :100644 000000 1234567 0000000 D file5\n" +"unmerged :000000 000000 0000000 0000000 U file6\n" msgstr "" #. type: Plain text -#: en/git-add.txt:345 -msgid "" -"Invoking `git add -e` or selecting `e` from the interactive hunk selector " -"will open a patch in your editor; after the editor exits, the result is " -"applied to the index. You are free to make arbitrary changes to the patch, " -"but note that some changes may have confusing results, or even result in a " -"patch that cannot be applied. If you want to abort the operation entirely " -"(i.e., stage nothing new in the index), simply delete all lines of the " -"patch. The list below describes some common things you may see in a patch, " -"and which editing operations make sense on them." +#: en/diff-format.txt:38 +msgid "That is, from the left to the right:" msgstr "" -#. type: Labeled list -#: en/git-add.txt:347 -#, no-wrap -msgid "added content" +#. type: Plain text +#: en/diff-format.txt:40 +msgid "a colon." msgstr "" #. type: Plain text -#: en/git-add.txt:351 -msgid "" -"Added content is represented by lines beginning with \"{plus}\". You can " -"prevent staging any addition lines by deleting them." +#: en/diff-format.txt:41 +msgid "mode for \"src\"; 000000 if creation or unmerged." msgstr "" -#. type: Labeled list -#: en/git-add.txt:352 -#, no-wrap -msgid "removed content" +#. type: Plain text +#: en/diff-format.txt:42 en/diff-format.txt:44 en/diff-format.txt:46 +#: en/diff-format.txt:48 +msgid "a space." msgstr "" #. type: Plain text -#: en/git-add.txt:356 -msgid "" -"Removed content is represented by lines beginning with \"-\". You can " -"prevent staging their removal by converting the \"-\" to a \" \" (space)." +#: en/diff-format.txt:43 +msgid "mode for \"dst\"; 000000 if deletion or unmerged." msgstr "" -#. type: Labeled list -#: en/git-add.txt:357 -#, no-wrap -msgid "modified content" +#. type: Plain text +#: en/diff-format.txt:45 +msgid "sha1 for \"src\"; 0\\{40\\} if creation or unmerged." msgstr "" #. type: Plain text -#: en/git-add.txt:364 +#: en/diff-format.txt:47 msgid "" -"Modified content is represented by \"-\" lines (removing the old content) " -"followed by \"{plus}\" lines (adding the replacement content). You can " -"prevent staging the modification by converting \"-\" lines to \" \", and " -"removing \"{plus}\" lines. Beware that modifying only half of the pair is " -"likely to introduce confusing changes to the index." +"sha1 for \"dst\"; 0\\{40\\} if creation, unmerged or \"look at work tree\"." msgstr "" #. type: Plain text -#: en/git-add.txt:372 -msgid "" -"There are also more complex operations that can be performed. But beware " -"that because the patch is applied only to the index and not the working " -"tree, the working tree will appear to \"undo\" the change in the index. For " -"example, introducing a new line into the index that is in neither the HEAD " -"nor the working tree will stage the new line for commit, but the line will " -"appear to be reverted in the working tree." +#: en/diff-format.txt:49 +msgid "status, followed by optional \"score\" number." msgstr "" #. type: Plain text -#: en/git-add.txt:374 -msgid "Avoid using these constructs, or do so with extreme caution." +#: en/diff-format.txt:50 +msgid "a tab or a NUL when `-z` option is used." msgstr "" -#. type: Labeled list -#: en/git-add.txt:376 -#, no-wrap -msgid "removing untouched content" +#. type: Plain text +#: en/diff-format.txt:51 +msgid "path for \"src\"" msgstr "" #. type: Plain text -#: en/git-add.txt:382 -msgid "" -"Content which does not differ between the index and working tree may be " -"shown on context lines, beginning with a \" \" (space). You can stage " -"context lines for removal by converting the space to a \"-\". The resulting " -"working tree file will appear to re-add the content." +#: en/diff-format.txt:52 +msgid "a tab or a NUL when `-z` option is used; only exists for C or R." msgstr "" -#. type: Labeled list -#: en/git-add.txt:383 -#, no-wrap -msgid "modifying existing content" +#. type: Plain text +#: en/diff-format.txt:53 +msgid "path for \"dst\"; only exists for C or R." msgstr "" #. type: Plain text -#: en/git-add.txt:390 -msgid "" -"One can also modify context lines by staging them for removal (by converting " -"\" \" to \"-\") and adding a \"{plus}\" line with the new content. " -"Similarly, one can modify \"{plus}\" lines for existing additions or " -"modifications. In all cases, the new modification will appear reverted in " -"the working tree." +#: en/diff-format.txt:54 +msgid "an LF or a NUL when `-z` option is used, to terminate the record." msgstr "" -#. type: Labeled list -#: en/git-add.txt:391 -#, no-wrap -msgid "new content" +#. type: Plain text +#: en/diff-format.txt:56 +msgid "Possible status letters are:" msgstr "" #. type: Plain text -#: en/git-add.txt:396 -msgid "" -"You may also add new content that does not exist in the patch; simply add " -"new lines, each starting with \"{plus}\". The addition will appear reverted " -"in the working tree." +#: en/diff-format.txt:58 +msgid "A: addition of a file" msgstr "" #. type: Plain text -#: en/git-add.txt:400 -msgid "" -"There are also several operations which should be avoided entirely, as they " -"will make the patch impossible to apply:" +#: en/diff-format.txt:59 +msgid "C: copy of a file into a new one" msgstr "" #. type: Plain text -#: en/git-add.txt:402 -msgid "adding context (\" \") or removal (\"-\") lines" +#: en/diff-format.txt:60 +msgid "D: deletion of a file" msgstr "" #. type: Plain text -#: en/git-add.txt:403 -msgid "deleting context or removal lines" +#: en/diff-format.txt:61 +msgid "M: modification of the contents or mode of a file" msgstr "" #. type: Plain text -#: en/git-add.txt:404 -msgid "modifying the contents of context or removal lines" +#: en/diff-format.txt:62 +msgid "R: renaming of a file" msgstr "" #. type: Plain text -#: en/git-add.txt:413 -msgid "" -"linkgit:git-status[1] linkgit:git-rm[1] linkgit:git-reset[1] " -"linkgit:git-mv[1] linkgit:git-commit[1] linkgit:git-update-index[1]" +#: en/diff-format.txt:63 +msgid "T: change in the type of the file" msgstr "" -#. type: Title = -#: en/git-am.txt:2 -#, no-wrap -msgid "git-am(1)" +#. type: Plain text +#: en/diff-format.txt:65 +msgid "" +"U: file is unmerged (you must complete the merge before it can be committed)" msgstr "" #. type: Plain text -#: en/git-am.txt:7 -msgid "git-am - Apply a series of patches from a mailbox" +#: en/diff-format.txt:66 +msgid "X: \"unknown\" change type (most probably a bug, please report it)" msgstr "" #. type: Plain text -#: en/git-am.txt:20 -#, no-wrap +#: en/diff-format.txt:71 msgid "" -"'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]\n" -"\t [--[no-]3way] [--interactive] [--committer-date-is-author-date]\n" -"\t [--ignore-date] [--ignore-space-change | --ignore-whitespace]\n" -"\t [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]\n" -"\t [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]\n" -"\t [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]\n" -"\t [(<mbox> | <Maildir>)...]\n" -"'git am' (--continue | --skip | --abort)\n" +"Status letters C and R are always followed by a score (denoting the " +"percentage of similarity between the source and target of the move or " +"copy). Status letter M may be followed by a score (denoting the percentage " +"of dissimilarity) for file rewrites." msgstr "" #. type: Plain text -#: en/git-am.txt:26 +#: en/diff-format.txt:74 msgid "" -"Splits mail messages in a mailbox into commit log message, authorship " -"information and patches, and applies them to the current branch." +"<sha1> is shown as all 0's if a file is new on the filesystem and it is out " +"of sync with the index." msgstr "" #. type: Labeled list -#: en/git-am.txt:30 +#: en/diff-format.txt:76 en/diff-format.txt:101 en/git-svn.txt:499 +#: en/git-svn.txt:539 #, no-wrap -msgid "(<mbox>|<Maildir>)..." +msgid "Example:" msgstr "" -#. type: Plain text -#: en/git-am.txt:34 -msgid "" -"The list of mailbox files to read patches from. If you do not supply this " -"argument, the command reads from the standard input. If you supply " -"directories, they will be treated as Maildirs." +#. type: delimited block - +#: en/diff-format.txt:79 +#, no-wrap +msgid ":100644 100644 5be4a4a 0000000 M file.c\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:35 en/git-blame.txt:74 en/git-cat-file.txt:40 en/git-cherry-pick.txt:100 en/git-clone.txt:66 en/git-commit.txt:159 en/git-diff-tree.txt:75 en/git-format-patch.txt:113 en/git-ls-files.txt:58 en/git-revert.txt:89 en/git-shortlog.txt:34 en/git-show-ref.txt:53 en/git-status.txt:27 en/git-stripspace.txt:38 en/git-svn.txt:46 en/git-tag.txt:63 en/git-verify-pack.txt:31 en/diff-options.txt:30 -#, no-wrap -msgid "-s" +#. type: Plain text +#: en/diff-format.txt:85 en/git-ls-files.txt:210 en/git-ls-tree.txt:101 +msgid "" +"Without the `-z` option, pathnames with \"unusual\" characters are quoted as " +"explained for the configuration variable `core.quotePath` (see linkgit:git-" +"config[1]). Using `-z` the filename is output verbatim and the line is " +"terminated by a NUL byte." msgstr "" -#. type: Labeled list -#: en/git-am.txt:36 en/git-cherry-pick.txt:101 en/git-commit.txt:160 en/git-format-patch.txt:114 en/git-revert.txt:90 +#. type: Title - +#: en/diff-format.txt:87 #, no-wrap -msgid "--signoff" +msgid "diff format for merges" msgstr "" #. type: Plain text -#: en/git-am.txt:40 +#: en/diff-format.txt:93 msgid "" -"Add a `Signed-off-by:` line to the commit message, using the committer " -"identity of yourself. See the signoff option in linkgit:git-commit[1] for " -"more information." +"\"git-diff-tree\", \"git-diff-files\" and \"git-diff --raw\" can take `-c` " +"or `--cc` option to generate diff output also for merge commits. The output " +"differs from the format described above in the following way:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:41 en/git-cvsexportcommit.txt:67 en/git-cvsimport.txt:93 en/git-fetch-pack.txt:53 en/git-format-patch.txt:108 en/git-ls-files.txt:73 en/git-mailinfo.txt:27 en/git-mv.txt:34 en/git-repack.txt:139 en/fetch-options.txt:58 -#, no-wrap -msgid "-k" +#. type: Plain text +#: en/diff-format.txt:95 +msgid "there is a colon for each parent" msgstr "" -#. type: Labeled list -#: en/git-am.txt:42 en/git-fetch-pack.txt:54 en/git-index-pack.txt:54 en/git-reset.txt:82 en/fetch-options.txt:59 -#, no-wrap -msgid "--keep" +#. type: Plain text +#: en/diff-format.txt:96 +msgid "there are more \"src\" modes and \"src\" sha1" msgstr "" #. type: Plain text -#: en/git-am.txt:44 -msgid "Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." +#: en/diff-format.txt:97 +msgid "status is concatenated status characters for each parent" msgstr "" -#. type: Labeled list -#: en/git-am.txt:45 -#, no-wrap -msgid "--keep-non-patch" +#. type: Plain text +#: en/diff-format.txt:98 +msgid "no optional \"score\" number" msgstr "" #. type: Plain text -#: en/git-am.txt:47 -msgid "Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." +#: en/diff-format.txt:99 +msgid "single path, only for \"dst\"" msgstr "" -#. type: Labeled list -#: en/git-am.txt:48 +#. type: delimited block - +#: en/diff-format.txt:104 #, no-wrap -msgid "--[no-]keep-cr" +msgid "::100644 100644 100644 fabadb8 cc95eb0 4866510 MM\tdescribe.c\n" msgstr "" #. type: Plain text -#: en/git-am.txt:53 +#: en/diff-format.txt:108 msgid "" -"With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1]) with " -"the same option, to prevent it from stripping CR at the end of " -"lines. `am.keepcr` configuration variable can be used to specify the default " -"behaviour. `--no-keep-cr` is useful to override `am.keepcr`." +"Note that 'combined diff' lists only files which were modified from all " +"parents." msgstr "" -#. type: Labeled list -#: en/git-am.txt:54 en/git-blame.txt:52 en/git-cvsexportcommit.txt:37 en/git-diff-files.txt:37 en/git-diff-tree.txt:91 en/git-grep.txt:201 en/git-http-fetch.txt:27 en/git-ls-files.txt:35 en/git-shortlog.txt:50 en/git-stripspace.txt:42 en/rev-list-options.txt:866 +#. type: Title - +#: en/diff-format.txt:114 #, no-wrap -msgid "-c" +msgid "other diff formats" msgstr "" -#. type: Labeled list -#: en/git-am.txt:55 en/git-mailinfo.txt:74 -#, no-wrap -msgid "--scissors" +#. type: Plain text +#: en/diff-format.txt:120 +msgid "" +"The `--summary` option describes newly added, deleted, renamed and copied " +"files. The `--stat` option adds diffstat(1) graph to the output. These " +"options can be combined with other options, such as `-p`, and are meant for " +"human consumption." msgstr "" #. type: Plain text -#: en/git-am.txt:59 +#: en/diff-format.txt:125 msgid "" -"Remove everything in body before a scissors line (see " -"linkgit:git-mailinfo[1]). Can be activated by default using the " -"`mailinfo.scissors` configuration variable." +"When showing a change that involves a rename or a copy, `--stat` output " +"formats the pathnames compactly by combining common prefix and suffix of the " +"pathnames. For example, a change that moves `arch/i386/Makefile` to `arch/" +"x86/Makefile` while modifying 4 lines will be shown like this:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:60 en/git-mailinfo.txt:90 +#. type: delimited block - +#: en/diff-format.txt:128 #, no-wrap -msgid "--no-scissors" +msgid "arch/{i386 => x86}/Makefile | 4 +--\n" msgstr "" #. type: Plain text -#: en/git-am.txt:62 -msgid "Ignore scissors lines (see linkgit:git-mailinfo[1])." +#: en/diff-format.txt:133 +msgid "" +"The `--numstat` option gives the diffstat(1) information but is designed for " +"easier machine consumption. An entry in `--numstat` output looks like this:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:63 en/git-branch.txt:107 en/git-checkout.txt:216 en/git-cvsexportcommit.txt:60 en/git-cvsimport.txt:118 en/git-diff-index.txt:32 en/git-diff-tree.txt:69 en/git-help.txt:56 en/git-instaweb.txt:35 en/git-ls-files.txt:43 en/git-mailinfo.txt:69 en/git-read-tree.txt:34 en/git-rebase.txt:270 en/git-svn.txt:292 en/git-svn.txt:637 en/git-symbolic-ref.txt:49 en/rev-list-options.txt:879 +#. type: delimited block - +#: en/diff-format.txt:137 #, no-wrap -msgid "-m" +msgid "" +"1\t2\tREADME\n" +"3\t1\tarch/{i386 => x86}/Makefile\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:64 en/git-mailinfo.txt:70 -#, no-wrap -msgid "--message-id" +#. type: Plain text +#: en/diff-format.txt:140 +msgid "That is, from left to right:" msgstr "" #. type: Plain text -#: en/git-am.txt:69 -msgid "" -"Pass the `-m` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]), so that " -"the Message-ID header is added to the commit message. The `am.messageid` " -"configuration variable can be used to specify the default behaviour." +#: en/diff-format.txt:142 en/diff-format.txt:158 +msgid "the number of added lines;" msgstr "" -#. type: Labeled list -#: en/git-am.txt:70 -#, no-wrap -msgid "--no-message-id" +#. type: Plain text +#: en/diff-format.txt:143 en/diff-format.txt:145 en/diff-format.txt:159 +#: en/diff-format.txt:161 +msgid "a tab;" msgstr "" #. type: Plain text -#: en/git-am.txt:73 -msgid "" -"Do not add the Message-ID header to the commit message. `no-message-id` is " -"useful to override `am.messageid`." +#: en/diff-format.txt:144 en/diff-format.txt:160 +msgid "the number of deleted lines;" msgstr "" -#. type: Labeled list -#: en/git-am.txt:74 en/git-branch.txt:157 en/git-checkout-index.txt:30 en/git-checkout.txt:106 en/git-clean.txt:51 en/git-clone.txt:119 en/git-commit.txt:306 en/git-diff-files.txt:44 en/git-fetch-pack.txt:48 en/git-format-patch.txt:260 en/git-grep.txt:280 en/git-imap-send.txt:36 en/git-init.txt:43 en/git-ls-remote.txt:36 en/git-merge-file.txt:67 en/git-merge-index.txt:35 en/git-notes.txt:206 en/git-pack-objects.txt:158 en/git-prune-packed.txt:36 en/git-pull.txt:77 en/git-push.txt:258 en/git-rebase.txt:306 en/git-repack.txt:73 en/git-reset.txt:96 en/git-rev-parse.txt:113 en/git-rm.txt:66 en/git-show-ref.txt:70 en/git-submodule.txt:271 en/git-svn.txt:632 en/git-symbolic-ref.txt:39 en/git-unpack-objects.txt:34 en/git-update-index.txt:56 en/fetch-options.txt:159 en/merge-options.txt:104 -#, no-wrap -msgid "-q" +#. type: Plain text +#: en/diff-format.txt:146 +msgid "pathname (possibly with rename/copy information);" msgstr "" -#. type: Labeled list -#: en/git-am.txt:75 en/git-branch.txt:158 en/git-checkout-index.txt:31 en/git-checkout.txt:107 en/git-clean.txt:52 en/git-clone.txt:118 en/git-commit.txt:307 en/git-fast-import.txt:42 en/git-fetch-pack.txt:49 en/git-format-patch.txt:261 en/git-gc.txt:74 en/git-grep.txt:281 en/git-imap-send.txt:37 en/git-init.txt:44 en/git-ls-remote.txt:37 en/git-notes.txt:207 en/git-prune-packed.txt:37 en/git-pull.txt:78 en/git-push.txt:259 en/git-rebase.txt:307 en/git-reset.txt:97 en/git-rev-parse.txt:114 en/git-rm.txt:67 en/git-send-email.txt:371 en/git-show-ref.txt:71 en/git-submodule.txt:272 en/git-svn.txt:633 en/git-symbolic-ref.txt:40 en/diff-options.txt:557 en/fetch-options.txt:160 en/merge-options.txt:105 en/rev-list-options.txt:201 -#, no-wrap -msgid "--quiet" +#. type: Plain text +#: en/diff-format.txt:147 +msgid "a newline." msgstr "" #. type: Plain text -#: en/git-am.txt:77 -msgid "Be quiet. Only print error messages." +#: en/diff-format.txt:149 +msgid "When `-z` output option is in effect, the output is formatted this way:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:79 +#. type: delimited block - +#: en/diff-format.txt:153 #, no-wrap -msgid "--utf8" -msgstr "" - -#. type: Plain text -#: en/git-am.txt:85 msgid "" -"Pass `-u` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]). The " -"proposed commit log message taken from the e-mail is re-coded into UTF-8 " -"encoding (configuration variable `i18n.commitencoding` can be used to " -"specify project's preferred encoding if it is not UTF-8)." +"1\t2\tREADME NUL\n" +"3\t1\tNUL arch/i386/Makefile NUL arch/x86/Makefile NUL\n" msgstr "" #. type: Plain text -#: en/git-am.txt:88 -#, no-wrap -msgid "" -"This was optional in prior versions of git, but now it is the\n" -"default. You can use `--no-utf8` to override this.\n" -msgstr "" - -#. type: Labeled list -#: en/git-am.txt:89 -#, no-wrap -msgid "--no-utf8" +#: en/diff-format.txt:156 +msgid "That is:" msgstr "" #. type: Plain text -#: en/git-am.txt:92 -msgid "Pass `-n` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." +#: en/diff-format.txt:162 en/diff-format.txt:164 +msgid "a NUL (only exists if renamed/copied);" msgstr "" -#. type: Labeled list -#: en/git-am.txt:93 en/git-apply.txt:77 -#, no-wrap -msgid "-3" +#. type: Plain text +#: en/diff-format.txt:163 +msgid "pathname in preimage;" msgstr "" -#. type: Labeled list -#: en/git-am.txt:94 en/git-apply.txt:78 -#, no-wrap -msgid "--3way" +#. type: Plain text +#: en/diff-format.txt:165 +msgid "pathname in postimage (only exists if renamed/copied);" msgstr "" -#. type: Labeled list -#: en/git-am.txt:95 -#, no-wrap -msgid "--no-3way" +#. type: Plain text +#: en/diff-format.txt:166 +msgid "a NUL." msgstr "" #. type: Plain text -#: en/git-am.txt:102 +#: en/diff-format.txt:171 msgid "" -"When the patch does not apply cleanly, fall back on 3-way merge if the patch " -"records the identity of blobs it is supposed to apply to and we have those " -"blobs available locally. `--no-3way` can be used to override am.threeWay " -"configuration variable. For more information, see am.threeWay in " -"linkgit:git-config[1]." +"The extra `NUL` before the preimage path in renamed case is to allow scripts " +"that read the output to tell if the current record being read is a single-" +"path record or a rename/copy record without reading ahead. After reading " +"added and deleted lines, reading up to `NUL` would yield the pathname, but " +"if that is `NUL`, the record will show two paths." msgstr "" -#. type: Labeled list -#: en/git-am.txt:103 en/git-apply.txt:172 en/diff-options.txt:526 +#. type: Title - +#: en/diff-generate-patch.txt:2 #, no-wrap -msgid "--ignore-space-change" +msgid "Generating patches with -p" msgstr "" -#. type: Labeled list -#: en/git-am.txt:104 en/git-apply.txt:173 en/git-rebase.txt:361 -#, no-wrap -msgid "--ignore-whitespace" +#. type: Plain text +#: en/diff-generate-patch.txt:10 +msgid "" +"When \"git-diff-index\", \"git-diff-tree\", or \"git-diff-files\" are run " +"with a `-p` option, \"git diff\" without the `--raw` option, or \"git log\" " +"with the \"-p\" option, they do not produce the output described above; " +"instead they produce a patch file. You can customize the creation of such " +"patches via the `GIT_EXTERNAL_DIFF` and the `GIT_DIFF_OPTS` environment " +"variables." msgstr "" -#. type: Labeled list -#: en/git-am.txt:105 en/git-rebase.txt:362 -#, no-wrap -msgid "--whitespace=<option>" +#. type: Plain text +#: en/diff-generate-patch.txt:13 +msgid "" +"What the -p option produces is slightly different from the traditional diff " +"format:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:106 en/git-apply.txt:119 en/git-rebase.txt:329 -#, no-wrap -msgid "-C<n>" +#. type: Plain text +#: en/diff-generate-patch.txt:15 +msgid "It is preceded with a \"git diff\" header that looks like this:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:107 en/git-apply.txt:115 +#. type: Plain text +#: en/diff-generate-patch.txt:17 #, no-wrap -msgid "-p<n>" +msgid "diff --git a/file1 b/file2\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:108 -#, no-wrap -msgid "--directory=<dir>" +#. type: Plain text +#: en/diff-generate-patch.txt:21 +msgid "" +"The `a/` and `b/` filenames are the same unless rename/copy is involved. " +"Especially, even for a creation or a deletion, `/dev/null` is _not_ used in " +"place of the `a/` or `b/` filenames." msgstr "" -#. type: Labeled list -#: en/git-am.txt:109 -#, no-wrap -msgid "--exclude=<path>" +#. type: Plain text +#: en/diff-generate-patch.txt:25 +msgid "" +"When rename/copy is involved, `file1` and `file2` show the name of the " +"source file of the rename/copy and the name of the file that rename/copy " +"produces, respectively." msgstr "" -#. type: Labeled list -#: en/git-am.txt:110 -#, no-wrap -msgid "--include=<path>" +#. type: Plain text +#: en/diff-generate-patch.txt:27 +msgid "It is followed by one or more extended header lines:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:111 en/git-apply.txt:100 +#. type: Plain text +#: en/diff-generate-patch.txt:39 #, no-wrap -msgid "--reject" +msgid "" +"old mode <mode>\n" +"new mode <mode>\n" +"deleted file mode <mode>\n" +"new file mode <mode>\n" +"copy from <path>\n" +"copy to <path>\n" +"rename from <path>\n" +"rename to <path>\n" +"similarity index <number>\n" +"dissimilarity index <number>\n" +"index <hash>..<hash> <mode>\n" msgstr "" #. type: Plain text -#: en/git-am.txt:115 +#: en/diff-generate-patch.txt:42 msgid "" -"These flags are passed to the 'git apply' (see linkgit:git-apply[1]) " -"program that applies the patch." -msgstr "" - -#. type: Labeled list -#: en/git-am.txt:116 -#, no-wrap -msgid "--patch-format" +"File modes are printed as 6-digit octal numbers including the file type and " +"file permission bits." msgstr "" #. type: Plain text -#: en/git-am.txt:122 +#: en/diff-generate-patch.txt:44 msgid "" -"By default the command will try to detect the patch format " -"automatically. This option allows the user to bypass the automatic detection " -"and specify the patch format that the patch(es) should be interpreted " -"as. Valid formats are mbox, mboxrd, stgit, stgit-series and hg." +"Path names in extended headers do not include the `a/` and `b/` prefixes." msgstr "" #. type: Plain text -#: en/git-am.txt:126 -msgid "Run interactively." -msgstr "" - -#. type: Labeled list -#: en/git-am.txt:127 en/git-rebase.txt:367 -#, no-wrap -msgid "--committer-date-is-author-date" +#: en/diff-generate-patch.txt:51 +msgid "" +"The similarity index is the percentage of unchanged lines, and the " +"dissimilarity index is the percentage of changed lines. It is a rounded " +"down integer, followed by a percent sign. The similarity index value of " +"100% is thus reserved for two equal files, while 100% dissimilarity means " +"that no line from the old file made it into the new one." msgstr "" #. type: Plain text -#: en/git-am.txt:133 +#: en/diff-generate-patch.txt:55 msgid "" -"By default the command records the date from the e-mail message as the " -"commit author date, and uses the time of commit creation as the committer " -"date. This allows the user to lie about the committer date by using the same " -"value as the author date." -msgstr "" - -#. type: Labeled list -#: en/git-am.txt:134 en/git-rebase.txt:368 -#, no-wrap -msgid "--ignore-date" +"The index line includes the SHA-1 checksum before and after the change. The " +"<mode> is included if the file mode does not change; otherwise, separate " +"lines indicate the old and the new mode." msgstr "" #. type: Plain text -#: en/git-am.txt:140 +#: en/diff-generate-patch.txt:59 msgid "" -"By default the command records the date from the e-mail message as the " -"commit author date, and uses the time of commit creation as the committer " -"date. This allows the user to lie about the author date by using the same " -"value as the committer date." -msgstr "" - -#. type: Labeled list -#: en/git-am.txt:141 en/git-rebase.txt:264 -#, no-wrap -msgid "--skip" +"Pathnames with \"unusual\" characters are quoted as explained for the " +"configuration variable `core.quotePath` (see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/git-am.txt:144 +#: en/diff-generate-patch.txt:64 msgid "" -"Skip the current patch. This is only meaningful when restarting an aborted " -"patch." +"All the `file1` files in the output refer to files before the commit, and " +"all the `file2` files refer to files after the commit. It is incorrect to " +"apply each change to each file sequentially. For example, this patch will " +"swap a and b:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:145 en/git-cherry-pick.txt:105 en/git-commit.txt:326 en/git-commit-tree.txt:57 en/git-merge.txt:72 en/git-rebase.txt:300 en/git-revert.txt:83 +#. type: Plain text +#: en/diff-generate-patch.txt:71 #, no-wrap -msgid "-S[<keyid>]" +msgid "" +"diff --git a/a b/b\n" +"rename from a\n" +"rename to b\n" +"diff --git a/b b/a\n" +"rename from b\n" +"rename to a\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:146 en/git-cherry-pick.txt:106 en/git-commit.txt:327 en/git-commit-tree.txt:58 en/git-merge.txt:73 en/git-rebase.txt:301 en/git-revert.txt:84 +#. type: Title - +#: en/diff-generate-patch.txt:74 #, no-wrap -msgid "--gpg-sign[=<keyid>]" +msgid "combined diff format" msgstr "" #. type: Plain text -#: en/git-am.txt:150 en/git-cherry-pick.txt:110 en/git-commit.txt:331 en/git-commit-tree.txt:62 en/git-rebase.txt:305 en/git-revert.txt:88 +#: en/diff-generate-patch.txt:82 msgid "" -"GPG-sign commits. The `keyid` argument is optional and defaults to the " -"committer identity; if specified, it must be stuck to the option without a " -"space." +"Any diff-generating command can take the `-c` or `--cc` option to produce a " +"'combined diff' when showing a merge. This is the default format when " +"showing merges with linkgit:git-diff[1] or linkgit:git-show[1]. Note also " +"that you can give the `-m` option to any of these commands to force " +"generation of diffs with individual parents of a merge." msgstr "" -#. type: Labeled list -#: en/git-am.txt:151 en/git-merge.txt:105 en/git-rebase.txt:245 en/sequencer.txt:1 -#, no-wrap -msgid "--continue" +#. type: Plain text +#: en/diff-generate-patch.txt:84 +msgid "A 'combined diff' format looks like this:" msgstr "" -#. type: Labeled list -#: en/git-am.txt:152 en/git-branch.txt:136 en/git-cherry-pick.txt:74 en/git-diff-tree.txt:39 en/git-ls-tree.txt:44 en/git-pull.txt:103 en/git-rm.txt:49 en/git-show-branch.txt:43 en/git-unpack-objects.txt:38 en/rev-list-options.txt:887 +#. type: delimited block - +#: en/diff-generate-patch.txt:93 #, no-wrap -msgid "-r" +msgid "" +"diff --combined describe.c\n" +"index fabadb8,cc95eb0..4866510\n" +"--- a/describe.c\n" +"+++ b/describe.c\n" +"@@@ -98,20 -98,12 +98,20 @@@\n" +"\treturn (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;\n" +" }\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:153 +#. type: delimited block - +#: en/diff-generate-patch.txt:103 #, no-wrap -msgid "--resolved" -msgstr "" - -#. type: Plain text -#: en/git-am.txt:160 msgid "" -"After a patch failure (e.g. attempting to apply conflicting patch), the user " -"has applied it by hand and the index file stores the result of the " -"application. Make a commit using the authorship and commit log extracted " -"from the e-mail message and the current index file, and continue." +"- static void describe(char *arg)\n" +" -static void describe(struct commit *cmit, int last_one)\n" +"++static void describe(char *arg, int last_one)\n" +" {\n" +" +\tunsigned char sha1[20];\n" +" +\tstruct commit *cmit;\n" +"\tstruct commit_list *list;\n" +"\tstatic int initialized = 0;\n" +"\tstruct commit_name *n;\n" msgstr "" -#. type: Labeled list -#: en/git-am.txt:161 +#. type: delimited block - +#: en/diff-generate-patch.txt:113 #, no-wrap -msgid "--resolvemsg=<msg>" +msgid "" +" +\tif (get_sha1(arg, sha1) < 0)\n" +" +\t\tusage(describe_usage);\n" +" +\tcmit = lookup_commit_reference(sha1);\n" +" +\tif (!cmit)\n" +" +\t\tusage(describe_usage);\n" +" +\n" +"\tif (!initialized) {\n" +"\t\tinitialized = 1;\n" +"\t\tfor_each_ref(get_name);\n" msgstr "" #. type: Plain text -#: en/git-am.txt:167 +#: en/diff-generate-patch.txt:117 msgid "" -"When a patch failure occurs, <msg> will be printed to the screen before " -"exiting. This overrides the standard message informing you to use " -"`--continue` or `--skip` to handle the failure. This is solely for internal " -"use between 'git rebase' and 'git am'." +"It is preceded with a \"git diff\" header, that looks like this (when `-c` " +"option is used):" msgstr "" -#. type: Labeled list -#: en/git-am.txt:168 en/git-merge.txt:93 en/git-notes.txt:201 en/git-rebase.txt:248 en/sequencer.txt:11 +#. type: Plain text +#: en/diff-generate-patch.txt:119 #, no-wrap -msgid "--abort" +msgid "diff --combined file\n" msgstr "" #. type: Plain text -#: en/git-am.txt:170 -msgid "Restore the original branch and abort the patching operation." +#: en/diff-generate-patch.txt:121 +msgid "or like this (when `--cc` option is used):" msgstr "" -#. type: Title - -#: en/git-am.txt:172 en/git-commit.txt:444 en/git-format-patch.txt:308 en/git-fsck.txt:100 en/git-log.txt:165 en/git-merge-base.txt:76 en/git-notes.txt:218 en/git-remote.txt:196 en/git-rerere.txt:77 en/git-reset.txt:345 en/git-rm.txt:73 en/git-stash.txt:183 en/git-tag.txt:195 +#. type: Plain text +#: en/diff-generate-patch.txt:123 #, no-wrap -msgid "DISCUSSION" +msgid " diff --cc file\n" msgstr "" #. type: Plain text -#: en/git-am.txt:180 +#: en/diff-generate-patch.txt:126 msgid "" -"The commit author name is taken from the \"From: \" line of the message, and " -"commit author date is taken from the \"Date: \" line of the message. The " -"\"Subject: \" line is used as the title of the commit, after stripping " -"common prefix \"[PATCH <anything>]\". The \"Subject: \" line is supposed to " -"concisely describe what the commit is about in one line of text." +"It is followed by one or more extended header lines (this example shows a " +"merge with two parents):" msgstr "" #. type: Plain text -#: en/git-am.txt:183 +#: en/diff-generate-patch.txt:131 +#, no-wrap msgid "" -"\"From: \" and \"Subject: \" lines starting the body override the respective " -"commit author name and title values taken from the headers." +"index <hash>,<hash>..<hash>\n" +"mode <mode>,<mode>..<mode>\n" +"new file mode <mode>\n" +"deleted file mode <mode>,<mode>\n" msgstr "" #. type: Plain text -#: en/git-am.txt:188 +#: en/diff-generate-patch.txt:137 msgid "" -"The commit message is formed by the title taken from the \"Subject: \", a " -"blank line and the body of the message up to where the patch begins. Excess " -"whitespace at the end of each line is automatically stripped." +"The `mode <mode>,<mode>..<mode>` line appears only if at least one of the " +"<mode> is different from the rest. Extended headers with information about " +"detected contents movement (renames and copying detection) are designed to " +"work with diff of two <tree-ish> and are not used by combined diff format." msgstr "" #. type: Plain text -#: en/git-am.txt:191 -msgid "" -"The patch is expected to be inline, directly following the message. Any " -"line that is of the form:" +#: en/diff-generate-patch.txt:139 +msgid "It is followed by two-line from-file/to-file header" msgstr "" #. type: Plain text -#: en/git-am.txt:193 -msgid "three-dashes and end-of-line, or" +#: en/diff-generate-patch.txt:141 +msgid "a/file" msgstr "" #. type: Plain text -#: en/git-am.txt:194 -msgid "a line that begins with \"diff -\", or" +#: en/diff-generate-patch.txt:142 +msgid "b/file" msgstr "" #. type: Plain text -#: en/git-am.txt:195 -msgid "a line that begins with \"Index: \"" +#: en/diff-generate-patch.txt:146 +msgid "" +"Similar to two-line header for traditional 'unified' diff format, `/dev/" +"null` is used to signal created or deleted files." msgstr "" #. type: Plain text -#: en/git-am.txt:198 +#: en/diff-generate-patch.txt:152 msgid "" -"is taken as the beginning of a patch, and the commit log message is " -"terminated before the first occurrence of such a line." +"Chunk header format is modified to prevent people from accidentally feeding " +"it to `patch -p1`. Combined diff format was created for review of merge " +"commit changes, and was not meant for apply. The change is similar to the " +"change in the extended 'index' header:" msgstr "" #. type: Plain text -#: en/git-am.txt:202 +#: en/diff-generate-patch.txt:154 +#, no-wrap +msgid "@@@ <from-file-range> <from-file-range> <to-file-range> @@@\n" +msgstr "" + +#. type: Plain text +#: en/diff-generate-patch.txt:157 msgid "" -"When initially invoking `git am`, you give it the names of the mailboxes to " -"process. Upon seeing the first patch that does not apply, it aborts in the " -"middle. You can recover from this in one of two ways:" +"There are (number of parents + 1) `@` characters in the chunk header for " +"combined diff format." msgstr "" #. type: Plain text -#: en/git-am.txt:205 -msgid "skip the current patch by re-running the command with the `--skip` option." +#: en/diff-generate-patch.txt:166 +msgid "" +"Unlike the traditional 'unified' diff format, which shows two files A and B " +"with a single column that has `-` (minus -- appears in A but removed in B), `" +"+` (plus -- missing in A but added to B), or `\" \"` (space -- unchanged) " +"prefix, this format compares two or more files file1, file2,... with one " +"file X, and shows how X differs from each of fileN. One column for each of " +"fileN is prepended to the output line to note how X's line is different from " +"it." msgstr "" #. type: Plain text -#: en/git-am.txt:209 +#: en/diff-generate-patch.txt:172 msgid "" -"hand resolve the conflict in the working directory, and update the index " -"file to bring it into a state that the patch should have produced. Then run " -"the command with the `--continue` option." +"A `-` character in the column N means that the line appears in fileN but it " +"does not appear in the result. A `+` character in the column N means that " +"the line appears in the result, and fileN does not have that line (in other " +"words, the line was added, from the point of view of that parent)." msgstr "" #. type: Plain text -#: en/git-am.txt:214 +#: en/diff-generate-patch.txt:178 msgid "" -"The command refuses to process new mailboxes until the current operation is " -"finished, so if you decide to start over from scratch, run `git am --abort` " -"before running the command with mailbox names." +"In the above example output, the function signature was changed from both " +"files (hence two `-` removals from both file1 and file2, plus `++` to mean " +"one line that was added does not appear in either file1 or file2). Also " +"eight other lines are the same from file1 but do not appear in file2 (hence " +"prefixed with `+`)." msgstr "" #. type: Plain text -#: en/git-am.txt:220 +#: en/diff-generate-patch.txt:184 msgid "" -"Before any patches are applied, ORIG_HEAD is set to the tip of the current " -"branch. This is useful if you have problems with multiple commits, like " -"running 'git am' on the wrong branch or an error in the commits that is more " -"easily fixed by changing the mailbox (e.g. errors in the \"From:\" lines)." +"When shown by `git diff-tree -c`, it compares the parents of a merge commit " +"with the merge result (i.e. file1..fileN are the parents). When shown by " +"`git diff-files -c`, it compares the two unresolved merge parents with the " +"working tree file (i.e. file1 is stage 2 aka \"our version\", file2 is stage " +"3 aka \"their version\")." msgstr "" -#. type: Title - -#: en/git-am.txt:222 en/git-commit.txt:464 en/git-gc.txt:171 +#. type: Labeled list +#: en/diff-options.txt:17 en/git-rebase.txt:322 en/merge-options.txt:74 #, no-wrap -msgid "HOOKS" +msgid "--no-stat" msgstr "" #. type: Plain text -#: en/git-am.txt:226 -msgid "" -"This command can run `applypatch-msg`, `pre-applypatch`, and " -"`post-applypatch` hooks. See linkgit:githooks[5] for more information." +#: en/diff-options.txt:19 +msgid "Generate plain patches without any diffstats." msgstr "" -#. type: Plain text -#: en/git-am.txt:230 -msgid "linkgit:git-apply[1]." +#. type: Labeled list +#: en/diff-options.txt:23 en/fetch-options.txt:182 en/git-add.txt:111 +#: en/git-am.txt:77 en/git-checkout-index.txt:25 en/git-cvsexportcommit.txt:64 +#: en/git-cvsimport.txt:98 en/git-ls-files.txt:70 en/git-mailinfo.txt:52 +#: en/git-push.txt:348 en/git-read-tree.txt:44 +#, no-wrap +msgid "-u" msgstr "" -#. type: Title = -#: en/git-annotate.txt:2 +#. type: Labeled list +#: en/diff-options.txt:24 en/git-add.txt:89 en/git-checkout.txt:254 +#: en/git-commit.txt:71 #, no-wrap -msgid "git-annotate(1)" +msgid "--patch" msgstr "" #. type: Plain text -#: en/git-annotate.txt:7 -msgid "git-annotate - Annotate file lines with commit information" +#: en/diff-options.txt:26 +msgid "Generate patch (see section on generating patches)." msgstr "" #. type: Plain text -#: en/git-annotate.txt:12 +#: en/diff-options.txt:28 en/diff-options.txt:50 +#, no-wrap +msgid "\tThis is the default.\n" +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:30 en/git-am.txt:34 en/git-blame.txt:74 +#: en/git-cat-file.txt:40 en/git-cherry-pick.txt:100 en/git-clone.txt:66 +#: en/git-commit.txt:165 en/git-diff-tree.txt:72 en/git-format-patch.txt:116 +#: en/git-ls-files.txt:59 en/git-revert.txt:89 en/git-shortlog.txt:34 +#: en/git-show-ref.txt:53 en/git-status.txt:27 en/git-stripspace.txt:38 +#: en/git-svn.txt:46 en/git-tag.txt:64 en/git-verify-pack.txt:31 #, no-wrap -msgid "'git annotate' [options] file [revision]\n" +msgid "-s" msgstr "" -#. type: Plain text -#: en/git-annotate.txt:17 -msgid "" -"Annotates each line in the given file with information from the commit which " -"introduced the line. Optionally annotates from a given revision." +#. type: Labeled list +#: en/diff-options.txt:31 +#, no-wrap +msgid "--no-patch" msgstr "" #. type: Plain text -#: en/git-annotate.txt:22 +#: en/diff-options.txt:34 msgid "" -"The only difference between this command and linkgit:git-blame[1] is that " -"they use slightly different output formats, and this command exists only for " -"backward compatibility to support existing scripts, and provide a more " -"familiar command name for people coming from other SCM systems." +"Suppress diff output. Useful for commands like `git show` that show the " +"patch by default, or to cancel the effect of `--patch`." msgstr "" #. type: Labeled list -#: en/git-annotate.txt:31 en/cmds-ancillaryinterrogators.txt:4 +#: en/diff-options.txt:36 #, no-wrap -msgid "linkgit:git-blame[1]" +msgid "-U<n>" msgstr "" -#. type: Title = -#: en/git-apply.txt:2 +#. type: Labeled list +#: en/diff-options.txt:37 #, no-wrap -msgid "git-apply(1)" +msgid "--unified=<n>" msgstr "" #. type: Plain text -#: en/git-apply.txt:7 -msgid "git-apply - Apply a patch to files and/or to the index" +#: en/diff-options.txt:40 +msgid "Generate diffs with <n> lines of context instead of the usual three." msgstr "" #. type: Plain text -#: en/git-apply.txt:20 +#: en/diff-options.txt:42 #, no-wrap -msgid "" -"'git apply' [--stat] [--numstat] [--summary] [--check] [--index] [--3way]\n" -"\t [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]\n" -"\t [--allow-binary-replacement | --binary] [--reject] [-z]\n" -"\t [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]\n" -"\t [--ignore-space-change | --ignore-whitespace]\n" -"\t [--whitespace=(nowarn|warn|fix|error|error-all)]\n" -"\t [--exclude=<path>] [--include=<path>] [--directory=<root>]\n" -"\t [--verbose] [--unsafe-paths] [<patch>...]\n" +msgid "\tImplies `-p`.\n" +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:45 en/git-replace.txt:78 en/git-verify-commit.txt:19 +#: en/git-verify-tag.txt:19 +#, no-wrap +msgid "--raw" msgstr "" #. type: Plain text -#: en/git-apply.txt:30 -msgid "" -"Reads the supplied diff output (i.e. \"a patch\") and applies it to files. " -"When running from a subdirectory in a repository, patched paths outside the " -"directory are ignored. With the `--index` option the patch is also applied " -"to the index, and with the `--cached` option the patch is only applied to " -"the index. Without these options, the command applies the patch only to " -"files, and does not require them to be in a Git repository." +#: en/diff-options.txt:48 +#, no-wrap +msgid "\tGenerate the diff in raw format.\n" msgstr "" #. type: Plain text -#: en/git-apply.txt:34 +#: en/diff-options.txt:58 +#, no-wrap msgid "" -"This command applies the patch but does not create a commit. Use " -"linkgit:git-am[1] to create commits from patches generated by " -"linkgit:git-format-patch[1] and/or received by email." +"\tFor each commit, show a summary of changes using the raw diff\n" +"\tformat. See the \"RAW OUTPUT FORMAT\" section of\n" +"\tlinkgit:git-diff[1]. This is different from showing the log\n" +"\titself in raw format, which you can achieve with\n" +"\t`--format=raw`.\n" msgstr "" #. type: Labeled list -#: en/git-apply.txt:37 +#: en/diff-options.txt:62 #, no-wrap -msgid "<patch>..." +msgid "--patch-with-raw" msgstr "" #. type: Plain text -#: en/git-apply.txt:40 -msgid "" -"The files to read the patch from. '-' can be used to read from the standard " -"input." +#: en/diff-options.txt:64 +msgid "Synonym for `-p --raw`." msgstr "" #. type: Labeled list -#: en/git-apply.txt:41 en/git-rebase.txt:314 en/merge-options.txt:55 +#: en/diff-options.txt:66 #, no-wrap -msgid "--stat" +msgid "--indent-heuristic" msgstr "" #. type: Plain text -#: en/git-apply.txt:44 +#: en/diff-options.txt:69 msgid "" -"Instead of applying the patch, output diffstat for the input. Turns off " -"\"apply\"." +"Enable the heuristic that shifts diff hunk boundaries to make patches easier " +"to read. This is the default." msgstr "" #. type: Labeled list -#: en/git-apply.txt:45 en/diff-options.txt:116 +#: en/diff-options.txt:70 #, no-wrap -msgid "--numstat" +msgid "--no-indent-heuristic" msgstr "" #. type: Plain text -#: en/git-apply.txt:51 -msgid "" -"Similar to `--stat`, but shows the number of added and deleted lines in " -"decimal notation and the pathname without abbreviation, to make it more " -"machine friendly. For binary files, outputs two `-` instead of saying `0 " -"0`. Turns off \"apply\"." +#: en/diff-options.txt:72 +msgid "Disable the indent heuristic." msgstr "" #. type: Labeled list -#: en/git-apply.txt:52 en/git-shortlog.txt:35 en/diff-options.txt:172 en/merge-options.txt:98 +#: en/diff-options.txt:73 #, no-wrap -msgid "--summary" +msgid "--minimal" msgstr "" #. type: Plain text -#: en/git-apply.txt:57 -msgid "" -"Instead of applying the patch, output a condensed summary of information " -"obtained from git diff extended headers, such as creations, renames and mode " -"changes. Turns off \"apply\"." +#: en/diff-options.txt:76 en/diff-options.txt:102 +msgid "Spend extra time to make sure the smallest possible diff is produced." msgstr "" #. type: Labeled list -#: en/git-apply.txt:58 en/diff-options.txt:292 +#: en/diff-options.txt:77 #, no-wrap -msgid "--check" +msgid "--patience" msgstr "" #. type: Plain text -#: en/git-apply.txt:62 -msgid "" -"Instead of applying the patch, see if the patch is applicable to the current " -"working tree and/or the index file and detects errors. Turns off \"apply\"." +#: en/diff-options.txt:79 +msgid "Generate a diff using the \"patience diff\" algorithm." msgstr "" #. type: Labeled list -#: en/git-apply.txt:63 en/git-checkout-index.txt:26 +#: en/diff-options.txt:80 #, no-wrap -msgid "--index" +msgid "--histogram" msgstr "" #. type: Plain text -#: en/git-apply.txt:71 -msgid "" -"When `--check` is in effect, or when applying the patch (which is the " -"default when none of the options that disables it is in effect), make sure " -"the patch is applicable to what the current index file records. If the file " -"to be patched in the working tree is not up-to-date, it is flagged as an " -"error. This flag also causes the index file to be updated." +#: en/diff-options.txt:82 +msgid "Generate a diff using the \"histogram diff\" algorithm." msgstr "" #. type: Labeled list -#: en/git-apply.txt:72 en/git-check-attr.txt:27 en/git-diff-index.txt:29 en/git-grep.txt:72 en/git-ls-files.txt:36 en/git-rm.txt:58 en/git-submodule.txt:300 +#: en/diff-options.txt:83 #, no-wrap -msgid "--cached" +msgid "--anchored=<text>" msgstr "" #. type: Plain text -#: en/git-apply.txt:76 -msgid "" -"Apply a patch without touching the working tree. Instead take the cached " -"data, apply the patch, and store the result in the index without using the " -"working tree. This implies `--index`." +#: en/diff-options.txt:85 +msgid "Generate a diff using the \"anchored diff\" algorithm." +msgstr "" + +#. type: Plain text +#: en/diff-options.txt:87 +msgid "This option may be specified more than once." msgstr "" #. type: Plain text -#: en/git-apply.txt:85 +#: en/diff-options.txt:92 msgid "" -"When the patch does not apply cleanly, fall back on 3-way merge if the patch " -"records the identity of blobs it is supposed to apply to, and we have those " -"blobs available locally, possibly leaving the conflict markers in the files " -"in the working tree for the user to resolve. This option implies the " -"`--index` option, and is incompatible with the `--reject` and the `--cached` " -"options." +"If a line exists in both the source and destination, exists only once, and " +"starts with this text, this algorithm attempts to prevent it from appearing " +"as a deletion or addition in the output. It uses the \"patience diff\" " +"algorithm internally." msgstr "" #. type: Labeled list -#: en/git-apply.txt:86 +#: en/diff-options.txt:93 #, no-wrap -msgid "--build-fake-ancestor=<file>" +msgid "--diff-algorithm={patience|minimal|histogram|myers}" msgstr "" #. type: Plain text -#: en/git-apply.txt:92 -msgid "" -"Newer 'git diff' output has embedded 'index information' for each blob to " -"help identify the original version that the patch applies to. When this " -"flag is given, and if the original versions of the blobs are available " -"locally, builds a temporary index containing those blobs." +#: en/diff-options.txt:95 +msgid "Choose a diff algorithm. The variants are as follows:" +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:97 +#, no-wrap +msgid "`default`, `myers`" msgstr "" #. type: Plain text -#: en/git-apply.txt:95 -msgid "" -"When a pure mode change is encountered (which has no index information), the " -"information is read from the current index instead." +#: en/diff-options.txt:99 +msgid "The basic greedy diff algorithm. Currently, this is the default." msgstr "" #. type: Labeled list -#: en/git-apply.txt:96 en/git-cvsimport.txt:168 en/diff-options.txt:505 +#: en/diff-options.txt:99 #, no-wrap -msgid "-R" +msgid "`minimal`" msgstr "" #. type: Labeled list -#: en/git-apply.txt:97 en/rev-list-options.txt:659 +#: en/diff-options.txt:102 #, no-wrap -msgid "--reverse" -msgstr "" - -#. type: Plain text -#: en/git-apply.txt:99 -msgid "Apply the patch in reverse." +msgid "`patience`" msgstr "" #. type: Plain text -#: en/git-apply.txt:106 -msgid "" -"For atomicity, 'git apply' by default fails the whole patch and does not " -"touch the working tree when some of the hunks do not apply. This option " -"makes it apply the parts of the patch that are applicable, and leave the " -"rejected hunks in corresponding *.rej files." +#: en/diff-options.txt:104 +msgid "Use \"patience diff\" algorithm when generating patches." msgstr "" #. type: Labeled list -#: en/git-apply.txt:107 en/git-check-attr.txt:34 en/git-check-ignore.txt:41 en/git-checkout-index.txt:67 en/git-commit.txt:118 en/git-config.txt:183 en/git-grep.txt:196 en/git-ls-files.txt:79 en/git-ls-tree.txt:55 en/git-mktree.txt:23 en/git-status.txt:100 en/git-update-index.txt:160 en/diff-options.txt:183 +#: en/diff-options.txt:104 #, no-wrap -msgid "-z" +msgid "`histogram`" msgstr "" #. type: Plain text -#: en/git-apply.txt:110 +#: en/diff-options.txt:107 msgid "" -"When `--numstat` has been given, do not munge pathnames, but use a " -"NUL-terminated machine-readable format." +"This algorithm extends the patience algorithm to \"support low-occurrence " +"common elements\"." msgstr "" #. type: Plain text -#: en/git-apply.txt:114 en/diff-options.txt:198 +#: en/diff-options.txt:112 msgid "" -"Without this option, pathnames with \"unusual\" characters are quoted as " -"explained for the configuration variable `core.quotePath` (see " -"linkgit:git-config[1])." +"For instance, if you configured the `diff.algorithm` variable to a non-" +"default value and want to use the default one, then you have to use `--diff-" +"algorithm=default` option." +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:113 +#, no-wrap +msgid "--stat[=<width>[,<name-width>[,<count>]]]" msgstr "" #. type: Plain text -#: en/git-apply.txt:118 -msgid "Remove <n> leading slashes from traditional diff paths. The default is 1." +#: en/diff-options.txt:127 +msgid "" +"Generate a diffstat. By default, as much space as necessary will be used for " +"the filename part, and the rest for the graph part. Maximum width defaults " +"to terminal width, or 80 columns if not connected to a terminal, and can be " +"overridden by `<width>`. The width of the filename part can be limited by " +"giving another width `<name-width>` after a comma. The width of the graph " +"part can be limited by using `--stat-graph-width=<width>` (affects all " +"commands generating a stat graph) or by setting `diff." +"statGraphWidth=<width>` (does not affect `git format-patch`). By giving a " +"third parameter `<count>`, you can limit the output to the first `<count>` " +"lines, followed by `...` if there are more." msgstr "" #. type: Plain text -#: en/git-apply.txt:124 en/git-rebase.txt:334 +#: en/diff-options.txt:130 msgid "" -"Ensure at least <n> lines of surrounding context match before and after each " -"change. When fewer lines of surrounding context exist they all must match. " -"By default no context is ever ignored." +"These parameters can also be set individually with `--stat-width=<width>`, " +"`--stat-name-width=<name-width>` and `--stat-count=<count>`." msgstr "" #. type: Labeled list -#: en/git-apply.txt:125 +#: en/diff-options.txt:131 #, no-wrap -msgid "--unidiff-zero" +msgid "--compact-summary" msgstr "" #. type: Plain text -#: en/git-apply.txt:131 +#: en/diff-options.txt:138 msgid "" -"By default, 'git apply' expects that the patch being applied is a unified " -"diff with at least one line of context. This provides good safety measures, " -"but breaks down when applying a diff generated with `--unified=0`. To bypass " -"these checks use `--unidiff-zero`." +"Output a condensed summary of extended header information such as file " +"creations or deletions (\"new\" or \"gone\", optionally \"+l\" if it's a " +"symlink) and mode changes (\"+x\" or \"-x\" for adding or removing " +"executable bit respectively) in diffstat. The information is put between the " +"filename part and the graph part. Implies `--stat`." +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:139 en/git-apply.txt:45 +#, no-wrap +msgid "--numstat" msgstr "" #. type: Plain text -#: en/git-apply.txt:134 +#: en/diff-options.txt:145 msgid "" -"Note, for the reasons stated above usage of context-free patches is " -"discouraged." +"Similar to `--stat`, but shows number of added and deleted lines in decimal " +"notation and pathname without abbreviation, to make it more machine " +"friendly. For binary files, outputs two `-` instead of saying `0 0`." msgstr "" #. type: Labeled list -#: en/git-apply.txt:135 +#: en/diff-options.txt:146 #, no-wrap -msgid "--apply" +msgid "--shortstat" msgstr "" #. type: Plain text -#: en/git-apply.txt:141 +#: en/diff-options.txt:150 msgid "" -"If you use any of the options marked \"Turns off 'apply'\" above, 'git " -"apply' reads and outputs the requested information without actually applying " -"the patch. Give this flag after those flags to also apply the patch." +"Output only the last line of the `--stat` format containing total number of " +"modified files, as well as number of added and deleted lines." msgstr "" #. type: Labeled list -#: en/git-apply.txt:142 +#: en/diff-options.txt:151 #, no-wrap -msgid "--no-add" +msgid "--dirstat[=<param1,param2,...>]" msgstr "" #. type: Plain text -#: en/git-apply.txt:148 +#: en/diff-options.txt:158 msgid "" -"When applying a patch, ignore additions made by the patch. This can be used " -"to extract the common part between two files by first running 'diff' on them " -"and applying the result with this option, which would apply the deletion " -"part but not the addition part." +"Output the distribution of relative amount of changes for each sub-" +"directory. The behavior of `--dirstat` can be customized by passing it a " +"comma separated list of parameters. The defaults are controlled by the " +"`diff.dirstat` configuration variable (see linkgit:git-config[1]). The " +"following parameters are available:" msgstr "" #. type: Labeled list -#: en/git-apply.txt:149 +#: en/diff-options.txt:160 #, no-wrap -msgid "--allow-binary-replacement" +msgid "`changes`" +msgstr "" + +#. type: Plain text +#: en/diff-options.txt:166 +msgid "" +"Compute the dirstat numbers by counting the lines that have been removed " +"from the source, or added to the destination. This ignores the amount of " +"pure code movements within a file. In other words, rearranging lines in a " +"file is not counted as much as other changes. This is the default behavior " +"when no parameter is given." msgstr "" #. type: Labeled list -#: en/git-apply.txt:150 en/diff-options.txt:320 +#: en/diff-options.txt:166 #, no-wrap -msgid "--binary" +msgid "`lines`" msgstr "" #. type: Plain text -#: en/git-apply.txt:155 +#: en/diff-options.txt:174 msgid "" -"Historically we did not allow binary patch applied without an explicit " -"permission from the user, and this flag was the way to do so. Currently we " -"always allow binary patch application, so this is a no-op." +"Compute the dirstat numbers by doing the regular line-based diff analysis, " +"and summing the removed/added line counts. (For binary files, count 64-byte " +"chunks instead, since binary files have no natural concept of lines). This " +"is a more expensive `--dirstat` behavior than the `changes` behavior, but it " +"does count rearranged lines within a file as much as other changes. The " +"resulting output is consistent with what you get from the other `--*stat` " +"options." msgstr "" #. type: Labeled list -#: en/git-apply.txt:156 +#: en/diff-options.txt:174 #, no-wrap -msgid "--exclude=<path-pattern>" +msgid "`files`" msgstr "" #. type: Plain text -#: en/git-apply.txt:160 +#: en/diff-options.txt:179 msgid "" -"Don't apply changes to files matching the given path pattern. This can be " -"useful when importing patchsets, where you want to exclude certain files or " -"directories." +"Compute the dirstat numbers by counting the number of files changed. Each " +"changed file counts equally in the dirstat analysis. This is the " +"computationally cheapest `--dirstat` behavior, since it does not have to " +"look at the file contents at all." msgstr "" #. type: Labeled list -#: en/git-apply.txt:161 +#: en/diff-options.txt:179 #, no-wrap -msgid "--include=<path-pattern>" +msgid "`cumulative`" msgstr "" #. type: Plain text -#: en/git-apply.txt:165 +#: en/diff-options.txt:184 msgid "" -"Apply changes to files matching the given path pattern. This can be useful " -"when importing patchsets, where you want to include certain files or " -"directories." +"Count changes in a child directory for the parent directory as well. Note " +"that when using `cumulative`, the sum of the percentages reported may exceed " +"100%. The default (non-cumulative) behavior can be specified with the " +"`noncumulative` parameter." +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:184 en/git-cherry.txt:39 +#, no-wrap +msgid "<limit>" msgstr "" #. type: Plain text -#: en/git-apply.txt:171 +#: en/diff-options.txt:188 msgid "" -"When `--exclude` and `--include` patterns are used, they are examined in the " -"order they appear on the command line, and the first match determines if a " -"patch to each path is used. A patch to a path that does not match any " -"include/exclude pattern is used by default if there is no include pattern on " -"the command line, and ignored if there is any include pattern." +"An integer parameter specifies a cut-off percent (3% by default). " +"Directories contributing less than this percentage of the changes are not " +"shown in the output." msgstr "" #. type: Plain text -#: en/git-apply.txt:179 +#: en/diff-options.txt:194 msgid "" -"When applying a patch, ignore changes in whitespace in context lines if " -"necessary. Context lines will preserve their whitespace, and they will not " -"undergo whitespace fixing regardless of the value of the `--whitespace` " -"option. New lines will still be fixed, though." +"Example: The following will count changed files, while ignoring directories " +"with less than 10% of the total amount of changed files, and accumulating " +"child directory counts in the parent directories: `--dirstat=files,10," +"cumulative`." msgstr "" #. type: Labeled list -#: en/git-apply.txt:180 +#: en/diff-options.txt:195 en/git-apply.txt:52 en/git-shortlog.txt:35 +#: en/merge-options.txt:115 #, no-wrap -msgid "--whitespace=<action>" +msgid "--summary" msgstr "" #. type: Plain text -#: en/git-apply.txt:188 +#: en/diff-options.txt:198 msgid "" -"When applying a patch, detect a new or modified line that has whitespace " -"errors. What are considered whitespace errors is controlled by " -"`core.whitespace` configuration. By default, trailing whitespaces " -"(including lines that solely consist of whitespaces) and a space character " -"that is immediately followed by a tab character inside the initial indent of " -"the line are considered whitespace errors." +"Output a condensed summary of extended header information such as creations, " +"renames and mode changes." msgstr "" -#. type: Plain text -#: en/git-apply.txt:192 -msgid "" -"By default, the command outputs warning messages but applies the patch. " -"When `git-apply` is used for statistics and not applying a patch, it " -"defaults to `nowarn`." +#. type: Labeled list +#: en/diff-options.txt:200 +#, no-wrap +msgid "--patch-with-stat" msgstr "" #. type: Plain text -#: en/git-apply.txt:195 -msgid "You can use different `<action>` values to control this behavior:" +#: en/diff-options.txt:202 +msgid "Synonym for `-p --stat`." msgstr "" -#. type: Plain text -#: en/git-apply.txt:197 -msgid "`nowarn` turns off the trailing whitespace warning." +#. type: Labeled list +#: en/diff-options.txt:206 en/git-apply.txt:115 en/git-check-attr.txt:34 +#: en/git-check-ignore.txt:41 en/git-checkout-index.txt:67 +#: en/git-commit.txt:122 en/git-config.txt:206 en/git-grep.txt:206 +#: en/git-ls-files.txt:80 en/git-ls-tree.txt:55 en/git-mktree.txt:23 +#: en/git-status.txt:122 en/git-update-index.txt:168 +#, no-wrap +msgid "-z" msgstr "" #. type: Plain text -#: en/git-apply.txt:199 -msgid "" -"`warn` outputs warnings for a few such errors, but applies the patch as-is " -"(default)." +#: en/diff-options.txt:209 +#, no-wrap +msgid "\tSeparate the commits with NULs instead of with new newlines.\n" msgstr "" #. type: Plain text -#: en/git-apply.txt:203 +#: en/diff-options.txt:212 msgid "" -"`fix` outputs warnings for a few such errors, and applies the patch after " -"fixing them (`strip` is a synonym --- the tool used to consider only " -"trailing whitespace characters as errors, and the fix involved 'stripping' " -"them, but modern Gits do more)." +"Also, when `--raw` or `--numstat` has been given, do not munge pathnames and " +"use NULs as output field terminators." msgstr "" #. type: Plain text -#: en/git-apply.txt:205 +#: en/diff-options.txt:216 +#, no-wrap msgid "" -"`error` outputs warnings for a few such errors, and refuses to apply the " -"patch." +"\tWhen `--raw`, `--numstat`, `--name-only` or `--name-status` has been\n" +"\tgiven, do not munge pathnames and use NULs as output field terminators.\n" msgstr "" #. type: Plain text -#: en/git-apply.txt:206 -msgid "`error-all` is similar to `error` but shows all errors." +#: en/diff-options.txt:221 en/git-apply.txt:122 +msgid "" +"Without this option, pathnames with \"unusual\" characters are quoted as " +"explained for the configuration variable `core.quotePath` (see linkgit:git-" +"config[1])." msgstr "" #. type: Labeled list -#: en/git-apply.txt:207 +#: en/diff-options.txt:222 en/git-config.txt:215 en/git-grep.txt:188 +#: en/git-ls-tree.txt:59 en/git-name-rev.txt:51 #, no-wrap -msgid "--inaccurate-eof" -msgstr "" - -#. type: Plain text -#: en/git-apply.txt:213 -msgid "" -"Under certain circumstances, some versions of 'diff' do not correctly detect " -"a missing new-line at the end of the file. As a result, patches created by " -"such 'diff' programs do not record incomplete lines correctly. This option " -"adds support for applying such patches by working around this bug." +msgid "--name-only" msgstr "" #. type: Plain text -#: en/git-apply.txt:219 -msgid "" -"Report progress to stderr. By default, only a message about the current " -"patch being applied will be printed. This option will cause additional " -"information to be reported." +#: en/diff-options.txt:224 +msgid "Show only names of changed files." msgstr "" #. type: Labeled list -#: en/git-apply.txt:220 +#: en/diff-options.txt:225 en/git-ls-tree.txt:60 #, no-wrap -msgid "--recount" +msgid "--name-status" msgstr "" #. type: Plain text -#: en/git-apply.txt:224 +#: en/diff-options.txt:228 msgid "" -"Do not trust the line counts in the hunk headers, but infer them by " -"inspecting the patch (e.g. after editing the patch without adjusting the " -"hunk headers appropriately)." +"Show only names and status of changed files. See the description of the `--" +"diff-filter` option on what the status letters mean." msgstr "" #. type: Labeled list -#: en/git-apply.txt:225 +#: en/diff-options.txt:229 #, no-wrap -msgid "--directory=<root>" -msgstr "" - -#. type: Plain text -#: en/git-apply.txt:228 -msgid "" -"Prepend <root> to all filenames. If a \"-p\" argument was also passed, it " -"is applied before prepending the new root." +msgid "--submodule[=<format>]" msgstr "" #. type: Plain text -#: en/git-apply.txt:232 +#: en/diff-options.txt:240 msgid "" -"For example, a patch that talks about updating `a/git-gui.sh` to " -"`b/git-gui.sh` can be applied to the file in the working tree " -"`modules/git-gui/git-gui.sh` by running `git apply " -"--directory=modules/git-gui`." +"Specify how differences in submodules are shown. When specifying `--" +"submodule=short` the 'short' format is used. This format just shows the " +"names of the commits at the beginning and end of the range. When `--" +"submodule` or `--submodule=log` is specified, the 'log' format is used. " +"This format lists the commits in the range like linkgit:git-submodule[1] " +"`summary` does. When `--submodule=diff` is specified, the 'diff' format is " +"used. This format shows an inline diff of the changes in the submodule " +"contents between the commit range. Defaults to `diff.submodule` or the " +"'short' format if the config option is unset." msgstr "" #. type: Labeled list -#: en/git-apply.txt:233 +#: en/diff-options.txt:241 en/git-branch.txt:127 en/git-for-each-ref.txt:60 +#: en/git-grep.txt:221 en/git-show-branch.txt:119 en/git-tag.txt:118 #, no-wrap -msgid "--unsafe-paths" +msgid "--color[=<when>]" msgstr "" #. type: Plain text -#: en/git-apply.txt:238 +#: en/diff-options.txt:245 msgid "" -"By default, a patch that affects outside the working area (either a Git " -"controlled working tree, or the current working directory when \"git apply\" " -"is used as a replacement of GNU patch) is rejected as a mistake (or a " -"mischief)." +"Show colored diff. `--color` (i.e. without '=<when>') is the same as `--" +"color=always`. '<when>' can be one of `always`, `never`, or `auto`." msgstr "" #. type: Plain text -#: en/git-apply.txt:242 +#: en/diff-options.txt:248 +#, no-wrap msgid "" -"When `git apply` is used as a \"better GNU patch\", the user can pass the " -"`--unsafe-paths` option to override this safety check. This option has no " -"effect when `--index` or `--cached` is in use." +"\tIt can be changed by the `color.ui` and `color.diff`\n" +"\tconfiguration settings.\n" msgstr "" #. type: Labeled list -#: en/git-apply.txt:246 en/config.txt:908 +#: en/diff-options.txt:250 en/git-branch.txt:132 en/git-grep.txt:225 +#: en/git-show-branch.txt:124 #, no-wrap -msgid "apply.ignoreWhitespace" +msgid "--no-color" msgstr "" #. type: Plain text -#: en/git-apply.txt:250 -msgid "" -"Set to 'change' if you want changes in whitespace to be ignored by default. " -"Set to one of: no, none, never, false if you want changes in whitespace to " -"be significant." +#: en/diff-options.txt:252 +msgid "Turn off colored diff." msgstr "" -#. type: Labeled list -#: en/git-apply.txt:250 en/config.txt:916 +#. type: Plain text +#: en/diff-options.txt:254 #, no-wrap -msgid "apply.whitespace" +msgid "\tThis can be used to override configuration settings.\n" msgstr "" #. type: Plain text -#: en/git-apply.txt:253 -msgid "" -"When no `--whitespace` flag is given from the command line, this " -"configuration item is used as the default." +#: en/diff-options.txt:256 +#, no-wrap +msgid "\tIt is the same as `--color=never`.\n" msgstr "" -#. type: Title - -#: en/git-apply.txt:255 +#. type: Labeled list +#: en/diff-options.txt:257 #, no-wrap -msgid "Submodules" +msgid "--color-moved[=<mode>]" msgstr "" #. type: Plain text -#: en/git-apply.txt:258 -msgid "" -"If the patch contains any changes to submodules then 'git apply' treats " -"these changes as follows." +#: en/diff-options.txt:259 +msgid "Moved lines of code are colored differently." msgstr "" #. type: Plain text -#: en/git-apply.txt:264 -msgid "" -"If `--index` is specified (explicitly or implicitly), then the submodule " -"commits must match the index exactly for the patch to apply. If any of the " -"submodules are checked-out, then these check-outs are completely ignored, " -"i.e., they are not required to be up-to-date or clean and they are not " -"updated." +#: en/diff-options.txt:261 +#, no-wrap +msgid "\tIt can be changed by the `diff.colorMoved` configuration setting.\n" msgstr "" #. type: Plain text -#: en/git-apply.txt:268 +#: en/diff-options.txt:265 +#, no-wrap msgid "" -"If `--index` is not specified, then the submodule commits in the patch are " -"ignored and only the absence or presence of the corresponding subdirectory " -"is checked and (if possible) updated." -msgstr "" - -#. type: Plain text -#: en/git-apply.txt:272 -msgid "linkgit:git-am[1]." +"\tThe <mode> defaults to 'no' if the option is not given\n" +"\tand to 'zebra' if the option with no mode is given.\n" +"\tThe mode must be one of:\n" msgstr "" -#. type: Title = -#: en/git-archimport.txt:2 +#. type: Labeled list +#: en/diff-options.txt:267 en/diff-options.txt:309 #, no-wrap -msgid "git-archimport(1)" +msgid "no" msgstr "" #. type: Plain text -#: en/git-archimport.txt:7 -msgid "git-archimport - Import an Arch repository into Git" +#: en/diff-options.txt:269 +msgid "Moved lines are not highlighted." msgstr "" -#. type: Plain text -#: en/git-archimport.txt:14 +#. type: Labeled list +#: en/diff-options.txt:269 en/git-commit.txt:211 #, no-wrap -msgid "" -"'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]\n" -" <archive/branch>[:<git-branch>] ...\n" +msgid "default" msgstr "" #. type: Plain text -#: en/git-archimport.txt:22 +#: en/diff-options.txt:272 msgid "" -"Imports a project from one or more Arch repositories. It will follow " -"branches and repositories within the namespaces defined by the " -"<archive/branch> parameters supplied. If it cannot find the remote branch a " -"merge comes from it will just import it as a regular commit. If it can find " -"it, it will mark it as a merge whenever possible (see discussion below)." +"Is a synonym for `zebra`. This may change to a more sensible mode in the " +"future." msgstr "" -#. type: Plain text -#: en/git-archimport.txt:26 -msgid "" -"The script expects you to provide the key roots where it can start the " -"import from an 'initial import' or 'tag' type of Arch commit. It will follow " -"and import new branches within the provided roots." +#. type: Labeled list +#: en/diff-options.txt:272 en/diff-options.txt:341 +#, no-wrap +msgid "plain" msgstr "" #. type: Plain text -#: en/git-archimport.txt:31 +#: en/diff-options.txt:279 msgid "" -"It expects to be dealing with one project only. If it sees branches that " -"have different roots, it will refuse to run. In that case, edit your " -"<archive/branch> parameters to define clearly the scope of the import." +"Any line that is added in one location and was removed in another location " +"will be colored with 'color.diff.newMoved'. Similarly 'color.diff.oldMoved' " +"will be used for removed lines that are added somewhere else in the diff. " +"This mode picks up any moved line, but it is not very useful in a review to " +"determine if a block of code was moved without permutation." msgstr "" -#. type: Plain text -#: en/git-archimport.txt:36 -msgid "" -"'git archimport' uses `tla` extensively in the background to access the Arch " -"repository. Make sure you have a recent version of `tla` available in the " -"path. `tla` must know about the repositories you pass to 'git archimport'." +#. type: Labeled list +#: en/diff-options.txt:279 +#, no-wrap +msgid "blocks" msgstr "" #. type: Plain text -#: en/git-archimport.txt:41 +#: en/diff-options.txt:284 msgid "" -"For the initial import, 'git archimport' expects to find itself in an empty " -"directory. To follow the development of a project that uses Arch, rerun 'git " -"archimport' with the same parameters as the initial import to perform " -"incremental imports." +"Blocks of moved text of at least 20 alphanumeric characters are detected " +"greedily. The detected blocks are painted using either the 'color.diff.{old," +"new}Moved' color. Adjacent blocks cannot be told apart." msgstr "" -#. type: Plain text -#: en/git-archimport.txt:48 -msgid "" -"While 'git archimport' will try to create sensible branch names for the " -"archives that it imports, it is also possible to specify Git branch names " -"manually. To do so, write a Git branch name after each <archive/branch> " -"parameter, separated by a colon. This way, you can shorten the Arch branch " -"names and convert Arch jargon to Git jargon, for example mapping a " -"\"PROJECT{litdd}devo{litdd}VERSION\" branch to \"master\"." +#. type: Labeled list +#: en/diff-options.txt:284 +#, no-wrap +msgid "zebra" msgstr "" #. type: Plain text -#: en/git-archimport.txt:53 +#: en/diff-options.txt:289 msgid "" -"Associating multiple Arch branches to one Git branch is possible; the result " -"will make the most sense only if no commits are made to the first branch, " -"after the second branch is created. Still, this is useful to convert Arch " -"repositories that had been rotated periodically." +"Blocks of moved text are detected as in 'blocks' mode. The blocks are " +"painted using either the 'color.diff.{old,new}Moved' color or 'color.diff." +"{old,new}MovedAlternative'. The change between the two colors indicates that " +"a new block was detected." msgstr "" -#. type: Title - -#: en/git-archimport.txt:56 +#. type: Labeled list +#: en/diff-options.txt:289 #, no-wrap -msgid "MERGES" +msgid "dimmed-zebra" msgstr "" #. type: Plain text -#: en/git-archimport.txt:62 +#: en/diff-options.txt:294 msgid "" -"Patch merge data from Arch is used to mark merges in Git as well. Git does " -"not care much about tracking patches, and only considers a merge when a " -"branch incorporates all the commits since the point they forked. The end " -"result is that Git will have a good idea of how far branches have " -"diverged. So the import process does lose some patch-trading metadata." +"Similar to 'zebra', but additional dimming of uninteresting parts of moved " +"code is performed. The bordering lines of two adjacent blocks are considered " +"interesting, the rest is uninteresting. `dimmed_zebra` is a deprecated " +"synonym." +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:296 +#, no-wrap +msgid "--no-color-moved" msgstr "" #. type: Plain text -#: en/git-archimport.txt:66 +#: en/diff-options.txt:299 msgid "" -"Fortunately, when you try and merge branches imported from Arch, Git will " -"find a good merge base, and it has a good chance of identifying patches that " -"have been traded out-of-sequence between the branches." +"Turn off move detection. This can be used to override configuration " +"settings. It is the same as `--color-moved=no`." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:70 en/git-cvsimport.txt:184 en/git-cvsserver.txt:48 en/git-grep.txt:141 en/git-ls-remote.txt:24 en/blame-options.txt:113 +#: en/diff-options.txt:300 #, no-wrap -msgid "-h" +msgid "--color-moved-ws=<modes>" msgstr "" #. type: Plain text -#: en/git-archimport.txt:72 -msgid "Display usage." +#: en/diff-options.txt:303 +msgid "" +"This configures how whitespace is ignored when performing the move detection " +"for `--color-moved`." msgstr "" #. type: Plain text -#: en/git-archimport.txt:75 -msgid "Verbose output." -msgstr "" - -#. type: Labeled list -#: en/git-archimport.txt:76 +#: en/diff-options.txt:305 #, no-wrap -msgid "-T" +msgid "\tIt can be set by the `diff.colorMovedWS` configuration setting.\n" msgstr "" #. type: Plain text -#: en/git-archimport.txt:79 -msgid "" -"Many tags. Will create a tag for every commit, reflecting the commit name in " -"the Arch repository." +#: en/diff-options.txt:307 +#, no-wrap +msgid "\tThese modes can be given as a comma separated list:\n" msgstr "" #. type: Plain text -#: en/git-archimport.txt:84 -msgid "" -"Use the fast patchset import strategy. This can be significantly faster for " -"large trees, but cannot handle directory renames or permissions changes. " -"The default strategy is slow and safe." +#: en/diff-options.txt:311 +msgid "Do not ignore whitespace when performing move detection." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:85 en/git-commit.txt:260 en/git-ls-files.txt:47 en/git-merge-index.txt:29 en/git-push.txt:159 +#: en/diff-options.txt:311 en/merge-strategies.txt:61 #, no-wrap -msgid "-o" +msgid "ignore-space-at-eol" msgstr "" #. type: Plain text -#: en/git-archimport.txt:92 -msgid "" -"Use this for compatibility with old-style branch names used by earlier " -"versions of 'git archimport'. Old-style branch names were " -"category{litdd}branch, whereas new-style branch names are " -"archive,category{litdd}branch{litdd}version. In both cases, names given on " -"the command-line will override the automatically-generated ones." +#: en/diff-options.txt:313 en/diff-options.txt:645 +msgid "Ignore changes in whitespace at EOL." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:93 +#: en/diff-options.txt:313 en/merge-strategies.txt:59 #, no-wrap -msgid "-D <depth>" +msgid "ignore-space-change" msgstr "" #. type: Plain text -#: en/git-archimport.txt:97 +#: en/diff-options.txt:317 en/diff-options.txt:651 msgid "" -"Follow merge ancestry and attempt to import trees that have been merged " -"from. Specify a depth greater than 1 if patch logs have been pruned." +"Ignore changes in amount of whitespace. This ignores whitespace at line " +"end, and considers all other sequences of one or more whitespace characters " +"to be equivalent." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:98 en/git-branch.txt:140 en/git-checkout-index.txt:38 en/git-commit.txt:60 en/git-cvsexportcommit.txt:45 en/git-cvsimport.txt:135 en/git-grep.txt:105 en/git-help.txt:41 en/git-http-fetch.txt:31 en/git-merge-base.txt:71 en/git-merge-index.txt:26 en/git-repack.txt:31 en/git-show-branch.txt:47 en/git-tag.txt:59 en/diff-options.txt:518 en/fetch-options.txt:4 +#: en/diff-options.txt:317 en/merge-strategies.txt:60 #, no-wrap -msgid "-a" +msgid "ignore-all-space" msgstr "" #. type: Plain text -#: en/git-archimport.txt:101 +#: en/diff-options.txt:320 msgid "" -"Attempt to auto-register archives at http://mirrors.sourcecontrol.net This " -"is particularly useful with the -D option." +"Ignore whitespace when comparing lines. This ignores differences even if one " +"line has whitespace where the other line has none." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:102 +#: en/diff-options.txt:320 #, no-wrap -msgid "-t <tmpdir>" +msgid "allow-indentation-change" msgstr "" #. type: Plain text -#: en/git-archimport.txt:104 -msgid "Override the default tempdir." +#: en/diff-options.txt:325 +msgid "" +"Initially ignore any whitespace in the move detection, then group the moved " +"code blocks only into a block if the change in whitespace is the same per " +"line. This is incompatible with the other modes." msgstr "" #. type: Labeled list -#: en/git-archimport.txt:106 +#: en/diff-options.txt:327 #, no-wrap -msgid "<archive/branch>" +msgid "--no-color-moved-ws" msgstr "" #. type: Plain text -#: en/git-archimport.txt:108 -msgid "Archive/branch identifier in a format that `tla log` understands." +#: en/diff-options.txt:331 +msgid "" +"Do not ignore whitespace when performing move detection. This can be used to " +"override configuration settings. It is the same as `--color-moved-ws=no`." msgstr "" -#. type: Title = -#: en/git-archive.txt:2 +#. type: Labeled list +#: en/diff-options.txt:332 #, no-wrap -msgid "git-archive(1)" -msgstr "" - -#. type: Plain text -#: en/git-archive.txt:7 -msgid "git-archive - Create an archive of files from a named tree" +msgid "--word-diff[=<mode>]" msgstr "" #. type: Plain text -#: en/git-archive.txt:16 -#, no-wrap +#: en/diff-options.txt:337 msgid "" -"'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]\n" -"\t [-o <file> | --output=<file>] [--worktree-attributes]\n" -"\t [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>\n" -"\t [<path>...]\n" +"Show a word diff, using the <mode> to delimit changed words. By default, " +"words are delimited by whitespace; see `--word-diff-regex` below. The " +"<mode> defaults to 'plain', and must be one of:" msgstr "" #. type: Plain text -#: en/git-archive.txt:23 -msgid "" -"Creates an archive of the specified format containing the tree structure for " -"the named tree, and writes it out to the standard output. If <prefix> is " -"specified it is prepended to the filenames in the archive." +#: en/diff-options.txt:341 +msgid "Highlight changed words using only colors. Implies `--color`." msgstr "" #. type: Plain text -#: en/git-archive.txt:32 +#: en/diff-options.txt:345 msgid "" -"'git archive' behaves differently when given a tree ID versus when given a " -"commit ID or tag ID. In the first case the current time is used as the " -"modification time of each file in the archive. In the latter case the " -"commit time as recorded in the referenced commit object is used instead. " -"Additionally the commit ID is stored in a global extended pax header if the " -"tar format is used; it can be extracted using 'git get-tar-commit-id'. In " -"ZIP files it is stored as a file comment." +"Show words as `[-removed-]` and `{+added+}`. Makes no attempts to escape " +"the delimiters if they appear in the input, so the output may be ambiguous." msgstr "" #. type: Labeled list -#: en/git-archive.txt:36 +#: en/diff-options.txt:345 #, no-wrap -msgid "--format=<fmt>" +msgid "porcelain" msgstr "" #. type: Plain text -#: en/git-archive.txt:42 +#: en/diff-options.txt:352 msgid "" -"Format of the resulting archive: 'tar' or 'zip'. If this option is not " -"given, and the output file is specified, the format is inferred from the " -"filename if possible (e.g. writing to \"foo.zip\" makes the output to be in " -"the zip format). Otherwise the output format is `tar`." -msgstr "" - -#. type: Labeled list -#: en/git-archive.txt:43 en/git-branch.txt:87 en/git-checkout.txt:174 en/git-clone.txt:44 en/git-config.txt:159 en/git-grep.txt:176 en/git-instaweb.txt:23 en/git-ls-tree.txt:51 en/git-repack.txt:61 en/git-svn.txt:228 en/git-var.txt:20 en/blame-options.txt:22 -#, no-wrap -msgid "-l" +"Use a special line-based format intended for script consumption. Added/" +"removed/unchanged runs are printed in the usual unified diff format, " +"starting with a `+`/`-`/` ` character at the beginning of the line and " +"extending to the end of the line. Newlines in the input are represented by " +"a tilde `~` on a line of its own." msgstr "" #. type: Labeled list -#: en/git-archive.txt:44 en/git-branch.txt:144 en/git-config.txt:160 en/git-show-branch.txt:80 +#: en/diff-options.txt:352 en/git-daemon.txt:131 en/git-submodule.txt:162 #, no-wrap -msgid "--list" +msgid "none" msgstr "" #. type: Plain text -#: en/git-archive.txt:46 -msgid "Show all available formats." +#: en/diff-options.txt:354 +msgid "Disable word diff again." msgstr "" #. type: Plain text -#: en/git-archive.txt:50 -msgid "Report progress to stderr." +#: en/diff-options.txt:358 +msgid "" +"Note that despite the name of the first mode, color is used to highlight the " +"changed parts in all modes if enabled." msgstr "" #. type: Labeled list -#: en/git-archive.txt:51 en/git-read-tree.txt:84 en/git-write-tree.txt:35 +#: en/diff-options.txt:359 #, no-wrap -msgid "--prefix=<prefix>/" +msgid "--word-diff-regex=<regex>" msgstr "" #. type: Plain text -#: en/git-archive.txt:53 -msgid "Prepend <prefix>/ to each filename in the archive." +#: en/diff-options.txt:363 +msgid "" +"Use <regex> to decide what a word is, instead of considering runs of non-" +"whitespace to be a word. Also implies `--word-diff` unless it was already " +"enabled." msgstr "" -#. type: Labeled list -#: en/git-archive.txt:54 -#, no-wrap -msgid "-o <file>" +#. type: Plain text +#: en/diff-options.txt:371 +msgid "" +"Every non-overlapping match of the <regex> is considered a word. Anything " +"between these matches is considered whitespace and ignored(!) for the " +"purposes of finding differences. You may want to append `|[^[:space:]]` to " +"your regular expression to make sure that it matches all non-whitespace " +"characters. A match that contains a newline is silently truncated(!) at the " +"newline." msgstr "" -#. type: Labeled list -#: en/git-archive.txt:55 -#, no-wrap -msgid "--output=<file>" +#. type: Plain text +#: en/diff-options.txt:374 +msgid "" +"For example, `--word-diff-regex=.` will treat each character as a word and, " +"correspondingly, show differences character by character." msgstr "" #. type: Plain text -#: en/git-archive.txt:57 -msgid "Write the archive to <file> instead of stdout." +#: en/diff-options.txt:379 +msgid "" +"The regex can also be set via a diff driver or configuration option, see " +"linkgit:gitattributes[5] or linkgit:git-config[1]. Giving it explicitly " +"overrides any diff driver or configuration setting. Diff drivers override " +"configuration settings." msgstr "" #. type: Labeled list -#: en/git-archive.txt:58 +#: en/diff-options.txt:380 #, no-wrap -msgid "--worktree-attributes" +msgid "--color-words[=<regex>]" msgstr "" #. type: Plain text -#: en/git-archive.txt:61 +#: en/diff-options.txt:383 msgid "" -"Look for attributes in .gitattributes files in the working tree as well (see " -"<<ATTRIBUTES>>)." +"Equivalent to `--word-diff=color` plus (if a regex was specified) `--word-" +"diff-regex=<regex>`." msgstr "" #. type: Labeled list -#: en/git-archive.txt:62 +#: en/diff-options.txt:385 en/git-status.txt:139 #, no-wrap -msgid "<extra>" +msgid "--no-renames" msgstr "" #. type: Plain text -#: en/git-archive.txt:65 +#: en/diff-options.txt:388 msgid "" -"This can be any options that the archiver backend understands. See next " -"section." +"Turn off rename detection, even when the configuration file gives the " +"default to do so." msgstr "" #. type: Labeled list -#: en/git-archive.txt:66 +#: en/diff-options.txt:390 en/git-apply.txt:58 #, no-wrap -msgid "--remote=<repo>" +msgid "--check" msgstr "" #. type: Plain text -#: en/git-archive.txt:72 +#: en/diff-options.txt:399 msgid "" -"Instead of making a tar archive from the local repository, retrieve a tar " -"archive from a remote repository. Note that the remote repository may place " -"restrictions on which sha1 expressions may be allowed in `<tree-ish>`. See " -"linkgit:git-upload-archive[1] for details." +"Warn if changes introduce conflict markers or whitespace errors. What are " +"considered whitespace errors is controlled by `core.whitespace` " +"configuration. By default, trailing whitespaces (including lines that " +"consist solely of whitespaces) and a space character that is immediately " +"followed by a tab character inside the initial indent of the line are " +"considered whitespace errors. Exits with non-zero status if problems are " +"found. Not compatible with --exit-code." msgstr "" #. type: Labeled list -#: en/git-archive.txt:73 +#: en/diff-options.txt:400 #, no-wrap -msgid "--exec=<git-upload-archive>" +msgid "--ws-error-highlight=<kind>" msgstr "" #. type: Plain text -#: en/git-archive.txt:76 +#: en/diff-options.txt:409 msgid "" -"Used with --remote to specify the path to the 'git-upload-archive' on the " -"remote side." -msgstr "" - -#. type: Plain text -#: en/git-archive.txt:79 -msgid "The tree or commit to produce an archive for." +"Highlight whitespace errors in the `context`, `old` or `new` lines of the " +"diff. Multiple values are separated by comma, `none` resets previous " +"values, `default` reset the list to `new` and `all` is a shorthand for `old," +"new,context`. When this option is not given, and the configuration variable " +"`diff.wsErrorHighlight` is not set, only whitespace errors in `new` lines " +"are highlighted. The whitespace errors are colored with `color.diff." +"whitespace`." msgstr "" #. type: Labeled list -#: en/git-archive.txt:80 +#: en/diff-options.txt:412 #, no-wrap -msgid "<path>" +msgid "--full-index" msgstr "" #. type: Plain text -#: en/git-archive.txt:84 +#: en/diff-options.txt:416 msgid "" -"Without an optional path parameter, all files and subdirectories of the " -"current working directory are included in the archive. If one or more paths " -"are specified, only these are included." -msgstr "" - -#. type: Title - -#: en/git-archive.txt:86 -#, no-wrap -msgid "BACKEND EXTRA OPTIONS" -msgstr "" - -#. type: Title ~ -#: en/git-archive.txt:89 -#, no-wrap -msgid "zip" +"Instead of the first handful of characters, show the full pre- and post-" +"image blob object names on the \"index\" line when generating patch format " +"output." msgstr "" #. type: Labeled list -#: en/git-archive.txt:90 en/git-diff-files.txt:28 +#: en/diff-options.txt:417 en/git-apply.txt:160 #, no-wrap -msgid "-0" +msgid "--binary" msgstr "" #. type: Plain text -#: en/git-archive.txt:92 -msgid "Store the files instead of deflating them." +#: en/diff-options.txt:420 +msgid "" +"In addition to `--full-index`, output a binary diff that can be applied with " +"`git-apply`." msgstr "" #. type: Labeled list -#: en/git-archive.txt:92 +#: en/diff-options.txt:421 en/git-ls-files.txt:152 en/git-ls-tree.txt:63 +#: en/git-show-ref.txt:65 #, no-wrap -msgid "-9" +msgid "--abbrev[=<n>]" msgstr "" #. type: Plain text -#: en/git-archive.txt:95 +#: en/diff-options.txt:428 msgid "" -"Highest and slowest compression level. You can specify any number from 1 to " -"9 to adjust compression speed and ratio." +"Instead of showing the full 40-byte hexadecimal object name in diff-raw " +"format output and diff-tree header lines, show only a partial prefix. This " +"is independent of the `--full-index` option above, which controls the diff-" +"patch output format. Non default number of digits can be specified with `--" +"abbrev=<n>`." msgstr "" -#. type: Title - -#: en/git-archive.txt:98 en/git-cvsexportcommit.txt:86 en/git-fmt-merge-msg.txt:53 en/git-format-patch.txt:287 en/git-grep.txt:42 en/git-imap-send.txt:52 en/git-instaweb.txt:69 en/git-log.txt:170 en/git-merge.txt:344 en/git-notes.txt:311 en/git-rebase.txt:204 en/git-send-email.txt:402 en/git-status.txt:331 en/git-svn.txt:1045 en/git-tag.txt:182 +#. type: Labeled list +#: en/diff-options.txt:429 #, no-wrap -msgid "CONFIGURATION" +msgid "-B[<n>][/<m>]" msgstr "" #. type: Labeled list -#: en/git-archive.txt:100 en/config.txt:3083 +#: en/diff-options.txt:430 #, no-wrap -msgid "tar.umask" +msgid "--break-rewrites[=[<n>][/<m>]]" msgstr "" #. type: Plain text -#: en/git-archive.txt:107 +#: en/diff-options.txt:433 msgid "" -"This variable can be used to restrict the permission bits of tar archive " -"entries. The default is 0002, which turns off the world write bit. The " -"special value \"user\" indicates that the archiving user's umask will be " -"used instead. See umask(2) for details. If `--remote` is used then only " -"the configuration of the remote repository takes effect." -msgstr "" - -#. type: Labeled list -#: en/git-archive.txt:108 -#, no-wrap -msgid "tar.<format>.command" +"Break complete rewrite changes into pairs of delete and create. This serves " +"two purposes:" msgstr "" #. type: Plain text -#: en/git-archive.txt:117 +#: en/diff-options.txt:443 msgid "" -"This variable specifies a shell command through which the tar output " -"generated by `git archive` should be piped. The command is executed using " -"the shell with the generated tar file on its standard input, and should " -"produce the final output on its standard output. Any compression-level " -"options will be passed to the command (e.g., \"-9\"). An output file with " -"the same extension as `<format>` will be use this format if no other format " -"is given." +"It affects the way a change that amounts to a total rewrite of a file not as " +"a series of deletion and insertion mixed together with a very few lines that " +"happen to match textually as the context, but as a single deletion of " +"everything old followed by a single insertion of everything new, and the " +"number `m` controls this aspect of the -B option (defaults to 60%). `-B/70%` " +"specifies that less than 30% of the original should remain in the result for " +"Git to consider it a total rewrite (i.e. otherwise the resulting patch will " +"be a series of deletion and insertion mixed together with context lines)." msgstr "" #. type: Plain text -#: en/git-archive.txt:120 +#: en/diff-options.txt:451 msgid "" -"The \"tar.gz\" and \"tgz\" formats are defined automatically and default to " -"`gzip -cn`. You may override them with custom commands." +"When used with -M, a totally-rewritten file is also considered as the source " +"of a rename (usually -M only considers a file that disappeared as the source " +"of a rename), and the number `n` controls this aspect of the -B option " +"(defaults to 50%). `-B20%` specifies that a change with addition and " +"deletion compared to 20% or more of the file's size are eligible for being " +"picked up as a possible source of a rename to another file." msgstr "" #. type: Labeled list -#: en/git-archive.txt:121 +#: en/diff-options.txt:452 #, no-wrap -msgid "tar.<format>.remote" +msgid "-M[<n>]" msgstr "" -#. type: Plain text -#: en/git-archive.txt:126 -msgid "" -"If true, enable `<format>` for use by remote clients via " -"linkgit:git-upload-archive[1]. Defaults to false for user-defined formats, " -"but true for the \"tar.gz\" and \"tgz\" formats." +#. type: Labeled list +#: en/diff-options.txt:453 en/git-status.txt:143 +#, no-wrap +msgid "--find-renames[=<n>]" msgstr "" -#. type: Title - -#: en/git-archive.txt:129 +#. type: Plain text +#: en/diff-options.txt:456 #, no-wrap -msgid "ATTRIBUTES" +msgid "\tDetect renames.\n" msgstr "" -#. type: Labeled list -#: en/git-archive.txt:131 +#. type: Plain text +#: en/diff-options.txt:461 #, no-wrap -msgid "export-ignore" +msgid "" +"\tIf generating diffs, detect and report renames for each commit.\n" +"\tFor following files across renames while traversing history, see\n" +"\t`--follow`.\n" msgstr "" #. type: Plain text -#: en/git-archive.txt:134 +#: en/diff-options.txt:471 +#, no-wrap msgid "" -"Files and directories with the attribute export-ignore won't be added to " -"archive files. See linkgit:gitattributes[5] for details." +"\tIf `n` is specified, it is a threshold on the similarity\n" +"\tindex (i.e. amount of addition/deletions compared to the\n" +"\tfile's size). For example, `-M90%` means Git should consider a\n" +"\tdelete/add pair to be a rename if more than 90% of the file\n" +"\thasn't changed. Without a `%` sign, the number is to be read as\n" +"\ta fraction, with a decimal point before it. I.e., `-M5` becomes\n" +"\t0.5, and is thus the same as `-M50%`. Similarly, `-M05` is\n" +"\tthe same as `-M5%`. To limit detection to exact renames, use\n" +"\t`-M100%`. The default similarity index is 50%.\n" msgstr "" #. type: Labeled list -#: en/git-archive.txt:135 +#: en/diff-options.txt:472 #, no-wrap -msgid "export-subst" +msgid "-C[<n>]" msgstr "" -#. type: Plain text -#: en/git-archive.txt:139 -msgid "" -"If the attribute export-subst is set for a file then Git will expand several " -"placeholders when adding this file to an archive. See " -"linkgit:gitattributes[5] for details." +#. type: Labeled list +#: en/diff-options.txt:473 +#, no-wrap +msgid "--find-copies[=<n>]" msgstr "" #. type: Plain text -#: en/git-archive.txt:147 +#: en/diff-options.txt:476 msgid "" -"Note that attributes are by default taken from the `.gitattributes` files in " -"the tree that is being archived. If you want to tweak the way the output is " -"generated after the fact (e.g. you committed without adding an appropriate " -"export-ignore in its `.gitattributes`), adjust the checked out " -"`.gitattributes` file as necessary and use `--worktree-attributes` option. " -"Alternatively you can keep necessary attributes that should apply while " -"archiving any tree in your `$GIT_DIR/info/attributes` file." +"Detect copies as well as renames. See also `--find-copies-harder`. If `n` " +"is specified, it has the same meaning as for `-M<n>`." msgstr "" #. type: Labeled list -#: en/git-archive.txt:150 +#: en/diff-options.txt:477 en/git-svn.txt:626 #, no-wrap -msgid "`git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)`" +msgid "--find-copies-harder" msgstr "" #. type: Plain text -#: en/git-archive.txt:155 +#: en/diff-options.txt:485 msgid "" -"Create a tar archive that contains the contents of the latest commit on the " -"current branch, and extract it in the `/var/tmp/junk` directory." +"For performance reasons, by default, `-C` option finds copies only if the " +"original file of the copy was modified in the same changeset. This flag " +"makes the command inspect unmodified files as candidates for the source of " +"copy. This is a very expensive operation for large projects, so use it with " +"caution. Giving more than one `-C` option has the same effect." msgstr "" #. type: Labeled list -#: en/git-archive.txt:156 +#: en/diff-options.txt:486 en/git-branch.txt:91 en/git-http-push.txt:45 +#, no-wrap +msgid "-D" +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:487 #, no-wrap +msgid "--irreversible-delete" +msgstr "" + +#. type: Plain text +#: en/diff-options.txt:495 msgid "" -"`git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip " -">git-1.4.0.tar.gz`" +"Omit the preimage for deletes, i.e. print only the header but not the diff " +"between the preimage and `/dev/null`. The resulting patch is not meant to be " +"applied with `patch` or `git apply`; this is solely for people who want to " +"just concentrate on reviewing the text after the change. In addition, the " +"output obviously lacks enough information to apply such a patch in reverse, " +"even manually, hence the name of the option." msgstr "" #. type: Plain text -#: en/git-archive.txt:159 -msgid "Create a compressed tarball for v1.4.0 release." +#: en/diff-options.txt:498 +msgid "" +"When used together with `-B`, omit also the preimage in the deletion part of " +"a delete/create pair." msgstr "" #. type: Labeled list -#: en/git-archive.txt:160 +#: en/diff-options.txt:499 en/git-svn.txt:625 #, no-wrap -msgid "`git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz`" +msgid "-l<num>" msgstr "" #. type: Plain text -#: en/git-archive.txt:163 -msgid "Same as above, but using the builtin tar.gz handling." +#: en/diff-options.txt:505 +msgid "" +"The `-M` and `-C` options require O(n^2) processing time where n is the " +"number of potential rename/copy targets. This option prevents rename/copy " +"detection from running if the number of rename/copy targets exceeds the " +"specified number." msgstr "" #. type: Labeled list -#: en/git-archive.txt:164 +#: en/diff-options.txt:507 #, no-wrap -msgid "`git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0`" +msgid "--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "" #. type: Plain text -#: en/git-archive.txt:167 -msgid "Same as above, but the format is inferred from the output file." +#: en/diff-options.txt:518 +msgid "" +"Select only files that are Added (`A`), Copied (`C`), Deleted (`D`), " +"Modified (`M`), Renamed (`R`), have their type (i.e. regular file, symlink, " +"submodule, ...) changed (`T`), are Unmerged (`U`), are Unknown (`X`), or " +"have had their pairing Broken (`B`). Any combination of the filter " +"characters (including none) can be used. When `*` (All-or-none) is added to " +"the combination, all paths are selected if there is any file that matches " +"other criteria in the comparison; if there is no file that matches other " +"criteria, nothing is selected." msgstr "" -#. type: Labeled list -#: en/git-archive.txt:168 -#, no-wrap +#. type: Plain text +#: en/diff-options.txt:521 msgid "" -"`git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip " -">git-1.4.0.tar.gz`" +"Also, these upper-case letters can be downcased to exclude. E.g. `--diff-" +"filter=ad` excludes added and deleted paths." msgstr "" #. type: Plain text -#: en/git-archive.txt:172 +#: en/diff-options.txt:527 msgid "" -"Create a compressed tarball for v1.4.0 release, but without a global " -"extended pax header." +"Note that not all diffs can feature all types. For instance, diffs from the " +"index to the working tree can never have Added entries (because the set of " +"paths included in the diff is limited by what is in the index). Similarly, " +"copied and renamed entries cannot appear if detection for those types is " +"disabled." msgstr "" #. type: Labeled list -#: en/git-archive.txt:173 +#: en/diff-options.txt:528 #, no-wrap -msgid "" -"`git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > " -"git-1.4.0-docs.zip`" +msgid "-S<string>" msgstr "" #. type: Plain text -#: en/git-archive.txt:177 +#: en/diff-options.txt:532 msgid "" -"Put everything in the current head's Documentation/ directory into " -"'git-1.4.0-docs.zip', with the prefix 'git-docs/'." +"Look for differences that change the number of occurrences of the specified " +"string (i.e. addition/deletion) in a file. Intended for the scripter's use." msgstr "" -#. type: Labeled list -#: en/git-archive.txt:178 -#, no-wrap -msgid "`git archive -o latest.zip HEAD`" +#. type: Plain text +#: en/diff-options.txt:538 +msgid "" +"It is useful when you're looking for an exact block of code (like a struct), " +"and want to know the history of that block since it first came into being: " +"use the feature iteratively to feed the interesting block in the preimage " +"back into `-S`, and keep going until you get the very first version of the " +"block." msgstr "" #. type: Plain text -#: en/git-archive.txt:183 -msgid "" -"Create a Zip archive that contains the contents of the latest commit on the " -"current branch. Note that the output format is inferred by the extension of " -"the output file." +#: en/diff-options.txt:540 +msgid "Binary files are searched as well." msgstr "" #. type: Labeled list -#: en/git-archive.txt:184 +#: en/diff-options.txt:541 #, no-wrap -msgid "`git config tar.tar.xz.command \"xz -c\"`" +msgid "-G<regex>" msgstr "" #. type: Plain text -#: en/git-archive.txt:189 +#: en/diff-options.txt:544 msgid "" -"Configure a \"tar.xz\" format for making LZMA-compressed tarfiles. You can " -"use it specifying `--format=tar.xz`, or by creating an output file like `-o " -"foo.tar.xz`." +"Look for differences whose patch text contains added/removed lines that " +"match <regex>." msgstr "" #. type: Plain text -#: en/git-archive.txt:194 -msgid "linkgit:gitattributes[5]" +#: en/diff-options.txt:548 +msgid "" +"To illustrate the difference between `-S<regex> --pickaxe-regex` and `-" +"G<regex>`, consider a commit with the following diff in the same file:" msgstr "" -#. type: Title = -#: en/git-bisect.txt:2 +#. type: delimited block - +#: en/diff-options.txt:553 #, no-wrap -msgid "git-bisect(1)" +msgid "" +"+ return !regexec(regexp, two->ptr, 1, ®match, 0);\n" +"...\n" +"- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);\n" msgstr "" #. type: Plain text -#: en/git-bisect.txt:7 -msgid "git-bisect - Use binary search to find the commit that introduced a bug" +#: en/diff-options.txt:558 +msgid "" +"While `git log -G\"regexec\\(regexp\"` will show this commit, `git log -S" +"\"regexec\\(regexp\" --pickaxe-regex` will not (because the number of " +"occurrences of that string did not change)." msgstr "" #. type: Plain text -#: en/git-bisect.txt:13 -#, no-wrap -msgid "'git bisect' <subcommand> <options>\n" +#: en/diff-options.txt:561 +msgid "" +"Unless `--text` is supplied patches of binary files without a textconv " +"filter will be ignored." msgstr "" #. type: Plain text -#: en/git-bisect.txt:18 en/git-reflog.txt:18 -msgid "" -"The command takes various subcommands, and different options depending on " -"the subcommand:" +#: en/diff-options.txt:564 +msgid "See the 'pickaxe' entry in linkgit:gitdiffcore[7] for more information." msgstr "" -#. type: Plain text -#: en/git-bisect.txt:31 +#. type: Labeled list +#: en/diff-options.txt:565 #, no-wrap -msgid "" -" git bisect start [--term-{old,good}=<term> --term-{new,bad}=<term>]\n" -"\t\t [--no-checkout] [<bad> [<good>...]] [--] [<paths>...]\n" -" git bisect (bad|new|<term-new>) [<rev>]\n" -" git bisect (good|old|<term-old>) [<rev>...]\n" -" git bisect terms [--term-good | --term-bad]\n" -" git bisect skip [(<rev>|<range>)...]\n" -" git bisect reset [<commit>]\n" -" git bisect visualize\n" -" git bisect replay <logfile>\n" -" git bisect log\n" -" git bisect run <cmd>...\n" -" git bisect help\n" +msgid "--find-object=<object-id>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:40 +#: en/diff-options.txt:570 msgid "" -"This command uses a binary search algorithm to find which commit in your " -"project's history introduced a bug. You use it by first telling it a \"bad\" " -"commit that is known to contain the bug, and a \"good\" commit that is known " -"to be before the bug was introduced. Then `git bisect` picks a commit " -"between those two endpoints and asks you whether the selected commit is " -"\"good\" or \"bad\". It continues narrowing down the range until it finds " -"the exact commit that introduced the change." +"Look for differences that change the number of occurrences of the specified " +"object. Similar to `-S`, just the argument is different in that it doesn't " +"search for a specific string but for a specific object id." msgstr "" #. type: Plain text -#: en/git-bisect.txt:47 +#: en/diff-options.txt:573 msgid "" -"In fact, `git bisect` can be used to find the commit that changed *any* " -"property of your project; e.g., the commit that fixed a bug, or the commit " -"that caused a benchmark's performance to improve. To support this more " -"general usage, the terms \"old\" and \"new\" can be used in place of " -"\"good\" and \"bad\", or you can choose your own terms. See section " -"\"Alternate terms\" below for more information." +"The object can be a blob or a submodule commit. It implies the `-t` option " +"in `git-log` to also find trees." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:49 +#. type: Labeled list +#: en/diff-options.txt:574 #, no-wrap -msgid "Basic bisect commands: start, bad, good" +msgid "--pickaxe-all" msgstr "" #. type: Plain text -#: en/git-bisect.txt:54 +#: en/diff-options.txt:578 msgid "" -"As an example, suppose you are trying to find the commit that broke a " -"feature that was known to work in version `v2.6.13-rc2` of your project. You " -"start a bisect session as follows:" +"When `-S` or `-G` finds a change, show all the changes in that changeset, " +"not just the files that contain the change in <string>." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:59 +#. type: Labeled list +#: en/diff-options.txt:579 #, no-wrap -msgid "" -"$ git bisect start\n" -"$ git bisect bad # Current version is bad\n" -"$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 is known to be good\n" +msgid "--pickaxe-regex" msgstr "" #. type: Plain text -#: en/git-bisect.txt:64 +#: en/diff-options.txt:582 msgid "" -"Once you have specified at least one bad and one good commit, `git bisect` " -"selects a commit in the middle of that range of history, checks it out, and " -"outputs something similar to the following:" +"Treat the <string> given to `-S` as an extended POSIX regular expression to " +"match." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:67 +#. type: Labeled list +#: en/diff-options.txt:585 en/git-mergetool.txt:93 #, no-wrap -msgid "Bisecting: 675 revisions left to test after this (roughly 10 steps)\n" +msgid "-O<orderfile>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:71 +#: en/diff-options.txt:590 msgid "" -"You should now compile the checked-out version and test it. If that version " -"works correctly, type" +"Control the order in which files appear in the output. This overrides the " +"`diff.orderFile` configuration variable (see linkgit:git-config[1]). To " +"cancel `diff.orderFile`, use `-O/dev/null`." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:74 -#, no-wrap -msgid "$ git bisect good\n" +#. type: Plain text +#: en/diff-options.txt:602 +msgid "" +"The output order is determined by the order of glob patterns in " +"<orderfile>. All files with pathnames that match the first pattern are " +"output first, all files with pathnames that match the second pattern (but " +"not the first) are output next, and so on. All files with pathnames that do " +"not match any pattern are output last, as if there was an implicit match-all " +"pattern at the end of the file. If multiple pathnames have the same rank " +"(they match the same pattern but no earlier patterns), their output order " +"relative to each other is the normal order." msgstr "" #. type: Plain text -#: en/git-bisect.txt:77 -msgid "If that version is broken, type" +#: en/diff-options.txt:604 +msgid "<orderfile> is parsed as follows:" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:80 -#, no-wrap -msgid "$ git bisect bad\n" +#. type: Plain text +#: en/diff-options.txt:608 +msgid "" +"Blank lines are ignored, so they can be used as separators for readability." msgstr "" #. type: Plain text -#: en/git-bisect.txt:83 -msgid "Then `git bisect` will respond with something like" +#: en/diff-options.txt:612 +msgid "" +"Lines starting with a hash (\"`#`\") are ignored, so they can be used for " +"comments. Add a backslash (\"`\\`\") to the beginning of the pattern if it " +"starts with a hash." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:86 -#, no-wrap -msgid "Bisecting: 337 revisions left to test after this (roughly 9 steps)\n" +#. type: Plain text +#: en/diff-options.txt:614 +msgid "Each other line contains a single pattern." msgstr "" #. type: Plain text -#: en/git-bisect.txt:91 +#: en/diff-options.txt:621 msgid "" -"Keep repeating the process: compile the tree, test it, and depending on " -"whether it is good or bad run `git bisect good` or `git bisect bad` to ask " -"for the next commit that needs testing." +"Patterns have the same syntax and semantics as patterns used for fnmatch(3) " +"without the FNM_PATHNAME flag, except a pathname also matches a pattern if " +"removing any number of the final pathname components matches the pattern. " +"For example, the pattern \"`foo*bar`\" matches \"`fooasdfbar`\" and \"`foo/" +"bar/baz/asdf`\" but not \"`foobarx`\"." +msgstr "" + +#. type: Labeled list +#: en/diff-options.txt:623 en/git-apply.txt:104 en/git-cvsimport.txt:168 +#, no-wrap +msgid "-R" msgstr "" #. type: Plain text -#: en/git-bisect.txt:95 +#: en/diff-options.txt:626 msgid "" -"Eventually there will be no more revisions left to inspect, and the command " -"will print out a description of the first bad commit. The reference " -"`refs/bisect/bad` will be left pointing at that commit." +"Swap two inputs; that is, show differences from index or on-disk file to " +"tree contents." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:98 +#. type: Labeled list +#: en/diff-options.txt:627 #, no-wrap -msgid "Bisect reset" +msgid "--relative[=<path>]" msgstr "" #. type: Plain text -#: en/git-bisect.txt:102 +#: en/diff-options.txt:634 msgid "" -"After a bisect session, to clean up the bisection state and return to the " -"original HEAD, issue the following command:" +"When run from a subdirectory of the project, it can be told to exclude " +"changes outside the directory and show pathnames relative to it with this " +"option. When you are not in a subdirectory (e.g. in a bare repository), you " +"can name which subdirectory to make the output relative to by giving a " +"<path> as an argument." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:105 +#. type: Labeled list +#: en/diff-options.txt:636 en/fetch-options.txt:4 en/git-archimport.txt:99 +#: en/git-branch.txt:153 en/git-checkout-index.txt:38 en/git-commit.txt:64 +#: en/git-cvsexportcommit.txt:45 en/git-cvsimport.txt:135 en/git-grep.txt:101 +#: en/git-help.txt:45 en/git-merge-base.txt:71 en/git-merge-index.txt:26 +#: en/git-repack.txt:31 en/git-show-branch.txt:47 en/git-tag.txt:60 #, no-wrap -msgid "$ git bisect reset\n" +msgid "-a" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:110 -msgid "" -"By default, this will return your tree to the commit that was checked out " -"before `git bisect start`. (A new `git bisect start` will also do that, as " -"it cleans up the old bisection state.)" +#. type: Labeled list +#: en/diff-options.txt:637 en/git-grep.txt:102 +#, no-wrap +msgid "--text" msgstr "" #. type: Plain text -#: en/git-bisect.txt:113 -msgid "With an optional argument, you can return to a different commit instead:" +#: en/diff-options.txt:639 +msgid "Treat all files as text." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:116 +#. type: Labeled list +#: en/diff-options.txt:640 #, no-wrap -msgid "$ git bisect reset <commit>\n" +msgid "--ignore-cr-at-eol" msgstr "" #. type: Plain text -#: en/git-bisect.txt:121 -msgid "" -"For example, `git bisect reset bisect/bad` will check out the first bad " -"revision, while `git bisect reset HEAD` will leave you on the current " -"bisection commit and avoid switching commits at all." +#: en/diff-options.txt:642 +msgid "Ignore carriage-return at the end of line when doing a comparison." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:124 +#. type: Labeled list +#: en/diff-options.txt:643 #, no-wrap -msgid "Alternate terms" +msgid "--ignore-space-at-eol" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:132 -msgid "" -"Sometimes you are not looking for the commit that introduced a breakage, but " -"rather for a commit that caused a change between some other \"old\" state " -"and \"new\" state. For example, you might be looking for the commit that " -"introduced a particular fix. Or you might be looking for the first commit in " -"which the source-code filenames were finally all converted to your company's " -"naming standard. Or whatever." +#. type: Labeled list +#: en/diff-options.txt:647 en/git-am.txt:102 en/git-apply.txt:182 +#, no-wrap +msgid "--ignore-space-change" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:138 -msgid "" -"In such cases it can be very confusing to use the terms \"good\" and \"bad\" " -"to refer to \"the state before the change\" and \"the state after the " -"change\". So instead, you can use the terms \"old\" and \"new\", " -"respectively, in place of \"good\" and \"bad\". (But note that you cannot " -"mix \"good\" and \"bad\" with \"old\" and \"new\" in a single session.)" +#. type: Labeled list +#: en/diff-options.txt:652 en/git-blame.txt:83 en/git-cvsexportcommit.txt:71 +#: en/git-grep.txt:134 en/git-hash-object.txt:31 en/git-help.txt:79 +#, no-wrap +msgid "-w" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:145 -msgid "" -"In this more general usage, you provide `git bisect` with a \"new\" commit " -"has some property and an \"old\" commit that doesn't have that " -"property. Each time `git bisect` checks out a commit, you test if that " -"commit has the property. If it does, mark the commit as \"new\"; otherwise, " -"mark it as \"old\". When the bisection is done, `git bisect` will report " -"which commit introduced the property." +#. type: Labeled list +#: en/diff-options.txt:653 +#, no-wrap +msgid "--ignore-all-space" msgstr "" #. type: Plain text -#: en/git-bisect.txt:149 +#: en/diff-options.txt:657 msgid "" -"To use \"old\" and \"new\" instead of \"good\" and bad, you must run `git " -"bisect start` without commits as argument and then run the following " -"commands to add the commits:" +"Ignore whitespace when comparing lines. This ignores differences even if " +"one line has whitespace where the other line has none." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:152 +#. type: Labeled list +#: en/diff-options.txt:658 #, no-wrap -msgid "git bisect old [<rev>]\n" +msgid "--ignore-blank-lines" msgstr "" #. type: Plain text -#: en/git-bisect.txt:155 -msgid "to indicate that a commit was before the sought change, or" +#: en/diff-options.txt:660 +msgid "Ignore changes whose lines are all blank." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:158 +#. type: Labeled list +#: en/diff-options.txt:661 #, no-wrap -msgid "git bisect new [<rev>...]\n" +msgid "--inter-hunk-context=<lines>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:161 -msgid "to indicate that it was after." +#: en/diff-options.txt:666 +msgid "" +"Show the context between diff hunks, up to the specified number of lines, " +"thereby fusing hunks that are close to each other. Defaults to `diff." +"interHunkContext` or 0 if the config option is unset." msgstr "" -#. type: Plain text -#: en/git-bisect.txt:163 -msgid "To get a reminder of the currently used terms, use" +#. type: Labeled list +#: en/diff-options.txt:667 en/git-cvsexportcommit.txt:77 en/git-grep.txt:261 +#, no-wrap +msgid "-W" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:166 +#. type: Labeled list +#: en/diff-options.txt:668 en/git-grep.txt:262 #, no-wrap -msgid "git bisect terms\n" +msgid "--function-context" msgstr "" #. type: Plain text -#: en/git-bisect.txt:170 -msgid "" -"You can get just the old (respectively new) term with `git bisect term " -"--term-old` or `git bisect term --term-good`." -msgstr "" - -#. type: Plain text -#: en/git-bisect.txt:175 -msgid "" -"If you would like to use your own terms instead of \"bad\"/\"good\" or " -"\"new\"/\"old\", you can choose any names you like (except existing bisect " -"subcommands like `reset`, `start`, ...) by starting the bisection using" +#: en/diff-options.txt:670 +msgid "Show whole surrounding functions of changes." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:178 +#. type: Labeled list +#: en/diff-options.txt:673 en/git-ls-remote.txt:46 #, no-wrap -msgid "git bisect start --term-old <term-old> --term-new <term-new>\n" +msgid "--exit-code" msgstr "" #. type: Plain text -#: en/git-bisect.txt:182 +#: en/diff-options.txt:677 msgid "" -"For example, if you are looking for a commit that introduced a performance " -"regression, you might use" +"Make the program exit with codes similar to diff(1). That is, it exits with " +"1 if there were differences and 0 means no differences." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:185 +#. type: Labeled list +#: en/diff-options.txt:678 en/fetch-options.txt:199 en/git-am.txt:74 +#: en/git-branch.txt:173 en/git-checkout-index.txt:31 en/git-checkout.txt:118 +#: en/git-clean.txt:52 en/git-clone.txt:118 en/git-commit.txt:314 +#: en/git-fast-import.txt:42 en/git-fetch-pack.txt:49 +#: en/git-format-patch.txt:296 en/git-gc.txt:87 en/git-grep.txt:296 +#: en/git-imap-send.txt:37 en/git-init.txt:42 en/git-ls-remote.txt:37 +#: en/git-notes.txt:207 en/git-prune-packed.txt:37 en/git-pull.txt:78 +#: en/git-push.txt:362 en/git-rebase.txt:310 en/git-reset.txt:97 +#: en/git-rev-parse.txt:114 en/git-rm.txt:67 en/git-send-email.txt:401 +#: en/git-show-ref.txt:71 en/git-submodule.txt:244 en/git-svn.txt:671 +#: en/git-symbolic-ref.txt:40 en/git-worktree.txt:185 en/merge-options.txt:122 +#: en/rev-list-options.txt:212 #, no-wrap -msgid "git bisect start --term-old fast --term-new slow\n" +msgid "--quiet" msgstr "" #. type: Plain text -#: en/git-bisect.txt:188 -msgid "Or if you are looking for the commit that fixed a bug, you might use" +#: en/diff-options.txt:680 +msgid "Disable all output of the program. Implies `--exit-code`." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:191 +#. type: Labeled list +#: en/diff-options.txt:683 #, no-wrap -msgid "git bisect start --term-new fixed --term-old broken\n" +msgid "--ext-diff" msgstr "" #. type: Plain text -#: en/git-bisect.txt:195 +#: en/diff-options.txt:687 msgid "" -"Then, use `git bisect <term-old>` and `git bisect <term-new>` instead of " -"`git bisect good` and `git bisect bad` to mark commits." +"Allow an external diff helper to be executed. If you set an external diff " +"driver with linkgit:gitattributes[5], you need to use this option with " +"linkgit:git-log[1] and friends." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:197 +#. type: Labeled list +#: en/diff-options.txt:688 #, no-wrap -msgid "Bisect visualize" +msgid "--no-ext-diff" msgstr "" #. type: Plain text -#: en/git-bisect.txt:201 -msgid "" -"To see the currently remaining suspects in 'gitk', issue the following " -"command during the bisection process:" +#: en/diff-options.txt:690 +msgid "Disallow external diff drivers." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:204 +#. type: Labeled list +#: en/diff-options.txt:691 en/git-cat-file.txt:60 en/git-grep.txt:105 #, no-wrap -msgid "$ git bisect visualize\n" +msgid "--textconv" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:207 -msgid "`view` may also be used as a synonym for `visualize`." +#. type: Labeled list +#: en/diff-options.txt:692 en/git-grep.txt:108 +#, no-wrap +msgid "--no-textconv" msgstr "" #. type: Plain text -#: en/git-bisect.txt:211 +#: en/diff-options.txt:701 msgid "" -"If the `DISPLAY` environment variable is not set, 'git log' is used " -"instead. You can also give command-line options such as `-p` and `--stat`." -msgstr "" - -#. type: delimited block - -#: en/git-bisect.txt:214 -#, no-wrap -msgid "$ git bisect view --stat\n" +"Allow (or disallow) external text conversion filters to be run when " +"comparing binary files. See linkgit:gitattributes[5] for details. Because " +"textconv filters are typically a one-way conversion, the resulting diff is " +"suitable for human consumption, but cannot be applied. For this reason, " +"textconv filters are enabled by default only for linkgit:git-diff[1] and " +"linkgit:git-log[1], but not for linkgit:git-format-patch[1] or diff plumbing " +"commands." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:217 +#. type: Labeled list +#: en/diff-options.txt:702 en/git-status.txt:85 #, no-wrap -msgid "Bisect log and bisect replay" +msgid "--ignore-submodules[=<when>]" msgstr "" #. type: Plain text -#: en/git-bisect.txt:221 +#: en/diff-options.txt:714 msgid "" -"After having marked revisions as good or bad, issue the following command to " -"show what has been done so far:" +"Ignore changes to submodules in the diff generation. <when> can be either " +"\"none\", \"untracked\", \"dirty\" or \"all\", which is the default. Using " +"\"none\" will consider the submodule modified when it either contains " +"untracked or modified files or its HEAD differs from the commit recorded in " +"the superproject and can be used to override any settings of the 'ignore' " +"option in linkgit:git-config[1] or linkgit:gitmodules[5]. When \"untracked\" " +"is used submodules are not considered dirty when they only contain untracked " +"content (but they are still scanned for modified content). Using \"dirty\" " +"ignores all changes to the work tree of submodules, only changes to the " +"commits stored in the superproject are shown (this was the behavior until " +"1.7.0). Using \"all\" hides all changes to submodules." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:224 +#. type: Labeled list +#: en/diff-options.txt:715 #, no-wrap -msgid "$ git bisect log\n" +msgid "--src-prefix=<prefix>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:230 -msgid "" -"If you discover that you made a mistake in specifying the status of a " -"revision, you can save the output of this command to a file, edit it to " -"remove the incorrect entries, and then issue the following commands to " -"return to a corrected state:" +#: en/diff-options.txt:717 +msgid "Show the given source prefix instead of \"a/\"." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:234 +#. type: Labeled list +#: en/diff-options.txt:718 #, no-wrap -msgid "" -"$ git bisect reset\n" -"$ git bisect replay that-file\n" +msgid "--dst-prefix=<prefix>" msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:237 -#, no-wrap -msgid "Avoiding testing a commit" +#. type: Plain text +#: en/diff-options.txt:720 +msgid "Show the given destination prefix instead of \"b/\"." msgstr "" -#. type: Plain text -#: en/git-bisect.txt:244 -msgid "" -"If, in the middle of a bisect session, you know that the suggested revision " -"is not a good one to test (e.g. it fails to build and you know that the " -"failure does not have anything to do with the bug you are chasing), you can " -"manually select a nearby commit and test that one instead." +#. type: Labeled list +#: en/diff-options.txt:721 +#, no-wrap +msgid "--no-prefix" msgstr "" #. type: Plain text -#: en/git-bisect.txt:246 en/git-tag.txt:337 -msgid "For example:" +#: en/diff-options.txt:723 +msgid "Do not show any source or destination prefix." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:253 +#. type: Labeled list +#: en/diff-options.txt:724 #, no-wrap -msgid "" -"$ git bisect good/bad\t\t\t# previous round was good or bad.\n" -"Bisecting: 337 revisions left to test after this (roughly 9 steps)\n" -"$ git bisect visualize\t\t\t# oops, that is uninteresting.\n" -"$ git reset --hard HEAD~3\t\t# try 3 revisions before what\n" -"\t\t\t\t\t# was suggested\n" +msgid "--line-prefix=<prefix>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:257 -msgid "" -"Then compile and test the chosen revision, and afterwards mark the revision " -"as good or bad in the usual manner." +#: en/diff-options.txt:726 +msgid "Prepend an additional prefix to every line of output." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:259 +#. type: Labeled list +#: en/diff-options.txt:727 #, no-wrap -msgid "Bisect skip" +msgid "--ita-invisible-in-index" msgstr "" #. type: Plain text -#: en/git-bisect.txt:263 +#: en/diff-options.txt:734 msgid "" -"Instead of choosing a nearby commit by yourself, you can ask Git to do it " -"for you by issuing the command:" +"By default entries added by \"git add -N\" appear as an existing empty file " +"in \"git diff\" and a new file in \"git diff --cached\". This option makes " +"the entry appear as a new file in \"git diff\" and non-existent in \"git " +"diff --cached\". This option could be reverted with `--ita-visible-in-" +"index`. Both options are experimental and could be removed in future." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:266 +#. type: Plain text +#: en/diff-options.txt:736 +msgid "" +"For more detailed explanation on these common options, see also linkgit:" +"gitdiffcore[7]." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:1 en/git-add.txt:123 en/git-branch.txt:154 +#: en/git-checkout-index.txt:39 en/git-commit.txt:65 en/git-describe.txt:50 +#: en/git-fetch-pack.txt:35 en/git-help.txt:46 en/git-http-push.txt:25 +#: en/git-merge-base.txt:72 en/git-name-rev.txt:42 en/git-pack-objects.txt:77 +#: en/git-pack-redundant.txt:32 en/git-pack-refs.txt:48 en/git-push.txt:149 +#: en/git-reflog.txt:72 en/git-rev-parse.txt:161 en/git-send-pack.txt:37 +#: en/git-show-branch.txt:48 en/git-submodule.txt:254 +#: en/rev-list-options.txt:138 #, no-wrap -msgid "$ git bisect skip # Current version cannot be tested\n" +msgid "--all" msgstr "" #. type: Plain text -#: en/git-bisect.txt:271 -msgid "" -"However, if you skip a commit adjacent to the one you are looking for, Git " -"will be unable to tell exactly which of those commits was the first bad one." +#: en/fetch-options.txt:3 +msgid "Fetch all remotes." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:5 +#, no-wrap +msgid "--append" msgstr "" #. type: Plain text -#: en/git-bisect.txt:274 +#: en/fetch-options.txt:9 msgid "" -"You can also skip a range of commits, instead of just one commit, using " -"range notation. For example:" +"Append ref names and object names of fetched refs to the existing contents " +"of `.git/FETCH_HEAD`. Without this option old data in `.git/FETCH_HEAD` " +"will be overwritten." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:277 +#. type: Labeled list +#: en/fetch-options.txt:10 #, no-wrap -msgid "$ git bisect skip v2.5..v2.6\n" +msgid "--depth=<depth>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:281 +#: en/fetch-options.txt:16 msgid "" -"This tells the bisect process that no commit after `v2.5`, up to and " -"including `v2.6`, should be tested." +"Limit fetching to the specified number of commits from the tip of each " +"remote branch history. If fetching to a 'shallow' repository created by `git " +"clone` with `--depth=<depth>` option (see linkgit:git-clone[1]), deepen or " +"shorten the history to the specified number of commits. Tags for the " +"deepened commits are not fetched." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:17 +#, no-wrap +msgid "--deepen=<depth>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:284 +#: en/fetch-options.txt:21 msgid "" -"Note that if you also want to skip the first commit of the range you would " -"issue the command:" +"Similar to --depth, except it specifies the number of commits from the " +"current shallow boundary instead of from the tip of each remote branch " +"history." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:287 +#. type: Labeled list +#: en/fetch-options.txt:22 en/git-clone.txt:206 en/git-fetch-pack.txt:90 #, no-wrap -msgid "$ git bisect skip v2.5 v2.5..v2.6\n" +msgid "--shallow-since=<date>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:291 +#: en/fetch-options.txt:25 en/git-fetch-pack.txt:93 msgid "" -"This tells the bisect process that the commits between `v2.5` and `v2.6` " -"(inclusive) should be skipped." +"Deepen or shorten the history of a shallow repository to include all " +"reachable commits after <date>." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:294 +#. type: Labeled list +#: en/fetch-options.txt:26 en/git-clone.txt:209 en/git-fetch-pack.txt:94 #, no-wrap -msgid "Cutting down bisection by giving more parameters to bisect start" +msgid "--shallow-exclude=<revision>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:299 +#: en/fetch-options.txt:30 en/git-fetch-pack.txt:98 msgid "" -"You can further cut down the number of trials, if you know what part of the " -"tree is involved in the problem you are tracking down, by specifying path " -"parameters when issuing the `bisect start` command:" +"Deepen or shorten the history of a shallow repository to exclude commits " +"reachable from a specified remote branch or tag. This option can be " +"specified multiple times." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:302 +#. type: Labeled list +#: en/fetch-options.txt:31 #, no-wrap -msgid "$ git bisect start -- arch/i386 include/asm-i386\n" +msgid "--unshallow" msgstr "" #. type: Plain text -#: en/git-bisect.txt:307 +#: en/fetch-options.txt:35 msgid "" -"If you know beforehand more than one good commit, you can narrow the bisect " -"space down by specifying all of the good commits immediately after the bad " -"commit when issuing the `bisect start` command:" +"If the source repository is complete, convert a shallow repository to a " +"complete one, removing all the limitations imposed by shallow repositories." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:312 -#, no-wrap +#. type: Plain text +#: en/fetch-options.txt:38 msgid "" -"$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 --\n" -" # v2.6.20-rc6 is bad\n" -" # v2.6.20-rc4 and v2.6.20-rc1 are good\n" +"If the source repository is shallow, fetch as much as possible so that the " +"current repository has the same history as the source repository." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:315 +#. type: Labeled list +#: en/fetch-options.txt:39 #, no-wrap -msgid "Bisect run" +msgid "--update-shallow" msgstr "" #. type: Plain text -#: en/git-bisect.txt:319 +#: en/fetch-options.txt:44 msgid "" -"If you have a script that can tell if the current source code is good or " -"bad, you can bisect by issuing the command:" +"By default when fetching from a shallow repository, `git fetch` refuses refs " +"that require updating .git/shallow. This option updates .git/shallow and " +"accept such refs." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:322 +#. type: Labeled list +#: en/fetch-options.txt:45 #, no-wrap -msgid "$ git bisect run my_script arguments\n" +msgid "--negotiation-tip=<commit|glob>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:328 +#: en/fetch-options.txt:53 msgid "" -"Note that the script (`my_script` in the above example) should exit with " -"code 0 if the current source code is good/old, and exit with a code between " -"1 and 127 (inclusive), except 125, if the current source code is bad/new." +"By default, Git will report, to the server, commits reachable from all local " +"refs to find common commits in an attempt to reduce the size of the to-be-" +"received packfile. If specified, Git will only report commits reachable from " +"the given tips. This is useful to speed up fetches when the user knows " +"which local ref is likely to have commits in common with the upstream ref " +"being fetched." msgstr "" #. type: Plain text -#: en/git-bisect.txt:332 +#: en/fetch-options.txt:56 msgid "" -"Any other exit code will abort the bisect process. It should be noted that a " -"program that terminates via `exit(-1)` leaves $? = 255, (see the exit(3) " -"manual page), as the value is chopped with `& 0377`." +"This option may be specified more than once; if so, Git will report commits " +"reachable from any of the given commits." msgstr "" #. type: Plain text -#: en/git-bisect.txt:341 +#: en/fetch-options.txt:60 msgid "" -"The special exit code 125 should be used when the current source code cannot " -"be tested. If the script exits with this code, the current revision will be " -"skipped (see `git bisect skip` above). 125 was chosen as the highest " -"sensible value to use for this purpose, because 126 and 127 are used by " -"POSIX shells to signal specific error status (127 is for command not found, " -"126 is for command found but not executable--these details do not matter, as " -"they are normal errors in the script, as far as `bisect run` is concerned)." +"The argument to this option may be a glob on ref names, a ref, or the " +"(possibly abbreviated) SHA-1 of a commit. Specifying a glob is equivalent to " +"specifying this option multiple times, one for each matching ref name." msgstr "" #. type: Plain text -#: en/git-bisect.txt:347 +#: en/fetch-options.txt:63 msgid "" -"You may often find that during a bisect session you want to have temporary " -"modifications (e.g. s/#define DEBUG 0/#define DEBUG 1/ in a header file, or " -"\"revision that does not have this commit needs this patch applied to work " -"around another problem this bisection is not interested in\") applied to the " -"revision being tested." +"See also the `fetch.negotiationAlgorithm` configuration variable documented " +"in linkgit:git-config[1]." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:65 en/git-add.txt:69 en/git-clean.txt:48 +#: en/git-commit.txt:317 en/git-http-push.txt:37 en/git-mv.txt:40 +#: en/git-notes.txt:179 en/git-p4.txt:332 en/git-prune-packed.txt:32 +#: en/git-prune.txt:37 en/git-push.txt:173 en/git-quiltimport.txt:35 +#: en/git-read-tree.txt:58 en/git-reflog.txt:120 en/git-rm.txt:44 +#: en/git-send-email.txt:392 en/git-send-pack.txt:51 en/git-svn.txt:687 +#: en/git-worktree.txt:175 +#, no-wrap +msgid "--dry-run" msgstr "" #. type: Plain text -#: en/git-bisect.txt:355 -msgid "" -"To cope with such a situation, after the inner 'git bisect' finds the next " -"revision to test, the script can apply the patch before compiling, run the " -"real test, and afterwards decide if the revision (possibly with the needed " -"patch) passed the test and then rewind the tree to the pristine state. " -"Finally the script should exit with the status of the real test to let the " -"`git bisect run` command loop determine the eventual outcome of the bisect " -"session." +#: en/fetch-options.txt:67 +msgid "Show what would be done, without making any changes." msgstr "" #. type: Labeled list -#: en/git-bisect.txt:358 en/git-clone.txt:134 +#: en/fetch-options.txt:69 en/git-add.txt:77 en/git-archimport.txt:81 +#: en/git-blame.txt:64 en/git-branch.txt:104 en/git-checkout-index.txt:34 +#: en/git-checkout.txt:127 en/git-clean.txt:34 en/git-cvsexportcommit.txt:54 +#: en/git-filter-branch.txt:195 en/git-ls-files.txt:137 en/git-mv.txt:31 +#: en/git-notes.txt:127 en/git-push.txt:324 en/git-rebase.txt:342 +#: en/git-repack.txt:70 en/git-replace.txt:60 en/git-rm.txt:39 +#: en/git-submodule.txt:266 en/git-tag.txt:72 en/git-update-server-info.txt:26 +#: en/git-worktree.txt:119 #, no-wrap -msgid "--no-checkout" +msgid "-f" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:363 -msgid "" -"Do not checkout the new working tree at each iteration of the bisection " -"process. Instead just update a special reference named `BISECT_HEAD` to make " -"it point to the commit that should be tested." +#. type: Labeled list +#: en/fetch-options.txt:70 en/git-add.txt:78 en/git-branch.txt:105 +#: en/git-checkout-index.txt:35 en/git-checkout.txt:128 en/git-clean.txt:35 +#: en/git-fast-import.txt:37 en/git-filter-branch.txt:196 en/git-gc.txt:90 +#: en/git-http-push.txt:30 en/git-mv.txt:32 en/git-notes.txt:128 +#: en/git-push.txt:325 en/git-replace.txt:61 en/git-rm.txt:40 +#: en/git-send-email.txt:421 en/git-send-pack.txt:54 en/git-submodule.txt:267 +#: en/git-tag.txt:73 en/git-update-server-info.txt:27 en/git-worktree.txt:120 +#, no-wrap +msgid "--force" msgstr "" #. type: Plain text -#: en/git-bisect.txt:366 +#: en/fetch-options.txt:73 msgid "" -"This option may be useful when the test you would perform in each step does " -"not require a checked out tree." +"When 'git fetch' is used with `<src>:<dst>` refspec it may refuse to update " +"the local branch as discussed" msgstr "" #. type: Plain text -#: en/git-bisect.txt:368 -msgid "If the repository is bare, `--no-checkout` is assumed." +#: en/fetch-options.txt:76 +#, no-wrap +msgid "" +"\tin the `<refspec>` part of the linkgit:git-fetch[1]\n" +"\tdocumentation.\n" msgstr "" #. type: Plain text -#: en/git-bisect.txt:373 -msgid "Automatically bisect a broken build between v1.2 and HEAD:" +#: en/fetch-options.txt:79 +#, no-wrap +msgid "\tin the `<refspec>` part below.\n" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:378 +#. type: Plain text +#: en/fetch-options.txt:81 #, no-wrap -msgid "" -"$ git bisect start HEAD v1.2 -- # HEAD is bad, v1.2 is good\n" -"$ git bisect run make # \"make\" builds the app\n" -"$ git bisect reset # quit the bisect session\n" +msgid "\tThis option overrides that check.\n" msgstr "" -#. type: Plain text -#: en/git-bisect.txt:381 -msgid "Automatically bisect a test failure between origin and HEAD:" +#. type: Labeled list +#: en/fetch-options.txt:82 en/git-am.txt:40 en/git-cvsexportcommit.txt:67 +#: en/git-cvsimport.txt:93 en/git-fetch-pack.txt:53 en/git-format-patch.txt:111 +#: en/git-ls-files.txt:74 en/git-mailinfo.txt:27 en/git-mv.txt:34 +#: en/git-repack.txt:156 +#, no-wrap +msgid "-k" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:386 +#. type: Labeled list +#: en/fetch-options.txt:83 en/git-am.txt:41 en/git-fetch-pack.txt:54 +#: en/git-index-pack.txt:54 en/git-reset.txt:82 #, no-wrap -msgid "" -"$ git bisect start HEAD origin -- # HEAD is bad, origin is good\n" -"$ git bisect run make test # \"make test\" builds and tests\n" -"$ git bisect reset # quit the bisect session\n" +msgid "--keep" msgstr "" #. type: Plain text -#: en/git-bisect.txt:389 en/git-bisect.txt:443 -msgid "Automatically bisect a broken test case:" +#: en/fetch-options.txt:85 +msgid "Keep downloaded pack." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:398 +#. type: Labeled list +#: en/fetch-options.txt:87 #, no-wrap -msgid "" -"$ cat ~/test.sh\n" -"#!/bin/sh\n" -"make || exit 125 # this skips broken builds\n" -"~/check_test_case.sh # does the test case pass?\n" -"$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10\n" -"$ git bisect run ~/test.sh\n" -"$ git bisect reset # quit the bisect session\n" +msgid "--multiple" msgstr "" #. type: Plain text -#: en/git-bisect.txt:404 +#: en/fetch-options.txt:90 msgid "" -"Here we use a `test.sh` custom script. In this script, if `make` fails, we " -"skip the current commit. `check_test_case.sh` should `exit 0` if the test " -"case passes, and `exit 1` otherwise." +"Allow several <repository> and <group> arguments to be specified. No " +"<refspec>s may be specified." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:92 en/git-push.txt:153 +#, no-wrap +msgid "--prune" msgstr "" #. type: Plain text -#: en/git-bisect.txt:408 +#: en/fetch-options.txt:102 msgid "" -"It is safer if both `test.sh` and `check_test_case.sh` are outside the " -"repository to prevent interactions between the bisect, make and test " -"processes and the scripts." +"Before fetching, remove any remote-tracking references that no longer exist " +"on the remote. Tags are not subject to pruning if they are fetched only " +"because of the default tag auto-following or due to a --tags option. " +"However, if tags are fetched due to an explicit refspec (either on the " +"command line or in the remote configuration, for example if the remote was " +"cloned with the --mirror option), then they are also subject to pruning. " +"Supplying `--prune-tags` is a shorthand for providing the tag refspec." msgstr "" #. type: Plain text -#: en/git-bisect.txt:410 -msgid "Automatically bisect with temporary modifications (hot-fix):" +#: en/fetch-options.txt:104 en/fetch-options.txt:115 +msgid "See the PRUNING section below for more details." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:414 +#. type: Labeled list +#: en/fetch-options.txt:105 en/git-cvsexportcommit.txt:57 en/git-grep.txt:165 +#: en/git.txt:106 en/rev-list-options.txt:92 #, no-wrap -msgid "" -"$ cat ~/test.sh\n" -"#!/bin/sh\n" +msgid "-P" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:427 +#. type: Labeled list +#: en/fetch-options.txt:106 #, no-wrap +msgid "--prune-tags" +msgstr "" + +#. type: Plain text +#: en/fetch-options.txt:113 msgid "" -"# tweak the working tree by merging the hot-fix branch\n" -"# and then attempt a build\n" -"if\tgit merge --no-commit hot-fix &&\n" -"\tmake\n" -"then\n" -"\t# run project specific test and report its status\n" -"\t~/check_test_case.sh\n" -"\tstatus=$?\n" -"else\n" -"\t# tell the caller this is untestable\n" -"\tstatus=125\n" -"fi\n" +"Before fetching, remove any local tags that no longer exist on the remote if " +"`--prune` is enabled. This option should be used more carefully, unlike `--" +"prune` it will remove any local references (local tags) that have been " +"created. This option is a shorthand for providing the explicit tag refspec " +"along with `--prune`, see the discussion about that in its documentation." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:430 +#. type: Labeled list +#: en/fetch-options.txt:119 en/git-add.txt:68 en/git-blame.txt:70 +#: en/git-checkout-index.txt:43 en/git-cherry-pick.txt:87 en/git-clean.txt:47 +#: en/git-clone.txt:135 en/git-commit.txt:174 en/git-format-patch.txt:96 +#: en/git-grep.txt:178 en/git-mailinfo.txt:66 en/git-mv.txt:39 +#: en/git-notes.txt:178 en/git-p4.txt:331 en/git-prune-packed.txt:31 +#: en/git-prune.txt:36 en/git-push.txt:172 en/git-quiltimport.txt:34 +#: en/git-read-tree.txt:57 en/git-rebase.txt:321 en/git-reflog.txt:119 +#: en/git-repack.txt:82 en/git-revert.txt:69 en/git-rm.txt:43 +#: en/git-shortlog.txt:29 en/git-submodule.txt:289 en/git-svn.txt:686 +#: en/git-unpack-objects.txt:30 en/git-worktree.txt:174 en/merge-options.txt:73 #, no-wrap -msgid "" -"# undo the tweak to allow clean flipping to the next commit\n" -"git reset --hard\n" +msgid "-n" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:433 +#. type: Labeled list +#: en/fetch-options.txt:121 en/git-clone.txt:224 #, no-wrap -msgid "" -"# return control\n" -"exit $status\n" +msgid "--no-tags" msgstr "" #. type: Plain text -#: en/git-bisect.txt:441 +#: en/fetch-options.txt:127 msgid "" -"This applies modifications from a hot-fix branch before each test run, " -"e.g. in case your build or test environment changed so that older revisions " -"may need a fix which newer ones have already. (Make sure the hot-fix branch " -"is based off a commit which is contained in all revisions which you are " -"bisecting, so that the merge does not pull in too much, or use `git " -"cherry-pick` instead of `git merge`.)" +"By default, tags that point at objects that are downloaded from the remote " +"repository are fetched and stored locally. This option disables this " +"automatic tag following. The default behavior for a remote may be specified " +"with the remote.<name>.tagOpt setting. See linkgit:git-config[1]." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:448 +#. type: Labeled list +#: en/fetch-options.txt:129 #, no-wrap -msgid "" -"$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10\n" -"$ git bisect run sh -c \"make || exit 125; ~/check_test_case.sh\"\n" -"$ git bisect reset # quit the bisect session\n" +msgid "--refmap=<refspec>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:452 +#: en/fetch-options.txt:136 msgid "" -"This shows that you can do without a run script if you write the test on a " -"single line." +"When fetching refs listed on the command line, use the specified refspec " +"(can be given more than once) to map the refs to remote-tracking branches, " +"instead of the values of `remote.*.fetch` configuration variables for the " +"remote repository. See section on \"Configured Remote-tracking Branches\" " +"for details." msgstr "" -#. type: Plain text -#: en/git-bisect.txt:454 -msgid "Locate a good region of the object graph in a damaged repository" +#. type: Labeled list +#: en/fetch-options.txt:138 en/git-describe.txt:55 en/git-fsck.txt:41 +#: en/git-ls-remote.txt:27 en/git-name-rev.txt:24 en/git-push.txt:186 +#: en/git-show-ref.txt:41 +#, no-wrap +msgid "--tags" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:464 -#, no-wrap +#. type: Plain text +#: en/fetch-options.txt:145 msgid "" -"$ git bisect start HEAD <known-good-commit> [ <boundary-commit> ... ] " -"--no-checkout\n" -"$ git bisect run sh -c '\n" -"\tGOOD=$(git for-each-ref \"--format=%(objectname)\" refs/bisect/good-*) " -"&&\n" -"\tgit rev-list --objects BISECT_HEAD --not $GOOD >tmp.$$ &&\n" -"\tgit pack-objects --stdout >/dev/null <tmp.$$\n" -"\trc=$?\n" -"\trm -f tmp.$$\n" -"\ttest $rc = 0'\n" +"Fetch all tags from the remote (i.e., fetch remote tags `refs/tags/*` into " +"local tags with the same name), in addition to whatever else would otherwise " +"be fetched. Using this option alone does not subject tags to pruning, even " +"if --prune is used (though tags may be pruned anyway if they are also the " +"destination of an explicit refspec; see `--prune`)." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:466 +#. type: Labeled list +#: en/fetch-options.txt:146 #, no-wrap -msgid "$ git bisect reset # quit the bisect session\n" +msgid "--recurse-submodules[=yes|on-demand|no]" msgstr "" #. type: Plain text -#: en/git-bisect.txt:471 +#: en/fetch-options.txt:156 msgid "" -"In this case, when 'git bisect run' finishes, bisect/bad will refer to a " -"commit that has at least one parent whose reachable graph is fully " -"traversable in the sense required by 'git pack objects'." +"This option controls if and under what conditions new commits of populated " +"submodules should be fetched too. It can be used as a boolean option to " +"completely disable recursion when set to 'no' or to unconditionally recurse " +"into all populated submodules when set to 'yes', which is the default when " +"this option is used without any value. Use 'on-demand' to only recurse into " +"a populated submodule when the superproject retrieves a commit that updates " +"the submodule's reference to a commit that isn't already in the local " +"submodule clone." msgstr "" -#. type: Plain text -#: en/git-bisect.txt:473 -msgid "Look for a fix instead of a regression in the code" +#. type: Labeled list +#: en/fetch-options.txt:157 +#, no-wrap +msgid "-j" msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:478 +#. type: Labeled list +#: en/fetch-options.txt:158 #, no-wrap -msgid "" -"$ git bisect start\n" -"$ git bisect new HEAD # current commit is marked as new\n" -"$ git bisect old HEAD~10 # the tenth commit from now is marked as old\n" +msgid "--jobs=<n>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:481 -msgid "or:" +#: en/fetch-options.txt:163 +msgid "" +"Number of parallel children to be used for fetching submodules. Each will " +"fetch from different submodules, such that fetching many submodules will be " +"faster. By default submodules will be fetched one at a time." msgstr "" -#. type: delimited block - -#: en/git-bisect.txt:485 +#. type: Labeled list +#: en/fetch-options.txt:164 en/git-push.txt:377 #, no-wrap +msgid "--no-recurse-submodules" +msgstr "" + +#. type: Plain text +#: en/fetch-options.txt:167 msgid "" -"$ git bisect start --term-old broken --term-new fixed\n" -"$ git bisect fixed\n" -"$ git bisect broken HEAD~10\n" +"Disable recursive fetching of submodules (this has the same effect as using " +"the `--recurse-submodules=no` option)." msgstr "" -#. type: Title ~ -#: en/git-bisect.txt:488 +#. type: Labeled list +#: en/fetch-options.txt:168 #, no-wrap -msgid "Getting help" +msgid "--submodule-prefix=<path>" msgstr "" #. type: Plain text -#: en/git-bisect.txt:492 +#: en/fetch-options.txt:172 msgid "" -"Use `git bisect` to get a short usage description, and `git bisect help` or " -"`git bisect -h` to get a long usage description." +"Prepend <path> to paths printed in informative messages such as \"Fetching " +"submodule foo\". This option is used internally when recursing over " +"submodules." +msgstr "" + +#. type: Labeled list +#: en/fetch-options.txt:173 +#, no-wrap +msgid "--recurse-submodules-default=[yes|on-demand]" msgstr "" #. type: Plain text -#: en/git-bisect.txt:497 +#: en/fetch-options.txt:180 msgid "" -"link:git-bisect-lk2009.html[Fighting regressions with git bisect], " -"linkgit:git-blame[1]." +"This option is used internally to temporarily provide a non-negative default " +"value for the --recurse-submodules option. All other methods of configuring " +"fetch's submodule recursion (such as settings in linkgit:gitmodules[5] and " +"linkgit:git-config[1]) override this option, as does specifying --" +"[no-]recurse-submodules directly." msgstr "" -#. type: Title = -#: en/git-blame.txt:2 +#. type: Labeled list +#: en/fetch-options.txt:183 #, no-wrap -msgid "git-blame(1)" +msgid "--update-head-ok" msgstr "" #. type: Plain text -#: en/git-blame.txt:7 -msgid "git-blame - Show what revision and author last modified each line of a file" +#: en/fetch-options.txt:190 +msgid "" +"By default 'git fetch' refuses to update the head which corresponds to the " +"current branch. This flag disables the check. This is purely for the " +"internal use for 'git pull' to communicate with 'git fetch', and unless you " +"are implementing your own Porcelain you are not supposed to use it." msgstr "" -#. type: Plain text -#: en/git-blame.txt:15 +#. type: Labeled list +#: en/fetch-options.txt:191 en/git-clone.txt:172 #, no-wrap -msgid "" -"'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] " -"[--incremental]\n" -"\t [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]\n" -"\t [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse " -"<rev>..<rev>]\n" -"\t [--] <file>\n" +msgid "--upload-pack <upload-pack>" msgstr "" #. type: Plain text -#: en/git-blame.txt:21 +#: en/fetch-options.txt:196 msgid "" -"Annotates each line in the given file with information from the revision " -"which last modified the line. Optionally, start annotating from the given " -"revision." +"When given, and the repository to fetch from is handled by 'git fetch-pack', " +"`--exec=<upload-pack>` is passed to the command to specify non-default path " +"for the command run on the other end." msgstr "" -#. type: Plain text -#: en/git-blame.txt:24 -msgid "" -"When specified one or more times, `-L` restricts annotation to the requested " -"lines." +#. type: Labeled list +#: en/fetch-options.txt:198 en/git-am.txt:73 en/git-branch.txt:172 +#: en/git-checkout-index.txt:30 en/git-checkout.txt:117 en/git-clean.txt:51 +#: en/git-clone.txt:119 en/git-commit.txt:313 en/git-diff-files.txt:44 +#: en/git-fetch-pack.txt:48 en/git-format-patch.txt:295 en/git-grep.txt:295 +#: en/git-imap-send.txt:36 en/git-init.txt:41 en/git-ls-remote.txt:36 +#: en/git-merge-file.txt:67 en/git-merge-index.txt:35 en/git-notes.txt:206 +#: en/git-pack-objects.txt:173 en/git-prune-packed.txt:36 en/git-pull.txt:77 +#: en/git-push.txt:361 en/git-rebase.txt:309 en/git-repack.txt:78 +#: en/git-reset.txt:96 en/git-rev-parse.txt:113 en/git-rm.txt:66 +#: en/git-show-ref.txt:70 en/git-submodule.txt:243 en/git-svn.txt:670 +#: en/git-symbolic-ref.txt:39 en/git-unpack-objects.txt:34 +#: en/git-update-index.txt:58 en/git-worktree.txt:184 en/merge-options.txt:121 +#, no-wrap +msgid "-q" msgstr "" #. type: Plain text -#: en/git-blame.txt:30 +#: en/fetch-options.txt:203 msgid "" -"The origin of lines is automatically followed across whole-file renames " -"(currently there is no option to turn the rename-following off). To follow " -"lines moved from one file to another, or to follow lines that were copied " -"and pasted from another file, etc., see the `-C` and `-M` options." -msgstr "" - -#. type: Plain text -#: en/git-blame.txt:34 -msgid "" -"The report does not tell you anything about lines which have been deleted or " -"replaced; you need to use a tool such as 'git diff' or the \"pickaxe\" " -"interface briefly mentioned in the following paragraph." +"Pass --quiet to git-fetch-pack and silence any other internally used git " +"commands. Progress is not reported to the standard error stream." msgstr "" -#. type: Plain text -#: en/git-blame.txt:41 -msgid "" -"Apart from supporting file annotation, Git also supports searching the " -"development history for when a code snippet occurred in a change. This makes " -"it possible to track when a code snippet was added to a file, moved or " -"copied between files, and eventually deleted or replaced. It works by " -"searching for a text string in the diff. A small example of the pickaxe " -"interface that searches for `blame_usage`:" +#. type: Labeled list +#: en/fetch-options.txt:204 en/git-add.txt:73 en/git-apply.txt:224 +#: en/git-archimport.txt:74 en/git-archive.txt:47 en/git-branch.txt:163 +#: en/git-cherry.txt:29 en/git-clone.txt:124 en/git-commit.txt:298 +#: en/git-count-objects.txt:21 en/git-cvsexportcommit.txt:82 +#: en/git-cvsimport.txt:52 en/git-diff-tree.txt:78 en/git-fetch-pack.txt:111 +#: en/git-grep.txt:140 en/git-http-fetch.txt:30 en/git-imap-send.txt:32 +#: en/git-index-pack.txt:27 en/git-ls-files.txt:132 en/git-mv.txt:43 +#: en/git-notes.txt:210 en/git-p4.txt:208 en/git-prune.txt:41 +#: en/git-pull.txt:83 en/git-push.txt:367 en/git-read-tree.txt:62 +#: en/git-rebase.txt:313 en/git-remote.txt:35 en/git-status.txt:50 +#: en/git-svn.txt:366 en/git-tag.txt:80 en/git-verify-commit.txt:23 +#: en/git-verify-pack.txt:26 en/git-verify-tag.txt:23 en/git-worktree.txt:188 +#: en/merge-options.txt:125 +#, no-wrap +msgid "-v" msgstr "" -#. type: delimited block - -#: en/git-blame.txt:46 +#. type: Labeled list +#: en/fetch-options.txt:205 en/git-add.txt:74 en/git-apply.txt:225 +#: en/git-archive.txt:48 en/git-branch.txt:165 en/git-clone.txt:123 +#: en/git-commit.txt:299 en/git-count-objects.txt:22 en/git-daemon.txt:148 +#: en/git-fsck.txt:77 en/git-help.txt:50 en/git-http-push.txt:40 +#: en/git-imap-send.txt:33 en/git-mv.txt:44 en/git-notes.txt:211 +#: en/git-p4.txt:209 en/git-pack-redundant.txt:39 en/git-prune.txt:42 +#: en/git-pull.txt:84 en/git-push.txt:368 en/git-rebase.txt:314 +#: en/git-reflog.txt:124 en/git-remote.txt:36 en/git-send-pack.txt:61 +#: en/git-status.txt:51 en/git-svn.txt:367 en/git-update-index.txt:153 +#: en/git-verify-commit.txt:24 en/git-verify-pack.txt:27 +#: en/git-verify-tag.txt:24 en/git-worktree.txt:189 en/merge-options.txt:126 #, no-wrap -msgid "" -"$ git log --pretty=oneline -S'blame_usage'\n" -"5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file>\n" -"ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output\n" +msgid "--verbose" msgstr "" #. type: Plain text -#: en/git-blame.txt:54 -msgid "Use the same output mode as linkgit:git-annotate[1] (Default: off)." +#: en/fetch-options.txt:207 en/git-add.txt:76 en/git-imap-send.txt:35 +#: en/merge-options.txt:128 +msgid "Be verbose." msgstr "" #. type: Labeled list -#: en/git-blame.txt:55 +#: en/fetch-options.txt:209 en/git-clone.txt:128 en/git-format-patch.txt:321 +#: en/git-pack-objects.txt:151 en/git-prune.txt:45 en/git-push.txt:371 +#: en/git-submodule.txt:247 en/merge-options.txt:129 #, no-wrap -msgid "--score-debug" +msgid "--progress" msgstr "" #. type: Plain text -#: en/git-blame.txt:63 +#: en/fetch-options.txt:214 en/git-clone.txt:133 en/git-pack-objects.txt:156 +#: en/git-push.txt:376 msgid "" -"Include debugging information related to the movement of lines between files " -"(see `-C`) and lines moved within a file (see `-M`). The first number " -"listed is the score. This is the number of alphanumeric characters detected " -"as having been moved between or within files. This must be above a certain " -"threshold for 'git blame' to consider those lines of code to have been " -"moved." +"Progress status is reported on the standard error stream by default when it " +"is attached to a terminal, unless -q is specified. This flag forces progress " +"status even if the standard error stream is not directed to a terminal." msgstr "" #. type: Labeled list -#: en/git-blame.txt:65 +#: en/fetch-options.txt:215 en/git-ls-remote.txt:73 en/git-push.txt:215 #, no-wrap -msgid "--show-name" -msgstr "" - -#. type: Plain text -#: en/git-blame.txt:69 -msgid "" -"Show the filename in the original commit. By default the filename is shown " -"if there is any line that came from a file with a different name, due to " -"rename detection." +msgid "-o <option>" msgstr "" #. type: Labeled list -#: en/git-blame.txt:71 +#: en/fetch-options.txt:216 en/git-ls-remote.txt:74 #, no-wrap -msgid "--show-number" +msgid "--server-option=<option>" msgstr "" #. type: Plain text -#: en/git-blame.txt:73 -msgid "Show the line number in the original commit (Default: off)." +#: en/fetch-options.txt:222 en/git-ls-remote.txt:80 +msgid "" +"Transmit the given string to the server when communicating using protocol " +"version 2. The given string must not contain a NUL or LF character. When " +"multiple `--server-option=<option>` are given, they are all sent to the " +"other side in the order listed on the command line." msgstr "" -#. type: Plain text -#: en/git-blame.txt:76 -msgid "Suppress the author name and timestamp from the output." +#. type: Labeled list +#: en/fetch-options.txt:223 en/git-push.txt:398 +#, no-wrap +msgid "-4" msgstr "" #. type: Labeled list -#: en/git-blame.txt:78 +#: en/fetch-options.txt:224 en/git-push.txt:399 #, no-wrap -msgid "--show-email" +msgid "--ipv4" msgstr "" #. type: Plain text -#: en/git-blame.txt:82 -msgid "" -"Show the author email instead of author name (Default: off). This can also " -"be controlled via the `blame.showEmail` config option." +#: en/fetch-options.txt:226 en/git-push.txt:401 +msgid "Use IPv4 addresses only, ignoring IPv6 addresses." msgstr "" #. type: Labeled list -#: en/git-blame.txt:83 en/git-cvsexportcommit.txt:71 en/git-grep.txt:131 en/git-hash-object.txt:31 en/git-help.txt:66 en/diff-options.txt:531 +#: en/fetch-options.txt:227 en/git-push.txt:402 #, no-wrap -msgid "-w" -msgstr "" - -#. type: Plain text -#: en/git-blame.txt:86 -msgid "" -"Ignore whitespace when comparing the parent's version and the child's to " -"find where the lines came from." +msgid "-6" msgstr "" #. type: Labeled list -#: en/git-blame.txt:87 en/git-describe.txt:52 +#: en/fetch-options.txt:228 en/git-push.txt:403 #, no-wrap -msgid "--abbrev=<n>" +msgid "--ipv6" msgstr "" #. type: Plain text -#: en/git-blame.txt:91 -msgid "" -"Instead of using the default 7+1 hexadecimal digits as the abbreviated " -"object name, use <n>+1 digits. Note that 1 column is used for a caret to " -"mark the boundary commit." +#: en/fetch-options.txt:229 en/git-push.txt:405 +msgid "Use IPv6 addresses only, ignoring IPv4 addresses." msgstr "" -#. type: Title - -#: en/git-blame.txt:96 +#. type: Title = +#: en/git-add.txt:2 #, no-wrap -msgid "THE PORCELAIN FORMAT" +msgid "git-add(1)" msgstr "" -#. type: Plain text -#: en/git-blame.txt:100 -msgid "" -"In this format, each line is output after a header; the header at the " -"minimum has the first line which has:" +#. type: Title - +#: en/git-add.txt:5 en/git-am.txt:5 en/git-annotate.txt:5 en/git-apply.txt:5 +#: en/git-archimport.txt:5 en/git-archive.txt:5 en/git-bisect.txt:5 +#: en/git-blame.txt:5 en/git-branch.txt:5 en/git-bundle.txt:5 +#: en/git-cat-file.txt:5 en/git-check-attr.txt:5 en/git-check-ignore.txt:5 +#: en/git-check-mailmap.txt:5 en/git-checkout-index.txt:5 en/git-checkout.txt:5 +#: en/git-check-ref-format.txt:5 en/git-cherry-pick.txt:5 en/git-cherry.txt:5 +#: en/git-citool.txt:5 en/git-clean.txt:5 en/git-clone.txt:5 +#: en/git-column.txt:5 en/git-commit-tree.txt:5 en/git-commit.txt:5 +#: en/git-config.txt:5 en/git-count-objects.txt:5 +#: en/git-credential-cache--daemon.txt:5 en/git-credential-cache.txt:5 +#: en/git-credential-store.txt:5 en/git-credential.txt:5 +#: en/git-cvsexportcommit.txt:5 en/git-cvsimport.txt:5 en/git-cvsserver.txt:5 +#: en/git-daemon.txt:5 en/git-describe.txt:5 en/git-diff-files.txt:5 +#: en/git-diff-index.txt:5 en/git-difftool.txt:5 en/git-diff-tree.txt:5 +#: en/git-diff.txt:5 en/git-fast-export.txt:5 en/git-fast-import.txt:5 +#: en/git-fetch-pack.txt:5 en/git-fetch.txt:5 en/git-filter-branch.txt:5 +#: en/git-fmt-merge-msg.txt:5 en/git-for-each-ref.txt:5 +#: en/git-format-patch.txt:5 en/git-fsck-objects.txt:5 en/git-fsck.txt:5 +#: en/git-gc.txt:5 en/git-get-tar-commit-id.txt:5 en/git-grep.txt:5 +#: en/git-gui.txt:5 en/git-hash-object.txt:5 en/git-help.txt:5 +#: en/git-http-backend.txt:5 en/git-http-fetch.txt:5 en/git-http-push.txt:5 +#: en/git-imap-send.txt:5 en/git-index-pack.txt:5 en/git-init-db.txt:5 +#: en/git-init.txt:5 en/git-instaweb.txt:5 en/git-interpret-trailers.txt:5 +#: en/git-log.txt:5 en/git-ls-files.txt:5 en/git-ls-remote.txt:5 +#: en/git-ls-tree.txt:5 en/git-mailinfo.txt:5 en/git-mailsplit.txt:5 +#: en/git-merge-base.txt:5 en/git-merge-file.txt:5 en/git-merge-index.txt:5 +#: en/git-merge-one-file.txt:5 en/git-mergetool--lib.txt:5 +#: en/git-mergetool.txt:5 en/git-merge-tree.txt:5 en/git-merge.txt:5 +#: en/git-mktag.txt:5 en/git-mktree.txt:5 en/git-mv.txt:5 en/git-name-rev.txt:5 +#: en/git-notes.txt:5 en/git-p4.txt:5 en/git-pack-objects.txt:5 +#: en/git-pack-redundant.txt:5 en/git-pack-refs.txt:5 en/git-parse-remote.txt:5 +#: en/git-patch-id.txt:5 en/git-prune-packed.txt:5 en/git-prune.txt:5 +#: en/git-pull.txt:5 en/git-push.txt:5 en/git-quiltimport.txt:5 +#: en/git-read-tree.txt:5 en/git-rebase.txt:5 en/git-receive-pack.txt:5 +#: en/git-reflog.txt:5 en/git-remote-ext.txt:5 en/git-remote-fd.txt:5 +#: en/git-remote-testgit.txt:5 en/git-remote.txt:5 en/git-repack.txt:5 +#: en/git-replace.txt:5 en/git-request-pull.txt:5 en/git-rerere.txt:5 +#: en/git-reset.txt:5 en/git-revert.txt:5 en/git-rev-list.txt:5 +#: en/git-rev-parse.txt:5 en/git-rm.txt:5 en/git-send-email.txt:5 +#: en/git-send-pack.txt:5 en/git-shell.txt:5 en/git-sh-i18n--envsubst.txt:5 +#: en/git-sh-i18n.txt:5 en/git-shortlog.txt:5 en/git-show-branch.txt:5 +#: en/git-show-index.txt:5 en/git-show-ref.txt:5 en/git-show.txt:5 +#: en/git-sh-setup.txt:5 en/git-stage.txt:5 en/git-stash.txt:5 +#: en/git-status.txt:5 en/git-stripspace.txt:5 en/git-submodule.txt:5 +#: en/git-svn.txt:5 en/git-symbolic-ref.txt:5 en/git-tag.txt:5 en/git.txt:5 +#: en/git-unpack-file.txt:5 en/git-unpack-objects.txt:5 +#: en/git-update-index.txt:5 en/git-update-ref.txt:5 +#: en/git-update-server-info.txt:5 en/git-upload-archive.txt:5 +#: en/git-upload-pack.txt:5 en/git-var.txt:5 en/git-verify-commit.txt:5 +#: en/git-verify-pack.txt:5 en/git-verify-tag.txt:5 en/git-web--browse.txt:5 +#: en/git-whatchanged.txt:5 en/git-worktree.txt:5 en/git-write-tree.txt:5 +#, no-wrap +msgid "NAME" msgstr "" #. type: Plain text -#: en/git-blame.txt:102 -msgid "40-byte SHA-1 of the commit the line is attributed to;" +#: en/git-add.txt:7 +msgid "git-add - Add file contents to the index" msgstr "" -#. type: Plain text -#: en/git-blame.txt:103 -msgid "the line number of the line in the original file;" +#. type: Title - +#: en/git-add.txt:9 en/git-am.txt:10 en/git-annotate.txt:9 en/git-apply.txt:10 +#: en/git-archimport.txt:10 en/git-archive.txt:10 en/git-bisect.txt:10 +#: en/git-blame.txt:9 en/git-branch.txt:9 en/git-bundle.txt:10 +#: en/git-cat-file.txt:10 en/git-check-attr.txt:10 en/git-check-ignore.txt:10 +#: en/git-check-mailmap.txt:10 en/git-checkout-index.txt:10 +#: en/git-checkout.txt:9 en/git-check-ref-format.txt:9 en/git-cherry-pick.txt:9 +#: en/git-cherry.txt:9 en/git-citool.txt:9 en/git-clean.txt:9 +#: en/git-clone.txt:10 en/git-column.txt:9 en/git-commit-tree.txt:10 +#: en/git-commit.txt:9 en/git-config.txt:10 en/git-count-objects.txt:9 +#: en/git-credential-cache--daemon.txt:9 en/git-credential-cache.txt:9 +#: en/git-credential-store.txt:9 en/git-credential.txt:9 +#: en/git-cvsexportcommit.txt:10 en/git-cvsimport.txt:10 en/git-cvsserver.txt:9 +#: en/git-daemon.txt:9 en/git-describe.txt:9 en/git-diff-files.txt:10 +#: en/git-diff-index.txt:10 en/git-difftool.txt:9 en/git-diff-tree.txt:10 +#: en/git-diff.txt:10 en/git-fast-export.txt:10 en/git-fast-import.txt:10 +#: en/git-fetch-pack.txt:10 en/git-fetch.txt:10 en/git-filter-branch.txt:9 +#: en/git-fmt-merge-msg.txt:10 en/git-for-each-ref.txt:9 +#: en/git-format-patch.txt:10 en/git-fsck-objects.txt:10 en/git-fsck.txt:10 +#: en/git-gc.txt:10 en/git-get-tar-commit-id.txt:10 en/git-grep.txt:10 +#: en/git-gui.txt:9 en/git-hash-object.txt:10 en/git-help.txt:9 +#: en/git-http-backend.txt:9 en/git-http-fetch.txt:10 en/git-http-push.txt:10 +#: en/git-imap-send.txt:10 en/git-index-pack.txt:10 en/git-init-db.txt:10 +#: en/git-init.txt:10 en/git-instaweb.txt:9 en/git-interpret-trailers.txt:9 +#: en/git-log.txt:10 en/git-ls-files.txt:10 en/git-ls-remote.txt:10 +#: en/git-ls-tree.txt:10 en/git-mailinfo.txt:10 en/git-mailsplit.txt:9 +#: en/git-merge-base.txt:10 en/git-merge-file.txt:10 en/git-merge-index.txt:10 +#: en/git-merge-one-file.txt:10 en/git-mergetool--lib.txt:9 +#: en/git-mergetool.txt:9 en/git-merge-tree.txt:10 en/git-merge.txt:10 +#: en/git-mktag.txt:10 en/git-mktree.txt:10 en/git-mv.txt:10 +#: en/git-name-rev.txt:10 en/git-notes.txt:9 en/git-p4.txt:10 +#: en/git-pack-objects.txt:10 en/git-pack-redundant.txt:10 +#: en/git-pack-refs.txt:9 en/git-parse-remote.txt:10 en/git-patch-id.txt:9 +#: en/git-prune-packed.txt:10 en/git-prune.txt:10 en/git-pull.txt:10 +#: en/git-push.txt:10 en/git-quiltimport.txt:10 en/git-read-tree.txt:10 +#: en/git-rebase.txt:9 en/git-receive-pack.txt:10 en/git-reflog.txt:10 +#: en/git-remote-ext.txt:9 en/git-remote-fd.txt:9 en/git-remote-testgit.txt:10 +#: en/git-remote.txt:10 en/git-repack.txt:10 en/git-replace.txt:9 +#: en/git-request-pull.txt:9 en/git-rerere.txt:9 en/git-reset.txt:9 +#: en/git-revert.txt:9 en/git-rev-list.txt:10 en/git-rev-parse.txt:10 +#: en/git-rm.txt:9 en/git-send-email.txt:10 en/git-send-pack.txt:10 +#: en/git-shell.txt:10 en/git-sh-i18n--envsubst.txt:9 en/git-sh-i18n.txt:9 +#: en/git-shortlog.txt:9 en/git-show-branch.txt:9 en/git-show-index.txt:10 +#: en/git-show-ref.txt:9 en/git-show.txt:10 en/git-sh-setup.txt:9 +#: en/git-stage.txt:10 en/git-stash.txt:9 en/git-status.txt:10 +#: en/git-stripspace.txt:10 en/git-submodule.txt:10 en/git-svn.txt:9 +#: en/git-symbolic-ref.txt:9 en/git-tag.txt:10 en/git.txt:10 +#: en/git-unpack-file.txt:11 en/git-unpack-objects.txt:10 +#: en/git-update-index.txt:10 en/git-update-ref.txt:9 +#: en/git-update-server-info.txt:10 en/git-upload-archive.txt:10 +#: en/git-upload-pack.txt:10 en/git-var.txt:10 en/git-verify-commit.txt:9 +#: en/git-verify-pack.txt:10 en/git-verify-tag.txt:9 en/git-web--browse.txt:9 +#: en/git-whatchanged.txt:10 en/git-worktree.txt:10 en/git-write-tree.txt:10 +#, no-wrap +msgid "SYNOPSIS" msgstr "" #. type: Plain text -#: en/git-blame.txt:104 -msgid "the line number of the line in the final file;" +#: en/git-add.txt:15 +#, no-wrap +msgid "" +"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]\n" +"\t [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n" +"\t [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]\n" +"\t [--chmod=(+|-)x] [--] [<pathspec>...]\n" msgstr "" -#. type: Plain text -#: en/git-blame.txt:107 -msgid "" -"on a line that starts a group of lines from a different commit than the " -"previous one, the number of lines in this group. On subsequent lines this " -"field is absent." +#. type: Title - +#: en/git-add.txt:17 en/git-am.txt:22 en/git-annotate.txt:14 +#: en/git-apply.txt:22 en/git-archimport.txt:16 en/git-archive.txt:18 +#: en/git-bisect.txt:15 en/git-blame.txt:17 en/git-branch.txt:26 +#: en/git-bundle.txt:18 en/git-cat-file.txt:16 en/git-check-attr.txt:16 +#: en/git-check-ignore.txt:16 en/git-check-mailmap.txt:16 +#: en/git-checkout-index.txt:19 en/git-checkout.txt:20 +#: en/git-check-ref-format.txt:17 en/git-cherry-pick.txt:18 +#: en/git-cherry.txt:14 en/git-citool.txt:14 en/git-clean.txt:14 +#: en/git-clone.txt:21 en/git-column.txt:15 en/git-commit-tree.txt:18 +#: en/git-commit.txt:19 en/git-config.txt:29 en/git-count-objects.txt:14 +#: en/git-credential-cache--daemon.txt:14 en/git-credential-cache.txt:15 +#: en/git-credential-store.txt:15 en/git-credential.txt:15 +#: en/git-cvsexportcommit.txt:17 en/git-cvsimport.txt:20 +#: en/git-cvsserver.txt:61 en/git-daemon.txt:27 en/git-describe.txt:16 +#: en/git-diff-files.txt:15 en/git-diff-index.txt:15 en/git-difftool.txt:14 +#: en/git-diff-tree.txt:17 en/git-diff.txt:19 en/git-fast-export.txt:15 +#: en/git-fast-import.txt:15 en/git-fetch-pack.txt:18 en/git-fetch.txt:19 +#: en/git-filter-branch.txt:20 en/git-fmt-merge-msg.txt:16 +#: en/git-for-each-ref.txt:18 en/git-format-patch.txt:33 +#: en/git-fsck-objects.txt:15 en/git-fsck.txt:18 en/git-gc.txt:15 +#: en/git-get-tar-commit-id.txt:16 en/git-grep.txt:34 en/git-gui.txt:14 +#: en/git-hash-object.txt:16 en/git-help.txt:15 en/git-http-backend.txt:14 +#: en/git-http-fetch.txt:15 en/git-http-push.txt:15 en/git-imap-send.txt:16 +#: en/git-index-pack.txt:18 en/git-init-db.txt:16 en/git-init.txt:18 +#: en/git-instaweb.txt:16 en/git-interpret-trailers.txt:15 en/git-log.txt:15 +#: en/git-ls-files.txt:25 en/git-ls-remote.txt:17 en/git-ls-tree.txt:17 +#: en/git-mailinfo.txt:16 en/git-mailsplit.txt:15 en/git-merge-base.txt:19 +#: en/git-merge-file.txt:18 en/git-merge-index.txt:15 +#: en/git-merge-one-file.txt:15 en/git-mergetool--lib.txt:14 +#: en/git-mergetool.txt:14 en/git-merge-tree.txt:15 en/git-merge.txt:20 +#: en/git-mktag.txt:15 en/git-mktree.txt:15 en/git-mv.txt:15 +#: en/git-name-rev.txt:16 en/git-notes.txt:26 en/git-p4.txt:19 +#: en/git-pack-objects.txt:21 en/git-pack-redundant.txt:15 +#: en/git-pack-refs.txt:14 en/git-parse-remote.txt:15 en/git-patch-id.txt:14 +#: en/git-prune-packed.txt:16 en/git-prune.txt:15 en/git-pull.txt:16 +#: en/git-push.txt:20 en/git-quiltimport.txt:17 en/git-read-tree.txt:19 +#: en/git-rebase.txt:18 en/git-receive-pack.txt:15 en/git-reflog.txt:15 +#: en/git-remote-ext.txt:14 en/git-remote-fd.txt:13 +#: en/git-remote-testgit.txt:15 en/git-remote.txt:27 en/git-repack.txt:15 +#: en/git-replace.txt:19 en/git-request-pull.txt:14 en/git-rerere.txt:14 +#: en/git-reset.txt:16 en/git-revert.txt:17 en/git-rev-list.txt:66 +#: en/git-rev-parse.txt:15 en/git-rm.txt:14 en/git-send-email.txt:17 +#: en/git-send-pack.txt:18 en/git-shell.txt:17 en/git-sh-i18n--envsubst.txt:19 +#: en/git-sh-i18n.txt:14 en/git-shortlog.txt:15 en/git-show-branch.txt:19 +#: en/git-show-index.txt:16 en/git-show-ref.txt:17 en/git-show.txt:15 +#: en/git-sh-setup.txt:14 en/git-stage.txt:16 en/git-stash.txt:24 +#: en/git-status.txt:15 en/git-stripspace.txt:16 en/git-submodule.txt:24 +#: en/git-svn.txt:14 en/git-symbolic-ref.txt:16 en/git-tag.txt:22 en/git.txt:20 +#: en/git-unpack-file.txt:16 en/git-unpack-objects.txt:16 +#: en/git-update-index.txt:31 en/git-update-ref.txt:14 +#: en/git-update-server-info.txt:15 en/git-upload-archive.txt:15 +#: en/git-upload-pack.txt:16 en/git-var.txt:15 en/git-verify-commit.txt:14 +#: en/git-verify-pack.txt:16 en/git-verify-tag.txt:14 en/git-web--browse.txt:14 +#: en/git-whatchanged.txt:15 en/git-worktree.txt:21 en/git-write-tree.txt:15 +#, no-wrap +msgid "DESCRIPTION" msgstr "" #. type: Plain text -#: en/git-blame.txt:110 +#: en/git-add.txt:24 msgid "" -"This header line is followed by the following information at least once for " -"each commit:" +"This command updates the index using the current content found in the " +"working tree, to prepare the content staged for the next commit. It " +"typically adds the current content of existing paths as a whole, but with " +"some options it can also be used to add content with only part of the " +"changes made to the working tree files applied, or remove paths that do not " +"exist in the working tree anymore." msgstr "" #. type: Plain text -#: en/git-blame.txt:114 +#: en/git-add.txt:30 msgid "" -"the author name (\"author\"), email (\"author-mail\"), time " -"(\"author-time\"), and time zone (\"author-tz\"); similarly for committer." +"The \"index\" holds a snapshot of the content of the working tree, and it is " +"this snapshot that is taken as the contents of the next commit. Thus after " +"making any changes to the working tree, and before running the commit " +"command, you must use the `add` command to add any new or modified files to " +"the index." msgstr "" #. type: Plain text -#: en/git-blame.txt:115 -msgid "the filename in the commit that the line is attributed to." +#: en/git-add.txt:35 +msgid "" +"This command can be performed multiple times before a commit. It only adds " +"the content of the specified file(s) at the time the add command is run; if " +"you want subsequent changes included in the next commit, then you must run " +"`git add` again to add the new content to the index." msgstr "" #. type: Plain text -#: en/git-blame.txt:116 -msgid "the first line of the commit log message (\"summary\")." +#: en/git-add.txt:38 +msgid "" +"The `git status` command can be used to obtain a summary of which files have " +"changes that are staged for the next commit." msgstr "" #. type: Plain text -#: en/git-blame.txt:120 +#: en/git-add.txt:45 msgid "" -"The contents of the actual line is output after the above header, prefixed " -"by a TAB. This is to allow adding more header elements later." +"The `git add` command will not add ignored files by default. If any ignored " +"files were explicitly specified on the command line, `git add` will fail " +"with a list of ignored files. Ignored files reached by directory recursion " +"or filename globbing performed by Git (quote your globs before the shell) " +"will be silently ignored. The 'git add' command can be used to add ignored " +"files with the `-f` (force) option." msgstr "" #. type: Plain text -#: en/git-blame.txt:128 +#: en/git-add.txt:48 msgid "" -"The porcelain format generally suppresses commit information that has " -"already been seen. For example, two lines that are blamed to the same commit " -"will both be shown, but the details for that commit will be shown only " -"once. This is more efficient, but may require more state be kept by the " -"reader. The `--line-porcelain` option can be used to output full commit " -"information for each line, allowing simpler (but less efficient) usage " -"like:" +"Please see linkgit:git-commit[1] for alternative ways to add content to a " +"commit." msgstr "" -#. type: Plain text -#: en/git-blame.txt:133 +#. type: Title - +#: en/git-add.txt:51 en/git-am.txt:28 en/git-annotate.txt:24 +#: en/git-apply.txt:36 en/git-archimport.txt:69 en/git-archive.txt:34 +#: en/git-bisect.txt:356 en/git-blame.txt:49 en/git-branch.txt:84 +#: en/git-bundle.txt:34 en/git-cat-file.txt:30 en/git-check-attr.txt:21 +#: en/git-check-ignore.txt:27 en/git-check-mailmap.txt:25 +#: en/git-checkout-index.txt:24 en/git-checkout.txt:116 +#: en/git-check-ref-format.txt:99 en/git-cherry-pick.txt:44 +#: en/git-cherry.txt:28 en/git-clean.txt:27 en/git-clone.txt:42 +#: en/git-column.txt:22 en/git-commit-tree.txt:42 en/git-commit.txt:63 +#: en/git-config.txt:72 en/git-count-objects.txt:20 +#: en/git-credential-cache.txt:27 en/git-credential-store.txt:30 +#: en/git-cvsexportcommit.txt:35 en/git-cvsimport.txt:51 +#: en/git-cvsserver.txt:28 en/git-daemon.txt:48 en/git-describe.txt:36 +#: en/git-diff-files.txt:22 en/git-diff-index.txt:23 en/git-difftool.txt:21 +#: en/git-diff-tree.txt:26 en/git-diff.txt:96 en/git-fast-export.txt:25 +#: en/git-fast-import.txt:35 en/git-fetch-pack.txt:34 en/git-fetch.txt:46 +#: en/git-filter-branch.txt:83 en/git-fmt-merge-msg.txt:25 +#: en/git-for-each-ref.txt:28 en/git-format-patch.txt:84 en/git-fsck.txt:22 +#: en/git-gc.txt:36 en/git-grep.txt:74 en/git-hash-object.txt:26 +#: en/git-help.txt:44 en/git-http-fetch.txt:23 en/git-http-push.txt:24 +#: en/git-imap-send.txt:30 en/git-index-pack.txt:26 en/git-init.txt:39 +#: en/git-instaweb.txt:21 en/git-interpret-trailers.txt:73 en/git-log.txt:25 +#: en/git-ls-files.txt:34 en/git-ls-remote.txt:23 en/git-ls-tree.txt:37 +#: en/git-mailinfo.txt:26 en/git-mailsplit.txt:23 en/git-merge-base.txt:70 +#: en/git-merge-file.txt:53 en/git-merge-index.txt:22 en/git-mergetool.txt:26 +#: en/git-merge.txt:64 en/git-mktree.txt:22 en/git-mv.txt:30 +#: en/git-name-rev.txt:22 en/git-notes.txt:126 en/git-p4.txt:199 +#: en/git-pack-objects.txt:50 en/git-pack-redundant.txt:29 +#: en/git-pack-refs.txt:46 en/git-patch-id.txt:31 en/git-prune-packed.txt:30 +#: en/git-prune.txt:34 en/git-pull.txt:75 en/git-quiltimport.txt:32 +#: en/git-read-tree.txt:33 en/git-rebase.txt:209 en/git-receive-pack.txt:40 +#: en/git-reflog.txt:61 en/git-remote.txt:33 en/git-repack.txt:29 +#: en/git-replace.txt:59 en/git-request-pull.txt:28 en/git-reset.txt:94 +#: en/git-revert.txt:34 en/git-rev-list.txt:114 en/git-rev-parse.txt:26 +#: en/git-rm.txt:28 en/git-send-email.txt:43 en/git-send-pack.txt:27 +#: en/git-shortlog.txt:27 en/git-show-branch.txt:32 en/git-show-ref.txt:34 +#: en/git-show.txt:36 en/git-stash.txt:47 en/git-status.txt:25 +#: en/git-stripspace.txt:37 en/git-submodule.txt:242 en/git-svn.txt:575 +#: en/git-symbolic-ref.txt:33 en/git-tag.txt:59 en/git.txt:40 +#: en/git-unpack-file.txt:22 en/git-unpack-objects.txt:29 +#: en/git-update-index.txt:43 en/git-update-server-info.txt:24 +#: en/git-upload-archive.txt:56 en/git-upload-pack.txt:26 en/git-var.txt:19 +#: en/git-verify-commit.txt:18 en/git-verify-pack.txt:22 +#: en/git-verify-tag.txt:18 en/git-web--browse.txt:43 en/git-worktree.txt:117 +#: en/git-write-tree.txt:29 #, no-wrap -msgid "" -"\t# count the number of lines attributed to each author\n" -"\tgit blame --line-porcelain file |\n" -"\tsed -n 's/^author //p' |\n" -"\tsort | uniq -c | sort -rn\n" +msgid "OPTIONS" msgstr "" -#. type: Title - -#: en/git-blame.txt:136 en/revisions.txt:237 +#. type: Labeled list +#: en/git-add.txt:52 en/git-grep.txt:308 en/git-status.txt:148 #, no-wrap -msgid "SPECIFYING RANGES" +msgid "<pathspec>..." msgstr "" #. type: Plain text -#: en/git-blame.txt:142 +#: en/git-add.txt:64 msgid "" -"Unlike 'git blame' and 'git annotate' in older versions of git, the extent " -"of the annotation can be limited to both line ranges and revision " -"ranges. The `-L` option, which limits annotation to a range of lines, may be " -"specified multiple times." +"Files to add content from. Fileglobs (e.g. `*.c`) can be given to add all " +"matching files. Also a leading directory name (e.g. `dir` to add `dir/" +"file1` and `dir/file2`) can be given to update the index to match the " +"current state of the directory as a whole (e.g. specifying `dir` will " +"record not just a file `dir/file1` modified in the working tree, a file `dir/" +"file2` added to the working tree, but also a file `dir/file3` removed from " +"the working tree). Note that older versions of Git used to ignore removed " +"files; use `--no-all` option if you want to add modified or new files but " +"ignore removed ones." msgstr "" #. type: Plain text -#: en/git-blame.txt:147 +#: en/git-add.txt:67 en/git-grep.txt:314 msgid "" -"When you are interested in finding the origin for lines 40-60 for file " -"`foo`, you can use the `-L` option like so (they mean the same thing -- both " -"ask for 21 lines starting at line 40):" +"For more details about the <pathspec> syntax, see the 'pathspec' entry in " +"linkgit:gitglossary[7]." msgstr "" #. type: Plain text -#: en/git-blame.txt:150 -#, no-wrap +#: en/git-add.txt:72 msgid "" -"\tgit blame -L 40,60 foo\n" -"\tgit blame -L 40,+21 foo\n" +"Don't actually add the file(s), just show if they exist and/or will be " +"ignored." msgstr "" #. type: Plain text -#: en/git-blame.txt:152 -msgid "Also you can use a regular expression to specify the line range:" +#: en/git-add.txt:80 +msgid "Allow adding otherwise ignored files." msgstr "" -#. type: Plain text -#: en/git-blame.txt:154 +#. type: Labeled list +#: en/git-add.txt:81 en/git-am.txt:122 en/git-branch.txt:137 +#: en/git-clean.txt:42 en/git-commit.txt:260 en/git-cvsimport.txt:88 +#: en/git-grep.txt:112 en/git-help.txt:64 en/git-ls-files.txt:51 +#: en/git-read-tree.txt:48 en/git-rebase.txt:389 en/git-repack.txt:163 +#: en/git-tag.txt:123 en/rev-list-options.txt:73 #, no-wrap -msgid "\tgit blame -L '/^sub hello {/,/^}$/' foo\n" +msgid "-i" msgstr "" -#. type: Plain text -#: en/git-blame.txt:156 -msgid "which limits the annotation to the body of the `hello` subroutine." +#. type: Labeled list +#: en/git-add.txt:82 en/git-am.txt:123 en/git-clean.txt:43 +#: en/git-rebase.txt:390 en/git-rebase.txt:530 en/git-svn.txt:297 +#, no-wrap +msgid "--interactive" msgstr "" #. type: Plain text -#: en/git-blame.txt:160 +#: en/git-add.txt:87 msgid "" -"When you are not interested in changes older than version v2.6.18, or " -"changes older than 3 weeks, you can use revision range specifiers similar to " -"'git rev-list':" +"Add modified contents in the working tree interactively to the index. " +"Optional path arguments may be supplied to limit operation to a subset of " +"the working tree. See ``Interactive mode'' for details." msgstr "" #. type: Plain text -#: en/git-blame.txt:163 -#, no-wrap +#: en/git-add.txt:94 msgid "" -"\tgit blame v2.6.18.. -- foo\n" -"\tgit blame --since=3.weeks -- foo\n" +"Interactively choose hunks of patch between the index and the work tree and " +"add them to the index. This gives the user a chance to review the difference " +"before adding modified contents to the index." msgstr "" #. type: Plain text -#: en/git-blame.txt:169 +#: en/git-add.txt:98 msgid "" -"When revision range specifiers are used to limit the annotation, lines that " -"have not changed since the range boundary (either the commit v2.6.18 or the " -"most recent commit that is more than 3 weeks old in the above example) are " -"blamed for that range boundary commit." +"This effectively runs `add --interactive`, but bypasses the initial command " +"menu and directly jumps to the `patch` subcommand. See ``Interactive mode'' " +"for details." msgstr "" -#. type: Plain text -#: en/git-blame.txt:175 -msgid "" -"A particularly useful way is to see if an added file has lines created by " -"copy-and-paste from existing files. Sometimes this indicates that the " -"developer was being sloppy and did not refactor the code properly. You can " -"first find the commit that introduced the file with:" +#. type: Labeled list +#: en/git-add.txt:99 en/git-blame.txt:77 en/git-cat-file.txt:44 +#: en/git-cherry-pick.txt:55 en/git-commit.txt:219 en/git-config.txt:245 +#: en/git-grep.txt:275 en/git-revert.txt:43 en/git-shortlog.txt:38 +#: en/git-svn.txt:614 en/git-tag.txt:170 en/merge-options.txt:11 +#, no-wrap +msgid "-e" msgstr "" -#. type: Plain text -#: en/git-blame.txt:177 +#. type: Labeled list +#: en/git-add.txt:100 en/git-cherry-pick.txt:56 en/git-commit.txt:220 +#: en/git-config.txt:246 en/git-revert.txt:44 en/git-svn.txt:615 +#: en/git-tag.txt:171 en/merge-options.txt:10 #, no-wrap -msgid "\tgit log --diff-filter=A --pretty=short -- foo\n" +msgid "--edit" msgstr "" #. type: Plain text -#: en/git-blame.txt:180 +#: en/git-add.txt:104 msgid "" -"and then annotate the change between the commit and its parents, using " -"`commit^!` notation:" +"Open the diff vs. the index in an editor and let the user edit it. After " +"the editor was closed, adjust the hunk headers and apply the patch to the " +"index." msgstr "" #. type: Plain text -#: en/git-blame.txt:182 -#, no-wrap -msgid "\tgit blame -C -C -f $commit^! -- foo\n" +#: en/git-add.txt:110 +msgid "" +"The intent of this option is to pick and choose lines of the patch to apply, " +"or even to modify the contents of lines to be staged. This can be quicker " +"and more flexible than using the interactive hunk selector. However, it is " +"easy to confuse oneself and create a patch that does not apply to the index. " +"See EDITING PATCHES below." msgstr "" -#. type: Title - -#: en/git-blame.txt:185 +#. type: Labeled list +#: en/git-add.txt:112 #, no-wrap -msgid "INCREMENTAL OUTPUT" +msgid "--update" msgstr "" #. type: Plain text -#: en/git-blame.txt:192 +#: en/git-add.txt:116 msgid "" -"When called with `--incremental` option, the command outputs the result as " -"it is built. The output generally will talk about lines touched by more " -"recent commits first (i.e. the lines will be annotated out of order) and is " -"meant to be used by interactive viewers." +"Update the index just where it already has an entry matching <pathspec>. " +"This removes as well as modifies index entries to match the working tree, " +"but adds no new files." msgstr "" #. type: Plain text -#: en/git-blame.txt:196 +#: en/git-add.txt:121 msgid "" -"The output format is similar to the Porcelain format, but it does not " -"contain the actual lines from the file that is being annotated." +"If no <pathspec> is given when `-u` option is used, all tracked files in the " +"entire working tree are updated (old versions of Git used to limit the " +"update to the current directory and its subdirectories)." msgstr "" -#. type: Plain text -#: en/git-blame.txt:198 -msgid "Each blame entry always starts with a line of:" +#. type: Labeled list +#: en/git-add.txt:122 en/git-repack.txt:49 en/git-svn.txt:418 +#, no-wrap +msgid "-A" msgstr "" -#. type: Plain text -#: en/git-blame.txt:200 +#. type: Labeled list +#: en/git-add.txt:124 #, no-wrap -msgid "<40-byte hex sha1> <sourceline> <resultline> <num_lines>\n" +msgid "--no-ignore-removal" msgstr "" #. type: Plain text -#: en/git-blame.txt:202 -msgid "Line numbers count from 1." +#: en/git-add.txt:129 +msgid "" +"Update the index not only where the working tree has a file matching " +"<pathspec> but also where the index already has an entry. This adds, " +"modifies, and removes index entries to match the working tree." msgstr "" #. type: Plain text -#: en/git-blame.txt:207 +#: en/git-add.txt:134 msgid "" -"The first time that a commit shows up in the stream, it has various other " -"information about it printed out with a one-word tag at the beginning of " -"each line describing the extra commit information (author, email, committer, " -"dates, summary, etc.)." +"If no <pathspec> is given when `-A` option is used, all files in the entire " +"working tree are updated (old versions of Git used to limit the update to " +"the current directory and its subdirectories)." msgstr "" -#. type: Plain text -#: en/git-blame.txt:210 -msgid "" -"Unlike the Porcelain format, the filename information is always given and " -"terminates the entry:" +#. type: Labeled list +#: en/git-add.txt:135 +#, no-wrap +msgid "--no-all" msgstr "" -#. type: Plain text -#: en/git-blame.txt:212 +#. type: Labeled list +#: en/git-add.txt:136 #, no-wrap -msgid "\"filename\" <whitespace-quoted-filename-goes-here>\n" +msgid "--ignore-removal" msgstr "" #. type: Plain text -#: en/git-blame.txt:215 +#: en/git-add.txt:141 msgid "" -"and thus it is really quite easy to parse for some line- and word-oriented " -"parser (which should be quite natural for most scripting languages)." +"Update the index by adding new files that are unknown to the index and files " +"modified in the working tree, but ignore files that have been removed from " +"the working tree. This option is a no-op when no <pathspec> is used." msgstr "" #. type: Plain text -#: en/git-blame.txt:223 +#: en/git-add.txt:145 msgid "" -"For people who do parsing: to make it more robust, just ignore any lines " -"between the first and last one (\"<sha1>\" and \"filename\" lines) where " -"you do not recognize the tag words (or care about that particular one) at " -"the beginning of the \"extended information\" lines. That way, if there is " -"ever added information (like the commit encoding or extended commit " -"commentary), a blame viewer will not care." -msgstr "" - -#. type: Title - -#: en/git-blame.txt:226 en/git-check-mailmap.txt:40 en/git-shortlog.txt:80 -#, no-wrap -msgid "MAPPING AUTHORS" +"This option is primarily to help users who are used to older versions of " +"Git, whose \"git add <pathspec>...\" was a synonym for \"git add --no-all " +"<pathspec>...\", i.e. ignored removed files." msgstr "" #. type: Labeled list -#: en/git-blame.txt:234 en/cmds-ancillaryinterrogators.txt:1 +#: en/git-add.txt:146 en/git-format-patch.txt:100 en/git-submodule.txt:328 #, no-wrap -msgid "linkgit:git-annotate[1]" +msgid "-N" msgstr "" -#. type: Title = -#: en/git-branch.txt:2 +#. type: Labeled list +#: en/git-add.txt:147 en/git-apply.txt:77 #, no-wrap -msgid "git-branch(1)" -msgstr "" - -#. type: Plain text -#: en/git-branch.txt:7 -msgid "git-branch - List, create, or delete branches" +msgid "--intent-to-add" msgstr "" #. type: Plain text -#: en/git-branch.txt:22 -#, no-wrap +#: en/git-add.txt:153 msgid "" -"'git branch' [--color[=<when>] | --no-color] [-r | -a]\n" -"\t[--list] [-v [--abbrev=<length> | --no-abbrev]]\n" -"\t[--column[=<options>] | --no-column]\n" -"\t[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]\n" -"\t[--points-at <object>] [--format=<format>] [<pattern>...]\n" -"'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> " -"[<start-point>]\n" -"'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]\n" -"'git branch' --unset-upstream [<branchname>]\n" -"'git branch' (-m | -M) [<oldbranch>] <newbranch>\n" -"'git branch' (-d | -D) [-r] <branchname>...\n" -"'git branch' --edit-description [<branchname>]\n" +"Record only the fact that the path will be added later. An entry for the " +"path is placed in the index with no content. This is useful for, among other " +"things, showing the unstaged content of such files with `git diff` and " +"committing them with `git commit -a`." msgstr "" -#. type: Plain text -#: en/git-branch.txt:35 -msgid "" -"If `--list` is given, or if there are no non-option arguments, existing " -"branches are listed; the current branch will be highlighted with an " -"asterisk. Option `-r` causes the remote-tracking branches to be listed, and " -"option `-a` shows both local and remote branches. If a `<pattern>` is given, " -"it is used as a shell wildcard to restrict the output to matching " -"branches. If multiple patterns are given, a branch is shown if it matches " -"any of the patterns. Note that when providing a `<pattern>`, you must use " -"`--list`; otherwise the command is interpreted as branch creation." +#. type: Labeled list +#: en/git-add.txt:154 en/git-update-index.txt:54 +#, no-wrap +msgid "--refresh" msgstr "" #. type: Plain text -#: en/git-branch.txt:43 +#: en/git-add.txt:157 msgid "" -"With `--contains`, shows only the branches that contain the named commit (in " -"other words, the branches whose tip commits are descendants of the named " -"commit). With `--merged`, only branches merged into the named commit " -"(i.e. the branches whose tip commits are reachable from the named commit) " -"will be listed. With `--no-merged` only branches not merged into the named " -"commit will be listed. If the <commit> argument is missing it defaults to " -"`HEAD` (i.e. the tip of the current branch)." +"Don't add the file(s), but only refresh their stat() information in the " +"index." msgstr "" -#. type: Plain text -#: en/git-branch.txt:46 -msgid "" -"The command's second form creates a new branch head named <branchname> which " -"points to the current `HEAD`, or <start-point> if given." +#. type: Labeled list +#: en/git-add.txt:158 +#, no-wrap +msgid "--ignore-errors" msgstr "" #. type: Plain text -#: en/git-branch.txt:50 +#: en/git-add.txt:164 msgid "" -"Note that this will create the new branch, but it will not switch the " -"working tree to it; use \"git checkout <newbranch>\" to switch to the new " -"branch." +"If some files could not be added because of errors indexing them, do not " +"abort the operation, but continue adding the others. The command shall still " +"exit with non-zero status. The configuration variable `add.ignoreErrors` " +"can be set to true to make this the default behaviour." msgstr "" -#. type: Plain text -#: en/git-branch.txt:58 -msgid "" -"When a local branch is started off a remote-tracking branch, Git sets up the " -"branch (specifically the `branch.<name>.remote` and `branch.<name>.merge` " -"configuration entries) so that 'git pull' will appropriately merge from the " -"remote-tracking branch. This behavior may be changed via the global " -"`branch.autoSetupMerge` configuration flag. That setting can be overridden " -"by using the `--track` and `--no-track` options, and changed later using " -"`git branch --set-upstream-to`." +#. type: Labeled list +#: en/git-add.txt:165 en/git-notes.txt:169 en/git-update-index.txt:72 +#: en/rev-list-options.txt:193 +#, no-wrap +msgid "--ignore-missing" msgstr "" #. type: Plain text -#: en/git-branch.txt:64 +#: en/git-add.txt:170 msgid "" -"With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>. If " -"<oldbranch> had a corresponding reflog, it is renamed to match <newbranch>, " -"and a reflog entry is created to remember the branch renaming. If " -"<newbranch> exists, -M must be used to force the rename to happen." +"This option can only be used together with --dry-run. By using this option " +"the user can check if any of the given files would be ignored, no matter if " +"they are already present in the work tree or not." msgstr "" -#. type: Plain text -#: en/git-branch.txt:68 -msgid "" -"With a `-d` or `-D` option, `<branchname>` will be deleted. You may specify " -"more than one branch for deletion. If the branch currently has a reflog " -"then the reflog will also be deleted." +#. type: Labeled list +#: en/git-add.txt:171 +#, no-wrap +msgid "--no-warn-embedded-repo" msgstr "" #. type: Plain text -#: en/git-branch.txt:74 +#: en/git-add.txt:177 msgid "" -"Use `-r` together with `-d` to delete remote-tracking branches. Note, that " -"it only makes sense to delete remote-tracking branches if they no longer " -"exist in the remote repository or if 'git fetch' was configured not to fetch " -"them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a " -"way to clean up all obsolete remote-tracking branches." -msgstr "" - -#. type: Labeled list -#: en/git-branch.txt:78 en/git-clean.txt:28 en/git-cvsexportcommit.txt:49 en/git-difftool.txt:22 en/git-http-push.txt:44 en/git-instaweb.txt:27 en/git-ls-files.txt:39 en/git-ls-tree.txt:41 en/git-repack.txt:55 en/git-replace.txt:64 en/git-show-ref.txt:47 en/git-symbolic-ref.txt:35 en/git-tag.txt:75 -#, no-wrap -msgid "-d" +"By default, `git add` will warn when adding an embedded repository to the " +"index without using `git submodule add` to create an entry in `.gitmodules`. " +"This option will suppress the warning (e.g., if you are manually performing " +"operations on submodules)." msgstr "" #. type: Labeled list -#: en/git-branch.txt:79 en/git-push.txt:126 en/git-replace.txt:65 en/git-symbolic-ref.txt:36 en/git-tag.txt:76 +#: en/git-add.txt:178 #, no-wrap -msgid "--delete" +msgid "--renormalize" msgstr "" #. type: Plain text -#: en/git-branch.txt:83 +#: en/git-add.txt:184 msgid "" -"Delete a branch. The branch must be fully merged in its upstream branch, or " -"in `HEAD` if no upstream was set with `--track` or `--set-upstream`." +"Apply the \"clean\" process freshly to all tracked files to forcibly add " +"them again to the index. This is useful after changing `core.autocrlf` " +"configuration or the `text` attribute in order to correct files added with " +"wrong CRLF/LF line endings. This option implies `-u`." msgstr "" #. type: Labeled list -#: en/git-branch.txt:84 en/git-http-push.txt:45 en/diff-options.txt:389 +#: en/git-add.txt:185 en/git-update-index.txt:85 #, no-wrap -msgid "-D" +msgid "--chmod=(+|-)x" msgstr "" #. type: Plain text -#: en/git-branch.txt:86 -msgid "Shortcut for `--delete --force`." +#: en/git-add.txt:189 +msgid "" +"Override the executable bit of the added files. The executable bit is only " +"changed in the index, the files on disk are left unchanged." msgstr "" #. type: Labeled list -#: en/git-branch.txt:88 en/git-tag.txt:152 +#: en/git-add.txt:190 en/git-check-attr.txt:39 en/git-checkout-index.txt:71 +#: en/git-commit.txt:343 en/git-grep.txt:304 en/git-ls-files.txt:180 +#: en/git-merge-index.txt:23 en/git-prune.txt:51 en/git-rm.txt:53 +#: en/git-update-index.txt:221 en/git-verify-pack.txt:36 #, no-wrap -msgid "--create-reflog" -msgstr "" - -#. type: Plain text -#: en/git-branch.txt:97 -msgid "" -"Create the branch's reflog. This activates recording of all changes made to " -"the branch ref, enabling use of date based sha1 expressions such as " -"\"<branchname>@\\{yesterday}\". Note that in non-bare repositories, reflogs " -"are usually enabled by default by the `core.logallrefupdates` config " -"option. The negated form `--no-create-reflog` only overrides an earlier " -"`--create-reflog`, but currently does not negate the setting of " -"`core.logallrefupdates`." +msgid "\\--" msgstr "" #. type: Plain text -#: en/git-branch.txt:106 +#: en/git-add.txt:194 en/git-rm.txt:57 msgid "" -"Reset <branchname> to <startpoint> if <branchname> exists already. Without " -"`-f` 'git branch' refuses to change an existing branch. In combination with " -"`-d` (or `--delete`), allow deleting the branch irrespective of its merged " -"status. In combination with `-m` (or `--move`), allow renaming the branch " -"even if the new branch name already exists." +"This option can be used to separate command-line options from the list of " +"files, (useful when filenames might be mistaken for command-line options)." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:108 +#. type: Title - +#: en/git-add.txt:197 en/git-apply.txt:254 en/git-archive.txt:98 +#: en/git-branch.txt:282 en/git-config.txt:261 en/git-cvsexportcommit.txt:86 +#: en/git-fmt-merge-msg.txt:53 en/git-format-patch.txt:325 en/git-gc.txt:100 +#: en/git-grep.txt:42 en/git-imap-send.txt:52 en/git-instaweb.txt:70 +#: en/git-log.txt:177 en/git-merge.txt:344 en/git-notes.txt:311 +#: en/git-rebase.txt:204 en/git-send-email.txt:436 en/git-status.txt:394 +#: en/git-svn.txt:1083 en/git-tag.txt:208 en/git-update-index.txt:519 #, no-wrap -msgid "--move" +msgid "CONFIGURATION" msgstr "" #. type: Plain text -#: en/git-branch.txt:110 -msgid "Move/rename a branch and the corresponding reflog." +#: en/git-add.txt:203 +msgid "" +"The optional configuration variable `core.excludesFile` indicates a path to " +"a file containing patterns of file names to exclude from git-add, similar to " +"$GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to " +"those in info/exclude. See linkgit:gitignore[5]." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:111 en/git-fast-export.txt:53 en/git-p4.txt:280 +#. type: Title - +#: en/git-add.txt:206 en/git-archive.txt:149 en/git-bisect.txt:369 +#: en/git-branch.txt:288 en/git-bundle.txt:96 en/git-check-attr.txt:71 +#: en/git-checkout-index.txt:143 en/git-checkout.txt:459 +#: en/git-check-ref-format.txt:122 en/git-cherry-pick.txt:156 +#: en/git-cherry.txt:43 en/git-clone.txt:283 en/git-column.txt:50 +#: en/git-commit.txt:357 en/git-config.txt:336 en/git-credential-cache.txt:55 +#: en/git-credential-store.txt:71 en/git-cvsexportcommit.txt:91 +#: en/git-daemon.txt:257 en/git-describe.txt:127 en/git-diff.txt:123 +#: en/git-fast-export.txt:146 en/git-fetch.txt:242 en/git-filter-branch.txt:234 +#: en/git-fmt-merge-msg.txt:61 en/git-for-each-ref.txt:268 +#: en/git-format-patch.txt:629 en/git-grep.txt:316 en/git-http-backend.txt:67 +#: en/git-imap-send.txt:97 en/git-init.txt:137 +#: en/git-interpret-trailers.txt:256 en/git-log.txt:115 en/git-ls-remote.txt:93 +#: en/git-merge-file.txt:81 en/git-merge.txt:310 en/git-name-rev.txt:65 +#: en/git-notes.txt:278 en/git-p4.txt:33 en/git-prune.txt:60 +#: en/git-pull.txt:210 en/git-push.txt:570 en/git-remote-ext.txt:77 +#: en/git-remote-fd.txt:37 en/git-remote.txt:207 en/git-request-pull.txt:50 +#: en/git-reset.txt:105 en/git-revert.txt:109 en/git-rev-parse.txt:430 +#: en/git-rm.txt:160 en/git-send-email.txt:475 en/git-shell.txt:66 +#: en/git-show-branch.txt:177 en/git-show-ref.txt:124 en/git-show.txt:58 +#: en/git-stash.txt:206 en/git-stripspace.txt:49 en/git-update-index.txt:351 +#: en/git-var.txt:27 en/git-worktree.txt:355 #, no-wrap -msgid "-M" +msgid "EXAMPLES" msgstr "" #. type: Plain text -#: en/git-branch.txt:113 -msgid "Shortcut for `--move --force`." +#: en/git-add.txt:210 +msgid "" +"Adds content from all `*.txt` files under `Documentation` directory and its " +"subdirectories:" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:114 en/git-grep.txt:206 en/git-show-branch.txt:119 en/diff-options.txt:218 +#. type: delimited block - +#: en/git-add.txt:213 #, no-wrap -msgid "--color[=<when>]" +msgid "$ git add Documentation/\\*.txt\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:118 +#: en/git-add.txt:218 msgid "" -"Color branches to highlight current, local, and remote-tracking branches. " -"The value must be always (the default), never, or auto." +"Note that the asterisk `*` is quoted from the shell in this example; this " +"lets the command include the files from subdirectories of `Documentation/` " +"directory." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:119 en/git-grep.txt:210 en/git-show-branch.txt:124 en/diff-options.txt:227 +#. type: Plain text +#: en/git-add.txt:220 +msgid "Considers adding content from all git-*.sh scripts:" +msgstr "" + +#. type: delimited block - +#: en/git-add.txt:223 #, no-wrap -msgid "--no-color" +msgid "$ git add git-*.sh\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:123 +#: en/git-add.txt:228 msgid "" -"Turn off branch colors, even when the configuration file gives the default " -"to color output. Same as `--color=never`." +"Because this example lets the shell expand the asterisk (i.e. you are " +"listing the files explicitly), it does not consider `subdir/git-foo.sh`." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:125 en/git-for-each-ref.txt:82 en/git-grep.txt:117 en/git-tag.txt:112 +#. type: Title - +#: en/git-add.txt:230 en/git-rebase.txt:588 #, no-wrap -msgid "--ignore-case" +msgid "INTERACTIVE MODE" msgstr "" #. type: Plain text -#: en/git-branch.txt:127 -msgid "Sorting and filtering branches are case insensitive." +#: en/git-add.txt:234 +msgid "" +"When the command enters the interactive mode, it shows the output of the " +"'status' subcommand, and then goes into its interactive command loop." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:128 en/git-status.txt:104 en/git-tag.txt:115 -#, no-wrap -msgid "--column[=<options>]" +#. type: Plain text +#: en/git-add.txt:239 en/git-clean.txt:84 +msgid "" +"The command loop shows the list of subcommands available, and gives a prompt " +"\"What now> \". In general, when the prompt ends with a single '>', you can " +"pick only one of the choices given and type return, like this:" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:129 en/git-status.txt:105 en/git-tag.txt:116 +#. type: delimited block - +#: en/git-add.txt:245 #, no-wrap -msgid "--no-column" +msgid "" +" *** Commands ***\n" +" 1: status 2: update 3: revert 4: add untracked\n" +" 5: patch 6: diff 7: quit 8: help\n" +" What now> 1\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:133 +#: en/git-add.txt:249 msgid "" -"Display branch listing in columns. See configuration variable column.branch " -"for option syntax.`--column` and `--no-column` without options are " -"equivalent to 'always' and 'never' respectively." +"You also could say `s` or `sta` or `status` above as long as the choice is " +"unique." msgstr "" #. type: Plain text -#: en/git-branch.txt:135 -msgid "This option is only applicable in non-verbose mode." +#: en/git-add.txt:251 +msgid "The main command loop has 6 subcommands (plus help and quit)." msgstr "" #. type: Labeled list -#: en/git-branch.txt:137 en/git-show-branch.txt:44 +#: en/git-add.txt:252 #, no-wrap -msgid "--remotes" +msgid "status" msgstr "" #. type: Plain text -#: en/git-branch.txt:139 -msgid "List or delete (if used with -d) the remote-tracking branches." +#: en/git-add.txt:259 +msgid "" +"This shows the change between HEAD and index (i.e. what will be committed if " +"you say `git commit`), and between index and working tree files (i.e. what " +"you could stage further before `git commit` using `git add`) for each path. " +"A sample output looks like this:" msgstr "" -#. type: Plain text -#: en/git-branch.txt:143 -msgid "List both remote-tracking branches and local branches." +#. type: delimited block - +#: en/git-add.txt:264 +#, no-wrap +msgid "" +" staged unstaged path\n" +" 1: binary nothing foo.png\n" +" 2: +403/-35 +1/-1 git-add--interactive.perl\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:147 +#: en/git-add.txt:275 msgid "" -"Activate the list mode. `git branch <pattern>` would try to create a branch, " -"use `git branch --list <pattern>` to list matching branches." +"It shows that foo.png has differences from HEAD (but that is binary so line " +"count cannot be shown) and there is no difference between indexed copy and " +"the working tree version (if the working tree version were also different, " +"'binary' would have been shown in place of 'nothing'). The other file, git-" +"add{litdd}interactive.perl, has 403 lines added and 35 lines deleted if you " +"commit what is in the index, but working tree file has further modifications " +"(one addition and one deletion)." msgstr "" #. type: Labeled list -#: en/git-branch.txt:149 +#: en/git-add.txt:276 en/git-update-ref.txt:94 #, no-wrap -msgid "-vv" +msgid "update" msgstr "" #. type: Plain text -#: en/git-branch.txt:156 +#: en/git-add.txt:285 msgid "" -"When in list mode, show sha1 and commit subject line for each head, along " -"with relationship to upstream branch (if any). If given twice, print the " -"name of the upstream branch, as well (see also `git remote show <remote>`)." +"This shows the status information and issues an \"Update>>\" prompt. When " +"the prompt ends with double '>>', you can make more than one selection, " +"concatenated with whitespace or comma. Also you can say ranges. E.g. \"2-5 " +"7,9\" to choose 2,3,4,5,7,9 from the list. If the second number in a range " +"is omitted, all remaining patches are taken. E.g. \"7-\" to choose 7,8,9 " +"from the list. You can say '*' to choose everything." msgstr "" #. type: Plain text -#: en/git-branch.txt:161 +#: en/git-add.txt:288 +msgid "What you chose are then highlighted with '*', like this:" +msgstr "" + +#. type: delimited block - +#: en/git-add.txt:293 +#, no-wrap msgid "" -"Be more quiet when creating or deleting a branch, suppressing non-error " -"messages." +" staged unstaged path\n" +" 1: binary nothing foo.png\n" +"* 2: +403/-35 +1/-1 git-add--interactive.perl\n" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:162 +#. type: Plain text +#: en/git-add.txt:297 +msgid "To remove selection, prefix the input with `-` like this:" +msgstr "" + +#. type: delimited block - +#: en/git-add.txt:300 #, no-wrap -msgid "--abbrev=<length>" +msgid "Update>> -2\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:166 +#: en/git-add.txt:304 msgid "" -"Alter the sha1's minimum display length in the output listing. The default " -"value is 7 and can be overridden by the `core.abbrev` config option." +"After making the selection, answer with an empty line to stage the contents " +"of working tree files for selected paths in the index." msgstr "" #. type: Labeled list -#: en/git-branch.txt:167 +#: en/git-add.txt:305 #, no-wrap -msgid "--no-abbrev" +msgid "revert" msgstr "" #. type: Plain text -#: en/git-branch.txt:169 -msgid "Display the full sha1s in the output listing rather than abbreviating them." +#: en/git-add.txt:310 +msgid "" +"This has a very similar UI to 'update', and the staged information for " +"selected paths are reverted to that of the HEAD version. Reverting new " +"paths makes them untracked." msgstr "" #. type: Labeled list -#: en/git-branch.txt:170 en/git-cat-file.txt:36 en/git-checkout.txt:155 en/git-diff-tree.txt:42 en/git-http-fetch.txt:29 en/git-ls-files.txt:112 en/git-ls-remote.txt:26 en/git-ls-tree.txt:47 en/git-svn.txt:296 en/blame-options.txt:25 en/fetch-options.txt:98 en/rev-list-options.txt:890 +#: en/git-add.txt:311 #, no-wrap -msgid "-t" +msgid "add untracked" +msgstr "" + +#. type: Plain text +#: en/git-add.txt:315 +msgid "" +"This has a very similar UI to 'update' and 'revert', and lets you add " +"untracked paths to the index." msgstr "" #. type: Labeled list -#: en/git-branch.txt:171 en/git-checkout.txt:156 +#: en/git-add.txt:316 #, no-wrap -msgid "--track" +msgid "patch" msgstr "" #. type: Plain text -#: en/git-branch.txt:179 +#: en/git-add.txt:323 msgid "" -"When creating a new branch, set up `branch.<name>.remote` and " -"`branch.<name>.merge` configuration entries to mark the start-point branch " -"as \"upstream\" from the new branch. This configuration will tell git to " -"show the relationship between the two branches in `git status` and `git " -"branch -v`. Furthermore, it directs `git pull` without arguments to pull " -"from the upstream when the new branch is checked out." +"This lets you choose one path out of a 'status' like selection. After " +"choosing the path, it presents the diff between the index and the working " +"tree file and asks you if you want to stage the change of each hunk. You " +"can select one of the following options and type return:" msgstr "" #. type: Plain text -#: en/git-branch.txt:185 +#: en/git-add.txt:338 +#, no-wrap msgid "" -"This behavior is the default when the start point is a remote-tracking " -"branch. Set the branch.autoSetupMerge configuration variable to `false` if " -"you want `git checkout` and `git branch` to always behave as if `--no-track` " -"were given. Set it to `always` if you want this behavior when the " -"start-point is either a local or remote-tracking branch." +"y - stage this hunk\n" +"n - do not stage this hunk\n" +"q - quit; do not stage this hunk or any of the remaining ones\n" +"a - stage this hunk and all later hunks in the file\n" +"d - do not stage this hunk or any of the later hunks in the file\n" +"g - select a hunk to go to\n" +"/ - search for a hunk matching the given regex\n" +"j - leave this hunk undecided, see next undecided hunk\n" +"J - leave this hunk undecided, see next hunk\n" +"k - leave this hunk undecided, see previous undecided hunk\n" +"K - leave this hunk undecided, see previous hunk\n" +"s - split the current hunk into smaller hunks\n" +"e - manually edit the current hunk\n" +"? - print help\n" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:186 en/git-checkout.txt:170 -#, no-wrap -msgid "--no-track" +#. type: Plain text +#: en/git-add.txt:341 +msgid "" +"After deciding the fate for all hunks, if there is any hunk that was chosen, " +"the index is updated with the selected hunks." msgstr "" #. type: Plain text -#: en/git-branch.txt:189 en/git-checkout.txt:173 +#: en/git-add.txt:344 msgid "" -"Do not set up \"upstream\" configuration, even if the branch.autoSetupMerge " -"configuration variable is true." +"You can omit having to type return here, by setting the configuration " +"variable `interactive.singleKey` to `true`." msgstr "" #. type: Labeled list -#: en/git-branch.txt:190 en/git-push.txt:246 +#: en/git-add.txt:345 #, no-wrap -msgid "--set-upstream" +msgid "diff" msgstr "" #. type: Plain text -#: en/git-branch.txt:195 +#: en/git-add.txt:349 msgid "" -"If specified branch does not exist yet or if `--force` has been given, acts " -"exactly like `--track`. Otherwise sets up configuration like `--track` would " -"when creating the branch, except that where branch points to is not changed." +"This lets you review what will be committed (i.e. between HEAD and index)." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:196 +#. type: Title - +#: en/git-add.txt:352 #, no-wrap -msgid "-u <upstream>" +msgid "EDITING PATCHES" +msgstr "" + +#. type: Plain text +#: en/git-add.txt:362 +msgid "" +"Invoking `git add -e` or selecting `e` from the interactive hunk selector " +"will open a patch in your editor; after the editor exits, the result is " +"applied to the index. You are free to make arbitrary changes to the patch, " +"but note that some changes may have confusing results, or even result in a " +"patch that cannot be applied. If you want to abort the operation entirely " +"(i.e., stage nothing new in the index), simply delete all lines of the " +"patch. The list below describes some common things you may see in a patch, " +"and which editing operations make sense on them." msgstr "" #. type: Labeled list -#: en/git-branch.txt:197 +#: en/git-add.txt:364 #, no-wrap -msgid "--set-upstream-to=<upstream>" +msgid "added content" msgstr "" #. type: Plain text -#: en/git-branch.txt:201 +#: en/git-add.txt:368 msgid "" -"Set up <branchname>'s tracking information so <upstream> is considered " -"<branchname>'s upstream branch. If no <branchname> is specified, then it " -"defaults to the current branch." +"Added content is represented by lines beginning with \"{plus}\". You can " +"prevent staging any addition lines by deleting them." msgstr "" #. type: Labeled list -#: en/git-branch.txt:202 +#: en/git-add.txt:369 #, no-wrap -msgid "--unset-upstream" +msgid "removed content" msgstr "" #. type: Plain text -#: en/git-branch.txt:205 +#: en/git-add.txt:373 msgid "" -"Remove the upstream information for <branchname>. If no branch is specified " -"it defaults to the current branch." +"Removed content is represented by lines beginning with \"-\". You can " +"prevent staging their removal by converting the \"-\" to a \" \" (space)." msgstr "" #. type: Labeled list -#: en/git-branch.txt:206 +#: en/git-add.txt:374 #, no-wrap -msgid "--edit-description" +msgid "modified content" msgstr "" #. type: Plain text -#: en/git-branch.txt:211 +#: en/git-add.txt:381 msgid "" -"Open an editor and edit the text to explain what the branch is for, to be " -"used by various other commands (e.g. `format-patch`, `request-pull`, and " -"`merge` (if enabled)). Multi-line explanations may be used." +"Modified content is represented by \"-\" lines (removing the old content) " +"followed by \"{plus}\" lines (adding the replacement content). You can " +"prevent staging the modification by converting \"-\" lines to \" \", and " +"removing \"{plus}\" lines. Beware that modifying only half of the pair is " +"likely to introduce confusing changes to the index." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:212 en/git-tag.txt:123 -#, no-wrap -msgid "--contains [<commit>]" +#. type: Plain text +#: en/git-add.txt:389 +msgid "" +"There are also more complex operations that can be performed. But beware " +"that because the patch is applied only to the index and not the working " +"tree, the working tree will appear to \"undo\" the change in the index. For " +"example, introducing a new line into the index that is in neither the HEAD " +"nor the working tree will stage the new line for commit, but the line will " +"appear to be reverted in the working tree." msgstr "" #. type: Plain text -#: en/git-branch.txt:215 -msgid "" -"Only list branches which contain the specified commit (HEAD if not " -"specified). Implies `--list`." +#: en/git-add.txt:391 +msgid "Avoid using these constructs, or do so with extreme caution." msgstr "" #. type: Labeled list -#: en/git-branch.txt:216 +#: en/git-add.txt:393 #, no-wrap -msgid "--merged [<commit>]" +msgid "removing untouched content" msgstr "" #. type: Plain text -#: en/git-branch.txt:219 +#: en/git-add.txt:399 msgid "" -"Only list branches whose tips are reachable from the specified commit (HEAD " -"if not specified). Implies `--list`." +"Content which does not differ between the index and working tree may be " +"shown on context lines, beginning with a \" \" (space). You can stage " +"context lines for removal by converting the space to a \"-\". The resulting " +"working tree file will appear to re-add the content." msgstr "" #. type: Labeled list -#: en/git-branch.txt:220 +#: en/git-add.txt:400 #, no-wrap -msgid "--no-merged [<commit>]" +msgid "modifying existing content" msgstr "" #. type: Plain text -#: en/git-branch.txt:223 +#: en/git-add.txt:407 msgid "" -"Only list branches whose tips are not reachable from the specified commit " -"(HEAD if not specified). Implies `--list`." +"One can also modify context lines by staging them for removal (by converting " +"\" \" to \"-\") and adding a \"{plus}\" line with the new content. " +"Similarly, one can modify \"{plus}\" lines for existing additions or " +"modifications. In all cases, the new modification will appear reverted in " +"the working tree." msgstr "" #. type: Labeled list -#: en/git-branch.txt:224 +#: en/git-add.txt:408 #, no-wrap -msgid "<branchname>" +msgid "new content" msgstr "" #. type: Plain text -#: en/git-branch.txt:229 +#: en/git-add.txt:413 msgid "" -"The name of the branch to create or delete. The new branch name must pass " -"all checks defined by linkgit:git-check-ref-format[1]. Some of these checks " -"may restrict the characters allowed in a branch name." +"You may also add new content that does not exist in the patch; simply add " +"new lines, each starting with \"{plus}\". The addition will appear reverted " +"in the working tree." msgstr "" -#. type: Labeled list -#: en/git-branch.txt:230 +#. type: Plain text +#: en/git-add.txt:417 +msgid "" +"There are also several operations which should be avoided entirely, as they " +"will make the patch impossible to apply:" +msgstr "" + +#. type: Plain text +#: en/git-add.txt:419 +msgid "adding context (\" \") or removal (\"-\") lines" +msgstr "" + +#. type: Plain text +#: en/git-add.txt:420 +msgid "deleting context or removal lines" +msgstr "" + +#. type: Plain text +#: en/git-add.txt:421 +msgid "modifying the contents of context or removal lines" +msgstr "" + +#. type: Title - +#: en/git-add.txt:423 en/git-am.txt:235 en/git-annotate.txt:28 +#: en/git-apply.txt:280 en/git-archive.txt:192 en/git-bisect.txt:493 +#: en/git-blame.txt:230 en/git-branch.txt:342 en/git-check-attr.txt:115 +#: en/git-check-ignore.txt:113 en/git-cherry-pick.txt:228 en/git-cherry.txt:140 +#: en/git-clean.txt:136 en/git-commit-tree.txt:113 en/git-commit.txt:487 +#: en/git-difftool.txt:135 en/git-diff.txt:193 en/git-fast-export.txt:234 +#: en/git-fast-import.txt:1487 en/git-fetch-pack.txt:127 en/git-fetch.txt:294 +#: en/git-fmt-merge-msg.txt:73 en/git-for-each-ref.txt:384 +#: en/git-format-patch.txt:674 en/git-gc.txt:204 en/git-gui.txt:103 +#: en/git-imap-send.txt:135 en/git-instaweb.txt:89 +#: en/git-interpret-trailers.txt:385 en/git-ls-files.txt:243 +#: en/git-ls-remote.txt:112 en/git-merge.txt:353 en/git-pack-objects.txt:399 +#: en/git-pack-redundant.txt:43 en/git-prune-packed.txt:41 en/git-prune.txt:81 +#: en/git-pull.txt:257 en/git-read-tree.txt:432 en/git-receive-pack.txt:247 +#: en/git-remote-ext.txt:120 en/git-remote-fd.txt:54 +#: en/git-remote-testgit.txt:25 en/git-remote.txt:249 en/git-repack.txt:182 +#: en/git-replace.txt:149 en/git-revert.txt:124 en/git-rm.txt:184 +#: en/git-send-email.txt:507 en/git-shell.txt:99 en/git-show-ref.txt:178 +#: en/git-stash.txt:292 en/git-status.txt:430 en/git-submodule.txt:424 +#: en/git-svn.txt:1169 en/git-tag.txt:374 en/git.txt:869 +#: en/git-update-index.txt:547 en/git-upload-pack.txt:48 en/git-var.txt:63 #, no-wrap -msgid "<start-point>" +msgid "SEE ALSO" msgstr "" #. type: Plain text -#: en/git-branch.txt:234 +#: en/git-add.txt:430 msgid "" -"The new branch head will point to this commit. It may be given as a branch " -"name, a commit-id, or a tag. If this option is omitted, the current HEAD " -"will be used instead." +"linkgit:git-status[1] linkgit:git-rm[1] linkgit:git-reset[1] linkgit:git-" +"mv[1] linkgit:git-commit[1] linkgit:git-update-index[1]" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:235 +#. type: Title - +#: en/git-add.txt:432 en/git-am.txt:239 en/git-annotate.txt:32 +#: en/git-apply.txt:284 en/git-archimport.txt:112 en/git-archive.txt:196 +#: en/git-bisect.txt:498 en/git-blame.txt:234 en/git-branch.txt:350 +#: en/git-bundle.txt:204 en/git-cat-file.txt:318 en/git-check-attr.txt:119 +#: en/git-check-ignore.txt:119 en/git-check-mailmap.txt:46 +#: en/git-checkout-index.txt:176 en/git-checkout.txt:545 +#: en/git-check-ref-format.txt:138 en/git-cherry-pick.txt:232 +#: en/git-cherry.txt:144 en/git-citool.txt:24 en/git-clean.txt:140 +#: en/git-clone.txt:321 en/git-column.txt:78 en/git-commit-tree.txt:117 +#: en/git-commit.txt:495 en/git-config.txt:490 en/git-count-objects.txt:53 +#: en/git-credential-cache--daemon.txt:29 en/git-credential-cache.txt:79 +#: en/git-credential-store.txt:105 en/git-cvsexportcommit.txt:117 +#: en/git-cvsimport.txt:227 en/git-cvsserver.txt:432 en/git-daemon.txt:339 +#: en/git-describe.txt:206 en/git-diff-files.txt:51 en/git-diff-index.txt:121 +#: en/git-difftool.txt:146 en/git-diff-tree.txt:117 en/git-diff.txt:202 +#: en/git-fast-export.txt:238 en/git-fast-import.txt:1491 +#: en/git-fetch-pack.txt:131 en/git-fetch.txt:298 en/git-filter-branch.txt:480 +#: en/git-fmt-merge-msg.txt:77 en/git-for-each-ref.txt:388 +#: en/git-format-patch.txt:678 en/git-fsck-objects.txt:21 en/git-fsck.txt:161 +#: en/git-gc.txt:211 en/git-get-tar-commit-id.txt:29 en/git-grep.txt:334 +#: en/git-gui.txt:126 en/git-hash-object.txt:64 en/git-help.txt:203 +#: en/git-http-backend.txt:276 en/git-http-fetch.txt:48 en/git-http-push.txt:96 +#: en/git-imap-send.txt:139 en/git-index-pack.txt:107 en/git-init-db.txt:22 +#: en/git-init.txt:153 en/git-instaweb.txt:93 en/git-interpret-trailers.txt:389 +#: en/git-log.txt:234 en/git-ls-files.txt:247 en/git-ls-remote.txt:116 +#: en/git-ls-tree.txt:103 en/git-mailinfo.txt:101 en/git-mailsplit.txt:56 +#: en/git-merge-base.txt:230 en/git-merge-file.txt:94 en/git-merge-index.txt:78 +#: en/git-merge-one-file.txt:20 en/git-mergetool--lib.txt:46 +#: en/git-mergetool.txt:111 en/git-merge-tree.txt:28 en/git-merge.txt:362 +#: en/git-mktag.txt:38 en/git-mktree.txt:39 en/git-mv.txt:68 +#: en/git-name-rev.txt:88 en/git-notes.txt:404 en/git-pack-objects.txt:405 +#: en/git-pack-redundant.txt:49 en/git-pack-refs.txt:72 +#: en/git-parse-remote.txt:22 en/git-patch-id.txt:60 en/git-prune-packed.txt:46 +#: en/git-prune.txt:88 en/git-pull.txt:261 en/git-push.txt:672 +#: en/git-quiltimport.txt:63 en/git-read-tree.txt:437 en/git-rebase.txt:1048 +#: en/git-receive-pack.txt:251 en/git-reflog.txt:137 en/git-remote-ext.txt:124 +#: en/git-remote-fd.txt:58 en/git-remote-testgit.txt:29 en/git-remote.txt:255 +#: en/git-repack.txt:187 en/git-replace.txt:160 en/git-request-pull.txt:78 +#: en/git-rerere.txt:221 en/git-reset.txt:473 en/git-revert.txt:128 +#: en/git-rev-list.txt:122 en/git-rev-parse.txt:455 en/git-rm.txt:188 +#: en/git-send-email.txt:511 en/git-send-pack.txt:155 en/git-shell.txt:105 +#: en/git-sh-i18n--envsubst.txt:35 en/git-sh-i18n.txt:42 en/git-shortlog.txt:89 +#: en/git-show-branch.txt:203 en/git-show-index.txt:40 en/git-show-ref.txt:185 +#: en/git-show.txt:86 en/git-sh-setup.txt:94 en/git-stage.txt:22 +#: en/git-stash.txt:299 en/git-status.txt:434 en/git-stripspace.txt:93 +#: en/git-submodule.txt:428 en/git-svn.txt:1173 en/git-symbolic-ref.txt:68 +#: en/git-tag.txt:379 en/git.txt:877 en/git-unpack-file.txt:27 +#: en/git-unpack-objects.txt:51 en/git-update-index.txt:553 +#: en/git-update-ref.txt:151 en/git-update-server-info.txt:43 +#: en/git-upload-archive.txt:61 en/git-upload-pack.txt:52 en/git-var.txt:69 +#: en/git-verify-commit.txt:31 en/git-verify-pack.txt:52 +#: en/git-verify-tag.txt:31 en/git-web--browse.txt:123 +#: en/git-whatchanged.txt:42 en/git-worktree.txt:381 en/git-write-tree.txt:41 #, no-wrap -msgid "<oldbranch>" +msgid "GIT" msgstr "" #. type: Plain text -#: en/git-branch.txt:237 -msgid "The name of an existing branch to rename." +#: en/git-add.txt:433 en/git-am.txt:240 en/git-annotate.txt:33 +#: en/git-apply.txt:285 en/git-archimport.txt:113 en/git-archive.txt:197 +#: en/git-bisect.txt:499 en/git-blame.txt:235 en/git-branch.txt:351 +#: en/git-bundle.txt:205 en/git-cat-file.txt:319 en/git-check-attr.txt:120 +#: en/git-check-ignore.txt:120 en/git-check-mailmap.txt:47 +#: en/git-checkout-index.txt:177 en/git-checkout.txt:546 +#: en/git-check-ref-format.txt:139 en/git-cherry-pick.txt:233 +#: en/git-cherry.txt:145 en/git-citool.txt:25 en/git-clean.txt:141 +#: en/git-clone.txt:322 en/git-column.txt:79 en/git-commit-tree.txt:118 +#: en/git-commit.txt:496 en/git-config.txt:491 en/git-count-objects.txt:54 +#: en/git-credential-cache--daemon.txt:30 en/git-credential-cache.txt:80 +#: en/git-credential-store.txt:106 en/git-cvsexportcommit.txt:118 +#: en/git-cvsimport.txt:228 en/git-cvsserver.txt:433 en/git-daemon.txt:340 +#: en/git-describe.txt:207 en/git-diff-files.txt:52 en/git-diff-index.txt:122 +#: en/git-difftool.txt:147 en/git-diff-tree.txt:118 en/git-diff.txt:203 +#: en/git-fast-export.txt:239 en/git-fast-import.txt:1492 +#: en/git-fetch-pack.txt:132 en/git-fetch.txt:299 en/git-filter-branch.txt:481 +#: en/git-fmt-merge-msg.txt:78 en/git-for-each-ref.txt:389 +#: en/git-format-patch.txt:679 en/git-fsck-objects.txt:22 en/git-fsck.txt:162 +#: en/git-gc.txt:212 en/git-get-tar-commit-id.txt:30 en/git-grep.txt:335 +#: en/git-gui.txt:127 en/git-hash-object.txt:65 en/git-help.txt:204 +#: en/git-http-backend.txt:277 en/git-http-fetch.txt:49 en/git-http-push.txt:97 +#: en/git-imap-send.txt:140 en/git-index-pack.txt:108 en/git-init-db.txt:23 +#: en/git-init.txt:154 en/git-instaweb.txt:94 en/git-interpret-trailers.txt:390 +#: en/git-log.txt:235 en/git-ls-files.txt:248 en/git-ls-remote.txt:117 +#: en/git-ls-tree.txt:104 en/git-mailinfo.txt:102 en/git-mailsplit.txt:57 +#: en/git-merge-base.txt:231 en/git-merge-file.txt:95 en/git-merge-index.txt:79 +#: en/git-merge-one-file.txt:21 en/git-mergetool--lib.txt:47 +#: en/git-mergetool.txt:112 en/git-merge-tree.txt:29 en/git-merge.txt:363 +#: en/git-mktag.txt:39 en/git-mktree.txt:40 en/git-mv.txt:69 +#: en/git-name-rev.txt:89 en/git-notes.txt:405 en/git-pack-objects.txt:406 +#: en/git-pack-redundant.txt:50 en/git-pack-refs.txt:73 +#: en/git-parse-remote.txt:23 en/git-patch-id.txt:61 en/git-prune-packed.txt:47 +#: en/git-prune.txt:89 en/git-pull.txt:262 en/git-push.txt:673 +#: en/git-quiltimport.txt:64 en/git-read-tree.txt:438 en/git-rebase.txt:1049 +#: en/git-receive-pack.txt:252 en/git-reflog.txt:138 en/git-remote-ext.txt:125 +#: en/git-remote-fd.txt:59 en/git-remote-testgit.txt:30 en/git-remote.txt:256 +#: en/git-repack.txt:188 en/git-replace.txt:161 en/git-request-pull.txt:79 +#: en/git-rerere.txt:222 en/git-reset.txt:474 en/git-revert.txt:129 +#: en/git-rev-list.txt:123 en/git-rev-parse.txt:456 en/git-rm.txt:189 +#: en/git-send-email.txt:512 en/git-send-pack.txt:156 en/git-shell.txt:106 +#: en/git-sh-i18n--envsubst.txt:36 en/git-sh-i18n.txt:43 en/git-shortlog.txt:90 +#: en/git-show-branch.txt:204 en/git-show-index.txt:41 en/git-show-ref.txt:186 +#: en/git-show.txt:87 en/git-sh-setup.txt:95 en/git-stage.txt:23 +#: en/git-stash.txt:300 en/git-status.txt:435 en/git-stripspace.txt:94 +#: en/git-submodule.txt:429 en/git-svn.txt:1174 en/git-symbolic-ref.txt:69 +#: en/git-tag.txt:380 en/git.txt:878 en/git-unpack-file.txt:28 +#: en/git-unpack-objects.txt:52 en/git-update-index.txt:554 +#: en/git-update-ref.txt:152 en/git-update-server-info.txt:44 +#: en/git-upload-archive.txt:62 en/git-upload-pack.txt:53 en/git-var.txt:70 +#: en/git-verify-commit.txt:32 en/git-verify-pack.txt:53 +#: en/git-verify-tag.txt:32 en/git-web--browse.txt:124 +#: en/git-whatchanged.txt:43 en/git-worktree.txt:382 en/git-write-tree.txt:42 +msgid "Part of the linkgit:git[1] suite" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:238 +#. type: Title = +#: en/git-am.txt:2 #, no-wrap -msgid "<newbranch>" +msgid "git-am(1)" msgstr "" #. type: Plain text -#: en/git-branch.txt:241 -msgid "" -"The new name for an existing branch. The same restrictions as for " -"<branchname> apply." +#: en/git-am.txt:7 +msgid "git-am - Apply a series of patches from a mailbox" msgstr "" -#. type: Labeled list -#: en/git-branch.txt:242 en/git-tag.txt:98 +#. type: Plain text +#: en/git-am.txt:20 #, no-wrap -msgid "--sort=<key>" +msgid "" +"'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]\n" +"\t [--[no-]3way] [--interactive] [--committer-date-is-author-date]\n" +"\t [--ignore-date] [--ignore-space-change | --ignore-whitespace]\n" +"\t [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]\n" +"\t [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]\n" +"\t [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]\n" +"\t [(<mbox> | <Maildir>)...]\n" +"'git am' (--continue | --skip | --abort | --quit | --show-current-patch)\n" msgstr "" #. type: Plain text -#: en/git-branch.txt:251 +#: en/git-am.txt:26 msgid "" -"Sort based on the key given. Prefix `-` to sort in descending order of the " -"value. You may use the --sort=<key> option multiple times, in which case the " -"last key becomes the primary key. The keys supported are the same as those " -"in `git for-each-ref`. Sort order defaults to sorting based on the full " -"refname (including `refs/...` prefix). This lists detached HEAD (if present) " -"first, then local branches and finally remote-tracking branches." +"Splits mail messages in a mailbox into commit log message, authorship " +"information and patches, and applies them to the current branch." msgstr "" #. type: Labeled list -#: en/git-branch.txt:253 en/git-for-each-ref.txt:67 en/git-tag.txt:127 +#: en/git-am.txt:29 #, no-wrap -msgid "--points-at <object>" +msgid "(<mbox>|<Maildir>)..." msgstr "" #. type: Plain text -#: en/git-branch.txt:255 -msgid "Only list branches of the given object." +#: en/git-am.txt:33 +msgid "" +"The list of mailbox files to read patches from. If you do not supply this " +"argument, the command reads from the standard input. If you supply " +"directories, they will be treated as Maildirs." msgstr "" #. type: Labeled list -#: en/git-branch.txt:256 +#: en/git-am.txt:35 en/git-cherry-pick.txt:101 en/git-commit.txt:166 +#: en/git-format-patch.txt:117 en/git-rebase.txt:382 en/git-revert.txt:90 +#: en/merge-options.txt:61 #, no-wrap -msgid "--format <format>" +msgid "--signoff" msgstr "" #. type: Plain text -#: en/git-branch.txt:260 +#: en/git-am.txt:39 msgid "" -"A string that interpolates `%(fieldname)` from the object pointed at by a " -"ref being shown. The format is the same as that of " -"linkgit:git-for-each-ref[1]." +"Add a `Signed-off-by:` line to the commit message, using the committer " +"identity of yourself. See the signoff option in linkgit:git-commit[1] for " +"more information." msgstr "" -#. type: Title - -#: en/git-branch.txt:262 en/git-clone.txt:258 en/git-filter-branch.txt:214 en/git-grep.txt:298 en/git-gui.txt:52 en/git-imap-send.txt:106 en/git-push.txt:467 en/git-remote.txt:203 en/git-update-index.txt:337 en/git-whatchanged.txt:29 -#, no-wrap -msgid "Examples" +#. type: Plain text +#: en/git-am.txt:43 +msgid "Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." msgstr "" #. type: Labeled list -#: en/git-branch.txt:264 +#: en/git-am.txt:44 en/git-quiltimport.txt:59 #, no-wrap -msgid "Start development from a known tag" +msgid "--keep-non-patch" msgstr "" -#. type: delimited block - -#: en/git-branch.txt:271 +#. type: Plain text +#: en/git-am.txt:46 en/git-quiltimport.txt:61 +msgid "Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." +msgstr "" + +#. type: Labeled list +#: en/git-am.txt:47 #, no-wrap -msgid "" -"$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6\n" -"$ cd my2.6\n" -"$ git branch my2.6.14 v2.6.14 <1>\n" -"$ git checkout my2.6.14\n" +msgid "--[no-]keep-cr" msgstr "" #. type: Plain text -#: en/git-branch.txt:275 +#: en/git-am.txt:52 msgid "" -"This step and the next one could be combined into a single step with " -"\"checkout -b my2.6.14 v2.6.14\"." +"With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1]) with " +"the same option, to prevent it from stripping CR at the end of lines. `am." +"keepcr` configuration variable can be used to specify the default " +"behaviour. `--no-keep-cr` is useful to override `am.keepcr`." msgstr "" #. type: Labeled list -#: en/git-branch.txt:276 +#: en/git-am.txt:53 en/git-blame.txt:52 en/git-branch.txt:120 +#: en/git-cvsexportcommit.txt:37 en/git-diff-files.txt:37 +#: en/git-diff-tree.txt:88 en/git-grep.txt:216 en/git-help.txt:54 +#: en/git-ls-files.txt:35 en/git-shortlog.txt:50 en/git-stripspace.txt:42 +#: en/rev-list-options.txt:950 #, no-wrap -msgid "Delete an unneeded branch" +msgid "-c" msgstr "" -#. type: delimited block - -#: en/git-branch.txt:283 +#. type: Labeled list +#: en/git-am.txt:54 en/git-mailinfo.txt:74 #, no-wrap -msgid "" -"$ git clone git://git.kernel.org/.../git.git my.git\n" -"$ cd my.git\n" -"$ git branch -d -r origin/todo origin/html origin/man <1>\n" -"$ git branch -D test <2>\n" +msgid "--scissors" msgstr "" #. type: Plain text -#: en/git-branch.txt:288 +#: en/git-am.txt:58 msgid "" -"Delete the remote-tracking branches \"todo\", \"html\" and \"man\". The next " -"'fetch' or 'pull' will create them again unless you configure them not to. " -"See linkgit:git-fetch[1]." +"Remove everything in body before a scissors line (see linkgit:git-" +"mailinfo[1]). Can be activated by default using the `mailinfo.scissors` " +"configuration variable." +msgstr "" + +#. type: Labeled list +#: en/git-am.txt:59 en/git-mailinfo.txt:90 +#, no-wrap +msgid "--no-scissors" msgstr "" #. type: Plain text -#: en/git-branch.txt:290 -msgid "" -"Delete the \"test\" branch even if the \"master\" branch (or whichever " -"branch is currently checked out) does not have all commits from the test " -"branch." +#: en/git-am.txt:61 +msgid "Ignore scissors lines (see linkgit:git-mailinfo[1])." msgstr "" -#. type: Title - -#: en/git-branch.txt:293 en/git-filter-branch.txt:431 en/git-gc.txt:138 en/git-prune.txt:68 +#. type: Labeled list +#: en/git-am.txt:62 en/git-branch.txt:113 en/git-checkout.txt:227 +#: en/git-cvsexportcommit.txt:60 en/git-cvsimport.txt:118 +#: en/git-diff-index.txt:32 en/git-diff-tree.txt:66 en/git-help.txt:69 +#: en/git-instaweb.txt:36 en/git-ls-files.txt:43 en/git-mailinfo.txt:69 +#: en/git-read-tree.txt:34 en/git-rebase.txt:267 en/git-svn.txt:308 +#: en/git-svn.txt:675 en/git-symbolic-ref.txt:49 en/rev-list-options.txt:963 #, no-wrap -msgid "Notes" +msgid "-m" msgstr "" -#. type: Plain text -#: en/git-branch.txt:298 -msgid "" -"If you are creating a branch that you want to checkout immediately, it is " -"easier to use the git checkout command with its `-b` option to create a " -"branch and check it out with a single command." +#. type: Labeled list +#: en/git-am.txt:63 en/git-mailinfo.txt:70 +#, no-wrap +msgid "--message-id" msgstr "" #. type: Plain text -#: en/git-branch.txt:301 +#: en/git-am.txt:68 msgid "" -"The options `--contains`, `--merged` and `--no-merged` serve three related " -"but different purposes:" +"Pass the `-m` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]), so that " +"the Message-ID header is added to the commit message. The `am.messageid` " +"configuration variable can be used to specify the default behaviour." +msgstr "" + +#. type: Labeled list +#: en/git-am.txt:69 +#, no-wrap +msgid "--no-message-id" msgstr "" #. type: Plain text -#: en/git-branch.txt:305 +#: en/git-am.txt:72 msgid "" -"`--contains <commit>` is used to find all branches which will need special " -"attention if <commit> were to be rebased or amended, since those branches " -"contain the specified <commit>." +"Do not add the Message-ID header to the commit message. `no-message-id` is " +"useful to override `am.messageid`." msgstr "" #. type: Plain text -#: en/git-branch.txt:308 -msgid "" -"`--merged` is used to find all branches which can be safely deleted, since " -"those branches are fully contained by HEAD." +#: en/git-am.txt:76 +msgid "Be quiet. Only print error messages." +msgstr "" + +#. type: Labeled list +#: en/git-am.txt:78 +#, no-wrap +msgid "--utf8" msgstr "" #. type: Plain text -#: en/git-branch.txt:311 +#: en/git-am.txt:84 msgid "" -"`--no-merged` is used to find branches which are candidates for merging into " -"HEAD, since those branches are not fully contained by HEAD." +"Pass `-u` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]). The " +"proposed commit log message taken from the e-mail is re-coded into UTF-8 " +"encoding (configuration variable `i18n.commitencoding` can be used to " +"specify project's preferred encoding if it is not UTF-8)." msgstr "" #. type: Plain text -#: en/git-branch.txt:319 +#: en/git-am.txt:87 +#, no-wrap msgid "" -"linkgit:git-check-ref-format[1], linkgit:git-fetch[1], " -"linkgit:git-remote[1], " -"link:user-manual.html#what-is-a-branch[``Understanding history: What is a " -"branch?''] in the Git User's Manual." +"This was optional in prior versions of git, but now it is the\n" +"default. You can use `--no-utf8` to override this.\n" msgstr "" -#. type: Title = -#: en/git-bundle.txt:2 +#. type: Labeled list +#: en/git-am.txt:88 #, no-wrap -msgid "git-bundle(1)" +msgid "--no-utf8" msgstr "" #. type: Plain text -#: en/git-bundle.txt:7 -msgid "git-bundle - Move objects and refs by archive" +#: en/git-am.txt:91 +msgid "Pass `-n` flag to 'git mailinfo' (see linkgit:git-mailinfo[1])." msgstr "" -#. type: Plain text -#: en/git-bundle.txt:16 +#. type: Labeled list +#: en/git-am.txt:92 en/git-apply.txt:85 #, no-wrap -msgid "" -"'git bundle' create <file> <git-rev-list-args>\n" -"'git bundle' verify <file>\n" -"'git bundle' list-heads <file> [<refname>...]\n" -"'git bundle' unbundle <file> [<refname>...]\n" +msgid "-3" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:32 -msgid "" -"Some workflows require that one or more branches of development on one " -"machine be replicated on another machine, but the two machines cannot be " -"directly connected, and therefore the interactive Git protocols (git, ssh, " -"http) cannot be used. This command provides support for 'git fetch' and " -"'git pull' to operate by packaging objects and references in an archive at " -"the originating machine, then importing those into another repository using " -"'git fetch' and 'git pull' after moving the archive by some means (e.g., by " -"sneakernet). As no direct connection between the repositories exists, the " -"user must specify a basis for the bundle that is held by the destination " -"repository: the bundle assumes that all objects in the basis are already in " -"the destination repository." +#. type: Labeled list +#: en/git-am.txt:93 en/git-apply.txt:86 +#, no-wrap +msgid "--3way" msgstr "" #. type: Labeled list -#: en/git-bundle.txt:36 +#: en/git-am.txt:94 #, no-wrap -msgid "create <file>" +msgid "--no-3way" msgstr "" #. type: Plain text -#: en/git-bundle.txt:39 +#: en/git-am.txt:101 msgid "" -"Used to create a bundle named 'file'. This requires the 'git-rev-list-args' " -"arguments to define the bundle contents." +"When the patch does not apply cleanly, fall back on 3-way merge if the patch " +"records the identity of blobs it is supposed to apply to and we have those " +"blobs available locally. `--no-3way` can be used to override am.threeWay " +"configuration variable. For more information, see am.threeWay in linkgit:git-" +"config[1]." msgstr "" -#. type: Labeled list -#: en/git-bundle.txt:40 +#. type: Plain text +#: en/git-am.txt:103 en/git-apply.txt:183 en/git-rebase.txt:368 +#: en/git-rebase.txt:518 #, no-wrap -msgid "verify <file>" +msgid "--ignore-whitespace" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:47 -msgid "" -"Used to check that a bundle file is valid and will apply cleanly to the " -"current repository. This includes checks on the bundle format itself as " -"well as checking that the prerequisite commits exist and are fully linked in " -"the current repository. 'git bundle' prints a list of missing commits, if " -"any, and exits with a non-zero status." +#. type: Labeled list +#: en/git-am.txt:104 en/git-rebase.txt:369 +#, no-wrap +msgid "--whitespace=<option>" msgstr "" #. type: Labeled list -#: en/git-bundle.txt:48 +#: en/git-am.txt:105 en/git-apply.txt:129 en/git-rebase.txt:332 #, no-wrap -msgid "list-heads <file>" +msgid "-C<n>" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:52 -msgid "" -"Lists the references defined in the bundle. If followed by a list of " -"references, only references matching those given are printed out." +#. type: Labeled list +#: en/git-am.txt:106 en/git-apply.txt:123 +#, no-wrap +msgid "-p<n>" msgstr "" #. type: Labeled list -#: en/git-bundle.txt:53 +#: en/git-am.txt:107 #, no-wrap -msgid "unbundle <file>" +msgid "--directory=<dir>" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:59 -msgid "" -"Passes the objects in the bundle to 'git index-pack' for storage in the " -"repository, then prints the names of all defined references. If a list of " -"references is given, only references matching those in the list are " -"printed. This command is really plumbing, intended to be called only by 'git " -"fetch'." +#. type: Labeled list +#: en/git-am.txt:108 +#, no-wrap +msgid "--exclude=<path>" msgstr "" #. type: Labeled list -#: en/git-bundle.txt:60 +#: en/git-am.txt:109 #, no-wrap -msgid "<git-rev-list-args>" +msgid "--include=<path>" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:69 -msgid "" -"A list of arguments, acceptable to 'git rev-parse' and 'git rev-list' (and " -"containing a named ref, see SPECIFYING REFERENCES below), that specifies the " -"specific objects and references to transport. For example, " -"`master~10..master` causes the current master reference to be packaged along " -"with all objects added since its 10th ancestor commit. There is no explicit " -"limit to the number of references and objects that may be packaged." +#. type: Labeled list +#: en/git-am.txt:110 en/git-apply.txt:108 +#, no-wrap +msgid "--reject" msgstr "" #. type: Plain text -#: en/git-bundle.txt:77 -#, no-wrap +#: en/git-am.txt:114 msgid "" -"[<refname>...]::\n" -"\tA list of references used to limit the references reported as\n" -"\tavailable. This is principally of use to 'git fetch', which\n" -"\texpects to receive only those references asked for and not\n" -"\tnecessarily everything in the pack (in this case, 'git bundle' acts\n" -"\tlike 'git fetch-pack').\n" +"These flags are passed to the 'git apply' (see linkgit:git-apply[1]) " +"program that applies the patch." msgstr "" -#. type: Title - -#: en/git-bundle.txt:79 +#. type: Labeled list +#: en/git-am.txt:115 #, no-wrap -msgid "SPECIFYING REFERENCES" +msgid "--patch-format" msgstr "" #. type: Plain text -#: en/git-bundle.txt:89 +#: en/git-am.txt:121 msgid "" -"'git bundle' will only package references that are shown by 'git show-ref': " -"this includes heads, tags, and remote heads. References such as `master~1` " -"cannot be packaged, but are perfectly suitable for defining the basis. More " -"than one reference may be packaged, and more than one basis can be " -"specified. The objects packaged are those not contained in the union of the " -"given bases. Each basis can be specified explicitly (e.g. `^master~10`), or " -"implicitly (e.g. `master~10..master`, `--since=10.days.ago master`)." +"By default the command will try to detect the patch format automatically. " +"This option allows the user to bypass the automatic detection and specify " +"the patch format that the patch(es) should be interpreted as. Valid formats " +"are mbox, mboxrd, stgit, stgit-series and hg." msgstr "" #. type: Plain text -#: en/git-bundle.txt:94 -msgid "" -"It is very important that the basis used be held by the destination. It is " -"okay to err on the side of caution, causing the bundle file to contain " -"objects already in the destination, as these are ignored when unpacking at " -"the destination." +#: en/git-am.txt:125 +msgid "Run interactively." msgstr "" #. type: Plain text -#: en/git-bundle.txt:96 en/git-fmt-merge-msg.txt:61 en/git-imap-send.txt:140 en/git-name-rev.txt:65 en/git-p4.txt:33 en/git-prune.txt:57 en/git-request-pull.txt:50 en/git-send-email.txt:441 en/git-shell.txt:66 en/git-show-branch.txt:177 en/git-show-ref.txt:124 en/git-var.txt:27 +#: en/git-am.txt:126 en/git-rebase.txt:375 en/git-rebase.txt:515 #, no-wrap -msgid "EXAMPLE" +msgid "--committer-date-is-author-date" msgstr "" #. type: Plain text -#: en/git-bundle.txt:103 +#: en/git-am.txt:132 msgid "" -"Assume you want to transfer the history from a repository R1 on machine A to " -"another repository R2 on machine B. For whatever reason, direct connection " -"between A and B is not allowed, but we can move data from A to B via some " -"mechanism (CD, email, etc.). We want to update R2 with development made on " -"the branch master in R1." +"By default the command records the date from the e-mail message as the " +"commit author date, and uses the time of commit creation as the committer " +"date. This allows the user to lie about the committer date by using the same " +"value as the author date." msgstr "" #. type: Plain text -#: en/git-bundle.txt:108 -msgid "" -"To bootstrap the process, you can first create a bundle that does not have " -"any basis. You can use a tag to remember up to what commit you last " -"processed, in order to make it easy to later update the other repository " -"with an incremental bundle:" -msgstr "" - -#. type: delimited block - -#: en/git-bundle.txt:113 +#: en/git-am.txt:133 en/git-rebase.txt:376 en/git-rebase.txt:516 #, no-wrap -msgid "" -"machineA$ cd R1\n" -"machineA$ git bundle create file.bundle master\n" -"machineA$ git tag -f lastR2bundle master\n" +msgid "--ignore-date" msgstr "" #. type: Plain text -#: en/git-bundle.txt:118 +#: en/git-am.txt:139 msgid "" -"Then you transfer file.bundle to the target machine B. Because this bundle " -"does not require any existing object to be extracted, you can create a new " -"repository on machine B by cloning from it:" +"By default the command records the date from the e-mail message as the " +"commit author date, and uses the time of commit creation as the committer " +"date. This allows the user to lie about the author date by using the same " +"value as the committer date." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:121 +#. type: Labeled list +#: en/git-am.txt:140 en/git-rebase.txt:256 #, no-wrap -msgid "machineB$ git clone -b master /home/me/tmp/file.bundle R2\n" +msgid "--skip" msgstr "" #. type: Plain text -#: en/git-bundle.txt:126 +#: en/git-am.txt:143 msgid "" -"This will define a remote called \"origin\" in the resulting repository that " -"lets you fetch and pull from the bundle. The $GIT_DIR/config file in R2 will " -"have an entry like this:" +"Skip the current patch. This is only meaningful when restarting an aborted " +"patch." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:131 +#. type: Labeled list +#: en/git-am.txt:144 en/git-cherry-pick.txt:105 en/git-commit-tree.txt:57 +#: en/git-commit.txt:333 en/git-rebase.txt:303 en/git-revert.txt:83 +#: en/merge-options.txt:46 #, no-wrap -msgid "" -"[remote \"origin\"]\n" -" url = /home/me/tmp/file.bundle\n" -" fetch = refs/heads/*:refs/remotes/origin/*\n" +msgid "-S[<keyid>]" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:136 -msgid "" -"To update the resulting mine.git repository, you can fetch or pull after " -"replacing the bundle stored at /home/me/tmp/file.bundle with incremental " -"updates." +#. type: Labeled list +#: en/git-am.txt:145 en/git-cherry-pick.txt:106 en/git-commit-tree.txt:58 +#: en/git-commit.txt:334 en/git-rebase.txt:304 en/git-revert.txt:84 +#: en/merge-options.txt:47 +#, no-wrap +msgid "--gpg-sign[=<keyid>]" msgstr "" #. type: Plain text -#: en/git-bundle.txt:139 +#: en/git-am.txt:149 en/git-cherry-pick.txt:110 en/git-commit-tree.txt:62 +#: en/git-commit.txt:338 en/git-rebase.txt:308 en/git-revert.txt:88 msgid "" -"After working some more in the original repository, you can create an " -"incremental bundle to update the other repository:" +"GPG-sign commits. The `keyid` argument is optional and defaults to the " +"committer identity; if specified, it must be stuck to the option without a " +"space." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:144 +#. type: Labeled list +#: en/git-am.txt:150 en/git-merge.txt:102 en/git-rebase.txt:228 +#: en/sequencer.txt:1 #, no-wrap -msgid "" -"machineA$ cd R1\n" -"machineA$ git bundle create file.bundle lastR2bundle..master\n" -"machineA$ git tag -f lastR2bundle master\n" +msgid "--continue" msgstr "" -#. type: Plain text -#: en/git-bundle.txt:148 -msgid "" -"You then transfer the bundle to the other machine to replace " -"/home/me/tmp/file.bundle, and pull from it." +#. type: Labeled list +#: en/git-am.txt:151 en/git-branch.txt:149 en/git-cherry-pick.txt:74 +#: en/git-diff-tree.txt:36 en/git-grep.txt:127 en/git-ls-tree.txt:44 +#: en/git-pull.txt:103 en/git-rebase.txt:401 en/git-rm.txt:49 +#: en/git-show-branch.txt:43 en/git-unpack-objects.txt:38 +#: en/rev-list-options.txt:971 +#, no-wrap +msgid "-r" msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:152 +#. type: Labeled list +#: en/git-am.txt:152 #, no-wrap -msgid "" -"machineB$ cd R2\n" -"machineB$ git pull\n" +msgid "--resolved" msgstr "" #. type: Plain text -#: en/git-bundle.txt:160 +#: en/git-am.txt:159 msgid "" -"If you know up to what commit the intended recipient repository should have " -"the necessary objects, you can use that knowledge to specify the basis, " -"giving a cut-off point to limit the revisions and objects that go in the " -"resulting bundle. The previous example used the lastR2bundle tag for this " -"purpose, but you can use any other options that you would give to the " -"linkgit:git-log[1] command. Here are more examples:" +"After a patch failure (e.g. attempting to apply conflicting patch), the user " +"has applied it by hand and the index file stores the result of the " +"application. Make a commit using the authorship and commit log extracted " +"from the e-mail message and the current index file, and continue." +msgstr "" + +#. type: Labeled list +#: en/git-am.txt:160 +#, no-wrap +msgid "--resolvemsg=<msg>" msgstr "" #. type: Plain text -#: en/git-bundle.txt:162 -msgid "You can use a tag that is present in both:" +#: en/git-am.txt:166 +msgid "" +"When a patch failure occurs, <msg> will be printed to the screen before " +"exiting. This overrides the standard message informing you to use `--" +"continue` or `--skip` to handle the failure. This is solely for internal " +"use between 'git rebase' and 'git am'." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:165 +#. type: Labeled list +#: en/git-am.txt:167 en/git-merge.txt:90 en/git-notes.txt:201 +#: en/git-rebase.txt:231 en/sequencer.txt:11 #, no-wrap -msgid "$ git bundle create mybundle v1.0.0..master\n" +msgid "--abort" msgstr "" #. type: Plain text -#: en/git-bundle.txt:168 -msgid "You can use a basis based on time:" +#: en/git-am.txt:169 +msgid "Restore the original branch and abort the patching operation." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:171 +#. type: Labeled list +#: en/git-am.txt:170 en/git-rebase.txt:238 en/sequencer.txt:6 #, no-wrap -msgid "$ git bundle create mybundle --since=10.days master\n" +msgid "--quit" msgstr "" #. type: Plain text -#: en/git-bundle.txt:174 -msgid "You can use the number of commits:" +#: en/git-am.txt:173 +msgid "Abort the patching operation but keep HEAD and the index untouched." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:177 +#. type: Labeled list +#: en/git-am.txt:174 en/git-rebase.txt:262 #, no-wrap -msgid "$ git bundle create mybundle -10 master\n" +msgid "--show-current-patch" msgstr "" #. type: Plain text -#: en/git-bundle.txt:181 +#: en/git-am.txt:177 msgid "" -"You can run `git-bundle verify` to see if you can extract from a bundle that " -"was created with a basis:" +"Show the patch being applied when \"git am\" is stopped because of conflicts." msgstr "" -#. type: delimited block - -#: en/git-bundle.txt:184 +#. type: Title - +#: en/git-am.txt:179 en/git-commit.txt:451 en/git-format-patch.txt:346 +#: en/git-fsck.txt:100 en/git-log.txt:172 en/git-merge-base.txt:76 +#: en/git-notes.txt:218 en/git-remote.txt:200 en/git-rerere.txt:77 +#: en/git-reset.txt:349 en/git-rm.txt:73 en/git-show.txt:81 +#: en/git-stash.txt:188 en/git-tag.txt:224 #, no-wrap -msgid "$ git bundle verify mybundle\n" +msgid "DISCUSSION" msgstr "" #. type: Plain text -#: en/git-bundle.txt:188 +#: en/git-am.txt:187 msgid "" -"This will list what commits you must have in order to extract from the " -"bundle and will error out if you do not have them." +"The commit author name is taken from the \"From: \" line of the message, and " +"commit author date is taken from the \"Date: \" line of the message. The " +"\"Subject: \" line is used as the title of the commit, after stripping " +"common prefix \"[PATCH <anything>]\". The \"Subject: \" line is supposed to " +"concisely describe what the commit is about in one line of text." msgstr "" #. type: Plain text -#: en/git-bundle.txt:192 +#: en/git-am.txt:190 msgid "" -"A bundle from a recipient repository's point of view is just like a regular " -"repository which it fetches or pulls from. You can, for example, map " -"references when fetching:" -msgstr "" - -#. type: delimited block - -#: en/git-bundle.txt:195 -#, no-wrap -msgid "$ git fetch mybundle master:localRef\n" +"\"From: \" and \"Subject: \" lines starting the body override the respective " +"commit author name and title values taken from the headers." msgstr "" #. type: Plain text -#: en/git-bundle.txt:198 -msgid "You can also see what references it offers:" -msgstr "" - -#. type: delimited block - -#: en/git-bundle.txt:201 -#, no-wrap -msgid "$ git ls-remote mybundle\n" -msgstr "" - -#. type: Title = -#: en/git-cat-file.txt:2 -#, no-wrap -msgid "git-cat-file(1)" +#: en/git-am.txt:195 +msgid "" +"The commit message is formed by the title taken from the \"Subject: \", a " +"blank line and the body of the message up to where the patch begins. Excess " +"whitespace at the end of each line is automatically stripped." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:7 +#: en/git-am.txt:198 msgid "" -"git-cat-file - Provide content or type and size information for repository " -"objects" +"The patch is expected to be inline, directly following the message. Any " +"line that is of the form:" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:14 -#, no-wrap -msgid "" -"'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | " -"-p | <type> | --textconv | --filters ) [--path=<path>] <object>\n" -"'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] " -"[--follow-symlinks]\n" +#: en/git-am.txt:200 +msgid "three-dashes and end-of-line, or" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:21 -msgid "" -"In its first form, the command provides the content or the type of an object " -"in the repository. The type is required unless `-t` or `-p` is used to find " -"the object type, or `-s` is used to find the object size, or `--textconv` or " -"`--filters` is used (which imply type \"blob\")." +#: en/git-am.txt:201 +msgid "a line that begins with \"diff -\", or" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:28 -msgid "" -"In the second form, a list of objects (separated by linefeeds) is provided " -"on stdin, and the SHA-1, type, and size of each object is printed on " -"stdout. The output format can be overridden using the optional `<format>` " -"argument. If either `--textconv` or `--filters` was specified, the input is " -"expected to list the object names followed by the path name, separated by a " -"single white space, so that the appropriate drivers can be determined." +#: en/git-am.txt:202 +msgid "a line that begins with \"Index: \"" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:35 +#: en/git-am.txt:205 msgid "" -"The name of the object to show. For a more complete list of ways to spell " -"object names, see the \"SPECIFYING REVISIONS\" section in " -"linkgit:gitrevisions[7]." +"is taken as the beginning of a patch, and the commit log message is " +"terminated before the first occurrence of such a line." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:39 -msgid "Instead of the content, show the object type identified by <object>." +#: en/git-am.txt:209 +msgid "" +"When initially invoking `git am`, you give it the names of the mailboxes to " +"process. Upon seeing the first patch that does not apply, it aborts in the " +"middle. You can recover from this in one of two ways:" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:43 -msgid "Instead of the content, show the object size identified by <object>." +#: en/git-am.txt:212 +msgid "" +"skip the current patch by re-running the command with the `--skip` option." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:47 +#: en/git-am.txt:216 msgid "" -"Suppress all output; instead exit with zero status if <object> exists and is " -"a valid object." +"hand resolve the conflict in the working directory, and update the index " +"file to bring it into a state that the patch should have produced. Then run " +"the command with the `--continue` option." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:50 -msgid "Pretty-print the contents of <object> based on its type." +#: en/git-am.txt:221 +msgid "" +"The command refuses to process new mailboxes until the current operation is " +"finished, so if you decide to start over from scratch, run `git am --abort` " +"before running the command with mailbox names." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:58 +#: en/git-am.txt:227 msgid "" -"Typically this matches the real type of <object> but asking for a type that " -"can trivially be dereferenced from the given <object> is also permitted. An " -"example is to ask for a \"tree\" with <object> being a commit object that " -"contains it, or to ask for a \"blob\" with <object> being a tag object that " -"points at it." +"Before any patches are applied, ORIG_HEAD is set to the tip of the current " +"branch. This is useful if you have problems with multiple commits, like " +"running 'git am' on the wrong branch or an error in the commits that is more " +"easily fixed by changing the mailbox (e.g. errors in the \"From:\" lines)." msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:59 en/git-grep.txt:109 en/diff-options.txt:570 +#. type: Title - +#: en/git-am.txt:229 en/git-commit.txt:471 en/git-gc.txt:197 #, no-wrap -msgid "--textconv" +msgid "HOOKS" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:64 +#: en/git-am.txt:233 msgid "" -"Show the content as transformed by a textconv filter. In this case, <object> " -"has to be of the form <tree-ish>:<path>, or :<path> in order to apply the " -"filter to the content recorded in the index at <path>." -msgstr "" - -#. type: Labeled list -#: en/git-cat-file.txt:65 -#, no-wrap -msgid "--filters" +"This command can run `applypatch-msg`, `pre-applypatch`, and `post-" +"applypatch` hooks. See linkgit:githooks[5] for more information." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:70 -msgid "" -"Show the content as converted by the filters configured in the current " -"working tree for the given <path> (i.e. smudge filters, end-of-line " -"conversion, etc). In this case, <object> has to be of the form " -"<tree-ish>:<path>, or :<path>." +#: en/git-am.txt:237 +msgid "linkgit:git-apply[1]." msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:71 +#. type: Title = +#: en/git-annotate.txt:2 #, no-wrap -msgid "--path=<path>" +msgid "git-annotate(1)" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:75 -msgid "" -"For use with --textconv or --filters, to allow specifying an object name and " -"a path separately, e.g. when it is difficult to figure out the revision from " -"which the blob came." -msgstr "" - -#. type: Labeled list -#: en/git-cat-file.txt:76 en/git-mktree.txt:32 -#, no-wrap -msgid "--batch" +#: en/git-annotate.txt:7 +msgid "git-annotate - Annotate file lines with commit information" msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:77 +#. type: Plain text +#: en/git-annotate.txt:12 #, no-wrap -msgid "--batch=<format>" +msgid "'git annotate' [<options>] <file> [<revision>]\n" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:83 +#: en/git-annotate.txt:17 msgid "" -"Print object information and contents for each object provided on stdin. " -"May not be combined with any other options or arguments except `--textconv` " -"or `--filters`, in which case the input lines also need to specify the path, " -"separated by white space. See the section `BATCH OUTPUT` below for details." +"Annotates each line in the given file with information from the commit which " +"introduced the line. Optionally annotates from a given revision." msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:84 -#, no-wrap -msgid "--batch-check" +#. type: Plain text +#: en/git-annotate.txt:22 +msgid "" +"The only difference between this command and linkgit:git-blame[1] is that " +"they use slightly different output formats, and this command exists only for " +"backward compatibility to support existing scripts, and provide a more " +"familiar command name for people coming from other SCM systems." msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:85 +#. type: Title = +#: en/git-apply.txt:2 #, no-wrap -msgid "--batch-check=<format>" +msgid "git-apply(1)" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:91 -msgid "" -"Print object information for each object provided on stdin. May not be " -"combined with any other options or arguments except `--textconv` or " -"`--filters`, in which case the input lines also need to specify the path, " -"separated by white space. See the section `BATCH OUTPUT` below for details." +#: en/git-apply.txt:7 +msgid "git-apply - Apply a patch to files and/or to the index" msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:92 +#. type: Plain text +#: en/git-apply.txt:20 #, no-wrap -msgid "--batch-all-objects" +msgid "" +"'git apply' [--stat] [--numstat] [--summary] [--check] [--index | --intent-to-add] [--3way]\n" +"\t [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]\n" +"\t [--allow-binary-replacement | --binary] [--reject] [-z]\n" +"\t [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]\n" +"\t [--ignore-space-change | --ignore-whitespace]\n" +"\t [--whitespace=(nowarn|warn|fix|error|error-all)]\n" +"\t [--exclude=<path>] [--include=<path>] [--directory=<root>]\n" +"\t [--verbose] [--unsafe-paths] [<patch>...]\n" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:98 +#: en/git-apply.txt:30 msgid "" -"Instead of reading a list of objects on stdin, perform the requested batch " -"operation on all objects in the repository and any alternate object stores " -"(not just reachable objects). Requires `--batch` or `--batch-check` be " -"specified. Note that the objects are visited in order sorted by their " -"hashes." -msgstr "" - -#. type: Labeled list -#: en/git-cat-file.txt:99 -#, no-wrap -msgid "--buffer" +"Reads the supplied diff output (i.e. \"a patch\") and applies it to files. " +"When running from a subdirectory in a repository, patched paths outside the " +"directory are ignored. With the `--index` option the patch is also applied " +"to the index, and with the `--cached` option the patch is only applied to " +"the index. Without these options, the command applies the patch only to " +"files, and does not require them to be in a Git repository." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:105 +#: en/git-apply.txt:34 msgid "" -"Normally batch output is flushed after each object is output, so that a " -"process can interactively read and write from `cat-file`. With this option, " -"the output uses normal stdio buffering; this is much more efficient when " -"invoking `--batch-check` on a large number of objects." +"This command applies the patch but does not create a commit. Use linkgit:" +"git-am[1] to create commits from patches generated by linkgit:git-format-" +"patch[1] and/or received by email." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:106 +#: en/git-apply.txt:37 #, no-wrap -msgid "--allow-unknown-type" +msgid "<patch>..." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:108 -msgid "Allow -s or -t to query broken/corrupt objects of unknown type." +#: en/git-apply.txt:40 +msgid "" +"The files to read the patch from. '-' can be used to read from the standard " +"input." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:109 +#: en/git-apply.txt:41 en/git-rebase.txt:317 en/merge-options.txt:72 #, no-wrap -msgid "--follow-symlinks" +msgid "--stat" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:118 +#: en/git-apply.txt:44 msgid "" -"With --batch or --batch-check, follow symlinks inside the repository when " -"requesting objects with extended SHA-1 expressions of the form " -"tree-ish:path-in-tree. Instead of providing output about the link itself, " -"provide output about the linked-to object. If a symlink points outside the " -"tree-ish (e.g. a link to /foo or a root-level link to ../foo), the portion " -"of the link which is outside the tree will be printed." +"Instead of applying the patch, output diffstat for the input. Turns off " +"\"apply\"." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:122 +#: en/git-apply.txt:51 msgid "" -"This option does not (currently) work correctly when an object in the index " -"is specified (e.g. `:link` instead of `HEAD:link`) rather than one in the " -"tree." +"Similar to `--stat`, but shows the number of added and deleted lines in " +"decimal notation and the pathname without abbreviation, to make it more " +"machine friendly. For binary files, outputs two `-` instead of saying `0 " +"0`. Turns off \"apply\"." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:125 +#: en/git-apply.txt:57 msgid "" -"This option cannot (currently) be used unless `--batch` or `--batch-check` " -"is used." +"Instead of applying the patch, output a condensed summary of information " +"obtained from git diff extended headers, such as creations, renames and mode " +"changes. Turns off \"apply\"." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:127 -msgid "For example, consider a git repository containing:" +#: en/git-apply.txt:62 +msgid "" +"Instead of applying the patch, see if the patch is applicable to the current " +"working tree and/or the index file and detects errors. Turns off \"apply\"." msgstr "" -#. type: Plain text -#: en/git-cat-file.txt:134 +#. type: Labeled list +#: en/git-apply.txt:63 en/git-checkout-index.txt:26 #, no-wrap -msgid "" -"\tf: a file containing \"hello\\n\"\n" -"\tlink: a symlink to f\n" -"\tdir/link: a symlink to ../f\n" -"\tplink: a symlink to ../f\n" -"\talink: a symlink to /etc/passwd\n" +msgid "--index" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:137 -msgid "For a regular file `f`, `echo HEAD:f | git cat-file --batch` would print" +#: en/git-apply.txt:71 +msgid "" +"When `--check` is in effect, or when applying the patch (which is the " +"default when none of the options that disables it is in effect), make sure " +"the patch is applicable to what the current index file records. If the file " +"to be patched in the working tree is not up to date, it is flagged as an " +"error. This flag also causes the index file to be updated." msgstr "" -#. type: Plain text -#: en/git-cat-file.txt:140 +#. type: Labeled list +#: en/git-apply.txt:72 en/git-check-attr.txt:27 en/git-diff-index.txt:29 +#: en/git-grep.txt:75 en/git-ls-files.txt:36 en/git-rm.txt:58 +#: en/git-submodule.txt:279 #, no-wrap -msgid "\tce013625030ba8dba906f756967f9e9ca394464a blob 6\n" +msgid "--cached" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:145 +#: en/git-apply.txt:76 msgid "" -"And `echo HEAD:link | git cat-file --batch --follow-symlinks` would print " -"the same thing, as would `HEAD:dir/link`, as they both point at `HEAD:f`." +"Apply a patch without touching the working tree. Instead take the cached " +"data, apply the patch, and store the result in the index without using the " +"working tree. This implies `--index`." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:148 +#: en/git-apply.txt:84 msgid "" -"Without `--follow-symlinks`, these would print data about the symlink " -"itself. In the case of `HEAD:link`, you would see" +"When applying the patch only to the working tree, mark new files to be added " +"to the index later (see `--intent-to-add` option in linkgit:git-add[1]). " +"This option is ignored unless running in a Git repository and `--index` is " +"not specified. Note that `--index` could be implied by other options such " +"as `--cached` or `--3way`." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:151 -#, no-wrap -msgid "\t4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1\n" +#: en/git-apply.txt:93 +msgid "" +"When the patch does not apply cleanly, fall back on 3-way merge if the patch " +"records the identity of blobs it is supposed to apply to, and we have those " +"blobs available locally, possibly leaving the conflict markers in the files " +"in the working tree for the user to resolve. This option implies the `--" +"index` option, and is incompatible with the `--reject` and the `--cached` " +"options." msgstr "" -#. type: Plain text -#: en/git-cat-file.txt:155 -msgid "" -"Both `plink` and `alink` point outside the tree, so they would respectively " -"print:" +#. type: Labeled list +#: en/git-apply.txt:94 +#, no-wrap +msgid "--build-fake-ancestor=<file>" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:159 -#, no-wrap +#: en/git-apply.txt:100 msgid "" -"\tsymlink 4\n" -"\t../f\n" +"Newer 'git diff' output has embedded 'index information' for each blob to " +"help identify the original version that the patch applies to. When this " +"flag is given, and if the original versions of the blobs are available " +"locally, builds a temporary index containing those blobs." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:162 -#, no-wrap +#: en/git-apply.txt:103 msgid "" -"\tsymlink 11\n" -"\t/etc/passwd\n" +"When a pure mode change is encountered (which has no index information), the " +"information is read from the current index instead." msgstr "" -#. type: Title - -#: en/git-cat-file.txt:166 en/git-check-attr.txt:48 en/git-check-ignore.txt:60 en/git-check-mailmap.txt:32 en/git-cvsimport.txt:188 en/git-fetch.txt:103 en/git-push.txt:306 en/git-show-branch.txt:134 en/git-show-ref.txt:97 en/git-status.txt:113 en/git-update-server-info.txt:32 +#. type: Labeled list +#: en/git-apply.txt:105 en/rev-list-options.txt:668 #, no-wrap -msgid "OUTPUT" +msgid "--reverse" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:168 -msgid "If `-t` is specified, one of the <type>." +#: en/git-apply.txt:107 +msgid "Apply the patch in reverse." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:170 -msgid "If `-s` is specified, the size of the <object> in bytes." +#: en/git-apply.txt:114 +msgid "" +"For atomicity, 'git apply' by default fails the whole patch and does not " +"touch the working tree when some of the hunks do not apply. This option " +"makes it apply the parts of the patch that are applicable, and leave the " +"rejected hunks in corresponding *.rej files." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:172 -msgid "If `-e` is specified, no output." +#: en/git-apply.txt:118 +msgid "" +"When `--numstat` has been given, do not munge pathnames, but use a NUL-" +"terminated machine-readable format." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:174 -msgid "If `-p` is specified, the contents of <object> are pretty-printed." +#: en/git-apply.txt:128 +msgid "" +"Remove <n> leading path components (separated by slashes) from traditional " +"diff paths. E.g., with `-p2`, a patch against `a/dir/file` will be applied " +"directly to `file`. The default is 1." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:177 +#: en/git-apply.txt:134 en/git-rebase.txt:337 msgid "" -"If <type> is specified, the raw (though uncompressed) contents of the " -"<object> will be returned." +"Ensure at least <n> lines of surrounding context match before and after each " +"change. When fewer lines of surrounding context exist they all must match. " +"By default no context is ever ignored." msgstr "" -#. type: Title - -#: en/git-cat-file.txt:179 +#. type: Labeled list +#: en/git-apply.txt:135 #, no-wrap -msgid "BATCH OUTPUT" +msgid "--unidiff-zero" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:185 +#: en/git-apply.txt:141 msgid "" -"If `--batch` or `--batch-check` is given, `cat-file` will read objects from " -"stdin, one per line, and print information about them. By default, the whole " -"line is considered as an object, as if it were fed to " -"linkgit:git-rev-parse[1]." +"By default, 'git apply' expects that the patch being applied is a unified " +"diff with at least one line of context. This provides good safety measures, " +"but breaks down when applying a diff generated with `--unified=0`. To bypass " +"these checks use `--unidiff-zero`." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:190 +#: en/git-apply.txt:144 msgid "" -"You can specify the information shown for each object by using a custom " -"`<format>`. The `<format>` is copied literally to stdout for each object, " -"with placeholders of the form `%(atom)` expanded, followed by a newline. The " -"available atoms are:" +"Note, for the reasons stated above usage of context-free patches is " +"discouraged." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:191 +#: en/git-apply.txt:145 #, no-wrap -msgid "`objectname`" +msgid "--apply" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:193 -msgid "The 40-hex object name of the object." +#: en/git-apply.txt:151 +msgid "" +"If you use any of the options marked \"Turns off 'apply'\" above, 'git " +"apply' reads and outputs the requested information without actually applying " +"the patch. Give this flag after those flags to also apply the patch." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:194 +#: en/git-apply.txt:152 #, no-wrap -msgid "`objecttype`" +msgid "--no-add" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:196 -msgid "The type of of the object (the same as `cat-file -t` reports)." +#: en/git-apply.txt:158 +msgid "" +"When applying a patch, ignore additions made by the patch. This can be used " +"to extract the common part between two files by first running 'diff' on them " +"and applying the result with this option, which would apply the deletion " +"part but not the addition part." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:197 +#: en/git-apply.txt:159 #, no-wrap -msgid "`objectsize`" +msgid "--allow-binary-replacement" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:200 -msgid "The size, in bytes, of the object (the same as `cat-file -s` reports)." +#: en/git-apply.txt:165 +msgid "" +"Historically we did not allow binary patch applied without an explicit " +"permission from the user, and this flag was the way to do so. Currently we " +"always allow binary patch application, so this is a no-op." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:201 +#: en/git-apply.txt:166 #, no-wrap -msgid "`objectsize:disk`" +msgid "--exclude=<path-pattern>" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:204 +#: en/git-apply.txt:170 msgid "" -"The size, in bytes, that the object takes up on disk. See the note about " -"on-disk sizes in the `CAVEATS` section below." +"Don't apply changes to files matching the given path pattern. This can be " +"useful when importing patchsets, where you want to exclude certain files or " +"directories." msgstr "" #. type: Labeled list -#: en/git-cat-file.txt:205 +#: en/git-apply.txt:171 #, no-wrap -msgid "`deltabase`" +msgid "--include=<path-pattern>" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:209 +#: en/git-apply.txt:175 msgid "" -"If the object is stored as a delta on-disk, this expands to the 40-hex sha1 " -"of the delta base object. Otherwise, expands to the null sha1 (40 " -"zeroes). See `CAVEATS` below." +"Apply changes to files matching the given path pattern. This can be useful " +"when importing patchsets, where you want to include certain files or " +"directories." msgstr "" -#. type: Labeled list -#: en/git-cat-file.txt:210 -#, no-wrap -msgid "`rest`" +#. type: Plain text +#: en/git-apply.txt:181 +msgid "" +"When `--exclude` and `--include` patterns are used, they are examined in the " +"order they appear on the command line, and the first match determines if a " +"patch to each path is used. A patch to a path that does not match any " +"include/exclude pattern is used by default if there is no include pattern on " +"the command line, and ignored if there is any include pattern." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:216 +#: en/git-apply.txt:189 msgid "" -"If this atom is used in the output string, input lines are split at the " -"first whitespace boundary. All characters before that whitespace are " -"considered to be the object name; characters after that first run of " -"whitespace (i.e., the \"rest\" of the line) are output in place of the " -"`%(rest)` atom." +"When applying a patch, ignore changes in whitespace in context lines if " +"necessary. Context lines will preserve their whitespace, and they will not " +"undergo whitespace fixing regardless of the value of the `--whitespace` " +"option. New lines will still be fixed, though." +msgstr "" + +#. type: Labeled list +#: en/git-apply.txt:190 +#, no-wrap +msgid "--whitespace=<action>" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:219 +#: en/git-apply.txt:198 msgid "" -"If no format is specified, the default format is `%(objectname) " -"%(objecttype) %(objectsize)`." +"When applying a patch, detect a new or modified line that has whitespace " +"errors. What are considered whitespace errors is controlled by `core." +"whitespace` configuration. By default, trailing whitespaces (including " +"lines that solely consist of whitespaces) and a space character that is " +"immediately followed by a tab character inside the initial indent of the " +"line are considered whitespace errors." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:223 +#: en/git-apply.txt:202 msgid "" -"If `--batch` is specified, the object information is followed by the object " -"contents (consisting of `%(objectsize)` bytes), followed by a newline." +"By default, the command outputs warning messages but applies the patch. " +"When `git-apply` is used for statistics and not applying a patch, it " +"defaults to `nowarn`." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:225 -msgid "For example, `--batch` without a custom format would produce:" +#: en/git-apply.txt:205 +msgid "You can use different `<action>` values to control this behavior:" msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:229 -#, no-wrap -msgid "" -"<sha1> SP <type> SP <size> LF\n" -"<contents> LF\n" +#. type: Plain text +#: en/git-apply.txt:207 +msgid "`nowarn` turns off the trailing whitespace warning." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:232 -msgid "Whereas `--batch-check='%(objectname) %(objecttype)'` would produce:" -msgstr "" - -#. type: delimited block - -#: en/git-cat-file.txt:235 -#, no-wrap -msgid "<sha1> SP <type> LF\n" +#: en/git-apply.txt:209 +msgid "" +"`warn` outputs warnings for a few such errors, but applies the patch as-is " +"(default)." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:239 +#: en/git-apply.txt:213 msgid "" -"If a name is specified on stdin that cannot be resolved to an object in the " -"repository, then `cat-file` will ignore any custom format and print:" +"`fix` outputs warnings for a few such errors, and applies the patch after " +"fixing them (`strip` is a synonym --- the tool used to consider only " +"trailing whitespace characters as errors, and the fix involved 'stripping' " +"them, but modern Gits do more)." msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:242 en/git-cat-file.txt:262 -#, no-wrap -msgid "<object> SP missing LF\n" +#. type: Plain text +#: en/git-apply.txt:215 +msgid "" +"`error` outputs warnings for a few such errors, and refuses to apply the " +"patch." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:247 -msgid "" -"If --follow-symlinks is used, and a symlink in the repository points outside " -"the repository, then `cat-file` will ignore any custom format and print:" +#: en/git-apply.txt:216 +msgid "`error-all` is similar to `error` but shows all errors." msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:251 +#. type: Labeled list +#: en/git-apply.txt:217 #, no-wrap -msgid "" -"symlink SP <size> LF\n" -"<symlink> LF\n" +msgid "--inaccurate-eof" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:256 +#: en/git-apply.txt:223 msgid "" -"The symlink will either be absolute (beginning with a /), or relative to the " -"tree root. For instance, if dir/link points to ../../foo, then <symlink> " -"will be ../foo. <size> is the size of the symlink in bytes." +"Under certain circumstances, some versions of 'diff' do not correctly detect " +"a missing new-line at the end of the file. As a result, patches created by " +"such 'diff' programs do not record incomplete lines correctly. This option " +"adds support for applying such patches by working around this bug." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:259 +#: en/git-apply.txt:229 msgid "" -"If --follow-symlinks is used, the following error messages will be " -"displayed:" -msgstr "" - -#. type: Plain text -#: en/git-cat-file.txt:264 -msgid "is printed when the initial symlink requested does not exist." +"Report progress to stderr. By default, only a message about the current " +"patch being applied will be printed. This option will cause additional " +"information to be reported." msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:268 +#. type: Labeled list +#: en/git-apply.txt:230 #, no-wrap -msgid "" -"dangling SP <size> LF\n" -"<object> LF\n" +msgid "--recount" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:271 +#: en/git-apply.txt:234 msgid "" -"is printed when the initial symlink exists, but something that it " -"(transitive-of) points to does not." +"Do not trust the line counts in the hunk headers, but infer them by " +"inspecting the patch (e.g. after editing the patch without adjusting the " +"hunk headers appropriately)." msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:275 +#. type: Labeled list +#: en/git-apply.txt:235 #, no-wrap +msgid "--directory=<root>" +msgstr "" + +#. type: Plain text +#: en/git-apply.txt:238 msgid "" -"loop SP <size> LF\n" -"<object> LF\n" +"Prepend <root> to all filenames. If a \"-p\" argument was also passed, it " +"is applied before prepending the new root." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:278 +#: en/git-apply.txt:242 msgid "" -"is printed for symlink loops (or any symlinks that require more than 40 link " -"resolutions to resolve)." +"For example, a patch that talks about updating `a/git-gui.sh` to `b/git-gui." +"sh` can be applied to the file in the working tree `modules/git-gui/git-gui." +"sh` by running `git apply --directory=modules/git-gui`." msgstr "" -#. type: delimited block - -#: en/git-cat-file.txt:282 +#. type: Labeled list +#: en/git-apply.txt:243 #, no-wrap +msgid "--unsafe-paths" +msgstr "" + +#. type: Plain text +#: en/git-apply.txt:248 msgid "" -"notdir SP <size> LF\n" -"<object> LF\n" +"By default, a patch that affects outside the working area (either a Git " +"controlled working tree, or the current working directory when \"git apply\" " +"is used as a replacement of GNU patch) is rejected as a mistake (or a " +"mischief)." msgstr "" #. type: Plain text -#: en/git-cat-file.txt:285 +#: en/git-apply.txt:252 msgid "" -"is printed when, during symlink resolution, a file is used as a directory " -"name." +"When `git apply` is used as a \"better GNU patch\", the user can pass the `--" +"unsafe-paths` option to override this safety check. This option has no " +"effect when `--index` or `--cached` is in use." msgstr "" -#. type: Title - -#: en/git-cat-file.txt:287 en/git-svn.txt:960 +#. type: Labeled list +#: en/git-apply.txt:256 #, no-wrap -msgid "CAVEATS" +msgid "apply.ignoreWhitespace" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:295 +#: en/git-apply.txt:260 msgid "" -"Note that the sizes of objects on disk are reported accurately, but care " -"should be taken in drawing conclusions about which refs or objects are " -"responsible for disk usage. The size of a packed non-delta object may be " -"much larger than the size of objects which delta against it, but the choice " -"of which object is the base and which is the delta is arbitrary and is " -"subject to change during a repack." +"Set to 'change' if you want changes in whitespace to be ignored by default. " +"Set to one of: no, none, never, false if you want changes in whitespace to " +"be significant." +msgstr "" + +#. type: Labeled list +#: en/git-apply.txt:260 +#, no-wrap +msgid "apply.whitespace" msgstr "" #. type: Plain text -#: en/git-cat-file.txt:299 +#: en/git-apply.txt:263 msgid "" -"Note also that multiple copies of an object may be present in the object " -"database; in this case, it is undefined which copy's size or delta base will " -"be reported." +"When no `--whitespace` flag is given from the command line, this " +"configuration item is used as the default." msgstr "" -#. type: Title = -#: en/git-check-attr.txt:2 +#. type: Title - +#: en/git-apply.txt:265 en/git-mv.txt:48 en/git-rm.txt:138 #, no-wrap -msgid "git-check-attr(1)" +msgid "SUBMODULES" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:7 -msgid "git-check-attr - Display gitattributes information" +#: en/git-apply.txt:268 +msgid "" +"If the patch contains any changes to submodules then 'git apply' treats " +"these changes as follows." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:14 -#, no-wrap +#: en/git-apply.txt:274 msgid "" -"'git check-attr' [-a | --all | attr...] [--] pathname...\n" -"'git check-attr' --stdin [-z] [-a | --all | attr...]\n" +"If `--index` is specified (explicitly or implicitly), then the submodule " +"commits must match the index exactly for the patch to apply. If any of the " +"submodules are checked-out, then these check-outs are completely ignored, i." +"e., they are not required to be up to date or clean and they are not updated." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:19 +#: en/git-apply.txt:278 msgid "" -"For every pathname, this command will list if each attribute is " -"'unspecified', 'set', or 'unset' as a gitattribute on that pathname." +"If `--index` is not specified, then the submodule commits in the patch are " +"ignored and only the absence or presence of the corresponding subdirectory " +"is checked and (if possible) updated." msgstr "" -#. type: Labeled list -#: en/git-check-attr.txt:22 -#, no-wrap -msgid "-a, --all" +#. type: Plain text +#: en/git-apply.txt:282 +msgid "linkgit:git-am[1]." msgstr "" -#. type: Plain text -#: en/git-check-attr.txt:26 -msgid "" -"List all attributes that are associated with the specified paths. If this " -"option is used, then 'unspecified' attributes will not be included in the " -"output." +#. type: Title = +#: en/git-archimport.txt:2 +#, no-wrap +msgid "git-archimport(1)" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:29 -msgid "Consider `.gitattributes` in the index only, ignoring the working tree." +#: en/git-archimport.txt:7 +msgid "git-archimport - Import a GNU Arch repository into Git" msgstr "" -#. type: Labeled list -#: en/git-check-attr.txt:30 en/git-check-ignore.txt:37 en/git-check-mailmap.txt:26 en/git-checkout-index.txt:62 en/git-diff-tree.txt:49 en/git-fetch-pack.txt:38 en/git-hash-object.txt:34 en/git-http-fetch.txt:40 en/git-index-pack.txt:38 en/git-name-rev.txt:45 en/git-notes.txt:173 en/git-send-pack.txt:41 en/git-svn.txt:564 en/git-update-index.txt:140 en/rev-list-options.txt:194 +#. type: Plain text +#: en/git-archimport.txt:14 #, no-wrap -msgid "--stdin" +msgid "" +"'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]\n" +" <archive/branch>[:<git-branch>] ...\n" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:33 en/git-check-ignore.txt:40 +#: en/git-archimport.txt:23 msgid "" -"Read pathnames from the standard input, one per line, instead of from the " -"command-line." +"Imports a project from one or more GNU Arch repositories. It will follow " +"branches and repositories within the namespaces defined by the <archive/" +"branch> parameters supplied. If it cannot find the remote branch a merge " +"comes from it will just import it as a regular commit. If it can find it, it " +"will mark it as a merge whenever possible (see discussion below)." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:38 +#: en/git-archimport.txt:27 msgid "" -"The output format is modified to be machine-parseable. If `--stdin` is also " -"given, input paths are separated with a NUL character instead of a linefeed " -"character." +"The script expects you to provide the key roots where it can start the " +"import from an 'initial import' or 'tag' type of Arch commit. It will follow " +"and import new branches within the provided roots." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:42 +#: en/git-archimport.txt:32 msgid "" -"Interpret all preceding arguments as attributes and all following arguments " -"as path names." +"It expects to be dealing with one project only. If it sees branches that " +"have different roots, it will refuse to run. In that case, edit your " +"<archive/branch> parameters to define clearly the scope of the import." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:46 +#: en/git-archimport.txt:37 msgid "" -"If none of `--stdin`, `--all`, or `--` is used, the first argument will be " -"treated as an attribute and the rest of the arguments as pathnames." +"'git archimport' uses `tla` extensively in the background to access the Arch " +"repository. Make sure you have a recent version of `tla` available in the " +"path. `tla` must know about the repositories you pass to 'git archimport'." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:52 -msgid "The output is of the form: <path> COLON SP <attribute> COLON SP <info> LF" +#: en/git-archimport.txt:42 +msgid "" +"For the initial import, 'git archimport' expects to find itself in an empty " +"directory. To follow the development of a project that uses Arch, rerun 'git " +"archimport' with the same parameters as the initial import to perform " +"incremental imports." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:55 +#: en/git-archimport.txt:49 msgid "" -"unless `-z` is in effect, in which case NUL is used as delimiter: <path> NUL " -"<attribute> NUL <info> NUL" +"While 'git archimport' will try to create sensible branch names for the " +"archives that it imports, it is also possible to specify Git branch names " +"manually. To do so, write a Git branch name after each <archive/branch> " +"parameter, separated by a colon. This way, you can shorten the Arch branch " +"names and convert Arch jargon to Git jargon, for example mapping a " +"\"PROJECT{litdd}devo{litdd}VERSION\" branch to \"master\"." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:59 +#: en/git-archimport.txt:54 msgid "" -"<path> is the path of a file being queried, <attribute> is an attribute " -"being queried and <info> can be either:" +"Associating multiple Arch branches to one Git branch is possible; the result " +"will make the most sense only if no commits are made to the first branch, " +"after the second branch is created. Still, this is useful to convert Arch " +"repositories that had been rotated periodically." msgstr "" -#. type: Labeled list -#: en/git-check-attr.txt:60 +#. type: Title - +#: en/git-archimport.txt:57 #, no-wrap -msgid "'unspecified'" +msgid "MERGES" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:61 -msgid "when the attribute is not defined for the path." -msgstr "" - -#. type: Labeled list -#: en/git-check-attr.txt:61 -#, no-wrap -msgid "'unset'" +#: en/git-archimport.txt:63 +msgid "" +"Patch merge data from Arch is used to mark merges in Git as well. Git does " +"not care much about tracking patches, and only considers a merge when a " +"branch incorporates all the commits since the point they forked. The end " +"result is that Git will have a good idea of how far branches have diverged. " +"So the import process does lose some patch-trading metadata." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:62 -msgid "when the attribute is defined as false." +#: en/git-archimport.txt:67 +msgid "" +"Fortunately, when you try and merge branches imported from Arch, Git will " +"find a good merge base, and it has a good chance of identifying patches that " +"have been traded out-of-sequence between the branches." msgstr "" -#. type: Labeled list -#: en/git-check-attr.txt:62 -#, no-wrap -msgid "'set'" +#. type: Plain text +#: en/git-archimport.txt:73 +msgid "Display usage." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:63 -msgid "when the attribute is defined as true." +#: en/git-archimport.txt:76 +msgid "Verbose output." msgstr "" #. type: Labeled list -#: en/git-check-attr.txt:63 +#: en/git-archimport.txt:77 #, no-wrap -msgid "<value>" -msgstr "" - -#. type: Plain text -#: en/git-check-attr.txt:64 -msgid "when a value has been assigned to the attribute." +msgid "-T" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:69 en/git-check-ignore.txt:99 +#: en/git-archimport.txt:80 msgid "" -"Buffering happens as documented under the `GIT_FLUSH` option in " -"linkgit:git[1]. The caller is responsible for avoiding deadlocks caused by " -"overfilling an input buffer or reading from an empty output buffer." +"Many tags. Will create a tag for every commit, reflecting the commit name in " +"the Arch repository." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:74 -msgid "In the examples, the following '.gitattributes' file is used:" -msgstr "" - -#. type: delimited block - -#: en/git-check-attr.txt:78 -#, no-wrap +#: en/git-archimport.txt:85 msgid "" -"*.java diff=java -crlf myAttr\n" -"NoMyAttr.java !myAttr\n" -"README caveat=unspecified\n" -msgstr "" - -#. type: Plain text -#: en/git-check-attr.txt:81 -msgid "Listing a single attribute:" +"Use the fast patchset import strategy. This can be significantly faster for " +"large trees, but cannot handle directory renames or permissions changes. " +"The default strategy is slow and safe." msgstr "" -#. type: delimited block - -#: en/git-check-attr.txt:84 +#. type: Labeled list +#: en/git-archimport.txt:86 en/git-commit.txt:267 en/git-grep.txt:211 +#: en/git-ls-files.txt:47 en/git-merge-index.txt:29 #, no-wrap -msgid "" -"$ git check-attr diff org/example/MyClass.java\n" -"org/example/MyClass.java: diff: java\n" +msgid "-o" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:87 -msgid "Listing multiple attributes for a file:" +#: en/git-archimport.txt:93 +msgid "" +"Use this for compatibility with old-style branch names used by earlier " +"versions of 'git archimport'. Old-style branch names were category{litdd}" +"branch, whereas new-style branch names are archive,category{litdd}" +"branch{litdd}version. In both cases, names given on the command-line will " +"override the automatically-generated ones." msgstr "" -#. type: delimited block - -#: en/git-check-attr.txt:92 +#. type: Labeled list +#: en/git-archimport.txt:94 #, no-wrap -msgid "" -"$ git check-attr crlf diff myAttr -- org/example/MyClass.java\n" -"org/example/MyClass.java: crlf: unset\n" -"org/example/MyClass.java: diff: java\n" -"org/example/MyClass.java: myAttr: set\n" +msgid "-D <depth>" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:95 -msgid "Listing all attributes for a file:" -msgstr "" - -#. type: delimited block - -#: en/git-check-attr.txt:99 -#, no-wrap +#: en/git-archimport.txt:98 msgid "" -"$ git check-attr --all -- org/example/MyClass.java\n" -"org/example/MyClass.java: diff: java\n" -"org/example/MyClass.java: myAttr: set\n" +"Follow merge ancestry and attempt to import trees that have been merged " +"from. Specify a depth greater than 1 if patch logs have been pruned." msgstr "" #. type: Plain text -#: en/git-check-attr.txt:102 -msgid "Listing an attribute for multiple files:" +#: en/git-archimport.txt:102 +msgid "" +"Attempt to auto-register archives at `http://mirrors.sourcecontrol.net` This " +"is particularly useful with the -D option." msgstr "" -#. type: delimited block - -#: en/git-check-attr.txt:106 +#. type: Labeled list +#: en/git-archimport.txt:103 #, no-wrap -msgid "" -"$ git check-attr myAttr -- org/example/MyClass.java " -"org/example/NoMyAttr.java\n" -"org/example/MyClass.java: myAttr: set\n" -"org/example/NoMyAttr.java: myAttr: unspecified\n" +msgid "-t <tmpdir>" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:109 -msgid "Not all values are equally unambiguous:" +#: en/git-archimport.txt:105 +msgid "Override the default tempdir." msgstr "" -#. type: delimited block - -#: en/git-check-attr.txt:112 +#. type: Labeled list +#: en/git-archimport.txt:107 #, no-wrap -msgid "" -"$ git check-attr caveat README\n" -"README: caveat: unspecified\n" +msgid "<archive/branch>" msgstr "" #. type: Plain text -#: en/git-check-attr.txt:117 -msgid "linkgit:gitattributes[5]." +#: en/git-archimport.txt:109 +msgid "Archive/branch identifier in a format that `tla log` understands." msgstr "" #. type: Title = -#: en/git-check-ignore.txt:2 +#: en/git-archive.txt:2 #, no-wrap -msgid "git-check-ignore(1)" +msgid "git-archive(1)" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:7 -msgid "git-check-ignore - Debug gitignore / exclude files" +#: en/git-archive.txt:7 +msgid "git-archive - Create an archive of files from a named tree" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:14 +#: en/git-archive.txt:16 #, no-wrap msgid "" -"'git check-ignore' [options] pathname...\n" -"'git check-ignore' [options] --stdin\n" +"'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]\n" +"\t [-o <file> | --output=<file>] [--worktree-attributes]\n" +"\t [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>\n" +"\t [<path>...]\n" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:22 +#: en/git-archive.txt:23 msgid "" -"For each pathname given via the command-line or from a file via `--stdin`, " -"check whether the file is excluded by .gitignore (or other input files to " -"the exclude mechanism) and output the path if it is excluded." +"Creates an archive of the specified format containing the tree structure for " +"the named tree, and writes it out to the standard output. If <prefix> is " +"specified it is prepended to the filenames in the archive." msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:25 +#: en/git-archive.txt:32 msgid "" -"By default, tracked files are not shown at all since they are not subject to " -"exclude rules; but see `--no-index'." +"'git archive' behaves differently when given a tree ID versus when given a " +"commit ID or tag ID. In the first case the current time is used as the " +"modification time of each file in the archive. In the latter case the " +"commit time as recorded in the referenced commit object is used instead. " +"Additionally the commit ID is stored in a global extended pax header if the " +"tar format is used; it can be extracted using 'git get-tar-commit-id'. In " +"ZIP files it is stored as a file comment." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:28 +#: en/git-archive.txt:36 #, no-wrap -msgid "-q, --quiet" +msgid "--format=<fmt>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:31 +#: en/git-archive.txt:42 msgid "" -"Don't output anything, just set exit status. This is only valid with a " -"single pathname." +"Format of the resulting archive: 'tar' or 'zip'. If this option is not " +"given, and the output file is specified, the format is inferred from the " +"filename if possible (e.g. writing to \"foo.zip\" makes the output to be in " +"the zip format). Otherwise the output format is `tar`." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:32 +#: en/git-archive.txt:44 en/git-branch.txt:158 en/git-config.txt:165 +#: en/git-show-branch.txt:80 en/git-tag.txt:93 #, no-wrap -msgid "-v, --verbose" +msgid "--list" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:36 -msgid "" -"Also output details about the matching pattern (if any) for each given " -"pathname. For precedence rules within and between exclude sources, see " -"linkgit:gitignore[5]." +#: en/git-archive.txt:46 +msgid "Show all available formats." msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:45 -msgid "" -"The output format is modified to be machine-parseable (see below). If " -"`--stdin` is also given, input paths are separated with a NUL character " -"instead of a linefeed character." +#: en/git-archive.txt:50 +msgid "Report progress to stderr." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:46 +#: en/git-archive.txt:51 en/git-write-tree.txt:35 #, no-wrap -msgid "-n, --non-matching" +msgid "--prefix=<prefix>/" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:51 -msgid "" -"Show given paths which don't match any pattern.\t This only makes sense when " -"`--verbose` is enabled, otherwise it would not be possible to distinguish " -"between paths which match a pattern and those which don't." +#: en/git-archive.txt:53 +msgid "Prepend <prefix>/ to each filename in the archive." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:52 en/git-grep.txt:76 +#: en/git-archive.txt:54 #, no-wrap -msgid "--no-index" +msgid "-o <file>" msgstr "" -#. type: Plain text -#: en/git-check-ignore.txt:58 -msgid "" -"Don't look in the index when undertaking the checks. This can be used to " -"debug why a path became tracked by e.g. `git add .` and was not ignored by " -"the rules as expected by the user or when developing patterns including " -"negation to match a path previously added with `git add -f`." +#. type: Labeled list +#: en/git-archive.txt:55 +#, no-wrap +msgid "--output=<file>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:66 -msgid "" -"By default, any of the given pathnames which match an ignore pattern will be " -"output, one per line. If no pattern matches a given path, nothing will be " -"output for that path; this means that path will not be ignored." +#: en/git-archive.txt:57 +msgid "Write the archive to <file> instead of stdout." msgstr "" -#. type: Plain text -#: en/git-check-ignore.txt:68 -msgid "If `--verbose` is specified, the output is a series of lines of the form:" +#. type: Labeled list +#: en/git-archive.txt:58 +#, no-wrap +msgid "--worktree-attributes" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:70 -msgid "<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>" +#: en/git-archive.txt:61 +msgid "" +"Look for attributes in .gitattributes files in the working tree as well (see " +"<<ATTRIBUTES>>)." msgstr "" -#. type: Plain text -#: en/git-check-ignore.txt:78 -msgid "" -"<pathname> is the path of a file being queried, <pattern> is the matching " -"pattern, <source> is the pattern's source file, and <linenum> is the line " -"number of the pattern within that source. If the pattern contained a `!` " -"prefix or `/` suffix, it will be preserved in the output. <source> will be " -"an absolute path when referring to the file configured by " -"`core.excludesFile`, or relative to the repository root when referring to " -"`.git/info/exclude` or a per-directory exclude file." +#. type: Labeled list +#: en/git-archive.txt:62 +#, no-wrap +msgid "<extra>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:82 +#: en/git-archive.txt:65 msgid "" -"If `-z` is specified, the pathnames in the output are delimited by the null " -"character; if `--verbose` is also specified then null characters are also " -"used instead of colons and hard tabs:" +"This can be any options that the archiver backend understands. See next " +"section." msgstr "" -#. type: Plain text -#: en/git-check-ignore.txt:84 -msgid "<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>" +#. type: Labeled list +#: en/git-archive.txt:66 +#, no-wrap +msgid "--remote=<repo>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:94 +#: en/git-archive.txt:72 msgid "" -"If `-n` or `--non-matching` are specified, non-matching pathnames will also " -"be output, in which case all fields in each output record except for " -"<pathname> will be empty. This can be useful when running " -"non-interactively, so that files can be incrementally streamed to STDIN of a " -"long-running check-ignore process, and for each of these files, STDOUT will " -"indicate whether that file matched a pattern or not. (Without this option, " -"it would be impossible to tell whether the absence of output for a given " -"file meant that it didn't match any pattern, or that the output hadn't been " -"generated yet.)" -msgstr "" - -#. type: Title - -#: en/git-check-ignore.txt:101 -#, no-wrap -msgid "EXIT STATUS" +"Instead of making a tar archive from the local repository, retrieve a tar " +"archive from a remote repository. Note that the remote repository may place " +"restrictions on which sha1 expressions may be allowed in `<tree-ish>`. See " +"linkgit:git-upload-archive[1] for details." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:103 +#: en/git-archive.txt:73 #, no-wrap -msgid "0" +msgid "--exec=<git-upload-archive>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:105 -msgid "One or more of the provided paths is ignored." +#: en/git-archive.txt:76 +msgid "" +"Used with --remote to specify the path to the 'git-upload-archive' on the " +"remote side." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:106 +#: en/git-archive.txt:77 en/git-checkout.txt:305 en/git-diff-index.txt:26 +#: en/git-diff-tree.txt:29 en/git-ls-tree.txt:38 en/git.txt:315 #, no-wrap -msgid "1" +msgid "<tree-ish>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:108 -msgid "None of the provided paths are ignored." +#: en/git-archive.txt:79 +msgid "The tree or commit to produce an archive for." msgstr "" #. type: Labeled list -#: en/git-check-ignore.txt:109 +#: en/git-archive.txt:80 #, no-wrap -msgid "128" -msgstr "" - -#. type: Plain text -#: en/git-check-ignore.txt:111 -msgid "A fatal error was encountered." +msgid "<path>" msgstr "" #. type: Plain text -#: en/git-check-ignore.txt:117 -msgid "linkgit:gitignore[5] linkgit:git-config[1] linkgit:git-ls-files[1]" +#: en/git-archive.txt:84 +msgid "" +"Without an optional path parameter, all files and subdirectories of the " +"current working directory are included in the archive. If one or more paths " +"are specified, only these are included." msgstr "" -#. type: Title = -#: en/git-check-mailmap.txt:2 +#. type: Title - +#: en/git-archive.txt:86 #, no-wrap -msgid "git-check-mailmap(1)" +msgid "BACKEND EXTRA OPTIONS" msgstr "" -#. type: Plain text -#: en/git-check-mailmap.txt:7 -msgid "git-check-mailmap - Show canonical names and email addresses of contacts" +#. type: Title ~ +#: en/git-archive.txt:89 +#, no-wrap +msgid "zip" msgstr "" -#. type: Plain text -#: en/git-check-mailmap.txt:13 +#. type: Labeled list +#: en/git-archive.txt:90 en/git-diff-files.txt:28 en/git-diff.txt:109 #, no-wrap -msgid "'git check-mailmap' [options] <contact>...\n" +msgid "-0" msgstr "" #. type: Plain text -#: en/git-check-mailmap.txt:22 -msgid "" -"For each ``Name $$<user@host>$$'' or ``$$<user@host>$$'' from the " -"command-line or standard input (when using `--stdin`), look up the person's " -"canonical name and email address (see \"Mapping Authors\" below). If found, " -"print them; otherwise print the input as-is." +#: en/git-archive.txt:92 +msgid "Store the files instead of deflating them." msgstr "" -#. type: Plain text -#: en/git-check-mailmap.txt:29 -msgid "" -"Read contacts, one per line, from the standard input after exhausting " -"contacts provided on the command-line." +#. type: Labeled list +#: en/git-archive.txt:92 +#, no-wrap +msgid "-9" msgstr "" #. type: Plain text -#: en/git-check-mailmap.txt:37 +#: en/git-archive.txt:95 msgid "" -"For each contact, a single line is output, terminated by a newline. If the " -"name is provided or known to the 'mailmap', ``Name $$<user@host>$$'' is " -"printed; otherwise only ``$$<user@host>$$'' is printed." +"Highest and slowest compression level. You can specify any number from 1 to " +"9 to adjust compression speed and ratio." msgstr "" -#. type: Title = -#: en/git-checkout-index.txt:2 +#. type: Labeled list +#: en/git-archive.txt:100 #, no-wrap -msgid "git-checkout-index(1)" +msgid "tar.umask" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:7 -msgid "git-checkout-index - Copy files from the index to the working tree" +#: en/git-archive.txt:107 +msgid "" +"This variable can be used to restrict the permission bits of tar archive " +"entries. The default is 0002, which turns off the world write bit. The " +"special value \"user\" indicates that the archiving user's umask will be " +"used instead. See umask(2) for details. If `--remote` is used then only " +"the configuration of the remote repository takes effect." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:17 +#. type: Labeled list +#: en/git-archive.txt:108 #, no-wrap -msgid "" -"'git checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]\n" -"\t\t [--stage=<number>|all]\n" -"\t\t [--temp]\n" -"\t\t [-z] [--stdin]\n" -"\t\t [--] [<file>...]\n" +msgid "tar.<format>.command" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:22 +#: en/git-archive.txt:117 msgid "" -"Will copy all files listed from the index to the working directory (not " -"overwriting existing files)." +"This variable specifies a shell command through which the tar output " +"generated by `git archive` should be piped. The command is executed using " +"the shell with the generated tar file on its standard input, and should " +"produce the final output on its standard output. Any compression-level " +"options will be passed to the command (e.g., \"-9\"). An output file with " +"the same extension as `<format>` will be use this format if no other format " +"is given." msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:29 -msgid "update stat information for the checked out entries in the index file." +#: en/git-archive.txt:120 +msgid "" +"The \"tar.gz\" and \"tgz\" formats are defined automatically and default to " +"`gzip -cn`. You may override them with custom commands." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:33 -msgid "be quiet if files exist or are not in the index" +#. type: Labeled list +#: en/git-archive.txt:121 +#, no-wrap +msgid "tar.<format>.remote" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:37 -msgid "forces overwrite of existing files" +#: en/git-archive.txt:126 +msgid "" +"If true, enable `<format>` for use by remote clients via linkgit:git-upload-" +"archive[1]. Defaults to false for user-defined formats, but true for the " +"\"tar.gz\" and \"tgz\" formats." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:42 -msgid "" -"checks out all files in the index. Cannot be used together with explicit " -"filenames." +#. type: Title - +#: en/git-archive.txt:129 +#, no-wrap +msgid "ATTRIBUTES" msgstr "" #. type: Labeled list -#: en/git-checkout-index.txt:44 +#: en/git-archive.txt:131 #, no-wrap -msgid "--no-create" +msgid "export-ignore" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:47 -msgid "Don't checkout new files, only refresh files already checked out." +#: en/git-archive.txt:134 +msgid "" +"Files and directories with the attribute export-ignore won't be added to " +"archive files. See linkgit:gitattributes[5] for details." msgstr "" #. type: Labeled list -#: en/git-checkout-index.txt:48 +#: en/git-archive.txt:135 #, no-wrap -msgid "--prefix=<string>" +msgid "export-subst" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:51 +#: en/git-archive.txt:139 msgid "" -"When creating files, prepend <string> (usually a directory including a " -"trailing /)" +"If the attribute export-subst is set for a file then Git will expand several " +"placeholders when adding this file to an archive. See linkgit:" +"gitattributes[5] for details." +msgstr "" + +#. type: Plain text +#: en/git-archive.txt:147 +msgid "" +"Note that attributes are by default taken from the `.gitattributes` files in " +"the tree that is being archived. If you want to tweak the way the output is " +"generated after the fact (e.g. you committed without adding an appropriate " +"export-ignore in its `.gitattributes`), adjust the checked out `." +"gitattributes` file as necessary and use `--worktree-attributes` option. " +"Alternatively you can keep necessary attributes that should apply while " +"archiving any tree in your `$GIT_DIR/info/attributes` file." msgstr "" #. type: Labeled list -#: en/git-checkout-index.txt:52 +#: en/git-archive.txt:150 #, no-wrap -msgid "--stage=<number>|all" +msgid "`git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:56 +#: en/git-archive.txt:155 msgid "" -"Instead of checking out unmerged entries, copy out the files from named " -"stage. <number> must be between 1 and 3. Note: --stage=all automatically " -"implies --temp." +"Create a tar archive that contains the contents of the latest commit on the " +"current branch, and extract it in the `/var/tmp/junk` directory." msgstr "" #. type: Labeled list -#: en/git-checkout-index.txt:57 +#: en/git-archive.txt:156 #, no-wrap -msgid "--temp" +msgid "`git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:61 -msgid "" -"Instead of copying the files to the working directory write the content to " -"temporary files. The temporary name associations will be written to stdout." +#: en/git-archive.txt:159 +msgid "Create a compressed tarball for v1.4.0 release." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:66 en/git-update-index.txt:144 -msgid "" -"Instead of taking list of paths from the command line, read list of paths " -"from the standard input. Paths are separated by LF (i.e. one path per line) " -"by default." +#. type: Labeled list +#: en/git-archive.txt:160 +#, no-wrap +msgid "`git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:70 -msgid "" -"Only meaningful with `--stdin`; paths are separated with NUL character " -"instead of LF." +#: en/git-archive.txt:163 +msgid "Same as above, but using the builtin tar.gz handling." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:73 en/git-commit.txt:338 en/git-ls-files.txt:176 en/git-merge-index.txt:25 en/git-prune.txt:47 en/git-update-index.txt:206 en/git-verify-pack.txt:38 -msgid "Do not interpret any more arguments as options." +#. type: Labeled list +#: en/git-archive.txt:164 +#, no-wrap +msgid "`git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:75 -msgid "The order of the flags used to matter, but not anymore." +#: en/git-archive.txt:167 +msgid "Same as above, but the format is inferred from the output file." msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:79 -msgid "" -"Just doing `git checkout-index` does nothing. You probably meant `git " -"checkout-index -a`. And if you want to force it, you want `git " -"checkout-index -f -a`." +#. type: Labeled list +#: en/git-archive.txt:168 +#, no-wrap +msgid "`git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:83 +#: en/git-archive.txt:172 msgid "" -"Intuitiveness is not the goal here. Repeatability is. The reason for the " -"\"no arguments means no work\" behavior is that from scripts you are " -"supposed to be able to do:" +"Create a compressed tarball for v1.4.0 release, but without a global " +"extended pax header." msgstr "" -#. type: delimited block - -#: en/git-checkout-index.txt:86 +#. type: Labeled list +#: en/git-archive.txt:173 #, no-wrap -msgid "$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --\n" +msgid "`git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:92 +#: en/git-archive.txt:177 msgid "" -"which will force all existing `*.h` files to be replaced with their cached " -"copies. If an empty command line implied \"all\", then this would " -"force-refresh everything in the index, which was not the point. But since " -"'git checkout-index' accepts --stdin it would be faster to use:" +"Put everything in the current head's Documentation/ directory into " +"'git-1.4.0-docs.zip', with the prefix 'git-docs/'." msgstr "" -#. type: delimited block - -#: en/git-checkout-index.txt:95 +#. type: Labeled list +#: en/git-archive.txt:178 #, no-wrap -msgid "$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin\n" +msgid "`git archive -o latest.zip HEAD`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:100 +#: en/git-archive.txt:183 msgid "" -"The `--` is just a good idea when you know the rest will be filenames; it " -"will prevent problems with a filename of, for example, `-a`. Using `--` is " -"probably a good policy in scripts." +"Create a Zip archive that contains the contents of the latest commit on the " +"current branch. Note that the output format is inferred by the extension of " +"the output file." msgstr "" -#. type: Title - -#: en/git-checkout-index.txt:103 +#. type: Labeled list +#: en/git-archive.txt:184 #, no-wrap -msgid "Using --temp or --stage=all" +msgid "`git config tar.tar.xz.command \"xz -c\"`" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:110 +#: en/git-archive.txt:189 msgid "" -"When `--temp` is used (or implied by `--stage=all`) 'git checkout-index' " -"will create a temporary file for each index entry being checked out. The " -"index will not be updated with stat information. These options can be " -"useful if the caller needs all stages of all unmerged entries so that the " -"unmerged files can be processed by an external merge tool." +"Configure a \"tar.xz\" format for making LZMA-compressed tarfiles. You can " +"use it specifying `--format=tar.xz`, or by creating an output file like `-o " +"foo.tar.xz`." msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:114 -msgid "" -"A listing will be written to stdout providing the association of temporary " -"file names to tracked path names. The listing format has two variations:" +#: en/git-archive.txt:194 +msgid "linkgit:gitattributes[5]" msgstr "" -#. type: Plain text -#: en/git-checkout-index.txt:116 -msgid "tempname TAB path RS" +#. type: Title = +#: en/git-bisect.txt:2 +#, no-wrap +msgid "git-bisect(1)" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:121 -msgid "" -"The first format is what gets used when `--stage` is omitted or is not " -"`--stage=all`. The field tempname is the temporary file name holding the " -"file content and path is the tracked path name in the index. Only the " -"requested entries are output." +#: en/git-bisect.txt:7 +msgid "git-bisect - Use binary search to find the commit that introduced a bug" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:123 -msgid "stage1temp SP stage2temp SP stage3tmp TAB path RS" +#: en/git-bisect.txt:13 +#, no-wrap +msgid "'git bisect' <subcommand> <options>\n" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:129 +#: en/git-bisect.txt:18 en/git-reflog.txt:18 msgid "" -"The second format is what gets used when `--stage=all`. The three stage " -"temporary fields (stage1temp, stage2temp, stage3temp) list the name of the " -"temporary file if there is a stage entry in the index or `.` if there is no " -"stage entry. Paths which only have a stage 0 entry will always be omitted " -"from the output." +"The command takes various subcommands, and different options depending on " +"the subcommand:" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:136 +#: en/git-bisect.txt:31 +#, no-wrap msgid "" -"In both formats RS (the record separator) is newline by default but will be " -"the null byte if -z was passed on the command line. The temporary file " -"names are always safe strings; they will never contain directory separators " -"or whitespace characters. The path field is always relative to the current " -"directory and the temporary file names are always relative to the top level " -"directory." +" git bisect start [--term-{old,good}=<term> --term-{new,bad}=<term>]\n" +"\t\t [--no-checkout] [<bad> [<good>...]] [--] [<paths>...]\n" +" git bisect (bad|new|<term-new>) [<rev>]\n" +" git bisect (good|old|<term-old>) [<rev>...]\n" +" git bisect terms [--term-good | --term-bad]\n" +" git bisect skip [(<rev>|<range>)...]\n" +" git bisect reset [<commit>]\n" +" git bisect (visualize|view)\n" +" git bisect replay <logfile>\n" +" git bisect log\n" +" git bisect run <cmd>...\n" +" git bisect help\n" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:140 +#: en/git-bisect.txt:40 msgid "" -"If the object being copied out to a temporary file is a symbolic link the " -"content of the link will be written to a normal file. It is up to the " -"end-user or the Porcelain to make use of this information." -msgstr "" - -#. type: Labeled list -#: en/git-checkout-index.txt:144 -#, no-wrap -msgid "To update and refresh only the files already checked out" +"This command uses a binary search algorithm to find which commit in your " +"project's history introduced a bug. You use it by first telling it a \"bad\" " +"commit that is known to contain the bug, and a \"good\" commit that is known " +"to be before the bug was introduced. Then `git bisect` picks a commit " +"between those two endpoints and asks you whether the selected commit is " +"\"good\" or \"bad\". It continues narrowing down the range until it finds " +"the exact commit that introduced the change." msgstr "" -#. type: delimited block - -#: en/git-checkout-index.txt:148 en/git-update-index.txt:342 -#, no-wrap +#. type: Plain text +#: en/git-bisect.txt:47 msgid "" -"$ git checkout-index -n -f -a && git update-index --ignore-missing " -"--refresh\n" +"In fact, `git bisect` can be used to find the commit that changed *any* " +"property of your project; e.g., the commit that fixed a bug, or the commit " +"that caused a benchmark's performance to improve. To support this more " +"general usage, the terms \"old\" and \"new\" can be used in place of \"good" +"\" and \"bad\", or you can choose your own terms. See section \"Alternate " +"terms\" below for more information." msgstr "" -#. type: Labeled list -#: en/git-checkout-index.txt:150 +#. type: Title ~ +#: en/git-bisect.txt:49 #, no-wrap -msgid "Using 'git checkout-index' to \"export an entire tree\"" +msgid "Basic bisect commands: start, bad, good" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:154 +#: en/git-bisect.txt:54 msgid "" -"The prefix ability basically makes it trivial to use 'git checkout-index' as " -"an \"export as tree\" function. Just read the desired tree into the index, " -"and do:" +"As an example, suppose you are trying to find the commit that broke a " +"feature that was known to work in version `v2.6.13-rc2` of your project. You " +"start a bisect session as follows:" msgstr "" #. type: delimited block - -#: en/git-checkout-index.txt:157 +#: en/git-bisect.txt:59 #, no-wrap -msgid "$ git checkout-index --prefix=git-export-dir/ -a\n" -msgstr "" - -#. type: Plain text -#: en/git-checkout-index.txt:161 -msgid "`git checkout-index` will \"export\" the index into the specified directory." +msgid "" +"$ git bisect start\n" +"$ git bisect bad # Current version is bad\n" +"$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 is known to be good\n" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:165 +#: en/git-bisect.txt:64 msgid "" -"The final \"/\" is important. The exported name is literally just prefixed " -"with the specified string. Contrast this with the following example." -msgstr "" - -#. type: Labeled list -#: en/git-checkout-index.txt:166 -#, no-wrap -msgid "Export files with a prefix" +"Once you have specified at least one bad and one good commit, `git bisect` " +"selects a commit in the middle of that range of history, checks it out, and " +"outputs something similar to the following:" msgstr "" #. type: delimited block - -#: en/git-checkout-index.txt:170 +#: en/git-bisect.txt:67 #, no-wrap -msgid "$ git checkout-index --prefix=.merged- Makefile\n" +msgid "Bisecting: 675 revisions left to test after this (roughly 10 steps)\n" msgstr "" #. type: Plain text -#: en/git-checkout-index.txt:174 +#: en/git-bisect.txt:71 msgid "" -"This will check out the currently cached copy of `Makefile` into the file " -"`.merged-Makefile`." +"You should now compile the checked-out version and test it. If that version " +"works correctly, type" msgstr "" -#. type: Title = -#: en/git-checkout.txt:2 +#. type: delimited block - +#: en/git-bisect.txt:74 #, no-wrap -msgid "git-checkout(1)" +msgid "$ git bisect good\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:7 -msgid "git-checkout - Switch branches or restore working tree files" +#: en/git-bisect.txt:77 +msgid "If that version is broken, type" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:17 +#. type: delimited block - +#: en/git-bisect.txt:80 #, no-wrap -msgid "" -"'git checkout' [-q] [-f] [-m] [<branch>]\n" -"'git checkout' [-q] [-f] [-m] --detach [<branch>]\n" -"'git checkout' [-q] [-f] [-m] [--detach] <commit>\n" -"'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] " -"[<start_point>]\n" -"'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] " -"<paths>...\n" -"'git checkout' [-p|--patch] [<tree-ish>] [--] [<paths>...]\n" +msgid "$ git bisect bad\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:24 -msgid "" -"Updates files in the working tree to match the version in the index or the " -"specified tree. If no paths are given, 'git checkout' will also update " -"`HEAD` to set the specified branch as the current branch." +#: en/git-bisect.txt:83 +msgid "Then `git bisect` will respond with something like" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:25 +#. type: delimited block - +#: en/git-bisect.txt:86 #, no-wrap -msgid "'git checkout' <branch>" +msgid "Bisecting: 337 revisions left to test after this (roughly 9 steps)\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:31 +#: en/git-bisect.txt:91 msgid "" -"To prepare for working on <branch>, switch to it by updating the index and " -"the files in the working tree, and by pointing HEAD at the branch. Local " -"modifications to the files in the working tree are kept, so that they can be " -"committed to the <branch>." +"Keep repeating the process: compile the tree, test it, and depending on " +"whether it is good or bad run `git bisect good` or `git bisect bad` to ask " +"for the next commit that needs testing." msgstr "" #. type: Plain text -#: en/git-checkout.txt:35 +#: en/git-bisect.txt:95 msgid "" -"If <branch> is not found but there does exist a tracking branch in exactly " -"one remote (call it <remote>) with a matching name, treat as equivalent to" +"Eventually there will be no more revisions left to inspect, and the command " +"will print out a description of the first bad commit. The reference `refs/" +"bisect/bad` will be left pointing at that commit." msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:38 +#. type: Title ~ +#: en/git-bisect.txt:98 #, no-wrap -msgid "$ git checkout -b <branch> --track <remote>/<branch>\n" +msgid "Bisect reset" msgstr "" #. type: Plain text -#: en/git-checkout.txt:44 +#: en/git-bisect.txt:102 msgid "" -"You could omit <branch>, in which case the command degenerates to \"check " -"out the current branch\", which is a glorified no-op with a rather expensive " -"side-effects to show only the tracking information, if exists, for the " -"current branch." +"After a bisect session, to clean up the bisection state and return to the " +"original HEAD, issue the following command:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:45 +#. type: delimited block - +#: en/git-bisect.txt:105 #, no-wrap -msgid "'git checkout' -b|-B <new_branch> [<start point>]" +msgid "$ git bisect reset\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:53 +#: en/git-bisect.txt:110 msgid "" -"Specifying `-b` causes a new branch to be created as if " -"linkgit:git-branch[1] were called and then checked out. In this case you " -"can use the `--track` or `--no-track` options, which will be passed to 'git " -"branch'. As a convenience, `--track` without `-b` implies branch creation; " -"see the description of `--track` below." +"By default, this will return your tree to the commit that was checked out " +"before `git bisect start`. (A new `git bisect start` will also do that, as " +"it cleans up the old bisection state.)" msgstr "" #. type: Plain text -#: en/git-checkout.txt:56 +#: en/git-bisect.txt:113 msgid "" -"If `-B` is given, <new_branch> is created if it doesn't exist; otherwise, it " -"is reset. This is the transactional equivalent of" +"With an optional argument, you can return to a different commit instead:" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:60 +#: en/git-bisect.txt:116 #, no-wrap -msgid "" -"$ git branch -f <branch> [<start point>]\n" -"$ git checkout <branch>\n" +msgid "$ git bisect reset <commit>\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:64 +#: en/git-bisect.txt:121 msgid "" -"that is to say, the branch is not reset/created unless \"git checkout\" is " -"successful." +"For example, `git bisect reset bisect/bad` will check out the first bad " +"revision, while `git bisect reset HEAD` will leave you on the current " +"bisection commit and avoid switching commits at all." msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:65 +#. type: Title ~ +#: en/git-bisect.txt:124 #, no-wrap -msgid "'git checkout' --detach [<branch>]" +msgid "Alternate terms" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:66 -#, no-wrap -msgid "'git checkout' [--detach] <commit>" +#. type: Plain text +#: en/git-bisect.txt:132 +msgid "" +"Sometimes you are not looking for the commit that introduced a breakage, but " +"rather for a commit that caused a change between some other \"old\" state " +"and \"new\" state. For example, you might be looking for the commit that " +"introduced a particular fix. Or you might be looking for the first commit in " +"which the source-code filenames were finally all converted to your company's " +"naming standard. Or whatever." msgstr "" #. type: Plain text -#: en/git-checkout.txt:74 +#: en/git-bisect.txt:138 msgid "" -"Prepare to work on top of <commit>, by detaching HEAD at it (see \"DETACHED " -"HEAD\" section), and updating the index and the files in the working tree. " -"Local modifications to the files in the working tree are kept, so that the " -"resulting working tree will be the state recorded in the commit plus the " -"local modifications." +"In such cases it can be very confusing to use the terms \"good\" and \"bad\" " +"to refer to \"the state before the change\" and \"the state after the change" +"\". So instead, you can use the terms \"old\" and \"new\", respectively, in " +"place of \"good\" and \"bad\". (But note that you cannot mix \"good\" and " +"\"bad\" with \"old\" and \"new\" in a single session.)" msgstr "" #. type: Plain text -#: en/git-checkout.txt:78 +#: en/git-bisect.txt:145 msgid "" -"When the <commit> argument is a branch name, the `--detach` option can be " -"used to detach HEAD at the tip of the branch (`git checkout <branch>` would " -"check out that branch without detaching HEAD)." +"In this more general usage, you provide `git bisect` with a \"new\" commit " +"that has some property and an \"old\" commit that doesn't have that " +"property. Each time `git bisect` checks out a commit, you test if that " +"commit has the property. If it does, mark the commit as \"new\"; otherwise, " +"mark it as \"old\". When the bisection is done, `git bisect` will report " +"which commit introduced the property." msgstr "" #. type: Plain text -#: en/git-checkout.txt:80 -msgid "Omitting <branch> detaches HEAD at the tip of the current branch." +#: en/git-bisect.txt:149 +msgid "" +"To use \"old\" and \"new\" instead of \"good\" and bad, you must run `git " +"bisect start` without commits as argument and then run the following " +"commands to add the commits:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:81 +#. type: delimited block - +#: en/git-bisect.txt:152 #, no-wrap -msgid "'git checkout' [-p|--patch] [<tree-ish>] [--] <pathspec>..." +msgid "git bisect old [<rev>]\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:91 -msgid "" -"When <paths> or `--patch` are given, 'git checkout' does *not* switch " -"branches. It updates the named paths in the working tree from the index " -"file or from a named <tree-ish> (most often a commit). In this case, the " -"`-b` and `--track` options are meaningless and giving either of them results " -"in an error. The <tree-ish> argument can be used to specify a specific " -"tree-ish (i.e. commit, tag or tree) to update the index for the given paths " -"before updating the working tree." +#: en/git-bisect.txt:155 +msgid "to indicate that a commit was before the sought change, or" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:95 -msgid "" -"'git checkout' with <paths> or `--patch` is used to restore modified or " -"deleted paths to their original contents from the index or replace paths " -"with the contents from a named <tree-ish> (most often a commit-ish)." +#. type: delimited block - +#: en/git-bisect.txt:158 +#, no-wrap +msgid "git bisect new [<rev>...]\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:103 -msgid "" -"The index may contain unmerged entries because of a previous failed merge. " -"By default, if you try to check out such an entry from the index, the " -"checkout operation will fail and nothing will be checked out. Using `-f` " -"will ignore these unmerged entries. The contents from a specific side of " -"the merge can be checked out of the index by using `--ours` or `--theirs`. " -"With `-m`, changes made to the working tree file can be discarded to " -"re-create the original conflicted merge result." +#: en/git-bisect.txt:161 +msgid "to indicate that it was after." msgstr "" #. type: Plain text -#: en/git-checkout.txt:109 -msgid "Quiet, suppress feedback messages." +#: en/git-bisect.txt:163 +msgid "To get a reminder of the currently used terms, use" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:110 en/git-fsck.txt:92 en/blame-options.txt:73 +#. type: delimited block - +#: en/git-bisect.txt:166 #, no-wrap -msgid "--[no-]progress" +msgid "git bisect terms\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:115 +#: en/git-bisect.txt:170 msgid "" -"Progress status is reported on the standard error stream by default when it " -"is attached to a terminal, unless `--quiet` is specified. This flag enables " -"progress reporting even if not attached to a terminal, regardless of " -"`--quiet`." +"You can get just the old (respectively new) term with `git bisect terms --" +"term-old` or `git bisect terms --term-good`." msgstr "" #. type: Plain text -#: en/git-checkout.txt:121 +#: en/git-bisect.txt:175 msgid "" -"When switching branches, proceed even if the index or the working tree " -"differs from HEAD. This is used to throw away local changes." +"If you would like to use your own terms instead of \"bad\"/\"good\" or \"new" +"\"/\"old\", you can choose any names you like (except existing bisect " +"subcommands like `reset`, `start`, ...) by starting the bisection using" +msgstr "" + +#. type: delimited block - +#: en/git-bisect.txt:178 +#, no-wrap +msgid "git bisect start --term-old <term-old> --term-new <term-new>\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:124 +#: en/git-bisect.txt:182 msgid "" -"When checking out paths from the index, do not fail upon unmerged entries; " -"instead, unmerged entries are ignored." +"For example, if you are looking for a commit that introduced a performance " +"regression, you might use" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:125 en/git-merge-file.txt:73 +#. type: delimited block - +#: en/git-bisect.txt:185 #, no-wrap -msgid "--ours" +msgid "git bisect start --term-old fast --term-new slow\n" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:126 en/git-merge-file.txt:74 +#. type: Plain text +#: en/git-bisect.txt:188 +msgid "Or if you are looking for the commit that fixed a bug, you might use" +msgstr "" + +#. type: delimited block - +#: en/git-bisect.txt:191 #, no-wrap -msgid "--theirs" +msgid "git bisect start --term-new fixed --term-old broken\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:129 +#: en/git-bisect.txt:195 msgid "" -"When checking out paths from the index, check out stage #2 ('ours') or #3 " -"('theirs') for unmerged paths." +"Then, use `git bisect <term-old>` and `git bisect <term-new>` instead of " +"`git bisect good` and `git bisect bad` to mark commits." +msgstr "" + +#. type: Title ~ +#: en/git-bisect.txt:197 +#, no-wrap +msgid "Bisect visualize/view" msgstr "" #. type: Plain text -#: en/git-checkout.txt:134 +#: en/git-bisect.txt:202 msgid "" -"Note that during `git rebase` and `git pull --rebase`, 'ours' and 'theirs' " -"may appear swapped; `--ours` gives the version from the branch the changes " -"are rebased onto, while `--theirs` gives the version from the branch that " -"holds your work that is being rebased." +"To see the currently remaining suspects in 'gitk', issue the following " +"command during the bisection process (the subcommand `view` can be used as " +"an alternative to `visualize`):" +msgstr "" + +#. type: delimited block - +#: en/git-bisect.txt:205 +#, no-wrap +msgid "$ git bisect visualize\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:144 +#: en/git-bisect.txt:210 msgid "" -"This is because `rebase` is used in a workflow that treats the history at " -"the remote as the shared canonical one, and treats the work done on the " -"branch you are rebasing as the third-party work to be integrated, and you " -"are temporarily assuming the role of the keeper of the canonical history " -"during the rebase. As the keeper of the canonical history, you need to view " -"the history from the remote as `ours` (i.e. \"our shared canonical " -"history\"), while what you did on your side branch as `theirs` (i.e. \"one " -"contributor's work on top of it\")." +"If the `DISPLAY` environment variable is not set, 'git log' is used " +"instead. You can also give command-line options such as `-p` and `--stat`." msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:145 +#. type: delimited block - +#: en/git-bisect.txt:213 #, no-wrap -msgid "-b <new_branch>" +msgid "$ git bisect visualize --stat\n" +msgstr "" + +#. type: Title ~ +#: en/git-bisect.txt:216 +#, no-wrap +msgid "Bisect log and bisect replay" msgstr "" #. type: Plain text -#: en/git-checkout.txt:148 +#: en/git-bisect.txt:220 msgid "" -"Create a new branch named <new_branch> and start it at <start_point>; see " -"linkgit:git-branch[1] for details." +"After having marked revisions as good or bad, issue the following command to " +"show what has been done so far:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:149 +#. type: delimited block - +#: en/git-bisect.txt:223 #, no-wrap -msgid "-B <new_branch>" +msgid "$ git bisect log\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:154 +#: en/git-bisect.txt:229 msgid "" -"Creates the branch <new_branch> and start it at <start_point>; if it already " -"exists, then reset it to <start_point>. This is equivalent to running \"git " -"branch\" with \"-f\"; see linkgit:git-branch[1] for details." +"If you discover that you made a mistake in specifying the status of a " +"revision, you can save the output of this command to a file, edit it to " +"remove the incorrect entries, and then issue the following commands to " +"return to a corrected state:" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:159 +#. type: delimited block - +#: en/git-bisect.txt:233 +#, no-wrap msgid "" -"When creating a new branch, set up \"upstream\" configuration. See " -"\"--track\" in linkgit:git-branch[1] for details." +"$ git bisect reset\n" +"$ git bisect replay that-file\n" +msgstr "" + +#. type: Title ~ +#: en/git-bisect.txt:236 +#, no-wrap +msgid "Avoiding testing a commit" msgstr "" #. type: Plain text -#: en/git-checkout.txt:169 +#: en/git-bisect.txt:243 msgid "" -"If no `-b` option is given, the name of the new branch will be derived from " -"the remote-tracking branch, by looking at the local part of the refspec " -"configured for the corresponding remote, and then stripping the initial part " -"up to the \"*\". This would tell us to use \"hack\" as the local branch " -"when branching off of \"origin/hack\" (or \"remotes/origin/hack\", or even " -"\"refs/remotes/origin/hack\"). If the given name has no slash, or the above " -"guessing results in an empty name, the guessing is aborted. You can " -"explicitly give a name with `-b` in such a case." +"If, in the middle of a bisect session, you know that the suggested revision " +"is not a good one to test (e.g. it fails to build and you know that the " +"failure does not have anything to do with the bug you are chasing), you can " +"manually select a nearby commit and test that one instead." msgstr "" #. type: Plain text -#: en/git-checkout.txt:177 -msgid "Create the new branch's reflog; see linkgit:git-branch[1] for details." +#: en/git-bisect.txt:245 en/git-tag.txt:366 +msgid "For example:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:178 en/git-daemon.txt:134 en/git-worktree.txt:100 +#. type: delimited block - +#: en/git-bisect.txt:252 #, no-wrap -msgid "--detach" +msgid "" +"$ git bisect good/bad\t\t\t# previous round was good or bad.\n" +"Bisecting: 337 revisions left to test after this (roughly 9 steps)\n" +"$ git bisect visualize\t\t\t# oops, that is uninteresting.\n" +"$ git reset --hard HEAD~3\t\t# try 3 revisions before what\n" +"\t\t\t\t\t# was suggested\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:184 +#: en/git-bisect.txt:256 msgid "" -"Rather than checking out a branch to work on it, check out a commit for " -"inspection and discardable experiments. This is the default behavior of " -"\"git checkout <commit>\" when <commit> is not a branch name. See the " -"\"DETACHED HEAD\" section below for details." +"Then compile and test the chosen revision, and afterwards mark the revision " +"as good or bad in the usual manner." msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:185 +#. type: Title ~ +#: en/git-bisect.txt:258 #, no-wrap -msgid "--orphan <new_branch>" +msgid "Bisect skip" msgstr "" #. type: Plain text -#: en/git-checkout.txt:191 +#: en/git-bisect.txt:262 msgid "" -"Create a new 'orphan' branch, named <new_branch>, started from <start_point> " -"and switch to it. The first commit made on this new branch will have no " -"parents and it will be the root of a new history totally disconnected from " -"all the other branches and commits." +"Instead of choosing a nearby commit by yourself, you can ask Git to do it " +"for you by issuing the command:" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:196 -msgid "" -"The index and the working tree are adjusted as if you had previously run " -"\"git checkout <start_point>\". This allows you to start a new history that " -"records a set of paths similar to <start_point> by easily running \"git " -"commit -a\" to make the root commit." +#. type: delimited block - +#: en/git-bisect.txt:265 +#, no-wrap +msgid "$ git bisect skip # Current version cannot be tested\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:202 +#: en/git-bisect.txt:270 msgid "" -"This can be useful when you want to publish the tree from a commit without " -"exposing its full history. You might want to do this to publish an open " -"source branch of a project whose current tree is \"clean\", but whose full " -"history contains proprietary or otherwise encumbered bits of code." +"However, if you skip a commit adjacent to the one you are looking for, Git " +"will be unable to tell exactly which of those commits was the first bad one." msgstr "" #. type: Plain text -#: en/git-checkout.txt:209 +#: en/git-bisect.txt:273 msgid "" -"If you want to start a disconnected history that records a set of paths that " -"is totally different from the one of <start_point>, then you should clear " -"the index and the working tree right after creating the orphan branch by " -"running \"git rm -rf .\" from the top level of the working tree. Afterwards " -"you will be ready to prepare your new files, repopulating the working tree, " -"by copying them from elsewhere, extracting a tarball, etc." +"You can also skip a range of commits, instead of just one commit, using " +"range notation. For example:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:210 +#. type: delimited block - +#: en/git-bisect.txt:276 #, no-wrap -msgid "--ignore-skip-worktree-bits" +msgid "$ git bisect skip v2.5..v2.6\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:215 +#: en/git-bisect.txt:280 msgid "" -"In sparse checkout mode, `git checkout -- <paths>` would update only entries " -"matched by <paths> and sparse patterns in " -"$GIT_DIR/info/sparse-checkout. This option ignores the sparse patterns and " -"adds back any files in <paths>." -msgstr "" - -#. type: Labeled list -#: en/git-checkout.txt:217 en/git-rebase.txt:271 en/git-reset.txt:71 en/git-submodule.txt:363 en/git-svn.txt:638 en/rev-list-options.txt:278 -#, no-wrap -msgid "--merge" +"This tells the bisect process that no commit after `v2.5`, up to and " +"including `v2.6`, should be tested." msgstr "" #. type: Plain text -#: en/git-checkout.txt:226 +#: en/git-bisect.txt:283 msgid "" -"When switching branches, if you have local modifications to one or more " -"files that are different between the current branch and the branch to which " -"you are switching, the command refuses to switch branches in order to " -"preserve your modifications in context. However, with this option, a " -"three-way merge between the current branch, your working tree contents, and " -"the new branch is done, and you will be on the new branch." +"Note that if you also want to skip the first commit of the range you would " +"issue the command:" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:231 -msgid "" -"When a merge conflict happens, the index entries for conflicting paths are " -"left unmerged, and you need to resolve the conflicts and mark the resolved " -"paths with `git add` (or `git rm` if the merge should result in deletion of " -"the path)." +#. type: delimited block - +#: en/git-bisect.txt:286 +#, no-wrap +msgid "$ git bisect skip v2.5 v2.5..v2.6\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:234 +#: en/git-bisect.txt:290 msgid "" -"When checking out paths from the index, this option lets you recreate the " -"conflicted merge in the specified paths." +"This tells the bisect process that the commits between `v2.5` and `v2.6` " +"(inclusive) should be skipped." msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:235 +#. type: Title ~ +#: en/git-bisect.txt:293 #, no-wrap -msgid "--conflict=<style>" +msgid "Cutting down bisection by giving more parameters to bisect start" msgstr "" #. type: Plain text -#: en/git-checkout.txt:241 +#: en/git-bisect.txt:298 msgid "" -"The same as --merge option above, but changes the way the conflicting hunks " -"are presented, overriding the merge.conflictStyle configuration variable. " -"Possible values are \"merge\" (default) and \"diff3\" (in addition to what " -"is shown by \"merge\" style, shows the original contents)." +"You can further cut down the number of trials, if you know what part of the " +"tree is involved in the problem you are tracking down, by specifying path " +"parameters when issuing the `bisect start` command:" +msgstr "" + +#. type: delimited block - +#: en/git-bisect.txt:301 +#, no-wrap +msgid "$ git bisect start -- arch/i386 include/asm-i386\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:248 +#: en/git-bisect.txt:306 msgid "" -"Interactively select hunks in the difference between the <tree-ish> (or the " -"index, if unspecified) and the working tree. The chosen hunks are then " -"applied in reverse to the working tree (and if a <tree-ish> was specified, " -"the index)." +"If you know beforehand more than one good commit, you can narrow the bisect " +"space down by specifying all of the good commits immediately after the bad " +"commit when issuing the `bisect start` command:" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:252 +#. type: delimited block - +#: en/git-bisect.txt:311 +#, no-wrap msgid "" -"This means that you can use `git checkout -p` to selectively discard edits " -"from your current working tree. See the ``Interactive Mode'' section of " -"linkgit:git-add[1] to learn how to operate the `--patch` mode." +"$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 --\n" +" # v2.6.20-rc6 is bad\n" +" # v2.6.20-rc4 and v2.6.20-rc1 are good\n" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:253 +#. type: Title ~ +#: en/git-bisect.txt:314 #, no-wrap -msgid "--ignore-other-worktrees" +msgid "Bisect run" msgstr "" #. type: Plain text -#: en/git-checkout.txt:258 +#: en/git-bisect.txt:318 msgid "" -"`git checkout` refuses when the wanted ref is already checked out by another " -"worktree. This option makes it check the ref out anyway. In other words, the " -"ref can be held by more than one worktree." +"If you have a script that can tell if the current source code is good or " +"bad, you can bisect by issuing the command:" msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:259 en/git-rebase.txt:242 +#. type: delimited block - +#: en/git-bisect.txt:321 #, no-wrap -msgid "<branch>" +msgid "$ git bisect run my_script arguments\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:265 +#: en/git-bisect.txt:327 msgid "" -"Branch to checkout; if it refers to a branch (i.e., a name that, when " -"prepended with \"refs/heads/\", is a valid ref), then that branch is checked " -"out. Otherwise, if it refers to a valid commit, your HEAD becomes " -"\"detached\" and you are no longer on any branch (see below for details)." +"Note that the script (`my_script` in the above example) should exit with " +"code 0 if the current source code is good/old, and exit with a code between " +"1 and 127 (inclusive), except 125, if the current source code is bad/new." msgstr "" #. type: Plain text -#: en/git-checkout.txt:269 +#: en/git-bisect.txt:331 msgid "" -"As a special case, the `\"@{-N}\"` syntax for the N-th last branch/commit " -"checks out branches (instead of detaching). You may also specify `-` which " -"is synonymous with `\"@{-1}\"`." +"Any other exit code will abort the bisect process. It should be noted that a " +"program that terminates via `exit(-1)` leaves $? = 255, (see the exit(3) " +"manual page), as the value is chopped with `& 0377`." msgstr "" #. type: Plain text -#: en/git-checkout.txt:273 +#: en/git-bisect.txt:340 msgid "" -"As a further special case, you may use `\"A...B\"` as a shortcut for the " -"merge base of `A` and `B` if there is exactly one merge base. You can leave " -"out at most one of `A` and `B`, in which case it defaults to `HEAD`." +"The special exit code 125 should be used when the current source code cannot " +"be tested. If the script exits with this code, the current revision will be " +"skipped (see `git bisect skip` above). 125 was chosen as the highest " +"sensible value to use for this purpose, because 126 and 127 are used by " +"POSIX shells to signal specific error status (127 is for command not found, " +"126 is for command found but not executable--these details do not matter, as " +"they are normal errors in the script, as far as `bisect run` is concerned)." msgstr "" -#. type: Labeled list -#: en/git-checkout.txt:274 -#, no-wrap -msgid "<new_branch>" +#. type: Plain text +#: en/git-bisect.txt:346 +msgid "" +"You may often find that during a bisect session you want to have temporary " +"modifications (e.g. s/#define DEBUG 0/#define DEBUG 1/ in a header file, or " +"\"revision that does not have this commit needs this patch applied to work " +"around another problem this bisection is not interested in\") applied to the " +"revision being tested." msgstr "" #. type: Plain text -#: en/git-checkout.txt:276 -msgid "Name for the new branch." +#: en/git-bisect.txt:354 +msgid "" +"To cope with such a situation, after the inner 'git bisect' finds the next " +"revision to test, the script can apply the patch before compiling, run the " +"real test, and afterwards decide if the revision (possibly with the needed " +"patch) passed the test and then rewind the tree to the pristine state. " +"Finally the script should exit with the status of the real test to let the " +"`git bisect run` command loop determine the eventual outcome of the bisect " +"session." msgstr "" #. type: Labeled list -#: en/git-checkout.txt:277 +#: en/git-bisect.txt:357 en/git-clone.txt:134 #, no-wrap -msgid "<start_point>" +msgid "--no-checkout" msgstr "" #. type: Plain text -#: en/git-checkout.txt:280 +#: en/git-bisect.txt:362 msgid "" -"The name of a commit at which to start the new branch; see " -"linkgit:git-branch[1] for details. Defaults to HEAD." +"Do not checkout the new working tree at each iteration of the bisection " +"process. Instead just update a special reference named `BISECT_HEAD` to make " +"it point to the commit that should be tested." msgstr "" #. type: Plain text -#: en/git-checkout.txt:284 +#: en/git-bisect.txt:365 msgid "" -"Tree to checkout from (when paths are given). If not specified, the index " -"will be used." +"This option may be useful when the test you would perform in each step does " +"not require a checked out tree." msgstr "" -#. type: Title - -#: en/git-checkout.txt:288 -#, no-wrap -msgid "DETACHED HEAD" +#. type: Plain text +#: en/git-bisect.txt:367 +msgid "If the repository is bare, `--no-checkout` is assumed." msgstr "" #. type: Plain text -#: en/git-checkout.txt:292 -msgid "" -"HEAD normally refers to a named branch (e.g. 'master'). Meanwhile, each " -"branch refers to a specific commit. Let's look at a repo with three commits, " -"one of them tagged, and with branch 'master' checked out:" +#: en/git-bisect.txt:372 +msgid "Automatically bisect a broken build between v1.2 and HEAD:" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:301 +#: en/git-bisect.txt:377 #, no-wrap msgid "" -"\t HEAD (refers to branch 'master')\n" -"\t |\n" -"\t v\n" -"a---b---c branch 'master' (refers to commit 'c')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"$ git bisect start HEAD v1.2 -- # HEAD is bad, v1.2 is good\n" +"$ git bisect run make # \"make\" builds the app\n" +"$ git bisect reset # quit the bisect session\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:308 -msgid "" -"When a commit is created in this state, the branch is updated to refer to " -"the new commit. Specifically, 'git commit' creates a new commit 'd', whose " -"parent is commit 'c', and then updates branch 'master' to refer to new " -"commit 'd'. HEAD still refers to branch 'master' and so indirectly now " -"refers to commit 'd':" -msgstr "" - -#. type: delimited block - -#: en/git-checkout.txt:311 en/git-checkout.txt:346 en/git-checkout.txt:363 -#, no-wrap -msgid "$ edit; git add; git commit\n" +#: en/git-bisect.txt:380 +msgid "Automatically bisect a test failure between origin and HEAD:" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:319 +#: en/git-bisect.txt:385 #, no-wrap msgid "" -"\t HEAD (refers to branch 'master')\n" -"\t\t|\n" -"\t\tv\n" -"a---b---c---d branch 'master' (refers to commit 'd')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"$ git bisect start HEAD origin -- # HEAD is bad, origin is good\n" +"$ git bisect run make test # \"make test\" builds and tests\n" +"$ git bisect reset # quit the bisect session\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:325 -msgid "" -"It is sometimes useful to be able to checkout a commit that is not at the " -"tip of any named branch, or even to create a new commit that is not " -"referenced by a named branch. Let's look at what happens when we checkout " -"commit 'b' (here we show two ways this may be done):" -msgstr "" - -#. type: delimited block - -#: en/git-checkout.txt:329 -#, no-wrap -msgid "" -"$ git checkout v2.0 # or\n" -"$ git checkout master^^\n" +#: en/git-bisect.txt:388 en/git-bisect.txt:442 +msgid "Automatically bisect a broken test case:" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:337 +#: en/git-bisect.txt:397 #, no-wrap msgid "" -" HEAD (refers to commit 'b')\n" -" |\n" -" v\n" -"a---b---c---d branch 'master' (refers to commit 'd')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"$ cat ~/test.sh\n" +"#!/bin/sh\n" +"make || exit 125 # this skips broken builds\n" +"~/check_test_case.sh # does the test case pass?\n" +"$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10\n" +"$ git bisect run ~/test.sh\n" +"$ git bisect reset # quit the bisect session\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:343 +#: en/git-bisect.txt:403 msgid "" -"Notice that regardless of which checkout command we use, HEAD now refers " -"directly to commit 'b'. This is known as being in detached HEAD state. It " -"means simply that HEAD refers to a specific commit, as opposed to referring " -"to a named branch. Let's see what happens when we create a commit:" +"Here we use a `test.sh` custom script. In this script, if `make` fails, we " +"skip the current commit. `check_test_case.sh` should `exit 0` if the test " +"case passes, and `exit 1` otherwise." msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:356 -#, no-wrap +#. type: Plain text +#: en/git-bisect.txt:407 msgid "" -" HEAD (refers to commit 'e')\n" -" |\n" -" v\n" -" e\n" -" /\n" -"a---b---c---d branch 'master' (refers to commit 'd')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"It is safer if both `test.sh` and `check_test_case.sh` are outside the " +"repository to prevent interactions between the bisect, make and test " +"processes and the scripts." msgstr "" #. type: Plain text -#: en/git-checkout.txt:360 -msgid "" -"There is now a new commit 'e', but it is referenced only by HEAD. We can of " -"course add yet another commit in this state:" +#: en/git-bisect.txt:409 +msgid "Automatically bisect with temporary modifications (hot-fix):" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:373 +#: en/git-bisect.txt:413 #, no-wrap msgid "" -"\t HEAD (refers to commit 'f')\n" -"\t |\n" -"\t v\n" -" e---f\n" -" /\n" -"a---b---c---d branch 'master' (refers to commit 'd')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"$ cat ~/test.sh\n" +"#!/bin/sh\n" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:377 +#. type: delimited block - +#: en/git-bisect.txt:426 +#, no-wrap msgid "" -"In fact, we can perform all the normal Git operations. But, let's look at " -"what happens when we then checkout master:" +"# tweak the working tree by merging the hot-fix branch\n" +"# and then attempt a build\n" +"if\tgit merge --no-commit hot-fix &&\n" +"\tmake\n" +"then\n" +"\t# run project specific test and report its status\n" +"\t~/check_test_case.sh\n" +"\tstatus=$?\n" +"else\n" +"\t# tell the caller this is untestable\n" +"\tstatus=125\n" +"fi\n" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:380 +#: en/git-bisect.txt:429 #, no-wrap -msgid "$ git checkout master\n" +msgid "" +"# undo the tweak to allow clean flipping to the next commit\n" +"git reset --hard\n" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:388 +#: en/git-bisect.txt:432 #, no-wrap msgid "" -"\t HEAD (refers to branch 'master')\n" -" e---f |\n" -" / v\n" -"a---b---c---d branch 'master' (refers to commit 'd')\n" -" ^\n" -" |\n" -" tag 'v2.0' (refers to commit 'b')\n" +"# return control\n" +"exit $status\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:395 +#: en/git-bisect.txt:440 msgid "" -"It is important to realize that at this point nothing refers to commit " -"'f'. Eventually commit 'f' (and by extension commit 'e') will be deleted by " -"the routine Git garbage collection process, unless we create a reference " -"before that happens. If we have not yet moved away from commit 'f', any of " -"these will create a reference to it:" +"This applies modifications from a hot-fix branch before each test run, e.g. " +"in case your build or test environment changed so that older revisions may " +"need a fix which newer ones have already. (Make sure the hot-fix branch is " +"based off a commit which is contained in all revisions which you are " +"bisecting, so that the merge does not pull in too much, or use `git cherry-" +"pick` instead of `git merge`.)" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:400 +#: en/git-bisect.txt:447 #, no-wrap msgid "" -"$ git checkout -b foo <1>\n" -"$ git branch foo <2>\n" -"$ git tag foo <3>\n" -msgstr "" - -#. type: Plain text -#: en/git-checkout.txt:405 -msgid "" -"creates a new branch 'foo', which refers to commit 'f', and then updates " -"HEAD to refer to branch 'foo'. In other words, we'll no longer be in " -"detached HEAD state after this command." +"$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10\n" +"$ git bisect run sh -c \"make || exit 125; ~/check_test_case.sh\"\n" +"$ git bisect reset # quit the bisect session\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:408 +#: en/git-bisect.txt:451 msgid "" -"similarly creates a new branch 'foo', which refers to commit 'f', but leaves " -"HEAD detached." -msgstr "" - -#. type: Plain text -#: en/git-checkout.txt:411 -msgid "creates a new tag 'foo', which refers to commit 'f', leaving HEAD detached." +"This shows that you can do without a run script if you write the test on a " +"single line." msgstr "" #. type: Plain text -#: en/git-checkout.txt:416 -msgid "" -"If we have moved away from commit 'f', then we must first recover its object " -"name (typically by using git reflog), and then we can create a reference to " -"it. For example, to see the last two commits to which HEAD referred, we can " -"use either of these commands:" +#: en/git-bisect.txt:453 +msgid "Locate a good region of the object graph in a damaged repository" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:420 +#: en/git-bisect.txt:463 #, no-wrap msgid "" -"$ git reflog -2 HEAD # or\n" -"$ git log -g -2 HEAD\n" +"$ git bisect start HEAD <known-good-commit> [ <boundary-commit> ... ] --no-checkout\n" +"$ git bisect run sh -c '\n" +"\tGOOD=$(git for-each-ref \"--format=%(objectname)\" refs/bisect/good-*) &&\n" +"\tgit rev-list --objects BISECT_HEAD --not $GOOD >tmp.$$ &&\n" +"\tgit pack-objects --stdout >/dev/null <tmp.$$\n" +"\trc=$?\n" +"\trm -f tmp.$$\n" +"\ttest $rc = 0'\n" msgstr "" -#. type: Title - -#: en/git-checkout.txt:423 +#. type: delimited block - +#: en/git-bisect.txt:465 #, no-wrap -msgid "ARGUMENT DISAMBIGUATION" +msgid "$ git bisect reset # quit the bisect session\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:433 +#: en/git-bisect.txt:470 msgid "" -"When there is only one argument given and it is not `--` (e.g. \"git " -"checkout abc\"), and when the argument is both a valid `<tree-ish>` (e.g. a " -"branch \"abc\" exists) and a valid `<pathspec>` (e.g. a file or a directory " -"whose name is \"abc\" exists), Git would usually ask you to disambiguate. " -"Because checking out a branch is so common an operation, however, \"git " -"checkout abc\" takes \"abc\" as a `<tree-ish>` in such a situation. Use " -"`git checkout -- <pathspec>` if you want to checkout these paths out of the " -"index." +"In this case, when 'git bisect run' finishes, bisect/bad will refer to a " +"commit that has at least one parent whose reachable graph is fully " +"traversable in the sense required by 'git pack objects'." msgstr "" #. type: Plain text -#: en/git-checkout.txt:440 -msgid "" -"The following sequence checks out the `master` branch, reverts the " -"`Makefile` to two revisions back, deletes hello.c by mistake, and gets it " -"back from the index." +#: en/git-bisect.txt:472 +msgid "Look for a fix instead of a regression in the code" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:446 +#: en/git-bisect.txt:477 #, no-wrap msgid "" -"$ git checkout master <1>\n" -"$ git checkout master~2 Makefile <2>\n" -"$ rm -f hello.c\n" -"$ git checkout hello.c <3>\n" -msgstr "" - -#. type: Plain text -#: en/git-checkout.txt:449 -msgid "switch branch" -msgstr "" - -#. type: Plain text -#: en/git-checkout.txt:450 -msgid "take a file out of another commit" +"$ git bisect start\n" +"$ git bisect new HEAD # current commit is marked as new\n" +"$ git bisect old HEAD~10 # the tenth commit from now is marked as old\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:451 -msgid "restore hello.c from the index" +#: en/git-bisect.txt:480 +msgid "or:" msgstr "" -#. type: Plain text -#: en/git-checkout.txt:454 -msgid "If you want to check out _all_ C source files out of the index, you can say" +#. type: delimited block - +#: en/git-bisect.txt:484 +#, no-wrap +msgid "" +"$ git bisect start --term-old broken --term-new fixed\n" +"$ git bisect fixed\n" +"$ git bisect broken HEAD~10\n" msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:457 +#. type: Title ~ +#: en/git-bisect.txt:487 #, no-wrap -msgid "$ git checkout -- '*.c'\n" +msgid "Getting help" msgstr "" #. type: Plain text -#: en/git-checkout.txt:463 +#: en/git-bisect.txt:491 msgid "" -"Note the quotes around `*.c`. The file `hello.c` will also be checked out, " -"even though it is no longer in the working tree, because the file globbing " -"is used to match entries in the index (not in the working tree by the " -"shell)." +"Use `git bisect` to get a short usage description, and `git bisect help` or " +"`git bisect -h` to get a long usage description." msgstr "" #. type: Plain text -#: en/git-checkout.txt:467 +#: en/git-bisect.txt:496 msgid "" -"If you have an unfortunate branch that is named `hello.c`, this step would " -"be confused as an instruction to switch to that branch. You should instead " -"write:" +"link:git-bisect-lk2009.html[Fighting regressions with git bisect], linkgit:" +"git-blame[1]." msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:470 +#. type: Title = +#: en/git-blame.txt:2 #, no-wrap -msgid "$ git checkout -- hello.c\n" +msgid "git-blame(1)" msgstr "" #. type: Plain text -#: en/git-checkout.txt:474 +#: en/git-blame.txt:7 msgid "" -"After working in the wrong branch, switching to the correct branch would be " -"done using:" +"git-blame - Show what revision and author last modified each line of a file" msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:477 +#. type: Plain text +#: en/git-blame.txt:15 #, no-wrap -msgid "$ git checkout mytopic\n" +msgid "" +"'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]\n" +"\t [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]\n" +"\t [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]\n" +"\t [--] <file>\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:482 +#: en/git-blame.txt:21 msgid "" -"However, your \"wrong\" branch and correct \"mytopic\" branch may differ in " -"files that you have modified locally, in which case the above checkout would " -"fail like this:" +"Annotates each line in the given file with information from the revision " +"which last modified the line. Optionally, start annotating from the given " +"revision." msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:486 -#, no-wrap +#. type: Plain text +#: en/git-blame.txt:24 msgid "" -"$ git checkout mytopic\n" -"error: You have local changes to 'frotz'; not switching branches.\n" +"When specified one or more times, `-L` restricts annotation to the requested " +"lines." msgstr "" #. type: Plain text -#: en/git-checkout.txt:490 -msgid "" -"You can give the `-m` flag to the command, which would try a three-way " -"merge:" -msgstr "" - -#. type: delimited block - -#: en/git-checkout.txt:494 -#, no-wrap +#: en/git-blame.txt:30 msgid "" -"$ git checkout -m mytopic\n" -"Auto-merging frotz\n" +"The origin of lines is automatically followed across whole-file renames " +"(currently there is no option to turn the rename-following off). To follow " +"lines moved from one file to another, or to follow lines that were copied " +"and pasted from another file, etc., see the `-C` and `-M` options." msgstr "" #. type: Plain text -#: en/git-checkout.txt:499 +#: en/git-blame.txt:34 msgid "" -"After this three-way merge, the local modifications are _not_ registered in " -"your index file, so `git diff` would show you what changes you made since " -"the tip of the new branch." +"The report does not tell you anything about lines which have been deleted or " +"replaced; you need to use a tool such as 'git diff' or the \"pickaxe\" " +"interface briefly mentioned in the following paragraph." msgstr "" #. type: Plain text -#: en/git-checkout.txt:502 +#: en/git-blame.txt:41 msgid "" -"When a merge conflict happens during switching branches with the `-m` " -"option, you would see something like this:" +"Apart from supporting file annotation, Git also supports searching the " +"development history for when a code snippet occurred in a change. This makes " +"it possible to track when a code snippet was added to a file, moved or " +"copied between files, and eventually deleted or replaced. It works by " +"searching for a text string in the diff. A small example of the pickaxe " +"interface that searches for `blame_usage`:" msgstr "" #. type: delimited block - -#: en/git-checkout.txt:508 +#: en/git-blame.txt:46 #, no-wrap msgid "" -"$ git checkout -m mytopic\n" -"Auto-merging frotz\n" -"ERROR: Merge conflict in frotz\n" -"fatal: merge program failed\n" +"$ git log --pretty=oneline -S'blame_usage'\n" +"5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file>\n" +"ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output\n" msgstr "" #. type: Plain text -#: en/git-checkout.txt:514 -msgid "" -"At this point, `git diff` shows the changes cleanly merged as in the " -"previous example, as well as the changes in the conflicted files. Edit and " -"resolve the conflict and mark it resolved with `git add` as usual:" +#: en/git-blame.txt:54 +msgid "Use the same output mode as linkgit:git-annotate[1] (Default: off)." msgstr "" -#. type: delimited block - -#: en/git-checkout.txt:518 +#. type: Labeled list +#: en/git-blame.txt:55 #, no-wrap +msgid "--score-debug" +msgstr "" + +#. type: Plain text +#: en/git-blame.txt:63 msgid "" -"$ edit frotz\n" -"$ git add frotz\n" +"Include debugging information related to the movement of lines between files " +"(see `-C`) and lines moved within a file (see `-M`). The first number " +"listed is the score. This is the number of alphanumeric characters detected " +"as having been moved between or within files. This must be above a certain " +"threshold for 'git blame' to consider those lines of code to have been moved." msgstr "" -#. type: Title = -#: en/git-check-ref-format.txt:2 +#. type: Labeled list +#: en/git-blame.txt:65 #, no-wrap -msgid "git-check-ref-format(1)" +msgid "--show-name" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:7 -msgid "git-check-ref-format - Ensures that a reference name is well formed" +#: en/git-blame.txt:69 +msgid "" +"Show the filename in the original commit. By default the filename is shown " +"if there is any line that came from a file with a different name, due to " +"rename detection." msgstr "" -#. type: Plain text -#: en/git-check-ref-format.txt:15 +#. type: Labeled list +#: en/git-blame.txt:71 #, no-wrap -msgid "" -"'git check-ref-format' [--normalize]\n" -" [--[no-]allow-onelevel] [--refspec-pattern]\n" -" <refname>\n" -"'git check-ref-format' --branch <branchname-shorthand>\n" +msgid "--show-number" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:20 -msgid "" -"Checks if a given 'refname' is acceptable, and exits with a non-zero status " -"if it is not." +#: en/git-blame.txt:73 +msgid "Show the line number in the original commit (Default: off)." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:27 -msgid "" -"A reference is used in Git to specify branches and tags. A branch head is " -"stored in the `refs/heads` hierarchy, while a tag is stored in the " -"`refs/tags` hierarchy of the ref namespace (typically in " -"`$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags` directories or, as entries in " -"file `$GIT_DIR/packed-refs` if refs are packed by `git gc`)." +#: en/git-blame.txt:76 +msgid "Suppress the author name and timestamp from the output." msgstr "" -#. type: Plain text -#: en/git-check-ref-format.txt:29 -msgid "Git imposes the following rules on how references are named:" +#. type: Labeled list +#: en/git-blame.txt:78 +#, no-wrap +msgid "--show-email" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:33 +#: en/git-blame.txt:82 msgid "" -"They can include slash `/` for hierarchical (directory) grouping, but no " -"slash-separated component can begin with a dot `.` or end with the sequence " -"`.lock`." +"Show the author email instead of author name (Default: off). This can also " +"be controlled via the `blame.showEmail` config option." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:38 +#: en/git-blame.txt:86 msgid "" -"They must contain at least one `/`. This enforces the presence of a category " -"like `heads/`, `tags/` etc. but the actual names are not restricted. If the " -"`--allow-onelevel` option is used, this rule is waived." +"Ignore whitespace when comparing the parent's version and the child's to " +"find where the lines came from." msgstr "" -#. type: Plain text -#: en/git-check-ref-format.txt:40 -msgid "They cannot have two consecutive dots `..` anywhere." +#. type: Labeled list +#: en/git-blame.txt:87 en/git-describe.txt:65 +#, no-wrap +msgid "--abbrev=<n>" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:44 +#: en/git-blame.txt:91 msgid "" -"They cannot have ASCII control characters (i.e. bytes whose values are lower " -"than \\040, or \\177 `DEL`), space, tilde `~`, caret `^`, or colon `:` " -"anywhere." +"Instead of using the default 7+1 hexadecimal digits as the abbreviated " +"object name, use <n>+1 digits. Note that 1 column is used for a caret to " +"mark the boundary commit." msgstr "" -#. type: Plain text -#: en/git-check-ref-format.txt:48 -msgid "" -"They cannot have question-mark `?`, asterisk `*`, or open bracket `[` " -"anywhere. See the `--refspec-pattern` option below for an exception to this " -"rule." +#. type: Title - +#: en/git-blame.txt:94 +#, no-wrap +msgid "THE PORCELAIN FORMAT" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:52 +#: en/git-blame.txt:98 msgid "" -"They cannot begin or end with a slash `/` or contain multiple consecutive " -"slashes (see the `--normalize` option below for an exception to this rule)" -msgstr "" - -#. type: Plain text -#: en/git-check-ref-format.txt:54 -msgid "They cannot end with a dot `.`." +"In this format, each line is output after a header; the header at the " +"minimum has the first line which has:" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:56 -msgid "They cannot contain a sequence `@{`." +#: en/git-blame.txt:100 +msgid "40-byte SHA-1 of the commit the line is attributed to;" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:58 -msgid "They cannot be the single character `@`." +#: en/git-blame.txt:101 +msgid "the line number of the line in the original file;" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:60 -msgid "They cannot contain a `\\`." +#: en/git-blame.txt:102 +msgid "the line number of the line in the final file;" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:65 +#: en/git-blame.txt:105 msgid "" -"These rules make it easy for shell script based tools to parse reference " -"names, pathname expansion by the shell when a reference name is used " -"unquoted (by mistake), and also avoid ambiguities in certain reference name " -"expressions (see linkgit:gitrevisions[7]):" +"on a line that starts a group of lines from a different commit than the " +"previous one, the number of lines in this group. On subsequent lines this " +"field is absent." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:69 +#: en/git-blame.txt:108 msgid "" -"A double-dot `..` is often used as in `ref1..ref2`, and in some contexts " -"this notation means `^ref1 ref2` (i.e. not in `ref1` and in `ref2`)." +"This header line is followed by the following information at least once for " +"each commit:" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:72 +#: en/git-blame.txt:112 msgid "" -"A tilde `~` and caret `^` are used to introduce the postfix 'nth parent' and " -"'peel onion' operation." +"the author name (\"author\"), email (\"author-mail\"), time (\"author-time" +"\"), and time zone (\"author-tz\"); similarly for committer." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:77 -msgid "" -"A colon `:` is used as in `srcref:dstref` to mean \"use srcref\\'s value and " -"store it in dstref\" in fetch and push operations. It may also be used to " -"select a specific object such as with 'git cat-file': \"git cat-file blob " -"v1.3.3:refs.c\"." +#: en/git-blame.txt:113 +msgid "the filename in the commit that the line is attributed to." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:79 -msgid "at-open-brace `@{` is used as a notation to access a reflog entry." +#: en/git-blame.txt:114 +msgid "the first line of the commit log message (\"summary\")." msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:85 +#: en/git-blame.txt:118 msgid "" -"With the `--branch` option, it expands the ``previous branch syntax'' " -"`@{-n}`. For example, `@{-1}` is a way to refer the last branch you were " -"on. This option should be used by porcelains to accept this syntax anywhere " -"a branch name is expected, so they can act as if you typed the branch name." +"The contents of the actual line is output after the above header, prefixed " +"by a TAB. This is to allow adding more header elements later." msgstr "" -#. type: Labeled list -#: en/git-check-ref-format.txt:88 -#, no-wrap -msgid "--[no-]allow-onelevel" +#. type: Plain text +#: en/git-blame.txt:126 +msgid "" +"The porcelain format generally suppresses commit information that has " +"already been seen. For example, two lines that are blamed to the same commit " +"will both be shown, but the details for that commit will be shown only once. " +"This is more efficient, but may require more state be kept by the reader. " +"The `--line-porcelain` option can be used to output full commit information " +"for each line, allowing simpler (but less efficient) usage like:" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:92 +#: en/git-blame.txt:131 +#, no-wrap msgid "" -"Controls whether one-level refnames are accepted (i.e., refnames that do not " -"contain multiple `/`-separated components). The default is " -"`--no-allow-onelevel`." +"\t# count the number of lines attributed to each author\n" +"\tgit blame --line-porcelain file |\n" +"\tsed -n 's/^author //p' |\n" +"\tsort | uniq -c | sort -rn\n" msgstr "" -#. type: Labeled list -#: en/git-check-ref-format.txt:93 +#. type: Title - +#: en/git-blame.txt:134 en/revisions.txt:248 #, no-wrap -msgid "--refspec-pattern" +msgid "SPECIFYING RANGES" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:99 +#: en/git-blame.txt:140 msgid "" -"Interpret <refname> as a reference name pattern for a refspec (as used with " -"remote repositories). If this option is enabled, <refname> is allowed to " -"contain a single `*` in the refspec (e.g., `foo/bar*/baz` or `foo/bar*baz/` " -"but not `foo/bar*/baz*`)." +"Unlike 'git blame' and 'git annotate' in older versions of git, the extent " +"of the annotation can be limited to both line ranges and revision ranges. " +"The `-L` option, which limits annotation to a range of lines, may be " +"specified multiple times." msgstr "" -#. type: Labeled list -#: en/git-check-ref-format.txt:100 -#, no-wrap -msgid "--normalize" +#. type: Plain text +#: en/git-blame.txt:145 +msgid "" +"When you are interested in finding the origin for lines 40-60 for file " +"`foo`, you can use the `-L` option like so (they mean the same thing -- both " +"ask for 21 lines starting at line 40):" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:107 +#: en/git-blame.txt:148 +#, no-wrap msgid "" -"Normalize 'refname' by removing any leading slash (`/`) characters and " -"collapsing runs of adjacent slashes between name components into a single " -"slash. If the normalized refname is valid then print it to standard output " -"and exit with a status of 0, otherwise exit with a non-zero status. " -"(`--print` is a deprecated way to spell `--normalize`.)" +"\tgit blame -L 40,60 foo\n" +"\tgit blame -L 40,+21 foo\n" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:113 -msgid "Print the name of the previous branch:" +#: en/git-blame.txt:150 +msgid "Also you can use a regular expression to specify the line range:" msgstr "" -#. type: delimited block - -#: en/git-check-ref-format.txt:116 +#. type: Plain text +#: en/git-blame.txt:152 #, no-wrap -msgid "$ git check-ref-format --branch @{-1}\n" +msgid "\tgit blame -L '/^sub hello {/,/^}$/' foo\n" msgstr "" #. type: Plain text -#: en/git-check-ref-format.txt:119 -msgid "Determine the reference name to use for a new branch:" +#: en/git-blame.txt:154 +msgid "which limits the annotation to the body of the `hello` subroutine." msgstr "" -#. type: delimited block - -#: en/git-check-ref-format.txt:123 -#, no-wrap +#. type: Plain text +#: en/git-blame.txt:158 msgid "" -"$ ref=$(git check-ref-format --normalize \"refs/heads/$newbranch\")||\n" -"{ echo \"we do not like '$newbranch' as a branch name.\" >&2 ; exit 1 ; }\n" -msgstr "" - -#. type: Title = -#: en/git-cherry-pick.txt:2 -#, no-wrap -msgid "git-cherry-pick(1)" +"When you are not interested in changes older than version v2.6.18, or " +"changes older than 3 weeks, you can use revision range specifiers similar to " +"'git rev-list':" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:7 -msgid "git-cherry-pick - Apply the changes introduced by some existing commits" +#: en/git-blame.txt:161 +#, no-wrap +msgid "" +"\tgit blame v2.6.18.. -- foo\n" +"\tgit blame --since=3.weeks -- foo\n" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:16 -#, no-wrap +#: en/git-blame.txt:167 msgid "" -"'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]\n" -"\t\t [-S[<keyid>]] <commit>...\n" -"'git cherry-pick' --continue\n" -"'git cherry-pick' --quit\n" -"'git cherry-pick' --abort\n" +"When revision range specifiers are used to limit the annotation, lines that " +"have not changed since the range boundary (either the commit v2.6.18 or the " +"most recent commit that is more than 3 weeks old in the above example) are " +"blamed for that range boundary commit." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:23 +#: en/git-blame.txt:173 msgid "" -"Given one or more existing commits, apply the change each one introduces, " -"recording a new commit for each. This requires your working tree to be " -"clean (no modifications from the HEAD commit)." +"A particularly useful way is to see if an added file has lines created by " +"copy-and-paste from existing files. Sometimes this indicates that the " +"developer was being sloppy and did not refactor the code properly. You can " +"first find the commit that introduced the file with:" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:26 -msgid "When it is not obvious how to apply a change, the following happens:" +#: en/git-blame.txt:175 +#, no-wrap +msgid "\tgit log --diff-filter=A --pretty=short -- foo\n" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:29 +#: en/git-blame.txt:178 msgid "" -"The current branch and `HEAD` pointer stay at the last commit successfully " -"made." +"and then annotate the change between the commit and its parents, using " +"`commit^!` notation:" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:31 -msgid "" -"The `CHERRY_PICK_HEAD` ref is set to point at the commit that introduced the " -"change that is difficult to apply." +#: en/git-blame.txt:180 +#, no-wrap +msgid "\tgit blame -C -C -f $commit^! -- foo\n" +msgstr "" + +#. type: Title - +#: en/git-blame.txt:183 +#, no-wrap +msgid "INCREMENTAL OUTPUT" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:33 +#: en/git-blame.txt:190 msgid "" -"Paths in which the change applied cleanly are updated both in the index file " -"and in your working tree." +"When called with `--incremental` option, the command outputs the result as " +"it is built. The output generally will talk about lines touched by more " +"recent commits first (i.e. the lines will be annotated out of order) and is " +"meant to be used by interactive viewers." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:38 +#: en/git-blame.txt:194 msgid "" -"For conflicting paths, the index file records up to three versions, as " -"described in the \"TRUE MERGE\" section of linkgit:git-merge[1]. The " -"working tree files will include a description of the conflict bracketed by " -"the usual conflict markers `<<<<<<<` and `>>>>>>>`." +"The output format is similar to the Porcelain format, but it does not " +"contain the actual lines from the file that is being annotated." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:39 -msgid "No other modifications are made." +#: en/git-blame.txt:196 +msgid "Each blame entry always starts with a line of:" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:42 -msgid "See linkgit:git-merge[1] for some hints on resolving such conflicts." +#: en/git-blame.txt:198 +#, no-wrap +msgid "<40-byte hex sha1> <sourceline> <resultline> <num_lines>\n" msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:45 en/git-merge.txt:110 en/git-revert.txt:35 en/git-verify-commit.txt:27 -#, no-wrap -msgid "<commit>..." +#. type: Plain text +#: en/git-blame.txt:200 +msgid "Line numbers count from 1." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:54 +#: en/git-blame.txt:205 msgid "" -"Commits to cherry-pick. For a more complete list of ways to spell commits, " -"see linkgit:gitrevisions[7]. Sets of commits can be passed but no traversal " -"is done by default, as if the `--no-walk` option was specified, see " -"linkgit:git-rev-list[1]. Note that specifying a range will feed all " -"<commit>... arguments to a single revision walk (see a later example that " -"uses 'maint master..next')." +"The first time that a commit shows up in the stream, it has various other " +"information about it printed out with a one-word tag at the beginning of " +"each line describing the extra commit information (author, email, committer, " +"dates, summary, etc.)." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:59 +#: en/git-blame.txt:208 msgid "" -"With this option, 'git cherry-pick' will let you edit the commit message " -"prior to committing." +"Unlike the Porcelain format, the filename information is always given and " +"terminates the entry:" msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:60 en/git-clean.txt:62 +#. type: Plain text +#: en/git-blame.txt:210 #, no-wrap -msgid "-x" +msgid "\"filename\" <whitespace-quoted-filename-goes-here>\n" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:73 +#: en/git-blame.txt:213 msgid "" -"When recording the commit, append a line that says \"(cherry picked from " -"commit ...)\" to the original commit message in order to indicate which " -"commit this change was cherry-picked from. This is done only for cherry " -"picks without conflicts. Do not use this option if you are cherry-picking " -"from your private branch because the information is useless to the " -"recipient. If on the other hand you are cherry-picking between two publicly " -"visible branches (e.g. backporting a fix to a maintenance branch for an " -"older release from a development branch), adding this information can be " -"useful." +"and thus it is really quite easy to parse for some line- and word-oriented " +"parser (which should be quite natural for most scripting languages)." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:78 +#: en/git-blame.txt:221 msgid "" -"It used to be that the command defaulted to do `-x` described above, and " -"`-r` was to disable it. Now the default is not to do `-x` so this option is " -"a no-op." +"For people who do parsing: to make it more robust, just ignore any lines " +"between the first and last one (\"<sha1>\" and \"filename\" lines) where " +"you do not recognize the tag words (or care about that particular one) at " +"the beginning of the \"extended information\" lines. That way, if there is " +"ever added information (like the commit encoding or extended commit " +"commentary), a blame viewer will not care." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:79 en/git-revert.txt:49 +#. type: Title - +#: en/git-blame.txt:224 en/git-check-mailmap.txt:40 en/git-shortlog.txt:80 #, no-wrap -msgid "-m parent-number" +msgid "MAPPING AUTHORS" msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:80 en/git-revert.txt:50 +#. type: Title = +#: en/git-branch.txt:2 #, no-wrap -msgid "--mainline parent-number" +msgid "git-branch(1)" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:86 -msgid "" -"Usually you cannot cherry-pick a merge because you do not know which side of " -"the merge should be considered the mainline. This option specifies the " -"parent number (starting from 1) of the mainline and allows cherry-pick to " -"replay the change relative to the specified parent." +#: en/git-branch.txt:7 +msgid "git-branch - List, create, or delete branches" msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:88 en/git-revert.txt:70 en/merge-options.txt:2 +#. type: Plain text +#: en/git-branch.txt:24 #, no-wrap -msgid "--no-commit" +msgid "" +"'git branch' [--color[=<when>] | --no-color] [-r | -a]\n" +"\t[--list] [-v [--abbrev=<length> | --no-abbrev]]\n" +"\t[--column[=<options>] | --no-column] [--sort=<key>]\n" +"\t[(--merged | --no-merged) [<commit>]]\n" +"\t[--contains [<commit]] [--no-contains [<commit>]]\n" +"\t[--points-at <object>] [--format=<format>] [<pattern>...]\n" +"'git branch' [--track | --no-track] [-f] <branchname> [<start-point>]\n" +"'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]\n" +"'git branch' --unset-upstream [<branchname>]\n" +"'git branch' (-m | -M) [<oldbranch>] <newbranch>\n" +"'git branch' (-c | -C) [<oldbranch>] <newbranch>\n" +"'git branch' (-d | -D) [-r] <branchname>...\n" +"'git branch' --edit-description [<branchname>]\n" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:96 +#: en/git-branch.txt:37 msgid "" -"Usually the command automatically creates a sequence of commits. This flag " -"applies the changes necessary to cherry-pick each named commit to your " -"working tree and the index, without making any commit. In addition, when " -"this option is used, your index does not have to match the HEAD commit. The " -"cherry-pick is done against the beginning state of your index." +"If `--list` is given, or if there are no non-option arguments, existing " +"branches are listed; the current branch will be highlighted with an " +"asterisk. Option `-r` causes the remote-tracking branches to be listed, and " +"option `-a` shows both local and remote branches. If a `<pattern>` is given, " +"it is used as a shell wildcard to restrict the output to matching branches. " +"If multiple patterns are given, a branch is shown if it matches any of the " +"patterns. Note that when providing a `<pattern>`, you must use `--list`; " +"otherwise the command is interpreted as branch creation." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:99 +#: en/git-branch.txt:46 msgid "" -"This is useful when cherry-picking more than one commits' effect to your " -"index in a row." +"With `--contains`, shows only the branches that contain the named commit (in " +"other words, the branches whose tip commits are descendants of the named " +"commit), `--no-contains` inverts it. With `--merged`, only branches merged " +"into the named commit (i.e. the branches whose tip commits are reachable " +"from the named commit) will be listed. With `--no-merged` only branches not " +"merged into the named commit will be listed. If the <commit> argument is " +"missing it defaults to `HEAD` (i.e. the tip of the current branch)." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:104 en/git-revert.txt:93 +#: en/git-branch.txt:49 msgid "" -"Add Signed-off-by line at the end of the commit message. See the signoff " -"option in linkgit:git-commit[1] for more information." +"The command's second form creates a new branch head named <branchname> which " +"points to the current `HEAD`, or <start-point> if given." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:111 en/merge-options.txt:30 -#, no-wrap -msgid "--ff" +#. type: Plain text +#: en/git-branch.txt:53 +msgid "" +"Note that this will create the new branch, but it will not switch the " +"working tree to it; use \"git checkout <newbranch>\" to switch to the new " +"branch." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:115 +#: en/git-branch.txt:61 msgid "" -"If the current HEAD is the same as the parent of the cherry-pick'ed commit, " -"then a fast forward to this commit will be performed." +"When a local branch is started off a remote-tracking branch, Git sets up the " +"branch (specifically the `branch.<name>.remote` and `branch.<name>.merge` " +"configuration entries) so that 'git pull' will appropriately merge from the " +"remote-tracking branch. This behavior may be changed via the global `branch." +"autoSetupMerge` configuration flag. That setting can be overridden by using " +"the `--track` and `--no-track` options, and changed later using `git branch " +"--set-upstream-to`." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:116 en/git-commit.txt:173 en/git-notes.txt:158 -#, no-wrap -msgid "--allow-empty" +#. type: Plain text +#: en/git-branch.txt:67 +msgid "" +"With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>. If " +"<oldbranch> had a corresponding reflog, it is renamed to match <newbranch>, " +"and a reflog entry is created to remember the branch renaming. If " +"<newbranch> exists, -M must be used to force the rename to happen." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:128 +#: en/git-branch.txt:71 msgid "" -"By default, cherry-picking an empty commit will fail, indicating that an " -"explicit invocation of `git commit --allow-empty` is required. This option " -"overrides that behavior, allowing empty commits to be preserved " -"automatically in a cherry-pick. Note that when \"--ff\" is in effect, empty " -"commits that meet the \"fast-forward\" requirement will be kept even without " -"this option. Note also, that use of this option only keeps commits that " -"were initially empty (i.e. the commit recorded the same tree as its " -"parent). Commits which are made empty due to a previous commit are " -"dropped. To force the inclusion of those commits use " -"`--keep-redundant-commits`." +"The `-c` and `-C` options have the exact same semantics as `-m` and `-M`, " +"except instead of the branch being renamed it along with its config and " +"reflog will be copied to a new name." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:129 en/git-commit.txt:179 -#, no-wrap -msgid "--allow-empty-message" +#. type: Plain text +#: en/git-branch.txt:75 +msgid "" +"With a `-d` or `-D` option, `<branchname>` will be deleted. You may specify " +"more than one branch for deletion. If the branch currently has a reflog " +"then the reflog will also be deleted." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:133 +#: en/git-branch.txt:81 msgid "" -"By default, cherry-picking a commit with an empty message will fail. This " -"option overrides that behavior, allowing commits with empty messages to be " -"cherry picked." +"Use `-r` together with `-d` to delete remote-tracking branches. Note, that " +"it only makes sense to delete remote-tracking branches if they no longer " +"exist in the remote repository or if 'git fetch' was configured not to fetch " +"them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a " +"way to clean up all obsolete remote-tracking branches." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:134 +#: en/git-branch.txt:85 en/git-clean.txt:28 en/git-cvsexportcommit.txt:49 +#: en/git-difftool.txt:22 en/git-http-push.txt:44 en/git-instaweb.txt:27 +#: en/git-ls-files.txt:39 en/git-ls-tree.txt:41 en/git-push.txt:181 +#: en/git-repack.txt:60 en/git-replace.txt:65 en/git-show-ref.txt:47 +#: en/git-symbolic-ref.txt:35 en/git-tag.txt:76 #, no-wrap -msgid "--keep-redundant-commits" -msgstr "" - -#. type: Plain text -#: en/git-cherry-pick.txt:140 -msgid "" -"If a commit being cherry picked duplicates a commit already in the current " -"history, it will become empty. By default these redundant commits cause " -"`cherry-pick` to stop so the user can examine the commit. This option " -"overrides that behavior and creates an empty commit object. Implies " -"`--allow-empty`." +msgid "-d" msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:141 en/git-notes.txt:184 en/git-rebase.txt:283 en/git-revert.txt:94 en/git-svn.txt:640 en/merge-options.txt:78 +#: en/git-branch.txt:86 en/git-push.txt:182 en/git-replace.txt:66 +#: en/git-symbolic-ref.txt:36 en/git-tag.txt:77 #, no-wrap -msgid "--strategy=<strategy>" +msgid "--delete" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:145 en/git-revert.txt:98 +#: en/git-branch.txt:90 msgid "" -"Use the given merge strategy. Should only be used once. See the MERGE " -"STRATEGIES section in linkgit:git-merge[1] for details." +"Delete a branch. The branch must be fully merged in its upstream branch, or " +"in `HEAD` if no upstream was set with `--track` or `--set-upstream-to`." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:146 en/git-revert.txt:99 -#, no-wrap -msgid "-X<option>" +#. type: Plain text +#: en/git-branch.txt:93 +msgid "Shortcut for `--delete --force`." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:147 en/git-revert.txt:100 en/merge-options.txt:86 +#: en/git-branch.txt:94 en/git-tag.txt:183 #, no-wrap -msgid "--strategy-option=<option>" +msgid "--create-reflog" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:150 en/git-revert.txt:103 +#: en/git-branch.txt:103 msgid "" -"Pass the merge strategy-specific option through to the merge strategy. See " -"linkgit:git-merge[1] for details." +"Create the branch's reflog. This activates recording of all changes made to " +"the branch ref, enabling use of date based sha1 expressions such as " +"\"<branchname>@\\{yesterday}\". Note that in non-bare repositories, reflogs " +"are usually enabled by default by the `core.logAllRefUpdates` config " +"option. The negated form `--no-create-reflog` only overrides an earlier `--" +"create-reflog`, but currently does not negate the setting of `core." +"logAllRefUpdates`." msgstr "" -#. type: Title - -#: en/git-cherry-pick.txt:152 en/git-revert.txt:105 -#, no-wrap -msgid "SEQUENCER SUBCOMMANDS" +#. type: Plain text +#: en/git-branch.txt:112 +msgid "" +"Reset <branchname> to <startpoint>, even if <branchname> exists already. " +"Without `-f`, 'git branch' refuses to change an existing branch. In " +"combination with `-d` (or `--delete`), allow deleting the branch " +"irrespective of its merged status. In combination with `-m` (or `--move`), " +"allow renaming the branch even if the new branch name already exists, the " +"same applies for `-c` (or `--copy`)." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:157 +#: en/git-branch.txt:114 #, no-wrap -msgid "`git cherry-pick master`" +msgid "--move" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:161 -msgid "" -"Apply the change introduced by the commit at the tip of the master branch " -"and create a new commit with this change." +#: en/git-branch.txt:116 +msgid "Move/rename a branch and the corresponding reflog." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:162 +#: en/git-branch.txt:117 en/git-fast-export.txt:53 en/git-p4.txt:317 #, no-wrap -msgid "`git cherry-pick ..master`" +msgid "-M" +msgstr "" + +#. type: Plain text +#: en/git-branch.txt:119 +msgid "Shortcut for `--move --force`." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:163 +#: en/git-branch.txt:121 #, no-wrap -msgid "`git cherry-pick ^HEAD master`" +msgid "--copy" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:167 -msgid "" -"Apply the changes introduced by all commits that are ancestors of master but " -"not of HEAD to produce new commits." +#: en/git-branch.txt:123 +msgid "Copy a branch and the corresponding reflog." msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:168 +#. type: Plain text +#: en/git-branch.txt:124 en/git-fast-export.txt:54 en/git-rebase.txt:519 #, no-wrap -msgid "`git cherry-pick maint next ^master`" +msgid "-C" msgstr "" -#. type: Labeled list -#: en/git-cherry-pick.txt:169 -#, no-wrap -msgid "`git cherry-pick maint master..next`" +#. type: Plain text +#: en/git-branch.txt:126 +msgid "Shortcut for `--copy --force`." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:176 +#: en/git-branch.txt:131 msgid "" -"Apply the changes introduced by all commits that are ancestors of maint or " -"next, but not master or any of its ancestors. Note that the latter does not " -"mean `maint` and everything between `master` and `next`; specifically, " -"`maint` will not be used if it is included in `master`." -msgstr "" - -#. type: Labeled list -#: en/git-cherry-pick.txt:177 -#, no-wrap -msgid "`git cherry-pick master~4 master~2`" +"Color branches to highlight current, local, and remote-tracking branches. " +"The value must be always (the default), never, or auto." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:182 +#: en/git-branch.txt:136 msgid "" -"Apply the changes introduced by the fifth and third last commits pointed to " -"by master and create 2 new commits with these changes." +"Turn off branch colors, even when the configuration file gives the default " +"to color output. Same as `--color=never`." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:183 +#: en/git-branch.txt:138 en/git-for-each-ref.txt:95 en/git-grep.txt:113 +#: en/git-tag.txt:124 #, no-wrap -msgid "`git cherry-pick -n master~1 next`" +msgid "--ignore-case" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:189 -msgid "" -"Apply to the working tree and the index the changes introduced by the second " -"last commit pointed to by master and by the last commit pointed to by next, " -"but do not create any commit with these changes." +#: en/git-branch.txt:140 +msgid "Sorting and filtering branches are case insensitive." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:190 +#: en/git-branch.txt:141 en/git-status.txt:126 en/git-tag.txt:127 #, no-wrap -msgid "`git cherry-pick --ff ..next`" -msgstr "" - -#. type: Plain text -#: en/git-cherry-pick.txt:197 -msgid "" -"If history is linear and HEAD is an ancestor of next, update the working " -"tree and advance the HEAD pointer to match next. Otherwise, apply the " -"changes introduced by those commits that are in next but not HEAD to the " -"current branch, creating a new commit for each new change." +msgid "--column[=<options>]" msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:198 +#: en/git-branch.txt:142 en/git-status.txt:127 en/git-tag.txt:128 #, no-wrap -msgid "`git rev-list --reverse master -- README | git cherry-pick -n --stdin`" +msgid "--no-column" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:204 +#: en/git-branch.txt:146 msgid "" -"Apply the changes introduced by all commits on the master branch that " -"touched README to the working tree and index, so the result can be inspected " -"and made into a single new commit if suitable." +"Display branch listing in columns. See configuration variable column.branch " +"for option syntax.`--column` and `--no-column` without options are " +"equivalent to 'always' and 'never' respectively." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:208 -msgid "" -"The following sequence attempts to backport a patch, bails out because the " -"code the patch applies to has changed too much, and then tries again, this " -"time exercising more care about matching up context lines." +#: en/git-branch.txt:148 +msgid "This option is only applicable in non-verbose mode." msgstr "" -#. type: delimited block - -#: en/git-cherry-pick.txt:214 +#. type: Labeled list +#: en/git-branch.txt:150 en/git-show-branch.txt:44 #, no-wrap -msgid "" -"$ git cherry-pick topic^ <1>\n" -"$ git diff <2>\n" -"$ git reset --merge ORIG_HEAD <3>\n" -"$ git cherry-pick -Xpatience topic^ <4>\n" -msgstr "" - -#. type: Plain text -#: en/git-cherry-pick.txt:219 -msgid "" -"apply the change that would be shown by `git show topic^`. In this example, " -"the patch does not apply cleanly, so information about the conflict is " -"written to the index and working tree and no new commit results." +msgid "--remotes" msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:220 -msgid "summarize changes to be reconciled" +#: en/git-branch.txt:152 +msgid "List or delete (if used with -d) the remote-tracking branches." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:223 -msgid "" -"cancel the cherry-pick. In other words, return to the pre-cherry-pick " -"state, preserving any local modifications you had in the working tree." +#: en/git-branch.txt:156 +msgid "List both remote-tracking branches and local branches." msgstr "" #. type: Plain text -#: en/git-cherry-pick.txt:226 +#: en/git-branch.txt:162 msgid "" -"try to apply the change introduced by `topic^` again, spending extra time to " -"avoid mistakes based on incorrectly matching context lines." +"List branches. With optional `<pattern>...`, e.g. `git branch --list 'maint-" +"*'`, list only the branches that match the pattern(s)." msgstr "" #. type: Labeled list -#: en/git-cherry-pick.txt:230 en/cmds-mainporcelain.txt:85 +#: en/git-branch.txt:164 #, no-wrap -msgid "linkgit:git-revert[1]" +msgid "-vv" msgstr "" -#. type: Title = -#: en/git-cherry.txt:2 -#, no-wrap -msgid "git-cherry(1)" +#. type: Plain text +#: en/git-branch.txt:171 +msgid "" +"When in list mode, show sha1 and commit subject line for each head, along " +"with relationship to upstream branch (if any). If given twice, print the " +"name of the upstream branch, as well (see also `git remote show <remote>`)." msgstr "" #. type: Plain text -#: en/git-cherry.txt:7 -msgid "git-cherry - Find commits yet to be applied to upstream" +#: en/git-branch.txt:176 +msgid "" +"Be more quiet when creating or deleting a branch, suppressing non-error " +"messages." msgstr "" -#. type: Plain text -#: en/git-cherry.txt:12 +#. type: Labeled list +#: en/git-branch.txt:177 #, no-wrap -msgid "'git cherry' [-v] [<upstream> [<head> [<limit>]]]\n" +msgid "--abbrev=<length>" msgstr "" #. type: Plain text -#: en/git-cherry.txt:17 +#: en/git-branch.txt:181 msgid "" -"Determine whether there are commits in `<head>..<upstream>` that are " -"equivalent to those in the range `<limit>..<head>`." +"Alter the sha1's minimum display length in the output listing. The default " +"value is 7 and can be overridden by the `core.abbrev` config option." msgstr "" -#. type: Plain text -#: en/git-cherry.txt:22 -msgid "" -"The equivalence test is based on the diff, after removing whitespace and " -"line numbers. git-cherry therefore detects when commits have been " -"\"copied\" by means of linkgit:git-cherry-pick[1], linkgit:git-am[1] or " -"linkgit:git-rebase[1]." +#. type: Labeled list +#: en/git-branch.txt:182 +#, no-wrap +msgid "--no-abbrev" msgstr "" #. type: Plain text -#: en/git-cherry.txt:26 +#: en/git-branch.txt:184 msgid "" -"Outputs the SHA1 of every commit in `<limit>..<head>`, prefixed with `-` for " -"commits that have an equivalent in <upstream>, and `+` for commits that do " -"not." -msgstr "" - -#. type: Plain text -#: en/git-cherry.txt:31 -msgid "Show the commit subjects next to the SHA1s." +"Display the full sha1s in the output listing rather than abbreviating them." msgstr "" #. type: Labeled list -#: en/git-cherry.txt:32 en/git-rebase.txt:237 +#: en/git-branch.txt:186 en/git-checkout.txt:167 #, no-wrap -msgid "<upstream>" +msgid "--track" msgstr "" #. type: Plain text -#: en/git-cherry.txt:35 +#: en/git-branch.txt:194 msgid "" -"Upstream branch to search for equivalent commits. Defaults to the upstream " -"branch of HEAD." +"When creating a new branch, set up `branch.<name>.remote` and `branch.<name>." +"merge` configuration entries to mark the start-point branch as \"upstream\" " +"from the new branch. This configuration will tell git to show the " +"relationship between the two branches in `git status` and `git branch -v`. " +"Furthermore, it directs `git pull` without arguments to pull from the " +"upstream when the new branch is checked out." msgstr "" #. type: Plain text -#: en/git-cherry.txt:38 en/git-rebase.txt:244 -msgid "Working branch; defaults to HEAD." +#: en/git-branch.txt:200 +msgid "" +"This behavior is the default when the start point is a remote-tracking " +"branch. Set the branch.autoSetupMerge configuration variable to `false` if " +"you want `git checkout` and `git branch` to always behave as if `--no-track` " +"were given. Set it to `always` if you want this behavior when the start-" +"point is either a local or remote-tracking branch." msgstr "" #. type: Labeled list -#: en/git-cherry.txt:39 en/diff-config.txt:44 en/diff-options.txt:161 +#: en/git-branch.txt:201 en/git-checkout.txt:181 #, no-wrap -msgid "<limit>" +msgid "--no-track" msgstr "" #. type: Plain text -#: en/git-cherry.txt:41 -msgid "Do not report commits up to (and including) limit." +#: en/git-branch.txt:204 en/git-checkout.txt:184 +msgid "" +"Do not set up \"upstream\" configuration, even if the branch.autoSetupMerge " +"configuration variable is true." msgstr "" -#. type: Title ~ -#: en/git-cherry.txt:46 +#. type: Labeled list +#: en/git-branch.txt:205 en/git-push.txt:349 #, no-wrap -msgid "Patch workflows" +msgid "--set-upstream" msgstr "" #. type: Plain text -#: en/git-cherry.txt:52 +#: en/git-branch.txt:208 msgid "" -"git-cherry is frequently used in patch-based workflows (see " -"linkgit:gitworkflows[7]) to determine if a series of patches has been " -"applied by the upstream maintainer. In such a workflow you might create and " -"send a topic branch like this:" +"As this option had confusing syntax, it is no longer supported. Please use " +"`--track` or `--set-upstream-to` instead." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:58 +#. type: Labeled list +#: en/git-branch.txt:209 #, no-wrap -msgid "" -"$ git checkout -b topic origin/master\n" -"# work and create some commits\n" -"$ git format-patch origin/master\n" -"$ git send-email ... 00*\n" +msgid "-u <upstream>" +msgstr "" + +#. type: Labeled list +#: en/git-branch.txt:210 +#, no-wrap +msgid "--set-upstream-to=<upstream>" msgstr "" #. type: Plain text -#: en/git-cherry.txt:62 +#: en/git-branch.txt:214 msgid "" -"Later, you can see whether your changes have been applied by saying (still " -"on `topic`):" +"Set up <branchname>'s tracking information so <upstream> is considered " +"<branchname>'s upstream branch. If no <branchname> is specified, then it " +"defaults to the current branch." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:66 +#. type: Labeled list +#: en/git-branch.txt:215 #, no-wrap +msgid "--unset-upstream" +msgstr "" + +#. type: Plain text +#: en/git-branch.txt:218 msgid "" -"$ git fetch # update your notion of origin/master\n" -"$ git cherry -v\n" +"Remove the upstream information for <branchname>. If no branch is specified " +"it defaults to the current branch." msgstr "" -#. type: Title ~ -#: en/git-cherry.txt:69 +#. type: Labeled list +#: en/git-branch.txt:219 #, no-wrap -msgid "Concrete example" +msgid "--edit-description" msgstr "" #. type: Plain text -#: en/git-cherry.txt:73 +#: en/git-branch.txt:224 msgid "" -"In a situation where topic consisted of three commits, and the maintainer " -"applied two of them, the situation might look like:" +"Open an editor and edit the text to explain what the branch is for, to be " +"used by various other commands (e.g. `format-patch`, `request-pull`, and " +"`merge` (if enabled)). Multi-line explanations may be used." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:86 +#. type: Labeled list +#: en/git-branch.txt:225 en/git-tag.txt:135 #, no-wrap -msgid "" -"$ git log --graph --oneline --decorate --boundary origin/master...topic\n" -"* 7654321 (origin/master) upstream tip commit\n" -"[... snip some other commits ...]\n" -"* cccc111 cherry-pick of C\n" -"* aaaa111 cherry-pick of A\n" -"[... snip a lot more that has happened ...]\n" -"| * cccc000 (topic) commit C\n" -"| * bbbb000 commit B\n" -"| * aaaa000 commit A\n" -"|/\n" -"o 1234567 branch point\n" +msgid "--contains [<commit>]" msgstr "" #. type: Plain text -#: en/git-cherry.txt:90 +#: en/git-branch.txt:228 msgid "" -"In such cases, git-cherry shows a concise summary of what has yet to be " -"applied:" +"Only list branches which contain the specified commit (HEAD if not " +"specified). Implies `--list`." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:96 +#. type: Labeled list +#: en/git-branch.txt:229 en/git-tag.txt:139 #, no-wrap -msgid "" -"$ git cherry origin/master topic\n" -"- cccc000... commit C\n" -"+ bbbb000... commit B\n" -"- aaaa000... commit A\n" +msgid "--no-contains [<commit>]" msgstr "" #. type: Plain text -#: en/git-cherry.txt:102 +#: en/git-branch.txt:232 msgid "" -"Here, we see that the commits A and C (marked with `-`) can be dropped from " -"your `topic` branch when you rebase it on top of `origin/master`, while the " -"commit B (marked with `+`) still needs to be kept so that it will be sent to " -"be applied to `origin/master`." +"Only list branches which don't contain the specified commit (HEAD if not " +"specified). Implies `--list`." msgstr "" -#. type: Title ~ -#: en/git-cherry.txt:105 +#. type: Labeled list +#: en/git-branch.txt:233 en/git-tag.txt:143 #, no-wrap -msgid "Using a limit" +msgid "--merged [<commit>]" msgstr "" #. type: Plain text -#: en/git-cherry.txt:110 +#: en/git-branch.txt:237 msgid "" -"The optional <limit> is useful in cases where your topic is based on other " -"work that is not in upstream. Expanding on the previous example, this might " -"look like:" +"Only list branches whose tips are reachable from the specified commit (HEAD " +"if not specified). Implies `--list`, incompatible with `--no-merged`." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:126 +#. type: Labeled list +#: en/git-branch.txt:238 en/git-tag.txt:147 #, no-wrap -msgid "" -"$ git log --graph --oneline --decorate --boundary origin/master...topic\n" -"* 7654321 (origin/master) upstream tip commit\n" -"[... snip some other commits ...]\n" -"* cccc111 cherry-pick of C\n" -"* aaaa111 cherry-pick of A\n" -"[... snip a lot more that has happened ...]\n" -"| * cccc000 (topic) commit C\n" -"| * bbbb000 commit B\n" -"| * aaaa000 commit A\n" -"| * 0000fff (base) unpublished stuff F\n" -"[... snip ...]\n" -"| * 0000aaa unpublished stuff A\n" -"|/\n" -"o 1234567 merge-base between upstream and topic\n" +msgid "--no-merged [<commit>]" msgstr "" #. type: Plain text -#: en/git-cherry.txt:130 +#: en/git-branch.txt:242 msgid "" -"By specifying `base` as the limit, you can avoid listing commits between " -"`base` and `topic`:" +"Only list branches whose tips are not reachable from the specified commit " +"(HEAD if not specified). Implies `--list`, incompatible with `--merged`." msgstr "" -#. type: delimited block - -#: en/git-cherry.txt:136 +#. type: Labeled list +#: en/git-branch.txt:243 #, no-wrap +msgid "<branchname>" +msgstr "" + +#. type: Plain text +#: en/git-branch.txt:248 msgid "" -"$ git cherry origin/master topic base\n" -"- cccc000... commit C\n" -"+ bbbb000... commit B\n" -"- aaaa000... commit A\n" +"The name of the branch to create or delete. The new branch name must pass " +"all checks defined by linkgit:git-check-ref-format[1]. Some of these checks " +"may restrict the characters allowed in a branch name." msgstr "" #. type: Labeled list -#: en/git-cherry.txt:142 en/cmds-purehelpers.txt:40 +#: en/git-branch.txt:249 #, no-wrap -msgid "linkgit:git-patch-id[1]" +msgid "<start-point>" msgstr "" -#. type: Title = -#: en/git-citool.txt:2 +#. type: Plain text +#: en/git-branch.txt:253 +msgid "" +"The new branch head will point to this commit. It may be given as a branch " +"name, a commit-id, or a tag. If this option is omitted, the current HEAD " +"will be used instead." +msgstr "" + +#. type: Labeled list +#: en/git-branch.txt:254 #, no-wrap -msgid "git-citool(1)" +msgid "<oldbranch>" msgstr "" #. type: Plain text -#: en/git-citool.txt:7 -msgid "git-citool - Graphical alternative to git-commit" +#: en/git-branch.txt:256 +msgid "The name of an existing branch to rename." msgstr "" -#. type: Plain text -#: en/git-citool.txt:12 +#. type: Labeled list +#: en/git-branch.txt:257 #, no-wrap -msgid "'git citool'\n" +msgid "<newbranch>" msgstr "" #. type: Plain text -#: en/git-citool.txt:19 +#: en/git-branch.txt:260 msgid "" -"A Tcl/Tk based graphical interface to review modified files, stage them into " -"the index, enter a commit message and record the new commit onto the current " -"branch. This interface is an alternative to the less interactive 'git " -"commit' program." +"The new name for an existing branch. The same restrictions as for " +"<branchname> apply." +msgstr "" + +#. type: Labeled list +#: en/git-branch.txt:261 en/git-for-each-ref.txt:40 en/git-ls-remote.txt:63 +#: en/git-tag.txt:105 +#, no-wrap +msgid "--sort=<key>" msgstr "" #. type: Plain text -#: en/git-citool.txt:22 +#: en/git-branch.txt:271 msgid "" -"'git citool' is actually a standard alias for `git gui citool`. See " -"linkgit:git-gui[1] for more details." +"Sort based on the key given. Prefix `-` to sort in descending order of the " +"value. You may use the --sort=<key> option multiple times, in which case the " +"last key becomes the primary key. The keys supported are the same as those " +"in `git for-each-ref`. Sort order defaults to the value configured for the " +"`branch.sort` variable if exists, or to sorting based on the full refname " +"(including `refs/...` prefix). This lists detached HEAD (if present) first, " +"then local branches and finally remote-tracking branches. See linkgit:git-" +"config[1]." msgstr "" -#. type: Title = -#: en/git-clean.txt:2 +#. type: Labeled list +#: en/git-branch.txt:273 en/git-tag.txt:151 #, no-wrap -msgid "git-clean(1)" +msgid "--points-at <object>" msgstr "" #. type: Plain text -#: en/git-clean.txt:7 -msgid "git-clean - Remove untracked files from the working tree" +#: en/git-branch.txt:275 +msgid "Only list branches of the given object." msgstr "" -#. type: Plain text -#: en/git-clean.txt:12 +#. type: Labeled list +#: en/git-branch.txt:276 #, no-wrap -msgid "" -"'git clean' [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] " -"<path>...\n" +msgid "--format <format>" msgstr "" #. type: Plain text -#: en/git-clean.txt:18 +#: en/git-branch.txt:280 msgid "" -"Cleans the working tree by recursively removing files that are not under " -"version control, starting from the current directory." +"A string that interpolates `%(fieldname)` from a branch ref being shown and " +"the object it points at. The format is the same as that of linkgit:git-for-" +"each-ref[1]." msgstr "" #. type: Plain text -#: en/git-clean.txt:22 +#: en/git-branch.txt:286 msgid "" -"Normally, only files unknown to Git are removed, but if the `-x` option is " -"specified, ignored files are also removed. This can, for example, be useful " -"to remove all build products." +"`pager.branch` is only respected when listing branches, i.e., when `--list` " +"is used or implied. The default is to use a pager. See linkgit:git-" +"config[1]." msgstr "" -#. type: Plain text -#: en/git-clean.txt:25 -msgid "" -"If any optional `<path>...` arguments are given, only those paths are " -"affected." +#. type: Labeled list +#: en/git-branch.txt:290 +#, no-wrap +msgid "Start development from a known tag" msgstr "" -#. type: Plain text -#: en/git-clean.txt:33 +#. type: delimited block - +#: en/git-branch.txt:297 +#, no-wrap msgid "" -"Remove untracked directories in addition to untracked files. If an " -"untracked directory is managed by a different Git repository, it is not " -"removed by default. Use -f option twice if you really want to remove such a " -"directory." +"$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6\n" +"$ cd my2.6\n" +"$ git branch my2.6.14 v2.6.14 <1>\n" +"$ git checkout my2.6.14\n" msgstr "" #. type: Plain text -#: en/git-clean.txt:41 +#: en/git-branch.txt:301 msgid "" -"If the Git configuration variable clean.requireForce is not set to false, " -"'git clean' will refuse to delete files or directories unless given -f, -n " -"or -i. Git will refuse to delete directories with .git sub directory or file " -"unless a second -f is given." +"This step and the next one could be combined into a single step with " +"\"checkout -b my2.6.14 v2.6.14\"." msgstr "" -#. type: Plain text -#: en/git-clean.txt:46 +#. type: Labeled list +#: en/git-branch.txt:302 +#, no-wrap +msgid "Delete an unneeded branch" +msgstr "" + +#. type: delimited block - +#: en/git-branch.txt:309 +#, no-wrap msgid "" -"Show what would be done and clean files interactively. See ``Interactive " -"mode'' for details." +"$ git clone git://git.kernel.org/.../git.git my.git\n" +"$ cd my.git\n" +"$ git branch -d -r origin/todo origin/html origin/man <1>\n" +"$ git branch -D test <2>\n" msgstr "" #. type: Plain text -#: en/git-clean.txt:50 -msgid "Don't actually remove anything, just show what would be done." +#: en/git-branch.txt:314 +msgid "" +"Delete the remote-tracking branches \"todo\", \"html\" and \"man\". The next " +"'fetch' or 'pull' will create them again unless you configure them not to. " +"See linkgit:git-fetch[1]." msgstr "" #. type: Plain text -#: en/git-clean.txt:55 +#: en/git-branch.txt:316 msgid "" -"Be quiet, only report errors, but not the files that are successfully " -"removed." +"Delete the \"test\" branch even if the \"master\" branch (or whichever " +"branch is currently checked out) does not have all commits from the test " +"branch." msgstr "" -#. type: Labeled list -#: en/git-clean.txt:56 +#. type: Title - +#: en/git-branch.txt:319 en/git-filter-branch.txt:449 en/git-gc.txt:164 +#: en/git-index-pack.txt:97 en/git-prune.txt:71 en/git-symbolic-ref.txt:54 #, no-wrap -msgid "-e <pattern>" +msgid "NOTES" msgstr "" -#. type: Labeled list -#: en/git-clean.txt:57 en/git-ls-files.txt:84 en/git-name-rev.txt:33 -#, no-wrap -msgid "--exclude=<pattern>" +#. type: Plain text +#: en/git-branch.txt:324 +msgid "" +"If you are creating a branch that you want to checkout immediately, it is " +"easier to use the git checkout command with its `-b` option to create a " +"branch and check it out with a single command." msgstr "" #. type: Plain text -#: en/git-clean.txt:61 +#: en/git-branch.txt:327 msgid "" -"In addition to those found in .gitignore (per directory) and " -"$GIT_DIR/info/exclude, also consider these patterns to be in the set of the " -"ignore rules in effect." +"The options `--contains`, `--no-contains`, `--merged` and `--no-merged` " +"serve four related but different purposes:" msgstr "" #. type: Plain text -#: en/git-clean.txt:69 +#: en/git-branch.txt:331 msgid "" -"Don't use the standard ignore rules read from .gitignore (per directory) and " -"$GIT_DIR/info/exclude, but do still use the ignore rules given with `-e` " -"options. This allows removing all untracked files, including build " -"products. This can be used (possibly in conjunction with 'git reset') to " -"create a pristine working directory to test a clean build." +"`--contains <commit>` is used to find all branches which will need special " +"attention if <commit> were to be rebased or amended, since those branches " +"contain the specified <commit>." msgstr "" -#. type: Labeled list -#: en/git-clean.txt:70 -#, no-wrap -msgid "-X" +#. type: Plain text +#: en/git-branch.txt:334 +msgid "" +"`--no-contains <commit>` is the inverse of that, i.e. branches that don't " +"contain the specified <commit>." msgstr "" #. type: Plain text -#: en/git-clean.txt:73 +#: en/git-branch.txt:337 msgid "" -"Remove only files ignored by Git. This may be useful to rebuild everything " -"from scratch, but keep manually created files." +"`--merged` is used to find all branches which can be safely deleted, since " +"those branches are fully contained by HEAD." msgstr "" #. type: Plain text -#: en/git-clean.txt:79 +#: en/git-branch.txt:340 msgid "" -"When the command enters the interactive mode, it shows the files and " -"directories to be cleaned, and goes into its interactive command loop." +"`--no-merged` is used to find branches which are candidates for merging into " +"HEAD, since those branches are not fully contained by HEAD." msgstr "" -#. type: delimited block - -#: en/git-clean.txt:90 -#, no-wrap +#. type: Plain text +#: en/git-branch.txt:348 msgid "" -" *** Commands ***\n" -"\t1: clean 2: filter by pattern 3: select by numbers\n" -"\t4: ask each 5: quit 6: help\n" -" What now> 1\n" +"linkgit:git-check-ref-format[1], linkgit:git-fetch[1], linkgit:git-" +"remote[1], link:user-manual.html#what-is-a-branch[``Understanding history: " +"What is a branch?''] in the Git User's Manual." msgstr "" -#. type: Plain text -#: en/git-clean.txt:93 -msgid "You also could say `c` or `clean` above as long as the choice is unique." +#. type: Title = +#: en/git-bundle.txt:2 +#, no-wrap +msgid "git-bundle(1)" msgstr "" #. type: Plain text -#: en/git-clean.txt:95 -msgid "The main command loop has 6 subcommands." +#: en/git-bundle.txt:7 +msgid "git-bundle - Move objects and refs by archive" msgstr "" -#. type: Labeled list -#: en/git-clean.txt:96 +#. type: Plain text +#: en/git-bundle.txt:16 #, no-wrap -msgid "clean" +msgid "" +"'git bundle' create <file> <git-rev-list-args>\n" +"'git bundle' verify <file>\n" +"'git bundle' list-heads <file> [<refname>...]\n" +"'git bundle' unbundle <file> [<refname>...]\n" msgstr "" #. type: Plain text -#: en/git-clean.txt:99 -msgid "Start cleaning files and directories, and then quit." +#: en/git-bundle.txt:32 +msgid "" +"Some workflows require that one or more branches of development on one " +"machine be replicated on another machine, but the two machines cannot be " +"directly connected, and therefore the interactive Git protocols (git, ssh, " +"http) cannot be used. This command provides support for 'git fetch' and " +"'git pull' to operate by packaging objects and references in an archive at " +"the originating machine, then importing those into another repository using " +"'git fetch' and 'git pull' after moving the archive by some means (e.g., by " +"sneakernet). As no direct connection between the repositories exists, the " +"user must specify a basis for the bundle that is held by the destination " +"repository: the bundle assumes that all objects in the basis are already in " +"the destination repository." msgstr "" #. type: Labeled list -#: en/git-clean.txt:100 +#: en/git-bundle.txt:36 #, no-wrap -msgid "filter by pattern" +msgid "create <file>" msgstr "" #. type: Plain text -#: en/git-clean.txt:108 +#: en/git-bundle.txt:39 msgid "" -"This shows the files and directories to be deleted and issues an \"Input " -"ignore patterns>>\" prompt. You can input space-separated patterns to " -"exclude files and directories from deletion. E.g. \"*.c *.h\" will excludes " -"files end with \".c\" and \".h\" from deletion. When you are satisfied with " -"the filtered result, press ENTER (empty) back to the main menu." +"Used to create a bundle named 'file'. This requires the 'git-rev-list-args' " +"arguments to define the bundle contents." msgstr "" #. type: Labeled list -#: en/git-clean.txt:109 +#: en/git-bundle.txt:40 #, no-wrap -msgid "select by numbers" +msgid "verify <file>" msgstr "" #. type: Plain text -#: en/git-clean.txt:120 +#: en/git-bundle.txt:47 msgid "" -"This shows the files and directories to be deleted and issues an \"Select " -"items to delete>>\" prompt. When the prompt ends with double '>>' like this, " -"you can make more than one selection, concatenated with whitespace or " -"comma. Also you can say ranges. E.g. \"2-5 7,9\" to choose 2,3,4,5,7,9 " -"from the list. If the second number in a range is omitted, all remaining " -"items are selected. E.g. \"7-\" to choose 7,8,9 from the list. You can say " -"'*' to choose everything. Also when you are satisfied with the filtered " -"result, press ENTER (empty) back to the main menu." +"Used to check that a bundle file is valid and will apply cleanly to the " +"current repository. This includes checks on the bundle format itself as " +"well as checking that the prerequisite commits exist and are fully linked in " +"the current repository. 'git bundle' prints a list of missing commits, if " +"any, and exits with a non-zero status." msgstr "" #. type: Labeled list -#: en/git-clean.txt:121 +#: en/git-bundle.txt:48 #, no-wrap -msgid "ask each" +msgid "list-heads <file>" msgstr "" #. type: Plain text -#: en/git-clean.txt:126 +#: en/git-bundle.txt:52 msgid "" -"This will start to clean, and you must confirm one by one in order to delete " -"items. Please note that this action is not as efficient as the above two " -"actions." +"Lists the references defined in the bundle. If followed by a list of " +"references, only references matching those given are printed out." msgstr "" #. type: Labeled list -#: en/git-clean.txt:127 +#: en/git-bundle.txt:53 #, no-wrap -msgid "quit" +msgid "unbundle <file>" msgstr "" #. type: Plain text -#: en/git-clean.txt:130 -msgid "This lets you quit without do cleaning." +#: en/git-bundle.txt:59 +msgid "" +"Passes the objects in the bundle to 'git index-pack' for storage in the " +"repository, then prints the names of all defined references. If a list of " +"references is given, only references matching those in the list are printed. " +"This command is really plumbing, intended to be called only by 'git fetch'." msgstr "" #. type: Labeled list -#: en/git-clean.txt:131 +#: en/git-bundle.txt:60 #, no-wrap -msgid "help" -msgstr "" - -#. type: Plain text -#: en/git-clean.txt:134 -msgid "Show brief usage of interactive git-clean." +msgid "<git-rev-list-args>" msgstr "" #. type: Plain text -#: en/git-clean.txt:138 en/git-status.txt:356 -msgid "linkgit:gitignore[5]" +#: en/git-bundle.txt:69 +msgid "" +"A list of arguments, acceptable to 'git rev-parse' and 'git rev-list' (and " +"containing a named ref, see SPECIFYING REFERENCES below), that specifies the " +"specific objects and references to transport. For example, `master~10.." +"master` causes the current master reference to be packaged along with all " +"objects added since its 10th ancestor commit. There is no explicit limit to " +"the number of references and objects that may be packaged." msgstr "" -#. type: Title = -#: en/git-clone.txt:2 +#. type: Labeled list +#: en/git-bundle.txt:71 #, no-wrap -msgid "git-clone(1)" +msgid "[<refname>...]" msgstr "" #. type: Plain text -#: en/git-clone.txt:7 -msgid "git-clone - Clone a repository into a new directory" +#: en/git-bundle.txt:77 +msgid "" +"A list of references used to limit the references reported as available. " +"This is principally of use to 'git fetch', which expects to receive only " +"those references asked for and not necessarily everything in the pack (in " +"this case, 'git bundle' acts like 'git fetch-pack')." msgstr "" -#. type: Plain text -#: en/git-clone.txt:19 +#. type: Title - +#: en/git-bundle.txt:79 #, no-wrap -msgid "" -"'git clone' [--template=<template_directory>]\n" -"\t [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]\n" -"\t [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]\n" -"\t [--dissociate] [--separate-git-dir <git dir>]\n" -"\t [--depth <depth>] [--[no-]single-branch]\n" -"\t [--recursive | --recurse-submodules] [--[no-]shallow-submodules]\n" -"\t [--jobs <n>] [--] <repository> [<directory>]\n" +msgid "SPECIFYING REFERENCES" msgstr "" #. type: Plain text -#: en/git-clone.txt:28 +#: en/git-bundle.txt:89 msgid "" -"Clones a repository into a newly created directory, creates remote-tracking " -"branches for each branch in the cloned repository (visible using `git branch " -"-r`), and creates and checks out an initial branch that is forked from the " -"cloned repository's currently active branch." +"'git bundle' will only package references that are shown by 'git show-ref': " +"this includes heads, tags, and remote heads. References such as `master~1` " +"cannot be packaged, but are perfectly suitable for defining the basis. More " +"than one reference may be packaged, and more than one basis can be " +"specified. The objects packaged are those not contained in the union of the " +"given bases. Each basis can be specified explicitly (e.g. `^master~10`), or " +"implicitly (e.g. `master~10..master`, `--since=10.days.ago master`)." msgstr "" #. type: Plain text -#: en/git-clone.txt:34 +#: en/git-bundle.txt:94 msgid "" -"After the clone, a plain `git fetch` without arguments will update all the " -"remote-tracking branches, and a `git pull` without arguments will in " -"addition merge the remote master branch into the current master branch, if " -"any (this is untrue when \"--single-branch\" is given; see below)." +"It is very important that the basis used be held by the destination. It is " +"okay to err on the side of caution, causing the bundle file to contain " +"objects already in the destination, as these are ignored when unpacking at " +"the destination." msgstr "" #. type: Plain text -#: en/git-clone.txt:39 +#: en/git-bundle.txt:103 msgid "" -"This default configuration is achieved by creating references to the remote " -"branch heads under `refs/remotes/origin` and by initializing " -"`remote.origin.url` and `remote.origin.fetch` configuration variables." +"Assume you want to transfer the history from a repository R1 on machine A to " +"another repository R2 on machine B. For whatever reason, direct connection " +"between A and B is not allowed, but we can move data from A to B via some " +"mechanism (CD, email, etc.). We want to update R2 with development made on " +"the branch master in R1." msgstr "" -#. type: Labeled list -#: en/git-clone.txt:43 en/git-config.txt:127 en/git-instaweb.txt:24 en/git-pack-objects.txt:127 en/git-svn.txt:229 -#, no-wrap -msgid "--local" +#. type: Plain text +#: en/git-bundle.txt:108 +msgid "" +"To bootstrap the process, you can first create a bundle that does not have " +"any basis. You can use a tag to remember up to what commit you last " +"processed, in order to make it easy to later update the other repository " +"with an incremental bundle:" msgstr "" -#. type: Plain text -#: en/git-clone.txt:51 +#. type: delimited block - +#: en/git-bundle.txt:113 +#, no-wrap msgid "" -"When the repository to clone from is on a local machine, this flag bypasses " -"the normal \"Git aware\" transport mechanism and clones the repository by " -"making a copy of HEAD and everything under objects and refs directories. " -"The files under `.git/objects/` directory are hardlinked to save space when " -"possible." +"machineA$ cd R1\n" +"machineA$ git bundle create file.bundle master\n" +"machineA$ git tag -f lastR2bundle master\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:58 +#: en/git-bundle.txt:118 msgid "" -"If the repository is specified as a local path (e.g., `/path/to/repo`), this " -"is the default, and --local is essentially a no-op. If the repository is " -"specified as a URL, then this flag is ignored (and we never use the local " -"optimizations). Specifying `--no-local` will override the default when " -"`/path/to/repo` is given, using the regular Git transport instead." +"Then you transfer file.bundle to the target machine B. Because this bundle " +"does not require any existing object to be extracted, you can create a new " +"repository on machine B by cloning from it:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:59 +#. type: delimited block - +#: en/git-bundle.txt:121 #, no-wrap -msgid "--no-hardlinks" +msgid "machineB$ git clone -b master /home/me/tmp/file.bundle R2\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:64 +#: en/git-bundle.txt:126 msgid "" -"Force the cloning process from a repository on a local filesystem to copy " -"the files under the `.git/objects` directory instead of using " -"hardlinks. This may be desirable if you are trying to make a back-up of your " -"repository." +"This will define a remote called \"origin\" in the resulting repository that " +"lets you fetch and pull from the bundle. The $GIT_DIR/config file in R2 will " +"have an entry like this:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:65 +#. type: delimited block - +#: en/git-bundle.txt:131 #, no-wrap -msgid "--shared" +msgid "" +"[remote \"origin\"]\n" +" url = /home/me/tmp/file.bundle\n" +" fetch = refs/heads/*:refs/remotes/origin/*\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:72 +#: en/git-bundle.txt:136 msgid "" -"When the repository to clone is on the local machine, instead of using hard " -"links, automatically setup `.git/objects/info/alternates` to share the " -"objects with the source repository. The resulting repository starts out " -"without any object of its own." +"To update the resulting mine.git repository, you can fetch or pull after " +"replacing the bundle stored at /home/me/tmp/file.bundle with incremental " +"updates." msgstr "" #. type: Plain text -#: en/git-clone.txt:82 -#, no-wrap +#: en/git-bundle.txt:139 msgid "" -"*NOTE*: this is a possibly dangerous operation; do *not* use\n" -"it unless you understand what it does. If you clone your\n" -"repository using this option and then delete branches (or use any\n" -"other Git command that makes any existing commit unreferenced) in the\n" -"source repository, some objects may become unreferenced (or dangling).\n" -"These objects may be removed by normal Git operations (such as `git " -"commit`)\n" -"which automatically call `git gc --auto`. (See linkgit:git-gc[1].)\n" -"If these objects are removed and were referenced by the cloned repository,\n" -"then the cloned repository will become corrupt.\n" +"After working some more in the original repository, you can create an " +"incremental bundle to update the other repository:" msgstr "" -#. type: Plain text -#: en/git-clone.txt:88 +#. type: delimited block - +#: en/git-bundle.txt:144 +#, no-wrap msgid "" -"Note that running `git repack` without the `-l` option in a repository " -"cloned with `-s` will copy objects from the source repository into a pack in " -"the cloned repository, removing the disk space savings of `clone -s`. It is " -"safe, however, to run `git gc`, which uses the `-l` option by default." +"machineA$ cd R1\n" +"machineA$ git bundle create file.bundle lastR2bundle..master\n" +"machineA$ git tag -f lastR2bundle master\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:92 +#: en/git-bundle.txt:148 msgid "" -"If you want to break the dependency of a repository cloned with `-s` on its " -"source repository, you can simply run `git repack -a` to copy all objects " -"from the source repository into a pack in the cloned repository." +"You then transfer the bundle to the other machine to replace /home/me/tmp/" +"file.bundle, and pull from it." msgstr "" -#. type: Labeled list -#: en/git-clone.txt:93 +#. type: delimited block - +#: en/git-bundle.txt:152 #, no-wrap -msgid "--reference[-if-able] <repository>" +msgid "" +"machineB$ cd R2\n" +"machineB$ git pull\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:103 +#: en/git-bundle.txt:160 msgid "" -"If the reference repository is on the local machine, automatically setup " -"`.git/objects/info/alternates` to obtain objects from the reference " -"repository. Using an already existing repository as an alternate will " -"require fewer objects to be copied from the repository being cloned, " -"reducing network and local storage costs. When using the " -"`--reference-if-able`, a non existing directory is skipped with a warning " -"instead of aborting the clone." +"If you know up to what commit the intended recipient repository should have " +"the necessary objects, you can use that knowledge to specify the basis, " +"giving a cut-off point to limit the revisions and objects that go in the " +"resulting bundle. The previous example used the lastR2bundle tag for this " +"purpose, but you can use any other options that you would give to the " +"linkgit:git-log[1] command. Here are more examples:" msgstr "" #. type: Plain text -#: en/git-clone.txt:106 -#, no-wrap -msgid "" -"*NOTE*: see the NOTE for the `--shared` option, and also the\n" -"`--dissociate` option.\n" +#: en/git-bundle.txt:162 +msgid "You can use a tag that is present in both:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:107 +#. type: delimited block - +#: en/git-bundle.txt:165 #, no-wrap -msgid "--dissociate" +msgid "$ git bundle create mybundle v1.0.0..master\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:117 -msgid "" -"Borrow the objects from reference repositories specified with the " -"`--reference` options only to reduce network transfer, and stop borrowing " -"from them after a clone is made by making necessary local copies of borrowed " -"objects. This option can also be used when cloning locally from a " -"repository that already borrows objects from another repository--the new " -"repository will borrow objects from the same repository, and this option can " -"be used to stop the borrowing." +#: en/git-bundle.txt:168 +msgid "You can use a basis based on time:" msgstr "" -#. type: Plain text -#: en/git-clone.txt:122 -msgid "Operate quietly. Progress is not reported to the standard error stream." +#. type: delimited block - +#: en/git-bundle.txt:171 +#, no-wrap +msgid "$ git bundle create mybundle --since=10.days master\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:127 -msgid "" -"Run verbosely. Does not affect the reporting of progress status to the " -"standard error stream." +#: en/git-bundle.txt:174 +msgid "You can use the number of commits:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:128 en/git-pack-objects.txt:136 en/git-push.txt:268 en/fetch-options.txt:170 en/merge-options.txt:112 +#. type: delimited block - +#: en/git-bundle.txt:177 #, no-wrap -msgid "--progress" +msgid "$ git bundle create mybundle -10 master\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:133 en/git-pack-objects.txt:141 en/git-push.txt:273 en/fetch-options.txt:175 +#: en/git-bundle.txt:181 msgid "" -"Progress status is reported on the standard error stream by default when it " -"is attached to a terminal, unless -q is specified. This flag forces progress " -"status even if the standard error stream is not directed to a terminal." +"You can run `git-bundle verify` to see if you can extract from a bundle that " +"was created with a basis:" +msgstr "" + +#. type: delimited block - +#: en/git-bundle.txt:184 +#, no-wrap +msgid "$ git bundle verify mybundle\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:137 -msgid "No checkout of HEAD is performed after the clone is complete." +#: en/git-bundle.txt:188 +msgid "" +"This will list what commits you must have in order to extract from the " +"bundle and will error out if you do not have them." msgstr "" #. type: Plain text -#: en/git-clone.txt:149 +#: en/git-bundle.txt:192 msgid "" -"Make a 'bare' Git repository. That is, instead of creating `<directory>` " -"and placing the administrative files in `<directory>/.git`, make the " -"`<directory>` itself the `$GIT_DIR`. This obviously implies the `-n` because " -"there is nowhere to check out the working tree. Also the branch heads at " -"the remote are copied directly to corresponding local branch heads, without " -"mapping them to `refs/remotes/origin/`. When this option is used, neither " -"remote-tracking branches nor the related configuration variables are " -"created." +"A bundle from a recipient repository's point of view is just like a regular " +"repository which it fetches or pulls from. You can, for example, map " +"references when fetching:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:150 en/git-push.txt:106 +#. type: delimited block - +#: en/git-bundle.txt:195 #, no-wrap -msgid "--mirror" +msgid "$ git fetch mybundle master:localRef\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:157 -msgid "" -"Set up a mirror of the source repository. This implies `--bare`. Compared " -"to `--bare`, `--mirror` not only maps local branches of the source to local " -"branches of the target, it maps all refs (including remote-tracking " -"branches, notes etc.) and sets up a refspec configuration such that all " -"these refs are overwritten by a `git remote update` in the target " -"repository." +#: en/git-bundle.txt:198 +msgid "You can also see what references it offers:" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:158 +#. type: delimited block - +#: en/git-bundle.txt:201 #, no-wrap -msgid "--origin <name>" +msgid "$ git ls-remote mybundle\n" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:159 +#. type: Title = +#: en/git-cat-file.txt:2 #, no-wrap -msgid "-o <name>" +msgid "git-cat-file(1)" msgstr "" #. type: Plain text -#: en/git-clone.txt:162 +#: en/git-cat-file.txt:7 msgid "" -"Instead of using the remote name `origin` to keep track of the upstream " -"repository, use `<name>`." +"git-cat-file - Provide content or type and size information for repository " +"objects" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:163 +#. type: Plain text +#: en/git-cat-file.txt:14 #, no-wrap -msgid "--branch <name>" +msgid "" +"'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object>\n" +"'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks]\n" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:164 -#, no-wrap -msgid "-b <name>" +#. type: Plain text +#: en/git-cat-file.txt:21 +msgid "" +"In its first form, the command provides the content or the type of an object " +"in the repository. The type is required unless `-t` or `-p` is used to find " +"the object type, or `-s` is used to find the object size, or `--textconv` or " +"`--filters` is used (which imply type \"blob\")." msgstr "" #. type: Plain text -#: en/git-clone.txt:171 +#: en/git-cat-file.txt:28 msgid "" -"Instead of pointing the newly created HEAD to the branch pointed to by the " -"cloned repository's HEAD, point to `<name>` branch instead. In a non-bare " -"repository, this is the branch that will be checked out. `--branch` can " -"also take tags and detaches the HEAD at that commit in the resulting " -"repository." +"In the second form, a list of objects (separated by linefeeds) is provided " +"on stdin, and the SHA-1, type, and size of each object is printed on stdout. " +"The output format can be overridden using the optional `<format>` argument. " +"If either `--textconv` or `--filters` was specified, the input is expected " +"to list the object names followed by the path name, separated by a single " +"whitespace, so that the appropriate drivers can be determined." msgstr "" #. type: Labeled list -#: en/git-clone.txt:172 en/fetch-options.txt:152 +#: en/git-cat-file.txt:31 en/git-fsck.txt:23 en/git-tag.txt:203 en/git.txt:303 #, no-wrap -msgid "--upload-pack <upload-pack>" +msgid "<object>" msgstr "" -#. type: Labeled list -#: en/git-clone.txt:173 -#, no-wrap -msgid "-u <upload-pack>" +#. type: Plain text +#: en/git-cat-file.txt:35 +msgid "" +"The name of the object to show. For a more complete list of ways to spell " +"object names, see the \"SPECIFYING REVISIONS\" section in linkgit:" +"gitrevisions[7]." msgstr "" #. type: Plain text -#: en/git-clone.txt:177 -msgid "" -"When given, and the repository to clone from is accessed via ssh, this " -"specifies a non-default path for the command run on the other end." +#: en/git-cat-file.txt:39 +msgid "Instead of the content, show the object type identified by <object>." msgstr "" -#. type: Labeled list -#: en/git-clone.txt:178 en/git-init.txt:53 en/git-svn.txt:547 -#, no-wrap -msgid "--template=<template_directory>" +#. type: Plain text +#: en/git-cat-file.txt:43 +msgid "Instead of the content, show the object size identified by <object>." msgstr "" #. type: Plain text -#: en/git-clone.txt:181 +#: en/git-cat-file.txt:48 msgid "" -"Specify the directory from which templates will be used; (See the \"TEMPLATE " -"DIRECTORY\" section of linkgit:git-init[1].)" +"Exit with zero status if <object> exists and is a valid object. If <object> " +"is of an invalid format exit with non-zero and emits an error on stderr." msgstr "" -#. type: Labeled list -#: en/git-clone.txt:182 -#, no-wrap -msgid "--config <key>=<value>" +#. type: Plain text +#: en/git-cat-file.txt:51 +msgid "Pretty-print the contents of <object> based on its type." msgstr "" #. type: Labeled list -#: en/git-clone.txt:183 +#: en/git-cat-file.txt:52 en/git.txt:327 #, no-wrap -msgid "-c <key>=<value>" +msgid "<type>" msgstr "" #. type: Plain text -#: en/git-clone.txt:192 +#: en/git-cat-file.txt:59 msgid "" -"Set a configuration variable in the newly-created repository; this takes " -"effect immediately after the repository is initialized, but before the " -"remote history is fetched or any files checked out. The key is in the same " -"format as expected by linkgit:git-config[1] (e.g., `core.eol=true`). If " -"multiple values are given for the same key, each value will be written to " -"the config file. This makes it safe, for example, to add additional fetch " -"refspecs to the origin remote." -msgstr "" - -#. type: Labeled list -#: en/git-clone.txt:193 -#, no-wrap -msgid "--depth <depth>" +"Typically this matches the real type of <object> but asking for a type that " +"can trivially be dereferenced from the given <object> is also permitted. An " +"example is to ask for a \"tree\" with <object> being a commit object that " +"contains it, or to ask for a \"blob\" with <object> being a tag object that " +"points at it." msgstr "" #. type: Plain text -#: en/git-clone.txt:199 +#: en/git-cat-file.txt:65 msgid "" -"Create a 'shallow' clone with a history truncated to the specified number of " -"commits. Implies `--single-branch` unless `--no-single-branch` is given to " -"fetch the histories near the tips of all branches. If you want to clone " -"submodules shallowly, also pass `--shallow-submodules`." +"Show the content as transformed by a textconv filter. In this case, <object> " +"has to be of the form <tree-ish>:<path>, or :<path> in order to apply the " +"filter to the content recorded in the index at <path>." msgstr "" #. type: Labeled list -#: en/git-clone.txt:200 en/git-fetch-pack.txt:90 en/fetch-options.txt:22 +#: en/git-cat-file.txt:66 #, no-wrap -msgid "--shallow-since=<date>" +msgid "--filters" msgstr "" #. type: Plain text -#: en/git-clone.txt:202 -msgid "Create a shallow clone with a history after the specified time." +#: en/git-cat-file.txt:71 +msgid "" +"Show the content as converted by the filters configured in the current " +"working tree for the given <path> (i.e. smudge filters, end-of-line " +"conversion, etc). In this case, <object> has to be of the form <tree-ish>:" +"<path>, or :<path>." msgstr "" #. type: Labeled list -#: en/git-clone.txt:203 en/git-fetch-pack.txt:94 en/fetch-options.txt:26 +#: en/git-cat-file.txt:72 #, no-wrap -msgid "--shallow-exclude=<revision>" +msgid "--path=<path>" msgstr "" #. type: Plain text -#: en/git-clone.txt:207 +#: en/git-cat-file.txt:76 msgid "" -"Create a shallow clone with a history, excluding commits reachable from a " -"specified remote branch or tag. This option can be specified multiple " -"times." +"For use with --textconv or --filters, to allow specifying an object name and " +"a path separately, e.g. when it is difficult to figure out the revision from " +"which the blob came." msgstr "" #. type: Labeled list -#: en/git-clone.txt:208 +#: en/git-cat-file.txt:77 en/git-mktree.txt:32 #, no-wrap -msgid "--[no-]single-branch" +msgid "--batch" +msgstr "" + +#. type: Labeled list +#: en/git-cat-file.txt:78 +#, no-wrap +msgid "--batch=<format>" msgstr "" #. type: Plain text -#: en/git-clone.txt:217 +#: en/git-cat-file.txt:84 msgid "" -"Clone only the history leading to the tip of a single branch, either " -"specified by the `--branch` option or the primary branch remote's `HEAD` " -"points at. Further fetches into the resulting repository will only update " -"the remote-tracking branch for the branch this option was used for the " -"initial cloning. If the HEAD at the remote did not point at any branch when " -"`--single-branch` clone was made, no remote-tracking branch is created." +"Print object information and contents for each object provided on stdin. " +"May not be combined with any other options or arguments except `--textconv` " +"or `--filters`, in which case the input lines also need to specify the path, " +"separated by whitespace. See the section `BATCH OUTPUT` below for details." msgstr "" #. type: Labeled list -#: en/git-clone.txt:218 en/git-submodule.txt:400 +#: en/git-cat-file.txt:85 #, no-wrap -msgid "--recursive" +msgid "--batch-check" msgstr "" #. type: Labeled list -#: en/git-clone.txt:219 en/git-grep.txt:92 en/git-ls-files.txt:142 +#: en/git-cat-file.txt:86 #, no-wrap -msgid "--recurse-submodules" +msgid "--batch-check=<format>" msgstr "" #. type: Plain text -#: en/git-clone.txt:226 +#: en/git-cat-file.txt:92 msgid "" -"After the clone is created, initialize all submodules within, using their " -"default settings. This is equivalent to running `git submodule update --init " -"--recursive` immediately after the clone is finished. This option is ignored " -"if the cloned repository does not have a worktree/checkout (i.e. if any of " -"`--no-checkout`/`-n`, `--bare`, or `--mirror` is given)" +"Print object information for each object provided on stdin. May not be " +"combined with any other options or arguments except `--textconv` or `--" +"filters`, in which case the input lines also need to specify the path, " +"separated by whitespace. See the section `BATCH OUTPUT` below for details." msgstr "" #. type: Labeled list -#: en/git-clone.txt:227 +#: en/git-cat-file.txt:93 #, no-wrap -msgid "--[no-]shallow-submodules" +msgid "--batch-all-objects" msgstr "" #. type: Plain text -#: en/git-clone.txt:229 -msgid "All submodules which are cloned will be shallow with a depth of 1." +#: en/git-cat-file.txt:99 +msgid "" +"Instead of reading a list of objects on stdin, perform the requested batch " +"operation on all objects in the repository and any alternate object stores " +"(not just reachable objects). Requires `--batch` or `--batch-check` be " +"specified. Note that the objects are visited in order sorted by their hashes." msgstr "" #. type: Labeled list -#: en/git-clone.txt:230 en/git-init.txt:58 +#: en/git-cat-file.txt:100 #, no-wrap -msgid "--separate-git-dir=<git dir>" +msgid "--buffer" msgstr "" #. type: Plain text -#: en/git-clone.txt:236 +#: en/git-cat-file.txt:106 msgid "" -"Instead of placing the cloned repository where it is supposed to be, place " -"the cloned repository at the specified directory, then make a " -"filesystem-agnostic Git symbolic link to there. The result is Git " -"repository can be separated from working tree." -msgstr "" - -#. type: Labeled list -#: en/git-clone.txt:237 en/git-submodule.txt:417 -#, no-wrap -msgid "-j <n>" +"Normally batch output is flushed after each object is output, so that a " +"process can interactively read and write from `cat-file`. With this option, " +"the output uses normal stdio buffering; this is much more efficient when " +"invoking `--batch-check` on a large number of objects." msgstr "" #. type: Labeled list -#: en/git-clone.txt:238 en/git-submodule.txt:418 +#: en/git-cat-file.txt:107 #, no-wrap -msgid "--jobs <n>" +msgid "--unordered" msgstr "" #. type: Plain text -#: en/git-clone.txt:241 +#: en/git-cat-file.txt:116 msgid "" -"The number of submodules fetched at the same time. Defaults to the " -"`submodule.fetchJobs` option." +"When `--batch-all-objects` is in use, visit objects in an order which may be " +"more efficient for accessing the object contents than hash order. The exact " +"details of the order are unspecified, but if you do not require a specific " +"order, this should generally result in faster output, especially with `--" +"batch`. Note that `cat-file` will still show each object only once, even if " +"it is stored multiple times in the repository." msgstr "" #. type: Labeled list -#: en/git-clone.txt:242 en/git-fetch-pack.txt:114 en/git-ls-remote.txt:63 en/git-push.txt:50 en/pull-fetch-param.txt:1 +#: en/git-cat-file.txt:117 #, no-wrap -msgid "<repository>" +msgid "--allow-unknown-type" msgstr "" #. type: Plain text -#: en/git-clone.txt:246 -msgid "" -"The (possibly remote) repository to clone from. See the <<URLS,URLS>> " -"section below for more information on specifying repositories." +#: en/git-cat-file.txt:119 +msgid "Allow -s or -t to query broken/corrupt objects of unknown type." msgstr "" #. type: Labeled list -#: en/git-clone.txt:247 en/git-cvsserver.txt:53 en/git-daemon.txt:198 en/git-receive-pack.txt:41 en/git-send-pack.txt:89 en/git-upload-archive.txt:57 en/git-upload-pack.txt:44 +#: en/git-cat-file.txt:120 #, no-wrap -msgid "<directory>" +msgid "--follow-symlinks" msgstr "" #. type: Plain text -#: en/git-clone.txt:253 +#: en/git-cat-file.txt:129 msgid "" -"The name of a new directory to clone into. The \"humanish\" part of the " -"source repository is used if no directory is explicitly given (`repo` for " -"`/path/to/repo.git` and `foo` for `host.xz:foo/.git`). Cloning into an " -"existing directory is only allowed if the directory is empty." +"With --batch or --batch-check, follow symlinks inside the repository when " +"requesting objects with extended SHA-1 expressions of the form tree-ish:path-" +"in-tree. Instead of providing output about the link itself, provide output " +"about the linked-to object. If a symlink points outside the tree-ish (e.g. " +"a link to /foo or a root-level link to ../foo), the portion of the link " +"which is outside the tree will be printed." msgstr "" #. type: Plain text -#: en/git-clone.txt:261 -msgid "Clone from upstream:" +#: en/git-cat-file.txt:133 +msgid "" +"This option does not (currently) work correctly when an object in the index " +"is specified (e.g. `:link` instead of `HEAD:link`) rather than one in the " +"tree." msgstr "" -#. type: delimited block - -#: en/git-clone.txt:266 -#, no-wrap +#. type: Plain text +#: en/git-cat-file.txt:136 msgid "" -"$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux\n" -"$ cd my-linux\n" -"$ make\n" +"This option cannot (currently) be used unless `--batch` or `--batch-check` " +"is used." msgstr "" #. type: Plain text -#: en/git-clone.txt:270 -msgid "" -"Make a local clone that borrows from the current directory, without checking " -"things out:" +#: en/git-cat-file.txt:138 +msgid "For example, consider a git repository containing:" msgstr "" -#. type: delimited block - -#: en/git-clone.txt:275 +#. type: Plain text +#: en/git-cat-file.txt:145 #, no-wrap msgid "" -"$ git clone -l -s -n . ../copy\n" -"$ cd ../copy\n" -"$ git show-branch\n" +"\tf: a file containing \"hello\\n\"\n" +"\tlink: a symlink to f\n" +"\tdir/link: a symlink to ../f\n" +"\tplink: a symlink to ../f\n" +"\talink: a symlink to /etc/passwd\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:279 -msgid "Clone from upstream while borrowing from an existing local directory:" +#: en/git-cat-file.txt:148 +msgid "" +"For a regular file `f`, `echo HEAD:f | git cat-file --batch` would print" msgstr "" -#. type: delimited block - -#: en/git-clone.txt:285 +#. type: Plain text +#: en/git-cat-file.txt:151 #, no-wrap -msgid "" -"$ git clone --reference /git/linux.git \\\n" -"\tgit://git.kernel.org/pub/scm/.../linux.git \\\n" -"\tmy-linux\n" -"$ cd my-linux\n" +msgid "\tce013625030ba8dba906f756967f9e9ca394464a blob 6\n" msgstr "" #. type: Plain text -#: en/git-clone.txt:289 -msgid "Create a bare repository to publish your changes to the public:" +#: en/git-cat-file.txt:156 +msgid "" +"And `echo HEAD:link | git cat-file --batch --follow-symlinks` would print " +"the same thing, as would `HEAD:dir/link`, as they both point at `HEAD:f`." msgstr "" -#. type: delimited block - -#: en/git-clone.txt:292 -#, no-wrap -msgid "$ git clone --bare -l /home/proj/.git /pub/scm/proj.git\n" +#. type: Plain text +#: en/git-cat-file.txt:159 +msgid "" +"Without `--follow-symlinks`, these would print data about the symlink " +"itself. In the case of `HEAD:link`, you would see" msgstr "" -#. type: Title = -#: en/git-column.txt:2 +#. type: Plain text +#: en/git-cat-file.txt:162 #, no-wrap -msgid "git-column(1)" +msgid "\t4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1\n" msgstr "" #. type: Plain text -#: en/git-column.txt:7 -msgid "git-column - Display data in columns" +#: en/git-cat-file.txt:166 +msgid "" +"Both `plink` and `alink` point outside the tree, so they would respectively " +"print:" msgstr "" #. type: Plain text -#: en/git-column.txt:13 +#: en/git-cat-file.txt:170 #, no-wrap msgid "" -"'git column' [--command=<name>] [--[raw-]mode=<mode>] [--width=<width>]\n" -"\t [--indent=<string>] [--nl=<string>] [--padding=<n>]\n" +"\tsymlink 4\n" +"\t../f\n" msgstr "" #. type: Plain text -#: en/git-column.txt:17 -msgid "This command formats its input into multiple columns." +#: en/git-cat-file.txt:173 +#, no-wrap +msgid "" +"\tsymlink 11\n" +"\t/etc/passwd\n" msgstr "" -#. type: Labeled list -#: en/git-column.txt:20 +#. type: Title - +#: en/git-cat-file.txt:177 en/git-check-attr.txt:48 en/git-check-ignore.txt:60 +#: en/git-check-mailmap.txt:32 en/git-cvsimport.txt:188 en/git-fetch.txt:190 +#: en/git-ls-files.txt:188 en/git-push.txt:409 en/git-show-branch.txt:134 +#: en/git-show-ref.txt:97 en/git-status.txt:152 +#: en/git-update-server-info.txt:32 #, no-wrap -msgid "--command=<name>" +msgid "OUTPUT" msgstr "" #. type: Plain text -#: en/git-column.txt:23 -msgid "" -"Look up layout mode using configuration variable column.<name> and " -"column.ui." +#: en/git-cat-file.txt:179 +msgid "If `-t` is specified, one of the <type>." msgstr "" -#. type: Labeled list -#: en/git-column.txt:24 -#, no-wrap -msgid "--mode=<mode>" +#. type: Plain text +#: en/git-cat-file.txt:181 +msgid "If `-s` is specified, the size of the <object> in bytes." msgstr "" #. type: Plain text -#: en/git-column.txt:27 -msgid "Specify layout mode. See configuration variable column.ui for option syntax." +#: en/git-cat-file.txt:183 +msgid "If `-e` is specified, no output, unless the <object> is malformed." msgstr "" -#. type: Labeled list -#: en/git-column.txt:28 -#, no-wrap -msgid "--raw-mode=<n>" +#. type: Plain text +#: en/git-cat-file.txt:185 +msgid "If `-p` is specified, the contents of <object> are pretty-printed." msgstr "" #. type: Plain text -#: en/git-column.txt:31 +#: en/git-cat-file.txt:188 msgid "" -"Same as --mode but take mode encoded as a number. This is mainly used by " -"other commands that have already parsed layout mode." +"If <type> is specified, the raw (though uncompressed) contents of the " +"<object> will be returned." msgstr "" -#. type: Labeled list -#: en/git-column.txt:32 +#. type: Title - +#: en/git-cat-file.txt:190 #, no-wrap -msgid "--width=<width>" +msgid "BATCH OUTPUT" msgstr "" #. type: Plain text -#: en/git-column.txt:35 +#: en/git-cat-file.txt:196 msgid "" -"Specify the terminal width. By default 'git column' will detect the terminal " -"width, or fall back to 80 if it is unable to do so." -msgstr "" - -#. type: Labeled list -#: en/git-column.txt:36 -#, no-wrap -msgid "--indent=<string>" +"If `--batch` or `--batch-check` is given, `cat-file` will read objects from " +"stdin, one per line, and print information about them. By default, the whole " +"line is considered as an object, as if it were fed to linkgit:git-rev-" +"parse[1]." msgstr "" #. type: Plain text -#: en/git-column.txt:38 -msgid "String to be printed at the beginning of each line." +#: en/git-cat-file.txt:201 +msgid "" +"You can specify the information shown for each object by using a custom " +"`<format>`. The `<format>` is copied literally to stdout for each object, " +"with placeholders of the form `%(atom)` expanded, followed by a newline. The " +"available atoms are:" msgstr "" #. type: Labeled list -#: en/git-column.txt:39 +#: en/git-cat-file.txt:202 #, no-wrap -msgid "--nl=<N>" +msgid "`objectname`" msgstr "" #. type: Plain text -#: en/git-column.txt:42 -msgid "String to be printed at the end of each line, including newline character." +#: en/git-cat-file.txt:204 +msgid "The 40-hex object name of the object." msgstr "" #. type: Labeled list -#: en/git-column.txt:43 +#: en/git-cat-file.txt:205 #, no-wrap -msgid "--padding=<N>" +msgid "`objecttype`" msgstr "" #. type: Plain text -#: en/git-column.txt:45 -msgid "The number of spaces between columns. One space by default." +#: en/git-cat-file.txt:207 +msgid "The type of the object (the same as `cat-file -t` reports)." msgstr "" -#. type: Title = -#: en/git-commit.txt:2 +#. type: Labeled list +#: en/git-cat-file.txt:208 #, no-wrap -msgid "git-commit(1)" +msgid "`objectsize`" msgstr "" #. type: Plain text -#: en/git-commit.txt:7 -msgid "git-commit - Record changes to the repository" +#: en/git-cat-file.txt:211 +msgid "The size, in bytes, of the object (the same as `cat-file -s` reports)." msgstr "" -#. type: Plain text -#: en/git-commit.txt:17 +#. type: Labeled list +#: en/git-cat-file.txt:212 #, no-wrap -msgid "" -"'git commit' [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]\n" -"\t [--dry-run] [(-c | -C | --fixup | --squash) <commit>]\n" -"\t [-F <file> | -m <msg>] [--reset-author] [--allow-empty]\n" -"\t [--allow-empty-message] [--no-verify] [-e] [--author=<author>]\n" -"\t [--date=<date>] [--cleanup=<mode>] [--[no-]status]\n" -"\t [-i | -o] [-S[<keyid>]] [--] [<file>...]\n" +msgid "`objectsize:disk`" msgstr "" #. type: Plain text -#: en/git-commit.txt:22 +#: en/git-cat-file.txt:215 msgid "" -"Stores the current contents of the index in a new commit along with a log " -"message from the user describing the changes." -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:24 -msgid "The content to be added can be specified in several ways:" +"The size, in bytes, that the object takes up on disk. See the note about on-" +"disk sizes in the `CAVEATS` section below." msgstr "" -#. type: Plain text -#: en/git-commit.txt:28 -msgid "" -"by using 'git add' to incrementally \"add\" changes to the index before " -"using the 'commit' command (Note: even modified files must be \"added\");" +#. type: Labeled list +#: en/git-cat-file.txt:216 +#, no-wrap +msgid "`deltabase`" msgstr "" #. type: Plain text -#: en/git-commit.txt:31 +#: en/git-cat-file.txt:220 msgid "" -"by using 'git rm' to remove files from the working tree and the index, again " -"before using the 'commit' command;" +"If the object is stored as a delta on-disk, this expands to the 40-hex sha1 " +"of the delta base object. Otherwise, expands to the null sha1 (40 zeroes). " +"See `CAVEATS` below." msgstr "" -#. type: Plain text -#: en/git-commit.txt:37 -msgid "" -"by listing files as arguments to the 'commit' command (without --interactive " -"or --patch switch), in which case the commit will ignore changes staged in " -"the index, and instead record the current content of the listed files (which " -"must already be known to Git);" +#. type: Labeled list +#: en/git-cat-file.txt:221 +#, no-wrap +msgid "`rest`" msgstr "" #. type: Plain text -#: en/git-commit.txt:43 +#: en/git-cat-file.txt:227 msgid "" -"by using the -a switch with the 'commit' command to automatically \"add\" " -"changes from all known files (i.e. all files that are already listed in the " -"index) and to automatically \"rm\" files in the index that have been removed " -"from the working tree, and then perform the actual commit;" +"If this atom is used in the output string, input lines are split at the " +"first whitespace boundary. All characters before that whitespace are " +"considered to be the object name; characters after that first run of " +"whitespace (i.e., the \"rest\" of the line) are output in place of the `" +"%(rest)` atom." msgstr "" #. type: Plain text -#: en/git-commit.txt:49 +#: en/git-cat-file.txt:230 msgid "" -"by using the --interactive or --patch switches with the 'commit' command to " -"decide one by one which files or hunks should be part of the commit in " -"addition to contents in the index, before finalizing the operation. See the " -"``Interactive Mode'' section of linkgit:git-add[1] to learn how to operate " -"these modes." +"If no format is specified, the default format is `%(objectname) " +"%(objecttype) %(objectsize)`." msgstr "" #. type: Plain text -#: en/git-commit.txt:53 +#: en/git-cat-file.txt:234 msgid "" -"The `--dry-run` option can be used to obtain a summary of what is included " -"by any of the above for the next commit by giving the same set of parameters " -"(options and paths)." +"If `--batch` is specified, the object information is followed by the object " +"contents (consisting of `%(objectsize)` bytes), followed by a newline." msgstr "" #. type: Plain text -#: en/git-commit.txt:56 -msgid "" -"If you make a commit and then find a mistake immediately after that, you can " -"recover from it with 'git reset'." +#: en/git-cat-file.txt:236 +msgid "For example, `--batch` without a custom format would produce:" msgstr "" -#. type: Plain text -#: en/git-commit.txt:65 +#. type: delimited block - +#: en/git-cat-file.txt:240 +#, no-wrap msgid "" -"Tell the command to automatically stage files that have been modified and " -"deleted, but new files you have not told Git about are not affected." +"<sha1> SP <type> SP <size> LF\n" +"<contents> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:71 -msgid "" -"Use the interactive patch selection interface to chose which changes to " -"commit. See linkgit:git-add[1] for details." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:72 -#, no-wrap -msgid "-C <commit>" +#: en/git-cat-file.txt:243 +msgid "Whereas `--batch-check='%(objectname) %(objecttype)'` would produce:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:73 +#. type: delimited block - +#: en/git-cat-file.txt:246 #, no-wrap -msgid "--reuse-message=<commit>" +msgid "<sha1> SP <type> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:77 +#: en/git-cat-file.txt:250 msgid "" -"Take an existing commit object, and reuse the log message and the authorship " -"information (including the timestamp) when creating the commit." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:78 -#, no-wrap -msgid "-c <commit>" +"If a name is specified on stdin that cannot be resolved to an object in the " +"repository, then `cat-file` will ignore any custom format and print:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:79 +#. type: delimited block - +#: en/git-cat-file.txt:253 en/git-cat-file.txt:279 #, no-wrap -msgid "--reedit-message=<commit>" +msgid "<object> SP missing LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:82 +#: en/git-cat-file.txt:256 msgid "" -"Like '-C', but with `-c` the editor is invoked, so that the user can further " -"edit the commit message." +"If a name is specified that might refer to more than one object (an " +"ambiguous short sha), then `cat-file` will ignore any custom format and " +"print:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:83 +#. type: delimited block - +#: en/git-cat-file.txt:259 #, no-wrap -msgid "--fixup=<commit>" +msgid "<object> SP ambiguous LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:88 +#: en/git-cat-file.txt:264 msgid "" -"Construct a commit message for use with `rebase --autosquash`. The commit " -"message will be the subject line from the specified commit with a prefix of " -"\"fixup! \". See linkgit:git-rebase[1] for details." +"If --follow-symlinks is used, and a symlink in the repository points outside " +"the repository, then `cat-file` will ignore any custom format and print:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:89 +#. type: delimited block - +#: en/git-cat-file.txt:268 #, no-wrap -msgid "--squash=<commit>" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:95 msgid "" -"Construct a commit message for use with `rebase --autosquash`. The commit " -"message subject line is taken from the specified commit with a prefix of " -"\"squash! \". Can be used with additional commit message options " -"(`-m`/`-c`/`-C`/`-F`). See linkgit:git-rebase[1] for details." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:96 -#, no-wrap -msgid "--reset-author" +"symlink SP <size> LF\n" +"<symlink> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:101 +#: en/git-cat-file.txt:273 msgid "" -"When used with -C/-c/--amend options, or when committing after a a " -"conflicting cherry-pick, declare that the authorship of the resulting commit " -"now belongs to the committer. This also renews the author timestamp." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:102 en/git-rev-parse.txt:139 en/git-status.txt:28 en/git-symbolic-ref.txt:45 -#, no-wrap -msgid "--short" +"The symlink will either be absolute (beginning with a /), or relative to the " +"tree root. For instance, if dir/link points to ../../foo, then <symlink> " +"will be ../foo. <size> is the size of the symlink in bytes." msgstr "" #. type: Plain text -#: en/git-commit.txt:105 +#: en/git-cat-file.txt:276 msgid "" -"When doing a dry-run, give the output in the short-format. See " -"linkgit:git-status[1] for details. Implies `--dry-run`." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:106 en/git-status.txt:32 en/git-submodule.txt:280 -#, no-wrap -msgid "--branch" +"If --follow-symlinks is used, the following error messages will be displayed:" msgstr "" #. type: Plain text -#: en/git-commit.txt:108 en/git-status.txt:34 -msgid "Show the branch and tracking info even in short-format." +#: en/git-cat-file.txt:281 +msgid "is printed when the initial symlink requested does not exist." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:109 en/git-push.txt:121 en/git-worktree.txt:115 en/blame-options.txt:40 +#. type: delimited block - +#: en/git-cat-file.txt:285 #, no-wrap -msgid "--porcelain" +msgid "" +"dangling SP <size> LF\n" +"<object> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:113 +#: en/git-cat-file.txt:288 msgid "" -"When doing a dry-run, give the output in a porcelain-ready format. See " -"linkgit:git-status[1] for details. Implies `--dry-run`." +"is printed when the initial symlink exists, but something that it " +"(transitive-of) points to does not." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:114 en/git-describe.txt:74 en/git-ls-tree.txt:52 en/git-status.txt:44 +#. type: delimited block - +#: en/git-cat-file.txt:292 #, no-wrap -msgid "--long" +msgid "" +"loop SP <size> LF\n" +"<object> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:117 +#: en/git-cat-file.txt:295 msgid "" -"When doing a dry-run, give the output in a the long-format. Implies " -"`--dry-run`." +"is printed for symlink loops (or any symlinks that require more than 40 link " +"resolutions to resolve)." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:119 en/git-config.txt:184 en/git-grep.txt:197 +#. type: delimited block - +#: en/git-cat-file.txt:299 #, no-wrap -msgid "--null" +msgid "" +"notdir SP <size> LF\n" +"<object> LF\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:126 +#: en/git-cat-file.txt:302 msgid "" -"When showing `short` or `porcelain` status output, print the filename " -"verbatim and terminate the entries with NUL, instead of LF. If no format is " -"given, implies the `--porcelain` output format. Without the `-z` option, " -"filenames with \"unusual\" characters are quoted as explained for the " -"configuration variable `core.quotePath` (see linkgit:git-config[1])." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:127 en/git-commit-tree.txt:53 en/git-fmt-merge-msg.txt:47 en/git-notes.txt:140 en/git-tag.txt:138 -#, no-wrap -msgid "-F <file>" +"is printed when, during symlink resolution, a file is used as a directory " +"name." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:128 en/git-notes.txt:141 en/git-tag.txt:139 +#. type: Title - +#: en/git-cat-file.txt:304 en/git-for-each-ref.txt:370 en/git-svn.txt:998 #, no-wrap -msgid "--file=<file>" +msgid "CAVEATS" msgstr "" #. type: Plain text -#: en/git-commit.txt:131 +#: en/git-cat-file.txt:312 en/git-for-each-ref.txt:378 msgid "" -"Take the commit message from the given file. Use '-' to read the message " -"from the standard input." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:132 -#, no-wrap -msgid "--author=<author>" +"Note that the sizes of objects on disk are reported accurately, but care " +"should be taken in drawing conclusions about which refs or objects are " +"responsible for disk usage. The size of a packed non-delta object may be " +"much larger than the size of objects which delta against it, but the choice " +"of which object is the base and which is the delta is arbitrary and is " +"subject to change during a repack." msgstr "" #. type: Plain text -#: en/git-commit.txt:138 +#: en/git-cat-file.txt:316 en/git-for-each-ref.txt:382 msgid "" -"Override the commit author. Specify an explicit author using the standard `A " -"U Thor <author@example.com>` format. Otherwise <author> is assumed to be a " -"pattern and is used to search for an existing commit by that author " -"(i.e. rev-list --all -i --author=<author>); the commit author is then copied " -"from the first such commit found." +"Note also that multiple copies of an object may be present in the object " +"database; in this case, it is undefined which copy's size or delta base will " +"be reported." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:139 +#. type: Title = +#: en/git-check-attr.txt:2 #, no-wrap -msgid "--date=<date>" +msgid "git-check-attr(1)" msgstr "" #. type: Plain text -#: en/git-commit.txt:141 -msgid "Override the author date used in the commit." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:142 en/git-merge.txt:78 en/git-notes.txt:132 en/git-tag.txt:130 -#, no-wrap -msgid "-m <msg>" +#: en/git-check-attr.txt:7 +msgid "git-check-attr - Display gitattributes information" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:143 en/git-notes.txt:133 en/git-tag.txt:131 +#. type: Plain text +#: en/git-check-attr.txt:14 #, no-wrap -msgid "--message=<msg>" +msgid "" +"'git check-attr' [-a | --all | <attr>...] [--] <pathname>...\n" +"'git check-attr' --stdin [-z] [-a | --all | <attr>...]\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:147 +#: en/git-check-attr.txt:19 msgid "" -"Use the given <msg> as the commit message. If multiple `-m` options are " -"given, their values are concatenated as separate paragraphs." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:148 -#, no-wrap -msgid "-t <file>" +"For every pathname, this command will list if each attribute is " +"'unspecified', 'set', or 'unset' as a gitattribute on that pathname." msgstr "" #. type: Labeled list -#: en/git-commit.txt:149 +#: en/git-check-attr.txt:22 #, no-wrap -msgid "--template=<file>" +msgid "-a, --all" msgstr "" #. type: Plain text -#: en/git-commit.txt:158 +#: en/git-check-attr.txt:26 msgid "" -"When editing the commit message, start the editor with the contents in the " -"given file. The `commit.template` configuration variable is often used to " -"give this option implicitly to the command. This mechanism can be used by " -"projects that want to guide participants with some hints on what to write in " -"the message in what order. If the user exits the editor without editing the " -"message, the commit is aborted. This has no effect when a message is given " -"by other means, e.g. with the `-m` or `-F` options." +"List all attributes that are associated with the specified paths. If this " +"option is used, then 'unspecified' attributes will not be included in the " +"output." msgstr "" #. type: Plain text -#: en/git-commit.txt:167 -msgid "" -"Add Signed-off-by line by the committer at the end of the commit log " -"message. The meaning of a signoff depends on the project, but it typically " -"certifies that committer has the rights to submit this work under the same " -"license and agrees to a Developer Certificate of Origin (see " -"http://developercertificate.org/ for more information)." +#: en/git-check-attr.txt:29 +msgid "Consider `.gitattributes` in the index only, ignoring the working tree." msgstr "" #. type: Labeled list -#: en/git-commit.txt:169 en/git-rebase.txt:322 +#: en/git-check-attr.txt:30 en/git-check-ignore.txt:37 +#: en/git-check-mailmap.txt:26 en/git-checkout-index.txt:62 +#: en/git-diff-tree.txt:46 en/git-fetch-pack.txt:38 en/git-hash-object.txt:34 +#: en/git-http-fetch.txt:37 en/git-index-pack.txt:38 en/git-name-rev.txt:45 +#: en/git-notes.txt:173 en/git-send-pack.txt:41 en/git-svn.txt:595 +#: en/git-update-index.txt:148 en/rev-list-options.txt:205 #, no-wrap -msgid "--no-verify" +msgid "--stdin" msgstr "" #. type: Plain text -#: en/git-commit.txt:172 +#: en/git-check-attr.txt:33 en/git-check-ignore.txt:40 msgid "" -"This option bypasses the pre-commit and commit-msg hooks. See also " -"linkgit:githooks[5]." +"Read pathnames from the standard input, one per line, instead of from the " +"command-line." msgstr "" #. type: Plain text -#: en/git-commit.txt:178 +#: en/git-check-attr.txt:38 msgid "" -"Usually recording a commit that has the exact same tree as its sole parent " -"commit is a mistake, and the command prevents you from making such a " -"commit. This option bypasses the safety, and is primarily for use by " -"foreign SCM interface scripts." +"The output format is modified to be machine-parseable. If `--stdin` is also " +"given, input paths are separated with a NUL character instead of a linefeed " +"character." msgstr "" #. type: Plain text -#: en/git-commit.txt:184 +#: en/git-check-attr.txt:42 msgid "" -"Like --allow-empty this command is primarily for use by foreign SCM " -"interface scripts. It allows you to create a commit with an empty commit " -"message without using plumbing commands like linkgit:git-commit-tree[1]." +"Interpret all preceding arguments as attributes and all following arguments " +"as path names." msgstr "" -#. type: Labeled list -#: en/git-commit.txt:185 en/git-tag.txt:145 -#, no-wrap -msgid "--cleanup=<mode>" +#. type: Plain text +#: en/git-check-attr.txt:46 +msgid "" +"If none of `--stdin`, `--all`, or `--` is used, the first argument will be " +"treated as an attribute and the rest of the arguments as pathnames." msgstr "" #. type: Plain text -#: en/git-commit.txt:189 +#: en/git-check-attr.txt:52 msgid "" -"This option determines how the supplied commit message should be cleaned up " -"before committing. The '<mode>' can be `strip`, `whitespace`, `verbatim`, " -"`scissors` or `default`." +"The output is of the form: <path> COLON SP <attribute> COLON SP <info> LF" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:191 -#, no-wrap -msgid "strip" +#. type: Plain text +#: en/git-check-attr.txt:55 +msgid "" +"unless `-z` is in effect, in which case NUL is used as delimiter: <path> NUL " +"<attribute> NUL <info> NUL" msgstr "" #. type: Plain text -#: en/git-commit.txt:194 +#: en/git-check-attr.txt:59 msgid "" -"Strip leading and trailing empty lines, trailing whitespace, commentary and " -"collapse consecutive empty lines." +"<path> is the path of a file being queried, <attribute> is an attribute " +"being queried and <info> can be either:" msgstr "" #. type: Labeled list -#: en/git-commit.txt:194 +#: en/git-check-attr.txt:60 #, no-wrap -msgid "whitespace" +msgid "'unspecified'" msgstr "" #. type: Plain text -#: en/git-commit.txt:196 -msgid "Same as `strip` except #commentary is not removed." +#: en/git-check-attr.txt:61 +msgid "when the attribute is not defined for the path." msgstr "" #. type: Labeled list -#: en/git-commit.txt:196 +#: en/git-check-attr.txt:61 #, no-wrap -msgid "verbatim" +msgid "'unset'" msgstr "" #. type: Plain text -#: en/git-commit.txt:198 -msgid "Do not change the message at all." +#: en/git-check-attr.txt:62 +msgid "when the attribute is defined as false." msgstr "" #. type: Labeled list -#: en/git-commit.txt:198 +#: en/git-check-attr.txt:62 #, no-wrap -msgid "scissors" +msgid "'set'" msgstr "" #. type: Plain text -#: en/git-commit.txt:204 -msgid "" -"Same as `whitespace`, except that everything from (and including) the line " -"\"`# ------------------------ >8 ------------------------`\" is truncated if " -"the message is to be edited. \"`#`\" can be customized with " -"core.commentChar." +#: en/git-check-attr.txt:63 +msgid "when the attribute is defined as true." msgstr "" #. type: Labeled list -#: en/git-commit.txt:204 +#: en/git-check-attr.txt:63 #, no-wrap -msgid "default" +msgid "<value>" msgstr "" #. type: Plain text -#: en/git-commit.txt:207 -msgid "Same as `strip` if the message is to be edited. Otherwise `whitespace`." +#: en/git-check-attr.txt:64 +msgid "when a value has been assigned to the attribute." msgstr "" #. type: Plain text -#: en/git-commit.txt:211 +#: en/git-check-attr.txt:69 en/git-check-ignore.txt:99 msgid "" -"The default can be changed by the `commit.cleanup` configuration variable " -"(see linkgit:git-config[1])." +"Buffering happens as documented under the `GIT_FLUSH` option in linkgit:" +"git[1]. The caller is responsible for avoiding deadlocks caused by " +"overfilling an input buffer or reading from an empty output buffer." msgstr "" #. type: Plain text -#: en/git-commit.txt:218 -msgid "" -"The message taken from file with `-F`, command line with `-m`, and from " -"commit object with `-C` are usually used as the commit log message " -"unmodified. This option lets you further edit the message taken from these " -"sources." +#: en/git-check-attr.txt:74 +msgid "In the examples, the following '.gitattributes' file is used:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:219 en/git-revert.txt:65 en/merge-options.txt:12 +#. type: delimited block - +#: en/git-check-attr.txt:78 #, no-wrap -msgid "--no-edit" +msgid "" +"*.java diff=java -crlf myAttr\n" +"NoMyAttr.java !myAttr\n" +"README caveat=unspecified\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:223 -msgid "" -"Use the selected commit message without launching an editor. For example, " -"`git commit --amend --no-edit` amends a commit without changing its commit " -"message." +#: en/git-check-attr.txt:81 +msgid "Listing a single attribute:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:224 +#. type: delimited block - +#: en/git-check-attr.txt:84 #, no-wrap -msgid "--amend" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:234 msgid "" -"Replace the tip of the current branch by creating a new commit. The recorded " -"tree is prepared as usual (including the effect of the `-i` and `-o` options " -"and explicit pathspec), and the message from the original commit is used as " -"the starting point, instead of an empty message, when no other message is " -"specified from the command line via options such as `-m`, `-F`, `-c`, etc. " -"The new commit has the same parents and author as the current one (the " -"`--reset-author` option can countermand this)." +"$ git check-attr diff org/example/MyClass.java\n" +"org/example/MyClass.java: diff: java\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:237 -msgid "It is a rough equivalent for:" +#: en/git-check-attr.txt:87 +msgid "Listing multiple attributes for a file:" msgstr "" #. type: delimited block - -#: en/git-commit.txt:241 +#: en/git-check-attr.txt:92 #, no-wrap msgid "" -"\t$ git reset --soft HEAD^\n" -"\t$ ... do something else to come up with the right tree ...\n" -"\t$ git commit -c ORIG_HEAD\n" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:244 -msgid "but can be used to amend a merge commit." +"$ git check-attr crlf diff myAttr -- org/example/MyClass.java\n" +"org/example/MyClass.java: crlf: unset\n" +"org/example/MyClass.java: diff: java\n" +"org/example/MyClass.java: myAttr: set\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:249 -msgid "" -"You should understand the implications of rewriting history if you amend a " -"commit that has already been published. (See the \"RECOVERING FROM UPSTREAM " -"REBASE\" section in linkgit:git-rebase[1].)" +#: en/git-check-attr.txt:95 +msgid "Listing all attributes for a file:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:250 +#. type: delimited block - +#: en/git-check-attr.txt:99 #, no-wrap -msgid "--no-post-rewrite" +msgid "" +"$ git check-attr --all -- org/example/MyClass.java\n" +"org/example/MyClass.java: diff: java\n" +"org/example/MyClass.java: myAttr: set\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:252 -msgid "Bypass the post-rewrite hook." +#: en/git-check-attr.txt:102 +msgid "Listing an attribute for multiple files:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:254 +#. type: delimited block - +#: en/git-check-attr.txt:106 #, no-wrap -msgid "--include" +msgid "" +"$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java\n" +"org/example/MyClass.java: myAttr: set\n" +"org/example/NoMyAttr.java: myAttr: unspecified\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:259 -msgid "" -"Before making a commit out of staged contents so far, stage the contents of " -"paths given on the command line as well. This is usually not what you want " -"unless you are concluding a conflicted merge." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:261 -#, no-wrap -msgid "--only" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:273 -msgid "" -"Make a commit by taking the updated working tree contents of the paths " -"specified on the command line, disregarding any contents that have been " -"staged for other paths. This is the default mode of operation of 'git " -"commit' if any paths are given on the command line, in which case this " -"option can be omitted. If this option is specified together with `--amend`, " -"then no paths need to be specified, which can be used to amend the last " -"commit without committing changes that have already been staged. If used " -"together with `--allow-empty` paths are also not required, and an empty " -"commit will be created." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:274 en/git-status.txt:55 -#, no-wrap -msgid "-u[<mode>]" +#: en/git-check-attr.txt:109 +msgid "Not all values are equally unambiguous:" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:275 en/git-status.txt:56 +#. type: delimited block - +#: en/git-check-attr.txt:112 #, no-wrap -msgid "--untracked-files[=<mode>]" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:277 en/git-status.txt:58 -msgid "Show untracked files." -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:281 msgid "" -"The mode parameter is optional (defaults to 'all'), and is used to specify " -"the handling of untracked files; when -u is not used, the default is " -"'normal', i.e. show untracked files and directories." +"$ git check-attr caveat README\n" +"README: caveat: unspecified\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:283 en/git-status.txt:64 -msgid "The possible options are:" +#: en/git-check-attr.txt:117 +msgid "linkgit:gitattributes[5]." msgstr "" -#. type: Plain text -#: en/git-commit.txt:285 +#. type: Title = +#: en/git-check-ignore.txt:2 #, no-wrap -msgid "'no' - Show no untracked files\n" +msgid "git-check-ignore(1)" msgstr "" #. type: Plain text -#: en/git-commit.txt:286 -#, no-wrap -msgid "'normal' - Shows untracked files and directories\n" +#: en/git-check-ignore.txt:7 +msgid "git-check-ignore - Debug gitignore / exclude files" msgstr "" #. type: Plain text -#: en/git-commit.txt:287 en/git-status.txt:68 +#: en/git-check-ignore.txt:14 #, no-wrap -msgid "'all' - Also shows individual files in untracked directories.\n" -msgstr "" - -#. type: Plain text -#: en/git-commit.txt:290 en/git-status.txt:81 msgid "" -"The default can be changed using the status.showUntrackedFiles configuration " -"variable documented in linkgit:git-config[1]." +"'git check-ignore' [<options>] <pathname>...\n" +"'git check-ignore' [<options>] --stdin\n" msgstr "" #. type: Plain text -#: en/git-commit.txt:301 +#: en/git-check-ignore.txt:22 msgid "" -"Show unified diff between the HEAD commit and what would be committed at the " -"bottom of the commit message template to help the user describe the commit " -"by reminding what changes the commit has. Note that this diff output " -"doesn't have its lines prefixed with '#'. This diff will not be a part of " -"the commit message. See the `commit.verbose` configuration variable in " -"linkgit:git-config[1]." +"For each pathname given via the command-line or from a file via `--stdin`, " +"check whether the file is excluded by .gitignore (or other input files to " +"the exclude mechanism) and output the path if it is excluded." msgstr "" #. type: Plain text -#: en/git-commit.txt:305 +#: en/git-check-ignore.txt:25 msgid "" -"If specified twice, show in addition the unified diff between what would be " -"committed and the worktree files, i.e. the unstaged changes to tracked " -"files." +"By default, tracked files are not shown at all since they are not subject to " +"exclude rules; but see `--no-index'." msgstr "" -#. type: Plain text -#: en/git-commit.txt:309 -msgid "Suppress commit summary message." +#. type: Labeled list +#: en/git-check-ignore.txt:28 +#, no-wrap +msgid "-q, --quiet" msgstr "" #. type: Plain text -#: en/git-commit.txt:314 +#: en/git-check-ignore.txt:31 msgid "" -"Do not create a commit, but show a list of paths that are to be committed, " -"paths with local changes that will be left uncommitted and paths that are " -"untracked." +"Don't output anything, just set exit status. This is only valid with a " +"single pathname." msgstr "" #. type: Labeled list -#: en/git-commit.txt:315 +#: en/git-check-ignore.txt:32 #, no-wrap -msgid "--status" +msgid "-v, --verbose" msgstr "" #. type: Plain text -#: en/git-commit.txt:320 +#: en/git-check-ignore.txt:36 msgid "" -"Include the output of linkgit:git-status[1] in the commit message template " -"when using an editor to prepare the commit message. Defaults to on, but can " -"be used to override configuration variable commit.status." -msgstr "" - -#. type: Labeled list -#: en/git-commit.txt:321 -#, no-wrap -msgid "--no-status" +"Also output details about the matching pattern (if any) for each given " +"pathname. For precedence rules within and between exclude sources, see " +"linkgit:gitignore[5]." msgstr "" #. type: Plain text -#: en/git-commit.txt:325 +#: en/git-check-ignore.txt:45 msgid "" -"Do not include the output of linkgit:git-status[1] in the commit message " -"template when using an editor to prepare the default commit message." +"The output format is modified to be machine-parseable (see below). If `--" +"stdin` is also given, input paths are separated with a NUL character instead " +"of a linefeed character." msgstr "" #. type: Labeled list -#: en/git-commit.txt:332 en/git-commit-tree.txt:63 +#: en/git-check-ignore.txt:46 #, no-wrap -msgid "--no-gpg-sign" +msgid "-n, --non-matching" msgstr "" #. type: Plain text -#: en/git-commit.txt:335 +#: en/git-check-ignore.txt:51 msgid "" -"Countermand `commit.gpgSign` configuration variable that is set to force " -"each and every commit to be signed." +"Show given paths which don't match any pattern.\t This only makes sense when " +"`--verbose` is enabled, otherwise it would not be possible to distinguish " +"between paths which match a pattern and those which don't." msgstr "" #. type: Labeled list -#: en/git-commit.txt:339 en/git-rm.txt:29 +#: en/git-check-ignore.txt:52 en/git-grep.txt:79 #, no-wrap -msgid "<file>..." +msgid "--no-index" msgstr "" #. type: Plain text -#: en/git-commit.txt:345 +#: en/git-check-ignore.txt:58 msgid "" -"When files are given on the command line, the command commits the contents " -"of the named files, without recording the changes already staged. The " -"contents of these files are also staged for the next commit on top of what " -"have been staged before." +"Don't look in the index when undertaking the checks. This can be used to " +"debug why a path became tracked by e.g. `git add .` and was not ignored by " +"the rules as expected by the user or when developing patterns including " +"negation to match a path previously added with `git add -f`." msgstr "" #. type: Plain text -#: en/git-commit.txt:362 -msgid "" -"When recording your own work, the contents of modified files in your working " -"tree are temporarily stored to a staging area called the \"index\" with 'git " -"add'. A file can be reverted back, only in the index but not in the working " -"tree, to that of the last commit with `git reset HEAD -- <file>`, which " -"effectively reverts 'git add' and prevents the changes to this file from " -"participating in the next commit. After building the state to be committed " -"incrementally with these commands, `git commit` (without any pathname " -"parameter) is used to record what has been staged so far. This is the most " -"basic form of the command. An example:" -msgstr "" - -#. type: delimited block - -#: en/git-commit.txt:368 -#, no-wrap +#: en/git-check-ignore.txt:66 msgid "" -"$ edit hello.c\n" -"$ git rm goodbye.c\n" -"$ git add hello.c\n" -"$ git commit\n" +"By default, any of the given pathnames which match an ignore pattern will be " +"output, one per line. If no pattern matches a given path, nothing will be " +"output for that path; this means that path will not be ignored." msgstr "" #. type: Plain text -#: en/git-commit.txt:376 +#: en/git-check-ignore.txt:68 msgid "" -"Instead of staging files after each individual change, you can tell `git " -"commit` to notice the changes to the files whose contents are tracked in " -"your working tree and do corresponding `git add` and `git rm` for you. That " -"is, this example does the same as the earlier example if there is no other " -"change in your working tree:" +"If `--verbose` is specified, the output is a series of lines of the form:" msgstr "" -#. type: delimited block - -#: en/git-commit.txt:381 -#, no-wrap -msgid "" -"$ edit hello.c\n" -"$ rm goodbye.c\n" -"$ git commit -a\n" +#. type: Plain text +#: en/git-check-ignore.txt:70 +msgid "<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>" msgstr "" #. type: Plain text -#: en/git-commit.txt:386 +#: en/git-check-ignore.txt:78 msgid "" -"The command `git commit -a` first looks at your working tree, notices that " -"you have modified hello.c and removed goodbye.c, and performs necessary `git " -"add` and `git rm` for you." +"<pathname> is the path of a file being queried, <pattern> is the matching " +"pattern, <source> is the pattern's source file, and <linenum> is the line " +"number of the pattern within that source. If the pattern contained a `!` " +"prefix or `/` suffix, it will be preserved in the output. <source> will be " +"an absolute path when referring to the file configured by `core." +"excludesFile`, or relative to the repository root when referring to `.git/" +"info/exclude` or a per-directory exclude file." msgstr "" #. type: Plain text -#: en/git-commit.txt:391 +#: en/git-check-ignore.txt:82 msgid "" -"After staging changes to many files, you can alter the order the changes are " -"recorded in, by giving pathnames to `git commit`. When pathnames are given, " -"the command makes a commit that only records the changes made to the named " -"paths:" +"If `-z` is specified, the pathnames in the output are delimited by the null " +"character; if `--verbose` is also specified then null characters are also " +"used instead of colons and hard tabs:" msgstr "" -#. type: delimited block - -#: en/git-commit.txt:397 -#, no-wrap -msgid "" -"$ edit hello.c hello.h\n" -"$ git add hello.c hello.h\n" -"$ edit Makefile\n" -"$ git commit Makefile\n" +#. type: Plain text +#: en/git-check-ignore.txt:84 +msgid "<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>" msgstr "" #. type: Plain text -#: en/git-commit.txt:404 +#: en/git-check-ignore.txt:94 msgid "" -"This makes a commit that records the modification to `Makefile`. The " -"changes staged for `hello.c` and `hello.h` are not included in the resulting " -"commit. However, their changes are not lost -- they are still staged and " -"merely held back. After the above sequence, if you do:" +"If `-n` or `--non-matching` are specified, non-matching pathnames will also " +"be output, in which case all fields in each output record except for " +"<pathname> will be empty. This can be useful when running non-" +"interactively, so that files can be incrementally streamed to STDIN of a " +"long-running check-ignore process, and for each of these files, STDOUT will " +"indicate whether that file matched a pattern or not. (Without this option, " +"it would be impossible to tell whether the absence of output for a given " +"file meant that it didn't match any pattern, or that the output hadn't been " +"generated yet.)" msgstr "" -#. type: delimited block - -#: en/git-commit.txt:407 en/git-commit.txt:433 +#. type: Title - +#: en/git-check-ignore.txt:101 en/git-filter-branch.txt:226 #, no-wrap -msgid "$ git commit\n" +msgid "EXIT STATUS" msgstr "" -#. type: Plain text -#: en/git-commit.txt:411 -msgid "" -"this second commit would record the changes to `hello.c` and `hello.h` as " -"expected." +#. type: Labeled list +#: en/git-check-ignore.txt:103 +#, no-wrap +msgid "0" msgstr "" #. type: Plain text -#: en/git-commit.txt:419 -msgid "" -"After a merge (initiated by 'git merge' or 'git pull') stops because of " -"conflicts, cleanly merged paths are already staged to be committed for you, " -"and paths that conflicted are left in unmerged state. You would have to " -"first check which paths are conflicting with 'git status' and after fixing " -"them manually in your working tree, you would stage the result as usual with " -"'git add':" +#: en/git-check-ignore.txt:105 +msgid "One or more of the provided paths is ignored." msgstr "" -#. type: delimited block - -#: en/git-commit.txt:425 +#. type: Labeled list +#: en/git-check-ignore.txt:106 #, no-wrap -msgid "" -"$ git status | grep unmerged\n" -"unmerged: hello.c\n" -"$ edit hello.c\n" -"$ git add hello.c\n" +msgid "1" msgstr "" #. type: Plain text -#: en/git-commit.txt:430 -msgid "" -"After resolving conflicts and staging the result, `git ls-files -u` would " -"stop mentioning the conflicted path. When you are done, run `git commit` to " -"finally record the merge:" +#: en/git-check-ignore.txt:108 +msgid "None of the provided paths are ignored." +msgstr "" + +#. type: Labeled list +#: en/git-check-ignore.txt:109 +#, no-wrap +msgid "128" msgstr "" #. type: Plain text -#: en/git-commit.txt:441 -msgid "" -"As with the case to record your own changes, you can use `-a` option to save " -"typing. One difference is that during a merge resolution, you cannot use " -"`git commit` with pathnames to alter the order the changes are committed, " -"because the merge should be recorded as a single commit. In fact, the " -"command refuses to run when given pathnames (but see `-i` option)." +#: en/git-check-ignore.txt:111 +msgid "A fatal error was encountered." msgstr "" #. type: Plain text -#: en/git-commit.txt:453 -msgid "" -"Though not required, it's a good idea to begin the commit message with a " -"single short (less than 50 character) line summarizing the change, followed " -"by a blank line and then a more thorough description. The text up to the " -"first blank line in a commit message is treated as the commit title, and " -"that title is used throughout Git. For example, linkgit:git-format-patch[1] " -"turns a commit into email, and it uses the title on the Subject line and the " -"rest of the commit in the body." +#: en/git-check-ignore.txt:117 +msgid "linkgit:gitignore[5] linkgit:git-config[1] linkgit:git-ls-files[1]" msgstr "" -#. type: Title - -#: en/git-commit.txt:457 +#. type: Title = +#: en/git-check-mailmap.txt:2 #, no-wrap -msgid "ENVIRONMENT AND CONFIGURATION VARIABLES" +msgid "git-check-mailmap(1)" msgstr "" #. type: Plain text -#: en/git-commit.txt:462 +#: en/git-check-mailmap.txt:7 msgid "" -"The editor used to edit the commit log message will be chosen from the " -"`GIT_EDITOR` environment variable, the core.editor configuration variable, " -"the `VISUAL` environment variable, or the `EDITOR` environment variable (in " -"that order). See linkgit:git-var[1] for details." +"git-check-mailmap - Show canonical names and email addresses of contacts" msgstr "" #. type: Plain text -#: en/git-commit.txt:468 -msgid "" -"This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`, " -"`post-commit` and `post-rewrite` hooks. See linkgit:githooks[5] for more " -"information." -msgstr "" - -#. type: Title - -#: en/git-commit.txt:470 en/git-commit-tree.txt:109 en/git-config.txt:233 en/git-credential-store.txt:45 en/git-show-ref.txt:174 en/git-submodule.txt:429 en/git-svn.txt:1118 +#: en/git-check-mailmap.txt:13 #, no-wrap -msgid "FILES" +msgid "'git check-mailmap' [<options>] <contact>...\n" msgstr "" -#. type: Labeled list -#: en/git-commit.txt:472 -#, no-wrap -msgid "`$GIT_DIR/COMMIT_EDITMSG`" +#. type: Plain text +#: en/git-check-mailmap.txt:22 +msgid "" +"For each ``Name $$<user@host>$$'' or ``$$<user@host>$$'' from the command-" +"line or standard input (when using `--stdin`), look up the person's " +"canonical name and email address (see \"Mapping Authors\" below). If found, " +"print them; otherwise print the input as-is." msgstr "" #. type: Plain text -#: en/git-commit.txt:478 +#: en/git-check-mailmap.txt:29 msgid "" -"This file contains the commit message of a commit in progress. If `git " -"commit` exits due to an error before creating a commit, any commit message " -"that has been provided by the user (e.g., in an editor session) will be " -"available in this file, but will be overwritten by the next invocation of " -"`git commit`." +"Read contacts, one per line, from the standard input after exhausting " +"contacts provided on the command-line." msgstr "" #. type: Plain text -#: en/git-commit.txt:486 +#: en/git-check-mailmap.txt:37 msgid "" -"linkgit:git-add[1], linkgit:git-rm[1], linkgit:git-mv[1], " -"linkgit:git-merge[1], linkgit:git-commit-tree[1]" +"For each contact, a single line is output, terminated by a newline. If the " +"name is provided or known to the 'mailmap', ``Name $$<user@host>$$'' is " +"printed; otherwise only ``$$<user@host>$$'' is printed." msgstr "" #. type: Title = -#: en/git-commit-tree.txt:2 +#: en/git-checkout-index.txt:2 #, no-wrap -msgid "git-commit-tree(1)" +msgid "git-checkout-index(1)" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:7 -msgid "git-commit-tree - Create a new commit object" +#: en/git-checkout-index.txt:7 +msgid "git-checkout-index - Copy files from the index to the working tree" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:15 +#: en/git-checkout-index.txt:17 #, no-wrap msgid "" -"'git commit-tree' <tree> [(-p <parent>)...]\n" -"'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]\n" -"\t\t [(-F <file>)...] <tree>\n" +"'git checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]\n" +"\t\t [--stage=<number>|all]\n" +"\t\t [--temp]\n" +"\t\t [-z] [--stdin]\n" +"\t\t [--] [<file>...]\n" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:21 +#: en/git-checkout-index.txt:22 msgid "" -"This is usually not what an end user wants to run directly. See " -"linkgit:git-commit[1] instead." +"Will copy all files listed from the index to the working directory (not " +"overwriting existing files)." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:25 -msgid "" -"Creates a new commit object based on the provided tree object and emits the " -"new commit object id on stdout. The log message is read from the standard " -"input, unless `-m` or `-F` options are given." +#: en/git-checkout-index.txt:29 +msgid "update stat information for the checked out entries in the index file." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:30 -msgid "" -"A commit object may have any number of parents. With exactly one parent, it " -"is an ordinary commit. Having more than one parent makes the commit a merge " -"between several lines of history. Initial (root) commits have no parents." +#: en/git-checkout-index.txt:33 +msgid "be quiet if files exist or are not in the index" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:34 -msgid "" -"While a tree represents a particular directory state of a working directory, " -"a commit represents that state in \"time\", and explains how to get there." +#: en/git-checkout-index.txt:37 +msgid "forces overwrite of existing files" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:40 +#: en/git-checkout-index.txt:42 msgid "" -"Normally a commit would identify a new \"HEAD\" state, and while Git doesn't " -"care where you save the note about that state, in practice we tend to just " -"write the result to the file that is pointed at by `.git/HEAD`, so that we " -"can always see what the last committed state was." -msgstr "" - -#. type: Plain text -#: en/git-commit-tree.txt:45 -msgid "An existing tree object" +"checks out all files in the index. Cannot be used together with explicit " +"filenames." msgstr "" #. type: Labeled list -#: en/git-commit-tree.txt:46 +#: en/git-checkout-index.txt:44 #, no-wrap -msgid "-p <parent>" +msgid "--no-create" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:48 -msgid "Each `-p` indicates the id of a parent commit object." +#: en/git-checkout-index.txt:47 +msgid "Don't checkout new files, only refresh files already checked out." msgstr "" #. type: Labeled list -#: en/git-commit-tree.txt:49 en/git-fmt-merge-msg.txt:42 +#: en/git-checkout-index.txt:48 #, no-wrap -msgid "-m <message>" +msgid "--prefix=<string>" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:52 +#: en/git-checkout-index.txt:51 msgid "" -"A paragraph in the commit log message. This can be given more than once and " -"each <message> becomes its own paragraph." +"When creating files, prepend <string> (usually a directory including a " +"trailing /)" msgstr "" -#. type: Plain text -#: en/git-commit-tree.txt:56 -msgid "" -"Read the commit log message from the given file. Use `-` to read from the " -"standard input." +#. type: Labeled list +#: en/git-checkout-index.txt:52 +#, no-wrap +msgid "--stage=<number>|all" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:66 +#: en/git-checkout-index.txt:56 msgid "" -"Do not GPG-sign commit, to countermand a `--gpg-sign` option given earlier " -"on the command line." +"Instead of checking out unmerged entries, copy out the files from named " +"stage. <number> must be between 1 and 3. Note: --stage=all automatically " +"implies --temp." msgstr "" -#. type: Title - -#: en/git-commit-tree.txt:69 +#. type: Labeled list +#: en/git-checkout-index.txt:57 #, no-wrap -msgid "Commit Information" +msgid "--temp" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:72 -msgid "A commit encapsulates:" +#: en/git-checkout-index.txt:61 +msgid "" +"Instead of copying the files to the working directory write the content to " +"temporary files. The temporary name associations will be written to stdout." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:74 -msgid "all parent object ids" +#: en/git-checkout-index.txt:66 en/git-update-index.txt:152 +msgid "" +"Instead of taking list of paths from the command line, read list of paths " +"from the standard input. Paths are separated by LF (i.e. one path per line) " +"by default." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:75 -msgid "author name, email and date" +#: en/git-checkout-index.txt:70 +msgid "" +"Only meaningful with `--stdin`; paths are separated with NUL character " +"instead of LF." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:76 -msgid "committer name and email and the commit time." +#: en/git-checkout-index.txt:73 en/git-commit.txt:345 en/git-ls-files.txt:182 +#: en/git-merge-index.txt:25 en/git-prune.txt:53 en/git-update-index.txt:223 +#: en/git-verify-pack.txt:38 +msgid "Do not interpret any more arguments as options." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:80 -msgid "" -"While parent object ids are provided on the command line, author and " -"committer information is taken from the following environment variables, if " -"set:" +#: en/git-checkout-index.txt:75 +msgid "The order of the flags used to matter, but not anymore." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:87 -#, no-wrap +#: en/git-checkout-index.txt:79 msgid "" -"\tGIT_AUTHOR_NAME\n" -"\tGIT_AUTHOR_EMAIL\n" -"\tGIT_AUTHOR_DATE\n" -"\tGIT_COMMITTER_NAME\n" -"\tGIT_COMMITTER_EMAIL\n" -"\tGIT_COMMITTER_DATE\n" +"Just doing `git checkout-index` does nothing. You probably meant `git " +"checkout-index -a`. And if you want to force it, you want `git checkout-" +"index -f -a`." msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:89 -msgid "(nb \"<\", \">\" and \"\\n\"s are stripped)" +#: en/git-checkout-index.txt:83 +msgid "" +"Intuitiveness is not the goal here. Repeatability is. The reason for the " +"\"no arguments means no work\" behavior is that from scripts you are " +"supposed to be able to do:" msgstr "" -#. type: Plain text -#: en/git-commit-tree.txt:96 -msgid "" -"In case (some of) these environment variables are not set, the information " -"is taken from the configuration items user.name and user.email, or, if not " -"present, the environment variable EMAIL, or, if that is not set, system user " -"name and the hostname used for outgoing mail (taken from `/etc/mailname` and " -"falling back to the fully qualified hostname when that file does not exist)." +#. type: delimited block - +#: en/git-checkout-index.txt:86 +#, no-wrap +msgid "$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --\n" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:100 +#: en/git-checkout-index.txt:92 msgid "" -"A commit comment is read from stdin. If a changelog entry is not provided " -"via \"<\" redirection, 'git commit-tree' will just wait for one to be " -"entered and terminated with ^D." +"which will force all existing `*.h` files to be replaced with their cached " +"copies. If an empty command line implied \"all\", then this would force-" +"refresh everything in the index, which was not the point. But since 'git " +"checkout-index' accepts --stdin it would be faster to use:" msgstr "" -#. type: Title - -#: en/git-commit-tree.txt:104 en/git-show.txt:81 +#. type: delimited block - +#: en/git-checkout-index.txt:95 #, no-wrap -msgid "Discussion" +msgid "$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin\n" msgstr "" #. type: Plain text -#: en/git-commit-tree.txt:111 -msgid "/etc/mailname" +#: en/git-checkout-index.txt:100 +msgid "" +"The `--` is just a good idea when you know the rest will be filenames; it " +"will prevent problems with a filename of, for example, `-a`. Using `--` is " +"probably a good policy in scripts." msgstr "" -#. type: Labeled list -#: en/git-commit-tree.txt:115 en/cmds-plumbingmanipulators.txt:49 +#. type: Title - +#: en/git-checkout-index.txt:103 #, no-wrap -msgid "linkgit:git-write-tree[1]" +msgid "Using --temp or --stage=all" msgstr "" -#. type: Title = -#: en/git-config.txt:2 -#, no-wrap -msgid "git-config(1)" +#. type: Plain text +#: en/git-checkout-index.txt:110 +msgid "" +"When `--temp` is used (or implied by `--stage=all`) 'git checkout-index' " +"will create a temporary file for each index entry being checked out. The " +"index will not be updated with stat information. These options can be " +"useful if the caller needs all stages of all unmerged entries so that the " +"unmerged files can be processed by an external merge tool." msgstr "" #. type: Plain text -#: en/git-config.txt:7 -msgid "git-config - Get and set repository or global options" +#: en/git-checkout-index.txt:114 +msgid "" +"A listing will be written to stdout providing the association of temporary " +"file names to tracked path names. The listing format has two variations:" msgstr "" #. type: Plain text -#: en/git-config.txt:27 -#, no-wrap -msgid "" -"'git config' [<file-option>] [type] [--show-origin] [-z|--null] name [value " -"[value_regex]]\n" -"'git config' [<file-option>] [type] --add name value\n" -"'git config' [<file-option>] [type] --replace-all name value [value_regex]\n" -"'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get name " -"[value_regex]\n" -"'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get-all " -"name [value_regex]\n" -"'git config' [<file-option>] [type] [--show-origin] [-z|--null] " -"[--name-only] --get-regexp name_regex [value_regex]\n" -"'git config' [<file-option>] [type] [-z|--null] --get-urlmatch name URL\n" -"'git config' [<file-option>] --unset name [value_regex]\n" -"'git config' [<file-option>] --unset-all name [value_regex]\n" -"'git config' [<file-option>] --rename-section old_name new_name\n" -"'git config' [<file-option>] --remove-section name\n" -"'git config' [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | " -"--list\n" -"'git config' [<file-option>] --get-color name [default]\n" -"'git config' [<file-option>] --get-colorbool name [stdout-is-tty]\n" -"'git config' [<file-option>] -e | --edit\n" +#: en/git-checkout-index.txt:116 +msgid "tempname TAB path RS" msgstr "" #. type: Plain text -#: en/git-config.txt:33 +#: en/git-checkout-index.txt:121 msgid "" -"You can query/set/replace/unset options with this command. The name is " -"actually the section and the key separated by a dot, and the value will be " -"escaped." -msgstr "" - -#. type: Plain text -#: en/git-config.txt:40 -msgid "" -"Multiple lines can be added to an option by using the `--add` option. If " -"you want to update or unset an option which can occur on multiple lines, a " -"POSIX regexp `value_regex` needs to be given. Only the existing values that " -"match the regexp are updated or unset. If you want to handle the lines that " -"do *not* match the regex, just prepend a single exclamation mark in front " -"(see also <<EXAMPLES>>)." +"The first format is what gets used when `--stage` is omitted or is not `--" +"stage=all`. The field tempname is the temporary file name holding the file " +"content and path is the tracked path name in the index. Only the requested " +"entries are output." msgstr "" #. type: Plain text -#: en/git-config.txt:47 -msgid "" -"The type specifier can be either `--int` or `--bool`, to make 'git config' " -"ensure that the variable(s) are of the given type and convert the value to " -"the canonical form (simple decimal number for int, a \"true\" or \"false\" " -"string for bool), or `--path`, which does some path expansion (see `--path` " -"below). If no type specifier is passed, no checks or transformations are " -"performed on the value." +#: en/git-checkout-index.txt:123 +msgid "stage1temp SP stage2temp SP stage3tmp TAB path RS" msgstr "" #. type: Plain text -#: en/git-config.txt:52 +#: en/git-checkout-index.txt:129 msgid "" -"When reading, the values are read from the system, global and repository " -"local configuration files by default, and options `--system`, `--global`, " -"`--local` and `--file <filename>` can be used to tell the command to read " -"from only that location (see <<FILES>>)." +"The second format is what gets used when `--stage=all`. The three stage " +"temporary fields (stage1temp, stage2temp, stage3temp) list the name of the " +"temporary file if there is a stage entry in the index or `.` if there is no " +"stage entry. Paths which only have a stage 0 entry will always be omitted " +"from the output." msgstr "" #. type: Plain text -#: en/git-config.txt:57 +#: en/git-checkout-index.txt:136 msgid "" -"When writing, the new value is written to the repository local configuration " -"file by default, and options `--system`, `--global`, `--file <filename>` can " -"be used to tell the command to write to that location (you can say `--local` " -"but that is the default)." +"In both formats RS (the record separator) is newline by default but will be " +"the null byte if -z was passed on the command line. The temporary file " +"names are always safe strings; they will never contain directory separators " +"or whitespace characters. The path field is always relative to the current " +"directory and the temporary file names are always relative to the top level " +"directory." msgstr "" #. type: Plain text -#: en/git-config.txt:60 +#: en/git-checkout-index.txt:140 msgid "" -"This command will fail with non-zero status upon error. Some exit codes " -"are:" -msgstr "" - -#. type: Plain text -#: en/git-config.txt:62 -msgid "The section or key is invalid (ret=1)," +"If the object being copied out to a temporary file is a symbolic link the " +"content of the link will be written to a normal file. It is up to the end-" +"user or the Porcelain to make use of this information." msgstr "" -#. type: Plain text -#: en/git-config.txt:63 -msgid "no section or name was provided (ret=2)," +#. type: Labeled list +#: en/git-checkout-index.txt:144 +#, no-wrap +msgid "To update and refresh only the files already checked out" msgstr "" -#. type: Plain text -#: en/git-config.txt:64 -msgid "the config file is invalid (ret=3)," +#. type: delimited block - +#: en/git-checkout-index.txt:148 en/git-update-index.txt:356 +#, no-wrap +msgid "$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh\n" msgstr "" -#. type: Plain text -#: en/git-config.txt:65 -msgid "the config file cannot be written (ret=4)," +#. type: Labeled list +#: en/git-checkout-index.txt:150 +#, no-wrap +msgid "Using 'git checkout-index' to \"export an entire tree\"" msgstr "" #. type: Plain text -#: en/git-config.txt:66 -msgid "you try to unset an option which does not exist (ret=5)," +#: en/git-checkout-index.txt:154 +msgid "" +"The prefix ability basically makes it trivial to use 'git checkout-index' as " +"an \"export as tree\" function. Just read the desired tree into the index, " +"and do:" msgstr "" -#. type: Plain text -#: en/git-config.txt:67 -msgid "you try to unset/set an option for which multiple lines match (ret=5), or" +#. type: delimited block - +#: en/git-checkout-index.txt:157 +#, no-wrap +msgid "$ git checkout-index --prefix=git-export-dir/ -a\n" msgstr "" #. type: Plain text -#: en/git-config.txt:68 -msgid "you try to use an invalid regexp (ret=6)." +#: en/git-checkout-index.txt:161 +msgid "" +"`git checkout-index` will \"export\" the index into the specified directory." msgstr "" #. type: Plain text -#: en/git-config.txt:70 -msgid "On success, the command returns the exit code 0." +#: en/git-checkout-index.txt:165 +msgid "" +"The final \"/\" is important. The exported name is literally just prefixed " +"with the specified string. Contrast this with the following example." msgstr "" #. type: Labeled list -#: en/git-config.txt:74 +#: en/git-checkout-index.txt:166 #, no-wrap -msgid "--replace-all" -msgstr "" - -#. type: Plain text -#: en/git-config.txt:77 -msgid "" -"Default behavior is to replace at most one line. This replaces all lines " -"matching the key (and optionally the value_regex)." +msgid "Export files with a prefix" msgstr "" -#. type: Labeled list -#: en/git-config.txt:78 en/git-update-index.txt:42 +#. type: delimited block - +#: en/git-checkout-index.txt:170 #, no-wrap -msgid "--add" +msgid "$ git checkout-index --prefix=.merged- Makefile\n" msgstr "" #. type: Plain text -#: en/git-config.txt:82 +#: en/git-checkout-index.txt:174 msgid "" -"Adds a new line to the option without altering any existing values. This is " -"the same as providing '^$' as the value_regex in `--replace-all`." +"This will check out the currently cached copy of `Makefile` into the file `." +"merged-Makefile`." msgstr "" -#. type: Labeled list -#: en/git-config.txt:83 +#. type: Title = +#: en/git-checkout.txt:2 #, no-wrap -msgid "--get" +msgid "git-checkout(1)" msgstr "" #. type: Plain text -#: en/git-config.txt:87 -msgid "" -"Get the value for a given key (optionally filtered by a regex matching the " -"value). Returns error code 1 if the key was not found and the last value if " -"multiple key values were found." +#: en/git-checkout.txt:7 +msgid "git-checkout - Switch branches or restore working tree files" msgstr "" -#. type: Labeled list -#: en/git-config.txt:88 +#. type: Plain text +#: en/git-checkout.txt:18 #, no-wrap -msgid "--get-all" +msgid "" +"'git checkout' [-q] [-f] [-m] [<branch>]\n" +"'git checkout' [-q] [-f] [-m] --detach [<branch>]\n" +"'git checkout' [-q] [-f] [-m] [--detach] <commit>\n" +"'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]\n" +"'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...\n" +"'git checkout' [<tree-ish>] [--] <pathspec>...\n" +"'git checkout' (-p|--patch) [<tree-ish>] [--] [<paths>...]\n" msgstr "" #. type: Plain text -#: en/git-config.txt:90 -msgid "Like get, but returns all values for a multi-valued key." +#: en/git-checkout.txt:25 +msgid "" +"Updates files in the working tree to match the version in the index or the " +"specified tree. If no paths are given, 'git checkout' will also update " +"`HEAD` to set the specified branch as the current branch." msgstr "" #. type: Labeled list -#: en/git-config.txt:91 +#: en/git-checkout.txt:26 #, no-wrap -msgid "--get-regexp" +msgid "'git checkout' <branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:97 +#: en/git-checkout.txt:32 msgid "" -"Like --get-all, but interprets the name as a regular expression and writes " -"out the key names. Regular expression matching is currently case-sensitive " -"and done against a canonicalized version of the key in which section and " -"variable names are lowercased, but subsection names are not." -msgstr "" - -#. type: Labeled list -#: en/git-config.txt:98 -#, no-wrap -msgid "--get-urlmatch name URL" +"To prepare for working on <branch>, switch to it by updating the index and " +"the files in the working tree, and by pointing HEAD at the branch. Local " +"modifications to the files in the working tree are kept, so that they can be " +"committed to the <branch>." msgstr "" #. type: Plain text -#: en/git-config.txt:105 +#: en/git-checkout.txt:36 msgid "" -"When given a two-part name section.key, the value for section.<url>.key " -"whose <url> part matches the best to the given URL is returned (if no such " -"key exists, the value for section.key is used as a fallback). When given " -"just the section as name, do so for all the keys in the section and list " -"them. Returns error code 1 if no value is found." +"If <branch> is not found but there does exist a tracking branch in exactly " +"one remote (call it <remote>) with a matching name, treat as equivalent to" msgstr "" -#. type: Labeled list -#: en/git-config.txt:106 +#. type: delimited block - +#: en/git-checkout.txt:39 #, no-wrap -msgid "--global" +msgid "$ git checkout -b <branch> --track <remote>/<branch>\n" msgstr "" #. type: Plain text -#: en/git-config.txt:111 +#: en/git-checkout.txt:49 en/git-worktree.txt:71 msgid "" -"For writing options: write to global `~/.gitconfig` file rather than the " -"repository `.git/config`, write to `$XDG_CONFIG_HOME/git/config` file if " -"this file exists and the `~/.gitconfig` file doesn't." +"If the branch exists in multiple remotes and one of them is named by the " +"`checkout.defaultRemote` configuration variable, we'll use that one for the " +"purposes of disambiguation, even if the `<branch>` isn't unique across all " +"remotes. Set it to e.g. `checkout.defaultRemote=origin` to always checkout " +"remote branches from there if `<branch>` is ambiguous but exists on the " +"'origin' remote. See also `checkout.defaultRemote` in linkgit:git-config[1]." msgstr "" #. type: Plain text -#: en/git-config.txt:114 +#: en/git-checkout.txt:54 msgid "" -"For reading options: read only from global `~/.gitconfig` and from " -"`$XDG_CONFIG_HOME/git/config` rather than from all available files." -msgstr "" - -#. type: Plain text -#: en/git-config.txt:116 en/git-config.txt:126 en/git-config.txt:135 en/git-config.txt:292 -msgid "See also <<FILES>>." +"You could omit <branch>, in which case the command degenerates to \"check " +"out the current branch\", which is a glorified no-op with rather expensive " +"side-effects to show only the tracking information, if exists, for the " +"current branch." msgstr "" #. type: Labeled list -#: en/git-config.txt:117 +#: en/git-checkout.txt:55 #, no-wrap -msgid "--system" +msgid "'git checkout' -b|-B <new_branch> [<start point>]" msgstr "" #. type: Plain text -#: en/git-config.txt:121 +#: en/git-checkout.txt:63 msgid "" -"For writing options: write to system-wide `$(prefix)/etc/gitconfig` rather " -"than the repository `.git/config`." +"Specifying `-b` causes a new branch to be created as if linkgit:git-" +"branch[1] were called and then checked out. In this case you can use the `--" +"track` or `--no-track` options, which will be passed to 'git branch'. As a " +"convenience, `--track` without `-b` implies branch creation; see the " +"description of `--track` below." msgstr "" #. type: Plain text -#: en/git-config.txt:124 +#: en/git-checkout.txt:66 msgid "" -"For reading options: read only from system-wide `$(prefix)/etc/gitconfig` " -"rather than from all available files." +"If `-B` is given, <new_branch> is created if it doesn't exist; otherwise, it " +"is reset. This is the transactional equivalent of" msgstr "" -#. type: Plain text -#: en/git-config.txt:130 +#. type: delimited block - +#: en/git-checkout.txt:70 +#, no-wrap msgid "" -"For writing options: write to the repository `.git/config` file. This " -"is\tthe default behavior." +"$ git branch -f <branch> [<start point>]\n" +"$ git checkout <branch>\n" msgstr "" #. type: Plain text -#: en/git-config.txt:133 +#: en/git-checkout.txt:74 msgid "" -"For reading options: read only from the repository `.git/config` rather than " -"from all available files." +"that is to say, the branch is not reset/created unless \"git checkout\" is " +"successful." msgstr "" #. type: Labeled list -#: en/git-config.txt:136 +#: en/git-checkout.txt:75 #, no-wrap -msgid "-f config-file" +msgid "'git checkout' --detach [<branch>]" msgstr "" #. type: Labeled list -#: en/git-config.txt:137 +#: en/git-checkout.txt:76 #, no-wrap -msgid "--file config-file" +msgid "'git checkout' [--detach] <commit>" msgstr "" #. type: Plain text -#: en/git-config.txt:139 -msgid "Use the given config file instead of the one specified by GIT_CONFIG." +#: en/git-checkout.txt:84 +msgid "" +"Prepare to work on top of <commit>, by detaching HEAD at it (see \"DETACHED " +"HEAD\" section), and updating the index and the files in the working tree. " +"Local modifications to the files in the working tree are kept, so that the " +"resulting working tree will be the state recorded in the commit plus the " +"local modifications." msgstr "" -#. type: Labeled list -#: en/git-config.txt:140 -#, no-wrap -msgid "--blob blob" +#. type: Plain text +#: en/git-checkout.txt:88 +msgid "" +"When the <commit> argument is a branch name, the `--detach` option can be " +"used to detach HEAD at the tip of the branch (`git checkout <branch>` would " +"check out that branch without detaching HEAD)." msgstr "" #. type: Plain text -#: en/git-config.txt:146 -msgid "" -"Similar to `--file` but use the given blob instead of a file. E.g. you can " -"use 'master:.gitmodules' to read values from the file '.gitmodules' in the " -"master branch. See \"SPECIFYING REVISIONS\" section in " -"linkgit:gitrevisions[7] for a more complete list of ways to spell blob " -"names." +#: en/git-checkout.txt:90 +msgid "Omitting <branch> detaches HEAD at the tip of the current branch." msgstr "" #. type: Labeled list -#: en/git-config.txt:147 +#: en/git-checkout.txt:91 #, no-wrap -msgid "--remove-section" +msgid "'git checkout' [<tree-ish>] [--] <pathspec>..." msgstr "" #. type: Plain text -#: en/git-config.txt:149 -msgid "Remove the given section from the configuration file." +#: en/git-checkout.txt:98 +msgid "" +"Overwrite paths in the working tree by replacing with the contents in the " +"index or in the <tree-ish> (most often a commit). When a <tree-ish> is " +"given, the paths that match the <pathspec> are updated both in the index and " +"in the working tree." +msgstr "" + +#. type: Plain text +#: en/git-checkout.txt:106 +msgid "" +"The index may contain unmerged entries because of a previous failed merge. " +"By default, if you try to check out such an entry from the index, the " +"checkout operation will fail and nothing will be checked out. Using `-f` " +"will ignore these unmerged entries. The contents from a specific side of " +"the merge can be checked out of the index by using `--ours` or `--theirs`. " +"With `-m`, changes made to the working tree file can be discarded to re-" +"create the original conflicted merge result." msgstr "" #. type: Labeled list -#: en/git-config.txt:150 +#: en/git-checkout.txt:107 #, no-wrap -msgid "--rename-section" +msgid "'git checkout' (-p|--patch) [<tree-ish>] [--] [<pathspec>...]" msgstr "" #. type: Plain text -#: en/git-config.txt:152 -msgid "Rename the given section to a new name." +#: en/git-checkout.txt:113 +msgid "" +"This is similar to the \"check out paths to the working tree from either the " +"index or from a tree-ish\" mode described above, but lets you use the " +"interactive interface to show the \"diff\" output and choose which hunks to " +"use in the result. See below for the description of `--patch` option." msgstr "" -#. type: Labeled list -#: en/git-config.txt:153 -#, no-wrap -msgid "--unset" +#. type: Plain text +#: en/git-checkout.txt:120 +msgid "Quiet, suppress feedback messages." msgstr "" #. type: Plain text -#: en/git-config.txt:155 -msgid "Remove the line matching the key from config file." +#: en/git-checkout.txt:126 +msgid "" +"Progress status is reported on the standard error stream by default when it " +"is attached to a terminal, unless `--quiet` is specified. This flag enables " +"progress reporting even if not attached to a terminal, regardless of `--" +"quiet`." msgstr "" -#. type: Labeled list -#: en/git-config.txt:156 -#, no-wrap -msgid "--unset-all" +#. type: Plain text +#: en/git-checkout.txt:132 +msgid "" +"When switching branches, proceed even if the index or the working tree " +"differs from HEAD. This is used to throw away local changes." msgstr "" #. type: Plain text -#: en/git-config.txt:158 -msgid "Remove all lines matching the key from config file." +#: en/git-checkout.txt:135 +msgid "" +"When checking out paths from the index, do not fail upon unmerged entries; " +"instead, unmerged entries are ignored." msgstr "" -#. type: Plain text -#: en/git-config.txt:162 -msgid "List all variables set in config file, along with their values." +#. type: Labeled list +#: en/git-checkout.txt:136 en/git-merge-file.txt:73 +#, no-wrap +msgid "--ours" msgstr "" #. type: Labeled list -#: en/git-config.txt:163 +#: en/git-checkout.txt:137 en/git-merge-file.txt:74 #, no-wrap -msgid "--bool" +msgid "--theirs" msgstr "" #. type: Plain text -#: en/git-config.txt:165 -msgid "'git config' will ensure that the output is \"true\" or \"false\"" +#: en/git-checkout.txt:140 +msgid "" +"When checking out paths from the index, check out stage #2 ('ours') or #3 " +"('theirs') for unmerged paths." msgstr "" -#. type: Labeled list -#: en/git-config.txt:166 -#, no-wrap -msgid "--int" +#. type: Plain text +#: en/git-checkout.txt:145 +msgid "" +"Note that during `git rebase` and `git pull --rebase`, 'ours' and 'theirs' " +"may appear swapped; `--ours` gives the version from the branch the changes " +"are rebased onto, while `--theirs` gives the version from the branch that " +"holds your work that is being rebased." msgstr "" #. type: Plain text -#: en/git-config.txt:171 +#: en/git-checkout.txt:155 msgid "" -"'git config' will ensure that the output is a simple decimal number. An " -"optional value suffix of 'k', 'm', or 'g' in the config file will cause the " -"value to be multiplied by 1024, 1048576, or 1073741824 prior to output." +"This is because `rebase` is used in a workflow that treats the history at " +"the remote as the shared canonical one, and treats the work done on the " +"branch you are rebasing as the third-party work to be integrated, and you " +"are temporarily assuming the role of the keeper of the canonical history " +"during the rebase. As the keeper of the canonical history, you need to view " +"the history from the remote as `ours` (i.e. \"our shared canonical history" +"\"), while what you did on your side branch as `theirs` (i.e. \"one " +"contributor's work on top of it\")." msgstr "" #. type: Labeled list -#: en/git-config.txt:172 +#: en/git-checkout.txt:156 #, no-wrap -msgid "--bool-or-int" +msgid "-b <new_branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:175 +#: en/git-checkout.txt:159 msgid "" -"'git config' will ensure that the output matches the format of either --bool " -"or --int, as described above." +"Create a new branch named <new_branch> and start it at <start_point>; see " +"linkgit:git-branch[1] for details." msgstr "" #. type: Labeled list -#: en/git-config.txt:176 en/git-hash-object.txt:41 +#: en/git-checkout.txt:160 #, no-wrap -msgid "--path" +msgid "-B <new_branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:182 +#: en/git-checkout.txt:165 msgid "" -"'git-config' will expand leading '{tilde}' to the value of '$HOME', and " -"'{tilde}user' to the home directory for the specified user. This option has " -"no effect when setting the value (but you can use 'git config bla {tilde}/' " -"from the command line to let your shell do the expansion)." +"Creates the branch <new_branch> and start it at <start_point>; if it already " +"exists, then reset it to <start_point>. This is equivalent to running \"git " +"branch\" with \"-f\"; see linkgit:git-branch[1] for details." msgstr "" #. type: Plain text -#: en/git-config.txt:191 +#: en/git-checkout.txt:170 msgid "" -"For all options that output values and/or keys, always end values with the " -"null character (instead of a newline). Use newline instead as a delimiter " -"between key and value. This allows for secure parsing of the output without " -"getting confused e.g. by values that contain line breaks." +"When creating a new branch, set up \"upstream\" configuration. See \"--track" +"\" in linkgit:git-branch[1] for details." msgstr "" -#. type: Labeled list -#: en/git-config.txt:192 en/git-grep.txt:178 en/git-ls-tree.txt:59 en/git-name-rev.txt:51 en/diff-options.txt:199 -#, no-wrap -msgid "--name-only" +#. type: Plain text +#: en/git-checkout.txt:180 +msgid "" +"If no `-b` option is given, the name of the new branch will be derived from " +"the remote-tracking branch, by looking at the local part of the refspec " +"configured for the corresponding remote, and then stripping the initial part " +"up to the \"*\". This would tell us to use \"hack\" as the local branch " +"when branching off of \"origin/hack\" (or \"remotes/origin/hack\", or even " +"\"refs/remotes/origin/hack\"). If the given name has no slash, or the above " +"guessing results in an empty name, the guessing is aborted. You can " +"explicitly give a name with `-b` in such a case." msgstr "" #. type: Plain text -#: en/git-config.txt:195 -msgid "Output only the names of config variables for `--list` or `--get-regexp`." +#: en/git-checkout.txt:188 +msgid "Create the new branch's reflog; see linkgit:git-branch[1] for details." msgstr "" #. type: Labeled list -#: en/git-config.txt:196 +#: en/git-checkout.txt:189 en/git-daemon.txt:156 en/git-worktree.txt:143 #, no-wrap -msgid "--show-origin" +msgid "--detach" msgstr "" #. type: Plain text -#: en/git-config.txt:201 +#: en/git-checkout.txt:195 msgid "" -"Augment the output of all queried config options with the origin type (file, " -"standard input, blob, command line) and the actual origin (config file path, " -"ref, or blob id if applicable)." +"Rather than checking out a branch to work on it, check out a commit for " +"inspection and discardable experiments. This is the default behavior of " +"\"git checkout <commit>\" when <commit> is not a branch name. See the " +"\"DETACHED HEAD\" section below for details." msgstr "" #. type: Labeled list -#: en/git-config.txt:202 +#: en/git-checkout.txt:196 #, no-wrap -msgid "--get-colorbool name [stdout-is-tty]" +msgid "--orphan <new_branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:212 +#: en/git-checkout.txt:202 msgid "" -"Find the color setting for `name` (e.g. `color.diff`) and output \"true\" or " -"\"false\". `stdout-is-tty` should be either \"true\" or \"false\", and is " -"taken into account when configuration says \"auto\". If `stdout-is-tty` is " -"missing, then checks the standard output of the command itself, and exits " -"with status 0 if color is to be used, or exits with status 1 otherwise. " -"When the color setting for `name` is undefined, the command uses `color.ui` " -"as fallback." +"Create a new 'orphan' branch, named <new_branch>, started from <start_point> " +"and switch to it. The first commit made on this new branch will have no " +"parents and it will be the root of a new history totally disconnected from " +"all the other branches and commits." msgstr "" -#. type: Labeled list -#: en/git-config.txt:213 -#, no-wrap -msgid "--get-color name [default]" +#. type: Plain text +#: en/git-checkout.txt:207 +msgid "" +"The index and the working tree are adjusted as if you had previously run " +"\"git checkout <start_point>\". This allows you to start a new history that " +"records a set of paths similar to <start_point> by easily running \"git " +"commit -a\" to make the root commit." msgstr "" #. type: Plain text -#: en/git-config.txt:219 +#: en/git-checkout.txt:213 msgid "" -"Find the color configured for `name` (e.g. `color.diff.new`) and output it " -"as the ANSI color escape sequence to the standard output. The optional " -"`default` parameter is used instead, if there is no color configured for " -"`name`." +"This can be useful when you want to publish the tree from a commit without " +"exposing its full history. You might want to do this to publish an open " +"source branch of a project whose current tree is \"clean\", but whose full " +"history contains proprietary or otherwise encumbered bits of code." msgstr "" #. type: Plain text -#: en/git-config.txt:224 +#: en/git-checkout.txt:220 msgid "" -"Opens an editor to modify the specified config file; either `--system`, " -"`--global`, or repository (default)." +"If you want to start a disconnected history that records a set of paths that " +"is totally different from the one of <start_point>, then you should clear " +"the index and the working tree right after creating the orphan branch by " +"running \"git rm -rf .\" from the top level of the working tree. Afterwards " +"you will be ready to prepare your new files, repopulating the working tree, " +"by copying them from elsewhere, extracting a tarball, etc." msgstr "" #. type: Labeled list -#: en/git-config.txt:225 +#: en/git-checkout.txt:221 #, no-wrap -msgid "--[no-]includes" +msgid "--ignore-skip-worktree-bits" msgstr "" #. type: Plain text -#: en/git-config.txt:230 +#: en/git-checkout.txt:226 msgid "" -"Respect `include.*` directives in config files when looking up " -"values. Defaults to `off` when a specific file is given (e.g., using " -"`--file`, `--global`, etc) and `on` when searching all config files." +"In sparse checkout mode, `git checkout -- <paths>` would update only entries " +"matched by <paths> and sparse patterns in $GIT_DIR/info/sparse-checkout. " +"This option ignores the sparse patterns and adds back any files in <paths>." msgstr "" -#. type: Plain text -#: en/git-config.txt:237 -msgid "" -"If not set explicitly with `--file`, there are four files where 'git config' " -"will search for configuration options:" +#. type: Labeled list +#: en/git-checkout.txt:228 en/git-rebase.txt:268 en/git-rebase.txt:523 +#: en/git-reset.txt:71 en/git-submodule.txt:342 en/git-svn.txt:676 +#: en/rev-list-options.txt:289 +#, no-wrap +msgid "--merge" msgstr "" #. type: Plain text -#: en/git-config.txt:240 -#, no-wrap +#: en/git-checkout.txt:237 msgid "" -"$(prefix)/etc/gitconfig::\n" -"\tSystem-wide configuration file.\n" +"When switching branches, if you have local modifications to one or more " +"files that are different between the current branch and the branch to which " +"you are switching, the command refuses to switch branches in order to " +"preserve your modifications in context. However, with this option, a three-" +"way merge between the current branch, your working tree contents, and the " +"new branch is done, and you will be on the new branch." msgstr "" #. type: Plain text -#: en/git-config.txt:248 -#, no-wrap +#: en/git-checkout.txt:242 msgid "" -"$XDG_CONFIG_HOME/git/config::\n" -"\tSecond user-specific configuration file. If $XDG_CONFIG_HOME is not set\n" -"\tor empty, `$HOME/.config/git/config` will be used. Any single-valued\n" -"\tvariable set in this file will be overwritten by whatever is in\n" -"\t`~/.gitconfig`. It is a good idea not to create this file if\n" -"\tyou sometimes use older versions of Git, as support for this\n" -"\tfile was added fairly recently.\n" +"When a merge conflict happens, the index entries for conflicting paths are " +"left unmerged, and you need to resolve the conflicts and mark the resolved " +"paths with `git add` (or `git rm` if the merge should result in deletion of " +"the path)." msgstr "" #. type: Plain text -#: en/git-config.txt:252 -#, no-wrap +#: en/git-checkout.txt:245 msgid "" -"~/.gitconfig::\n" -"\tUser-specific configuration file. Also called \"global\"\n" -"\tconfiguration file.\n" +"When checking out paths from the index, this option lets you recreate the " +"conflicted merge in the specified paths." msgstr "" -#. type: Plain text -#: en/git-config.txt:255 +#. type: Labeled list +#: en/git-checkout.txt:246 #, no-wrap -msgid "" -"$GIT_DIR/config::\n" -"\tRepository specific configuration file.\n" +msgid "--conflict=<style>" msgstr "" #. type: Plain text -#: en/git-config.txt:261 +#: en/git-checkout.txt:252 msgid "" -"If no further options are given, all reading options will read all of these " -"files that are available. If the global or the system-wide configuration " -"file are not available they will be ignored. If the repository configuration " -"file is not available or readable, 'git config' will exit with a non-zero " -"error code. However, in neither case will an error message be issued." +"The same as --merge option above, but changes the way the conflicting hunks " +"are presented, overriding the merge.conflictStyle configuration variable. " +"Possible values are \"merge\" (default) and \"diff3\" (in addition to what " +"is shown by \"merge\" style, shows the original contents)." msgstr "" #. type: Plain text -#: en/git-config.txt:265 +#: en/git-checkout.txt:259 msgid "" -"The files are read in the order given above, with last value found taking " -"precedence over values read earlier. When multiple values are taken then " -"all values of a key from all files will be used." +"Interactively select hunks in the difference between the <tree-ish> (or the " +"index, if unspecified) and the working tree. The chosen hunks are then " +"applied in reverse to the working tree (and if a <tree-ish> was specified, " +"the index)." msgstr "" #. type: Plain text -#: en/git-config.txt:268 +#: en/git-checkout.txt:263 msgid "" -"You may override individual configuration parameters when running any git " -"command by using the `-c` option. See linkgit:git[1] for details." +"This means that you can use `git checkout -p` to selectively discard edits " +"from your current working tree. See the ``Interactive Mode'' section of " +"linkgit:git-add[1] to learn how to operate the `--patch` mode." msgstr "" -#. type: Plain text -#: en/git-config.txt:272 -msgid "" -"All writing options will per default write to the repository specific " -"configuration file. Note that this also affects options like `--replace-all` " -"and `--unset`. *'git config' will only ever change one file at a time*." +#. type: Labeled list +#: en/git-checkout.txt:264 +#, no-wrap +msgid "--ignore-other-worktrees" msgstr "" #. type: Plain text -#: en/git-config.txt:277 +#: en/git-checkout.txt:269 msgid "" -"You can override these rules either by command-line options or by " -"environment variables. The `--global` and the `--system` options will limit " -"the file used to the global or system-wide file respectively. The " -"`GIT_CONFIG` environment variable has a similar effect, but you can specify " -"any filename you want." +"`git checkout` refuses when the wanted ref is already checked out by another " +"worktree. This option makes it check the ref out anyway. In other words, the " +"ref can be held by more than one worktree." msgstr "" -#. type: Title - -#: en/git-config.txt:280 en/git-cvsserver.txt:310 en/git-daemon.txt:310 en/git-http-backend.txt:243 en/git-notes.txt:373 +#. type: Labeled list +#: en/git-checkout.txt:270 en/git-read-tree.txt:117 #, no-wrap -msgid "ENVIRONMENT" +msgid "--[no-]recurse-submodules" +msgstr "" + +#. type: Plain text +#: en/git-checkout.txt:278 +msgid "" +"Using --recurse-submodules will update the content of all initialized " +"submodules according to the commit recorded in the superproject. If local " +"modifications in a submodule would be overwritten the checkout will fail " +"unless `-f` is used. If nothing (or --no-recurse-submodules) is used, the " +"work trees of submodules will not be updated. Just like linkgit:git-" +"submodule[1], this will detach the submodules HEAD." msgstr "" #. type: Labeled list -#: en/git-config.txt:282 +#: en/git-checkout.txt:279 #, no-wrap -msgid "GIT_CONFIG" +msgid "--no-guess" msgstr "" #. type: Plain text -#: en/git-config.txt:286 +#: en/git-checkout.txt:282 msgid "" -"Take the configuration from the given file instead of .git/config. Using " -"the \"--global\" option forces this to ~/.gitconfig. Using the \"--system\" " -"option forces this to $(prefix)/etc/gitconfig." +"Do not attempt to create a branch if a remote tracking branch of the same " +"name exists." msgstr "" #. type: Labeled list -#: en/git-config.txt:287 +#: en/git-checkout.txt:283 en/git-rebase.txt:225 #, no-wrap -msgid "GIT_CONFIG_NOSYSTEM" +msgid "<branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:290 +#: en/git-checkout.txt:289 msgid "" -"Whether to skip reading settings from the system-wide " -"$(prefix)/etc/gitconfig file. See linkgit:git[1] for details." +"Branch to checkout; if it refers to a branch (i.e., a name that, when " +"prepended with \"refs/heads/\", is a valid ref), then that branch is checked " +"out. Otherwise, if it refers to a valid commit, your HEAD becomes \"detached" +"\" and you are no longer on any branch (see below for details)." msgstr "" #. type: Plain text -#: en/git-config.txt:299 -msgid "Given a .git/config like this:" +#: en/git-checkout.txt:293 +msgid "" +"You can use the `\"@{-N}\"` syntax to refer to the N-th last branch/commit " +"checked out using \"git checkout\" operation. You may also specify `-` which " +"is synonymous to `\"@{-1}`." msgstr "" #. type: Plain text -#: en/git-config.txt:305 -#, no-wrap +#: en/git-checkout.txt:297 msgid "" -"\t#\n" -"\t# This is the config file, and\n" -"\t# a '#' or ';' character indicates\n" -"\t# a comment\n" -"\t#\n" +"As a special case, you may use `\"A...B\"` as a shortcut for the merge base " +"of `A` and `B` if there is exactly one merge base. You can leave out at most " +"one of `A` and `B`, in which case it defaults to `HEAD`." msgstr "" -#. type: Plain text -#: en/git-config.txt:310 +#. type: Labeled list +#: en/git-checkout.txt:298 #, no-wrap -msgid "" -"\t; core variables\n" -"\t[core]\n" -"\t\t; Don't trust file modes\n" -"\t\tfilemode = false\n" +msgid "<new_branch>" msgstr "" #. type: Plain text -#: en/git-config.txt:315 -#, no-wrap -msgid "" -"\t; Our diff algorithm\n" -"\t[diff]\n" -"\t\texternal = /usr/local/bin/diff-wrapper\n" -"\t\trenames = true\n" +#: en/git-checkout.txt:300 +msgid "Name for the new branch." msgstr "" -#. type: Plain text -#: en/git-config.txt:320 +#. type: Labeled list +#: en/git-checkout.txt:301 #, no-wrap -msgid "" -"\t; Proxy settings\n" -"\t[core]\n" -"\t\tgitproxy=proxy-command for kernel.org\n" -"\t\tgitproxy=default-proxy ; for all the rest\n" +msgid "<start_point>" msgstr "" #. type: Plain text -#: en/git-config.txt:327 -#, no-wrap +#: en/git-checkout.txt:304 msgid "" -"\t; HTTP\n" -"\t[http]\n" -"\t\tsslVerify\n" -"\t[http \"https://weak.example.com\"]\n" -"\t\tsslVerify = false\n" -"\t\tcookieFile = /tmp/cookie.txt\n" +"The name of a commit at which to start the new branch; see linkgit:git-" +"branch[1] for details. Defaults to HEAD." msgstr "" #. type: Plain text -#: en/git-config.txt:329 -msgid "you can set the filemode to true with" +#: en/git-checkout.txt:308 +msgid "" +"Tree to checkout from (when paths are given). If not specified, the index " +"will be used." msgstr "" -#. type: delimited block - -#: en/git-config.txt:332 +#. type: Title - +#: en/git-checkout.txt:312 #, no-wrap -msgid "% git config core.filemode true\n" +msgid "DETACHED HEAD" msgstr "" #. type: Plain text -#: en/git-config.txt:337 +#: en/git-checkout.txt:316 msgid "" -"The hypothetical proxy command entries actually have a postfix to discern " -"what URL they apply to. Here is how to change the entry for kernel.org to " -"\"ssh\"." +"HEAD normally refers to a named branch (e.g. 'master'). Meanwhile, each " +"branch refers to a specific commit. Let's look at a repo with three commits, " +"one of them tagged, and with branch 'master' checked out:" msgstr "" #. type: delimited block - -#: en/git-config.txt:340 +#: en/git-checkout.txt:325 #, no-wrap -msgid "% git config core.gitproxy '\"ssh\" for kernel.org' 'for kernel.org$'\n" -msgstr "" - -#. type: Plain text -#: en/git-config.txt:343 -msgid "This makes sure that only the key/value pair for kernel.org is replaced." +msgid "" +" HEAD (refers to branch 'master')\n" +" |\n" +" v\n" +"a---b---c branch 'master' (refers to commit 'c')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:345 -msgid "To delete the entry for renames, do" +#: en/git-checkout.txt:332 +msgid "" +"When a commit is created in this state, the branch is updated to refer to " +"the new commit. Specifically, 'git commit' creates a new commit 'd', whose " +"parent is commit 'c', and then updates branch 'master' to refer to new " +"commit 'd'. HEAD still refers to branch 'master' and so indirectly now " +"refers to commit 'd':" msgstr "" #. type: delimited block - -#: en/git-config.txt:348 +#: en/git-checkout.txt:335 en/git-checkout.txt:370 en/git-checkout.txt:387 #, no-wrap -msgid "% git config --unset diff.renames\n" +msgid "$ edit; git add; git commit\n" msgstr "" -#. type: Plain text -#: en/git-config.txt:352 +#. type: delimited block - +#: en/git-checkout.txt:343 +#, no-wrap msgid "" -"If you want to delete an entry for a multivar (like core.gitproxy above), " -"you have to provide a regex matching the value of exactly one line." +" HEAD (refers to branch 'master')\n" +" |\n" +" v\n" +"a---b---c---d branch 'master' (refers to commit 'd')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:354 -msgid "To query the value for a given key, do" +#: en/git-checkout.txt:349 +msgid "" +"It is sometimes useful to be able to checkout a commit that is not at the " +"tip of any named branch, or even to create a new commit that is not " +"referenced by a named branch. Let's look at what happens when we checkout " +"commit 'b' (here we show two ways this may be done):" msgstr "" #. type: delimited block - -#: en/git-config.txt:357 +#: en/git-checkout.txt:353 #, no-wrap -msgid "% git config --get core.filemode\n" -msgstr "" - -#. type: Plain text -#: en/git-config.txt:360 en/git-gui.txt:120 en/git-merge-index.txt:64 -msgid "or" +msgid "" +"$ git checkout v2.0 # or\n" +"$ git checkout master^^\n" msgstr "" #. type: delimited block - -#: en/git-config.txt:363 +#: en/git-checkout.txt:361 #, no-wrap -msgid "% git config core.filemode\n" +msgid "" +" HEAD (refers to commit 'b')\n" +" |\n" +" v\n" +"a---b---c---d branch 'master' (refers to commit 'd')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:366 -msgid "or, to query a multivar:" +#: en/git-checkout.txt:367 +msgid "" +"Notice that regardless of which checkout command we use, HEAD now refers " +"directly to commit 'b'. This is known as being in detached HEAD state. It " +"means simply that HEAD refers to a specific commit, as opposed to referring " +"to a named branch. Let's see what happens when we create a commit:" msgstr "" #. type: delimited block - -#: en/git-config.txt:369 +#: en/git-checkout.txt:380 #, no-wrap -msgid "% git config --get core.gitproxy \"for kernel.org$\"\n" +msgid "" +" HEAD (refers to commit 'e')\n" +" |\n" +" v\n" +" e\n" +" /\n" +"a---b---c---d branch 'master' (refers to commit 'd')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:372 -msgid "If you want to know all the values for a multivar, do:" +#: en/git-checkout.txt:384 +msgid "" +"There is now a new commit 'e', but it is referenced only by HEAD. We can of " +"course add yet another commit in this state:" msgstr "" #. type: delimited block - -#: en/git-config.txt:375 +#: en/git-checkout.txt:397 #, no-wrap -msgid "% git config --get-all core.gitproxy\n" +msgid "" +"\t HEAD (refers to commit 'f')\n" +"\t |\n" +"\t v\n" +" e---f\n" +" /\n" +"a---b---c---d branch 'master' (refers to commit 'd')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:379 +#: en/git-checkout.txt:401 msgid "" -"If you like to live dangerously, you can replace *all* core.gitproxy by a " -"new one with" +"In fact, we can perform all the normal Git operations. But, let's look at " +"what happens when we then checkout master:" msgstr "" #. type: delimited block - -#: en/git-config.txt:382 +#: en/git-checkout.txt:404 #, no-wrap -msgid "% git config --replace-all core.gitproxy ssh\n" -msgstr "" - -#. type: Plain text -#: en/git-config.txt:386 -msgid "" -"However, if you really only want to replace the line for the default proxy, " -"i.e. the one without a \"for ...\" postfix, do something like this:" +msgid "$ git checkout master\n" msgstr "" #. type: delimited block - -#: en/git-config.txt:389 +#: en/git-checkout.txt:412 #, no-wrap -msgid "% git config core.gitproxy ssh '! for '\n" +msgid "" +" HEAD (refers to branch 'master')\n" +" e---f |\n" +" / v\n" +"a---b---c---d branch 'master' (refers to commit 'd')\n" +" ^\n" +" |\n" +" tag 'v2.0' (refers to commit 'b')\n" msgstr "" #. type: Plain text -#: en/git-config.txt:392 -msgid "To actually match only values with an exclamation mark, you have to" +#: en/git-checkout.txt:419 +msgid "" +"It is important to realize that at this point nothing refers to commit 'f'. " +"Eventually commit 'f' (and by extension commit 'e') will be deleted by the " +"routine Git garbage collection process, unless we create a reference before " +"that happens. If we have not yet moved away from commit 'f', any of these " +"will create a reference to it:" msgstr "" #. type: delimited block - -#: en/git-config.txt:395 +#: en/git-checkout.txt:424 #, no-wrap -msgid "% git config section.key value '[!]'\n" +msgid "" +"$ git checkout -b foo <1>\n" +"$ git branch foo <2>\n" +"$ git tag foo <3>\n" msgstr "" #. type: Plain text -#: en/git-config.txt:398 -msgid "To add a new proxy, without altering any of the existing ones, use" -msgstr "" - -#. type: delimited block - -#: en/git-config.txt:401 -#, no-wrap -msgid "% git config --add core.gitproxy '\"proxy-command\" for example.com'\n" +#: en/git-checkout.txt:429 +msgid "" +"creates a new branch 'foo', which refers to commit 'f', and then updates " +"HEAD to refer to branch 'foo'. In other words, we'll no longer be in " +"detached HEAD state after this command." msgstr "" #. type: Plain text -#: en/git-config.txt:405 -msgid "An example to use customized color from the configuration in your script:" +#: en/git-checkout.txt:432 +msgid "" +"similarly creates a new branch 'foo', which refers to commit 'f', but leaves " +"HEAD detached." msgstr "" -#. type: delimited block - -#: en/git-config.txt:411 -#, no-wrap +#. type: Plain text +#: en/git-checkout.txt:435 msgid "" -"#!/bin/sh\n" -"WS=$(git config --get-color color.diff.whitespace \"blue reverse\")\n" -"RESET=$(git config --get-color \"\" \"reset\")\n" -"echo \"${WS}your whitespace color or blue reverse${RESET}\"\n" +"creates a new tag 'foo', which refers to commit 'f', leaving HEAD detached." msgstr "" #. type: Plain text -#: en/git-config.txt:415 +#: en/git-checkout.txt:440 msgid "" -"For URLs in `https://weak.example.com`, `http.sslVerify` is set to false, " -"while it is set to `true` for all others:" +"If we have moved away from commit 'f', then we must first recover its object " +"name (typically by using git reflog), and then we can create a reference to " +"it. For example, to see the last two commits to which HEAD referred, we can " +"use either of these commands:" msgstr "" #. type: delimited block - -#: en/git-config.txt:424 +#: en/git-checkout.txt:444 #, no-wrap msgid "" -"% git config --bool --get-urlmatch http.sslverify https://good.example.com\n" -"true\n" -"% git config --bool --get-urlmatch http.sslverify https://weak.example.com\n" -"false\n" -"% git config --get-urlmatch http https://weak.example.com\n" -"http.cookieFile /tmp/cookie.txt\n" -"http.sslverify false\n" +"$ git reflog -2 HEAD # or\n" +"$ git log -g -2 HEAD\n" msgstr "" -#. type: Title = -#: en/git-count-objects.txt:2 +#. type: Title - +#: en/git-checkout.txt:447 #, no-wrap -msgid "git-count-objects(1)" +msgid "ARGUMENT DISAMBIGUATION" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:7 +#: en/git-checkout.txt:457 msgid "" -"git-count-objects - Count unpacked number of objects and their disk " -"consumption" +"When there is only one argument given and it is not `--` (e.g. \"git " +"checkout abc\"), and when the argument is both a valid `<tree-ish>` (e.g. a " +"branch \"abc\" exists) and a valid `<pathspec>` (e.g. a file or a directory " +"whose name is \"abc\" exists), Git would usually ask you to disambiguate. " +"Because checking out a branch is so common an operation, however, \"git " +"checkout abc\" takes \"abc\" as a `<tree-ish>` in such a situation. Use " +"`git checkout -- <pathspec>` if you want to checkout these paths out of the " +"index." msgstr "" #. type: Plain text -#: en/git-count-objects.txt:12 -#, no-wrap -msgid "'git count-objects' [-v] [-H | --human-readable]\n" +#: en/git-checkout.txt:464 +msgid "" +"The following sequence checks out the `master` branch, reverts the " +"`Makefile` to two revisions back, deletes hello.c by mistake, and gets it " +"back from the index." msgstr "" -#. type: Plain text -#: en/git-count-objects.txt:17 +#. type: delimited block - +#: en/git-checkout.txt:470 +#, no-wrap msgid "" -"This counts the number of unpacked object files and disk space consumed by " -"them, to help you decide when it is a good time to repack." +"$ git checkout master <1>\n" +"$ git checkout master~2 Makefile <2>\n" +"$ rm -f hello.c\n" +"$ git checkout hello.c <3>\n" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:24 -msgid "Report in more detail:" +#: en/git-checkout.txt:473 +msgid "switch branch" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:26 -msgid "count: the number of loose objects" +#: en/git-checkout.txt:474 +msgid "take a file out of another commit" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:28 -msgid "size: disk space consumed by loose objects, in KiB (unless -H is specified)" +#: en/git-checkout.txt:475 +msgid "restore hello.c from the index" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:30 -msgid "in-pack: the number of in-pack objects" +#: en/git-checkout.txt:478 +msgid "" +"If you want to check out _all_ C source files out of the index, you can say" msgstr "" -#. type: Plain text -#: en/git-count-objects.txt:32 -msgid "size-pack: disk space consumed by the packs, in KiB (unless -H is specified)" +#. type: delimited block - +#: en/git-checkout.txt:481 +#, no-wrap +msgid "$ git checkout -- '*.c'\n" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:35 +#: en/git-checkout.txt:487 msgid "" -"prune-packable: the number of loose objects that are also present in the " -"packs. These objects could be pruned using `git prune-packed`." +"Note the quotes around `*.c`. The file `hello.c` will also be checked out, " +"even though it is no longer in the working tree, because the file globbing " +"is used to match entries in the index (not in the working tree by the shell)." msgstr "" #. type: Plain text -#: en/git-count-objects.txt:38 +#: en/git-checkout.txt:491 msgid "" -"garbage: the number of files in object database that are neither valid loose " -"objects nor valid packs" +"If you have an unfortunate branch that is named `hello.c`, this step would " +"be confused as an instruction to switch to that branch. You should instead " +"write:" msgstr "" -#. type: Plain text -#: en/git-count-objects.txt:41 -msgid "" -"size-garbage: disk space consumed by garbage files, in KiB (unless -H is " -"specified)" +#. type: delimited block - +#: en/git-checkout.txt:494 +#, no-wrap +msgid "$ git checkout -- hello.c\n" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:46 +#: en/git-checkout.txt:498 msgid "" -"alternate: absolute path of alternate object databases; may appear multiple " -"times, one line per path. Note that if the path contains non-printable " -"characters, it may be surrounded by double-quotes and contain C-style " -"backslashed escape sequences." +"After working in the wrong branch, switching to the correct branch would be " +"done using:" msgstr "" -#. type: Labeled list -#: en/git-count-objects.txt:47 en/git-cvsserver.txt:49 en/git-grep.txt:142 +#. type: delimited block - +#: en/git-checkout.txt:501 #, no-wrap -msgid "-H" +msgid "$ git checkout mytopic\n" msgstr "" -#. type: Labeled list -#: en/git-count-objects.txt:48 +#. type: Plain text +#: en/git-checkout.txt:506 +msgid "" +"However, your \"wrong\" branch and correct \"mytopic\" branch may differ in " +"files that you have modified locally, in which case the above checkout would " +"fail like this:" +msgstr "" + +#. type: delimited block - +#: en/git-checkout.txt:510 #, no-wrap -msgid "--human-readable" +msgid "" +"$ git checkout mytopic\n" +"error: You have local changes to 'frotz'; not switching branches.\n" msgstr "" #. type: Plain text -#: en/git-count-objects.txt:51 -msgid "Print sizes in human readable format" +#: en/git-checkout.txt:514 +msgid "" +"You can give the `-m` flag to the command, which would try a three-way merge:" msgstr "" -#. type: Title = -#: en/git-credential-cache--daemon.txt:2 +#. type: delimited block - +#: en/git-checkout.txt:518 #, no-wrap -msgid "git-credential-cache--daemon(1)" +msgid "" +"$ git checkout -m mytopic\n" +"Auto-merging frotz\n" msgstr "" #. type: Plain text -#: en/git-credential-cache--daemon.txt:7 -msgid "git-credential-cache--daemon - Temporarily store user credentials in memory" +#: en/git-checkout.txt:523 +msgid "" +"After this three-way merge, the local modifications are _not_ registered in " +"your index file, so `git diff` would show you what changes you made since " +"the tip of the new branch." msgstr "" #. type: Plain text -#: en/git-credential-cache--daemon.txt:12 -#, no-wrap -msgid "git credential-cache--daemon [--debug] <socket>\n" +#: en/git-checkout.txt:526 +msgid "" +"When a merge conflict happens during switching branches with the `-m` " +"option, you would see something like this:" msgstr "" -#. type: Plain text -#: en/git-credential-cache--daemon.txt:18 +#. type: delimited block - +#: en/git-checkout.txt:532 +#, no-wrap msgid "" -"You probably don't want to invoke this command yourself; it is started " -"automatically when you use linkgit:git-credential-cache[1]." +"$ git checkout -m mytopic\n" +"Auto-merging frotz\n" +"ERROR: Merge conflict in frotz\n" +"fatal: merge program failed\n" msgstr "" #. type: Plain text -#: en/git-credential-cache--daemon.txt:23 +#: en/git-checkout.txt:538 msgid "" -"This command listens on the Unix domain socket specified by `<socket>` for " -"`git-credential-cache` clients. Clients may store and retrieve " -"credentials. Each credential is held for a timeout specified by the client; " -"once no credentials are held, the daemon exits." +"At this point, `git diff` shows the changes cleanly merged as in the " +"previous example, as well as the changes in the conflicted files. Edit and " +"resolve the conflict and mark it resolved with `git add` as usual:" msgstr "" -#. type: Plain text -#: en/git-credential-cache--daemon.txt:27 +#. type: delimited block - +#: en/git-checkout.txt:542 +#, no-wrap msgid "" -"If the `--debug` option is specified, the daemon does not close its stderr " -"stream, and may output extra diagnostics to it even after it has begun " -"listening for clients." +"$ edit frotz\n" +"$ git add frotz\n" msgstr "" #. type: Title = -#: en/git-credential-cache.txt:2 +#: en/git-check-ref-format.txt:2 #, no-wrap -msgid "git-credential-cache(1)" +msgid "git-check-ref-format(1)" msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:7 -msgid "git-credential-cache - Helper to temporarily store passwords in memory" +#: en/git-check-ref-format.txt:7 +msgid "git-check-ref-format - Ensures that a reference name is well formed" msgstr "" -#. type: delimited block - -#: en/git-credential-cache.txt:12 +#. type: Plain text +#: en/git-check-ref-format.txt:15 #, no-wrap -msgid "git config credential.helper 'cache [options]'\n" +msgid "" +"'git check-ref-format' [--normalize]\n" +" [--[no-]allow-onelevel] [--refspec-pattern]\n" +" <refname>\n" +"'git check-ref-format' --branch <branchname-shorthand>\n" msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:21 +#: en/git-check-ref-format.txt:20 msgid "" -"This command caches credentials in memory for use by future Git " -"programs. The stored credentials never touch the disk, and are forgotten " -"after a configurable timeout. The cache is accessible over a Unix domain " -"socket, restricted to the current user by filesystem permissions." +"Checks if a given 'refname' is acceptable, and exits with a non-zero status " +"if it is not." msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:25 +#: en/git-check-ref-format.txt:27 msgid "" -"You probably don't want to invoke this command directly; it is meant to be " -"used as a credential helper by other parts of Git. See " -"linkgit:gitcredentials[7] or `EXAMPLES` below." -msgstr "" - -#. type: Labeled list -#: en/git-credential-cache.txt:29 -#, no-wrap -msgid "--timeout <seconds>" +"A reference is used in Git to specify branches and tags. A branch head is " +"stored in the `refs/heads` hierarchy, while a tag is stored in the `refs/" +"tags` hierarchy of the ref namespace (typically in `$GIT_DIR/refs/heads` and " +"`$GIT_DIR/refs/tags` directories or, as entries in file `$GIT_DIR/packed-" +"refs` if refs are packed by `git gc`)." msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:32 -msgid "Number of seconds to cache credentials (default: 900)." -msgstr "" - -#. type: Labeled list -#: en/git-credential-cache.txt:33 -#, no-wrap -msgid "--socket <path>" +#: en/git-check-ref-format.txt:29 +msgid "Git imposes the following rules on how references are named:" msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:40 +#: en/git-check-ref-format.txt:33 msgid "" -"Use `<path>` to contact a running cache daemon (or start a new cache daemon " -"if one is not started). Defaults to `~/.git-credential-cache/socket`. If " -"your home directory is on a network-mounted filesystem, you may need to " -"change this to a local filesystem. You must specify an absolute path." -msgstr "" - -#. type: Title - -#: en/git-credential-cache.txt:42 -#, no-wrap -msgid "CONTROLLING THE DAEMON" +"They can include slash `/` for hierarchical (directory) grouping, but no " +"slash-separated component can begin with a dot `.` or end with the sequence " +"`.lock`." msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:46 +#: en/git-check-ref-format.txt:38 msgid "" -"If you would like the daemon to exit early, forgetting all cached " -"credentials before their timeout, you can issue an `exit` action:" +"They must contain at least one `/`. This enforces the presence of a category " +"like `heads/`, `tags/` etc. but the actual names are not restricted. If the " +"`--allow-onelevel` option is used, this rule is waived." msgstr "" -#. type: delimited block - -#: en/git-credential-cache.txt:49 -#, no-wrap -msgid "git credential-cache exit\n" +#. type: Plain text +#: en/git-check-ref-format.txt:40 +msgid "They cannot have two consecutive dots `..` anywhere." msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:56 en/git-credential-store.txt:75 +#: en/git-check-ref-format.txt:44 msgid "" -"The point of this helper is to reduce the number of times you must type your " -"username or password. For example:" +"They cannot have ASCII control characters (i.e. bytes whose values are lower " +"than \\040, or \\177 `DEL`), space, tilde `~`, caret `^`, or colon `:` " +"anywhere." msgstr "" -#. type: delimited block - -#: en/git-credential-cache.txt:62 -#, no-wrap +#. type: Plain text +#: en/git-check-ref-format.txt:48 msgid "" -"$ git config credential.helper cache\n" -"$ git push http://example.com/repo.git\n" -"Username: <type your username>\n" -"Password: <type your password>\n" +"They cannot have question-mark `?`, asterisk `*`, or open bracket `[` " +"anywhere. See the `--refspec-pattern` option below for an exception to this " +"rule." msgstr "" -#. type: delimited block - -#: en/git-credential-cache.txt:66 -#, no-wrap +#. type: Plain text +#: en/git-check-ref-format.txt:52 msgid "" -"[work for 5 more minutes]\n" -"$ git push http://example.com/repo.git\n" -"[your credentials are used automatically]\n" +"They cannot begin or end with a slash `/` or contain multiple consecutive " +"slashes (see the `--normalize` option below for an exception to this rule)" msgstr "" #. type: Plain text -#: en/git-credential-cache.txt:70 -msgid "" -"You can provide options via the credential.helper configuration variable " -"(this example drops the cache time to 5 minutes):" +#: en/git-check-ref-format.txt:54 +msgid "They cannot end with a dot `.`." msgstr "" -#. type: delimited block - -#: en/git-credential-cache.txt:73 -#, no-wrap -msgid "$ git config credential.helper 'cache --timeout=300'\n" +#. type: Plain text +#: en/git-check-ref-format.txt:56 +msgid "They cannot contain a sequence `@{`." msgstr "" -#. type: Title = -#: en/git-credential-store.txt:2 -#, no-wrap -msgid "git-credential-store(1)" +#. type: Plain text +#: en/git-check-ref-format.txt:58 +msgid "They cannot be the single character `@`." msgstr "" #. type: Plain text -#: en/git-credential-store.txt:7 -msgid "git-credential-store - Helper to store credentials on disk" +#: en/git-check-ref-format.txt:60 +msgid "They cannot contain a `\\`." msgstr "" -#. type: delimited block - -#: en/git-credential-store.txt:12 -#, no-wrap -msgid "git config credential.helper 'store [options]'\n" +#. type: Plain text +#: en/git-check-ref-format.txt:65 +msgid "" +"These rules make it easy for shell script based tools to parse reference " +"names, pathname expansion by the shell when a reference name is used " +"unquoted (by mistake), and also avoid ambiguities in certain reference name " +"expressions (see linkgit:gitrevisions[7]):" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:21 +#: en/git-check-ref-format.txt:69 msgid "" -"Using this helper will store your passwords unencrypted on disk, protected " -"only by filesystem permissions. If this is not an acceptable security " -"tradeoff, try linkgit:git-credential-cache[1], or find a helper that " -"integrates with secure storage provided by your operating system." +"A double-dot `..` is often used as in `ref1..ref2`, and in some contexts " +"this notation means `^ref1 ref2` (i.e. not in `ref1` and in `ref2`)." msgstr "" #. type: Plain text -#: en/git-credential-store.txt:24 +#: en/git-check-ref-format.txt:72 msgid "" -"This command stores credentials indefinitely on disk for use by future Git " -"programs." +"A tilde `~` and caret `^` are used to introduce the postfix 'nth parent' and " +"'peel onion' operation." msgstr "" #. type: Plain text -#: en/git-credential-store.txt:28 +#: en/git-check-ref-format.txt:77 msgid "" -"You probably don't want to invoke this command directly; it is meant to be " -"used as a credential helper by other parts of git. See " -"linkgit:gitcredentials[7] or `EXAMPLES` below." +"A colon `:` is used as in `srcref:dstref` to mean \"use srcref\\'s value and " +"store it in dstref\" in fetch and push operations. It may also be used to " +"select a specific object such as with 'git cat-file': \"git cat-file blob " +"v1.3.3:refs.c\"." msgstr "" -#. type: Labeled list -#: en/git-credential-store.txt:32 -#, no-wrap -msgid "--file=<path>" +#. type: Plain text +#: en/git-check-ref-format.txt:79 +msgid "at-open-brace `@{` is used as a notation to access a reflog entry." msgstr "" #. type: Plain text -#: en/git-credential-store.txt:42 +#: en/git-check-ref-format.txt:97 msgid "" -"Use `<path>` to lookup and store credentials. The file will have its " -"filesystem permissions set to prevent other users on the system from reading " -"it, but will not be encrypted or otherwise protected. If not specified, " -"credentials will be searched for from `~/.git-credentials` and " -"`$XDG_CONFIG_HOME/git/credentials`, and credentials will be written to " -"`~/.git-credentials` if it exists, or `$XDG_CONFIG_HOME/git/credentials` if " -"it exists and the former does not. See also <<FILES>>." +"With the `--branch` option, the command takes a name and checks if it can be " +"used as a valid branch name (e.g. when creating a new branch). But be " +"cautious when using the previous checkout syntax that may refer to a " +"detached HEAD state. The rule `git check-ref-format --branch $name` " +"implements may be stricter than what `git check-ref-format refs/heads/$name` " +"says (e.g. a dash may appear at the beginning of a ref component, but it is " +"explicitly forbidden at the beginning of a branch name). When run with `--" +"branch` option in a repository, the input is first expanded for the " +"``previous checkout syntax'' `@{-n}`. For example, `@{-1}` is a way to " +"refer the last thing that was checked out using \"git checkout\" operation. " +"This option should be used by porcelains to accept this syntax anywhere a " +"branch name is expected, so they can act as if you typed the branch name. As " +"an exception note that, the ``previous checkout operation'' might result in " +"a commit object name when the N-th last thing checked out was not a branch." msgstr "" -#. type: Plain text -#: en/git-credential-store.txt:49 -msgid "" -"If not set explicitly with `--file`, there are two files where " -"git-credential-store will search for credentials in order of precedence:" +#. type: Labeled list +#: en/git-check-ref-format.txt:100 +#, no-wrap +msgid "--[no-]allow-onelevel" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:52 -#, no-wrap +#: en/git-check-ref-format.txt:104 msgid "" -"~/.git-credentials::\n" -"\tUser-specific credentials file.\n" +"Controls whether one-level refnames are accepted (i.e., refnames that do not " +"contain multiple `/`-separated components). The default is `--no-allow-" +"onelevel`." msgstr "" -#. type: Plain text -#: en/git-credential-store.txt:59 +#. type: Labeled list +#: en/git-check-ref-format.txt:105 #, no-wrap -msgid "" -"$XDG_CONFIG_HOME/git/credentials::\n" -"\tSecond user-specific credentials file. If '$XDG_CONFIG_HOME' is not set\n" -"\tor empty, `$HOME/.config/git/credentials` will be used. Any credentials\n" -"\tstored in this file will not be used if `~/.git-credentials` has a\n" -"\tmatching credential as well. It is a good idea not to create this file\n" -"\tif you sometimes use older versions of Git that do not support it.\n" +msgid "--refspec-pattern" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:63 +#: en/git-check-ref-format.txt:111 msgid "" -"For credential lookups, the files are read in the order given above, with " -"the first matching credential found taking precedence over credentials found " -"in files further down the list." +"Interpret <refname> as a reference name pattern for a refspec (as used with " +"remote repositories). If this option is enabled, <refname> is allowed to " +"contain a single `*` in the refspec (e.g., `foo/bar*/baz` or `foo/bar*baz/` " +"but not `foo/bar*/baz*`)." +msgstr "" + +#. type: Labeled list +#: en/git-check-ref-format.txt:112 +#, no-wrap +msgid "--normalize" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:67 +#: en/git-check-ref-format.txt:119 msgid "" -"Credential storage will by default write to the first existing file in the " -"list. If none of these files exist, `~/.git-credentials` will be created and " -"written to." +"Normalize 'refname' by removing any leading slash (`/`) characters and " +"collapsing runs of adjacent slashes between name components into a single " +"slash. If the normalized refname is valid then print it to standard output " +"and exit with a status of 0, otherwise exit with a non-zero status. (`--" +"print` is a deprecated way to spell `--normalize`.)" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:69 -msgid "" -"When erasing credentials, matching credentials will be erased from all " -"files." +#: en/git-check-ref-format.txt:125 +msgid "Print the name of the previous thing checked out:" msgstr "" #. type: delimited block - -#: en/git-credential-store.txt:81 +#: en/git-check-ref-format.txt:128 #, no-wrap -msgid "" -"$ git config credential.helper store\n" -"$ git push http://example.com/repo.git\n" -"Username: <type your username>\n" -"Password: <type your password>\n" +msgid "$ git check-ref-format --branch @{-1}\n" +msgstr "" + +#. type: Plain text +#: en/git-check-ref-format.txt:131 +msgid "Determine the reference name to use for a new branch:" msgstr "" #. type: delimited block - -#: en/git-credential-store.txt:85 +#: en/git-check-ref-format.txt:135 #, no-wrap msgid "" -"[several days later]\n" -"$ git push http://example.com/repo.git\n" -"[your credentials are used automatically]\n" +"$ ref=$(git check-ref-format --normalize \"refs/heads/$newbranch\")||\n" +"{ echo \"we do not like '$newbranch' as a branch name.\" >&2 ; exit 1 ; }\n" msgstr "" -#. type: Title - -#: en/git-credential-store.txt:88 +#. type: Title = +#: en/git-cherry-pick.txt:2 #, no-wrap -msgid "STORAGE FORMAT" +msgid "git-cherry-pick(1)" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:92 -msgid "" -"The `.git-credentials` file is stored in plaintext. Each credential is " -"stored on its own line as a URL like:" +#: en/git-cherry-pick.txt:7 +msgid "git-cherry-pick - Apply the changes introduced by some existing commits" msgstr "" -#. type: delimited block - -#: en/git-credential-store.txt:95 +#. type: Plain text +#: en/git-cherry-pick.txt:16 #, no-wrap -msgid "https://user:pass@example.com\n" +msgid "" +"'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]\n" +"\t\t [-S[<keyid>]] <commit>...\n" +"'git cherry-pick' --continue\n" +"'git cherry-pick' --quit\n" +"'git cherry-pick' --abort\n" msgstr "" #. type: Plain text -#: en/git-credential-store.txt:103 +#: en/git-cherry-pick.txt:23 msgid "" -"When Git needs authentication for a particular URL context, credential-store " -"will consider that context a pattern to match against each entry in the " -"credentials file. If the protocol, hostname, and username (if we already " -"have one) match, then the password is returned to Git. See the discussion of " -"configuration in linkgit:gitcredentials[7] for more information." -msgstr "" - -#. type: Title = -#: en/git-credential.txt:2 -#, no-wrap -msgid "git-credential(1)" +"Given one or more existing commits, apply the change each one introduces, " +"recording a new commit for each. This requires your working tree to be " +"clean (no modifications from the HEAD commit)." msgstr "" #. type: Plain text -#: en/git-credential.txt:7 -msgid "git-credential - Retrieve and store user credentials" -msgstr "" - -#. type: delimited block - -#: en/git-credential.txt:12 -#, no-wrap -msgid "git credential <fill|approve|reject>\n" +#: en/git-cherry-pick.txt:26 +msgid "When it is not obvious how to apply a change, the following happens:" msgstr "" #. type: Plain text -#: en/git-credential.txt:25 +#: en/git-cherry-pick.txt:29 msgid "" -"Git has an internal interface for storing and retrieving credentials from " -"system-specific helpers, as well as prompting the user for usernames and " -"passwords. The git-credential command exposes this interface to scripts " -"which may want to retrieve, store, or prompt for credentials in the same " -"manner as Git. The design of this scriptable interface models the internal C " -"API; see link:technical/api-credentials.html[the Git credential API] for " -"more background on the concepts." +"The current branch and `HEAD` pointer stay at the last commit successfully " +"made." msgstr "" #. type: Plain text -#: en/git-credential.txt:29 +#: en/git-cherry-pick.txt:31 msgid "" -"git-credential takes an \"action\" option on the command-line (one of " -"`fill`, `approve`, or `reject`) and reads a credential description on stdin " -"(see <<IOFMT,INPUT/OUTPUT FORMAT>>)." +"The `CHERRY_PICK_HEAD` ref is set to point at the commit that introduced the " +"change that is difficult to apply." msgstr "" #. type: Plain text -#: en/git-credential.txt:36 +#: en/git-cherry-pick.txt:33 msgid "" -"If the action is `fill`, git-credential will attempt to add \"username\" and " -"\"password\" attributes to the description by reading config files, by " -"contacting any configured credential helpers, or by prompting the user. The " -"username and password attributes of the credential description are then " -"printed to stdout together with the attributes already provided." +"Paths in which the change applied cleanly are updated both in the index file " +"and in your working tree." msgstr "" #. type: Plain text -#: en/git-credential.txt:40 +#: en/git-cherry-pick.txt:38 msgid "" -"If the action is `approve`, git-credential will send the description to any " -"configured credential helpers, which may store the credential for later use." +"For conflicting paths, the index file records up to three versions, as " +"described in the \"TRUE MERGE\" section of linkgit:git-merge[1]. The " +"working tree files will include a description of the conflict bracketed by " +"the usual conflict markers `<<<<<<<` and `>>>>>>>`." msgstr "" #. type: Plain text -#: en/git-credential.txt:44 -msgid "" -"If the action is `reject`, git-credential will send the description to any " -"configured credential helpers, which may erase any stored credential " -"matching the description." +#: en/git-cherry-pick.txt:39 +msgid "No other modifications are made." msgstr "" #. type: Plain text -#: en/git-credential.txt:46 -msgid "If the action is `approve` or `reject`, no output should be emitted." +#: en/git-cherry-pick.txt:42 +msgid "See linkgit:git-merge[1] for some hints on resolving such conflicts." msgstr "" -#. type: Title - -#: en/git-credential.txt:48 +#. type: Labeled list +#: en/git-cherry-pick.txt:45 en/git-merge.txt:107 en/git-revert.txt:35 +#: en/git-verify-commit.txt:27 #, no-wrap -msgid "TYPICAL USE OF GIT CREDENTIAL" +msgid "<commit>..." msgstr "" #. type: Plain text -#: en/git-credential.txt:52 +#: en/git-cherry-pick.txt:54 msgid "" -"An application using git-credential will typically use `git credential` " -"following these steps:" +"Commits to cherry-pick. For a more complete list of ways to spell commits, " +"see linkgit:gitrevisions[7]. Sets of commits can be passed but no traversal " +"is done by default, as if the `--no-walk` option was specified, see linkgit:" +"git-rev-list[1]. Note that specifying a range will feed all <commit>... " +"arguments to a single revision walk (see a later example that uses 'maint " +"master..next')." msgstr "" #. type: Plain text -#: en/git-credential.txt:54 -msgid "Generate a credential description based on the context." +#: en/git-cherry-pick.txt:59 +msgid "" +"With this option, 'git cherry-pick' will let you edit the commit message " +"prior to committing." +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:60 en/git-clean.txt:62 +#, no-wrap +msgid "-x" msgstr "" #. type: Plain text -#: en/git-credential.txt:60 +#: en/git-cherry-pick.txt:73 msgid "" -"For example, if we want a password for `https://example.com/foo.git`, we " -"might generate the following credential description (don't forget the blank " -"line at the end; it tells `git credential` that the application finished " -"feeding all the information it has):" +"When recording the commit, append a line that says \"(cherry picked from " +"commit ...)\" to the original commit message in order to indicate which " +"commit this change was cherry-picked from. This is done only for cherry " +"picks without conflicts. Do not use this option if you are cherry-picking " +"from your private branch because the information is useless to the " +"recipient. If on the other hand you are cherry-picking between two publicly " +"visible branches (e.g. backporting a fix to a maintenance branch for an " +"older release from a development branch), adding this information can be " +"useful." msgstr "" #. type: Plain text -#: en/git-credential.txt:64 -#, no-wrap +#: en/git-cherry-pick.txt:78 msgid "" -"\t protocol=https\n" -"\t host=example.com\n" -"\t path=foo.git\n" +"It used to be that the command defaulted to do `-x` described above, and `-" +"r` was to disable it. Now the default is not to do `-x` so this option is a " +"no-op." +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:79 en/git-revert.txt:49 +#, no-wrap +msgid "-m parent-number" +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:80 en/git-revert.txt:50 +#, no-wrap +msgid "--mainline parent-number" msgstr "" #. type: Plain text -#: en/git-credential.txt:70 +#: en/git-cherry-pick.txt:86 msgid "" -"Ask git-credential to give us a username and password for this " -"description. This is done by running `git credential fill`, feeding the " -"description from step (1) to its standard input. The complete credential " -"description (including the credential per se, i.e. the login and password) " -"will be produced on standard output, like:" +"Usually you cannot cherry-pick a merge because you do not know which side of " +"the merge should be considered the mainline. This option specifies the " +"parent number (starting from 1) of the mainline and allows cherry-pick to " +"replay the change relative to the specified parent." msgstr "" -#. type: Plain text -#: en/git-credential.txt:75 +#. type: Labeled list +#: en/git-cherry-pick.txt:88 en/git-revert.txt:70 en/merge-options.txt:2 #, no-wrap -msgid "" -"protocol=https\n" -"host=example.com\n" -"username=bob\n" -"password=secr3t\n" +msgid "--no-commit" msgstr "" #. type: Plain text -#: en/git-credential.txt:80 +#: en/git-cherry-pick.txt:96 msgid "" -"In most cases, this means the attributes given in the input will be repeated " -"in the output, but Git may also modify the credential description, for " -"example by removing the `path` attribute when the protocol is HTTP(s) and " -"`credential.useHttpPath` is false." +"Usually the command automatically creates a sequence of commits. This flag " +"applies the changes necessary to cherry-pick each named commit to your " +"working tree and the index, without making any commit. In addition, when " +"this option is used, your index does not have to match the HEAD commit. The " +"cherry-pick is done against the beginning state of your index." msgstr "" #. type: Plain text -#: en/git-credential.txt:86 +#: en/git-cherry-pick.txt:99 msgid "" -"If the `git credential` knew about the password, this step may not have " -"involved the user actually typing this password (the user may have typed a " -"password to unlock the keychain instead, or no user interaction was done if " -"the keychain was already unlocked) before it returned `password=secr3t`." +"This is useful when cherry-picking more than one commits' effect to your " +"index in a row." msgstr "" #. type: Plain text -#: en/git-credential.txt:89 +#: en/git-cherry-pick.txt:104 en/git-revert.txt:93 msgid "" -"Use the credential (e.g., access the URL with the username and password from " -"step (2)), and see if it's accepted." +"Add Signed-off-by line at the end of the commit message. See the signoff " +"option in linkgit:git-commit[1] for more information." +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:111 en/merge-options.txt:30 +#, no-wrap +msgid "--ff" msgstr "" #. type: Plain text -#: en/git-credential.txt:99 +#: en/git-cherry-pick.txt:115 msgid "" -"Report on the success or failure of the password. If the credential allowed " -"the operation to complete successfully, then it can be marked with an " -"\"approve\" action to tell `git credential` to reuse it in its next " -"invocation. If the credential was rejected during the operation, use the " -"\"reject\" action so that `git credential` will ask for a new password in " -"its next invocation. In either case, `git credential` should be fed with the " -"credential description obtained from step (2) (which also contain the ones " -"provided in step (1))." +"If the current HEAD is the same as the parent of the cherry-pick'ed commit, " +"then a fast forward to this commit will be performed." msgstr "" -#. type: Title - -#: en/git-credential.txt:102 +#. type: Labeled list +#: en/git-cherry-pick.txt:116 en/git-commit.txt:179 en/git-notes.txt:158 #, no-wrap -msgid "INPUT/OUTPUT FORMAT" +msgid "--allow-empty" msgstr "" #. type: Plain text -#: en/git-credential.txt:109 +#: en/git-cherry-pick.txt:128 msgid "" -"`git credential` reads and/or writes (depending on the action used) " -"credential information in its standard input/output. This information can " -"correspond either to keys for which `git credential` will obtain the " -"login/password information (e.g. host, protocol, path), or to the actual " -"credential data to be obtained (login/password)." +"By default, cherry-picking an empty commit will fail, indicating that an " +"explicit invocation of `git commit --allow-empty` is required. This option " +"overrides that behavior, allowing empty commits to be preserved " +"automatically in a cherry-pick. Note that when \"--ff\" is in effect, empty " +"commits that meet the \"fast-forward\" requirement will be kept even without " +"this option. Note also, that use of this option only keeps commits that " +"were initially empty (i.e. the commit recorded the same tree as its " +"parent). Commits which are made empty due to a previous commit are " +"dropped. To force the inclusion of those commits use `--keep-redundant-" +"commits`." msgstr "" #. type: Plain text -#: en/git-credential.txt:119 +#: en/git-cherry-pick.txt:129 en/git-commit.txt:185 en/git-rebase.txt:249 +#: en/git-rebase.txt:526 +#, no-wrap +msgid "--allow-empty-message" +msgstr "" + +#. type: Plain text +#: en/git-cherry-pick.txt:133 msgid "" -"The credential is split into a set of named attributes, with one attribute " -"per line. Each attribute is specified by a key-value pair, separated by an " -"`=` (equals) sign, followed by a newline. The key may contain any bytes " -"except `=`, newline, or NUL. The value may contain any bytes except newline " -"or NUL. In both cases, all bytes are treated as-is (i.e., there is no " -"quoting, and one cannot transmit a value with newline or NUL in it). The " -"list of attributes is terminated by a blank line or end-of-file. Git " -"understands the following attributes:" +"By default, cherry-picking a commit with an empty message will fail. This " +"option overrides that behavior, allowing commits with empty messages to be " +"cherry picked." msgstr "" #. type: Labeled list -#: en/git-credential.txt:120 +#: en/git-cherry-pick.txt:134 #, no-wrap -msgid "`protocol`" +msgid "--keep-redundant-commits" msgstr "" #. type: Plain text -#: en/git-credential.txt:124 -msgid "The protocol over which the credential will be used (e.g., `https`)." +#: en/git-cherry-pick.txt:140 +msgid "" +"If a commit being cherry picked duplicates a commit already in the current " +"history, it will become empty. By default these redundant commits cause " +"`cherry-pick` to stop so the user can examine the commit. This option " +"overrides that behavior and creates an empty commit object. Implies `--" +"allow-empty`." msgstr "" #. type: Labeled list -#: en/git-credential.txt:125 +#: en/git-cherry-pick.txt:141 en/git-notes.txt:184 en/git-rebase.txt:282 +#: en/git-revert.txt:94 en/git-svn.txt:678 en/merge-options.txt:95 #, no-wrap -msgid "`host`" +msgid "--strategy=<strategy>" msgstr "" #. type: Plain text -#: en/git-credential.txt:128 -msgid "The remote hostname for a network credential." +#: en/git-cherry-pick.txt:145 en/git-revert.txt:98 +msgid "" +"Use the given merge strategy. Should only be used once. See the MERGE " +"STRATEGIES section in linkgit:git-merge[1] for details." msgstr "" #. type: Labeled list -#: en/git-credential.txt:129 +#: en/git-cherry-pick.txt:146 en/git-revert.txt:99 #, no-wrap -msgid "`path`" +msgid "-X<option>" +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:147 en/git-revert.txt:100 en/merge-options.txt:103 +#, no-wrap +msgid "--strategy-option=<option>" msgstr "" #. type: Plain text -#: en/git-credential.txt:134 +#: en/git-cherry-pick.txt:150 en/git-revert.txt:103 msgid "" -"The path with which the credential will be used. E.g., for accessing a " -"remote https repository, this will be the repository's path on the server." +"Pass the merge strategy-specific option through to the merge strategy. See " +"linkgit:git-merge[1] for details." +msgstr "" + +#. type: Title - +#: en/git-cherry-pick.txt:152 en/git-revert.txt:105 +#, no-wrap +msgid "SEQUENCER SUBCOMMANDS" msgstr "" #. type: Labeled list -#: en/git-credential.txt:135 +#: en/git-cherry-pick.txt:157 #, no-wrap -msgid "`username`" +msgid "`git cherry-pick master`" msgstr "" #. type: Plain text -#: en/git-credential.txt:139 +#: en/git-cherry-pick.txt:161 msgid "" -"The credential's username, if we already have one (e.g., from a URL, from " -"the user, or from a previously run helper)." +"Apply the change introduced by the commit at the tip of the master branch " +"and create a new commit with this change." msgstr "" #. type: Labeled list -#: en/git-credential.txt:140 +#: en/git-cherry-pick.txt:162 #, no-wrap -msgid "`password`" +msgid "`git cherry-pick ..master`" +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:163 +#, no-wrap +msgid "`git cherry-pick ^HEAD master`" msgstr "" #. type: Plain text -#: en/git-credential.txt:143 -msgid "The credential's password, if we are asking it to be stored." +#: en/git-cherry-pick.txt:167 +msgid "" +"Apply the changes introduced by all commits that are ancestors of master but " +"not of HEAD to produce new commits." msgstr "" #. type: Labeled list -#: en/git-credential.txt:144 +#: en/git-cherry-pick.txt:168 #, no-wrap -msgid "`url`" +msgid "`git cherry-pick maint next ^master`" +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:169 +#, no-wrap +msgid "`git cherry-pick maint master..next`" msgstr "" #. type: Plain text -#: en/git-credential.txt:154 +#: en/git-cherry-pick.txt:176 msgid "" -"When this special attribute is read by `git credential`, the value is parsed " -"as a URL and treated as if its constituent parts were read (e.g., " -"`url=https://example.com` would behave as if `protocol=https` and " -"`host=example.com` had been provided). This can help callers avoid parsing " -"URLs themselves. Note that any components which are missing from the URL " -"(e.g., there is no username in the example above) will be set to empty; if " -"you want to provide a URL and override some attributes, provide the URL " -"attribute first, followed by any overrides." +"Apply the changes introduced by all commits that are ancestors of maint or " +"next, but not master or any of its ancestors. Note that the latter does not " +"mean `maint` and everything between `master` and `next`; specifically, " +"`maint` will not be used if it is included in `master`." msgstr "" -#. type: Title = -#: en/git-cvsexportcommit.txt:2 +#. type: Labeled list +#: en/git-cherry-pick.txt:177 #, no-wrap -msgid "git-cvsexportcommit(1)" +msgid "`git cherry-pick master~4 master~2`" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:7 -msgid "git-cvsexportcommit - Export a single commit to a CVS checkout" +#: en/git-cherry-pick.txt:182 +msgid "" +"Apply the changes introduced by the fifth and third last commits pointed to " +"by master and create 2 new commits with these changes." msgstr "" -#. type: Plain text -#: en/git-cvsexportcommit.txt:14 +#. type: Labeled list +#: en/git-cherry-pick.txt:183 #, no-wrap -msgid "" -"'git cvsexportcommit' [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot]\n" -"\t[-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID\n" +msgid "`git cherry-pick -n master~1 next`" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:20 +#: en/git-cherry-pick.txt:189 msgid "" -"Exports a commit from Git to a CVS checkout, making it easier to merge " -"patches from a Git repository into a CVS repository." +"Apply to the working tree and the index the changes introduced by the second " +"last commit pointed to by master and by the last commit pointed to by next, " +"but do not create any commit with these changes." +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:190 +#, no-wrap +msgid "`git cherry-pick --ff ..next`" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:24 +#: en/git-cherry-pick.txt:197 msgid "" -"Specify the name of a CVS checkout using the -w switch or execute it from " -"the root of the CVS working copy. In the latter case GIT_DIR must be " -"defined. See examples below." +"If history is linear and HEAD is an ancestor of next, update the working " +"tree and advance the HEAD pointer to match next. Otherwise, apply the " +"changes introduced by those commits that are in next but not HEAD to the " +"current branch, creating a new commit for each new change." +msgstr "" + +#. type: Labeled list +#: en/git-cherry-pick.txt:198 +#, no-wrap +msgid "`git rev-list --reverse master -- README | git cherry-pick -n --stdin`" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:28 +#: en/git-cherry-pick.txt:204 msgid "" -"It does its best to do the safe thing, it will check that the files are " -"unchanged and up to date in the CVS checkout, and it will not autocommit by " -"default." +"Apply the changes introduced by all commits on the master branch that " +"touched README to the working tree and index, so the result can be inspected " +"and made into a single new commit if suitable." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:30 -msgid "Supports file additions, removals, and commits that affect binary files." +#: en/git-cherry-pick.txt:208 +msgid "" +"The following sequence attempts to backport a patch, bails out because the " +"code the patch applies to has changed too much, and then tries again, this " +"time exercising more care about matching up context lines." msgstr "" -#. type: Plain text -#: en/git-cvsexportcommit.txt:33 +#. type: delimited block - +#: en/git-cherry-pick.txt:214 +#, no-wrap msgid "" -"If the commit is a merge commit, you must tell 'git cvsexportcommit' what " -"parent the changeset should be done against." +"$ git cherry-pick topic^ <1>\n" +"$ git diff <2>\n" +"$ git reset --merge ORIG_HEAD <3>\n" +"$ git cherry-pick -Xpatience topic^ <4>\n" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:40 +#: en/git-cherry-pick.txt:219 msgid "" -"Commit automatically if the patch applied cleanly. It will not commit if any " -"hunks fail to apply or there were other problems." +"apply the change that would be shown by `git show topic^`. In this example, " +"the patch does not apply cleanly, so information about the conflict is " +"written to the index and working tree and no new commit results." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:44 -msgid "Be pedantic (paranoid) when applying patches. Invokes patch with --fuzz=0" +#: en/git-cherry-pick.txt:220 +msgid "summarize changes to be reconciled" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:48 +#: en/git-cherry-pick.txt:223 msgid "" -"Add authorship information. Adds Author line, and Committer (if different " -"from Author) to the message." +"cancel the cherry-pick. In other words, return to the pre-cherry-pick " +"state, preserving any local modifications you had in the working tree." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:53 +#: en/git-cherry-pick.txt:226 msgid "" -"Set an alternative CVSROOT to use. This corresponds to the CVS -d " -"parameter. Usually users will not want to set this, except if using CVS in " -"an asymmetric fashion." +"try to apply the change introduced by `topic^` again, spending extra time to " +"avoid mistakes based on incorrectly matching context lines." msgstr "" -#. type: Plain text -#: en/git-cvsexportcommit.txt:56 -msgid "Force the merge even if the files are not up to date." +#. type: Title = +#: en/git-cherry.txt:2 +#, no-wrap +msgid "git-cherry(1)" msgstr "" -#. type: Labeled list -#: en/git-cvsexportcommit.txt:57 en/git-grep.txt:162 -#, no-wrap -msgid "-P" +#. type: Plain text +#: en/git-cherry.txt:7 +msgid "git-cherry - Find commits yet to be applied to upstream" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:59 -msgid "Force the parent commit, even if it is not a direct parent." +#: en/git-cherry.txt:12 +#, no-wrap +msgid "'git cherry' [-v] [<upstream> [<head> [<limit>]]]\n" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:63 +#: en/git-cherry.txt:17 msgid "" -"Prepend the commit message with the provided prefix. Useful for patch " -"series and the like." +"Determine whether there are commits in `<head>..<upstream>` that are " +"equivalent to those in the range `<limit>..<head>`." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:66 -msgid "Update affected files from CVS repository before attempting export." +#: en/git-cherry.txt:22 +msgid "" +"The equivalence test is based on the diff, after removing whitespace and " +"line numbers. git-cherry therefore detects when commits have been \"copied" +"\" by means of linkgit:git-cherry-pick[1], linkgit:git-am[1] or linkgit:git-" +"rebase[1]." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:70 +#: en/git-cherry.txt:26 msgid "" -"Reverse CVS keyword expansion (e.g. $Revision: 1.2.3.4$ becomes $Revision$) " -"in working CVS checkout before applying patch." +"Outputs the SHA1 of every commit in `<limit>..<head>`, prefixed with `-` for " +"commits that have an equivalent in <upstream>, and `+` for commits that do " +"not." msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:76 -msgid "" -"Specify the location of the CVS checkout to use for the export. This option " -"does not require GIT_DIR to be set before execution if the current directory " -"is within a Git repository. The default is the value of " -"'cvsexportcommit.cvsdir'." +#: en/git-cherry.txt:31 +msgid "Show the commit subjects next to the SHA1s." msgstr "" #. type: Labeled list -#: en/git-cvsexportcommit.txt:77 en/git-grep.txt:246 en/diff-options.txt:546 +#: en/git-cherry.txt:32 en/git-rebase.txt:220 #, no-wrap -msgid "-W" +msgid "<upstream>" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:81 +#: en/git-cherry.txt:35 msgid "" -"Tell cvsexportcommit that the current working directory is not only a Git " -"checkout, but also the CVS checkout. Therefore, Git will reset the working " -"directory to the parent commit before proceeding." -msgstr "" - -#. type: Plain text -#: en/git-cvsexportcommit.txt:84 -msgid "Verbose." +"Upstream branch to search for equivalent commits. Defaults to the upstream " +"branch of HEAD." msgstr "" #. type: Labeled list -#: en/git-cvsexportcommit.txt:87 +#: en/git-cherry.txt:36 en/git.txt:347 #, no-wrap -msgid "cvsexportcommit.cvsdir" +msgid "<head>" msgstr "" #. type: Plain text -#: en/git-cvsexportcommit.txt:89 -msgid "The default location of the CVS checkout to use for the export." +#: en/git-cherry.txt:38 en/git-rebase.txt:227 +msgid "Working branch; defaults to HEAD." msgstr "" -#. type: Labeled list -#: en/git-cvsexportcommit.txt:93 -#, no-wrap -msgid "Merge one patch into CVS" +#. type: Plain text +#: en/git-cherry.txt:41 +msgid "Do not report commits up to (and including) limit." msgstr "" -#. type: delimited block - -#: en/git-cvsexportcommit.txt:100 +#. type: Title ~ +#: en/git-cherry.txt:46 #, no-wrap -msgid "" -"$ export GIT_DIR=~/project/.git\n" -"$ cd ~/project_cvs_checkout\n" -"$ git cvsexportcommit -v <commit-sha1>\n" -"$ cvs commit -F .msg <files>\n" +msgid "Patch workflows" msgstr "" -#. type: Labeled list -#: en/git-cvsexportcommit.txt:102 -#, no-wrap +#. type: Plain text +#: en/git-cherry.txt:52 msgid "" -"Merge one patch into CVS (-c and -w options). The working directory is " -"within the Git Repo" +"git-cherry is frequently used in patch-based workflows (see linkgit:" +"gitworkflows[7]) to determine if a series of patches has been applied by the " +"upstream maintainer. In such a workflow you might create and send a topic " +"branch like this:" msgstr "" #. type: delimited block - -#: en/git-cvsexportcommit.txt:106 -#, no-wrap -msgid "\t$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>\n" -msgstr "" - -#. type: Labeled list -#: en/git-cvsexportcommit.txt:108 +#: en/git-cherry.txt:58 #, no-wrap msgid "" -"Merge pending patches into CVS automatically -- only if you really know what " -"you are doing" +"$ git checkout -b topic origin/master\n" +"# work and create some commits\n" +"$ git format-patch origin/master\n" +"$ git send-email ... 00*\n" +msgstr "" + +#. type: Plain text +#: en/git-cherry.txt:62 +msgid "" +"Later, you can see whether your changes have been applied by saying (still " +"on `topic`):" msgstr "" #. type: delimited block - -#: en/git-cvsexportcommit.txt:114 +#: en/git-cherry.txt:66 #, no-wrap msgid "" -"$ export GIT_DIR=~/project/.git\n" -"$ cd ~/project_cvs_checkout\n" -"$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git " -"cvsexportcommit -c -p -v\n" +"$ git fetch # update your notion of origin/master\n" +"$ git cherry -v\n" msgstr "" -#. type: Title = -#: en/git-cvsimport.txt:2 +#. type: Title ~ +#: en/git-cherry.txt:69 #, no-wrap -msgid "git-cvsimport(1)" +msgid "Concrete example" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:7 -msgid "git-cvsimport - Salvage your data out of another SCM people love to hate" +#: en/git-cherry.txt:73 +msgid "" +"In a situation where topic consisted of three commits, and the maintainer " +"applied two of them, the situation might look like:" msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:17 +#. type: delimited block - +#: en/git-cherry.txt:86 #, no-wrap msgid "" -"'git cvsimport' [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>]\n" -"\t [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>]\n" -"\t [-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]\n" -"\t [-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]\n" -"\t [-r <remote>] [-R] [<CVS_module>]\n" +"$ git log --graph --oneline --decorate --boundary origin/master...topic\n" +"* 7654321 (origin/master) upstream tip commit\n" +"[... snip some other commits ...]\n" +"* cccc111 cherry-pick of C\n" +"* aaaa111 cherry-pick of A\n" +"[... snip a lot more that has happened ...]\n" +"| * cccc000 (topic) commit C\n" +"| * bbbb000 commit B\n" +"| * aaaa000 commit A\n" +"|/\n" +"o 1234567 branch point\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:26 +#: en/git-cherry.txt:90 +msgid "" +"In such cases, git-cherry shows a concise summary of what has yet to be " +"applied:" +msgstr "" + +#. type: delimited block - +#: en/git-cherry.txt:96 #, no-wrap msgid "" -"*WARNING:* `git cvsimport` uses cvsps version 2, which is considered\n" -"deprecated; it does not work with cvsps version 3 and later. If you are\n" -"performing a one-shot import of a CVS repository consider using\n" -"http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or\n" -"http://www.catb.org/esr/cvs-fast-export/[cvs-fast-export].\n" +"$ git cherry origin/master topic\n" +"- cccc000... commit C\n" +"+ bbbb000... commit B\n" +"- aaaa000... commit A\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:29 +#: en/git-cherry.txt:102 msgid "" -"Imports a CVS repository into Git. It will either create a new repository, " -"or incrementally import into an existing one." +"Here, we see that the commits A and C (marked with `-`) can be dropped from " +"your `topic` branch when you rebase it on top of `origin/master`, while the " +"commit B (marked with `+`) still needs to be kept so that it will be sent to " +"be applied to `origin/master`." +msgstr "" + +#. type: Title ~ +#: en/git-cherry.txt:105 +#, no-wrap +msgid "Using a limit" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:32 +#: en/git-cherry.txt:110 msgid "" -"Splitting the CVS log into patch sets is done by 'cvsps'. At least version " -"2.1 is required." +"The optional <limit> is useful in cases where your topic is based on other " +"work that is not in upstream. Expanding on the previous example, this might " +"look like:" msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:35 +#. type: delimited block - +#: en/git-cherry.txt:126 #, no-wrap msgid "" -"*WARNING:* for certain situations the import leads to incorrect results.\n" -"Please see the section <<issues,ISSUES>> for further reference.\n" +"$ git log --graph --oneline --decorate --boundary origin/master...topic\n" +"* 7654321 (origin/master) upstream tip commit\n" +"[... snip some other commits ...]\n" +"* cccc111 cherry-pick of C\n" +"* aaaa111 cherry-pick of A\n" +"[... snip a lot more that has happened ...]\n" +"| * cccc000 (topic) commit C\n" +"| * bbbb000 commit B\n" +"| * aaaa000 commit A\n" +"| * 0000fff (base) unpublished stuff F\n" +"[... snip ...]\n" +"| * 0000aaa unpublished stuff A\n" +"|/\n" +"o 1234567 merge-base between upstream and topic\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:42 +#: en/git-cherry.txt:130 msgid "" -"You should *never* do any work of your own on the branches that are created " -"by 'git cvsimport'. By default initial import will create and populate a " -"\"master\" branch from the CVS repository's main branch which you're free to " -"work with; after that, you need to 'git merge' incremental imports, or any " -"CVS branches, yourself. It is advisable to specify a named remote via -r to " -"separate and protect the incoming branches." +"By specifying `base` as the limit, you can avoid listing commits between " +"`base` and `topic`:" msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:48 +#. type: delimited block - +#: en/git-cherry.txt:136 +#, no-wrap msgid "" -"If you intend to set up a shared public repository that all developers can " -"read/write, or if you want to use linkgit:git-cvsserver[1], then you " -"probably want to make a bare clone of the imported repository, and use the " -"clone as the shared repository. See linkgit:gitcvs-migration[7]." +"$ git cherry origin/master topic base\n" +"- cccc000... commit C\n" +"+ bbbb000... commit B\n" +"- aaaa000... commit A\n" +msgstr "" + +#. type: Title = +#: en/git-citool.txt:2 +#, no-wrap +msgid "git-citool(1)" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:54 -msgid "Verbosity: let 'cvsimport' report what it is doing." +#: en/git-citool.txt:7 +msgid "git-citool - Graphical alternative to git-commit" msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:55 +#. type: Plain text +#: en/git-citool.txt:12 #, no-wrap -msgid "-d <CVSROOT>" +msgid "'git citool'\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:61 +#: en/git-citool.txt:19 msgid "" -"The root of the CVS archive. May be local (a simple path) or remote; " -"currently, only the :local:, :ext: and :pserver: access methods are " -"supported. If not given, 'git cvsimport' will try to read it from " -"`CVS/Root`. If no such file exists, it checks for the `CVSROOT` environment " -"variable." -msgstr "" - -#. type: Labeled list -#: en/git-cvsimport.txt:62 -#, no-wrap -msgid "<CVS_module>" +"A Tcl/Tk based graphical interface to review modified files, stage them into " +"the index, enter a commit message and record the new commit onto the current " +"branch. This interface is an alternative to the less interactive 'git " +"commit' program." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:66 +#: en/git-citool.txt:22 msgid "" -"The CVS module you want to import. Relative to <CVSROOT>. If not given, " -"'git cvsimport' tries to read it from `CVS/Repository`." +"'git citool' is actually a standard alias for `git gui citool`. See linkgit:" +"git-gui[1] for more details." msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:67 +#. type: Title = +#: en/git-clean.txt:2 #, no-wrap -msgid "-C <target-dir>" +msgid "git-clean(1)" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:69 -msgid "The Git repository to import to. If the directory doesn't" +#: en/git-clean.txt:7 +msgid "git-clean - Remove untracked files from the working tree" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:70 +#: en/git-clean.txt:12 #, no-wrap -msgid "exist, it will be created. Default is the current directory.\n" +msgid "'git clean' [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>...\n" msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:71 -#, no-wrap -msgid "-r <remote>" +#. type: Plain text +#: en/git-clean.txt:18 +msgid "" +"Cleans the working tree by recursively removing files that are not under " +"version control, starting from the current directory." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:75 +#: en/git-clean.txt:22 msgid "" -"The Git remote to import this CVS repository into. Moves all CVS branches " -"into remotes/<remote>/<branch> akin to the way 'git clone' uses 'origin' by " -"default." +"Normally, only files unknown to Git are removed, but if the `-x` option is " +"specified, ignored files are also removed. This can, for example, be useful " +"to remove all build products." msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:76 -#, no-wrap -msgid "-o <branch-for-HEAD>" +#. type: Plain text +#: en/git-clean.txt:25 +msgid "" +"If any optional `<path>...` arguments are given, only those paths are " +"affected." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:84 +#: en/git-clean.txt:33 msgid "" -"When no remote is specified (via -r) the `HEAD` branch from CVS is imported " -"to the 'origin' branch within the Git repository, as `HEAD` already has a " -"special meaning for Git. When a remote is specified the `HEAD` branch is " -"named remotes/<remote>/master mirroring 'git clone' behaviour. Use this " -"option if you want to import into a different branch." +"Remove untracked directories in addition to untracked files. If an " +"untracked directory is managed by a different Git repository, it is not " +"removed by default. Use -f option twice if you really want to remove such a " +"directory." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:87 +#: en/git-clean.txt:41 msgid "" -"Use '-o master' for continuing an import that was initially done by the old " -"cvs2git tool." +"If the Git configuration variable clean.requireForce is not set to false, " +"'git clean' will refuse to delete files or directories unless given -f, -n " +"or -i. Git will refuse to delete directories with .git sub directory or file " +"unless a second -f is given." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:92 +#: en/git-clean.txt:46 msgid "" -"Import-only: don't perform a checkout after importing. This option ensures " -"the working directory and index remain untouched and will not create them if " -"they do not exist." +"Show what would be done and clean files interactively. See ``Interactive " +"mode'' for details." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:97 -msgid "" -"Kill keywords: will extract files with '-kk' from the CVS archive to avoid " -"noisy changesets. Highly recommended, but off by default to preserve " -"compatibility with early imported trees." +#: en/git-clean.txt:50 +msgid "Don't actually remove anything, just show what would be done." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:100 -msgid "Convert underscores in tag and branch names to dots." +#: en/git-clean.txt:55 +msgid "" +"Be quiet, only report errors, but not the files that are successfully " +"removed." msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:101 +#: en/git-clean.txt:56 #, no-wrap -msgid "-s <subst>" -msgstr "" - -#. type: Plain text -#: en/git-cvsimport.txt:103 -msgid "Substitute the character \"/\" in branch names with <subst>" +msgid "-e <pattern>" msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:104 +#: en/git-clean.txt:57 en/git-ls-files.txt:85 en/git-name-rev.txt:33 #, no-wrap -msgid "-p <options-for-cvsps>" +msgid "--exclude=<pattern>" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:107 +#: en/git-clean.txt:61 msgid "" -"Additional options for cvsps. The options `-u` and '-A' are implicit and " -"should not be used here." +"In addition to those found in .gitignore (per directory) and $GIT_DIR/info/" +"exclude, also consider these patterns to be in the set of the ignore rules " +"in effect." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:109 -msgid "If you need to pass multiple options, separate them with a comma." +#: en/git-clean.txt:69 +msgid "" +"Don't use the standard ignore rules read from .gitignore (per directory) and " +"$GIT_DIR/info/exclude, but do still use the ignore rules given with `-e` " +"options. This allows removing all untracked files, including build " +"products. This can be used (possibly in conjunction with 'git reset') to " +"create a pristine working directory to test a clean build." msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:110 +#: en/git-clean.txt:70 #, no-wrap -msgid "-z <fuzz>" +msgid "-X" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:113 +#: en/git-clean.txt:73 msgid "" -"Pass the timestamp fuzz factor to cvsps, in seconds. If unset, cvsps " -"defaults to 300s." +"Remove only files ignored by Git. This may be useful to rebuild everything " +"from scratch, but keep manually created files." msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:114 +#. type: Title - +#: en/git-clean.txt:75 #, no-wrap -msgid "-P <cvsps-output-file>" -msgstr "" - -#. type: Plain text -#: en/git-cvsimport.txt:117 -msgid "" -"Instead of calling cvsps, read the provided cvsps output file. Useful for " -"debugging or when cvsps is being handled outside cvsimport." +msgid "Interactive mode" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:122 +#: en/git-clean.txt:79 msgid "" -"Attempt to detect merges based on the commit message. This option will " -"enable default regexes that try to capture the source branch name from the " -"commit message." +"When the command enters the interactive mode, it shows the files and " +"directories to be cleaned, and goes into its interactive command loop." msgstr "" -#. type: Labeled list -#: en/git-cvsimport.txt:123 +#. type: delimited block - +#: en/git-clean.txt:90 #, no-wrap -msgid "-M <regex>" -msgstr "" - -#. type: Plain text -#: en/git-cvsimport.txt:127 msgid "" -"Attempt to detect merges based on the commit message with a custom regex. It " -"can be used with `-m` to enable the default regexes as well. You must escape " -"forward slashes." +" *** Commands ***\n" +"\t1: clean 2: filter by pattern 3: select by numbers\n" +"\t4: ask each 5: quit 6: help\n" +" What now> 1\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:129 -msgid "The regex must capture the source branch name in $1." +#: en/git-clean.txt:93 +msgid "" +"You also could say `c` or `clean` above as long as the choice is unique." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:131 -msgid "This option can be used several times to provide several detection regexes." +#: en/git-clean.txt:95 +msgid "The main command loop has 6 subcommands." msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:132 +#: en/git-clean.txt:96 #, no-wrap -msgid "-S <regex>" +msgid "clean" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:134 -msgid "Skip paths matching the regex." +#: en/git-clean.txt:99 +msgid "Start cleaning files and directories, and then quit." +msgstr "" + +#. type: Labeled list +#: en/git-clean.txt:100 +#, no-wrap +msgid "filter by pattern" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:138 +#: en/git-clean.txt:108 msgid "" -"Import all commits, including recent ones. cvsimport by default skips " -"commits that have a timestamp less than 10 minutes ago." +"This shows the files and directories to be deleted and issues an \"Input " +"ignore patterns>>\" prompt. You can input space-separated patterns to " +"exclude files and directories from deletion. E.g. \"*.c *.h\" will excludes " +"files end with \".c\" and \".h\" from deletion. When you are satisfied with " +"the filtered result, press ENTER (empty) back to the main menu." msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:139 +#: en/git-clean.txt:109 #, no-wrap -msgid "-L <limit>" +msgid "select by numbers" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:142 +#: en/git-clean.txt:120 msgid "" -"Limit the number of commits imported. Workaround for cases where cvsimport " -"leaks memory." +"This shows the files and directories to be deleted and issues an \"Select " +"items to delete>>\" prompt. When the prompt ends with double '>>' like this, " +"you can make more than one selection, concatenated with whitespace or " +"comma. Also you can say ranges. E.g. \"2-5 7,9\" to choose 2,3,4,5,7,9 " +"from the list. If the second number in a range is omitted, all remaining " +"items are selected. E.g. \"7-\" to choose 7,8,9 from the list. You can say " +"'*' to choose everything. Also when you are satisfied with the filtered " +"result, press ENTER (empty) back to the main menu." msgstr "" #. type: Labeled list -#: en/git-cvsimport.txt:143 +#: en/git-clean.txt:121 #, no-wrap -msgid "-A <author-conv-file>" +msgid "ask each" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:148 +#: en/git-clean.txt:126 msgid "" -"CVS by default uses the Unix username when writing its commit logs. Using " -"this option and an author-conv-file maps the name recorded in CVS to author " -"name, e-mail and optional time zone:" +"This will start to clean, and you must confirm one by one in order to delete " +"items. Please note that this action is not as efficient as the above two " +"actions." msgstr "" -#. type: delimited block - -#: en/git-cvsimport.txt:152 +#. type: Labeled list +#: en/git-clean.txt:127 #, no-wrap -msgid "" -"\texon=Andreas Ericsson <ae@op5.se>\n" -"\tspawn=Simon Pawn <spawn@frog-pond.org> America/Chicago\n" +msgid "quit" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:159 -msgid "" -"'git cvsimport' will make it appear as those authors had their " -"GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along. If a time zone " -"is specified, GIT_AUTHOR_DATE will have the corresponding offset applied." +#: en/git-clean.txt:130 +msgid "This lets you quit without do cleaning." msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:163 -msgid "" -"For convenience, this data is saved to `$GIT_DIR/cvs-authors` each time the " -"'-A' option is provided and read from that same file each time 'git " -"cvsimport' is run." +#. type: Labeled list +#: en/git-clean.txt:131 +#, no-wrap +msgid "help" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:167 -msgid "" -"It is not recommended to use this feature if you intend to export changes " -"back to CVS again later with 'git cvsexportcommit'." +#: en/git-clean.txt:134 +msgid "Show brief usage of interactive git-clean." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:173 -msgid "" -"Generate a `$GIT_DIR/cvs-revisions` file containing a mapping from CVS " -"revision numbers to newly-created Git commit IDs. The generated file will " -"contain one line for each (filename, revision) pair imported; each line will " -"look like" +#: en/git-clean.txt:138 en/git-status.txt:432 +msgid "linkgit:gitignore[5]" msgstr "" -#. type: delimited block - -#: en/git-cvsimport.txt:176 +#. type: Title = +#: en/git-clone.txt:2 #, no-wrap -msgid "src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7\n" +msgid "git-clone(1)" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:180 -msgid "" -"The revision data is appended to the file if it already exists, for use when " -"doing incremental imports." +#: en/git-clone.txt:7 +msgid "git-clone - Clone a repository into a new directory" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:183 +#: en/git-clone.txt:19 +#, no-wrap msgid "" -"This option may be useful if you have CVS revision numbers stored in commit " -"messages, bug-tracking systems, email archives, and the like." +"'git clone' [--template=<template_directory>]\n" +"\t [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]\n" +"\t [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]\n" +"\t [--dissociate] [--separate-git-dir <git dir>]\n" +"\t [--depth <depth>] [--[no-]single-branch] [--no-tags]\n" +"\t [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]\n" +"\t [--jobs <n>] [--] <repository> [<directory>]\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:186 -msgid "Print a short usage message and exit." +#: en/git-clone.txt:28 +msgid "" +"Clones a repository into a newly created directory, creates remote-tracking " +"branches for each branch in the cloned repository (visible using `git branch " +"-r`), and creates and checks out an initial branch that is forked from the " +"cloned repository's currently active branch." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:190 -msgid "If `-v` is specified, the script reports what it is doing." +#: en/git-clone.txt:34 +msgid "" +"After the clone, a plain `git fetch` without arguments will update all the " +"remote-tracking branches, and a `git pull` without arguments will in " +"addition merge the remote master branch into the current master branch, if " +"any (this is untrue when \"--single-branch\" is given; see below)." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:193 +#: en/git-clone.txt:39 msgid "" -"Otherwise, success is indicated the Unix way, i.e. by simply exiting with a " -"zero exit status." +"This default configuration is achieved by creating references to the remote " +"branch heads under `refs/remotes/origin` and by initializing `remote.origin." +"url` and `remote.origin.fetch` configuration variables." msgstr "" -#. type: Title - -#: en/git-cvsimport.txt:196 +#. type: Labeled list +#: en/git-clone.txt:43 en/git-config.txt:127 en/git-instaweb.txt:24 +#: en/git-pack-objects.txt:142 en/git-svn.txt:245 #, no-wrap -msgid "ISSUES" -msgstr "" - -#. type: Plain text -#: en/git-cvsimport.txt:198 -msgid "Problems related to timestamps:" +msgid "--local" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:202 +#: en/git-clone.txt:51 msgid "" -"If timestamps of commits in the CVS repository are not stable enough to be " -"used for ordering commits changes may show up in the wrong order." +"When the repository to clone from is on a local machine, this flag bypasses " +"the normal \"Git aware\" transport mechanism and clones the repository by " +"making a copy of HEAD and everything under objects and refs directories. " +"The files under `.git/objects/` directory are hardlinked to save space when " +"possible." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:204 +#: en/git-clone.txt:58 msgid "" -"If any files were ever \"cvs import\"ed more than once (e.g., import of more " -"than one vendor release) the HEAD contains the wrong content." +"If the repository is specified as a local path (e.g., `/path/to/repo`), this " +"is the default, and --local is essentially a no-op. If the repository is " +"specified as a URL, then this flag is ignored (and we never use the local " +"optimizations). Specifying `--no-local` will override the default when `/" +"path/to/repo` is given, using the regular Git transport instead." msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:207 -msgid "" -"If the timestamp order of different files cross the revision order within " -"the commit matching time window the order of commits may be wrong." +#. type: Labeled list +#: en/git-clone.txt:59 +#, no-wrap +msgid "--no-hardlinks" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:209 -msgid "Problems related to branches:" +#: en/git-clone.txt:64 +msgid "" +"Force the cloning process from a repository on a local filesystem to copy " +"the files under the `.git/objects` directory instead of using hardlinks. " +"This may be desirable if you are trying to make a back-up of your repository." msgstr "" -#. type: Plain text -#: en/git-cvsimport.txt:211 -msgid "Branches on which no commits have been made are not imported." +#. type: Labeled list +#: en/git-clone.txt:65 +#, no-wrap +msgid "--shared" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:213 +#: en/git-clone.txt:72 msgid "" -"All files from the branching point are added to a branch even if never added " -"in CVS." +"When the repository to clone is on the local machine, instead of using hard " +"links, automatically setup `.git/objects/info/alternates` to share the " +"objects with the source repository. The resulting repository starts out " +"without any object of its own." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:216 +#: en/git-clone.txt:82 +#, no-wrap msgid "" -"This applies to files added to the source branch *after* a daughter branch " -"was created: if previously no commit was made on the daughter branch they " -"will erroneously be added to the daughter branch in git." +"*NOTE*: this is a possibly dangerous operation; do *not* use\n" +"it unless you understand what it does. If you clone your\n" +"repository using this option and then delete branches (or use any\n" +"other Git command that makes any existing commit unreferenced) in the\n" +"source repository, some objects may become unreferenced (or dangling).\n" +"These objects may be removed by normal Git operations (such as `git commit`)\n" +"which automatically call `git gc --auto`. (See linkgit:git-gc[1].)\n" +"If these objects are removed and were referenced by the cloned repository,\n" +"then the cloned repository will become corrupt.\n" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:218 -msgid "Problems related to tags:" +#: en/git-clone.txt:88 +msgid "" +"Note that running `git repack` without the `-l` option in a repository " +"cloned with `-s` will copy objects from the source repository into a pack in " +"the cloned repository, removing the disk space savings of `clone -s`. It is " +"safe, however, to run `git gc`, which uses the `-l` option by default." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:220 -msgid "Multiple tags on the same revision are not imported." +#: en/git-clone.txt:92 +msgid "" +"If you want to break the dependency of a repository cloned with `-s` on its " +"source repository, you can simply run `git repack -a` to copy all objects " +"from the source repository into a pack in the cloned repository." +msgstr "" + +#. type: Labeled list +#: en/git-clone.txt:93 +#, no-wrap +msgid "--reference[-if-able] <repository>" msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:223 +#: en/git-clone.txt:103 msgid "" -"If you suspect that any of these issues may apply to the repository you want " -"to import, consider using cvs2git:" +"If the reference repository is on the local machine, automatically setup `." +"git/objects/info/alternates` to obtain objects from the reference " +"repository. Using an already existing repository as an alternate will " +"require fewer objects to be copied from the repository being cloned, " +"reducing network and local storage costs. When using the `--reference-if-" +"able`, a non existing directory is skipped with a warning instead of " +"aborting the clone." msgstr "" #. type: Plain text -#: en/git-cvsimport.txt:225 -msgid "cvs2git (part of cvs2svn), `http://subversion.apache.org/`" +#: en/git-clone.txt:106 +#, no-wrap +msgid "" +"*NOTE*: see the NOTE for the `--shared` option, and also the\n" +"`--dissociate` option.\n" msgstr "" -#. type: Title = -#: en/git-cvsserver.txt:2 +#. type: Labeled list +#: en/git-clone.txt:107 en/git-submodule.txt:380 #, no-wrap -msgid "git-cvsserver(1)" +msgid "--dissociate" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:7 -msgid "git-cvsserver - A CVS server emulator for Git" +#: en/git-clone.txt:117 +msgid "" +"Borrow the objects from reference repositories specified with the `--" +"reference` options only to reduce network transfer, and stop borrowing from " +"them after a clone is made by making necessary local copies of borrowed " +"objects. This option can also be used when cloning locally from a " +"repository that already borrows objects from another repository--the new " +"repository will borrow objects from the same repository, and this option can " +"be used to stop the borrowing." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:12 -msgid "SSH:" +#: en/git-clone.txt:122 +msgid "" +"Operate quietly. Progress is not reported to the standard error stream." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:16 -#, no-wrap +#: en/git-clone.txt:127 msgid "" -"export CVS_SERVER=\"git cvsserver\"\n" -"'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>\n" +"Run verbosely. Does not affect the reporting of progress status to the " +"standard error stream." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:18 -msgid "pserver (/etc/inetd.conf):" +#: en/git-clone.txt:137 +msgid "No checkout of HEAD is performed after the clone is complete." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:21 +#. type: Labeled list +#: en/git-clone.txt:138 en/git-init.txt:46 en/git-p4.txt:305 en/git.txt:133 #, no-wrap -msgid "" -"cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver " -"pserver\n" +msgid "--bare" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:23 -msgid "Usage:" +#: en/git-clone.txt:149 +msgid "" +"Make a 'bare' Git repository. That is, instead of creating `<directory>` " +"and placing the administrative files in `<directory>/.git`, make the " +"`<directory>` itself the `$GIT_DIR`. This obviously implies the `-n` because " +"there is nowhere to check out the working tree. Also the branch heads at " +"the remote are copied directly to corresponding local branch heads, without " +"mapping them to `refs/remotes/origin/`. When this option is used, neither " +"remote-tracking branches nor the related configuration variables are created." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:26 +#. type: Labeled list +#: en/git-clone.txt:150 en/git-push.txt:161 #, no-wrap -msgid "'git-cvsserver' [options] [pserver|server] [<directory> ...]\n" +msgid "--mirror" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:33 +#: en/git-clone.txt:157 msgid "" -"All these options obviously only make sense if enforced by the server side. " -"They have been implemented to resemble the linkgit:git-daemon[1] options as " -"closely as possible." +"Set up a mirror of the source repository. This implies `--bare`. Compared " +"to `--bare`, `--mirror` not only maps local branches of the source to local " +"branches of the target, it maps all refs (including remote-tracking " +"branches, notes etc.) and sets up a refspec configuration such that all " +"these refs are overwritten by a `git remote update` in the target repository." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:34 +#: en/git-clone.txt:158 #, no-wrap -msgid "--base-path <path>" -msgstr "" - -#. type: Plain text -#: en/git-cvsserver.txt:36 -msgid "Prepend 'path' to requested CVSROOT" +msgid "--origin <name>" msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:37 en/git-daemon.txt:48 +#: en/git-clone.txt:159 #, no-wrap -msgid "--strict-paths" +msgid "-o <name>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:39 -msgid "Don't allow recursing into subdirectories" +#: en/git-clone.txt:162 +msgid "" +"Instead of using the remote name `origin` to keep track of the upstream " +"repository, use `<name>`." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:40 en/git-daemon.txt:77 +#: en/git-clone.txt:163 #, no-wrap -msgid "--export-all" -msgstr "" - -#. type: Plain text -#: en/git-cvsserver.txt:43 -msgid "" -"Don't check for `gitcvs.enabled` in config. You also have to specify a list " -"of allowed directories (see below) if you want to use this option." +msgid "--branch <name>" msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:44 +#: en/git-clone.txt:164 #, no-wrap -msgid "-V" +msgid "-b <name>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:47 -msgid "Print version information and exit" +#: en/git-clone.txt:171 +msgid "" +"Instead of pointing the newly created HEAD to the branch pointed to by the " +"cloned repository's HEAD, point to `<name>` branch instead. In a non-bare " +"repository, this is the branch that will be checked out. `--branch` can " +"also take tags and detaches the HEAD at that commit in the resulting " +"repository." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:52 -msgid "Print usage information and exit" +#. type: Labeled list +#: en/git-clone.txt:173 +#, no-wrap +msgid "-u <upload-pack>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:58 +#: en/git-clone.txt:177 msgid "" -"You can specify a list of allowed directories. If no directories are given, " -"all are allowed. This is an additional restriction, gitcvs access still " -"needs to be enabled by the `gitcvs.enabled` config option unless " -"`--export-all` was given, too." +"When given, and the repository to clone from is accessed via ssh, this " +"specifies a non-default path for the command run on the other end." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:64 -msgid "This application is a CVS emulation layer for Git." +#. type: Labeled list +#: en/git-clone.txt:178 en/git-init.txt:51 en/git-svn.txt:578 +#, no-wrap +msgid "--template=<template_directory>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:68 +#: en/git-clone.txt:181 msgid "" -"It is highly functional. However, not all methods are implemented, and for " -"those methods that are implemented, not all switches are implemented." +"Specify the directory from which templates will be used; (See the \"TEMPLATE " +"DIRECTORY\" section of linkgit:git-init[1].)" msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:71 -msgid "" -"Testing has been done using both the CLI CVS client, and the Eclipse CVS " -"plugin. Most functionality works fine with both of these clients." +#. type: Labeled list +#: en/git-clone.txt:182 +#, no-wrap +msgid "--config <key>=<value>" msgstr "" -#. type: Title - -#: en/git-cvsserver.txt:73 +#. type: Labeled list +#: en/git-clone.txt:183 #, no-wrap -msgid "LIMITATIONS" +msgid "-c <key>=<value>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:76 -msgid "CVS clients cannot tag, branch or perform Git merges." +#: en/git-clone.txt:192 +msgid "" +"Set a configuration variable in the newly-created repository; this takes " +"effect immediately after the repository is initialized, but before the " +"remote history is fetched or any files checked out. The key is in the same " +"format as expected by linkgit:git-config[1] (e.g., `core.eol=true`). If " +"multiple values are given for the same key, each value will be written to " +"the config file. This makes it safe, for example, to add additional fetch " +"refspecs to the origin remote." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:80 +#: en/git-clone.txt:198 msgid "" -"'git-cvsserver' maps Git branches to CVS modules. This is very different " -"from what most CVS users would expect since in CVS modules usually represent " -"one or more directories." +"Due to limitations of the current implementation, some configuration " +"variables do not take effect until after the initial fetch and checkout. " +"Configuration variables known to not take effect are: `remote.<name>.mirror` " +"and `remote.<name>.tagOpt`. Use the corresponding `--mirror` and `--no-" +"tags` options instead." msgstr "" -#. type: Title - -#: en/git-cvsserver.txt:82 +#. type: Labeled list +#: en/git-clone.txt:199 #, no-wrap -msgid "INSTALLATION" +msgid "--depth <depth>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:86 +#: en/git-clone.txt:205 msgid "" -"If you are going to offer CVS access via pserver, add a line in " -"/etc/inetd.conf like" +"Create a 'shallow' clone with a history truncated to the specified number of " +"commits. Implies `--single-branch` unless `--no-single-branch` is given to " +"fetch the histories near the tips of all branches. If you want to clone " +"submodules shallowly, also pass `--shallow-submodules`." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:90 -#, no-wrap -msgid " cvspserver stream tcp nowait nobody git-cvsserver pserver\n" +#. type: Plain text +#: en/git-clone.txt:208 +msgid "Create a shallow clone with a history after the specified time." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:96 +#: en/git-clone.txt:213 msgid "" -"Note: Some inetd servers let you specify the name of the executable " -"independently of the value of argv[0] (i.e. the name the program assumes it " -"was executed with). In this case the correct line in /etc/inetd.conf looks " -"like" +"Create a shallow clone with a history, excluding commits reachable from a " +"specified remote branch or tag. This option can be specified multiple times." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:99 +#. type: Labeled list +#: en/git-clone.txt:214 #, no-wrap -msgid "" -" cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver " -"pserver\n" +msgid "--[no-]single-branch" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:106 +#: en/git-clone.txt:223 msgid "" -"Only anonymous access is provided by pserve by default. To commit you will " -"have to create pserver accounts, simply add a gitcvs.authdb setting in the " -"config file of the repositories you want the cvsserver to allow writes to, " -"for example:" +"Clone only the history leading to the tip of a single branch, either " +"specified by the `--branch` option or the primary branch remote's `HEAD` " +"points at. Further fetches into the resulting repository will only update " +"the remote-tracking branch for the branch this option was used for the " +"initial cloning. If the HEAD at the remote did not point at any branch when " +"`--single-branch` clone was made, no remote-tracking branch is created." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:111 -#, no-wrap +#. type: Plain text +#: en/git-clone.txt:230 msgid "" -" [gitcvs]\n" -"\tauthdb = /etc/cvsserver/passwd\n" +"Don't clone any tags, and set `remote.<remote>.tagOpt=--no-tags` in the " +"config, ensuring that future `git pull` and `git fetch` operations won't " +"follow any tags. Subsequent explicit tag fetches will still work, (see " +"linkgit:git-fetch[1])." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:115 +#: en/git-clone.txt:235 msgid "" -"The format of these files is username followed by the encrypted password, " -"for example:" +"Can be used in conjunction with `--single-branch` to clone and maintain a " +"branch with no references other than a single cloned branch. This is useful " +"e.g. to maintain minimal clones of the default branch of some repository for " +"search indexing." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:119 +#. type: Labeled list +#: en/git-clone.txt:236 #, no-wrap -msgid "" -" myuser:$1Oyx5r9mdGZ2\n" -" myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./\n" +msgid "--recurse-submodules[=<pathspec]" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:123 +#: en/git-clone.txt:244 msgid "" -"You can use the 'htpasswd' facility that comes with Apache to make these " -"files, but Apache's MD5 crypt method differs from the one used by most C " -"library's crypt() function, so don't use the -m option." +"After the clone is created, initialize and clone submodules within based on " +"the provided pathspec. If no pathspec is provided, all submodules are " +"initialized and cloned. This option can be given multiple times for " +"pathspecs consisting of multiple entries. The resulting clone has " +"`submodule.active` set to the provided pathspec, or \".\" (meaning all " +"submodules) if no pathspec is provided." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:125 -msgid "Alternatively you can produce the password with perl's crypt() operator:" +#: en/git-clone.txt:251 +msgid "" +"Submodules are initialized and cloned using their default settings. This is " +"equivalent to running `git submodule update --init --recursive <pathspec>` " +"immediately after the clone is finished. This option is ignored if the " +"cloned repository does not have a worktree/checkout (i.e. if any of `--no-" +"checkout`/`-n`, `--bare`, or `--mirror` is given)" msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:127 +#. type: Labeled list +#: en/git-clone.txt:252 #, no-wrap -msgid "" -" perl -e 'my ($user, $pass) = @ARGV; printf \"%s:%s\\n\", $user, " -"crypt($user, $pass)' $USER password\n" +msgid "--[no-]shallow-submodules" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:130 -msgid "Then provide your password via the pserver method, for example:" +#: en/git-clone.txt:254 +msgid "All submodules which are cloned will be shallow with a depth of 1." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:132 +#. type: Labeled list +#: en/git-clone.txt:255 en/git-init.txt:56 #, no-wrap -msgid "" -" cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co " -"<HEAD_name>\n" -msgstr "" - -#. type: Plain text -#: en/git-cvsserver.txt:136 -msgid "" -"No special setup is needed for SSH access, other than having Git tools in " -"the PATH. If you have clients that do not accept the CVS_SERVER environment " -"variable, you can rename 'git-cvsserver' to `cvs`." +msgid "--separate-git-dir=<git dir>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:139 +#: en/git-clone.txt:261 msgid "" -"Note: Newer CVS versions (>= 1.12.11) also support specifying CVS_SERVER " -"directly in CVSROOT like" +"Instead of placing the cloned repository where it is supposed to be, place " +"the cloned repository at the specified directory, then make a filesystem-" +"agnostic Git symbolic link to there. The result is Git repository can be " +"separated from working tree." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:142 +#. type: Labeled list +#: en/git-clone.txt:262 en/git-submodule.txt:404 #, no-wrap -msgid "" -"cvs -d \":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git\" co " -"<HEAD_name>\n" +msgid "-j <n>" msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:148 -msgid "" -"This has the advantage that it will be saved in your 'CVS/Root' files and " -"you don't need to worry about always setting the correct environment " -"variable. SSH users restricted to 'git-shell' don't need to override the " -"default with CVS_SERVER (and shouldn't) as 'git-shell' understands `cvs` to " -"mean 'git-cvsserver' and pretends that the other end runs the real 'cvs' " -"better." +#. type: Labeled list +#: en/git-clone.txt:263 en/git-submodule.txt:405 +#, no-wrap +msgid "--jobs <n>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:151 +#: en/git-clone.txt:266 msgid "" -"For each repo that you want accessible from CVS you need to edit config in " -"the repo and add the following section." +"The number of submodules fetched at the same time. Defaults to the " +"`submodule.fetchJobs` option." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:158 +#. type: Labeled list +#: en/git-clone.txt:267 en/git-fetch-pack.txt:114 en/git-ls-remote.txt:81 +#: en/git-push.txt:50 en/pull-fetch-param.txt:1 #, no-wrap -msgid "" -" [gitcvs]\n" -" enabled=1\n" -" # optional for debugging\n" -"\tlogFile=/path/to/logfile\n" +msgid "<repository>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:164 +#: en/git-clone.txt:271 msgid "" -"Note: you need to ensure each user that is going to invoke 'git-cvsserver' " -"has write access to the log file and to the database (see " -"<<dbbackend,Database Backend>>. If you want to offer write access over SSH, " -"the users of course also need write access to the Git repository itself." +"The (possibly remote) repository to clone from. See the <<URLS,GIT URLS>> " +"section below for more information on specifying repositories." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:167 -msgid "" -"You also need to ensure that each repository is \"bare\" (without a Git " -"index file) for `cvs commit` to work. See linkgit:gitcvs-migration[7]." +#. type: Labeled list +#: en/git-clone.txt:272 en/git-cvsserver.txt:53 en/git-daemon.txt:220 +#: en/git-receive-pack.txt:41 en/git-send-pack.txt:95 +#: en/git-upload-archive.txt:57 en/git-upload-pack.txt:44 +#, no-wrap +msgid "<directory>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:173 +#: en/git-clone.txt:278 msgid "" -"All configuration variables can also be overridden for a specific method of " -"access. Valid method names are \"ext\" (for SSH access) and \"pserver\". The " -"following example configuration would disable pserver access while still " -"allowing access over SSH." +"The name of a new directory to clone into. The \"humanish\" part of the " +"source repository is used if no directory is explicitly given (`repo` for `/" +"path/to/repo.git` and `foo` for `host.xz:foo/.git`). Cloning into an " +"existing directory is only allowed if the directory is empty." msgstr "" -#. type: delimited block - -#: en/git-cvsserver.txt:176 -#, no-wrap -msgid "" -" [gitcvs]\n" -" enabled=0\n" +#. type: Plain text +#: en/git-clone.txt:286 +msgid "Clone from upstream:" msgstr "" #. type: delimited block - -#: en/git-cvsserver.txt:179 +#: en/git-clone.txt:291 #, no-wrap msgid "" -" [gitcvs \"ext\"]\n" -" enabled=1\n" +"$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux\n" +"$ cd my-linux\n" +"$ make\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:186 +#: en/git-clone.txt:295 msgid "" -"If you didn't specify the CVSROOT/CVS_SERVER directly in the checkout " -"command, automatically saving it in your 'CVS/Root' files, then you need to " -"set them explicitly in your environment. CVSROOT should be set as per " -"normal, but the directory should point at the appropriate Git repo. As " -"above, for SSH clients _not_ restricted to 'git-shell', CVS_SERVER should be " -"set to 'git-cvsserver'." +"Make a local clone that borrows from the current directory, without checking " +"things out:" msgstr "" #. type: delimited block - -#: en/git-cvsserver.txt:191 +#: en/git-clone.txt:300 #, no-wrap msgid "" -" export CVSROOT=:ext:user@server:/var/git/project.git\n" -" export CVS_SERVER=\"git cvsserver\"\n" +"$ git clone -l -s -n . ../copy\n" +"$ cd ../copy\n" +"$ git show-branch\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:198 +#: en/git-clone.txt:304 +msgid "Clone from upstream while borrowing from an existing local directory:" +msgstr "" + +#. type: delimited block - +#: en/git-clone.txt:310 +#, no-wrap msgid "" -"For SSH clients that will make commits, make sure their server-side " -".ssh/environment files (or .bashrc, etc., according to their specific shell) " -"export appropriate values for GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, " -"GIT_COMMITTER_NAME, and GIT_COMMITTER_EMAIL. For SSH clients whose login " -"shell is bash, .bashrc may be a reasonable alternative." +"$ git clone --reference /git/linux.git \\\n" +"\tgit://git.kernel.org/pub/scm/.../linux.git \\\n" +"\tmy-linux\n" +"$ cd my-linux\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:204 -msgid "" -"Clients should now be able to check out the project. Use the CVS 'module' " -"name to indicate what Git 'head' you want to check out. This also sets the " -"name of your newly checked-out directory, unless you tell it otherwise with " -"`-d <dir_name>`. For example, this checks out 'master' branch to the " -"`project-master` directory:" +#: en/git-clone.txt:314 +msgid "Create a bare repository to publish your changes to the public:" msgstr "" #. type: delimited block - -#: en/git-cvsserver.txt:207 +#: en/git-clone.txt:317 #, no-wrap -msgid " cvs co -d project-master master\n" +msgid "$ git clone --bare -l /home/proj/.git /pub/scm/proj.git\n" msgstr "" -#. type: Title - -#: en/git-cvsserver.txt:211 +#. type: Title = +#: en/git-column.txt:2 #, no-wrap -msgid "Database Backend" -msgstr "" - -#. type: Plain text -#: en/git-cvsserver.txt:217 -msgid "" -"'git-cvsserver' uses one database per Git head (i.e. CVS module) to store " -"information about the repository to maintain consistent CVS revision " -"numbers. The database needs to be updated (i.e. written to) after every " -"commit." +msgid "git-column(1)" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:222 -msgid "" -"If the commit is done directly by using `git` (as opposed to using " -"'git-cvsserver') the update will need to happen on the next repository " -"access by 'git-cvsserver', independent of access method and requested " -"operation." +#: en/git-column.txt:7 +msgid "git-column - Display data in columns" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:227 +#: en/git-column.txt:13 +#, no-wrap msgid "" -"That means that even if you offer only read access (e.g. by using the " -"pserver method), 'git-cvsserver' should have write access to the database to " -"work reliably (otherwise you need to make sure that the database is " -"up-to-date any time 'git-cvsserver' is executed)." +"'git column' [--command=<name>] [--[raw-]mode=<mode>] [--width=<width>]\n" +"\t [--indent=<string>] [--nl=<string>] [--padding=<n>]\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:234 +#: en/git-column.txt:20 msgid "" -"By default it uses SQLite databases in the Git directory, named " -"`gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates " -"temporary files in the same directory as the database file on write so it " -"might not be enough to grant the users using 'git-cvsserver' write access to " -"the database file without granting them write access to the directory, too." +"This command formats the lines of its standard input into a table with " +"multiple columns. Each input line occupies one cell of the table. It is used " +"internally by other git commands to format output into columns." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:246 -msgid "" -"The database can not be reliably regenerated in a consistent form after the " -"branch it is tracking has changed. Example: For merged branches, " -"'git-cvsserver' only tracks one branch of development, and after a 'git " -"merge' an incrementally updated database may track a different branch than a " -"database regenerated from scratch, causing inconsistent CVS revision " -"numbers. `git-cvsserver` has no way of knowing which branch it would have " -"picked if it had been run incrementally pre-merge. So if you have to fully " -"or partially (from old backup) regenerate the database, you should be " -"suspicious of pre-existing CVS sandboxes." +#. type: Labeled list +#: en/git-column.txt:23 +#, no-wrap +msgid "--command=<name>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:249 +#: en/git-column.txt:26 msgid "" -"You can configure the database backend with the following configuration " -"variables:" +"Look up layout mode using configuration variable column.<name> and column.ui." msgstr "" -#. type: Title ~ -#: en/git-cvsserver.txt:251 +#. type: Labeled list +#: en/git-column.txt:27 #, no-wrap -msgid "Configuring database backend" +msgid "--mode=<mode>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:256 +#: en/git-column.txt:30 msgid "" -"'git-cvsserver' uses the Perl DBI module. Please also read its documentation " -"if changing these variables, especially about `DBI->connect()`." +"Specify layout mode. See configuration variable column.ui for option syntax " +"in linkgit:git-config[1]." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:257 en/config.txt:1567 +#: en/git-column.txt:31 #, no-wrap -msgid "gitcvs.dbName" +msgid "--raw-mode=<n>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:263 +#: en/git-column.txt:34 msgid "" -"Database name. The exact meaning depends on the selected database driver, " -"for SQLite this is a filename. Supports variable substitution (see " -"below). May not contain semicolons (`;`). Default: '%Ggitcvs.%m.sqlite'" +"Same as --mode but take mode encoded as a number. This is mainly used by " +"other commands that have already parsed layout mode." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:264 en/config.txt:1575 +#: en/git-column.txt:35 #, no-wrap -msgid "gitcvs.dbDriver" +msgid "--width=<width>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:272 +#: en/git-column.txt:38 msgid "" -"Used DBI driver. You can specify any available driver for this here, but it " -"might not work. cvsserver is tested with 'DBD::SQLite', reported to work " -"with 'DBD::Pg', and reported *not* to work with 'DBD::mysql'. Please regard " -"this as an experimental feature. May not contain colons (`:`). Default: " -"'SQLite'" +"Specify the terminal width. By default 'git column' will detect the terminal " +"width, or fall back to 80 if it is unable to do so." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:273 +#: en/git-column.txt:39 #, no-wrap -msgid "gitcvs.dbuser" +msgid "--indent=<string>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:277 -msgid "" -"Database user. Only useful if setting `dbDriver`, since SQLite has no " -"concept of database users. Supports variable substitution (see below)." +#: en/git-column.txt:41 +msgid "String to be printed at the beginning of each line." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:278 +#: en/git-column.txt:42 #, no-wrap -msgid "gitcvs.dbPass" +msgid "--nl=<N>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:281 +#: en/git-column.txt:45 msgid "" -"Database password. Only useful if setting `dbDriver`, since SQLite has no " -"concept of database passwords." +"String to be printed at the end of each line, including newline character." msgstr "" #. type: Labeled list -#: en/git-cvsserver.txt:282 en/config.txt:1589 +#: en/git-column.txt:46 #, no-wrap -msgid "gitcvs.dbTableNamePrefix" +msgid "--padding=<N>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:286 -msgid "" -"Database table name prefix. Supports variable substitution (see below). " -"Any non-alphabetic characters will be replaced with underscores." +#: en/git-column.txt:48 +msgid "The number of spaces between columns. One space by default." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:288 -msgid "" -"All variables can also be set per access method, see " -"<<configaccessmethod,above>>." +#: en/git-column.txt:53 +msgid "Format data by columns:" msgstr "" -#. type: Title ^ -#: en/git-cvsserver.txt:290 +#. type: delimited block - +#: en/git-column.txt:58 #, no-wrap -msgid "Variable substitution" +msgid "" +"$ seq 1 24 | git column --mode=column --padding=5\n" +"1 4 7 10 13 16 19 22\n" +"2 5 8 11 14 17 20 23\n" +"3 6 9 12 15 18 21 24\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:292 -msgid "In `dbDriver` and `dbUser` you can use the following variables:" +#: en/git-column.txt:61 +msgid "Format data by rows:" msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:308 +#. type: delimited block - +#: en/git-column.txt:66 #, no-wrap msgid "" -"%G::\n" -"\tGit directory name\n" -"%g::\n" -"\tGit directory name, where all characters except for\n" -"\talpha-numeric ones, `.`, and `-` are replaced with\n" -"\t`_` (this should make it easier to use the directory\n" -"\tname in a filename if wanted)\n" -"%m::\n" -"\tCVS module/Git head name\n" -"%a::\n" -"\taccess method (one of \"ext\" or \"pserver\")\n" -"%u::\n" -"\tName of the user running 'git-cvsserver'.\n" -"\tIf no name can be determined, the\n" -"\tnumeric uid is used.\n" +"$ seq 1 21 | git column --mode=row --padding=5\n" +"1 2 3 4 5 6 7\n" +"8 9 10 11 12 13 14\n" +"15 16 17 18 19 20 21\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:314 +#: en/git-column.txt:69 +msgid "List some tags in a table with unequal column widths:" +msgstr "" + +#. type: delimited block - +#: en/git-column.txt:75 +#, no-wrap msgid "" -"These variables obviate the need for command-line options in some " -"circumstances, allowing easier restricted usage through git-shell." +"$ git tag --list 'v2.4.*' --column=row,dense\n" +"v2.4.0 v2.4.0-rc0 v2.4.0-rc1 v2.4.0-rc2 v2.4.0-rc3\n" +"v2.4.1 v2.4.10 v2.4.11 v2.4.12 v2.4.2\n" +"v2.4.3 v2.4.4 v2.4.5 v2.4.6 v2.4.7\n" +"v2.4.8 v2.4.9\n" msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:316 -msgid "GIT_CVSSERVER_BASE_PATH takes the place of the argument to --base-path." +#. type: Title = +#: en/git-commit-tree.txt:2 +#, no-wrap +msgid "git-commit-tree(1)" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:320 -msgid "" -"GIT_CVSSERVER_ROOT specifies a single-directory whitelist. The repository " -"must still be configured to allow access through git-cvsserver, as described " -"above." +#: en/git-commit-tree.txt:7 +msgid "git-commit-tree - Create a new commit object" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:323 -msgid "" -"When these environment variables are set, the corresponding command-line " -"arguments may not be used." -msgstr "" - -#. type: Title - -#: en/git-cvsserver.txt:325 +#: en/git-commit-tree.txt:15 #, no-wrap -msgid "Eclipse CVS Client Notes" +msgid "" +"'git commit-tree' <tree> [(-p <parent>)...]\n" +"'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]\n" +"\t\t [(-F <file>)...] <tree>\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:328 -msgid "To get a checkout with the Eclipse CVS client:" +#: en/git-commit-tree.txt:21 +msgid "" +"This is usually not what an end user wants to run directly. See linkgit:git-" +"commit[1] instead." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:330 -msgid "Select \"Create a new project -> From CVS checkout\"" +#: en/git-commit-tree.txt:25 +msgid "" +"Creates a new commit object based on the provided tree object and emits the " +"new commit object id on stdout. The log message is read from the standard " +"input, unless `-m` or `-F` options are given." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:332 +#: en/git-commit-tree.txt:30 msgid "" -"Create a new location. See the notes below for details on how to choose the " -"right protocol." +"A commit object may have any number of parents. With exactly one parent, it " +"is an ordinary commit. Having more than one parent makes the commit a merge " +"between several lines of history. Initial (root) commits have no parents." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:335 +#: en/git-commit-tree.txt:34 msgid "" -"Browse the 'modules' available. It will give you a list of the heads in the " -"repository. You will not be able to browse the tree from there. Only the " -"heads." +"While a tree represents a particular directory state of a working directory, " +"a commit represents that state in \"time\", and explains how to get there." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:337 +#: en/git-commit-tree.txt:40 msgid "" -"Pick `HEAD` when it asks what branch/tag to check out. Untick the \"launch " -"commit wizard\" to avoid committing the .project file." +"Normally a commit would identify a new \"HEAD\" state, and while Git doesn't " +"care where you save the note about that state, in practice we tend to just " +"write the result to the file that is pointed at by `.git/HEAD`, so that we " +"can always see what the last committed state was." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:343 -msgid "" -"Protocol notes: If you are using anonymous access via pserver, just select " -"that. Those using SSH access should choose the 'ext' protocol, and " -"configure 'ext' access on the Preferences->Team->CVS->ExtConnection " -"pane. Set CVS_SERVER to \"`git cvsserver`\". Note that password support is " -"not good when using 'ext', you will definitely want to have SSH keys setup." +#. type: Labeled list +#: en/git-commit-tree.txt:43 en/git.txt:309 +#, no-wrap +msgid "<tree>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:348 -msgid "" -"Alternatively, you can just use the non-standard extssh protocol that " -"Eclipse offer. In that case CVS_SERVER is ignored, and you will have to " -"replace the cvs utility on the server with 'git-cvsserver' or manipulate " -"your `.bashrc` so that calling 'cvs' effectively calls 'git-cvsserver'." +#: en/git-commit-tree.txt:45 +msgid "An existing tree object" msgstr "" -#. type: Title - -#: en/git-cvsserver.txt:350 +#. type: Labeled list +#: en/git-commit-tree.txt:46 #, no-wrap -msgid "Clients known to work" +msgid "-p <parent>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:353 -msgid "CVS 1.12.9 on Debian" +#: en/git-commit-tree.txt:48 +msgid "Each `-p` indicates the id of a parent commit object." +msgstr "" + +#. type: Labeled list +#: en/git-commit-tree.txt:49 en/git-fmt-merge-msg.txt:42 +#, no-wrap +msgid "-m <message>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:354 -msgid "CVS 1.11.17 on MacOSX (from Fink package)" +#: en/git-commit-tree.txt:52 +msgid "" +"A paragraph in the commit log message. This can be given more than once and " +"each <message> becomes its own paragraph." +msgstr "" + +#. type: Labeled list +#: en/git-commit-tree.txt:53 en/git-commit.txt:131 en/git-fmt-merge-msg.txt:47 +#: en/git-merge.txt:78 en/git-notes.txt:140 en/git-tag.txt:163 +#, no-wrap +msgid "-F <file>" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:355 -msgid "Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)" +#: en/git-commit-tree.txt:56 +msgid "" +"Read the commit log message from the given file. Use `-` to read from the " +"standard input." +msgstr "" + +#. type: Labeled list +#: en/git-commit-tree.txt:63 en/git-commit.txt:339 +#, no-wrap +msgid "--no-gpg-sign" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:356 -msgid "TortoiseCVS" +#: en/git-commit-tree.txt:66 +msgid "" +"Do not GPG-sign commit, to countermand a `--gpg-sign` option given earlier " +"on the command line." msgstr "" #. type: Title - -#: en/git-cvsserver.txt:358 +#: en/git-commit-tree.txt:69 #, no-wrap -msgid "Operations supported" +msgid "Commit Information" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:362 -msgid "" -"All the operations required for normal use are supported, including " -"checkout, diff, status, update, log, add, remove, commit." +#: en/git-commit-tree.txt:72 +msgid "A commit encapsulates:" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:371 -msgid "" -"Most CVS command arguments that read CVS tags or revision numbers (typically " -"-r) work, and also support any git refspec (tag, branch, commit ID, etc). " -"However, CVS revision numbers for non-default branches are not well " -"emulated, and cvs log does not show tags or branches at all. " -"(Non-main-branch CVS revision numbers superficially resemble CVS revision " -"numbers, but they actually encode a git commit ID directly, rather than " -"represent the number of revisions since the branch point.)" +#: en/git-commit-tree.txt:74 +msgid "all parent object ids" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:385 -msgid "" -"Note that there are two ways to checkout a particular branch. As described " -"elsewhere on this page, the \"module\" parameter of cvs checkout is " -"interpreted as a branch name, and it becomes the main branch. It remains " -"the main branch for a given sandbox even if you temporarily make another " -"branch sticky with cvs update -r. Alternatively, the -r argument can " -"indicate some other branch to actually checkout, even though the module is " -"still the \"main\" branch. Tradeoffs (as currently implemented): Each new " -"\"module\" creates a new database on disk with a history for the given " -"module, and after the database is created, operations against that main " -"branch are fast. Or alternatively, -r doesn't take any extra disk space, " -"but may be significantly slower for many operations, like cvs update." +#: en/git-commit-tree.txt:75 +msgid "author name, email and date" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:398 -msgid "" -"If you want to refer to a git refspec that has characters that are not " -"allowed by CVS, you have two options. First, it may just work to supply the " -"git refspec directly to the appropriate CVS -r argument; some CVS clients " -"don't seem to do much sanity checking of the argument. Second, if that " -"fails, you can use a special character escape mechanism that only uses " -"characters that are valid in CVS tags. A sequence of 4 or 5 characters of " -"the form (underscore (`\"_\"`), dash (`\"-\"`), one or two characters, and " -"dash (`\"-\"`)) can encode various characters based on the one or two " -"letters: `\"s\"` for slash (`\"/\"`), `\"p\"` for period (`\".\"`), `\"u\"` " -"for underscore (`\"_\"`), or two hexadecimal digits for any byte value at " -"all (typically an ASCII number, or perhaps a part of a UTF-8 encoded " -"character)." +#: en/git-commit-tree.txt:76 +msgid "committer name and email and the commit time." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:401 +#: en/git-commit-tree.txt:80 msgid "" -"Legacy monitoring operations are not supported (edit, watch and related). " -"Exports and tagging (tags and branches) are not supported at this stage." +"While parent object ids are provided on the command line, author and " +"committer information is taken from the following environment variables, if " +"set:" msgstr "" -#. type: Title ~ -#: en/git-cvsserver.txt:403 +#. type: Plain text +#: en/git-commit-tree.txt:87 #, no-wrap -msgid "CRLF Line Ending Conversions" +msgid "" +"\tGIT_AUTHOR_NAME\n" +"\tGIT_AUTHOR_EMAIL\n" +"\tGIT_AUTHOR_DATE\n" +"\tGIT_COMMITTER_NAME\n" +"\tGIT_COMMITTER_EMAIL\n" +"\tGIT_COMMITTER_DATE\n" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:408 -msgid "" -"By default the server leaves the `-k` mode blank for all files, which causes " -"the CVS client to treat them as a text files, subject to end-of-line " -"conversion on some platforms." +#: en/git-commit-tree.txt:89 +msgid "(nb \"<\", \">\" and \"\\n\"s are stripped)" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:413 +#: en/git-commit-tree.txt:96 msgid "" -"You can make the server use the end-of-line conversion attributes to set the " -"`-k` modes for files by setting the `gitcvs.usecrlfattr` config variable. " -"See linkgit:gitattributes[5] for more information about end-of-line " -"conversion." +"In case (some of) these environment variables are not set, the information " +"is taken from the configuration items user.name and user.email, or, if not " +"present, the environment variable EMAIL, or, if that is not set, system user " +"name and the hostname used for outgoing mail (taken from `/etc/mailname` and " +"falling back to the fully qualified hostname when that file does not exist)." msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:422 +#: en/git-commit-tree.txt:100 msgid "" -"Alternatively, if `gitcvs.usecrlfattr` config is not enabled or the " -"attributes do not allow automatic detection for a filename, then the server " -"uses the `gitcvs.allBinary` config for the default setting. If " -"`gitcvs.allBinary` is set, then file not otherwise specified will default to " -"'-kb' mode. Otherwise the `-k` mode is left blank. But if `gitcvs.allBinary` " -"is set to \"guess\", then the correct `-k` mode will be guessed based on the " -"contents of the file." +"A commit comment is read from stdin. If a changelog entry is not provided " +"via \"<\" redirection, 'git commit-tree' will just wait for one to be " +"entered and terminated with ^D." msgstr "" -#. type: Plain text -#: en/git-cvsserver.txt:426 -msgid "" -"For best consistency with 'cvs', it is probably best to override the " -"defaults by setting `gitcvs.usecrlfattr` to true, and `gitcvs.allBinary` to " -"\"guess\"." +#. type: Title - +#: en/git-commit-tree.txt:104 +#, no-wrap +msgid "Discussion" msgstr "" #. type: Title - -#: en/git-cvsserver.txt:428 +#: en/git-commit-tree.txt:109 en/git-commit.txt:477 en/git-config.txt:268 +#: en/git-credential-store.txt:45 en/git-show-ref.txt:174 +#: en/git-submodule.txt:416 en/git-svn.txt:1156 #, no-wrap -msgid "Dependencies" +msgid "FILES" msgstr "" #. type: Plain text -#: en/git-cvsserver.txt:430 -msgid "'git-cvsserver' depends on DBD::SQLite." +#: en/git-commit-tree.txt:111 +msgid "/etc/mailname" msgstr "" #. type: Title = -#: en/git-daemon.txt:2 +#: en/git-commit.txt:2 #, no-wrap -msgid "git-daemon(1)" +msgid "git-commit(1)" msgstr "" #. type: Plain text -#: en/git-daemon.txt:7 -msgid "git-daemon - A really simple server for Git repositories" +#: en/git-commit.txt:7 +msgid "git-commit - Record changes to the repository" msgstr "" #. type: Plain text -#: en/git-daemon.txt:24 +#: en/git-commit.txt:17 #, no-wrap msgid "" -"'git daemon' [--verbose] [--syslog] [--export-all]\n" -"\t [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>]\n" -"\t [--strict-paths] [--base-path=<path>] [--base-path-relaxed]\n" -"\t [--user-path | --user-path=<path>]\n" -"\t [--interpolated-path=<pathtemplate>]\n" -"\t [--reuseaddr] [--detach] [--pid-file=<file>]\n" -"\t [--enable=<service>] [--disable=<service>]\n" -"\t [--allow-override=<service>] [--forbid-override=<service>]\n" -"\t [--access-hook=<path>] [--[no-]informative-errors]\n" -"\t [--inetd |\n" -"\t [--listen=<host_or_ipaddr>] [--port=<n>]\n" -"\t [--user=<user> [--group=<group>]]]\n" -"\t [<directory>...]\n" +"'git commit' [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]\n" +"\t [--dry-run] [(-c | -C | --fixup | --squash) <commit>]\n" +"\t [-F <file> | -m <msg>] [--reset-author] [--allow-empty]\n" +"\t [--allow-empty-message] [--no-verify] [-e] [--author=<author>]\n" +"\t [--date=<date>] [--cleanup=<mode>] [--[no-]status]\n" +"\t [-i | -o] [-S[<keyid>]] [--] [<file>...]\n" msgstr "" #. type: Plain text -#: en/git-daemon.txt:30 +#: en/git-commit.txt:26 msgid "" -"A really simple TCP Git daemon that normally listens on port " -"\"DEFAULT_GIT_PORT\" aka 9418. It waits for a connection asking for a " -"service, and will serve that service if it is enabled." +"Create a new commit containing the current contents of the index and the " +"given log message describing the changes. The new commit is a direct child " +"of HEAD, usually the tip of the current branch, and the branch is updated to " +"point to it (unless no branch is associated with the working tree, in which " +"case HEAD is \"detached\" as described in linkgit:git-checkout[1])." msgstr "" #. type: Plain text -#: en/git-daemon.txt:36 -msgid "" -"It verifies that the directory has the magic file \"git-daemon-export-ok\", " -"and it will refuse to export any Git directory that hasn't explicitly been " -"marked for export this way (unless the `--export-all` parameter is " -"specified). If you pass some directory paths as 'git daemon' arguments, you " -"can further restrict the offers to a whitelist comprising of those." +#: en/git-commit.txt:28 +msgid "The content to be committed can be specified in several ways:" msgstr "" #. type: Plain text -#: en/git-daemon.txt:40 +#: en/git-commit.txt:32 msgid "" -"By default, only `upload-pack` service is enabled, which serves 'git " -"fetch-pack' and 'git ls-remote' clients, which are invoked from 'git fetch', " -"'git pull', and 'git clone'." +"by using linkgit:git-add[1] to incrementally \"add\" changes to the index " +"before using the 'commit' command (Note: even modified files must be \"added" +"\");" msgstr "" #. type: Plain text -#: en/git-daemon.txt:43 +#: en/git-commit.txt:35 msgid "" -"This is ideally suited for read-only updates, i.e., pulling from Git " -"repositories." +"by using linkgit:git-rm[1] to remove files from the working tree and the " +"index, again before using the 'commit' command;" msgstr "" #. type: Plain text -#: en/git-daemon.txt:45 -msgid "An `upload-archive` also exists to serve 'git archive'." +#: en/git-commit.txt:41 +msgid "" +"by listing files as arguments to the 'commit' command (without --interactive " +"or --patch switch), in which case the commit will ignore changes staged in " +"the index, and instead record the current content of the listed files (which " +"must already be known to Git);" msgstr "" #. type: Plain text -#: en/git-daemon.txt:53 +#: en/git-commit.txt:47 msgid "" -"Match paths exactly (i.e. don't allow \"/foo/repo\" when the real path is " -"\"/foo/repo.git\" or \"/foo/repo/.git\") and don't do user-relative paths. " -"'git daemon' will refuse to start when this option is enabled and no " -"whitelist is specified." -msgstr "" - -#. type: Labeled list -#: en/git-daemon.txt:54 -#, no-wrap -msgid "--base-path=<path>" +"by using the -a switch with the 'commit' command to automatically \"add\" " +"changes from all known files (i.e. all files that are already listed in the " +"index) and to automatically \"rm\" files in the index that have been removed " +"from the working tree, and then perform the actual commit;" msgstr "" #. type: Plain text -#: en/git-daemon.txt:60 +#: en/git-commit.txt:53 msgid "" -"Remap all the path requests as relative to the given path. This is sort of " -"\"Git root\" - if you run 'git daemon' with '--base-path=/srv/git' on " -"example.com, then if you later try to pull 'git://example.com/hello.git', " -"'git daemon' will interpret the path as '/srv/git/hello.git'." -msgstr "" - -#. type: Labeled list -#: en/git-daemon.txt:61 -#, no-wrap -msgid "--base-path-relaxed" +"by using the --interactive or --patch switches with the 'commit' command to " +"decide one by one which files or hunks should be part of the commit in " +"addition to contents in the index, before finalizing the operation. See the " +"``Interactive Mode'' section of linkgit:git-add[1] to learn how to operate " +"these modes." msgstr "" #. type: Plain text -#: en/git-daemon.txt:66 +#: en/git-commit.txt:57 msgid "" -"If --base-path is enabled and repo lookup fails, with this option 'git " -"daemon' will attempt to lookup without prefixing the base path. This is " -"useful for switching to --base-path usage, while still allowing the old " -"paths." +"The `--dry-run` option can be used to obtain a summary of what is included " +"by any of the above for the next commit by giving the same set of parameters " +"(options and paths)." msgstr "" -#. type: Labeled list -#: en/git-daemon.txt:67 -#, no-wrap -msgid "--interpolated-path=<pathtemplate>" +#. type: Plain text +#: en/git-commit.txt:60 +msgid "" +"If you make a commit and then find a mistake immediately after that, you can " +"recover from it with 'git reset'." msgstr "" #. type: Plain text -#: en/git-daemon.txt:76 +#: en/git-commit.txt:69 msgid "" -"To support virtual hosting, an interpolated path template can be used to " -"dynamically construct alternate paths. The template supports %H for the " -"target hostname as supplied by the client but converted to all lowercase, " -"%CH for the canonical hostname, %IP for the server's IP address, %P for the " -"port number, and %D for the absolute path of the named repository. After " -"interpolation, the path is validated against the directory whitelist." +"Tell the command to automatically stage files that have been modified and " +"deleted, but new files you have not told Git about are not affected." msgstr "" #. type: Plain text -#: en/git-daemon.txt:81 +#: en/git-commit.txt:75 msgid "" -"Allow pulling from all directories that look like Git repositories (have the " -"'objects' and 'refs' subdirectories), even if they do not have the " -"'git-daemon-export-ok' file." +"Use the interactive patch selection interface to chose which changes to " +"commit. See linkgit:git-add[1] for details." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:82 +#: en/git-commit.txt:76 #, no-wrap -msgid "--inetd" -msgstr "" - -#. type: Plain text -#: en/git-daemon.txt:86 -msgid "" -"Have the server run as an inetd service. Implies --syslog. Incompatible " -"with --detach, --port, --listen, --user and --group options." +msgid "-C <commit>" msgstr "" #. type: Labeled list -#: en/git-daemon.txt:87 +#: en/git-commit.txt:77 #, no-wrap -msgid "--listen=<host_or_ipaddr>" +msgid "--reuse-message=<commit>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:94 +#: en/git-commit.txt:81 msgid "" -"Listen on a specific IP address or hostname. IP addresses can be either an " -"IPv4 address or an IPv6 address if supported. If IPv6 is not supported, " -"then --listen=hostname is also not supported and --listen must be given an " -"IPv4 address. Can be given more than once. Incompatible with `--inetd` " -"option." +"Take an existing commit object, and reuse the log message and the authorship " +"information (including the timestamp) when creating the commit." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:95 +#: en/git-commit.txt:82 #, no-wrap -msgid "--port=<n>" -msgstr "" - -#. type: Plain text -#: en/git-daemon.txt:97 -msgid "Listen on an alternative port. Incompatible with `--inetd` option." +msgid "-c <commit>" msgstr "" #. type: Labeled list -#: en/git-daemon.txt:98 +#: en/git-commit.txt:83 #, no-wrap -msgid "--init-timeout=<n>" +msgid "--reedit-message=<commit>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:102 +#: en/git-commit.txt:86 msgid "" -"Timeout (in seconds) between the moment the connection is established and " -"the client request is received (typically a rather low value, since that " -"should be basically immediate)." +"Like '-C', but with `-c` the editor is invoked, so that the user can further " +"edit the commit message." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:103 en/git-upload-pack.txt:31 +#: en/git-commit.txt:87 #, no-wrap -msgid "--timeout=<n>" +msgid "--fixup=<commit>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:107 +#: en/git-commit.txt:92 msgid "" -"Timeout (in seconds) for specific client sub-requests. This includes the " -"time it takes for the server to process the sub-request and the time spent " -"waiting for the next client's request." +"Construct a commit message for use with `rebase --autosquash`. The commit " +"message will be the subject line from the specified commit with a prefix of " +"\"fixup! \". See linkgit:git-rebase[1] for details." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:108 +#: en/git-commit.txt:93 #, no-wrap -msgid "--max-connections=<n>" +msgid "--squash=<commit>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:111 +#: en/git-commit.txt:99 msgid "" -"Maximum number of concurrent clients, defaults to 32. Set it to zero for no " -"limit." +"Construct a commit message for use with `rebase --autosquash`. The commit " +"message subject line is taken from the specified commit with a prefix of " +"\"squash! \". Can be used with additional commit message options (`-m`/`-c`/" +"`-C`/`-F`). See linkgit:git-rebase[1] for details." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:112 +#: en/git-commit.txt:100 #, no-wrap -msgid "--syslog" +msgid "--reset-author" msgstr "" #. type: Plain text -#: en/git-daemon.txt:115 +#: en/git-commit.txt:105 msgid "" -"Log to syslog instead of stderr. Note that this option does not imply " -"--verbose, thus by default only error conditions will be logged." +"When used with -C/-c/--amend options, or when committing after a conflicting " +"cherry-pick, declare that the authorship of the resulting commit now belongs " +"to the committer. This also renews the author timestamp." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:116 +#: en/git-commit.txt:106 en/git-status.txt:28 en/git-symbolic-ref.txt:45 #, no-wrap -msgid "--user-path" +msgid "--short" +msgstr "" + +#. type: Plain text +#: en/git-commit.txt:109 +msgid "" +"When doing a dry-run, give the output in the short-format. See linkgit:git-" +"status[1] for details. Implies `--dry-run`." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:117 +#: en/git-commit.txt:110 en/git-status.txt:32 en/git-submodule.txt:259 #, no-wrap -msgid "--user-path=<path>" +msgid "--branch" msgstr "" #. type: Plain text -#: en/git-daemon.txt:125 -msgid "" -"Allow {tilde}user notation to be used in requests. When specified with no " -"parameter, requests to git://host/{tilde}alice/foo is taken as a request to " -"access 'foo' repository in the home directory of user `alice`. If " -"`--user-path=path` is specified, the same request is taken as a request to " -"access `path/foo` repository in the home directory of user `alice`." +#: en/git-commit.txt:112 en/git-status.txt:34 +msgid "Show the branch and tracking info even in short-format." msgstr "" #. type: Plain text -#: en/git-daemon.txt:128 -msgid "Log details about the incoming connections and requested files." +#: en/git-commit.txt:117 +msgid "" +"When doing a dry-run, give the output in a porcelain-ready format. See " +"linkgit:git-status[1] for details. Implies `--dry-run`." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:129 +#: en/git-commit.txt:118 en/git-describe.txt:87 en/git-ls-tree.txt:52 +#: en/git-status.txt:47 #, no-wrap -msgid "--reuseaddr" +msgid "--long" msgstr "" #. type: Plain text -#: en/git-daemon.txt:133 +#: en/git-commit.txt:121 msgid "" -"Use SO_REUSEADDR when binding the listening socket. This allows the server " -"to restart without waiting for old connections to time out." -msgstr "" - -#. type: Plain text -#: en/git-daemon.txt:136 -msgid "Detach from the shell. Implies --syslog." +"When doing a dry-run, give the output in the long-format. Implies `--dry-" +"run`." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:137 +#: en/git-commit.txt:123 en/git-config.txt:207 en/git-grep.txt:207 #, no-wrap -msgid "--pid-file=<file>" +msgid "--null" msgstr "" #. type: Plain text -#: en/git-daemon.txt:140 +#: en/git-commit.txt:130 msgid "" -"Save the process id in 'file'. Ignored when the daemon is run under " -"`--inetd`." +"When showing `short` or `porcelain` status output, print the filename " +"verbatim and terminate the entries with NUL, instead of LF. If no format is " +"given, implies the `--porcelain` output format. Without the `-z` option, " +"filenames with \"unusual\" characters are quoted as explained for the " +"configuration variable `core.quotePath` (see linkgit:git-config[1])." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:141 +#: en/git-commit.txt:132 en/git-merge.txt:79 en/git-notes.txt:141 +#: en/git-tag.txt:164 #, no-wrap -msgid "--user=<user>" +msgid "--file=<file>" +msgstr "" + +#. type: Plain text +#: en/git-commit.txt:135 +msgid "" +"Take the commit message from the given file. Use '-' to read the message " +"from the standard input." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:142 +#: en/git-commit.txt:136 #, no-wrap -msgid "--group=<group>" +msgid "--author=<author>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:148 +#: en/git-commit.txt:142 msgid "" -"Change daemon's uid and gid before entering the service loop. When only " -"`--user` is given without `--group`, the primary group ID for the user is " -"used. The values of the option are given to `getpwnam(3)` and `getgrnam(3)` " -"and numeric IDs are not supported." +"Override the commit author. Specify an explicit author using the standard `A " +"U Thor <author@example.com>` format. Otherwise <author> is assumed to be a " +"pattern and is used to search for an existing commit by that author (i.e. " +"rev-list --all -i --author=<author>); the commit author is then copied from " +"the first such commit found." msgstr "" -#. type: Plain text -#: en/git-daemon.txt:152 -msgid "" -"Giving these options is an error when used with `--inetd`; use the facility " -"of inet daemon to achieve the same before spawning 'git daemon' if needed." +#. type: Labeled list +#: en/git-commit.txt:143 +#, no-wrap +msgid "--date=<date>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:159 -msgid "" -"Like many programs that switch user id, the daemon does not reset " -"environment variables such as `$HOME` when it runs git programs, " -"e.g. `upload-pack` and `receive-pack`. When using this option, you may also " -"want to set and export `HOME` to point at the home directory of `<user>` " -"before starting the daemon, and make sure any Git configuration files in " -"that directory are readable by `<user>`." +#: en/git-commit.txt:145 +msgid "Override the author date used in the commit." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:160 +#: en/git-commit.txt:146 en/git-merge.txt:67 en/git-notes.txt:132 +#: en/git-svn.txt:468 en/git-tag.txt:155 #, no-wrap -msgid "--enable=<service>" +msgid "-m <msg>" msgstr "" #. type: Labeled list -#: en/git-daemon.txt:161 +#: en/git-commit.txt:147 en/git-notes.txt:133 en/git-svn.txt:469 +#: en/git-tag.txt:156 #, no-wrap -msgid "--disable=<service>" +msgid "--message=<msg>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:167 +#: en/git-commit.txt:151 msgid "" -"Enable/disable the service site-wide per default. Note that a service " -"disabled site-wide can still be enabled per repository if it is marked " -"overridable and the repository enables the service with a configuration " -"item." +"Use the given <msg> as the commit message. If multiple `-m` options are " +"given, their values are concatenated as separate paragraphs." +msgstr "" + +#. type: Plain text +#: en/git-commit.txt:153 +msgid "The `-m` option is mutually exclusive with `-c`, `-C`, and `-F`." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:168 +#: en/git-commit.txt:154 #, no-wrap -msgid "--allow-override=<service>" +msgid "-t <file>" msgstr "" #. type: Labeled list -#: en/git-daemon.txt:169 +#: en/git-commit.txt:155 #, no-wrap -msgid "--forbid-override=<service>" +msgid "--template=<file>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:173 +#: en/git-commit.txt:164 msgid "" -"Allow/forbid overriding the site-wide default with per repository " -"configuration. By default, all the services may be overridden." -msgstr "" - -#. type: Labeled list -#: en/git-daemon.txt:174 -#, no-wrap -msgid "--[no-]informative-errors" +"When editing the commit message, start the editor with the contents in the " +"given file. The `commit.template` configuration variable is often used to " +"give this option implicitly to the command. This mechanism can be used by " +"projects that want to guide participants with some hints on what to write in " +"the message in what order. If the user exits the editor without editing the " +"message, the commit is aborted. This has no effect when a message is given " +"by other means, e.g. with the `-m` or `-F` options." msgstr "" #. type: Plain text -#: en/git-daemon.txt:182 +#: en/git-commit.txt:173 en/merge-options.txt:69 msgid "" -"When informative errors are turned on, git-daemon will report more verbose " -"errors to the client, differentiating conditions like \"no such repository\" " -"from \"repository not exported\". This is more convenient for clients, but " -"may leak information about the existence of unexported repositories. When " -"informative errors are not enabled, all errors report \"access denied\" to " -"the client. The default is --no-informative-errors." +"Add Signed-off-by line by the committer at the end of the commit log " +"message. The meaning of a signoff depends on the project, but it typically " +"certifies that committer has the rights to submit this work under the same " +"license and agrees to a Developer Certificate of Origin (see http://" +"developercertificate.org/ for more information)." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:183 +#: en/git-commit.txt:175 en/git-rebase.txt:325 #, no-wrap -msgid "--access-hook=<path>" +msgid "--no-verify" msgstr "" #. type: Plain text -#: en/git-daemon.txt:193 +#: en/git-commit.txt:178 msgid "" -"Every time a client connects, first run an external command specified by the " -"<path> with service name (e.g. \"upload-pack\"), path to the repository, " -"hostname (%H), canonical hostname (%CH), IP address (%IP), and TCP port (%P) " -"as its command-line arguments. The external command can decide to decline " -"the service by exiting with a non-zero status (or to allow it by exiting " -"with a zero status). It can also look at the $REMOTE_ADDR and " -"`$REMOTE_PORT` environment variables to learn about the requestor when " -"making this decision." +"This option bypasses the pre-commit and commit-msg hooks. See also linkgit:" +"githooks[5]." msgstr "" #. type: Plain text -#: en/git-daemon.txt:197 +#: en/git-commit.txt:184 msgid "" -"The external command can optionally write a single line to its standard " -"output to be sent to the requestor as an error message when it declines the " -"service." +"Usually recording a commit that has the exact same tree as its sole parent " +"commit is a mistake, and the command prevents you from making such a " +"commit. This option bypasses the safety, and is primarily for use by " +"foreign SCM interface scripts." msgstr "" #. type: Plain text -#: en/git-daemon.txt:202 +#: en/git-commit.txt:190 msgid "" -"A directory to add to the whitelist of allowed directories. Unless " -"--strict-paths is specified this will also include subdirectories of each " -"named directory." +"Like --allow-empty this command is primarily for use by foreign SCM " +"interface scripts. It allows you to create a commit with an empty commit " +"message without using plumbing commands like linkgit:git-commit-tree[1]." msgstr "" -#. type: Title - -#: en/git-daemon.txt:204 en/git-http-backend.txt:33 +#. type: Labeled list +#: en/git-commit.txt:191 en/git-tag.txt:176 #, no-wrap -msgid "SERVICES" +msgid "--cleanup=<mode>" msgstr "" #. type: Plain text -#: en/git-daemon.txt:212 +#: en/git-commit.txt:195 msgid "" -"These services can be globally enabled/disabled using the command-line " -"options of this command. If finer-grained control is desired (e.g. to allow " -"'git archive' to be run against only in a few selected repositories the " -"daemon serves), the per-repository configuration file can be used to enable " -"or disable them." +"This option determines how the supplied commit message should be cleaned up " +"before committing. The '<mode>' can be `strip`, `whitespace`, `verbatim`, " +"`scissors` or `default`." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:213 +#: en/git-commit.txt:197 #, no-wrap -msgid "upload-pack" +msgid "strip" msgstr "" #. type: Plain text -#: en/git-daemon.txt:218 +#: en/git-commit.txt:200 msgid "" -"This serves 'git fetch-pack' and 'git ls-remote' clients. It is enabled by " -"default, but a repository can disable it by setting `daemon.uploadpack` " -"configuration item to `false`." +"Strip leading and trailing empty lines, trailing whitespace, commentary and " +"collapse consecutive empty lines." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:219 +#: en/git-commit.txt:200 #, no-wrap -msgid "upload-archive" +msgid "whitespace" msgstr "" #. type: Plain text -#: en/git-daemon.txt:223 -msgid "" -"This serves 'git archive --remote'. It is disabled by default, but a " -"repository can enable it by setting `daemon.uploadarch` configuration item " -"to `true`." +#: en/git-commit.txt:202 +msgid "Same as `strip` except #commentary is not removed." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:224 +#: en/git-commit.txt:202 #, no-wrap -msgid "receive-pack" +msgid "verbatim" msgstr "" #. type: Plain text -#: en/git-daemon.txt:233 -msgid "" -"This serves 'git send-pack' clients, allowing anonymous push. It is " -"disabled by default, as there is _no_ authentication in the protocol (in " -"other words, anybody can push anything into the repository, including " -"removal of refs). This is solely meant for a closed LAN setting where " -"everybody is friendly. This service can be enabled by setting " -"`daemon.receivepack` configuration item to `true`." +#: en/git-commit.txt:204 +msgid "Do not change the message at all." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:236 +#: en/git-commit.txt:204 #, no-wrap -msgid "We assume the following in /etc/services" +msgid "scissors" msgstr "" -#. type: delimited block - -#: en/git-daemon.txt:241 -#, no-wrap +#. type: Plain text +#: en/git-commit.txt:208 msgid "" -"$ grep 9418 /etc/services\n" -"git\t\t9418/tcp\t\t# Git Version Control System\n" +"Same as `whitespace` except that everything from (and including) the line " +"found below is truncated, if the message is to be edited. \"`#`\" can be " +"customized with core.commentChar." msgstr "" -#. type: Labeled list -#: en/git-daemon.txt:243 +#. type: Plain text +#: en/git-commit.txt:210 #, no-wrap -msgid "'git daemon' as inetd server" +msgid "# ------------------------ >8 ------------------------\n" msgstr "" #. type: Plain text -#: en/git-daemon.txt:248 +#: en/git-commit.txt:214 msgid "" -"To set up 'git daemon' as an inetd service that handles any repository under " -"the whitelisted set of directories, /pub/foo and /pub/bar, place an entry " -"like the following into /etc/inetd all on one line:" +"Same as `strip` if the message is to be edited. Otherwise `whitespace`." msgstr "" -#. type: delimited block - -#: en/git-daemon.txt:253 -#, no-wrap +#. type: Plain text +#: en/git-commit.txt:218 msgid "" -"\tgit stream tcp nowait nobody /usr/bin/git\n" -"\t\tgit daemon --inetd --verbose --export-all\n" -"\t\t/pub/foo /pub/bar\n" -msgstr "" - -#. type: Labeled list -#: en/git-daemon.txt:256 -#, no-wrap -msgid "'git daemon' as inetd server for virtual hosts" +"The default can be changed by the `commit.cleanup` configuration variable " +"(see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/git-daemon.txt:261 +#: en/git-commit.txt:225 msgid "" -"To set up 'git daemon' as an inetd service that handles repositories for " -"different virtual hosts, `www.example.com` and `www.example.org`, place an " -"entry like the following into `/etc/inetd` all on one line:" +"The message taken from file with `-F`, command line with `-m`, and from " +"commit object with `-C` are usually used as the commit log message " +"unmodified. This option lets you further edit the message taken from these " +"sources." msgstr "" -#. type: delimited block - -#: en/git-daemon.txt:269 +#. type: Labeled list +#: en/git-commit.txt:226 en/git-revert.txt:65 en/merge-options.txt:12 #, no-wrap -msgid "" -"\tgit stream tcp nowait nobody /usr/bin/git\n" -"\t\tgit daemon --inetd --verbose --export-all\n" -"\t\t--interpolated-path=/pub/%H%D\n" -"\t\t/pub/www.example.org/software\n" -"\t\t/pub/www.example.com/software\n" -"\t\t/software\n" +msgid "--no-edit" msgstr "" #. type: Plain text -#: en/git-daemon.txt:277 +#: en/git-commit.txt:230 msgid "" -"In this example, the root-level directory `/pub` will contain a subdirectory " -"for each virtual host name supported. Further, both hosts advertise " -"repositories simply as `git://www.example.com/software/repo.git`. For " -"pre-1.4.0 clients, a symlink from `/software` into the appropriate default " -"repository could be made as well." +"Use the selected commit message without launching an editor. For example, " +"`git commit --amend --no-edit` amends a commit without changing its commit " +"message." msgstr "" #. type: Labeled list -#: en/git-daemon.txt:279 +#: en/git-commit.txt:231 #, no-wrap -msgid "'git daemon' as regular daemon for virtual hosts" +msgid "--amend" msgstr "" #. type: Plain text -#: en/git-daemon.txt:283 +#: en/git-commit.txt:241 msgid "" -"To set up 'git daemon' as a regular, non-inetd service that handles " -"repositories for multiple virtual hosts based on their IP addresses, start " -"the daemon like this:" +"Replace the tip of the current branch by creating a new commit. The recorded " +"tree is prepared as usual (including the effect of the `-i` and `-o` options " +"and explicit pathspec), and the message from the original commit is used as " +"the starting point, instead of an empty message, when no other message is " +"specified from the command line via options such as `-m`, `-F`, `-c`, etc. " +"The new commit has the same parents and author as the current one (the `--" +"reset-author` option can countermand this)." +msgstr "" + +#. type: Plain text +#: en/git-commit.txt:244 +msgid "It is a rough equivalent for:" msgstr "" #. type: delimited block - -#: en/git-daemon.txt:289 +#: en/git-commit.txt:248 #, no-wrap msgid "" -"\tgit daemon --verbose --export-all\n" -"\t\t--interpolated-path=/pub/%IP/%D\n" -"\t\t/pub/192.168.1.200/software\n" -"\t\t/pub/10.10.220.23/software\n" +"\t$ git reset --soft HEAD^\n" +"\t$ ... do something else to come up with the right tree ...\n" +"\t$ git commit -c ORIG_HEAD\n" msgstr "" #. type: Plain text -#: en/git-daemon.txt:295 -msgid "" -"In this example, the root-level directory `/pub` will contain a subdirectory " -"for each virtual host IP address supported. Repositories can still be " -"accessed by hostname though, assuming they correspond to these IP addresses." -msgstr "" - -#. type: Labeled list -#: en/git-daemon.txt:296 -#, no-wrap -msgid "selectively enable/disable services per repository" +#: en/git-commit.txt:251 +msgid "but can be used to amend a merge commit." msgstr "" #. type: Plain text -#: en/git-daemon.txt:301 +#: en/git-commit.txt:256 msgid "" -"To enable 'git archive --remote' and disable 'git fetch' against a " -"repository, have the following in the configuration file in the repository " -"(that is the file 'config' next to `HEAD`, 'refs' and 'objects')." +"You should understand the implications of rewriting history if you amend a " +"commit that has already been published. (See the \"RECOVERING FROM UPSTREAM " +"REBASE\" section in linkgit:git-rebase[1].)" msgstr "" -#. type: delimited block - -#: en/git-daemon.txt:306 +#. type: Labeled list +#: en/git-commit.txt:257 #, no-wrap -msgid "" -"\t[daemon]\n" -"\t\tuploadpack = false\n" -"\t\tuploadarch = true\n" +msgid "--no-post-rewrite" msgstr "" #. type: Plain text -#: en/git-daemon.txt:315 -msgid "" -"'git daemon' will set REMOTE_ADDR to the IP address of the client that " -"connected to it, if the IP address is available. REMOTE_ADDR will be " -"available in the environment of hooks called when services are performed." +#: en/git-commit.txt:259 +msgid "Bypass the post-rewrite hook." msgstr "" -#. type: Title = -#: en/git-describe.txt:2 +#. type: Labeled list +#: en/git-commit.txt:261 #, no-wrap -msgid "git-describe(1)" +msgid "--include" msgstr "" #. type: Plain text -#: en/git-describe.txt:7 -msgid "git-describe - Describe a commit using the most recent tag reachable from it" +#: en/git-commit.txt:266 +msgid "" +"Before making a commit out of staged contents so far, stage the contents of " +"paths given on the command line as well. This is usually not what you want " +"unless you are concluding a conflicted merge." msgstr "" -#. type: Plain text -#: en/git-describe.txt:14 +#. type: Labeled list +#: en/git-commit.txt:268 #, no-wrap -msgid "" -"'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] " -"[<commit-ish>...]\n" -"'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] " -"--dirty[=<mark>]\n" +msgid "--only" msgstr "" #. type: Plain text -#: en/git-describe.txt:22 +#: en/git-commit.txt:280 msgid "" -"The command finds the most recent tag that is reachable from a commit. If " -"the tag points to the commit, then only the tag is shown. Otherwise, it " -"suffixes the tag name with the number of additional commits on top of the " -"tagged object and the abbreviated object name of the most recent commit." +"Make a commit by taking the updated working tree contents of the paths " +"specified on the command line, disregarding any contents that have been " +"staged for other paths. This is the default mode of operation of 'git " +"commit' if any paths are given on the command line, in which case this " +"option can be omitted. If this option is specified together with `--amend`, " +"then no paths need to be specified, which can be used to amend the last " +"commit without committing changes that have already been staged. If used " +"together with `--allow-empty` paths are also not required, and an empty " +"commit will be created." msgstr "" -#. type: Plain text -#: en/git-describe.txt:26 -msgid "" -"By default (without --all or --tags) `git describe` only shows annotated " -"tags. For more information about creating annotated tags see the -a and -s " -"options to linkgit:git-tag[1]." +#. type: Labeled list +#: en/git-commit.txt:281 en/git-status.txt:58 +#, no-wrap +msgid "-u[<mode>]" msgstr "" #. type: Labeled list -#: en/git-describe.txt:29 +#: en/git-commit.txt:282 en/git-status.txt:59 #, no-wrap -msgid "<commit-ish>..." +msgid "--untracked-files[=<mode>]" msgstr "" #. type: Plain text -#: en/git-describe.txt:31 -msgid "Commit-ish object names to describe. Defaults to HEAD if omitted." -msgstr "" - -#. type: Labeled list -#: en/git-describe.txt:32 -#, no-wrap -msgid "--dirty[=<mark>]" +#: en/git-commit.txt:284 en/git-status.txt:61 +msgid "Show untracked files." msgstr "" #. type: Plain text -#: en/git-describe.txt:36 +#: en/git-commit.txt:288 msgid "" -"Describe the working tree. It means describe HEAD and appends <mark> " -"(`-dirty` by default) if the working tree is dirty." +"The mode parameter is optional (defaults to 'all'), and is used to specify " +"the handling of untracked files; when -u is not used, the default is " +"'normal', i.e. show untracked files and directories." msgstr "" #. type: Plain text -#: en/git-describe.txt:41 -msgid "" -"Instead of using only the annotated tags, use any ref found in `refs/` " -"namespace. This option enables matching any known branch, remote-tracking " -"branch, or lightweight tag." +#: en/git-commit.txt:290 en/git-status.txt:67 en/git-status.txt:107 +msgid "The possible options are:" msgstr "" -#. type: Labeled list -#: en/git-describe.txt:42 en/git-fsck.txt:41 en/git-ls-remote.txt:27 en/git-name-rev.txt:24 en/git-push.txt:130 en/git-show-ref.txt:40 en/fetch-options.txt:99 +#. type: Plain text +#: en/git-commit.txt:292 #, no-wrap -msgid "--tags" +msgid "'no' - Show no untracked files\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:46 -msgid "" -"Instead of using only the annotated tags, use any tag found in `refs/tags` " -"namespace. This option enables matching a lightweight (non-annotated) tag." +#: en/git-commit.txt:293 +#, no-wrap +msgid "'normal' - Shows untracked files and directories\n" msgstr "" -#. type: Labeled list -#: en/git-describe.txt:47 +#. type: Plain text +#: en/git-commit.txt:294 en/git-status.txt:71 #, no-wrap -msgid "--contains" +msgid "'all' - Also shows individual files in untracked directories.\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:51 +#: en/git-commit.txt:297 en/git-status.txt:84 msgid "" -"Instead of finding the tag that predates the commit, find the tag that comes " -"after the commit, and thus contains it. Automatically implies --tags." +"The default can be changed using the status.showUntrackedFiles configuration " +"variable documented in linkgit:git-config[1]." msgstr "" #. type: Plain text -#: en/git-describe.txt:57 +#: en/git-commit.txt:308 msgid "" -"Instead of using the default 7 hexadecimal digits as the abbreviated object " -"name, use <n> digits, or as many digits as needed to form a unique object " -"name. An <n> of 0 will suppress long format, only showing the closest tag." +"Show unified diff between the HEAD commit and what would be committed at the " +"bottom of the commit message template to help the user describe the commit " +"by reminding what changes the commit has. Note that this diff output " +"doesn't have its lines prefixed with '#'. This diff will not be a part of " +"the commit message. See the `commit.verbose` configuration variable in " +"linkgit:git-config[1]." msgstr "" -#. type: Labeled list -#: en/git-describe.txt:58 -#, no-wrap -msgid "--candidates=<n>" +#. type: Plain text +#: en/git-commit.txt:312 +msgid "" +"If specified twice, show in addition the unified diff between what would be " +"committed and the worktree files, i.e. the unstaged changes to tracked files." msgstr "" #. type: Plain text -#: en/git-describe.txt:64 +#: en/git-commit.txt:316 +msgid "Suppress commit summary message." +msgstr "" + +#. type: Plain text +#: en/git-commit.txt:321 msgid "" -"Instead of considering only the 10 most recent tags as candidates to " -"describe the input commit-ish consider up to <n> candidates. Increasing <n> " -"above 10 will take slightly longer but may produce a more accurate result. " -"An <n> of 0 will cause only exact matches to be output." +"Do not create a commit, but show a list of paths that are to be committed, " +"paths with local changes that will be left uncommitted and paths that are " +"untracked." msgstr "" #. type: Labeled list -#: en/git-describe.txt:65 +#: en/git-commit.txt:322 #, no-wrap -msgid "--exact-match" +msgid "--status" msgstr "" #. type: Plain text -#: en/git-describe.txt:68 +#: en/git-commit.txt:327 msgid "" -"Only output exact matches (a tag directly references the supplied commit). " -"This is a synonym for --candidates=0." +"Include the output of linkgit:git-status[1] in the commit message template " +"when using an editor to prepare the commit message. Defaults to on, but can " +"be used to override configuration variable commit.status." msgstr "" #. type: Labeled list -#: en/git-describe.txt:69 en/git-ls-files.txt:151 +#: en/git-commit.txt:328 #, no-wrap -msgid "--debug" +msgid "--no-status" msgstr "" #. type: Plain text -#: en/git-describe.txt:73 +#: en/git-commit.txt:332 msgid "" -"Verbosely display information about the searching strategy being employed to " -"standard error. The tag name will still be printed to standard out." +"Do not include the output of linkgit:git-status[1] in the commit message " +"template when using an editor to prepare the default commit message." msgstr "" #. type: Plain text -#: en/git-describe.txt:82 +#: en/git-commit.txt:342 msgid "" -"Always output the long format (the tag, the number of commits and the " -"abbreviated commit name) even when it matches a tag. This is useful when " -"you want to see parts of the commit object name in \"describe\" output, even " -"when the commit in question happens to be a tagged version. Instead of just " -"emitting the tag name, it will describe such a commit as v1.2-0-gdeadbee " -"(0th commit since tag v1.2 that points at object deadbee....)." +"Countermand `commit.gpgSign` configuration variable that is set to force " +"each and every commit to be signed." msgstr "" #. type: Labeled list -#: en/git-describe.txt:83 +#: en/git-commit.txt:346 en/git-rm.txt:29 #, no-wrap -msgid "--match <pattern>" +msgid "<file>..." msgstr "" #. type: Plain text -#: en/git-describe.txt:90 +#: en/git-commit.txt:352 msgid "" -"Only consider tags matching the given `glob(7)` pattern, excluding the " -"\"refs/tags/\" prefix. This can be used to avoid leaking private tags from " -"the repository. If given multiple times, a list of patterns will be " -"accumulated, and tags matching any of the patterns will be considered. Use " -"`--no-match` to clear and reset the list of patterns." -msgstr "" - -#. type: Labeled list -#: en/git-describe.txt:91 -#, no-wrap -msgid "--exclude <pattern>" +"When files are given on the command line, the command commits the contents " +"of the named files, without recording the changes already staged. The " +"contents of these files are also staged for the next commit on top of what " +"have been staged before." msgstr "" #. type: Plain text -#: en/git-describe.txt:100 +#: en/git-commit.txt:369 msgid "" -"Do not consider tags matching the given `glob(7)` pattern, excluding the " -"\"refs/tags/\" prefix. This can be used to narrow the tag space and find " -"only tags matching some meaningful criteria. If given multiple times, a list " -"of patterns will be accumulated and tags matching any of the patterns will " -"be excluded. When combined with --match a tag will be considered when it " -"matches at least one --match pattern and does not match any of the --exclude " -"patterns. Use `--no-exclude` to clear and reset the list of patterns." +"When recording your own work, the contents of modified files in your working " +"tree are temporarily stored to a staging area called the \"index\" with 'git " +"add'. A file can be reverted back, only in the index but not in the working " +"tree, to that of the last commit with `git reset HEAD -- <file>`, which " +"effectively reverts 'git add' and prevents the changes to this file from " +"participating in the next commit. After building the state to be committed " +"incrementally with these commands, `git commit` (without any pathname " +"parameter) is used to record what has been staged so far. This is the most " +"basic form of the command. An example:" msgstr "" -#. type: Labeled list -#: en/git-describe.txt:101 en/git-diff-tree.txt:111 en/git-name-rev.txt:61 +#. type: delimited block - +#: en/git-commit.txt:375 #, no-wrap -msgid "--always" +msgid "" +"$ edit hello.c\n" +"$ git rm goodbye.c\n" +"$ git add hello.c\n" +"$ git commit\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:103 en/git-name-rev.txt:63 -msgid "Show uniquely abbreviated commit object as fallback." +#: en/git-commit.txt:383 +msgid "" +"Instead of staging files after each individual change, you can tell `git " +"commit` to notice the changes to the files whose contents are tracked in " +"your working tree and do corresponding `git add` and `git rm` for you. That " +"is, this example does the same as the earlier example if there is no other " +"change in your working tree:" msgstr "" -#. type: Labeled list -#: en/git-describe.txt:104 en/rev-list-options.txt:121 +#. type: delimited block - +#: en/git-commit.txt:388 #, no-wrap -msgid "--first-parent" +msgid "" +"$ edit hello.c\n" +"$ rm goodbye.c\n" +"$ git commit -a\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:108 +#: en/git-commit.txt:393 msgid "" -"Follow only the first parent commit upon seeing a merge commit. This is " -"useful when you wish to not match tags on branches merged in the history of " -"the target commit." +"The command `git commit -a` first looks at your working tree, notices that " +"you have modified hello.c and removed goodbye.c, and performs necessary `git " +"add` and `git rm` for you." msgstr "" #. type: Plain text -#: en/git-describe.txt:113 -msgid "With something like git.git current tree, I get:" +#: en/git-commit.txt:398 +msgid "" +"After staging changes to many files, you can alter the order the changes are " +"recorded in, by giving pathnames to `git commit`. When pathnames are given, " +"the command makes a commit that only records the changes made to the named " +"paths:" msgstr "" -#. type: Plain text -#: en/git-describe.txt:116 +#. type: delimited block - +#: en/git-commit.txt:404 #, no-wrap msgid "" -"\t[torvalds@g5 git]$ git describe parent\n" -"\tv1.0.4-14-g2414721\n" +"$ edit hello.c hello.h\n" +"$ git add hello.c hello.h\n" +"$ edit Makefile\n" +"$ git commit Makefile\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:122 +#: en/git-commit.txt:411 msgid "" -"i.e. the current head of my \"parent\" branch is based on v1.0.4, but since " -"it has a few commits on top of that, describe has added the number of " -"additional commits (\"14\") and an abbreviated object name for the commit " -"itself (\"2414721\") at the end." +"This makes a commit that records the modification to `Makefile`. The " +"changes staged for `hello.c` and `hello.h` are not included in the resulting " +"commit. However, their changes are not lost -- they are still staged and " +"merely held back. After the above sequence, if you do:" +msgstr "" + +#. type: delimited block - +#: en/git-commit.txt:414 en/git-commit.txt:440 +#, no-wrap +msgid "$ git commit\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:130 +#: en/git-commit.txt:418 msgid "" -"The number of additional commits is the number of commits which would be " -"displayed by \"git log v1.0.4..parent\". The hash suffix is \"-g\" + 7-char " -"abbreviation for the tip commit of parent (which was " -"`2414721b194453f058079d897d13c4e377f92dc6`). The \"g\" prefix stands for " -"\"git\" and is used to allow describing the version of a software depending " -"on the SCM the software is managed with. This is useful in an environment " -"where people may use different SCMs." +"this second commit would record the changes to `hello.c` and `hello.h` as " +"expected." msgstr "" #. type: Plain text -#: en/git-describe.txt:132 -msgid "Doing a 'git describe' on a tag-name will just show the tag name:" +#: en/git-commit.txt:426 +msgid "" +"After a merge (initiated by 'git merge' or 'git pull') stops because of " +"conflicts, cleanly merged paths are already staged to be committed for you, " +"and paths that conflicted are left in unmerged state. You would have to " +"first check which paths are conflicting with 'git status' and after fixing " +"them manually in your working tree, you would stage the result as usual with " +"'git add':" msgstr "" -#. type: Plain text -#: en/git-describe.txt:135 +#. type: delimited block - +#: en/git-commit.txt:432 #, no-wrap msgid "" -"\t[torvalds@g5 git]$ git describe v1.0.4\n" -"\tv1.0.4\n" +"$ git status | grep unmerged\n" +"unmerged: hello.c\n" +"$ edit hello.c\n" +"$ git add hello.c\n" msgstr "" #. type: Plain text -#: en/git-describe.txt:138 +#: en/git-commit.txt:437 msgid "" -"With --all, the command can use branch heads as references, so the output " -"shows the reference path as well:" +"After resolving conflicts and staging the result, `git ls-files -u` would " +"stop mentioning the conflicted path. When you are done, run `git commit` to " +"finally record the merge:" msgstr "" #. type: Plain text -#: en/git-describe.txt:141 -#, no-wrap +#: en/git-commit.txt:448 msgid "" -"\t[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2\n" -"\ttags/v1.0.0-21-g975b\n" +"As with the case to record your own changes, you can use `-a` option to save " +"typing. One difference is that during a merge resolution, you cannot use " +"`git commit` with pathnames to alter the order the changes are committed, " +"because the merge should be recorded as a single commit. In fact, the " +"command refuses to run when given pathnames (but see `-i` option)." msgstr "" #. type: Plain text -#: en/git-describe.txt:144 -#, no-wrap +#: en/git-commit.txt:460 msgid "" -"\t[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^\n" -"\theads/lt/describe-7-g975b\n" +"Though not required, it's a good idea to begin the commit message with a " +"single short (less than 50 character) line summarizing the change, followed " +"by a blank line and then a more thorough description. The text up to the " +"first blank line in a commit message is treated as the commit title, and " +"that title is used throughout Git. For example, linkgit:git-format-patch[1] " +"turns a commit into email, and it uses the title on the Subject line and the " +"rest of the commit in the body." msgstr "" -#. type: Plain text -#: en/git-describe.txt:147 -msgid "" -"With --abbrev set to 0, the command can be used to find the closest tagname " -"without any suffix:" +#. type: Title - +#: en/git-commit.txt:464 +#, no-wrap +msgid "ENVIRONMENT AND CONFIGURATION VARIABLES" msgstr "" #. type: Plain text -#: en/git-describe.txt:150 -#, no-wrap +#: en/git-commit.txt:469 msgid "" -"\t[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2\n" -"\ttags/v1.0.0\n" +"The editor used to edit the commit log message will be chosen from the " +"`GIT_EDITOR` environment variable, the core.editor configuration variable, " +"the `VISUAL` environment variable, or the `EDITOR` environment variable (in " +"that order). See linkgit:git-var[1] for details." msgstr "" #. type: Plain text -#: en/git-describe.txt:156 +#: en/git-commit.txt:475 msgid "" -"Note that the suffix you get if you type these commands today may be longer " -"than what Linus saw above when he ran these commands, as your Git repository " -"may have new commits whose object names begin with 975b that did not exist " -"back then, and \"-g975b\" suffix alone may not be sufficient to disambiguate " -"these commits." +"This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`, `post-" +"commit` and `post-rewrite` hooks. See linkgit:githooks[5] for more " +"information." msgstr "" -#. type: Title - -#: en/git-describe.txt:159 +#. type: Labeled list +#: en/git-commit.txt:479 #, no-wrap -msgid "SEARCH STRATEGY" -msgstr "" - -#. type: Plain text -#: en/git-describe.txt:166 -msgid "" -"For each commit-ish supplied, 'git describe' will first look for a tag which " -"tags exactly that commit. Annotated tags will always be preferred over " -"lightweight tags, and tags with newer dates will always be preferred over " -"tags with older dates. If an exact match is found, its name will be output " -"and searching will stop." +msgid "`$GIT_DIR/COMMIT_EDITMSG`" msgstr "" #. type: Plain text -#: en/git-describe.txt:173 +#: en/git-commit.txt:485 msgid "" -"If an exact match was not found, 'git describe' will walk back through the " -"commit history to locate an ancestor commit which has been tagged. The " -"ancestor's tag will be output along with an abbreviation of the input " -"commit-ish's SHA-1. If `--first-parent` was specified then the walk will " -"only consider the first parent of each commit." +"This file contains the commit message of a commit in progress. If `git " +"commit` exits due to an error before creating a commit, any commit message " +"that has been provided by the user (e.g., in an editor session) will be " +"available in this file, but will be overwritten by the next invocation of " +"`git commit`." msgstr "" #. type: Plain text -#: en/git-describe.txt:179 +#: en/git-commit.txt:493 msgid "" -"If multiple tags were found during the walk then the tag which has the " -"fewest commits different from the input commit-ish will be selected and " -"output. Here fewest commits different is defined as the number of commits " -"which would be shown by `git log tag..input` will be the smallest number of " -"commits possible." +"linkgit:git-add[1], linkgit:git-rm[1], linkgit:git-mv[1], linkgit:git-" +"merge[1], linkgit:git-commit-tree[1]" msgstr "" #. type: Title = -#: en/git-diff-files.txt:2 +#: en/git-config.txt:2 #, no-wrap -msgid "git-diff-files(1)" +msgid "git-config(1)" msgstr "" #. type: Plain text -#: en/git-diff-files.txt:7 -msgid "git-diff-files - Compares files in the working tree and the index" +#: en/git-config.txt:7 +msgid "git-config - Get and set repository or global options" msgstr "" #. type: Plain text -#: en/git-diff-files.txt:13 +#: en/git-config.txt:27 #, no-wrap msgid "" -"'git diff-files' [-q] [-0|-1|-2|-3|-c|--cc] [<common diff options>] " -"[<path>...]\n" +"'git config' [<file-option>] [--type=<type>] [--show-origin] [-z|--null] name [value [value_regex]]\n" +"'git config' [<file-option>] [--type=<type>] --add name value\n" +"'git config' [<file-option>] [--type=<type>] --replace-all name value [value_regex]\n" +"'git config' [<file-option>] [--type=<type>] [--show-origin] [-z|--null] --get name [value_regex]\n" +"'git config' [<file-option>] [--type=<type>] [--show-origin] [-z|--null] --get-all name [value_regex]\n" +"'git config' [<file-option>] [--type=<type>] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]\n" +"'git config' [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch name URL\n" +"'git config' [<file-option>] --unset name [value_regex]\n" +"'git config' [<file-option>] --unset-all name [value_regex]\n" +"'git config' [<file-option>] --rename-section old_name new_name\n" +"'git config' [<file-option>] --remove-section name\n" +"'git config' [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list\n" +"'git config' [<file-option>] --get-color name [default]\n" +"'git config' [<file-option>] --get-colorbool name [stdout-is-tty]\n" +"'git config' [<file-option>] -e | --edit\n" msgstr "" #. type: Plain text -#: en/git-diff-files.txt:20 +#: en/git-config.txt:33 msgid "" -"Compares the files in the working tree and the index. When paths are " -"specified, compares only those named paths. Otherwise all entries in the " -"index are compared. The output format is the same as for 'git diff-index' " -"and 'git diff-tree'." -msgstr "" - -#. type: Labeled list -#: en/git-diff-files.txt:25 -#, no-wrap -msgid "-1 --base" +"You can query/set/replace/unset options with this command. The name is " +"actually the section and the key separated by a dot, and the value will be " +"escaped." msgstr "" -#. type: Labeled list -#: en/git-diff-files.txt:26 -#, no-wrap -msgid "-2 --ours" +#. type: Plain text +#: en/git-config.txt:40 +msgid "" +"Multiple lines can be added to an option by using the `--add` option. If " +"you want to update or unset an option which can occur on multiple lines, a " +"POSIX regexp `value_regex` needs to be given. Only the existing values that " +"match the regexp are updated or unset. If you want to handle the lines that " +"do *not* match the regex, just prepend a single exclamation mark in front " +"(see also <<EXAMPLES>>)." msgstr "" -#. type: Labeled list -#: en/git-diff-files.txt:27 -#, no-wrap -msgid "-3 --theirs" +#. type: Plain text +#: en/git-config.txt:45 +msgid "" +"The `--type=<type>` option instructs 'git config' to ensure that incoming " +"and outgoing values are canonicalize-able under the given <type>. If no `--" +"type=<type>` is given, no canonicalization will be performed. Callers may " +"unset an existing `--type` specifier with `--no-type`." msgstr "" #. type: Plain text -#: en/git-diff-files.txt:32 +#: en/git-config.txt:51 msgid "" -"Diff against the \"base\" version, \"our branch\" or \"their branch\" " -"respectively. With these options, diffs for merged entries are not shown." +"When reading, the values are read from the system, global and repository " +"local configuration files by default, and options `--system`, `--global`, `--" +"local`, `--worktree` and `--file <filename>` can be used to tell the command " +"to read from only that location (see <<FILES>>)." msgstr "" #. type: Plain text -#: en/git-diff-files.txt:36 +#: en/git-config.txt:57 msgid "" -"The default is to diff against our branch (-2) and the cleanly resolved " -"paths. The option -0 can be given to omit diff output for unmerged entries " -"and just show \"Unmerged\"." +"When writing, the new value is written to the repository local configuration " +"file by default, and options `--system`, `--global`, `--worktree`, `--file " +"<filename>` can be used to tell the command to write to that location (you " +"can say `--local` but that is the default)." msgstr "" -#. type: Labeled list -#: en/git-diff-files.txt:38 en/git-diff-tree.txt:101 en/rev-list-options.txt:873 -#, no-wrap -msgid "--cc" +#. type: Plain text +#: en/git-config.txt:60 +msgid "" +"This command will fail with non-zero status upon error. Some exit codes are:" msgstr "" #. type: Plain text -#: en/git-diff-files.txt:43 -msgid "" -"This compares stage 2 (our branch), stage 3 (their branch) and the working " -"tree file and outputs a combined diff, similar to the way 'diff-tree' shows " -"a merge commit with these flags." +#: en/git-config.txt:62 +msgid "The section or key is invalid (ret=1)," msgstr "" #. type: Plain text -#: en/git-diff-files.txt:46 -msgid "Remain silent even on nonexistent files" +#: en/git-config.txt:63 +msgid "no section or name was provided (ret=2)," msgstr "" -#. type: Title = -#: en/git-diff-index.txt:2 -#, no-wrap -msgid "git-diff-index(1)" +#. type: Plain text +#: en/git-config.txt:64 +msgid "the config file is invalid (ret=3)," msgstr "" #. type: Plain text -#: en/git-diff-index.txt:7 -msgid "git-diff-index - Compare a tree to the working tree or index" +#: en/git-config.txt:65 +msgid "the config file cannot be written (ret=4)," msgstr "" #. type: Plain text -#: en/git-diff-index.txt:13 -#, no-wrap -msgid "" -"'git diff-index' [-m] [--cached] [<common diff options>] <tree-ish> " -"[<path>...]\n" +#: en/git-config.txt:66 +msgid "you try to unset an option which does not exist (ret=5)," msgstr "" #. type: Plain text -#: en/git-diff-index.txt:21 +#: en/git-config.txt:67 msgid "" -"Compares the content and mode of the blobs found in a tree object with the " -"corresponding tracked files in the working tree, or with the corresponding " -"paths in the index. When <path> arguments are present, compares only paths " -"matching those patterns. Otherwise all tracked files are compared." +"you try to unset/set an option for which multiple lines match (ret=5), or" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:28 -msgid "The id of a tree object to diff against." +#: en/git-config.txt:68 +msgid "you try to use an invalid regexp (ret=6)." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:31 -msgid "do not consider the on-disk file at all" +#: en/git-config.txt:70 +msgid "On success, the command returns the exit code 0." +msgstr "" + +#. type: Labeled list +#: en/git-config.txt:74 +#, no-wrap +msgid "--replace-all" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:37 +#: en/git-config.txt:77 msgid "" -"By default, files recorded in the index but not checked out are reported as " -"deleted. This flag makes 'git diff-index' say that all non-checked-out " -"files are up to date." +"Default behavior is to replace at most one line. This replaces all lines " +"matching the key (and optionally the value_regex)." msgstr "" -#. type: Title - -#: en/git-diff-index.txt:41 +#. type: Labeled list +#: en/git-config.txt:78 en/git-update-index.txt:44 #, no-wrap -msgid "Operating Modes" +msgid "--add" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:46 +#: en/git-config.txt:82 msgid "" -"You can choose whether you want to trust the index file entirely (using the " -"`--cached` flag) or ask the diff logic to show any files that don't match " -"the stat state as being \"tentatively changed\". Both of these operations " -"are very useful indeed." +"Adds a new line to the option without altering any existing values. This is " +"the same as providing '^$' as the value_regex in `--replace-all`." msgstr "" -#. type: Title - -#: en/git-diff-index.txt:48 +#. type: Labeled list +#: en/git-config.txt:83 #, no-wrap -msgid "Cached Mode" +msgid "--get" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:50 -msgid "If `--cached` is specified, it allows you to ask:" +#: en/git-config.txt:87 +msgid "" +"Get the value for a given key (optionally filtered by a regex matching the " +"value). Returns error code 1 if the key was not found and the last value if " +"multiple key values were found." +msgstr "" + +#. type: Labeled list +#: en/git-config.txt:88 +#, no-wrap +msgid "--get-all" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:53 +#: en/git-config.txt:90 +msgid "Like get, but returns all values for a multi-valued key." +msgstr "" + +#. type: Labeled list +#: en/git-config.txt:91 #, no-wrap -msgid "" -"\tshow me the differences between HEAD and the current index\n" -"\tcontents (the ones I'd write using 'git write-tree')\n" +msgid "--get-regexp" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:58 +#: en/git-config.txt:97 msgid "" -"For example, let's say that you have worked on your working directory, " -"updated some files in the index and are ready to commit. You want to see " -"exactly *what* you are going to commit, without having to write a new tree " -"object and compare it that way, and to do that, you just do" +"Like --get-all, but interprets the name as a regular expression and writes " +"out the key names. Regular expression matching is currently case-sensitive " +"and done against a canonicalized version of the key in which section and " +"variable names are lowercased, but subsection names are not." msgstr "" -#. type: Plain text -#: en/git-diff-index.txt:60 +#. type: Labeled list +#: en/git-config.txt:98 #, no-wrap -msgid "\tgit diff-index --cached HEAD\n" +msgid "--get-urlmatch name URL" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:65 +#: en/git-config.txt:105 msgid "" -"Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had " -"done an `update-index` to make that effective in the index file. `git " -"diff-files` wouldn't show anything at all, since the index file matches my " -"working directory. But doing a 'git diff-index' does:" +"When given a two-part name section.key, the value for section.<url>.key " +"whose <url> part matches the best to the given URL is returned (if no such " +"key exists, the value for section.key is used as a fallback). When given " +"just the section as name, do so for all the keys in the section and list " +"them. Returns error code 1 if no value is found." msgstr "" -#. type: Plain text -#: en/git-diff-index.txt:69 +#. type: Labeled list +#: en/git-config.txt:106 #, no-wrap -msgid "" -" torvalds@ppc970:~/git> git diff-index --cached HEAD\n" -" -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c\n" -" +100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 " -"git-commit.c\n" +msgid "--global" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:71 -msgid "You can see easily that the above is a rename." +#: en/git-config.txt:111 +msgid "" +"For writing options: write to global `~/.gitconfig` file rather than the " +"repository `.git/config`, write to `$XDG_CONFIG_HOME/git/config` file if " +"this file exists and the `~/.gitconfig` file doesn't." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:75 +#: en/git-config.txt:114 msgid "" -"In fact, `git diff-index --cached` *should* always be entirely equivalent to " -"actually doing a 'git write-tree' and comparing that. Except this one is " -"much nicer for the case where you just want to check where you are." +"For reading options: read only from global `~/.gitconfig` and from `" +"$XDG_CONFIG_HOME/git/config` rather than from all available files." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:79 -msgid "" -"So doing a `git diff-index --cached` is basically very useful when you are " -"asking yourself \"what have I already marked for being committed, and what's " -"the difference to a previous tree\"." +#: en/git-config.txt:116 en/git-config.txt:126 en/git-config.txt:135 +#: en/git-config.txt:332 +msgid "See also <<FILES>>." msgstr "" -#. type: Title - -#: en/git-diff-index.txt:81 +#. type: Labeled list +#: en/git-config.txt:117 #, no-wrap -msgid "Non-cached Mode" +msgid "--system" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:86 +#: en/git-config.txt:121 msgid "" -"The \"non-cached\" mode takes a different approach, and is potentially the " -"more useful of the two in that what it does can't be emulated with a 'git " -"write-tree' + 'git diff-tree'. Thus that's the default mode. The non-cached " -"version asks the question:" +"For writing options: write to system-wide `$(prefix)/etc/gitconfig` rather " +"than the repository `.git/config`." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:89 -#, no-wrap +#: en/git-config.txt:124 msgid "" -" show me the differences between HEAD and the currently checked out\n" -" tree - index contents _and_ files that aren't up-to-date\n" +"For reading options: read only from system-wide `$(prefix)/etc/gitconfig` " +"rather than from all available files." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:93 +#: en/git-config.txt:130 msgid "" -"which is obviously a very useful question too, since that tells you what you " -"*could* commit. Again, the output matches the 'git diff-tree -r' output to a " -"tee, but with a twist." +"For writing options: write to the repository `.git/config` file. This is" +"\tthe default behavior." msgstr "" #. type: Plain text -#: en/git-diff-index.txt:99 +#: en/git-config.txt:133 msgid "" -"The twist is that if some file doesn't match the index, we don't have a " -"backing store thing for it, and we use the magic \"all-zero\" sha1 to show " -"that. So let's say that you have edited `kernel/sched.c`, but have not " -"actually done a 'git update-index' on it yet - there is no \"object\" " -"associated with the new state, and you get:" +"For reading options: read only from the repository `.git/config` rather than " +"from all available files." msgstr "" -#. type: Plain text -#: en/git-diff-index.txt:102 +#. type: Labeled list +#: en/git-config.txt:136 #, no-wrap -msgid "" -" torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD\n" -" :100644 100664 7476bb... 000000... kernel/sched.c\n" -msgstr "" - -#. type: Plain text -#: en/git-diff-index.txt:107 -msgid "" -"i.e., it shows that the tree has changed, and that `kernel/sched.c` has is " -"not up-to-date and may contain new stuff. The all-zero sha1 means that to " -"get the real diff, you need to look at the object in the working directory " -"directly rather than do an object-to-object diff." +msgid "--worktree" msgstr "" #. type: Plain text -#: en/git-diff-index.txt:113 +#: en/git-config.txt:140 msgid "" -"As with other commands of this type, 'git diff-index' does not actually look " -"at the contents of the file at all. So maybe `kernel/sched.c` hasn't " -"actually changed, and it's just that you touched it. In either case, it's a " -"note that you need to 'git update-index' it to make the index be in sync." +"Similar to `--local` except that `.git/config.worktree` is read from or " +"written to if `extensions.worktreeConfig` is present. If not it's the same " +"as `--local`." msgstr "" -#. type: Plain text -#: en/git-diff-index.txt:119 -msgid "" -"You can have a mixture of files show up as \"has been updated\" and \"is " -"still dirty in the working directory\" together. You can always tell which " -"file is in which state, since the \"has been updated\" ones show a valid " -"sha1, and the \"not in sync with the index\" ones will always have the " -"special all-zero sha1." +#. type: Labeled list +#: en/git-config.txt:141 +#, no-wrap +msgid "-f config-file" msgstr "" -#. type: Title = -#: en/git-difftool.txt:2 +#. type: Labeled list +#: en/git-config.txt:142 #, no-wrap -msgid "git-difftool(1)" +msgid "--file config-file" msgstr "" #. type: Plain text -#: en/git-difftool.txt:7 -msgid "git-difftool - Show changes using common diff tools" +#: en/git-config.txt:144 +msgid "Use the given config file instead of the one specified by GIT_CONFIG." msgstr "" -#. type: Plain text -#: en/git-difftool.txt:12 +#. type: Labeled list +#: en/git-config.txt:145 #, no-wrap -msgid "'git difftool' [<options>] [<commit> [<commit>]] [--] [<path>...]\n" +msgid "--blob blob" msgstr "" #. type: Plain text -#: en/git-difftool.txt:19 +#: en/git-config.txt:151 msgid "" -"'git difftool' is a Git command that allows you to compare and edit files " -"between revisions using common diff tools. 'git difftool' is a frontend to " -"'git diff' and accepts the same options and arguments. See " -"linkgit:git-diff[1]." +"Similar to `--file` but use the given blob instead of a file. E.g. you can " +"use 'master:.gitmodules' to read values from the file '.gitmodules' in the " +"master branch. See \"SPECIFYING REVISIONS\" section in linkgit:" +"gitrevisions[7] for a more complete list of ways to spell blob names." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:23 +#: en/git-config.txt:152 #, no-wrap -msgid "--dir-diff" +msgid "--remove-section" msgstr "" #. type: Plain text -#: en/git-difftool.txt:27 -msgid "" -"Copy the modified files to a temporary location and perform a directory diff " -"on them. This mode never prompts before launching the diff tool." +#: en/git-config.txt:154 +msgid "Remove the given section from the configuration file." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:28 en/git-mergetool.txt:70 +#: en/git-config.txt:155 #, no-wrap -msgid "-y" +msgid "--rename-section" +msgstr "" + +#. type: Plain text +#: en/git-config.txt:157 +msgid "Rename the given section to a new name." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:29 en/git-mergetool.txt:71 +#: en/git-config.txt:158 #, no-wrap -msgid "--no-prompt" +msgid "--unset" msgstr "" #. type: Plain text -#: en/git-difftool.txt:31 -msgid "Do not prompt before launching a diff tool." +#: en/git-config.txt:160 +msgid "Remove the line matching the key from config file." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:32 en/git-mergetool.txt:78 +#: en/git-config.txt:161 #, no-wrap -msgid "--prompt" +msgid "--unset-all" msgstr "" #. type: Plain text -#: en/git-difftool.txt:36 -msgid "" -"Prompt before each invocation of the diff tool. This is the default " -"behaviour; the option is provided to override any configuration settings." +#: en/git-config.txt:163 +msgid "Remove all lines matching the key from config file." msgstr "" -#. type: Labeled list -#: en/git-difftool.txt:37 en/git-mergetool.txt:27 -#, no-wrap -msgid "-t <tool>" +#. type: Plain text +#: en/git-config.txt:167 +msgid "List all variables set in config file, along with their values." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:38 en/git-mergetool.txt:28 +#: en/git-config.txt:168 #, no-wrap -msgid "--tool=<tool>" +msgid "--type <type>" msgstr "" #. type: Plain text -#: en/git-difftool.txt:42 +#: en/git-config.txt:172 msgid "" -"Use the diff tool specified by <tool>. Valid values include emerge, " -"kompare, meld, and vimdiff. Run `git difftool --tool-help` for the list of " -"valid <tool> settings." +"'git config' will ensure that any input or output is valid under the given " +"type constraint(s), and will canonicalize outgoing values in `<type>`'s " +"canonical form." msgstr "" #. type: Plain text -#: en/git-difftool.txt:47 -msgid "" -"If a diff tool is not specified, 'git difftool' will use the configuration " -"variable `diff.tool`. If the configuration variable `diff.tool` is not set, " -"'git difftool' will pick a suitable default." +#: en/git-config.txt:174 +msgid "Valid `<type>`'s include:" msgstr "" #. type: Plain text -#: en/git-difftool.txt:53 -msgid "" -"You can explicitly provide a full path to the tool by setting the " -"configuration variable `difftool.<tool>.path`. For example, you can " -"configure the absolute path to kdiff3 by setting " -"`difftool.kdiff3.path`. Otherwise, 'git difftool' assumes the tool is " -"available in PATH." +#: en/git-config.txt:176 +msgid "'bool': canonicalize values as either \"true\" or \"false\"." msgstr "" #. type: Plain text -#: en/git-difftool.txt:58 +#: en/git-config.txt:179 msgid "" -"Instead of running one of the known diff tools, 'git difftool' can be " -"customized to run an alternative program by specifying the command line to " -"invoke in a configuration variable `difftool.<tool>.cmd`." +"'int': canonicalize values as simple decimal numbers. An optional suffix of " +"'k', 'm', or 'g' will cause the value to be multiplied by 1024, 1048576, or " +"1073741824 upon input." msgstr "" #. type: Plain text -#: en/git-difftool.txt:68 +#: en/git-config.txt:181 msgid "" -"When 'git difftool' is invoked with this tool (either through the `-t` or " -"`--tool` option or the `diff.tool` configuration variable) the configured " -"command line will be invoked with the following variables available: " -"`$LOCAL` is set to the name of the temporary file containing the contents of " -"the diff pre-image and `$REMOTE` is set to the name of the temporary file " -"containing the contents of the diff post-image. `$MERGED` is the name of " -"the file which is being compared. `$BASE` is provided for compatibility with " -"custom merge tool commands and has the same value as `$MERGED`." -msgstr "" - -#. type: Labeled list -#: en/git-difftool.txt:69 en/git-mergetool.txt:67 -#, no-wrap -msgid "--tool-help" +"'bool-or-int': canonicalize according to either 'bool' or 'int', as " +"described above." msgstr "" #. type: Plain text -#: en/git-difftool.txt:71 -msgid "Print a list of diff tools that may be used with `--tool`." -msgstr "" - -#. type: Labeled list -#: en/git-difftool.txt:72 -#, no-wrap -msgid "--[no-]symlinks" +#: en/git-config.txt:185 +msgid "" +"'path': canonicalize by adding a leading `~` to the value of `$HOME` and " +"`~user` to the home directory for the specified user. This specifier has no " +"effect when setting the value (but you can use `git config section.variable " +"~/` from the command line to let your shell do the expansion.)" msgstr "" #. type: Plain text -#: en/git-difftool.txt:77 +#: en/git-config.txt:187 msgid "" -"'git difftool''s default behavior is create symlinks to the working tree " -"when run in `--dir-diff` mode and the right-hand side of the comparison " -"yields the same content as the file in the working tree." +"'expiry-date': canonicalize by converting from a fixed or relative date-" +"string to a timestamp. This specifier has no effect when setting the value." msgstr "" #. type: Plain text -#: en/git-difftool.txt:80 +#: en/git-config.txt:191 msgid "" -"Specifying `--no-symlinks` instructs 'git difftool' to create copies " -"instead. `--no-symlinks` is the default on Windows." +"'color': When getting a value, canonicalize by converting to an ANSI color " +"escape sequence. When setting a value, a sanity-check is performed to ensure " +"that the given value is canonicalize-able as an ANSI color, but it is " +"written as-is." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:81 +#: en/git-config.txt:193 #, no-wrap -msgid "-x <command>" +msgid "--bool" msgstr "" #. type: Labeled list -#: en/git-difftool.txt:82 +#: en/git-config.txt:194 #, no-wrap -msgid "--extcmd=<command>" +msgid "--int" msgstr "" -#. type: Plain text -#: en/git-difftool.txt:87 -msgid "" -"Specify a custom command for viewing diffs. 'git-difftool' ignores the " -"configured defaults and runs `$command $LOCAL $REMOTE` when this option is " -"specified. Additionally, `$BASE` is set in the environment." +#. type: Labeled list +#: en/git-config.txt:195 +#, no-wrap +msgid "--bool-or-int" msgstr "" #. type: Labeled list -#: en/git-difftool.txt:88 en/git-help.txt:46 en/git-show-branch.txt:111 en/git-update-index.txt:114 en/rev-list-options.txt:245 +#: en/git-config.txt:196 en/git-hash-object.txt:41 #, no-wrap -msgid "-g" +msgid "--path" msgstr "" #. type: Labeled list -#: en/git-difftool.txt:89 +#: en/git-config.txt:197 #, no-wrap -msgid "--[no-]gui" +msgid "--expiry-date" msgstr "" #. type: Plain text -#: en/git-difftool.txt:94 +#: en/git-config.txt:200 msgid "" -"When 'git-difftool' is invoked with the `-g` or `--gui` option the default " -"diff tool will be read from the configured `diff.guitool` variable instead " -"of `diff.tool`. The `--no-gui` option can be used to override this setting." +"Historical options for selecting a type specifier. Prefer instead `--type` " +"(see above)." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:95 +#: en/git-config.txt:201 #, no-wrap -msgid "--[no-]trust-exit-code" +msgid "--no-type" msgstr "" #. type: Plain text -#: en/git-difftool.txt:100 +#: en/git-config.txt:205 msgid "" -"'git-difftool' invokes a diff tool individually on each file. Errors " -"reported by the diff tool are ignored by default. Use `--trust-exit-code` " -"to make 'git-difftool' exit when an invoked diff tool returns a non-zero " -"exit code." +"Un-sets the previously set type specifier (if one was previously set). This " +"option requests that 'git config' not canonicalize the retrieved variable. " +"`--no-type` has no effect without `--type=<type>` or `--<type>`." msgstr "" #. type: Plain text -#: en/git-difftool.txt:103 +#: en/git-config.txt:214 msgid "" -"'git-difftool' will forward the exit code of the invoked tool when " -"`--trust-exit-code` is used." +"For all options that output values and/or keys, always end values with the " +"null character (instead of a newline). Use newline instead as a delimiter " +"between key and value. This allows for secure parsing of the output without " +"getting confused e.g. by values that contain line breaks." msgstr "" #. type: Plain text -#: en/git-difftool.txt:105 -msgid "See linkgit:git-diff[1] for the full list of supported options." +#: en/git-config.txt:218 +msgid "" +"Output only the names of config variables for `--list` or `--get-regexp`." msgstr "" -#. type: Title - -#: en/git-difftool.txt:107 +#. type: Labeled list +#: en/git-config.txt:219 #, no-wrap -msgid "CONFIG VARIABLES" +msgid "--show-origin" msgstr "" #. type: Plain text -#: en/git-difftool.txt:110 +#: en/git-config.txt:224 msgid "" -"'git difftool' falls back to 'git mergetool' config variables when the " -"difftool equivalents have not been defined." +"Augment the output of all queried config options with the origin type (file, " +"standard input, blob, command line) and the actual origin (config file path, " +"ref, or blob id if applicable)." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:111 en/diff-config.txt:172 +#: en/git-config.txt:225 #, no-wrap -msgid "diff.tool" +msgid "--get-colorbool name [stdout-is-tty]" msgstr "" #. type: Plain text -#: en/git-difftool.txt:113 -msgid "The default diff tool to use." +#: en/git-config.txt:235 +msgid "" +"Find the color setting for `name` (e.g. `color.diff`) and output \"true\" or " +"\"false\". `stdout-is-tty` should be either \"true\" or \"false\", and is " +"taken into account when configuration says \"auto\". If `stdout-is-tty` is " +"missing, then checks the standard output of the command itself, and exits " +"with status 0 if color is to be used, or exits with status 1 otherwise. " +"When the color setting for `name` is undefined, the command uses `color.ui` " +"as fallback." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:114 +#: en/git-config.txt:236 #, no-wrap -msgid "diff.guitool" +msgid "--get-color name [default]" msgstr "" #. type: Plain text -#: en/git-difftool.txt:116 -msgid "The default diff tool to use when `--gui` is specified." +#: en/git-config.txt:242 +msgid "" +"Find the color configured for `name` (e.g. `color.diff.new`) and output it " +"as the ANSI color escape sequence to the standard output. The optional " +"`default` parameter is used instead, if there is no color configured for " +"`name`." msgstr "" -#. type: Labeled list -#: en/git-difftool.txt:117 en/config.txt:1270 -#, no-wrap -msgid "difftool.<tool>.path" +#. type: Plain text +#: en/git-config.txt:244 +msgid "`--type=color [--default=<default>]` is preferred over `--get-color`." msgstr "" #. type: Plain text -#: en/git-difftool.txt:120 en/config.txt:1273 en/config.txt:2188 +#: en/git-config.txt:249 msgid "" -"Override the path for the given tool. This is useful in case your tool is " -"not in the PATH." +"Opens an editor to modify the specified config file; either `--system`, `--" +"global`, or repository (default)." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:121 en/config.txt:1274 +#: en/git-config.txt:250 #, no-wrap -msgid "difftool.<tool>.cmd" -msgstr "" - -#. type: Plain text -#: en/git-difftool.txt:123 -msgid "Specify the command to invoke the specified diff tool." +msgid "--[no-]includes" msgstr "" #. type: Plain text -#: en/git-difftool.txt:125 -msgid "See the `--tool=<tool>` option above for more details." +#: en/git-config.txt:255 +msgid "" +"Respect `include.*` directives in config files when looking up values. " +"Defaults to `off` when a specific file is given (e.g., using `--file`, `--" +"global`, etc) and `on` when searching all config files." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:126 en/config.txt:1282 +#: en/git-config.txt:256 #, no-wrap -msgid "difftool.prompt" +msgid "--default <value>" msgstr "" #. type: Plain text -#: en/git-difftool.txt:128 en/config.txt:1284 -msgid "Prompt before each invocation of the diff tool." -msgstr "" - -#. type: Labeled list -#: en/git-difftool.txt:129 -#, no-wrap -msgid "difftool.trustExitCode" +#: en/git-config.txt:259 +msgid "" +"When using `--get`, and the requested variable is not found, behave as if " +"<value> were the value assigned to the that variable." msgstr "" #. type: Plain text -#: en/git-difftool.txt:131 -msgid "Exit difftool if the invoked diff tool returns a non-zero exit status." +#: en/git-config.txt:265 +msgid "" +"`pager.config` is only respected when listing configuration, i.e., when " +"using `--list` or any of the `--get-*` which may return multiple results. " +"The default is to use a pager." msgstr "" #. type: Plain text -#: en/git-difftool.txt:133 -msgid "See the `--trust-exit-code` option above for more details." +#: en/git-config.txt:272 +msgid "" +"If not set explicitly with `--file`, there are four files where 'git config' " +"will search for configuration options:" msgstr "" #. type: Labeled list -#: en/git-difftool.txt:136 en/cmds-mainporcelain.txt:40 +#: en/git-config.txt:273 #, no-wrap -msgid "linkgit:git-diff[1]" +msgid "$(prefix)/etc/gitconfig" msgstr "" #. type: Plain text -#: en/git-difftool.txt:138 -msgid "Show changes between commits, commit and working tree, etc" +#: en/git-config.txt:275 +msgid "System-wide configuration file." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:139 en/cmds-ancillarymanipulators.txt:13 +#: en/git-config.txt:276 #, no-wrap -msgid "linkgit:git-mergetool[1]" +msgid "$XDG_CONFIG_HOME/git/config" msgstr "" #. type: Plain text -#: en/git-difftool.txt:141 -msgid "Run merge conflict resolution tools to resolve merge conflicts" +#: en/git-config.txt:283 +msgid "" +"Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or " +"empty, `$HOME/.config/git/config` will be used. Any single-valued variable " +"set in this file will be overwritten by whatever is in `~/.gitconfig`. It " +"is a good idea not to create this file if you sometimes use older versions " +"of Git, as support for this file was added fairly recently." msgstr "" #. type: Labeled list -#: en/git-difftool.txt:142 en/cmds-ancillarymanipulators.txt:1 +#: en/git-config.txt:284 #, no-wrap -msgid "linkgit:git-config[1]" +msgid "~/.gitconfig" msgstr "" #. type: Plain text -#: en/git-difftool.txt:144 -msgid "Get and set repository or global options" +#: en/git-config.txt:287 +msgid "" +"User-specific configuration file. Also called \"global\" configuration file." msgstr "" -#. type: Title = -#: en/git-diff-tree.txt:2 +#. type: Labeled list +#: en/git-config.txt:288 #, no-wrap -msgid "git-diff-tree(1)" +msgid "$GIT_DIR/config" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:7 -msgid "" -"git-diff-tree - Compares the content and mode of blobs found via two tree " -"objects" +#: en/git-config.txt:290 +msgid "Repository specific configuration file." msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:15 +#. type: Labeled list +#: en/git-config.txt:291 #, no-wrap -msgid "" -"'git diff-tree' [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty]\n" -"\t [-t] [-r] [-c | --cc] [--root] [<common diff options>]\n" -"\t <tree-ish> [<tree-ish>] [<path>...]\n" +msgid "$GIT_DIR/config.worktree" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:19 -msgid "Compares the content and mode of the blobs found via two tree objects." +#: en/git-config.txt:294 +msgid "" +"This is optional and is only searched when `extensions.worktreeConfig` is " +"present in $GIT_DIR/config." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:22 +#: en/git-config.txt:300 msgid "" -"If there is only one <tree-ish> given, the commit is compared with its " -"parents (see --stdin below)." +"If no further options are given, all reading options will read all of these " +"files that are available. If the global or the system-wide configuration " +"file are not available they will be ignored. If the repository configuration " +"file is not available or readable, 'git config' will exit with a non-zero " +"error code. However, in neither case will an error message be issued." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:24 -msgid "Note that 'git diff-tree' can use the tree encapsulated in a commit object." +#: en/git-config.txt:304 +msgid "" +"The files are read in the order given above, with last value found taking " +"precedence over values read earlier. When multiple values are taken then " +"all values of a key from all files will be used." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:31 -msgid "The id of a tree object." -msgstr "" - -#. type: Labeled list -#: en/git-diff-tree.txt:32 en/git-diff.txt:100 en/git-submodule.txt:423 -#, no-wrap -msgid "<path>..." +#: en/git-config.txt:307 +msgid "" +"You may override individual configuration parameters when running any git " +"command by using the `-c` option. See linkgit:git[1] for details." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:38 +#: en/git-config.txt:311 msgid "" -"If provided, the results are limited to a subset of files matching one of " -"these prefix strings. i.e., file matches `/^<pattern1>|<pattern2>|.../` " -"Note that this parameter does not provide any wildcard or regexp features." +"All writing options will per default write to the repository specific " +"configuration file. Note that this also affects options like `--replace-all` " +"and `--unset`. *'git config' will only ever change one file at a time*." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:41 -msgid "recurse into sub-trees" +#: en/git-config.txt:317 +msgid "" +"You can override these rules either by command-line options or by " +"environment variables. The `--global`, `--system` and `--worktree` options " +"will limit the file used to the global, system-wide or per-worktree file " +"respectively. The `GIT_CONFIG` environment variable has a similar effect, " +"but you can specify any filename you want." msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:44 -msgid "show tree entry itself as well as subtrees. Implies -r." +#. type: Title - +#: en/git-config.txt:320 en/git-cvsserver.txt:310 en/git-daemon.txt:332 +#: en/git-http-backend.txt:243 en/git-notes.txt:373 +#, no-wrap +msgid "ENVIRONMENT" msgstr "" #. type: Labeled list -#: en/git-diff-tree.txt:45 en/git-format-patch.txt:279 en/git-fsck.txt:38 en/git-rebase.txt:415 en/blame-options.txt:5 +#: en/git-config.txt:322 #, no-wrap -msgid "--root" +msgid "GIT_CONFIG" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:48 +#: en/git-config.txt:326 msgid "" -"When `--root` is specified the initial commit will be shown as a big " -"creation event. This is equivalent to a diff against the NULL tree." +"Take the configuration from the given file instead of .git/config. Using " +"the \"--global\" option forces this to ~/.gitconfig. Using the \"--system\" " +"option forces this to $(prefix)/etc/gitconfig." msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:55 -msgid "" -"When `--stdin` is specified, the command does not take <tree-ish> arguments " -"from the command line. Instead, it reads lines containing either two " -"<tree>, one <commit>, or a list of <commit> from its standard input. (Use a " -"single space as separator.)" +#. type: Labeled list +#: en/git-config.txt:327 +#, no-wrap +msgid "GIT_CONFIG_NOSYSTEM" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:60 +#: en/git-config.txt:330 msgid "" -"When two trees are given, it compares the first tree with the second. When " -"a single commit is given, it compares the commit with its parents. The " -"remaining commits, when given, are used as if they are parents of the first " -"commit." +"Whether to skip reading settings from the system-wide $(prefix)/etc/" +"gitconfig file. See linkgit:git[1] for details." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:65 -msgid "" -"When comparing two trees, the ID of both trees (separated by a space and " -"terminated by a newline) is printed before the difference. When comparing " -"commits, the ID of the first (or only) commit, followed by a newline, is " -"printed." +#: en/git-config.txt:339 +msgid "Given a .git/config like this:" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:68 +#: en/git-config.txt:345 +#, no-wrap msgid "" -"The following flags further affect the behavior when comparing commits (but " -"not trees)." +"\t#\n" +"\t# This is the config file, and\n" +"\t# a '#' or ';' character indicates\n" +"\t# a comment\n" +"\t#\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:74 +#: en/git-config.txt:350 +#, no-wrap msgid "" -"By default, 'git diff-tree --stdin' does not show differences for merge " -"commits. With this flag, it shows differences to that commit from all of " -"its parents. See also `-c`." +"\t; core variables\n" +"\t[core]\n" +"\t\t; Don't trust file modes\n" +"\t\tfilemode = false\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:80 +#: en/git-config.txt:355 +#, no-wrap msgid "" -"By default, 'git diff-tree --stdin' shows differences, either in " -"machine-readable form (without `-p`) or in patch form (with `-p`). This " -"output can be suppressed. It is only useful with `-v` flag." +"\t; Our diff algorithm\n" +"\t[diff]\n" +"\t\texternal = /usr/local/bin/diff-wrapper\n" +"\t\trenames = true\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:84 -msgid "" -"This flag causes 'git diff-tree --stdin' to also show the commit message " -"before the differences." -msgstr "" - -#. type: Labeled list -#: en/git-diff-tree.txt:87 +#: en/git-config.txt:360 #, no-wrap -msgid "--no-commit-id" -msgstr "" - -#. type: Plain text -#: en/git-diff-tree.txt:90 -msgid "" -"'git diff-tree' outputs a line with the commit ID when applicable. This " -"flag suppressed the commit ID output." -msgstr "" - -#. type: Plain text -#: en/git-diff-tree.txt:100 msgid "" -"This flag changes the way a merge commit is displayed (which means it is " -"useful only when the command is given one <tree-ish>, or `--stdin`). It " -"shows the differences from each of the parents to the merge result " -"simultaneously instead of showing pairwise diff between a parent and the " -"result one at a time (which is what the `-m` option does). Furthermore, it " -"lists only files which were modified from all parents." +"\t; Proxy settings\n" +"\t[core]\n" +"\t\tgitproxy=proxy-command for kernel.org\n" +"\t\tgitproxy=default-proxy ; for all the rest\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:110 +#: en/git-config.txt:367 +#, no-wrap msgid "" -"This flag changes the way a merge commit patch is displayed, in a similar " -"way to the `-c` option. It implies the `-c` and `-p` options and further " -"compresses the patch output by omitting uninteresting hunks whose the " -"contents in the parents have only two variants and the merge result picks " -"one of them without modification. When all hunks are uninteresting, the " -"commit itself and the commit log message is not shown, just like in any " -"other \"empty diff\" case." +"\t; HTTP\n" +"\t[http]\n" +"\t\tsslVerify\n" +"\t[http \"https://weak.example.com\"]\n" +"\t\tsslVerify = false\n" +"\t\tcookieFile = /tmp/cookie.txt\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:114 -msgid "" -"Show the commit itself and the commit log message even if the diff itself is " -"empty." +#: en/git-config.txt:369 +msgid "you can set the filemode to true with" msgstr "" -#. type: Title - -#: en/git-diff-tree.txt:120 +#. type: delimited block - +#: en/git-config.txt:372 #, no-wrap -msgid "Limiting Output" +msgid "% git config core.filemode true\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:123 +#: en/git-config.txt:377 msgid "" -"If you're only interested in differences in a subset of files, for example " -"some architecture-specific files, you might do:" +"The hypothetical proxy command entries actually have a postfix to discern " +"what URL they apply to. Here is how to change the entry for kernel.org to " +"\"ssh\"." msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:125 +#. type: delimited block - +#: en/git-config.txt:380 #, no-wrap -msgid "\tgit diff-tree -r <tree-ish> <tree-ish> arch/ia64 include/asm-ia64\n" +msgid "% git config core.gitproxy '\"ssh\" for kernel.org' 'for kernel.org$'\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:127 -msgid "and it will only show you what changed in those two directories." +#: en/git-config.txt:383 +msgid "" +"This makes sure that only the key/value pair for kernel.org is replaced." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:129 -msgid "Or if you are searching for what changed in just `kernel/sched.c`, just do" +#: en/git-config.txt:385 +msgid "To delete the entry for renames, do" msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:131 +#. type: delimited block - +#: en/git-config.txt:388 #, no-wrap -msgid "\tgit diff-tree -r <tree-ish> <tree-ish> kernel/sched.c\n" -msgstr "" - -#. type: Plain text -#: en/git-diff-tree.txt:133 -msgid "and it will ignore all differences to other files." +msgid "% git config --unset diff.renames\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:138 +#: en/git-config.txt:392 msgid "" -"The pattern is always the prefix, and is matched exactly. There are no " -"wildcards. Even stricter, it has to match a complete path component. " -"I.e. \"foo\" does not pick up `foobar.h`. \"foo\" does match `foo/bar.h` so " -"it can be used to name subdirectories." +"If you want to delete an entry for a multivar (like core.gitproxy above), " +"you have to provide a regex matching the value of exactly one line." msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:140 -msgid "An example of normal usage is:" +#: en/git-config.txt:394 +msgid "To query the value for a given key, do" msgstr "" -#. type: Plain text -#: en/git-diff-tree.txt:143 +#. type: delimited block - +#: en/git-config.txt:397 #, no-wrap -msgid "" -" torvalds@ppc970:~/git> git diff-tree --abbrev 5319e4\n" -" :100664 100664 ac348b... a01513...\tgit-fsck-objects.c\n" +msgid "% git config --get core.filemode\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:146 -msgid "" -"which tells you that the last commit changed just one file (it's from this " -"one:" +#: en/git-config.txt:400 en/git-gui.txt:120 en/git-merge-index.txt:64 +msgid "or" msgstr "" #. type: delimited block - -#: en/git-diff-tree.txt:153 +#: en/git-config.txt:403 #, no-wrap -msgid "" -"commit 3c6f7ca19ad4043e9e72fa94106f352897e651a8\n" -"tree 5319e4d609cdd282069cc4dce33c1db559539b03\n" -"parent b4e628ea30d5ab3606119d2ea5caeab141d38df7\n" -"author Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 2005\n" -"committer Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 " -"2005\n" +msgid "% git config core.filemode\n" msgstr "" -#. type: delimited block - -#: en/git-diff-tree.txt:155 -#, no-wrap -msgid "Make \"git-fsck-objects\" print out all the root commits it finds.\n" +#. type: Plain text +#: en/git-config.txt:406 +msgid "or, to query a multivar:" msgstr "" #. type: delimited block - -#: en/git-diff-tree.txt:158 +#: en/git-config.txt:409 #, no-wrap -msgid "" -"Once I do the reference tracking, I'll also make it print out all the\n" -"HEAD commits it finds, which is even more interesting.\n" +msgid "% git config --get core.gitproxy \"for kernel.org$\"\n" msgstr "" #. type: Plain text -#: en/git-diff-tree.txt:161 -msgid "in case you care)." +#: en/git-config.txt:412 +msgid "If you want to know all the values for a multivar, do:" msgstr "" -#. type: Title = -#: en/git-diff.txt:2 +#. type: delimited block - +#: en/git-config.txt:415 #, no-wrap -msgid "git-diff(1)" +msgid "% git config --get-all core.gitproxy\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:7 -msgid "git-diff - Show changes between commits, commit and working tree, etc" +#: en/git-config.txt:419 +msgid "" +"If you like to live dangerously, you can replace *all* core.gitproxy by a " +"new one with" msgstr "" -#. type: Plain text -#: en/git-diff.txt:17 +#. type: delimited block - +#: en/git-config.txt:422 #, no-wrap -msgid "" -"'git diff' [options] [<commit>] [--] [<path>...]\n" -"'git diff' [options] --cached [<commit>] [--] [<path>...]\n" -"'git diff' [options] <commit> <commit> [--] [<path>...]\n" -"'git diff' [options] <blob> <blob>\n" -"'git diff' [options] [--no-index] [--] <path> <path>\n" +msgid "% git config --replace-all core.gitproxy ssh\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:23 +#: en/git-config.txt:426 msgid "" -"Show changes between the working tree and the index or a tree, changes " -"between the index and a tree, changes between two trees, changes between two " -"blob objects, or changes between two files on disk." +"However, if you really only want to replace the line for the default proxy, " +"i.e. the one without a \"for ...\" postfix, do something like this:" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:24 +#. type: delimited block - +#: en/git-config.txt:429 #, no-wrap -msgid "'git diff' [--options] [--] [<path>...]" +msgid "% git config core.gitproxy ssh '! for '\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:31 -msgid "" -"This form is to view the changes you made relative to the index (staging " -"area for the next commit). In other words, the differences are what you " -"_could_ tell Git to further add to the index but you still haven't. You can " -"stage these changes by using linkgit:git-add[1]." +#: en/git-config.txt:432 +msgid "To actually match only values with an exclamation mark, you have to" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:32 +#. type: delimited block - +#: en/git-config.txt:435 #, no-wrap -msgid "'git diff' --no-index [--options] [--] [<path>...]" +msgid "% git config section.key value '[!]'\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:40 -msgid "" -"This form is to compare the given two paths on the filesystem. You can omit " -"the `--no-index` option when running the command in a working tree " -"controlled by Git and at least one of the paths points outside the working " -"tree, or when running the command outside a working tree controlled by Git." +#: en/git-config.txt:438 +msgid "To add a new proxy, without altering any of the existing ones, use" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:41 +#. type: delimited block - +#: en/git-config.txt:441 #, no-wrap -msgid "'git diff' [--options] --cached [<commit>] [--] [<path>...]" +msgid "% git config --add core.gitproxy '\"proxy-command\" for example.com'\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:50 +#: en/git-config.txt:445 msgid "" -"This form is to view the changes you staged for the next commit relative to " -"the named <commit>. Typically you would want comparison with the latest " -"commit, so if you do not give <commit>, it defaults to HEAD. If HEAD does " -"not exist (e.g. unborn branches) and <commit> is not given, it shows all " -"staged changes. --staged is a synonym of --cached." +"An example to use customized color from the configuration in your script:" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:51 +#. type: delimited block - +#: en/git-config.txt:451 #, no-wrap -msgid "'git diff' [--options] <commit> [--] [<path>...]" +msgid "" +"#!/bin/sh\n" +"WS=$(git config --get-color color.diff.whitespace \"blue reverse\")\n" +"RESET=$(git config --get-color \"\" \"reset\")\n" +"echo \"${WS}your whitespace color or blue reverse${RESET}\"\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:58 +#: en/git-config.txt:455 msgid "" -"This form is to view the changes you have in your working tree relative to " -"the named <commit>. You can use HEAD to compare it with the latest commit, " -"or a branch name to compare with the tip of a different branch." +"For URLs in `https://weak.example.com`, `http.sslVerify` is set to false, " +"while it is set to `true` for all others:" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:59 +#. type: delimited block - +#: en/git-config.txt:464 #, no-wrap -msgid "'git diff' [--options] <commit> <commit> [--] [<path>...]" -msgstr "" - -#. type: Plain text -#: en/git-diff.txt:63 -msgid "This is to view the changes between two arbitrary <commit>." +msgid "" +"% git config --type=bool --get-urlmatch http.sslverify https://good.example.com\n" +"true\n" +"% git config --type=bool --get-urlmatch http.sslverify https://weak.example.com\n" +"false\n" +"% git config --get-urlmatch http https://weak.example.com\n" +"http.cookieFile /tmp/cookie.txt\n" +"http.sslverify false\n" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:64 +#. type: Title - +#: en/git-config.txt:469 en/git-describe.txt:198 en/git-fetch.txt:285 +#: en/git-mv.txt:56 en/git-pack-refs.txt:64 en/git-pull.txt:248 +#: en/git-rebase.txt:1025 en/git-replace.txt:139 en/git-rm.txt:175 +#: en/git-svn.txt:1064 en/git-worktree.txt:375 #, no-wrap -msgid "'git diff' [--options] <commit>..<commit> [--] [<path>...]" +msgid "BUGS" msgstr "" #. type: Plain text -#: en/git-diff.txt:69 +#: en/git-config.txt:474 msgid "" -"This is synonymous to the previous form. If <commit> on one side is " -"omitted, it will have the same effect as using HEAD instead." +"When using the deprecated `[section.subsection]` syntax, changing a value " +"will result in adding a multi-line key instead of a change, if the " +"subsection is given with at least one uppercase character. For example when " +"the config looks like" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:70 +#. type: delimited block - +#: en/git-config.txt:478 #, no-wrap -msgid "'git diff' [--options] <commit>\\...<commit> [--] [<path>...]" -msgstr "" - -#. type: Plain text -#: en/git-diff.txt:77 msgid "" -"This form is to view the changes on the branch containing and up to the " -"second <commit>, starting at a common ancestor of both <commit>. \"git diff " -"A\\...B\" is equivalent to \"git diff $(git-merge-base A B) B\". You can " -"omit any one of <commit>, which has the same effect as using HEAD instead." +" [section.subsection]\n" +" key = value1\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:82 -msgid "" -"Just in case if you are doing something exotic, it should be noted that all " -"of the <commit> in the above description, except in the last two forms that " -"use \"..\" notations, can be any <tree>." +#: en/git-config.txt:481 +msgid "and running `git config section.Subsection.key value2` will result in" msgstr "" -#. type: Plain text -#: en/git-diff.txt:89 +#. type: delimited block - +#: en/git-config.txt:486 +#, no-wrap msgid "" -"For a more complete list of ways to spell <commit>, see \"SPECIFYING " -"REVISIONS\" section in linkgit:gitrevisions[7]. However, \"diff\" is about " -"comparing two _endpoints_, not ranges, and the range notations " -"(\"<commit>..<commit>\" and \"<commit>\\...<commit>\") do not mean a range " -"as defined in the \"SPECIFYING RANGES\" section in linkgit:gitrevisions[7]." +" [section.subsection]\n" +" key = value1\n" +" key = value2\n" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:90 +#. type: Title = +#: en/git-count-objects.txt:2 #, no-wrap -msgid "'git diff' [options] <blob> <blob>" +msgid "git-count-objects(1)" msgstr "" #. type: Plain text -#: en/git-diff.txt:94 +#: en/git-count-objects.txt:7 msgid "" -"This form is to view the differences between the raw contents of two blob " -"objects." +"git-count-objects - Count unpacked number of objects and their disk " +"consumption" msgstr "" #. type: Plain text -#: en/git-diff.txt:104 -msgid "" -"The <paths> parameters, when given, are used to limit the diff to the named " -"paths (you can give directory names and get diff for all files under them)." -msgstr "" - -#. type: Labeled list -#: en/git-diff.txt:111 +#: en/git-count-objects.txt:12 #, no-wrap -msgid "Various ways to check your working tree" +msgid "'git count-objects' [-v] [-H | --human-readable]\n" msgstr "" -#. type: delimited block - -#: en/git-diff.txt:117 -#, no-wrap +#. type: Plain text +#: en/git-count-objects.txt:17 msgid "" -"$ git diff <1>\n" -"$ git diff --cached <2>\n" -"$ git diff HEAD <3>\n" +"This counts the number of unpacked object files and disk space consumed by " +"them, to help you decide when it is a good time to repack." msgstr "" #. type: Plain text -#: en/git-diff.txt:120 -msgid "Changes in the working tree not yet staged for the next commit." +#: en/git-count-objects.txt:24 +msgid "Report in more detail:" msgstr "" #. type: Plain text -#: en/git-diff.txt:122 -msgid "" -"Changes between the index and your last commit; what you would be committing " -"if you run \"git commit\" without \"-a\" option." +#: en/git-count-objects.txt:26 +msgid "count: the number of loose objects" msgstr "" #. type: Plain text -#: en/git-diff.txt:124 +#: en/git-count-objects.txt:28 msgid "" -"Changes in the working tree since your last commit; what you would be " -"committing if you run \"git commit -a\"" +"size: disk space consumed by loose objects, in KiB (unless -H is specified)" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:125 -#, no-wrap -msgid "Comparing with arbitrary commits" +#. type: Plain text +#: en/git-count-objects.txt:30 +msgid "in-pack: the number of in-pack objects" msgstr "" -#. type: delimited block - -#: en/git-diff.txt:131 -#, no-wrap +#. type: Plain text +#: en/git-count-objects.txt:32 msgid "" -"$ git diff test <1>\n" -"$ git diff HEAD -- ./test <2>\n" -"$ git diff HEAD^ HEAD <3>\n" +"size-pack: disk space consumed by the packs, in KiB (unless -H is specified)" msgstr "" #. type: Plain text -#: en/git-diff.txt:135 +#: en/git-count-objects.txt:35 msgid "" -"Instead of using the tip of the current branch, compare with the tip of " -"\"test\" branch." +"prune-packable: the number of loose objects that are also present in the " +"packs. These objects could be pruned using `git prune-packed`." msgstr "" #. type: Plain text -#: en/git-diff.txt:138 +#: en/git-count-objects.txt:38 msgid "" -"Instead of comparing with the tip of \"test\" branch, compare with the tip " -"of the current branch, but limit the comparison to the file \"test\"." +"garbage: the number of files in object database that are neither valid loose " +"objects nor valid packs" msgstr "" #. type: Plain text -#: en/git-diff.txt:139 -msgid "Compare the version before the last commit and the last commit." +#: en/git-count-objects.txt:41 +msgid "" +"size-garbage: disk space consumed by garbage files, in KiB (unless -H is " +"specified)" +msgstr "" + +#. type: Plain text +#: en/git-count-objects.txt:46 +msgid "" +"alternate: absolute path of alternate object databases; may appear multiple " +"times, one line per path. Note that if the path contains non-printable " +"characters, it may be surrounded by double-quotes and contain C-style " +"backslashed escape sequences." msgstr "" #. type: Labeled list -#: en/git-diff.txt:140 +#: en/git-count-objects.txt:47 en/git-cvsserver.txt:49 en/git-grep.txt:145 #, no-wrap -msgid "Comparing branches" +msgid "-H" msgstr "" -#. type: delimited block - -#: en/git-diff.txt:146 +#. type: Labeled list +#: en/git-count-objects.txt:48 #, no-wrap -msgid "" -"$ git diff topic master <1>\n" -"$ git diff topic..master <2>\n" -"$ git diff topic...master <3>\n" +msgid "--human-readable" msgstr "" #. type: Plain text -#: en/git-diff.txt:149 -msgid "Changes between the tips of the topic and the master branches." +#: en/git-count-objects.txt:51 +msgid "Print sizes in human readable format" msgstr "" -#. type: Plain text -#: en/git-diff.txt:150 en/git-remote-fd.txt:44 en/git-remote-fd.txt:52 en/git-web--browse.txt:52 -msgid "Same as above." +#. type: Title = +#: en/git-credential-cache--daemon.txt:2 +#, no-wrap +msgid "git-credential-cache--daemon(1)" msgstr "" #. type: Plain text -#: en/git-diff.txt:152 +#: en/git-credential-cache--daemon.txt:7 msgid "" -"Changes that occurred on the master branch since when the topic branch was " -"started off it." +"git-credential-cache--daemon - Temporarily store user credentials in memory" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:153 +#. type: Plain text +#: en/git-credential-cache--daemon.txt:12 #, no-wrap -msgid "Limiting the diff output" +msgid "git credential-cache--daemon [--debug] <socket>\n" msgstr "" -#. type: delimited block - -#: en/git-diff.txt:159 -#, no-wrap +#. type: Plain text +#: en/git-credential-cache--daemon.txt:18 msgid "" -"$ git diff --diff-filter=MRC <1>\n" -"$ git diff --name-status <2>\n" -"$ git diff arch/i386 include/asm-i386 <3>\n" +"You probably don't want to invoke this command yourself; it is started " +"automatically when you use linkgit:git-credential-cache[1]." msgstr "" #. type: Plain text -#: en/git-diff.txt:163 -msgid "Show only modification, rename, and copy, but not addition or deletion." +#: en/git-credential-cache--daemon.txt:23 +msgid "" +"This command listens on the Unix domain socket specified by `<socket>` for " +"`git-credential-cache` clients. Clients may store and retrieve credentials. " +"Each credential is held for a timeout specified by the client; once no " +"credentials are held, the daemon exits." msgstr "" #. type: Plain text -#: en/git-diff.txt:165 -msgid "Show only names and the nature of change, but not actual diff output." +#: en/git-credential-cache--daemon.txt:27 +msgid "" +"If the `--debug` option is specified, the daemon does not close its stderr " +"stream, and may output extra diagnostics to it even after it has begun " +"listening for clients." msgstr "" -#. type: Plain text -#: en/git-diff.txt:166 -msgid "Limit diff output to named subtrees." +#. type: Title = +#: en/git-credential-cache.txt:2 +#, no-wrap +msgid "git-credential-cache(1)" msgstr "" -#. type: Labeled list -#: en/git-diff.txt:167 -#, no-wrap -msgid "Munging the diff output" +#. type: Plain text +#: en/git-credential-cache.txt:7 +msgid "git-credential-cache - Helper to temporarily store passwords in memory" msgstr "" #. type: delimited block - -#: en/git-diff.txt:172 +#: en/git-credential-cache.txt:12 #, no-wrap -msgid "" -"$ git diff --find-copies-harder -B -C <1>\n" -"$ git diff -R <2>\n" +msgid "git config credential.helper 'cache [<options>]'\n" msgstr "" #. type: Plain text -#: en/git-diff.txt:176 +#: en/git-credential-cache.txt:21 msgid "" -"Spend extra cycles to find renames, copies and complete rewrites (very " -"expensive)." -msgstr "" - -#. type: Plain text -#: en/git-diff.txt:177 -msgid "Output diff in reverse." +"This command caches credentials in memory for use by future Git programs. " +"The stored credentials never touch the disk, and are forgotten after a " +"configurable timeout. The cache is accessible over a Unix domain socket, " +"restricted to the current user by filesystem permissions." msgstr "" #. type: Plain text -#: en/git-diff.txt:186 +#: en/git-credential-cache.txt:25 msgid "" -"diff(1), linkgit:git-difftool[1], linkgit:git-log[1], " -"linkgit:gitdiffcore[7], linkgit:git-format-patch[1], linkgit:git-apply[1]" +"You probably don't want to invoke this command directly; it is meant to be " +"used as a credential helper by other parts of Git. See linkgit:" +"gitcredentials[7] or `EXAMPLES` below." msgstr "" -#. type: Title = -#: en/git-fast-export.txt:2 +#. type: Labeled list +#: en/git-credential-cache.txt:29 #, no-wrap -msgid "git-fast-export(1)" +msgid "--timeout <seconds>" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:7 -msgid "git-fast-export - Git data exporter" +#: en/git-credential-cache.txt:32 +msgid "Number of seconds to cache credentials (default: 900)." msgstr "" -#. type: Plain text -#: en/git-fast-export.txt:13 +#. type: Labeled list +#: en/git-credential-cache.txt:33 #, no-wrap -msgid "'git fast-export [options]' | 'git fast-import'\n" +msgid "--socket <path>" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:18 +#: en/git-credential-cache.txt:43 msgid "" -"This program dumps the given revisions in a form suitable to be piped into " -"'git fast-import'." +"Use `<path>` to contact a running cache daemon (or start a new cache daemon " +"if one is not started). Defaults to `$XDG_CACHE_HOME/git/credential/socket` " +"unless `~/.git-credential-cache/` exists in which case `~/.git-credential-" +"cache/socket` is used instead. If your home directory is on a network-" +"mounted filesystem, you may need to change this to a local filesystem. You " +"must specify an absolute path." +msgstr "" + +#. type: Title - +#: en/git-credential-cache.txt:45 +#, no-wrap +msgid "CONTROLLING THE DAEMON" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:22 +#: en/git-credential-cache.txt:49 msgid "" -"You can use it as a human-readable bundle replacement (see " -"linkgit:git-bundle[1]), or as a kind of an interactive 'git filter-branch'." +"If you would like the daemon to exit early, forgetting all cached " +"credentials before their timeout, you can issue an `exit` action:" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:26 +#. type: delimited block - +#: en/git-credential-cache.txt:52 #, no-wrap -msgid "--progress=<n>" +msgid "git credential-cache exit\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:29 +#: en/git-credential-cache.txt:59 en/git-credential-store.txt:75 msgid "" -"Insert 'progress' statements every <n> objects, to be shown by 'git " -"fast-import' during import." +"The point of this helper is to reduce the number of times you must type your " +"username or password. For example:" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:30 +#. type: delimited block - +#: en/git-credential-cache.txt:65 #, no-wrap -msgid "--signed-tags=(verbatim|warn|warn-strip|strip|abort)" +msgid "" +"$ git config credential.helper cache\n" +"$ git push http://example.com/repo.git\n" +"Username: <type your username>\n" +"Password: <type your password>\n" msgstr "" -#. type: Plain text -#: en/git-fast-export.txt:34 +#. type: delimited block - +#: en/git-credential-cache.txt:69 +#, no-wrap msgid "" -"Specify how to handle signed tags. Since any transformation after the " -"export can change the tag names (which can also happen when excluding " -"revisions) the signatures will not match." +"[work for 5 more minutes]\n" +"$ git push http://example.com/repo.git\n" +"[your credentials are used automatically]\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:41 +#: en/git-credential-cache.txt:73 msgid "" -"When asking to 'abort' (which is the default), this program will die when " -"encountering a signed tag. With 'strip', the tags will silently be made " -"unsigned, with 'warn-strip' they will be made unsigned but a warning will be " -"displayed, with 'verbatim', they will be silently exported and with 'warn', " -"they will be exported, but you will see a warning." +"You can provide options via the credential.helper configuration variable " +"(this example drops the cache time to 5 minutes):" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:42 +#. type: delimited block - +#: en/git-credential-cache.txt:76 #, no-wrap -msgid "--tag-of-filtered-object=(abort|drop|rewrite)" +msgid "$ git config credential.helper 'cache --timeout=300'\n" msgstr "" -#. type: Plain text -#: en/git-fast-export.txt:46 -msgid "" -"Specify how to handle tags whose tagged object is filtered out. Since " -"revisions and files to export can be limited by path, tagged objects may be " -"filtered completely." +#. type: Title = +#: en/git-credential-store.txt:2 +#, no-wrap +msgid "git-credential-store(1)" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:52 -msgid "" -"When asking to 'abort' (which is the default), this program will die when " -"encountering such a tag. With 'drop' it will omit such tags from the " -"output. With 'rewrite', if the tagged object is a commit, it will rewrite " -"the tag to tag an ancestor commit (via parent rewriting; see " -"linkgit:git-rev-list[1])" +#: en/git-credential-store.txt:7 +msgid "git-credential-store - Helper to store credentials on disk" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:54 +#. type: delimited block - +#: en/git-credential-store.txt:12 #, no-wrap -msgid "-C" +msgid "git config credential.helper 'store [<options>]'\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:58 +#: en/git-credential-store.txt:21 msgid "" -"Perform move and/or copy detection, as described in the linkgit:git-diff[1] " -"manual page, and use it to generate rename and copy commands in the output " -"dump." +"Using this helper will store your passwords unencrypted on disk, protected " +"only by filesystem permissions. If this is not an acceptable security " +"tradeoff, try linkgit:git-credential-cache[1], or find a helper that " +"integrates with secure storage provided by your operating system." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:61 +#: en/git-credential-store.txt:24 msgid "" -"Note that earlier versions of this command did not complain and produced " -"incorrect results if you gave these options." -msgstr "" - -#. type: Labeled list -#: en/git-fast-export.txt:62 en/git-fast-import.txt:77 -#, no-wrap -msgid "--export-marks=<file>" +"This command stores credentials indefinitely on disk for use by future Git " +"programs." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:73 +#: en/git-credential-store.txt:28 msgid "" -"Dumps the internal marks table to <file> when complete. Marks are written " -"one per line as `:markid SHA-1`. Only marks for revisions are dumped; marks " -"for blobs are ignored. Backends can use this file to validate imports after " -"they have been completed, or to save the marks table across incremental " -"runs. As <file> is only opened and truncated at completion, the same path " -"can also be safely given to --import-marks. The file will not be written if " -"no new object has been marked/exported." +"You probably don't want to invoke this command directly; it is meant to be " +"used as a credential helper by other parts of git. See linkgit:" +"gitcredentials[7] or `EXAMPLES` below." msgstr "" #. type: Labeled list -#: en/git-fast-export.txt:74 en/git-fast-import.txt:86 +#: en/git-credential-store.txt:32 #, no-wrap -msgid "--import-marks=<file>" +msgid "--file=<path>" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:78 +#: en/git-credential-store.txt:42 msgid "" -"Before processing any input, load the marks specified in <file>. The input " -"file must exist, must be readable, and must use the same format as produced " -"by --export-marks." +"Use `<path>` to lookup and store credentials. The file will have its " +"filesystem permissions set to prevent other users on the system from reading " +"it, but will not be encrypted or otherwise protected. If not specified, " +"credentials will be searched for from `~/.git-credentials` and `" +"$XDG_CONFIG_HOME/git/credentials`, and credentials will be written to `~/." +"git-credentials` if it exists, or `$XDG_CONFIG_HOME/git/credentials` if it " +"exists and the former does not. See also <<FILES>>." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:83 +#: en/git-credential-store.txt:49 msgid "" -"Any commits that have already been marked will not be exported again. If " -"the backend uses a similar --import-marks file, this allows for incremental " -"bidirectional exporting of the repository by keeping the marks the same " -"across runs." +"If not set explicitly with `--file`, there are two files where git-" +"credential-store will search for credentials in order of precedence:" msgstr "" #. type: Labeled list -#: en/git-fast-export.txt:84 +#: en/git-credential-store.txt:50 #, no-wrap -msgid "--fake-missing-tagger" +msgid "~/.git-credentials" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:89 -msgid "" -"Some old repositories have tags without a tagger. The fast-import protocol " -"was pretty strict about that, and did not allow that. So fake a tagger to " -"be able to fast-import the output." +#: en/git-credential-store.txt:52 +msgid "User-specific credentials file." msgstr "" #. type: Labeled list -#: en/git-fast-export.txt:90 +#: en/git-credential-store.txt:53 #, no-wrap -msgid "--use-done-feature" +msgid "$XDG_CONFIG_HOME/git/credentials" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:93 +#: en/git-credential-store.txt:59 msgid "" -"Start the stream with a 'feature done' stanza, and terminate it with a " -"'done' command." +"Second user-specific credentials file. If '$XDG_CONFIG_HOME' is not set or " +"empty, `$HOME/.config/git/credentials` will be used. Any credentials stored " +"in this file will not be used if `~/.git-credentials` has a matching " +"credential as well. It is a good idea not to create this file if you " +"sometimes use older versions of Git that do not support it." msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:94 -#, no-wrap -msgid "--no-data" +#. type: Plain text +#: en/git-credential-store.txt:63 +msgid "" +"For credential lookups, the files are read in the order given above, with " +"the first matching credential found taking precedence over credentials found " +"in files further down the list." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:101 +#: en/git-credential-store.txt:67 msgid "" -"Skip output of blob objects and instead refer to blobs via their original " -"SHA-1 hash. This is useful when rewriting the directory structure or " -"history of a repository without touching the contents of individual files. " -"Note that the resulting stream can only be used by a repository which " -"already contains the necessary objects." +"Credential storage will by default write to the first existing file in the " +"list. If none of these files exist, `~/.git-credentials` will be created and " +"written to." msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:102 en/git-ls-tree.txt:72 +#. type: Plain text +#: en/git-credential-store.txt:69 +msgid "" +"When erasing credentials, matching credentials will be erased from all files." +msgstr "" + +#. type: delimited block - +#: en/git-credential-store.txt:81 #, no-wrap -msgid "--full-tree" +msgid "" +"$ git config credential.helper store\n" +"$ git push http://example.com/repo.git\n" +"Username: <type your username>\n" +"Password: <type your password>\n" msgstr "" -#. type: Plain text -#: en/git-fast-export.txt:107 +#. type: delimited block - +#: en/git-credential-store.txt:85 +#, no-wrap msgid "" -"This option will cause fast-export to issue a \"deleteall\" directive for " -"each commit followed by a full list of all files in the commit (as opposed " -"to just listing the files which are different from the commit's first " -"parent)." +"[several days later]\n" +"$ git push http://example.com/repo.git\n" +"[your credentials are used automatically]\n" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:108 +#. type: Title - +#: en/git-credential-store.txt:88 #, no-wrap -msgid "--anonymize" +msgid "STORAGE FORMAT" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:112 +#: en/git-credential-store.txt:92 msgid "" -"Anonymize the contents of the repository while still retaining the shape of " -"the history and stored tree. See the section on `ANONYMIZING` below." +"The `.git-credentials` file is stored in plaintext. Each credential is " +"stored on its own line as a URL like:" msgstr "" -#. type: Labeled list -#: en/git-fast-export.txt:113 +#. type: delimited block - +#: en/git-credential-store.txt:95 #, no-wrap -msgid "--refspec" +msgid "https://user:pass@example.com\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:116 +#: en/git-credential-store.txt:103 msgid "" -"Apply the specified refspec to each ref exported. Multiple of them can be " -"specified." +"When Git needs authentication for a particular URL context, credential-store " +"will consider that context a pattern to match against each entry in the " +"credentials file. If the protocol, hostname, and username (if we already " +"have one) match, then the password is returned to Git. See the discussion of " +"configuration in linkgit:gitcredentials[7] for more information." msgstr "" -#. type: Plain text -#: en/git-fast-export.txt:123 +#. type: Title = +#: en/git-credential.txt:2 #, no-wrap -msgid "" -"[<git-rev-list-args>...]::\n" -"\tA list of arguments, acceptable to 'git rev-parse' and\n" -"\t'git rev-list', that specifies the specific objects and references\n" -"\tto export. For example, `master~10..master` causes the\n" -"\tcurrent master reference to be exported along with all objects\n" -"\tadded since its 10th ancestor commit.\n" +msgid "git-credential(1)" +msgstr "" + +#. type: Plain text +#: en/git-credential.txt:7 +msgid "git-credential - Retrieve and store user credentials" msgstr "" #. type: delimited block - -#: en/git-fast-export.txt:129 +#: en/git-credential.txt:12 #, no-wrap -msgid "$ git fast-export --all | (cd /empty/repository && git fast-import)\n" +msgid "git credential <fill|approve|reject>\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:134 +#: en/git-credential.txt:25 msgid "" -"This will export the whole repository and import it into the existing empty " -"repository. Except for reencoding commits that are not in UTF-8, it would " -"be a one-to-one mirror." +"Git has an internal interface for storing and retrieving credentials from " +"system-specific helpers, as well as prompting the user for usernames and " +"passwords. The git-credential command exposes this interface to scripts " +"which may want to retrieve, store, or prompt for credentials in the same " +"manner as Git. The design of this scriptable interface models the internal C " +"API; see link:technical/api-credentials.html[the Git credential API] for " +"more background on the concepts." msgstr "" -#. type: delimited block - -#: en/git-fast-export.txt:139 -#, no-wrap +#. type: Plain text +#: en/git-credential.txt:29 msgid "" -"$ git fast-export master~5..master |\n" -"\tsed \"s|refs/heads/master|refs/heads/other|\" |\n" -"\tgit fast-import\n" +"git-credential takes an \"action\" option on the command-line (one of " +"`fill`, `approve`, or `reject`) and reads a credential description on stdin " +"(see <<IOFMT,INPUT/OUTPUT FORMAT>>)." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:143 +#: en/git-credential.txt:36 msgid "" -"This makes a new branch called 'other' from 'master~5..master' (i.e. if " -"'master' has linear history, it will take the last 5 commits)." +"If the action is `fill`, git-credential will attempt to add \"username\" and " +"\"password\" attributes to the description by reading config files, by " +"contacting any configured credential helpers, or by prompting the user. The " +"username and password attributes of the credential description are then " +"printed to stdout together with the attributes already provided." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:147 +#: en/git-credential.txt:40 msgid "" -"Note that this assumes that none of the blobs and commit messages referenced " -"by that revision range contains the string 'refs/heads/master'." +"If the action is `approve`, git-credential will send the description to any " +"configured credential helpers, which may store the credential for later use." +msgstr "" + +#. type: Plain text +#: en/git-credential.txt:44 +msgid "" +"If the action is `reject`, git-credential will send the description to any " +"configured credential helpers, which may erase any stored credential " +"matching the description." +msgstr "" + +#. type: Plain text +#: en/git-credential.txt:46 +msgid "If the action is `approve` or `reject`, no output should be emitted." msgstr "" #. type: Title - -#: en/git-fast-export.txt:150 +#: en/git-credential.txt:48 #, no-wrap -msgid "ANONYMIZING" +msgid "TYPICAL USE OF GIT CREDENTIAL" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:158 +#: en/git-credential.txt:52 msgid "" -"If the `--anonymize` option is given, git will attempt to remove all " -"identifying information from the repository while still retaining enough of " -"the original tree and history patterns to reproduce some bugs. The goal is " -"that a git bug which is found on a private repository will persist in the " -"anonymized repository, and the latter can be shared with git developers to " -"help solve the bug." +"An application using git-credential will typically use `git credential` " +"following these steps:" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:170 -msgid "" -"With this option, git will replace all refnames, paths, blob contents, " -"commit and tag messages, names, and email addresses in the output with " -"anonymized data. Two instances of the same string will be replaced " -"equivalently (e.g., two commits with the same author will have the same " -"anonymized author in the output, but bear no resemblance to the original " -"author string). The relationship between commits, branches, and tags is " -"retained, as well as the commit timestamps (but the commit messages and " -"refnames bear no resemblance to the originals). The relative makeup of the " -"tree is retained (e.g., if you have a root tree with 10 files and 3 trees, " -"so will the output), but their names and the contents of the files will be " -"replaced." +#: en/git-credential.txt:54 +msgid "Generate a credential description based on the context." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:173 +#: en/git-credential.txt:60 msgid "" -"If you think you have found a git bug, you can start by exporting an " -"anonymized stream of the whole repository:" +"For example, if we want a password for `https://example.com/foo.git`, we " +"might generate the following credential description (don't forget the blank " +"line at the end; it tells `git credential` that the application finished " +"feeding all the information it has):" msgstr "" -#. type: delimited block - -#: en/git-fast-export.txt:176 +#. type: Plain text +#: en/git-credential.txt:64 #, no-wrap -msgid "$ git fast-export --anonymize --all >anon-stream\n" +msgid "" +"\t protocol=https\n" +"\t host=example.com\n" +"\t path=foo.git\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:181 +#: en/git-credential.txt:70 msgid "" -"Then confirm that the bug persists in a repository created from that stream " -"(many bugs will not, as they really do depend on the exact repository " -"contents):" +"Ask git-credential to give us a username and password for this description. " +"This is done by running `git credential fill`, feeding the description from " +"step (1) to its standard input. The complete credential description " +"(including the credential per se, i.e. the login and password) will be " +"produced on standard output, like:" msgstr "" -#. type: delimited block - -#: en/git-fast-export.txt:187 +#. type: Plain text +#: en/git-credential.txt:75 #, no-wrap msgid "" -"$ git init anon-repo\n" -"$ cd anon-repo\n" -"$ git fast-import <../anon-stream\n" -"$ ... test your bug ...\n" +"protocol=https\n" +"host=example.com\n" +"username=bob\n" +"password=secr3t\n" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:194 +#: en/git-credential.txt:80 msgid "" -"If the anonymized repository shows the bug, it may be worth sharing " -"`anon-stream` along with a regular bug report. Note that the anonymized " -"stream compresses very well, so gzipping it is encouraged. If you want to " -"examine the stream to see that it does not contain any private data, you can " -"peruse it directly before sending. You may also want to try:" +"In most cases, this means the attributes given in the input will be repeated " +"in the output, but Git may also modify the credential description, for " +"example by removing the `path` attribute when the protocol is HTTP(s) and " +"`credential.useHttpPath` is false." msgstr "" -#. type: delimited block - -#: en/git-fast-export.txt:197 -#, no-wrap -msgid "$ perl -pe 's/\\d+/X/g' <anon-stream | sort -u | less\n" +#. type: Plain text +#: en/git-credential.txt:86 +msgid "" +"If the `git credential` knew about the password, this step may not have " +"involved the user actually typing this password (the user may have typed a " +"password to unlock the keychain instead, or no user interaction was done if " +"the keychain was already unlocked) before it returned `password=secr3t`." msgstr "" #. type: Plain text -#: en/git-fast-export.txt:203 +#: en/git-credential.txt:89 msgid "" -"which shows all of the unique lines (with numbers converted to \"X\", to " -"collapse \"User 0\", \"User 1\", etc into \"User X\"). This produces a much " -"smaller output, and it is usually easy to quickly confirm that there is no " -"private data in the stream." +"Use the credential (e.g., access the URL with the username and password from " +"step (2)), and see if it's accepted." +msgstr "" + +#. type: Plain text +#: en/git-credential.txt:99 +msgid "" +"Report on the success or failure of the password. If the credential allowed " +"the operation to complete successfully, then it can be marked with an " +"\"approve\" action to tell `git credential` to reuse it in its next " +"invocation. If the credential was rejected during the operation, use the " +"\"reject\" action so that `git credential` will ask for a new password in " +"its next invocation. In either case, `git credential` should be fed with the " +"credential description obtained from step (2) (which also contain the ones " +"provided in step (1))." msgstr "" #. type: Title - -#: en/git-fast-export.txt:206 +#: en/git-credential.txt:102 #, no-wrap -msgid "Limitations" +msgid "INPUT/OUTPUT FORMAT" msgstr "" #. type: Plain text -#: en/git-fast-export.txt:211 +#: en/git-credential.txt:109 msgid "" -"Since 'git fast-import' cannot tag trees, you will not be able to export the " -"linux.git repository completely, as it contains a tag referencing a tree " -"instead of a commit." +"`git credential` reads and/or writes (depending on the action used) " +"credential information in its standard input/output. This information can " +"correspond either to keys for which `git credential` will obtain the login/" +"password information (e.g. host, protocol, path), or to the actual " +"credential data to be obtained (login/password)." +msgstr "" + +#. type: Plain text +#: en/git-credential.txt:119 +msgid "" +"The credential is split into a set of named attributes, with one attribute " +"per line. Each attribute is specified by a key-value pair, separated by an " +"`=` (equals) sign, followed by a newline. The key may contain any bytes " +"except `=`, newline, or NUL. The value may contain any bytes except newline " +"or NUL. In both cases, all bytes are treated as-is (i.e., there is no " +"quoting, and one cannot transmit a value with newline or NUL in it). The " +"list of attributes is terminated by a blank line or end-of-file. Git " +"understands the following attributes:" msgstr "" #. type: Labeled list -#: en/git-fast-export.txt:215 en/cmds-ancillarymanipulators.txt:7 +#: en/git-credential.txt:120 #, no-wrap -msgid "linkgit:git-fast-import[1]" +msgid "`protocol`" msgstr "" -#. type: Title = -#: en/git-fast-import.txt:2 +#. type: Plain text +#: en/git-credential.txt:124 +msgid "The protocol over which the credential will be used (e.g., `https`)." +msgstr "" + +#. type: Labeled list +#: en/git-credential.txt:125 #, no-wrap -msgid "git-fast-import(1)" +msgid "`host`" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:7 -msgid "git-fast-import - Backend for fast Git data importers" +#: en/git-credential.txt:128 +msgid "The remote hostname for a network credential." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:13 +#. type: Labeled list +#: en/git-credential.txt:129 #, no-wrap -msgid "frontend | 'git fast-import' [options]\n" +msgid "`path`" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:20 +#: en/git-credential.txt:134 msgid "" -"This program is usually not what the end user wants to run directly. Most " -"end users want to use one of the existing frontend programs, which parses a " -"specific type of foreign source and feeds the contents stored there to 'git " -"fast-import'." +"The path with which the credential will be used. E.g., for accessing a " +"remote https repository, this will be the repository's path on the server." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:26 -msgid "" -"fast-import reads a mixed command/data stream from standard input and writes " -"one or more packfiles directly into the current repository. When EOF is " -"received on standard input, fast import writes out updated branch and tag " -"refs, fully updating the current repository with the newly imported data." +#. type: Labeled list +#: en/git-credential.txt:135 +#, no-wrap +msgid "`username`" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:32 +#: en/git-credential.txt:139 msgid "" -"The fast-import backend itself can import into an empty repository (one that " -"has already been initialized by 'git init') or incrementally update an " -"existing populated repository. Whether or not incremental imports are " -"supported from a particular foreign source depends on the frontend program " -"in use." +"The credential's username, if we already have one (e.g., from a URL, from " +"the user, or from a previously run helper)." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:41 -msgid "" -"Force updating modified existing branches, even if doing so would cause " -"commits to be lost (as the new commit does not contain the old commit)." +#. type: Labeled list +#: en/git-credential.txt:140 +#, no-wrap +msgid "`password`" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:46 -msgid "" -"Disable all non-fatal output, making fast-import silent when it is " -"successful. This option disables the output shown by --stats." +#: en/git-credential.txt:143 +msgid "The credential's password, if we are asking it to be stored." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:47 +#: en/git-credential.txt:144 #, no-wrap -msgid "--stats" +msgid "`url`" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:52 +#: en/git-credential.txt:154 msgid "" -"Display some basic statistics about the objects fast-import has created, the " -"packfiles they were stored into, and the memory used by fast-import during " -"this run. Showing this output is currently the default, but can be disabled " -"with --quiet." +"When this special attribute is read by `git credential`, the value is parsed " +"as a URL and treated as if its constituent parts were read (e.g., " +"`url=https://example.com` would behave as if `protocol=https` and " +"`host=example.com` had been provided). This can help callers avoid parsing " +"URLs themselves. Note that any components which are missing from the URL (e." +"g., there is no username in the example above) will be set to empty; if you " +"want to provide a URL and override some attributes, provide the URL " +"attribute first, followed by any overrides." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:54 +#. type: Title = +#: en/git-cvsexportcommit.txt:2 #, no-wrap -msgid "Options for Frontends" +msgid "git-cvsexportcommit(1)" msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:56 -#, no-wrap -msgid "--cat-blob-fd=<fd>" +#. type: Plain text +#: en/git-cvsexportcommit.txt:7 +msgid "git-cvsexportcommit - Export a single commit to a CVS checkout" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:61 +#: en/git-cvsexportcommit.txt:14 +#, no-wrap msgid "" -"Write responses to `get-mark`, `cat-blob`, and `ls` queries to the file " -"descriptor <fd> instead of `stdout`. Allows `progress` output intended for " -"the end-user to be separated from other output." +"'git cvsexportcommit' [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot]\n" +"\t[-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID\n" msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:62 -#, no-wrap -msgid "--date-format=<fmt>" +#. type: Plain text +#: en/git-cvsexportcommit.txt:20 +msgid "" +"Exports a commit from Git to a CVS checkout, making it easier to merge " +"patches from a Git repository into a CVS repository." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:67 +#: en/git-cvsexportcommit.txt:24 msgid "" -"Specify the type of dates the frontend will supply to fast-import within " -"`author`, `committer` and `tagger` commands. See ``Date Formats'' below for " -"details about which formats are supported, and their syntax." +"Specify the name of a CVS checkout using the -w switch or execute it from " +"the root of the CVS working copy. In the latter case GIT_DIR must be " +"defined. See examples below." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:68 -#, no-wrap -msgid "--done" +#. type: Plain text +#: en/git-cvsexportcommit.txt:28 +msgid "" +"It does its best to do the safe thing, it will check that the files are " +"unchanged and up to date in the CVS checkout, and it will not autocommit by " +"default." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:73 +#: en/git-cvsexportcommit.txt:30 msgid "" -"Terminate with error if there is no `done` command at the end of the " -"stream. This option might be useful for detecting errors that cause the " -"frontend to terminate before it has started to write a stream." +"Supports file additions, removals, and commits that affect binary files." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:75 -#, no-wrap -msgid "Locations of Marks Files" +#. type: Plain text +#: en/git-cvsexportcommit.txt:33 +msgid "" +"If the commit is a merge commit, you must tell 'git cvsexportcommit' what " +"parent the changeset should be done against." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:85 +#: en/git-cvsexportcommit.txt:40 msgid "" -"Dumps the internal marks table to <file> when complete. Marks are written " -"one per line as `:markid SHA-1`. Frontends can use this file to validate " -"imports after they have been completed, or to save the marks table across " -"incremental runs. As <file> is only opened and truncated at checkpoint (or " -"completion) the same path can also be safely given to --import-marks." +"Commit automatically if the patch applied cleanly. It will not commit if any " +"hunks fail to apply or there were other problems." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:93 +#: en/git-cvsexportcommit.txt:44 msgid "" -"Before processing any input, load the marks specified in <file>. The input " -"file must exist, must be readable, and must use the same format as produced " -"by --export-marks. Multiple options may be supplied to import more than one " -"set of marks. If a mark is defined to different values, the last file wins." +"Be pedantic (paranoid) when applying patches. Invokes patch with --fuzz=0" msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:94 -#, no-wrap -msgid "--import-marks-if-exists=<file>" +#. type: Plain text +#: en/git-cvsexportcommit.txt:48 +msgid "" +"Add authorship information. Adds Author line, and Committer (if different " +"from Author) to the message." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:97 +#: en/git-cvsexportcommit.txt:53 msgid "" -"Like --import-marks but instead of erroring out, silently skips the file if " -"it does not exist." +"Set an alternative CVSROOT to use. This corresponds to the CVS -d " +"parameter. Usually users will not want to set this, except if using CVS in " +"an asymmetric fashion." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:98 -#, no-wrap -msgid "--[no-]relative-marks" +#. type: Plain text +#: en/git-cvsexportcommit.txt:56 +msgid "Force the merge even if the files are not up to date." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:105 -msgid "" -"After specifying --relative-marks the paths specified with --import-marks= " -"and --export-marks= are relative to an internal directory in the current " -"repository. In git-fast-import this means that the paths are relative to " -"the .git/info/fast-import directory. However, other importers may use a " -"different location." +#: en/git-cvsexportcommit.txt:59 +msgid "Force the parent commit, even if it is not a direct parent." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:108 +#: en/git-cvsexportcommit.txt:63 msgid "" -"Relative and non-relative marks may be combined by interweaving " -"--(no-)-relative-marks with the --(import|export)-marks= options." +"Prepend the commit message with the provided prefix. Useful for patch " +"series and the like." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:110 -#, no-wrap -msgid "Performance and Compression Tuning" +#. type: Plain text +#: en/git-cvsexportcommit.txt:66 +msgid "Update affected files from CVS repository before attempting export." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:112 -#, no-wrap -msgid "--active-branches=<n>" +#. type: Plain text +#: en/git-cvsexportcommit.txt:70 +msgid "" +"Reverse CVS keyword expansion (e.g. $Revision: 1.2.3.4$ becomes $Revision$) " +"in working CVS checkout before applying patch." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:115 +#: en/git-cvsexportcommit.txt:76 msgid "" -"Maximum number of branches to maintain active at once. See ``Memory " -"Utilization'' below for details. Default is 5." +"Specify the location of the CVS checkout to use for the export. This option " +"does not require GIT_DIR to be set before execution if the current directory " +"is within a Git repository. The default is the value of 'cvsexportcommit." +"cvsdir'." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:116 -#, no-wrap -msgid "--big-file-threshold=<n>" +#. type: Plain text +#: en/git-cvsexportcommit.txt:81 +msgid "" +"Tell cvsexportcommit that the current working directory is not only a Git " +"checkout, but also the CVS checkout. Therefore, Git will reset the working " +"directory to the parent commit before proceeding." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:121 -msgid "" -"Maximum size of a blob that fast-import will attempt to create a delta for, " -"expressed in bytes. The default is 512m (512 MiB). Some importers may wish " -"to lower this on systems with constrained memory." +#: en/git-cvsexportcommit.txt:84 +msgid "Verbose." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:122 en/git-fetch-pack.txt:85 en/git-pack-objects.txt:87 en/git-repack.txt:85 +#: en/git-cvsexportcommit.txt:87 #, no-wrap -msgid "--depth=<n>" +msgid "cvsexportcommit.cvsdir" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:125 -msgid "Maximum delta depth, for blob and tree deltification. Default is 10." +#: en/git-cvsexportcommit.txt:89 +msgid "The default location of the CVS checkout to use for the export." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:126 +#: en/git-cvsexportcommit.txt:93 #, no-wrap -msgid "--export-pack-edges=<file>" +msgid "Merge one patch into CVS" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:134 +#. type: delimited block - +#: en/git-cvsexportcommit.txt:100 +#, no-wrap msgid "" -"After creating a packfile, print a line of data to <file> listing the " -"filename of the packfile and the last commit on each branch that was written " -"to that packfile. This information may be useful after importing projects " -"whose total object set exceeds the 4 GiB packfile limit, as these commits " -"can be used as edge points during calls to 'git pack-objects'." +"$ export GIT_DIR=~/project/.git\n" +"$ cd ~/project_cvs_checkout\n" +"$ git cvsexportcommit -v <commit-sha1>\n" +"$ cvs commit -F .msg <files>\n" msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:135 en/git-pack-objects.txt:110 en/git-repack.txt:108 +#: en/git-cvsexportcommit.txt:102 #, no-wrap -msgid "--max-pack-size=<n>" +msgid "Merge one patch into CVS (-c and -w options). The working directory is within the Git Repo" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:138 -msgid "Maximum size of each output packfile. The default is unlimited." +#. type: delimited block - +#: en/git-cvsexportcommit.txt:106 +#, no-wrap +msgid "\t$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>\n" msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:139 en/config.txt:1285 +#: en/git-cvsexportcommit.txt:108 #, no-wrap -msgid "fastimport.unpackLimit" +msgid "Merge pending patches into CVS automatically -- only if you really know what you are doing" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:141 -msgid "See linkgit:git-config[1]" +#. type: delimited block - +#: en/git-cvsexportcommit.txt:114 +#, no-wrap +msgid "" +"$ export GIT_DIR=~/project/.git\n" +"$ cd ~/project_cvs_checkout\n" +"$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v\n" msgstr "" -#. type: Title - -#: en/git-fast-import.txt:143 +#. type: Title = +#: en/git-cvsimport.txt:2 #, no-wrap -msgid "Performance" +msgid "git-cvsimport(1)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:150 +#: en/git-cvsimport.txt:7 msgid "" -"The design of fast-import allows it to import large projects in a minimum " -"amount of memory usage and processing time. Assuming the frontend is able " -"to keep up with fast-import and feed it a constant stream of data, import " -"times for projects holding 10+ years of history and containing 100,000+ " -"individual commits are generally completed in just 1-2 hours on quite modest " -"(~$2,000 USD) hardware." +"git-cvsimport - Salvage your data out of another SCM people love to hate" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:156 +#: en/git-cvsimport.txt:17 +#, no-wrap msgid "" -"Most bottlenecks appear to be in foreign source data access (the source just " -"cannot extract revisions fast enough) or disk IO (fast-import writes as fast " -"as the disk will take the data). Imports will run faster if the source data " -"is stored on a different drive than the destination Git repository (due to " -"less IO contention)." -msgstr "" - -#. type: Title - -#: en/git-fast-import.txt:159 -#, no-wrap -msgid "Development Cost" +"'git cvsimport' [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>]\n" +"\t [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>]\n" +"\t [-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]\n" +"\t [-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]\n" +"\t [-r <remote>] [-R] [<CVS_module>]\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:166 -msgid "" -"A typical frontend for fast-import tends to weigh in at approximately 200 " -"lines of Perl/Python/Ruby code. Most developers have been able to create " -"working importers in just a couple of hours, even though it is their first " -"exposure to fast-import, and sometimes even to Git. This is an ideal " -"situation, given that most conversion tools are throw-away (use once, and " -"never look back)." -msgstr "" - -#. type: Title - -#: en/git-fast-import.txt:169 +#: en/git-cvsimport.txt:26 #, no-wrap -msgid "Parallel Operation" +msgid "" +"*WARNING:* `git cvsimport` uses cvsps version 2, which is considered\n" +"deprecated; it does not work with cvsps version 3 and later. If you are\n" +"performing a one-shot import of a CVS repository consider using\n" +"http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or\n" +"http://www.catb.org/esr/cvs-fast-export/[cvs-fast-export].\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:174 +#: en/git-cvsimport.txt:29 msgid "" -"Like 'git push' or 'git fetch', imports handled by fast-import are safe to " -"run alongside parallel `git repack -a -d` or `git gc` invocations, or any " -"other Git operation (including 'git prune', as loose objects are never used " -"by fast-import)." +"Imports a CVS repository into Git. It will either create a new repository, " +"or incrementally import into an existing one." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:183 +#: en/git-cvsimport.txt:32 msgid "" -"fast-import does not lock the branch or tag refs it is actively importing. " -"After the import, during its ref update phase, fast-import tests each " -"existing branch ref to verify the update will be a fast-forward update (the " -"commit stored in the ref is contained in the new history of the commit to be " -"written). If the update is not a fast-forward update, fast-import will skip " -"updating that ref and instead prints a warning message. fast-import will " -"always attempt to update all branch refs, and does not stop on the first " -"failure." +"Splitting the CVS log into patch sets is done by 'cvsps'. At least version " +"2.1 is required." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:187 +#: en/git-cvsimport.txt:35 +#, no-wrap msgid "" -"Branch updates can be forced with --force, but it's recommended that this " -"only be used on an otherwise quiet repository. Using --force is not " -"necessary for an initial import into an empty repository." +"*WARNING:* for certain situations the import leads to incorrect results.\n" +"Please see the section <<issues,ISSUES>> for further reference.\n" msgstr "" -#. type: Title - -#: en/git-fast-import.txt:190 -#, no-wrap -msgid "Technical Discussion" +#. type: Plain text +#: en/git-cvsimport.txt:42 +msgid "" +"You should *never* do any work of your own on the branches that are created " +"by 'git cvsimport'. By default initial import will create and populate a " +"\"master\" branch from the CVS repository's main branch which you're free to " +"work with; after that, you need to 'git merge' incremental imports, or any " +"CVS branches, yourself. It is advisable to specify a named remote via -r to " +"separate and protect the incoming branches." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:197 +#: en/git-cvsimport.txt:48 msgid "" -"fast-import tracks a set of branches in memory. Any branch can be created " -"or modified at any point during the import process by sending a `commit` " -"command on the input stream. This design allows a frontend program to " -"process an unlimited number of branches simultaneously, generating commits " -"in the order they are available from the source data. It also simplifies " -"the frontend programs considerably." +"If you intend to set up a shared public repository that all developers can " +"read/write, or if you want to use linkgit:git-cvsserver[1], then you " +"probably want to make a bare clone of the imported repository, and use the " +"clone as the shared repository. See linkgit:gitcvs-migration[7]." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:206 -msgid "" -"fast-import does not use or alter the current working directory, or any file " -"within it. (It does however update the current Git repository, as " -"referenced by `GIT_DIR`.) Therefore an import frontend may use the working " -"directory for its own purposes, such as extracting file revisions from the " -"foreign source. This ignorance of the working directory also allows " -"fast-import to run very quickly, as it does not need to perform any costly " -"file update operations when switching between branches." +#: en/git-cvsimport.txt:54 +msgid "Verbosity: let 'cvsimport' report what it is doing." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:208 en/git-rev-parse.txt:309 +#. type: Labeled list +#: en/git-cvsimport.txt:55 #, no-wrap -msgid "Input Format" +msgid "-d <CVSROOT>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:214 +#: en/git-cvsimport.txt:61 msgid "" -"With the exception of raw file data (which Git does not interpret) the " -"fast-import input format is text (ASCII) based. This text based format " -"simplifies development and debugging of frontend programs, especially when a " -"higher level language such as Perl, Python or Ruby is being used." +"The root of the CVS archive. May be local (a simple path) or remote; " +"currently, only the :local:, :ext: and :pserver: access methods are " +"supported. If not given, 'git cvsimport' will try to read it from `CVS/" +"Root`. If no such file exists, it checks for the `CVSROOT` environment " +"variable." +msgstr "" + +#. type: Labeled list +#: en/git-cvsimport.txt:62 +#, no-wrap +msgid "<CVS_module>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:222 +#: en/git-cvsimport.txt:66 msgid "" -"fast-import is very strict about its input. Where we say SP below we mean " -"*exactly* one space. Likewise LF means one (and only one) linefeed and HT " -"one (and only one) horizontal tab. Supplying additional whitespace " -"characters will cause unexpected results, such as branch names or file names " -"with leading or trailing spaces in their name, or early termination of " -"fast-import when it encounters unexpected input." +"The CVS module you want to import. Relative to <CVSROOT>. If not given, " +"'git cvsimport' tries to read it from `CVS/Repository`." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:224 +#. type: Labeled list +#: en/git-cvsimport.txt:67 #, no-wrap -msgid "Stream Comments" +msgid "-C <target-dir>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:231 -msgid "" -"To aid in debugging frontends fast-import ignores any line that begins with " -"`#` (ASCII pound/hash) up to and including the line ending `LF`. A comment " -"line may contain any sequence of bytes that does not contain an LF and " -"therefore may be used to include any detailed debugging information that " -"might be specific to the frontend and useful when inspecting a fast-import " -"data stream." +#: en/git-cvsimport.txt:69 +msgid "The Git repository to import to. If the directory doesn't" msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:233 +#. type: Plain text +#: en/git-cvsimport.txt:70 #, no-wrap -msgid "Date Formats" +msgid "exist, it will be created. Default is the current directory.\n" +msgstr "" + +#. type: Labeled list +#: en/git-cvsimport.txt:71 +#, no-wrap +msgid "-r <remote>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:237 +#: en/git-cvsimport.txt:75 msgid "" -"The following date formats are supported. A frontend should select the " -"format it will use for this import by passing the format name in the " -"--date-format=<fmt> command-line option." +"The Git remote to import this CVS repository into. Moves all CVS branches " +"into remotes/<remote>/<branch> akin to the way 'git clone' uses 'origin' by " +"default." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:238 +#: en/git-cvsimport.txt:76 #, no-wrap -msgid "`raw`" +msgid "-o <branch-for-HEAD>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:242 +#: en/git-cvsimport.txt:84 msgid "" -"This is the Git native format and is `<time> SP <offutc>`. It is also " -"fast-import's default format, if --date-format was not specified." +"When no remote is specified (via -r) the `HEAD` branch from CVS is imported " +"to the 'origin' branch within the Git repository, as `HEAD` already has a " +"special meaning for Git. When a remote is specified the `HEAD` branch is " +"named remotes/<remote>/master mirroring 'git clone' behaviour. Use this " +"option if you want to import into a different branch." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:246 +#: en/git-cvsimport.txt:87 msgid "" -"The time of the event is specified by `<time>` as the number of seconds " -"since the UNIX epoch (midnight, Jan 1, 1970, UTC) and is written as an ASCII " -"decimal integer." +"Use '-o master' for continuing an import that was initially done by the old " +"cvs2git tool." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:252 +#: en/git-cvsimport.txt:92 msgid "" -"The local offset is specified by `<offutc>` as a positive or negative offset " -"from UTC. For example EST (which is 5 hours behind UTC) would be expressed " -"in `<tz>` by ``-0500'' while UTC is ``+0000''. The local offset does not " -"affect `<time>`; it is used only as an advisement to help formatting " -"routines display the timestamp." +"Import-only: don't perform a checkout after importing. This option ensures " +"the working directory and index remain untouched and will not create them if " +"they do not exist." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:258 +#: en/git-cvsimport.txt:97 msgid "" -"If the local offset is not available in the source material, use ``+0000'', " -"or the most common local offset. For example many organizations have a CVS " -"repository which has only ever been accessed by users who are located in the " -"same location and time zone. In this case a reasonable offset from UTC " -"could be assumed." +"Kill keywords: will extract files with '-kk' from the CVS archive to avoid " +"noisy changesets. Highly recommended, but off by default to preserve " +"compatibility with early imported trees." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:261 -msgid "" -"Unlike the `rfc2822` format, this format is very strict. Any variation in " -"formatting will cause fast-import to reject the value." +#: en/git-cvsimport.txt:100 +msgid "Convert underscores in tag and branch names to dots." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:262 +#: en/git-cvsimport.txt:101 #, no-wrap -msgid "`rfc2822`" +msgid "-s <subst>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:264 -msgid "This is the standard email format as described by RFC 2822." +#: en/git-cvsimport.txt:103 +msgid "Substitute the character \"/\" in branch names with <subst>" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:269 -msgid "" -"An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git parser is " -"accurate, but a little on the lenient side. It is the same parser used by " -"'git am' when applying patches received from email." +#. type: Labeled list +#: en/git-cvsimport.txt:104 +#, no-wrap +msgid "-p <options-for-cvsps>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:275 +#: en/git-cvsimport.txt:107 msgid "" -"Some malformed strings may be accepted as valid dates. In some of these " -"cases Git will still be able to obtain the correct date from the malformed " -"string. There are also some types of malformed strings which Git will parse " -"wrong, and yet consider valid. Seriously malformed strings will be " -"rejected." +"Additional options for cvsps. The options `-u` and '-A' are implicit and " +"should not be used here." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:280 -msgid "" -"Unlike the `raw` format above, the time zone/UTC offset information " -"contained in an RFC 2822 date string is used to adjust the date value to UTC " -"prior to storage. Therefore it is important that this information be as " -"accurate as possible." +#: en/git-cvsimport.txt:109 +msgid "If you need to pass multiple options, separate them with a comma." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:285 -msgid "" -"If the source material uses RFC 2822 style dates, the frontend should let " -"fast-import handle the parsing and conversion (rather than attempting to do " -"it itself) as the Git parser has been well tested in the wild." +#. type: Labeled list +#: en/git-cvsimport.txt:110 +#, no-wrap +msgid "-z <fuzz>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:290 +#: en/git-cvsimport.txt:113 msgid "" -"Frontends should prefer the `raw` format if the source material already uses " -"UNIX-epoch format, can be coaxed to give dates in that format, or its format " -"is easily convertible to it, as there is no ambiguity in parsing." +"Pass the timestamp fuzz factor to cvsps, in seconds. If unset, cvsps " +"defaults to 300s." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:291 +#: en/git-cvsimport.txt:114 #, no-wrap -msgid "`now`" +msgid "-P <cvsps-output-file>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:294 +#: en/git-cvsimport.txt:117 msgid "" -"Always use the current time and time zone. The literal `now` must always be " -"supplied for `<when>`." +"Instead of calling cvsps, read the provided cvsps output file. Useful for " +"debugging or when cvsps is being handled outside cvsimport." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:299 +#: en/git-cvsimport.txt:122 msgid "" -"This is a toy format. The current time and time zone of this system is " -"always copied into the identity string at the time it is being created by " -"fast-import. There is no way to specify a different time or time zone." +"Attempt to detect merges based on the commit message. This option will " +"enable default regexes that try to capture the source branch name from the " +"commit message." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:304 -msgid "" -"This particular format is supplied as it's short to implement and may be " -"useful to a process that wants to create a new commit right now, without " -"needing to use a working directory or 'git update-index'." +#. type: Labeled list +#: en/git-cvsimport.txt:123 +#, no-wrap +msgid "-M <regex>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:311 +#: en/git-cvsimport.txt:127 msgid "" -"If separate `author` and `committer` commands are used in a `commit` the " -"timestamps may not match, as the system clock will be polled twice (once for " -"each command). The only way to ensure that both author and committer " -"identity information has the same timestamp is to omit `author` (thus " -"copying from `committer`) or to use a date format other than `now`." +"Attempt to detect merges based on the commit message with a custom regex. It " +"can be used with `-m` to enable the default regexes as well. You must escape " +"forward slashes." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:313 -#, no-wrap -msgid "Commands" +#. type: Plain text +#: en/git-cvsimport.txt:129 +msgid "The regex must capture the source branch name in $1." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:317 +#: en/git-cvsimport.txt:131 msgid "" -"fast-import accepts several commands to update the current repository and " -"control the current import process. More detailed discussion (with " -"examples) of each command follows later." +"This option can be used several times to provide several detection regexes." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:318 en/git-fast-import.txt:380 +#. type: Labeled list +#: en/git-cvsimport.txt:132 #, no-wrap -msgid "`commit`" +msgid "-S <regex>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:322 -msgid "" -"Creates a new branch or updates an existing branch by creating a new commit " -"and updating the branch to point at the newly created commit." -msgstr "" - -#. type: Title ~ -#: en/git-fast-import.txt:323 en/git-fast-import.txt:744 -#, no-wrap -msgid "`tag`" +#: en/git-cvsimport.txt:134 +msgid "Skip paths matching the regex." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:328 +#: en/git-cvsimport.txt:138 msgid "" -"Creates an annotated tag object from an existing commit or branch. " -"Lightweight tags are not supported by this command, as they are not " -"recommended for recording meaningful points in time." +"Import all commits, including recent ones. cvsimport by default skips " +"commits that have a timestamp less than 10 minutes ago." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:329 en/git-fast-import.txt:787 +#. type: Labeled list +#: en/git-cvsimport.txt:139 #, no-wrap -msgid "`reset`" +msgid "-L <limit>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:333 +#: en/git-cvsimport.txt:142 msgid "" -"Reset an existing branch (or a new branch) to a specific revision. This " -"command must be used to change a branch to a specific revision without " -"making a commit on it." +"Limit the number of commits imported. Workaround for cases where cvsimport " +"leaks memory." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:334 en/git-fast-import.txt:816 +#. type: Labeled list +#: en/git-cvsimport.txt:143 #, no-wrap -msgid "`blob`" +msgid "-A <author-conv-file>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:338 +#: en/git-cvsimport.txt:148 msgid "" -"Convert raw file data into a blob, for future use in a `commit` command. " -"This command is optional and is not needed to perform an import." +"CVS by default uses the Unix username when writing its commit logs. Using " +"this option and an author-conv-file maps the name recorded in CVS to author " +"name, e-mail and optional time zone:" msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:339 en/git-fast-import.txt:888 +#. type: delimited block - +#: en/git-cvsimport.txt:152 #, no-wrap -msgid "`checkpoint`" +msgid "" +"\texon=Andreas Ericsson <ae@op5.se>\n" +"\tspawn=Simon Pawn <spawn@frog-pond.org> America/Chicago\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:344 +#: en/git-cvsimport.txt:159 msgid "" -"Forces fast-import to close the current packfile, generate its unique SHA-1 " -"checksum and index, and start a new packfile. This command is optional and " -"is not needed to perform an import." -msgstr "" - -#. type: Title ~ -#: en/git-fast-import.txt:345 en/git-fast-import.txt:916 -#, no-wrap -msgid "`progress`" +"'git cvsimport' will make it appear as those authors had their " +"GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along. If a time zone " +"is specified, GIT_AUTHOR_DATE will have the corresponding offset applied." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:349 +#: en/git-cvsimport.txt:163 msgid "" -"Causes fast-import to echo the entire line to its own standard output. This " -"command is optional and is not needed to perform an import." +"For convenience, this data is saved to `$GIT_DIR/cvs-authors` each time the " +"'-A' option is provided and read from that same file each time 'git " +"cvsimport' is run." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:350 en/git-fast-import.txt:1126 -#, no-wrap -msgid "`done`" +#. type: Plain text +#: en/git-cvsimport.txt:167 +msgid "" +"It is not recommended to use this feature if you intend to export changes " +"back to CVS again later with 'git cvsexportcommit'." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:354 +#: en/git-cvsimport.txt:173 msgid "" -"Marks the end of the stream. This command is optional unless the `done` " -"feature was requested using the `--done` command-line option or `feature " -"done` command." +"Generate a `$GIT_DIR/cvs-revisions` file containing a mapping from CVS " +"revision numbers to newly-created Git commit IDs. The generated file will " +"contain one line for each (filename, revision) pair imported; each line will " +"look like" msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:355 en/git-fast-import.txt:941 +#. type: delimited block - +#: en/git-cvsimport.txt:176 #, no-wrap -msgid "`get-mark`" +msgid "src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:359 +#: en/git-cvsimport.txt:180 msgid "" -"Causes fast-import to print the SHA-1 corresponding to a mark to the file " -"descriptor set with `--cat-blob-fd`, or `stdout` if unspecified." +"The revision data is appended to the file if it already exists, for use when " +"doing incremental imports." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:360 en/git-fast-import.txt:960 -#, no-wrap -msgid "`cat-blob`" +#. type: Plain text +#: en/git-cvsimport.txt:183 +msgid "" +"This option may be useful if you have CVS revision numbers stored in commit " +"messages, bug-tracking systems, email archives, and the like." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:364 -msgid "" -"Causes fast-import to print a blob in 'cat-file --batch' format to the file " -"descriptor set with `--cat-blob-fd` or `stdout` if unspecified." +#: en/git-cvsimport.txt:186 +msgid "Print a short usage message and exit." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:365 en/git-fast-import.txt:990 -#, no-wrap -msgid "`ls`" +#. type: Plain text +#: en/git-cvsimport.txt:190 +msgid "If `-v` is specified, the script reports what it is doing." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:369 +#: en/git-cvsimport.txt:193 msgid "" -"Causes fast-import to print a line describing a directory entry in 'ls-tree' " -"format to the file descriptor set with `--cat-blob-fd` or `stdout` if " -"unspecified." +"Otherwise, success is indicated the Unix way, i.e. by simply exiting with a " +"zero exit status." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:370 en/git-fast-import.txt:1043 +#. type: Title - +#: en/git-cvsimport.txt:196 #, no-wrap -msgid "`feature`" +msgid "ISSUES" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:373 -msgid "" -"Enable the specified feature. This requires that fast-import supports the " -"specified feature, and aborts if it does not." -msgstr "" - -#. type: Title ~ -#: en/git-fast-import.txt:374 en/git-fast-import.txt:1098 -#, no-wrap -msgid "`option`" +#: en/git-cvsimport.txt:198 +msgid "Problems related to timestamps:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:378 +#: en/git-cvsimport.txt:202 msgid "" -"Specify any of the options listed under OPTIONS that do not change stream " -"semantic to suit the frontend's needs. This command is optional and is not " -"needed to perform an import." +"If timestamps of commits in the CVS repository are not stable enough to be " +"used for ordering commits changes may show up in the wrong order." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:383 +#: en/git-cvsimport.txt:204 msgid "" -"Create or update a branch with a new commit, recording one logical change to " -"the project." +"If any files were ever \"cvs import\"ed more than once (e.g., import of more " +"than one vendor release) the HEAD contains the wrong content." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:394 -#, no-wrap +#. type: Plain text +#: en/git-cvsimport.txt:207 msgid "" -"\t'commit' SP <ref> LF\n" -"\tmark?\n" -"\t('author' (SP <name>)? SP LT <email> GT SP <when> LF)?\n" -"\t'committer' (SP <name>)? SP LT <email> GT SP <when> LF\n" -"\tdata\n" -"\t('from' SP <commit-ish> LF)?\n" -"\t('merge' SP <commit-ish> LF)?\n" -"\t(filemodify | filedelete | filecopy | filerename | filedeleteall | " -"notemodify)*\n" -"\tLF?\n" +"If the timestamp order of different files cross the revision order within " +"the commit matching time window the order of commits may be wrong." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:402 -msgid "" -"where `<ref>` is the name of the branch to make the commit on. Typically " -"branch names are prefixed with `refs/heads/` in Git, so importing the CVS " -"branch symbol `RELENG-1_0` would use `refs/heads/RELENG-1_0` for the value " -"of `<ref>`. The value of `<ref>` must be a valid refname in Git. As `LF` " -"is not valid in a Git refname, no quoting or escaping syntax is supported " -"here." +#: en/git-cvsimport.txt:209 +msgid "Problems related to branches:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:408 -msgid "" -"A `mark` command may optionally appear, requesting fast-import to save a " -"reference to the newly created commit for future use by the frontend (see " -"below for format). It is very common for frontends to mark every commit " -"they create, thereby allowing future branch creation from any imported " -"commit." +#: en/git-cvsimport.txt:211 +msgid "Branches on which no commits have been made are not imported." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:414 +#: en/git-cvsimport.txt:213 msgid "" -"The `data` command following `committer` must supply the commit message (see " -"below for `data` command syntax). To import an empty commit message use a 0 " -"length data. Commit messages are free-form and are not interpreted by Git. " -"Currently they must be encoded in UTF-8, as fast-import does not permit " -"other encodings to be specified." +"All files from the branching point are added to a branch even if never added " +"in CVS." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:422 +#: en/git-cvsimport.txt:216 msgid "" -"Zero or more `filemodify`, `filedelete`, `filecopy`, `filerename`, " -"`filedeleteall` and `notemodify` commands may be included to update the " -"contents of the branch prior to creating the commit. These commands may be " -"supplied in any order. However it is recommended that a `filedeleteall` " -"command precede all `filemodify`, `filecopy`, `filerename` and `notemodify` " -"commands in the same commit, as `filedeleteall` wipes the branch clean (see " -"below)." +"This applies to files added to the source branch *after* a daughter branch " +"was created: if previously no commit was made on the daughter branch they " +"will erroneously be added to the daughter branch in git." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:424 en/git-fast-import.txt:803 en/git-fast-import.txt:914 -msgid "The `LF` after the command is optional (it used to be required)." +#: en/git-cvsimport.txt:218 +msgid "Problems related to tags:" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:426 -#, no-wrap -msgid "`author`" +#. type: Plain text +#: en/git-cvsimport.txt:220 +msgid "Multiple tags on the same revision are not imported." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:432 +#: en/git-cvsimport.txt:223 msgid "" -"An `author` command may optionally appear, if the author information might " -"differ from the committer information. If `author` is omitted then " -"fast-import will automatically use the committer's information for the " -"author portion of the commit. See below for a description of the fields in " -"`author`, as they are identical to `committer`." +"If you suspect that any of these issues may apply to the repository you want " +"to import, consider using cvs2git:" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:434 +#. type: Plain text +#: en/git-cvsimport.txt:225 +msgid "cvs2git (part of cvs2svn), `http://subversion.apache.org/`" +msgstr "" + +#. type: Title = +#: en/git-cvsserver.txt:2 #, no-wrap -msgid "`committer`" +msgid "git-cvsserver(1)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:437 -msgid "" -"The `committer` command indicates who made this commit, and when they made " -"it." +#: en/git-cvsserver.txt:7 +msgid "git-cvsserver - A CVS server emulator for Git" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:445 -msgid "" -"Here `<name>` is the person's display name (for example ``Com M Itter'') and " -"`<email>` is the person's email address (``\\cm@example.com''). `LT` and " -"`GT` are the literal less-than (\\x3c) and greater-than (\\x3e) symbols. " -"These are required to delimit the email address from the other fields in the " -"line. Note that `<name>` and `<email>` are free-form and may contain any " -"sequence of bytes, except `LT`, `GT` and `LF`. `<name>` is typically UTF-8 " -"encoded." +#: en/git-cvsserver.txt:12 +msgid "SSH:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:450 +#: en/git-cvsserver.txt:16 +#, no-wrap msgid "" -"The time of the change is specified by `<when>` using the date format that " -"was selected by the --date-format=<fmt> command-line option. See ``Date " -"Formats'' above for the set of supported formats, and their syntax." +"export CVS_SERVER=\"git cvsserver\"\n" +"'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>\n" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:452 -#, no-wrap -msgid "`from`" +#. type: Plain text +#: en/git-cvsserver.txt:18 +msgid "pserver (/etc/inetd.conf):" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:458 -msgid "" -"The `from` command is used to specify the commit to initialize this branch " -"from. This revision will be the first ancestor of the new commit. The " -"state of the tree built at this commit will begin with the state at the " -"`from` commit, and be altered by the content modifications in this commit." +#: en/git-cvsserver.txt:21 +#, no-wrap +msgid "cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:468 -msgid "" -"Omitting the `from` command in the first commit of a new branch will cause " -"fast-import to create that commit with no ancestor. This tends to be desired " -"only for the initial commit of a project. If the frontend creates all files " -"from scratch when making a new branch, a `merge` command may be used instead " -"of `from` to start the commit with an empty tree. Omitting the `from` " -"command on existing branches is usually desired, as the current commit on " -"that branch is automatically assumed to be the first ancestor of the new " -"commit." +#: en/git-cvsserver.txt:23 +msgid "Usage:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:471 -msgid "" -"As `LF` is not valid in a Git refname or SHA-1 expression, no quoting or " -"escaping syntax is supported within `<commit-ish>`." +#: en/git-cvsserver.txt:26 +#, no-wrap +msgid "'git-cvsserver' [<options>] [pserver|server] [<directory> ...]\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:473 -msgid "Here `<commit-ish>` is any of the following:" +#: en/git-cvsserver.txt:33 +msgid "" +"All these options obviously only make sense if enforced by the server side. " +"They have been implemented to resemble the linkgit:git-daemon[1] options as " +"closely as possible." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:477 -msgid "" -"The name of an existing branch already in fast-import's internal branch " -"table. If fast-import doesn't know the name, it's treated as a SHA-1 " -"expression." +#. type: Labeled list +#: en/git-cvsserver.txt:34 +#, no-wrap +msgid "--base-path <path>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:479 -msgid "A mark reference, `:<idnum>`, where `<idnum>` is the mark number." +#: en/git-cvsserver.txt:36 +msgid "Prepend 'path' to requested CVSROOT" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:485 -msgid "" -"The reason fast-import uses `:` to denote a mark reference is this character " -"is not legal in a Git branch name. The leading `:` makes it easy to " -"distinguish between the mark 42 (`:42`) and the branch 42 (`42` or " -"`refs/heads/42`), or an abbreviated SHA-1 which happened to consist only of " -"base-10 digits." +#. type: Labeled list +#: en/git-cvsserver.txt:37 en/git-daemon.txt:49 +#, no-wrap +msgid "--strict-paths" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:487 -msgid "Marks must be declared (via `mark`) before they can be used." +#: en/git-cvsserver.txt:39 +msgid "Don't allow recursing into subdirectories" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:489 -msgid "A complete 40 byte or abbreviated commit SHA-1 in hex." +#. type: Labeled list +#: en/git-cvsserver.txt:40 en/git-daemon.txt:78 +#, no-wrap +msgid "--export-all" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:492 +#: en/git-cvsserver.txt:43 msgid "" -"Any valid Git SHA-1 expression that resolves to a commit. See ``SPECIFYING " -"REVISIONS'' in linkgit:gitrevisions[7] for details." +"Don't check for `gitcvs.enabled` in config. You also have to specify a list " +"of allowed directories (see below) if you want to use this option." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:495 -msgid "" -"The special null SHA-1 (40 zeros) specifies that the branch is to be " -"removed." +#. type: Labeled list +#: en/git-cvsserver.txt:44 +#, no-wrap +msgid "-V" +msgstr "" + +#. type: Labeled list +#: en/git-cvsserver.txt:45 en/git.txt:41 +#, no-wrap +msgid "--version" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:498 -msgid "" -"The special case of restarting an incremental import from the current branch " -"value should be written as:" +#: en/git-cvsserver.txt:47 +msgid "Print version information and exit" msgstr "" -#. type: delimited block - -#: en/git-fast-import.txt:500 +#. type: Labeled list +#: en/git-cvsserver.txt:50 en/git.txt:44 #, no-wrap -msgid "\tfrom refs/heads/branch^0\n" +msgid "--help" +msgstr "" + +#. type: Plain text +#: en/git-cvsserver.txt:52 +msgid "Print usage information and exit" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:507 +#: en/git-cvsserver.txt:58 msgid "" -"The `^0` suffix is necessary as fast-import does not permit a branch to " -"start from itself, and the branch is created in memory before the `from` " -"command is even read from the input. Adding `^0` will force fast-import to " -"resolve the commit through Git's revision parsing library, rather than its " -"internal branch table, thereby loading in the existing value of the branch." +"You can specify a list of allowed directories. If no directories are given, " +"all are allowed. This is an additional restriction, gitcvs access still " +"needs to be enabled by the `gitcvs.enabled` config option unless `--export-" +"all` was given, too." msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:509 -#, no-wrap -msgid "`merge`" +#. type: Plain text +#: en/git-cvsserver.txt:64 +msgid "This application is a CVS emulation layer for Git." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:517 +#: en/git-cvsserver.txt:68 msgid "" -"Includes one additional ancestor commit. The additional ancestry link does " -"not change the way the tree state is built at this commit. If the `from` " -"command is omitted when creating a new branch, the first `merge` commit will " -"be the first ancestor of the current commit, and the branch will start out " -"with no files. An unlimited number of `merge` commands per commit are " -"permitted by fast-import, thereby establishing an n-way merge." +"It is highly functional. However, not all methods are implemented, and for " +"those methods that are implemented, not all switches are implemented." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:520 +#: en/git-cvsserver.txt:71 msgid "" -"Here `<commit-ish>` is any of the commit specification expressions also " -"accepted by `from` (see above)." +"Testing has been done using both the CLI CVS client, and the Eclipse CVS " +"plugin. Most functionality works fine with both of these clients." msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:522 +#. type: Title - +#: en/git-cvsserver.txt:73 en/git-fast-export.txt:227 #, no-wrap -msgid "`filemodify`" +msgid "LIMITATIONS" +msgstr "" + +#. type: Plain text +#: en/git-cvsserver.txt:76 +msgid "CVS clients cannot tag, branch or perform Git merges." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:526 +#: en/git-cvsserver.txt:80 msgid "" -"Included in a `commit` command to add a new file or change the content of an " -"existing file. This command has two different means of specifying the " -"content of the file." +"'git-cvsserver' maps Git branches to CVS modules. This is very different " +"from what most CVS users would expect since in CVS modules usually represent " +"one or more directories." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:527 en/git-fast-import.txt:694 +#. type: Title - +#: en/git-cvsserver.txt:82 #, no-wrap -msgid "External data format" +msgid "INSTALLATION" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:530 +#: en/git-cvsserver.txt:86 msgid "" -"The data content for the file was already supplied by a prior `blob` " -"command. The frontend just needs to connect it." +"If you are going to offer CVS access via pserver, add a line in /etc/inetd." +"conf like" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:533 +#. type: delimited block - +#: en/git-cvsserver.txt:90 #, no-wrap -msgid "\t'M' SP <mode> SP <dataref> SP <path> LF\n" +msgid " cvspserver stream tcp nowait nobody git-cvsserver pserver\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:540 +#: en/git-cvsserver.txt:96 msgid "" -"Here usually `<dataref>` must be either a mark reference (`:<idnum>`) set " -"by a prior `blob` command, or a full 40-byte SHA-1 of an existing Git blob " -"object. If `<mode>` is `040000`` then `<dataref>` must be the full 40-byte " -"SHA-1 of an existing Git tree object or a mark reference set with " -"`--import-marks`." +"Note: Some inetd servers let you specify the name of the executable " +"independently of the value of argv[0] (i.e. the name the program assumes it " +"was executed with). In this case the correct line in /etc/inetd.conf looks " +"like" msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:541 en/git-fast-import.txt:707 +#. type: delimited block - +#: en/git-cvsserver.txt:99 #, no-wrap -msgid "Inline data format" +msgid " cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:545 +#: en/git-cvsserver.txt:106 msgid "" -"The data content for the file has not been supplied yet. The frontend wants " -"to supply it as part of this modify command." +"Only anonymous access is provided by pserve by default. To commit you will " +"have to create pserver accounts, simply add a gitcvs.authdb setting in the " +"config file of the repositories you want the cvsserver to allow writes to, " +"for example:" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:549 +#. type: delimited block - +#: en/git-cvsserver.txt:111 #, no-wrap msgid "" -"\t'M' SP <mode> SP 'inline' SP <path> LF\n" -"\tdata\n" +" [gitcvs]\n" +"\tauthdb = /etc/cvsserver/passwd\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:552 en/git-fast-import.txt:718 -msgid "See below for a detailed description of the `data` command." +#: en/git-cvsserver.txt:115 +msgid "" +"The format of these files is username followed by the encrypted password, " +"for example:" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:555 +#. type: delimited block - +#: en/git-cvsserver.txt:119 +#, no-wrap msgid "" -"In both formats `<mode>` is the type of file entry, specified in octal. Git " -"only supports the following modes:" +" myuser:$1Oyx5r9mdGZ2\n" +" myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:559 +#: en/git-cvsserver.txt:123 msgid "" -"`100644` or `644`: A normal (not-executable) file. The majority of files in " -"most projects use this mode. If in doubt, this is what you want." +"You can use the 'htpasswd' facility that comes with Apache to make these " +"files, but Apache's MD5 crypt method differs from the one used by most C " +"library's crypt() function, so don't use the -m option." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:560 -msgid "`100755` or `755`: A normal, but executable, file." +#: en/git-cvsserver.txt:125 +msgid "" +"Alternatively you can produce the password with perl's crypt() operator:" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:561 -msgid "`120000`: A symlink, the content of the file will be the link target." +#. type: delimited block - +#: en/git-cvsserver.txt:127 +#, no-wrap +msgid " perl -e 'my ($user, $pass) = @ARGV; printf \"%s:%s\\n\", $user, crypt($user, $pass)' $USER password\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:564 -msgid "" -"`160000`: A gitlink, SHA-1 of the object refers to a commit in another " -"repository. Git links can only be specified by SHA or through a commit " -"mark. They are used to implement submodules." +#: en/git-cvsserver.txt:130 +msgid "Then provide your password via the pserver method, for example:" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:566 -msgid "" -"`040000`: A subdirectory. Subdirectories can only be specified by SHA or " -"through a tree mark set with `--import-marks`." +#. type: delimited block - +#: en/git-cvsserver.txt:132 +#, no-wrap +msgid " cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name>\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:569 +#: en/git-cvsserver.txt:136 msgid "" -"In both formats `<path>` is the complete path of the file to be added (if " -"not already existing) or modified (if already existing)." +"No special setup is needed for SSH access, other than having Git tools in " +"the PATH. If you have clients that do not accept the CVS_SERVER environment " +"variable, you can rename 'git-cvsserver' to `cvs`." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:573 +#: en/git-cvsserver.txt:139 msgid "" -"A `<path>` string must use UNIX-style directory separators (forward slash " -"`/`), may contain any byte other than `LF`, and must not start with double " -"quote (`\"`)." +"Note: Newer CVS versions (>= 1.12.11) also support specifying CVS_SERVER " +"directly in CVSROOT like" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:580 -msgid "" -"A path can use C-style string quoting; this is accepted in all cases and " -"mandatory if the filename starts with double quote or contains `LF`. In " -"C-style quoting, the complete name should be surrounded with double quotes, " -"and any `LF`, backslash, or double quote characters must be escaped by " -"preceding them with a backslash (e.g., `\"path/with\\n, \\\\ and \\\" in " -"it\"`)." +#. type: delimited block - +#: en/git-cvsserver.txt:142 +#, no-wrap +msgid "cvs -d \":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git\" co <HEAD_name>\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:582 -msgid "The value of `<path>` must be in canonical form. That is it must not:" +#: en/git-cvsserver.txt:148 +msgid "" +"This has the advantage that it will be saved in your 'CVS/Root' files and " +"you don't need to worry about always setting the correct environment " +"variable. SSH users restricted to 'git-shell' don't need to override the " +"default with CVS_SERVER (and shouldn't) as 'git-shell' understands `cvs` to " +"mean 'git-cvsserver' and pretends that the other end runs the real 'cvs' " +"better." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:584 -msgid "contain an empty directory component (e.g. `foo//bar` is invalid)," +#: en/git-cvsserver.txt:151 +msgid "" +"For each repo that you want accessible from CVS you need to edit config in " +"the repo and add the following section." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:585 -msgid "end with a directory separator (e.g. `foo/` is invalid)," +#. type: delimited block - +#: en/git-cvsserver.txt:158 +#, no-wrap +msgid "" +" [gitcvs]\n" +" enabled=1\n" +" # optional for debugging\n" +"\tlogFile=/path/to/logfile\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:586 -msgid "start with a directory separator (e.g. `/foo` is invalid)," +#: en/git-cvsserver.txt:164 +msgid "" +"Note: you need to ensure each user that is going to invoke 'git-cvsserver' " +"has write access to the log file and to the database (see <<dbbackend," +"Database Backend>>. If you want to offer write access over SSH, the users of " +"course also need write access to the Git repository itself." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:588 +#: en/git-cvsserver.txt:167 msgid "" -"contain the special component `.` or `..` (e.g. `foo/./bar` and `foo/../bar` " -"are invalid)." +"You also need to ensure that each repository is \"bare\" (without a Git " +"index file) for `cvs commit` to work. See linkgit:gitcvs-migration[7]." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:590 -msgid "The root of the tree can be represented by an empty string as `<path>`." +#: en/git-cvsserver.txt:173 +msgid "" +"All configuration variables can also be overridden for a specific method of " +"access. Valid method names are \"ext\" (for SSH access) and \"pserver\". The " +"following example configuration would disable pserver access while still " +"allowing access over SSH." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:592 -msgid "It is recommended that `<path>` always be encoded using UTF-8." +#. type: delimited block - +#: en/git-cvsserver.txt:176 +#, no-wrap +msgid "" +" [gitcvs]\n" +" enabled=0\n" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:594 +#. type: delimited block - +#: en/git-cvsserver.txt:179 #, no-wrap -msgid "`filedelete`" +msgid "" +" [gitcvs \"ext\"]\n" +" enabled=1\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:600 +#: en/git-cvsserver.txt:186 msgid "" -"Included in a `commit` command to remove a file or recursively delete an " -"entire directory from the branch. If the file or directory removal makes " -"its parent directory empty, the parent directory will be automatically " -"removed too. This cascades up the tree until the first non-empty directory " -"or the root is reached." +"If you didn't specify the CVSROOT/CVS_SERVER directly in the checkout " +"command, automatically saving it in your 'CVS/Root' files, then you need to " +"set them explicitly in your environment. CVSROOT should be set as per " +"normal, but the directory should point at the appropriate Git repo. As " +"above, for SSH clients _not_ restricted to 'git-shell', CVS_SERVER should be " +"set to 'git-cvsserver'." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:603 +#. type: delimited block - +#: en/git-cvsserver.txt:191 #, no-wrap -msgid "\t'D' SP <path> LF\n" +msgid "" +" export CVSROOT=:ext:user@server:/var/git/project.git\n" +" export CVS_SERVER=\"git cvsserver\"\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:608 +#: en/git-cvsserver.txt:198 msgid "" -"here `<path>` is the complete path of the file or subdirectory to be removed " -"from the branch. See `filemodify` above for a detailed description of " -"`<path>`." -msgstr "" - -#. type: Title ^ -#: en/git-fast-import.txt:610 -#, no-wrap -msgid "`filecopy`" +"For SSH clients that will make commits, make sure their server-side .ssh/" +"environment files (or .bashrc, etc., according to their specific shell) " +"export appropriate values for GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, " +"GIT_COMMITTER_NAME, and GIT_COMMITTER_EMAIL. For SSH clients whose login " +"shell is bash, .bashrc may be a reasonable alternative." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:615 +#: en/git-cvsserver.txt:204 msgid "" -"Recursively copies an existing file or subdirectory to a different location " -"within the branch. The existing file or directory must exist. If the " -"destination exists it will be completely replaced by the content copied from " -"the source." +"Clients should now be able to check out the project. Use the CVS 'module' " +"name to indicate what Git 'head' you want to check out. This also sets the " +"name of your newly checked-out directory, unless you tell it otherwise with " +"`-d <dir_name>`. For example, this checks out 'master' branch to the " +"`project-master` directory:" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:618 +#. type: delimited block - +#: en/git-cvsserver.txt:207 #, no-wrap -msgid "\t'C' SP <path> SP <path> LF\n" +msgid " cvs co -d project-master master\n" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:624 en/git-fast-import.txt:644 -msgid "" -"here the first `<path>` is the source location and the second `<path>` is " -"the destination. See `filemodify` above for a detailed description of what " -"`<path>` may look like. To use a source path that contains SP the path must " -"be quoted." +#. type: Title - +#: en/git-cvsserver.txt:211 +#, no-wrap +msgid "DATABASE BACKEND" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:629 +#: en/git-cvsserver.txt:217 msgid "" -"A `filecopy` command takes effect immediately. Once the source location has " -"been copied to the destination any future commands applied to the source " -"location will not impact the destination of the copy." +"'git-cvsserver' uses one database per Git head (i.e. CVS module) to store " +"information about the repository to maintain consistent CVS revision " +"numbers. The database needs to be updated (i.e. written to) after every " +"commit." msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:631 -#, no-wrap -msgid "`filerename`" +#. type: Plain text +#: en/git-cvsserver.txt:222 +msgid "" +"If the commit is done directly by using `git` (as opposed to using 'git-" +"cvsserver') the update will need to happen on the next repository access by " +"'git-cvsserver', independent of access method and requested operation." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:635 +#: en/git-cvsserver.txt:227 msgid "" -"Renames an existing file or subdirectory to a different location within the " -"branch. The existing file or directory must exist. If the destination " -"exists it will be replaced by the source directory." +"That means that even if you offer only read access (e.g. by using the " +"pserver method), 'git-cvsserver' should have write access to the database to " +"work reliably (otherwise you need to make sure that the database is up to " +"date any time 'git-cvsserver' is executed)." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:638 -#, no-wrap -msgid "\t'R' SP <path> SP <path> LF\n" +#. type: Plain text +#: en/git-cvsserver.txt:234 +msgid "" +"By default it uses SQLite databases in the Git directory, named `gitcvs." +"<module_name>.sqlite`. Note that the SQLite backend creates temporary files " +"in the same directory as the database file on write so it might not be " +"enough to grant the users using 'git-cvsserver' write access to the database " +"file without granting them write access to the directory, too." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:649 +#: en/git-cvsserver.txt:246 msgid "" -"A `filerename` command takes effect immediately. Once the source location " -"has been renamed to the destination any future commands applied to the " -"source location will create new files there and not impact the destination " -"of the rename." +"The database can not be reliably regenerated in a consistent form after the " +"branch it is tracking has changed. Example: For merged branches, 'git-" +"cvsserver' only tracks one branch of development, and after a 'git merge' an " +"incrementally updated database may track a different branch than a database " +"regenerated from scratch, causing inconsistent CVS revision numbers. `git-" +"cvsserver` has no way of knowing which branch it would have picked if it had " +"been run incrementally pre-merge. So if you have to fully or partially (from " +"old backup) regenerate the database, you should be suspicious of pre-" +"existing CVS sandboxes." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:658 +#: en/git-cvsserver.txt:249 msgid "" -"Note that a `filerename` is the same as a `filecopy` followed by a " -"`filedelete` of the source location. There is a slight performance " -"advantage to using `filerename`, but the advantage is so small that it is " -"never worth trying to convert a delete/add pair in source material into a " -"rename for fast-import. This `filerename` command is provided just to " -"simplify frontends that already have rename information and don't want " -"bother with decomposing it into a `filecopy` followed by a `filedelete`." +"You can configure the database backend with the following configuration " +"variables:" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:660 +#. type: Title ~ +#: en/git-cvsserver.txt:251 #, no-wrap -msgid "`filedeleteall`" +msgid "Configuring database backend" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:665 +#: en/git-cvsserver.txt:256 msgid "" -"Included in a `commit` command to remove all files (and also all " -"directories) from the branch. This command resets the internal branch " -"structure to have no files in it, allowing the frontend to subsequently add " -"all interesting files from scratch." +"'git-cvsserver' uses the Perl DBI module. Please also read its documentation " +"if changing these variables, especially about `DBI->connect()`." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:668 +#. type: Labeled list +#: en/git-cvsserver.txt:257 #, no-wrap -msgid "\t'deleteall' LF\n" +msgid "gitcvs.dbName" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:674 +#: en/git-cvsserver.txt:263 msgid "" -"This command is extremely useful if the frontend does not know (or does not " -"care to know) what files are currently on the branch, and therefore cannot " -"generate the proper `filedelete` commands to update the content." +"Database name. The exact meaning depends on the selected database driver, " +"for SQLite this is a filename. Supports variable substitution (see below). " +"May not contain semicolons (`;`). Default: '%Ggitcvs.%m.sqlite'" +msgstr "" + +#. type: Labeled list +#: en/git-cvsserver.txt:264 +#, no-wrap +msgid "gitcvs.dbDriver" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:682 +#: en/git-cvsserver.txt:272 msgid "" -"Issuing a `filedeleteall` followed by the needed `filemodify` commands to " -"set the correct content will produce the same results as sending only the " -"needed `filemodify` and `filedelete` commands. The `filedeleteall` approach " -"may however require fast-import to use slightly more memory per active " -"branch (less than 1 MiB for even most large projects); so frontends that can " -"easily obtain only the affected paths for a commit are encouraged to do so." +"Used DBI driver. You can specify any available driver for this here, but it " +"might not work. cvsserver is tested with 'DBD::SQLite', reported to work " +"with 'DBD::Pg', and reported *not* to work with 'DBD::mysql'. Please regard " +"this as an experimental feature. May not contain colons (`:`). Default: " +"'SQLite'" msgstr "" -#. type: Title ^ -#: en/git-fast-import.txt:684 +#. type: Labeled list +#: en/git-cvsserver.txt:273 #, no-wrap -msgid "`notemodify`" +msgid "gitcvs.dbuser" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:693 +#: en/git-cvsserver.txt:277 msgid "" -"Included in a `commit` `<notes_ref>` command to add a new note annotating a " -"`<commit-ish>` or change this annotation contents. Internally it is similar " -"to filemodify 100644 on `<commit-ish>` path (maybe split into " -"subdirectories). It's not advised to use any other commands to write to the " -"`<notes_ref>` tree except `filedeleteall` to delete all existing notes in " -"this tree. This command has two different means of specifying the content " -"of the note." +"Database user. Only useful if setting `dbDriver`, since SQLite has no " +"concept of database users. Supports variable substitution (see below)." +msgstr "" + +#. type: Labeled list +#: en/git-cvsserver.txt:278 +#, no-wrap +msgid "gitcvs.dbPass" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:698 +#: en/git-cvsserver.txt:281 msgid "" -"The data content for the note was already supplied by a prior `blob` " -"command. The frontend just needs to connect it to the commit that is to be " -"annotated." +"Database password. Only useful if setting `dbDriver`, since SQLite has no " +"concept of database passwords." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:701 +#. type: Labeled list +#: en/git-cvsserver.txt:282 #, no-wrap -msgid "\t'N' SP <dataref> SP <commit-ish> LF\n" +msgid "gitcvs.dbTableNamePrefix" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:706 +#: en/git-cvsserver.txt:286 msgid "" -"Here `<dataref>` can be either a mark reference (`:<idnum>`) set by a prior " -"`blob` command, or a full 40-byte SHA-1 of an existing Git blob object." +"Database table name prefix. Supports variable substitution (see below). " +"Any non-alphabetic characters will be replaced with underscores." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:711 +#: en/git-cvsserver.txt:288 msgid "" -"The data content for the note has not been supplied yet. The frontend wants " -"to supply it as part of this modify command." +"All variables can also be set per access method, see <<configaccessmethod," +"above>>." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:715 +#. type: Title ^ +#: en/git-cvsserver.txt:290 #, no-wrap -msgid "" -"\t'N' SP 'inline' SP <commit-ish> LF\n" -"\tdata\n" +msgid "Variable substitution" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:721 -msgid "" -"In both formats `<commit-ish>` is any of the commit specification " -"expressions also accepted by `from` (see above)." +#: en/git-cvsserver.txt:292 +msgid "In `dbDriver` and `dbUser` you can use the following variables:" msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:723 +#. type: Labeled list +#: en/git-cvsserver.txt:293 #, no-wrap -msgid "`mark`" +msgid "%G" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:729 -msgid "" -"Arranges for fast-import to save a reference to the current object, allowing " -"the frontend to recall this object at a future point in time, without " -"knowing its SHA-1. Here the current object is the object creation command " -"the `mark` command appears within. This can be `commit`, `tag`, and `blob`, " -"but `commit` is the most common usage." +#: en/git-cvsserver.txt:295 +msgid "Git directory name" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:732 +#. type: Labeled list +#: en/git-cvsserver.txt:295 #, no-wrap -msgid "\t'mark' SP ':' <idnum> LF\n" +msgid "%g" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:738 +#: en/git-cvsserver.txt:300 msgid "" -"where `<idnum>` is the number assigned by the frontend to this mark. The " -"value of `<idnum>` is expressed as an ASCII decimal integer. The value 0 is " -"reserved and cannot be used as a mark. Only values greater than or equal to " -"1 may be used as marks." +"Git directory name, where all characters except for alpha-numeric ones, `.`, " +"and `-` are replaced with `_` (this should make it easier to use the " +"directory name in a filename if wanted)" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:742 -msgid "" -"New marks are created automatically. Existing marks can be moved to another " -"object simply by reusing the same `<idnum>` in another `mark` command." +#. type: Labeled list +#: en/git-cvsserver.txt:300 +#, no-wrap +msgid "%m" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:747 -msgid "" -"Creates an annotated tag referring to a specific commit. To create " -"lightweight (non-annotated) tags see the `reset` command below." +#: en/git-cvsserver.txt:302 +msgid "CVS module/Git head name" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:753 +#. type: Labeled list +#: en/git-cvsserver.txt:302 #, no-wrap -msgid "" -"\t'tag' SP <name> LF\n" -"\t'from' SP <commit-ish> LF\n" -"\t'tagger' (SP <name>)? SP LT <email> GT SP <when> LF\n" -"\tdata\n" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:756 -msgid "where `<name>` is the name of the tag to create." +msgid "%a" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:761 -msgid "" -"Tag names are automatically prefixed with `refs/tags/` when stored in Git, " -"so importing the CVS branch symbol `RELENG-1_0-FINAL` would use just " -"`RELENG-1_0-FINAL` for `<name>`, and fast-import will write the " -"corresponding ref as `refs/tags/RELENG-1_0-FINAL`." +#: en/git-cvsserver.txt:304 +msgid "access method (one of \"ext\" or \"pserver\")" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:765 -msgid "" -"The value of `<name>` must be a valid refname in Git and therefore may " -"contain forward slashes. As `LF` is not valid in a Git refname, no quoting " -"or escaping syntax is supported here." +#. type: Labeled list +#: en/git-cvsserver.txt:304 +#, no-wrap +msgid "%u" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:768 +#: en/git-cvsserver.txt:308 msgid "" -"The `from` command is the same as in the `commit` command; see above for " -"details." +"Name of the user running 'git-cvsserver'. If no name can be determined, the " +"numeric uid is used." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:771 +#: en/git-cvsserver.txt:314 msgid "" -"The `tagger` command uses the same format as `committer` within `commit`; " -"again see above for details." +"These variables obviate the need for command-line options in some " +"circumstances, allowing easier restricted usage through git-shell." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:777 -msgid "" -"The `data` command following `tagger` must supply the annotated tag message " -"(see below for `data` command syntax). To import an empty tag message use a " -"0 length data. Tag messages are free-form and are not interpreted by Git. " -"Currently they must be encoded in UTF-8, as fast-import does not permit " -"other encodings to be specified." +#: en/git-cvsserver.txt:316 +msgid "GIT_CVSSERVER_BASE_PATH takes the place of the argument to --base-path." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:785 +#: en/git-cvsserver.txt:320 msgid "" -"Signing annotated tags during import from within fast-import is not " -"supported. Trying to include your own PGP/GPG signature is not recommended, " -"as the frontend does not (easily) have access to the complete set of bytes " -"which normally goes into such a signature. If signing is required, create " -"lightweight tags from within fast-import with `reset`, then create the " -"annotated versions of those tags offline with the standard 'git tag' " -"process." +"GIT_CVSSERVER_ROOT specifies a single-directory whitelist. The repository " +"must still be configured to allow access through git-cvsserver, as described " +"above." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:792 +#: en/git-cvsserver.txt:323 msgid "" -"Creates (or recreates) the named branch, optionally starting from a specific " -"revision. The reset command allows a frontend to issue a new `from` command " -"for an existing branch, or to create a new branch from an existing commit " -"without creating a new commit." +"When these environment variables are set, the corresponding command-line " +"arguments may not be used." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:797 +#. type: Title - +#: en/git-cvsserver.txt:325 #, no-wrap -msgid "" -"\t'reset' SP <ref> LF\n" -"\t('from' SP <commit-ish> LF)?\n" -"\tLF?\n" +msgid "ECLIPSE CVS CLIENT NOTES" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:801 -msgid "" -"For a detailed description of `<ref>` and `<commit-ish>` see above under " -"`commit` and `from`." +#: en/git-cvsserver.txt:328 +msgid "To get a checkout with the Eclipse CVS client:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:806 -msgid "" -"The `reset` command can also be used to create lightweight (non-annotated) " -"tags. For example:" +#: en/git-cvsserver.txt:330 +msgid "Select \"Create a new project -> From CVS checkout\"" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:810 -#, no-wrap +#. type: Plain text +#: en/git-cvsserver.txt:332 msgid "" -"\treset refs/tags/938\n" -"\tfrom :938\n" +"Create a new location. See the notes below for details on how to choose the " +"right protocol." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:814 +#: en/git-cvsserver.txt:335 msgid "" -"would create the lightweight tag `refs/tags/938` referring to whatever " -"commit mark `:938` references." +"Browse the 'modules' available. It will give you a list of the heads in the " +"repository. You will not be able to browse the tree from there. Only the " +"heads." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:821 +#: en/git-cvsserver.txt:337 msgid "" -"Requests writing one file revision to the packfile. The revision is not " -"connected to any commit; this connection must be formed in a subsequent " -"`commit` command by referencing the blob through an assigned mark." +"Pick `HEAD` when it asks what branch/tag to check out. Untick the \"launch " +"commit wizard\" to avoid committing the .project file." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:826 -#, no-wrap +#. type: Plain text +#: en/git-cvsserver.txt:343 msgid "" -"\t'blob' LF\n" -"\tmark?\n" -"\tdata\n" +"Protocol notes: If you are using anonymous access via pserver, just select " +"that. Those using SSH access should choose the 'ext' protocol, and " +"configure 'ext' access on the Preferences->Team->CVS->ExtConnection pane. " +"Set CVS_SERVER to \"`git cvsserver`\". Note that password support is not " +"good when using 'ext', you will definitely want to have SSH keys setup." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:832 +#: en/git-cvsserver.txt:348 msgid "" -"The mark command is optional here as some frontends have chosen to generate " -"the Git SHA-1 for the blob on their own, and feed that directly to " -"`commit`. This is typically more work than it's worth however, as marks are " -"inexpensive to store and easy to use." +"Alternatively, you can just use the non-standard extssh protocol that " +"Eclipse offer. In that case CVS_SERVER is ignored, and you will have to " +"replace the cvs utility on the server with 'git-cvsserver' or manipulate " +"your `.bashrc` so that calling 'cvs' effectively calls 'git-cvsserver'." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:834 +#. type: Title - +#: en/git-cvsserver.txt:350 #, no-wrap -msgid "`data`" +msgid "CLIENTS KNOWN TO WORK" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:841 -msgid "" -"Supplies raw data (for use as blob/file content, commit messages, or " -"annotated tag messages) to fast-import. Data can be supplied using an exact " -"byte count or delimited with a terminating line. Real frontends intended " -"for production-quality conversions should always use the exact byte count " -"format, as it is more robust and performs better. The delimited format is " -"intended primarily for testing fast-import." +#: en/git-cvsserver.txt:353 +msgid "CVS 1.12.9 on Debian" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:846 -msgid "" -"Comment lines appearing within the `<raw>` part of `data` commands are " -"always taken to be part of the body of the data and are therefore never " -"ignored by fast-import. This makes it safe to import any file/message " -"content whose lines might start with `#`." +#: en/git-cvsserver.txt:354 +msgid "CVS 1.11.17 on MacOSX (from Fink package)" msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:847 -#, no-wrap -msgid "Exact byte count format" +#. type: Plain text +#: en/git-cvsserver.txt:355 +msgid "Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:849 -msgid "The frontend must specify the number of bytes of data." +#: en/git-cvsserver.txt:356 +msgid "TortoiseCVS" msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:853 +#. type: Title - +#: en/git-cvsserver.txt:358 #, no-wrap -msgid "" -"\t'data' SP <count> LF\n" -"\t<raw> LF?\n" +msgid "OPERATIONS SUPPORTED" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:859 +#: en/git-cvsserver.txt:362 msgid "" -"where `<count>` is the exact number of bytes appearing within `<raw>`. The " -"value of `<count>` is expressed as an ASCII decimal integer. The `LF` on " -"either side of `<raw>` is not included in `<count>` and will not be included " -"in the imported data." +"All the operations required for normal use are supported, including " +"checkout, diff, status, update, log, add, remove, commit." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:864 +#: en/git-cvsserver.txt:371 msgid "" -"The `LF` after `<raw>` is optional (it used to be required) but " -"recommended. Always including it makes debugging a fast-import stream " -"easier as the next command always starts in column 0 of the next line, even " -"if `<raw>` did not end with an `LF`." -msgstr "" - -#. type: Labeled list -#: en/git-fast-import.txt:865 -#, no-wrap -msgid "Delimited format" +"Most CVS command arguments that read CVS tags or revision numbers (typically " +"-r) work, and also support any git refspec (tag, branch, commit ID, etc). " +"However, CVS revision numbers for non-default branches are not well " +"emulated, and cvs log does not show tags or branches at all. (Non-main-" +"branch CVS revision numbers superficially resemble CVS revision numbers, but " +"they actually encode a git commit ID directly, rather than represent the " +"number of revisions since the branch point.)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:870 +#: en/git-cvsserver.txt:385 msgid "" -"A delimiter string is used to mark the end of the data. fast-import will " -"compute the length by searching for the delimiter. This format is primarily " -"useful for testing and is not recommended for real data." +"Note that there are two ways to checkout a particular branch. As described " +"elsewhere on this page, the \"module\" parameter of cvs checkout is " +"interpreted as a branch name, and it becomes the main branch. It remains " +"the main branch for a given sandbox even if you temporarily make another " +"branch sticky with cvs update -r. Alternatively, the -r argument can " +"indicate some other branch to actually checkout, even though the module is " +"still the \"main\" branch. Tradeoffs (as currently implemented): Each new " +"\"module\" creates a new database on disk with a history for the given " +"module, and after the database is created, operations against that main " +"branch are fast. Or alternatively, -r doesn't take any extra disk space, " +"but may be significantly slower for many operations, like cvs update." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:876 -#, no-wrap +#. type: Plain text +#: en/git-cvsserver.txt:398 msgid "" -"\t'data' SP '<<' <delim> LF\n" -"\t<raw> LF\n" -"\t<delim> LF\n" -"\tLF?\n" +"If you want to refer to a git refspec that has characters that are not " +"allowed by CVS, you have two options. First, it may just work to supply the " +"git refspec directly to the appropriate CVS -r argument; some CVS clients " +"don't seem to do much sanity checking of the argument. Second, if that " +"fails, you can use a special character escape mechanism that only uses " +"characters that are valid in CVS tags. A sequence of 4 or 5 characters of " +"the form (underscore (`\"_\"`), dash (`\"-\"`), one or two characters, and " +"dash (`\"-\"`)) can encode various characters based on the one or two " +"letters: `\"s\"` for slash (`\"/\"`), `\"p\"` for period (`\".\"`), `\"u\"` " +"for underscore (`\"_\"`), or two hexadecimal digits for any byte value at " +"all (typically an ASCII number, or perhaps a part of a UTF-8 encoded " +"character)." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:884 +#: en/git-cvsserver.txt:401 msgid "" -"where `<delim>` is the chosen delimiter string. The string `<delim>` must " -"not appear on a line by itself within `<raw>`, as otherwise fast-import will " -"think the data ends earlier than it really does. The `LF` immediately " -"trailing `<raw>` is part of `<raw>`. This is one of the limitations of the " -"delimited format, it is impossible to supply a data chunk which does not " -"have an LF as its last byte." +"Legacy monitoring operations are not supported (edit, watch and related). " +"Exports and tagging (tags and branches) are not supported at this stage." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:886 -msgid "The `LF` after `<delim> LF` is optional (it used to be required)." +#. type: Title ~ +#: en/git-cvsserver.txt:403 +#, no-wrap +msgid "CRLF Line Ending Conversions" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:891 +#: en/git-cvsserver.txt:408 msgid "" -"Forces fast-import to close the current packfile, start a new one, and to " -"save out all current branch refs, tags and marks." +"By default the server leaves the `-k` mode blank for all files, which causes " +"the CVS client to treat them as a text files, subject to end-of-line " +"conversion on some platforms." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:895 -#, no-wrap +#. type: Plain text +#: en/git-cvsserver.txt:413 msgid "" -"\t'checkpoint' LF\n" -"\tLF?\n" +"You can make the server use the end-of-line conversion attributes to set the " +"`-k` modes for files by setting the `gitcvs.usecrlfattr` config variable. " +"See linkgit:gitattributes[5] for more information about end-of-line " +"conversion." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:901 +#: en/git-cvsserver.txt:422 msgid "" -"Note that fast-import automatically switches packfiles when the current " -"packfile reaches --max-pack-size, or 4 GiB, whichever limit is smaller. " -"During an automatic packfile switch fast-import does not update the branch " -"refs, tags or marks." +"Alternatively, if `gitcvs.usecrlfattr` config is not enabled or the " +"attributes do not allow automatic detection for a filename, then the server " +"uses the `gitcvs.allBinary` config for the default setting. If `gitcvs." +"allBinary` is set, then file not otherwise specified will default to '-kb' " +"mode. Otherwise the `-k` mode is left blank. But if `gitcvs.allBinary` is " +"set to \"guess\", then the correct `-k` mode will be guessed based on the " +"contents of the file." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:906 +#: en/git-cvsserver.txt:426 msgid "" -"As a `checkpoint` can require a significant amount of CPU time and disk IO " -"(to compute the overall pack SHA-1 checksum, generate the corresponding " -"index file, and update the refs) it can easily take several minutes for a " -"single `checkpoint` command to complete." +"For best consistency with 'cvs', it is probably best to override the " +"defaults by setting `gitcvs.usecrlfattr` to true, and `gitcvs.allBinary` to " +"\"guess\"." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:912 -msgid "" -"Frontends may choose to issue checkpoints during extremely large and long " -"running imports, or when they need to allow another Git process access to a " -"branch. However given that a 30 GiB Subversion repository can be loaded " -"into Git through fast-import in about 3 hours, explicit checkpointing may " -"not be necessary." +#. type: Title - +#: en/git-cvsserver.txt:428 +#, no-wrap +msgid "DEPENDENCIES" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:921 -msgid "" -"Causes fast-import to print the entire `progress` line unmodified to its " -"standard output channel (file descriptor 1) when the command is processed " -"from the input stream. The command otherwise has no impact on the current " -"import, or on any of fast-import's internal state." +#: en/git-cvsserver.txt:430 +msgid "'git-cvsserver' depends on DBD::SQLite." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:925 +#. type: Title = +#: en/git-daemon.txt:2 #, no-wrap -msgid "" -"\t'progress' SP <any> LF\n" -"\tLF?\n" +msgid "git-daemon(1)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:931 -msgid "" -"The `<any>` part of the command may contain any sequence of bytes that does " -"not contain `LF`. The `LF` after the command is optional. Callers may wish " -"to process the output through a tool such as sed to remove the leading part " -"of the line, for example:" +#: en/git-daemon.txt:7 +msgid "git-daemon - A really simple server for Git repositories" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:934 +#. type: Plain text +#: en/git-daemon.txt:25 #, no-wrap -msgid "\tfrontend | git fast-import | sed 's/^progress //'\n" +msgid "" +"'git daemon' [--verbose] [--syslog] [--export-all]\n" +"\t [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>]\n" +"\t [--strict-paths] [--base-path=<path>] [--base-path-relaxed]\n" +"\t [--user-path | --user-path=<path>]\n" +"\t [--interpolated-path=<pathtemplate>]\n" +"\t [--reuseaddr] [--detach] [--pid-file=<file>]\n" +"\t [--enable=<service>] [--disable=<service>]\n" +"\t [--allow-override=<service>] [--forbid-override=<service>]\n" +"\t [--access-hook=<path>] [--[no-]informative-errors]\n" +"\t [--inetd |\n" +"\t [--listen=<host_or_ipaddr>] [--port=<n>]\n" +"\t [--user=<user> [--group=<group>]]]\n" +"\t [--log-destination=(stderr|syslog|none)]\n" +"\t [<directory>...]\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:939 +#: en/git-daemon.txt:31 msgid "" -"Placing a `progress` command immediately after a `checkpoint` will inform " -"the reader when the `checkpoint` has been completed and it can safely access " -"the refs that fast-import updated." +"A really simple TCP Git daemon that normally listens on port " +"\"DEFAULT_GIT_PORT\" aka 9418. It waits for a connection asking for a " +"service, and will serve that service if it is enabled." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:947 +#: en/git-daemon.txt:37 msgid "" -"Causes fast-import to print the SHA-1 corresponding to a mark to stdout or " -"to the file descriptor previously arranged with the `--cat-blob-fd` " -"argument. The command otherwise has no impact on the current import; its " -"purpose is to retrieve SHA-1s that later commits might want to refer to in " -"their commit messages." +"It verifies that the directory has the magic file \"git-daemon-export-ok\", " +"and it will refuse to export any Git directory that hasn't explicitly been " +"marked for export this way (unless the `--export-all` parameter is " +"specified). If you pass some directory paths as 'git daemon' arguments, you " +"can further restrict the offers to a whitelist comprising of those." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:950 -#, no-wrap -msgid "\t'get-mark' SP ':' <idnum> LF\n" +#. type: Plain text +#: en/git-daemon.txt:41 +msgid "" +"By default, only `upload-pack` service is enabled, which serves 'git fetch-" +"pack' and 'git ls-remote' clients, which are invoked from 'git fetch', 'git " +"pull', and 'git clone'." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:955 +#: en/git-daemon.txt:44 msgid "" -"This command can be used anywhere in the stream that comments are accepted. " -"In particular, the `get-mark` command can be used in the middle of a commit " -"but not in the middle of a `data` command." +"This is ideally suited for read-only updates, i.e., pulling from Git " +"repositories." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:958 en/git-fast-import.txt:988 en/git-fast-import.txt:1041 -msgid "" -"See ``Responses To Commands'' below for details about how to read this " -"output safely." +#: en/git-daemon.txt:46 +msgid "An `upload-archive` also exists to serve 'git archive'." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:966 +#: en/git-daemon.txt:54 msgid "" -"Causes fast-import to print a blob to a file descriptor previously arranged " -"with the `--cat-blob-fd` argument. The command otherwise has no impact on " -"the current import; its main purpose is to retrieve blobs that may be in " -"fast-import's memory but not accessible from the target repository." +"Match paths exactly (i.e. don't allow \"/foo/repo\" when the real path is \"/" +"foo/repo.git\" or \"/foo/repo/.git\") and don't do user-relative paths. " +"'git daemon' will refuse to start when this option is enabled and no " +"whitelist is specified." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:969 +#. type: Labeled list +#: en/git-daemon.txt:55 #, no-wrap -msgid "\t'cat-blob' SP <dataref> LF\n" +msgid "--base-path=<path>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:974 +#: en/git-daemon.txt:61 msgid "" -"The `<dataref>` can be either a mark reference (`:<idnum>`) set previously " -"or a full 40-byte SHA-1 of a Git blob, preexisting or ready to be written." +"Remap all the path requests as relative to the given path. This is sort of " +"\"Git root\" - if you run 'git daemon' with '--base-path=/srv/git' on " +"example.com, then if you later try to pull 'git://example.com/hello.git', " +"'git daemon' will interpret the path as '/srv/git/hello.git'." +msgstr "" + +#. type: Labeled list +#: en/git-daemon.txt:62 +#, no-wrap +msgid "--base-path-relaxed" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:976 -msgid "Output uses the same format as `git cat-file --batch`:" +#: en/git-daemon.txt:67 +msgid "" +"If --base-path is enabled and repo lookup fails, with this option 'git " +"daemon' will attempt to lookup without prefixing the base path. This is " +"useful for switching to --base-path usage, while still allowing the old " +"paths." msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:980 +#. type: Labeled list +#: en/git-daemon.txt:68 #, no-wrap -msgid "" -"\t<sha1> SP 'blob' SP <size> LF\n" -"\t<contents> LF\n" +msgid "--interpolated-path=<pathtemplate>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:985 +#: en/git-daemon.txt:77 msgid "" -"This command can be used anywhere in the stream that comments are accepted. " -"In particular, the `cat-blob` command can be used in the middle of a commit " -"but not in the middle of a `data` command." +"To support virtual hosting, an interpolated path template can be used to " +"dynamically construct alternate paths. The template supports %H for the " +"target hostname as supplied by the client but converted to all lowercase, " +"%CH for the canonical hostname, %IP for the server's IP address, %P for the " +"port number, and %D for the absolute path of the named repository. After " +"interpolation, the path is validated against the directory whitelist." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:996 +#: en/git-daemon.txt:82 msgid "" -"Prints information about the object at a path to a file descriptor " -"previously arranged with the `--cat-blob-fd` argument. This allows printing " -"a blob from the active commit (with `cat-blob`) or copying a blob or tree " -"from a previous commit for use in the current one (with `filemodify`)." +"Allow pulling from all directories that look like Git repositories (have the " +"'objects' and 'refs' subdirectories), even if they do not have the 'git-" +"daemon-export-ok' file." +msgstr "" + +#. type: Labeled list +#: en/git-daemon.txt:83 +#, no-wrap +msgid "--inetd" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:999 +#: en/git-daemon.txt:88 msgid "" -"The `ls` command can be used anywhere in the stream that comments are " -"accepted, including the middle of a commit." +"Have the server run as an inetd service. Implies --syslog (may be overridden " +"with `--log-destination=`). Incompatible with --detach, --port, --listen, --" +"user and --group options." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1000 +#: en/git-daemon.txt:89 #, no-wrap -msgid "Reading from the active commit" +msgid "--listen=<host_or_ipaddr>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1004 +#: en/git-daemon.txt:96 msgid "" -"This form can only be used in the middle of a `commit`. The path names a " -"directory entry within fast-import's active commit. The path must be quoted " -"in this case." +"Listen on a specific IP address or hostname. IP addresses can be either an " +"IPv4 address or an IPv6 address if supported. If IPv6 is not supported, " +"then --listen=hostname is also not supported and --listen must be given an " +"IPv4 address. Can be given more than once. Incompatible with `--inetd` " +"option." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:1007 +#. type: Labeled list +#: en/git-daemon.txt:97 #, no-wrap -msgid "\t'ls' SP <path> LF\n" +msgid "--port=<n>" +msgstr "" + +#. type: Plain text +#: en/git-daemon.txt:99 +msgid "Listen on an alternative port. Incompatible with `--inetd` option." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1009 +#: en/git-daemon.txt:100 #, no-wrap -msgid "Reading from a named tree" +msgid "--init-timeout=<n>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1015 +#: en/git-daemon.txt:104 msgid "" -"The `<dataref>` can be a mark reference (`:<idnum>`) or the full 40-byte " -"SHA-1 of a Git tag, commit, or tree object, preexisting or waiting to be " -"written. The path is relative to the top level of the tree named by " -"`<dataref>`." +"Timeout (in seconds) between the moment the connection is established and " +"the client request is received (typically a rather low value, since that " +"should be basically immediate)." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:1018 +#. type: Labeled list +#: en/git-daemon.txt:105 en/git-upload-pack.txt:31 #, no-wrap -msgid "\t'ls' SP <dataref> SP <path> LF\n" +msgid "--timeout=<n>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1021 -msgid "See `filemodify` above for a detailed description of `<path>`." +#: en/git-daemon.txt:109 +msgid "" +"Timeout (in seconds) for specific client sub-requests. This includes the " +"time it takes for the server to process the sub-request and the time spent " +"waiting for the next client's request." +msgstr "" + +#. type: Labeled list +#: en/git-daemon.txt:110 +#, no-wrap +msgid "--max-connections=<n>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1023 -msgid "Output uses the same format as `git ls-tree <tree> -- <path>`:" +#: en/git-daemon.txt:113 +msgid "" +"Maximum number of concurrent clients, defaults to 32. Set it to zero for no " +"limit." msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1026 +#. type: Labeled list +#: en/git-daemon.txt:114 #, no-wrap -msgid "\t<mode> SP ('blob' | 'tree' | 'commit') SP <dataref> HT <path> LF\n" +msgid "--syslog" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1031 -msgid "" -"The <dataref> represents the blob, tree, or commit object at <path> and can " -"be used in later 'get-mark', 'cat-blob', 'filemodify', or 'ls' commands." +#: en/git-daemon.txt:116 +msgid "Short for `--log-destination=syslog`." +msgstr "" + +#. type: Labeled list +#: en/git-daemon.txt:117 +#, no-wrap +msgid "--log-destination=<destination>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1034 +#: en/git-daemon.txt:122 msgid "" -"If there is no file or subtree at that path, 'git fast-import' will instead " -"report" +"Send log messages to the specified destination. Note that this option does " +"not imply --verbose, thus by default only error conditions will be logged. " +"The <destination> must be one of:" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1037 +#. type: Labeled list +#: en/git-daemon.txt:124 #, no-wrap -msgid "\tmissing SP <path> LF\n" +msgid "stderr" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1046 +#: en/git-daemon.txt:129 msgid "" -"Require that fast-import supports the specified feature, or abort if it does " -"not." +"Write to standard error. Note that if `--detach` is specified, the process " +"disconnects from the real standard error, making this destination " +"effectively equivalent to `none`." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:1049 +#. type: Labeled list +#: en/git-daemon.txt:129 #, no-wrap -msgid "\t'feature' SP <feature> ('=' <argument>)? LF\n" +msgid "syslog" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1052 -msgid "The <feature> part of the command may be any one of the following:" +#: en/git-daemon.txt:131 +msgid "Write to syslog, using the `git-daemon` identifier." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1053 en/git-fast-import.txt:1120 -#, no-wrap -msgid "date-format" +#: en/git-daemon.txt:133 +msgid "Disable all logging." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1054 en/git-fast-import.txt:1122 -#, no-wrap -msgid "export-marks" +#: en/git-daemon.txt:137 +msgid "" +"The default destination is `syslog` if `--inetd` or `--detach` is specified, " +"otherwise `stderr`." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1055 +#: en/git-daemon.txt:138 #, no-wrap -msgid "relative-marks" +msgid "--user-path" msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1056 -#, no-wrap -msgid "no-relative-marks" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1057 en/git-fast-import.txt:1124 +#: en/git-daemon.txt:139 #, no-wrap -msgid "force" +msgid "--user-path=<path>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1061 +#: en/git-daemon.txt:147 msgid "" -"Act as though the corresponding command-line option with a leading `--` was " -"passed on the command line (see OPTIONS, above)." +"Allow {tilde}user notation to be used in requests. When specified with no " +"parameter, requests to git://host/{tilde}alice/foo is taken as a request to " +"access 'foo' repository in the home directory of user `alice`. If `--user-" +"path=path` is specified, the same request is taken as a request to access " +"`path/foo` repository in the home directory of user `alice`." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1062 en/git-fast-import.txt:1121 -#, no-wrap -msgid "import-marks" +#: en/git-daemon.txt:150 +msgid "Log details about the incoming connections and requested files." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1063 +#: en/git-daemon.txt:151 #, no-wrap -msgid "import-marks-if-exists" +msgid "--reuseaddr" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1071 +#: en/git-daemon.txt:155 msgid "" -"Like --import-marks except in two respects: first, only one \"feature " -"import-marks\" or \"feature import-marks-if-exists\" command is allowed per " -"stream; second, an --import-marks= or --import-marks-if-exists command-line " -"option overrides any of these \"feature\" commands in the stream; third, " -"\"feature import-marks-if-exists\" like a corresponding command-line option " -"silently skips a nonexistent file." +"Use SO_REUSEADDR when binding the listening socket. This allows the server " +"to restart without waiting for old connections to time out." +msgstr "" + +#. type: Plain text +#: en/git-daemon.txt:158 +msgid "Detach from the shell. Implies --syslog." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1072 +#: en/git-daemon.txt:159 #, no-wrap -msgid "get-mark" +msgid "--pid-file=<file>" +msgstr "" + +#. type: Plain text +#: en/git-daemon.txt:162 +msgid "" +"Save the process id in 'file'. Ignored when the daemon is run under `--" +"inetd`." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1073 +#: en/git-daemon.txt:163 #, no-wrap -msgid "cat-blob" +msgid "--user=<user>" msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1074 +#: en/git-daemon.txt:164 #, no-wrap -msgid "ls" +msgid "--group=<group>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1082 +#: en/git-daemon.txt:170 msgid "" -"Require that the backend support the 'get-mark', 'cat-blob', or 'ls' command " -"respectively. Versions of fast-import not supporting the specified command " -"will exit with a message indicating so. This lets the import error out " -"early with a clear message, rather than wasting time on the early part of an " -"import before the unsupported command is detected." +"Change daemon's uid and gid before entering the service loop. When only `--" +"user` is given without `--group`, the primary group ID for the user is " +"used. The values of the option are given to `getpwnam(3)` and `getgrnam(3)` " +"and numeric IDs are not supported." msgstr "" -#. type: Labeled list -#: en/git-fast-import.txt:1083 -#, no-wrap -msgid "notes" +#. type: Plain text +#: en/git-daemon.txt:174 +msgid "" +"Giving these options is an error when used with `--inetd`; use the facility " +"of inet daemon to achieve the same before spawning 'git daemon' if needed." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1088 +#: en/git-daemon.txt:181 msgid "" -"Require that the backend support the 'notemodify' (N) subcommand to the " -"'commit' command. Versions of fast-import not supporting notes will exit " -"with a message indicating so." +"Like many programs that switch user id, the daemon does not reset " +"environment variables such as `$HOME` when it runs git programs, e.g. " +"`upload-pack` and `receive-pack`. When using this option, you may also want " +"to set and export `HOME` to point at the home directory of `<user>` before " +"starting the daemon, and make sure any Git configuration files in that " +"directory are readable by `<user>`." msgstr "" #. type: Labeled list -#: en/git-fast-import.txt:1089 +#: en/git-daemon.txt:182 #, no-wrap -msgid "done" +msgid "--enable=<service>" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1096 -msgid "" -"Error out if the stream ends without a 'done' command. Without this " -"feature, errors causing the frontend to end abruptly at a convenient point " -"in the stream can go undetected. This may occur, for example, if an import " -"front end dies in mid-operation without emitting SIGTERM or SIGKILL at its " -"subordinate git fast-import instance." +#. type: Labeled list +#: en/git-daemon.txt:183 +#, no-wrap +msgid "--disable=<service>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1103 +#: en/git-daemon.txt:189 msgid "" -"Processes the specified option so that git fast-import behaves in a way that " -"suits the frontend's needs. Note that options specified by the frontend are " -"overridden by any options the user may specify to git fast-import itself." +"Enable/disable the service site-wide per default. Note that a service " +"disabled site-wide can still be enabled per repository if it is marked " +"overridable and the repository enables the service with a configuration item." msgstr "" -#. type: delimited block . -#: en/git-fast-import.txt:1106 +#. type: Labeled list +#: en/git-daemon.txt:190 #, no-wrap -msgid " 'option' SP <option> LF\n" +msgid "--allow-override=<service>" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1111 -msgid "" -"The `<option>` part of the command may contain any of the options listed in " -"the OPTIONS section that do not change import semantics, without the leading " -"`--` and is treated in the same way." +#. type: Labeled list +#: en/git-daemon.txt:191 +#, no-wrap +msgid "--forbid-override=<service>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1115 +#: en/git-daemon.txt:195 msgid "" -"Option commands must be the first commands on the input (not counting " -"feature commands), to give an option command after any non-option command is " -"an error." +"Allow/forbid overriding the site-wide default with per repository " +"configuration. By default, all the services may be overridden." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1118 -msgid "" -"The following command-line options change import semantics and may therefore " -"not be passed as option:" +#. type: Labeled list +#: en/git-daemon.txt:196 +#, no-wrap +msgid "--[no-]informative-errors" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1123 -msgid "cat-blob-fd" +#: en/git-daemon.txt:204 +msgid "" +"When informative errors are turned on, git-daemon will report more verbose " +"errors to the client, differentiating conditions like \"no such repository\" " +"from \"repository not exported\". This is more convenient for clients, but " +"may leak information about the existence of unexported repositories. When " +"informative errors are not enabled, all errors report \"access denied\" to " +"the client. The default is --no-informative-errors." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1129 -msgid "" -"If the `done` feature is not in use, treated as if EOF was read. This can " -"be used to tell fast-import to finish early." +#. type: Labeled list +#: en/git-daemon.txt:205 +#, no-wrap +msgid "--access-hook=<path>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1133 +#: en/git-daemon.txt:215 msgid "" -"If the `--done` command-line option or `feature done` command is in use, the " -"`done` command is mandatory and marks the end of the stream." -msgstr "" - -#. type: Title - -#: en/git-fast-import.txt:1135 -#, no-wrap -msgid "Responses To Commands" +"Every time a client connects, first run an external command specified by the " +"<path> with service name (e.g. \"upload-pack\"), path to the repository, " +"hostname (%H), canonical hostname (%CH), IP address (%IP), and TCP port (%P) " +"as its command-line arguments. The external command can decide to decline " +"the service by exiting with a non-zero status (or to allow it by exiting " +"with a zero status). It can also look at the $REMOTE_ADDR and `" +"$REMOTE_PORT` environment variables to learn about the requestor when making " +"this decision." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1142 +#: en/git-daemon.txt:219 msgid "" -"New objects written by fast-import are not available immediately. Most " -"fast-import commands have no visible effect until the next checkpoint (or " -"completion). The frontend can send commands to fill fast-import's input " -"pipe without worrying about how quickly they will take effect, which " -"improves performance by simplifying scheduling." +"The external command can optionally write a single line to its standard " +"output to be sent to the requestor as an error message when it declines the " +"service." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1149 +#: en/git-daemon.txt:224 msgid "" -"For some frontends, though, it is useful to be able to read back data from " -"the current repository as it is being updated (for example when the source " -"material describes objects in terms of patches to be applied to previously " -"imported objects). This can be accomplished by connecting the frontend and " -"fast-import via bidirectional pipes:" +"A directory to add to the whitelist of allowed directories. Unless --strict-" +"paths is specified this will also include subdirectories of each named " +"directory." msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1154 +#. type: Title - +#: en/git-daemon.txt:226 en/git-http-backend.txt:33 #, no-wrap -msgid "" -"\tmkfifo fast-import-output\n" -"\tfrontend <fast-import-output |\n" -"\tgit fast-import >fast-import-output\n" +msgid "SERVICES" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1158 +#: en/git-daemon.txt:234 msgid "" -"A frontend set up this way can use `progress`, `get-mark`, `ls`, and " -"`cat-blob` commands to read information from the import in progress." +"These services can be globally enabled/disabled using the command-line " +"options of this command. If finer-grained control is desired (e.g. to allow " +"'git archive' to be run against only in a few selected repositories the " +"daemon serves), the per-repository configuration file can be used to enable " +"or disable them." +msgstr "" + +#. type: Labeled list +#: en/git-daemon.txt:235 +#, no-wrap +msgid "upload-pack" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1162 +#: en/git-daemon.txt:240 msgid "" -"To avoid deadlock, such frontends must completely consume any pending output " -"from `progress`, `ls`, `get-mark`, and `cat-blob` before performing writes " -"to fast-import that might block." +"This serves 'git fetch-pack' and 'git ls-remote' clients. It is enabled by " +"default, but a repository can disable it by setting `daemon.uploadpack` " +"configuration item to `false`." msgstr "" -#. type: Title - -#: en/git-fast-import.txt:1164 +#. type: Labeled list +#: en/git-daemon.txt:241 #, no-wrap -msgid "Crash Reports" +msgid "upload-archive" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1170 +#: en/git-daemon.txt:245 msgid "" -"If fast-import is supplied invalid input it will terminate with a non-zero " -"exit status and create a crash report in the top level of the Git repository " -"it was importing into. Crash reports contain a snapshot of the internal " -"fast-import state as well as the most recent commands that lead up to the " -"crash." +"This serves 'git archive --remote'. It is disabled by default, but a " +"repository can enable it by setting `daemon.uploadarch` configuration item " +"to `true`." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1177 -msgid "" -"All recent commands (including stream comments, file changes and progress " -"commands) are shown in the command history within the crash report, but raw " -"file data and commit messages are excluded from the crash report. This " -"exclusion saves space within the report file and reduces the amount of " -"buffering that fast-import must perform during execution." +#. type: Labeled list +#: en/git-daemon.txt:246 +#, no-wrap +msgid "receive-pack" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1185 +#: en/git-daemon.txt:255 msgid "" -"After writing a crash report fast-import will close the current packfile and " -"export the marks table. This allows the frontend developer to inspect the " -"repository state and resume the import from the point where it crashed. The " -"modified branches and tags are not updated during a crash, as the import did " -"not complete successfully. Branch and tag information can be found in the " -"crash report and must be applied manually if the update is needed." +"This serves 'git send-pack' clients, allowing anonymous push. It is " +"disabled by default, as there is _no_ authentication in the protocol (in " +"other words, anybody can push anything into the repository, including " +"removal of refs). This is solely meant for a closed LAN setting where " +"everybody is friendly. This service can be enabled by setting `daemon." +"receivepack` configuration item to `true`." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1187 -msgid "An example crash:" +#. type: Labeled list +#: en/git-daemon.txt:258 +#, no-wrap +msgid "We assume the following in /etc/services" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1203 +#. type: delimited block - +#: en/git-daemon.txt:263 #, no-wrap msgid "" -"\t$ cat >in <<END_OF_INPUT\n" -"\t# my very first test commit\n" -"\tcommit refs/heads/master\n" -"\tcommitter Shawn O. Pearce <spearce> 19283 -0400\n" -"\t# who is that guy anyway?\n" -"\tdata <<EOF\n" -"\tthis is my commit\n" -"\tEOF\n" -"\tM 644 inline .gitignore\n" -"\tdata <<EOF\n" -"\t.gitignore\n" -"\tEOF\n" -"\tM 777 inline bob\n" -"\tEND_OF_INPUT\n" +"$ grep 9418 /etc/services\n" +"git\t\t9418/tcp\t\t# Git Version Control System\n" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1207 +#. type: Labeled list +#: en/git-daemon.txt:265 #, no-wrap +msgid "'git daemon' as inetd server" +msgstr "" + +#. type: Plain text +#: en/git-daemon.txt:270 msgid "" -"\t$ git fast-import <in\n" -"\tfatal: Corrupt mode: M 777 inline bob\n" -"\tfast-import: dumping crash report to .git/fast_import_crash_8434\n" +"To set up 'git daemon' as an inetd service that handles any repository under " +"the whitelisted set of directories, /pub/foo and /pub/bar, place an entry " +"like the following into /etc/inetd all on one line:" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1213 +#. type: delimited block - +#: en/git-daemon.txt:275 #, no-wrap msgid "" -"\t$ cat .git/fast_import_crash_8434\n" -"\tfast-import crash report:\n" -"\t fast-import process: 8434\n" -"\t parent process : 1391\n" -"\t at Sat Sep 1 00:58:12 2007\n" +"\tgit stream tcp nowait nobody /usr/bin/git\n" +"\t\tgit daemon --inetd --verbose --export-all\n" +"\t\t/pub/foo /pub/bar\n" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1215 +#. type: Labeled list +#: en/git-daemon.txt:278 #, no-wrap -msgid "\tfatal: Corrupt mode: M 777 inline bob\n" +msgid "'git daemon' as inetd server for virtual hosts" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1225 -#, no-wrap +#. type: Plain text +#: en/git-daemon.txt:283 msgid "" -"\tMost Recent Commands Before Crash\n" -"\t---------------------------------\n" -"\t # my very first test commit\n" -"\t commit refs/heads/master\n" -"\t committer Shawn O. Pearce <spearce> 19283 -0400\n" -"\t # who is that guy anyway?\n" -"\t data <<EOF\n" -"\t M 644 inline .gitignore\n" -"\t data <<EOF\n" +"To set up 'git daemon' as an inetd service that handles repositories for " +"different virtual hosts, `www.example.com` and `www.example.org`, place an " +"entry like the following into `/etc/inetd` all on one line:" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1226 +#. type: delimited block - +#: en/git-daemon.txt:291 #, no-wrap -msgid "M 777 inline bob\n" +msgid "" +"\tgit stream tcp nowait nobody /usr/bin/git\n" +"\t\tgit daemon --inetd --verbose --export-all\n" +"\t\t--interpolated-path=/pub/%H%D\n" +"\t\t/pub/www.example.org/software\n" +"\t\t/pub/www.example.com/software\n" +"\t\t/software\n" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1229 -#, no-wrap +#. type: Plain text +#: en/git-daemon.txt:299 msgid "" -"Active Branch LRU\n" -"-----------------\n" +"In this example, the root-level directory `/pub` will contain a subdirectory " +"for each virtual host name supported. Further, both hosts advertise " +"repositories simply as `git://www.example.com/software/repo.git`. For " +"pre-1.4.0 clients, a symlink from `/software` into the appropriate default " +"repository could be made as well." msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1230 +#. type: Labeled list +#: en/git-daemon.txt:301 #, no-wrap -msgid "active_branches = 1 cur, 5 max\n" +msgid "'git daemon' as regular daemon for virtual hosts" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1233 -msgid "pos clock name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +#. type: Plain text +#: en/git-daemon.txt:305 +msgid "" +"To set up 'git daemon' as a regular, non-inetd service that handles " +"repositories for multiple virtual hosts based on their IP addresses, start " +"the daemon like this:" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1234 -msgid "0 refs/heads/master" +#. type: delimited block - +#: en/git-daemon.txt:311 +#, no-wrap +msgid "" +"\tgit daemon --verbose --export-all\n" +"\t\t--interpolated-path=/pub/%IP/%D\n" +"\t\t/pub/192.168.1.200/software\n" +"\t\t/pub/10.10.220.23/software\n" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1238 -#, no-wrap +#. type: Plain text +#: en/git-daemon.txt:317 msgid "" -"Inactive Branches\n" -"-----------------\n" -"refs/heads/master:\n" +"In this example, the root-level directory `/pub` will contain a subdirectory " +"for each virtual host IP address supported. Repositories can still be " +"accessed by hostname though, assuming they correspond to these IP addresses." msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1244 +#. type: Labeled list +#: en/git-daemon.txt:318 #, no-wrap -msgid "" -"status : active loaded dirty\n" -"tip commit : 0000000000000000000000000000000000000000\n" -"old tree : 0000000000000000000000000000000000000000\n" -"cur tree : 0000000000000000000000000000000000000000\n" -"commit clock: 0\n" -"last pack :\n" +msgid "selectively enable/disable services per repository" msgstr "" -#. type: delimited block = -#: en/git-fast-import.txt:1248 -msgid "------------------- END OF CRASH REPORT" +#. type: Plain text +#: en/git-daemon.txt:323 +msgid "" +"To enable 'git archive --remote' and disable 'git fetch' against a " +"repository, have the following in the configuration file in the repository " +"(that is the file 'config' next to `HEAD`, 'refs' and 'objects')." msgstr "" -#. type: Title - -#: en/git-fast-import.txt:1251 +#. type: delimited block - +#: en/git-daemon.txt:328 #, no-wrap -msgid "Tips and Tricks" +msgid "" +"\t[daemon]\n" +"\t\tuploadpack = false\n" +"\t\tuploadarch = true\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1254 +#: en/git-daemon.txt:337 msgid "" -"The following tips and tricks have been collected from various users of " -"fast-import, and are offered here as suggestions." +"'git daemon' will set REMOTE_ADDR to the IP address of the client that " +"connected to it, if the IP address is available. REMOTE_ADDR will be " +"available in the environment of hooks called when services are performed." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1256 +#. type: Title = +#: en/git-describe.txt:2 #, no-wrap -msgid "Use One Mark Per Commit" +msgid "git-describe(1)" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1264 +#: en/git-describe.txt:7 msgid "" -"When doing a repository conversion, use a unique mark per commit (`mark " -":<n>`) and supply the --export-marks option on the command line. " -"fast-import will dump a file which lists every mark and the Git object SHA-1 " -"that corresponds to it. If the frontend can tie the marks back to the " -"source repository, it is easy to verify the accuracy and completeness of the " -"import by comparing each Git commit to the corresponding source revision." +"git-describe - Give an object a human readable name based on an available ref" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1268 +#: en/git-describe.txt:14 +#, no-wrap msgid "" -"Coming from a system such as Perforce or Subversion this should be quite " -"simple, as the fast-import mark can also be the Perforce changeset number or " -"the Subversion revision number." +"'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]\n" +"'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]\n" +"'git describe' <blob>\n" msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1270 -#, no-wrap -msgid "Freely Skip Around Branches" +#. type: Plain text +#: en/git-describe.txt:24 +msgid "" +"The command finds the most recent tag that is reachable from a commit. If " +"the tag points to the commit, then only the tag is shown. Otherwise, it " +"suffixes the tag name with the number of additional commits on top of the " +"tagged object and the abbreviated object name of the most recent commit. The " +"result is a \"human-readable\" object name which can also be used to " +"identify the commit to other git commands." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1275 +#: en/git-describe.txt:28 msgid "" -"Don't bother trying to optimize the frontend to stick to one branch at a " -"time during an import. Although doing so might be slightly faster for " -"fast-import, it tends to increase the complexity of the frontend code " -"considerably." +"By default (without --all or --tags) `git describe` only shows annotated " +"tags. For more information about creating annotated tags see the -a and -s " +"options to linkgit:git-tag[1]." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1279 +#: en/git-describe.txt:34 msgid "" -"The branch LRU builtin to fast-import tends to behave very well, and the " -"cost of activating an inactive branch is so low that bouncing around between " -"branches has virtually no impact on import performance." +"If the given object refers to a blob, it will be described as `<commit-ish>:" +"<path>`, such that the blob can be found at `<path>` in the `<commit-ish>`, " +"which itself describes the first commit in which this blob occurs in a " +"reverse revision walk from HEAD." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1281 +#. type: Labeled list +#: en/git-describe.txt:37 #, no-wrap -msgid "Handling Renames" +msgid "<commit-ish>..." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1286 -msgid "" -"When importing a renamed file or directory, simply delete the old name(s) " -"and modify the new name(s) during the corresponding commit. Git performs " -"rename detection after-the-fact, rather than explicitly during a commit." +#: en/git-describe.txt:39 +msgid "Commit-ish object names to describe. Defaults to HEAD if omitted." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1288 +#. type: Labeled list +#: en/git-describe.txt:40 #, no-wrap -msgid "Use Tag Fixup Branches" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1292 -msgid "" -"Some other SCM systems let the user create a tag from multiple files which " -"are not from the same commit/changeset. Or to create tags which are a " -"subset of the files available in the repository." +msgid "--dirty[=<mark>]" msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1299 -msgid "" -"Importing these tags as-is in Git is impossible without making at least one " -"commit which ``fixes up'' the files to match the content of the tag. Use " -"fast-import's `reset` command to reset a dummy branch outside of your normal " -"branch space to the base commit for the tag, then commit one or more file " -"fixup commits, and finally tag the dummy branch." +#. type: Labeled list +#: en/git-describe.txt:41 +#, no-wrap +msgid "--broken[=<mark>]" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1305 +#: en/git-describe.txt:49 msgid "" -"For example since all normal branches are stored under `refs/heads/` name " -"the tag fixup branch `TAG_FIXUP`. This way it is impossible for the fixup " -"branch used by the importer to have namespace conflicts with real branches " -"imported from the source (the name `TAG_FIXUP` is not " -"`refs/heads/TAG_FIXUP`)." +"Describe the state of the working tree. When the working tree matches HEAD, " +"the output is the same as \"git describe HEAD\". If the working tree has " +"local modification \"-dirty\" is appended to it. If a repository is corrupt " +"and Git cannot determine if there is local modification, Git will error out, " +"unless `--broken' is given, which appends the suffix \"-broken\" instead." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1311 +#: en/git-describe.txt:54 msgid "" -"When committing fixups, consider using `merge` to connect the commit(s) " -"which are supplying file revisions to the fixup branch. Doing so will allow " -"tools such as 'git blame' to track through the real commit history and " -"properly annotate the source files." +"Instead of using only the annotated tags, use any ref found in `refs/` " +"namespace. This option enables matching any known branch, remote-tracking " +"branch, or lightweight tag." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1314 +#: en/git-describe.txt:59 msgid "" -"After fast-import terminates the frontend will need to do `rm " -".git/TAG_FIXUP` to remove the dummy branch." +"Instead of using only the annotated tags, use any tag found in `refs/tags` " +"namespace. This option enables matching a lightweight (non-annotated) tag." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1316 +#. type: Labeled list +#: en/git-describe.txt:60 #, no-wrap -msgid "Import Now, Repack Later" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1320 -msgid "" -"As soon as fast-import completes the Git repository is completely valid and " -"ready for use. Typically this takes only a very short time, even for " -"considerably large projects (100,000+ commits)." +msgid "--contains" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1327 +#: en/git-describe.txt:64 msgid "" -"However repacking the repository is necessary to improve data locality and " -"access performance. It can also take hours on extremely large projects " -"(especially if -f and a large --window parameter is used). Since repacking " -"is safe to run alongside readers and writers, run the repack in the " -"background and let it finish when it finishes. There is no reason to wait " -"to explore your new Git project!" +"Instead of finding the tag that predates the commit, find the tag that comes " +"after the commit, and thus contains it. Automatically implies --tags." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1332 +#: en/git-describe.txt:70 msgid "" -"If you choose to wait for the repack, don't try to run benchmarks or " -"performance tests until repacking is completed. fast-import outputs " -"suboptimal packfiles that are simply never seen in real use situations." +"Instead of using the default 7 hexadecimal digits as the abbreviated object " +"name, use <n> digits, or as many digits as needed to form a unique object " +"name. An <n> of 0 will suppress long format, only showing the closest tag." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1334 +#. type: Labeled list +#: en/git-describe.txt:71 #, no-wrap -msgid "Repacking Historical Data" +msgid "--candidates=<n>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1341 +#: en/git-describe.txt:77 msgid "" -"If you are repacking very old imported data (e.g. older than the last year), " -"consider expending some extra CPU time and supplying --window=50 (or higher) " -"when you run 'git repack'. This will take longer, but will also produce a " -"smaller packfile. You only need to expend the effort once, and everyone " -"using your project will benefit from the smaller repository." +"Instead of considering only the 10 most recent tags as candidates to " +"describe the input commit-ish consider up to <n> candidates. Increasing <n> " +"above 10 will take slightly longer but may produce a more accurate result. " +"An <n> of 0 will cause only exact matches to be output." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1343 +#. type: Labeled list +#: en/git-describe.txt:78 #, no-wrap -msgid "Include Some Progress Messages" +msgid "--exact-match" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1350 +#: en/git-describe.txt:81 msgid "" -"Every once in a while have your frontend emit a `progress` message to " -"fast-import. The contents of the messages are entirely free-form, so one " -"suggestion would be to output the current month and year each time the " -"current commit date moves into the next month. Your users will feel better " -"knowing how much of the data stream has been processed." +"Only output exact matches (a tag directly references the supplied commit). " +"This is a synonym for --candidates=0." msgstr "" -#. type: Title - -#: en/git-fast-import.txt:1353 +#. type: Labeled list +#: en/git-describe.txt:82 en/git-ls-files.txt:157 #, no-wrap -msgid "Packfile Optimization" +msgid "--debug" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1359 +#: en/git-describe.txt:86 msgid "" -"When packing a blob fast-import always attempts to deltify against the last " -"blob written. Unless specifically arranged for by the frontend, this will " -"probably not be a prior version of the same file, so the generated delta " -"will not be the smallest possible. The resulting packfile will be " -"compressed, but will not be optimal." +"Verbosely display information about the searching strategy being employed to " +"standard error. The tag name will still be printed to standard out." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1367 +#: en/git-describe.txt:95 msgid "" -"Frontends which have efficient access to all revisions of a single file (for " -"example reading an RCS/CVS ,v file) can choose to supply all revisions of " -"that file as a sequence of consecutive `blob` commands. This allows " -"fast-import to deltify the different file revisions against each other, " -"saving space in the final packfile. Marks can be used to later identify " -"individual file revisions during a sequence of `commit` commands." +"Always output the long format (the tag, the number of commits and the " +"abbreviated commit name) even when it matches a tag. This is useful when " +"you want to see parts of the commit object name in \"describe\" output, even " +"when the commit in question happens to be a tagged version. Instead of just " +"emitting the tag name, it will describe such a commit as v1.2-0-gdeadbee " +"(0th commit since tag v1.2 that points at object deadbee....)." msgstr "" -#. type: Plain text -#: en/git-fast-import.txt:1374 -msgid "" -"The packfile(s) created by fast-import do not encourage good disk access " -"patterns. This is caused by fast-import writing the data in the order it is " -"received on standard input, while Git typically organizes data within " -"packfiles to make the most recent (current tip) data appear before " -"historical data. Git also clusters commits together, speeding up revision " -"traversal through better cache locality." +#. type: Labeled list +#: en/git-describe.txt:96 +#, no-wrap +msgid "--match <pattern>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1381 +#: en/git-describe.txt:105 msgid "" -"For this reason it is strongly recommended that users repack the repository " -"with `git repack -a -d` after fast-import completes, allowing Git to " -"reorganize the packfiles for faster data access. If blob deltas are " -"suboptimal (see above) then also adding the `-f` option to force " -"recomputation of all deltas can significantly reduce the final packfile size " -"(30-50% smaller can be quite typical)." +"Only consider tags matching the given `glob(7)` pattern, excluding the " +"\"refs/tags/\" prefix. If used with `--all`, it also considers local " +"branches and remote-tracking references matching the pattern, excluding " +"respectively \"refs/heads/\" and \"refs/remotes/\" prefix; references of " +"other types are never considered. If given multiple times, a list of " +"patterns will be accumulated, and tags matching any of the patterns will be " +"considered. Use `--no-match` to clear and reset the list of patterns." msgstr "" -#. type: Title - -#: en/git-fast-import.txt:1384 +#. type: Labeled list +#: en/git-describe.txt:106 #, no-wrap -msgid "Memory Utilization" +msgid "--exclude <pattern>" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1390 +#: en/git-describe.txt:117 msgid "" -"There are a number of factors which affect how much memory fast-import " -"requires to perform an import. Like critical sections of core Git, " -"fast-import uses its own memory allocators to amortize any overheads " -"associated with malloc. In practice fast-import tends to amortize any " -"malloc overheads to 0, due to its use of large block allocations." +"Do not consider tags matching the given `glob(7)` pattern, excluding the " +"\"refs/tags/\" prefix. If used with `--all`, it also does not consider local " +"branches and remote-tracking references matching the pattern, excluding " +"respectively \"refs/heads/\" and \"refs/remotes/\" prefix; references of " +"other types are never considered. If given multiple times, a list of " +"patterns will be accumulated and tags matching any of the patterns will be " +"excluded. When combined with --match a tag will be considered when it " +"matches at least one --match pattern and does not match any of the --exclude " +"patterns. Use `--no-exclude` to clear and reset the list of patterns." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1392 +#. type: Labeled list +#: en/git-describe.txt:118 en/git-diff-tree.txt:108 en/git-name-rev.txt:61 #, no-wrap -msgid "per object" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1399 -msgid "" -"fast-import maintains an in-memory structure for every object written in " -"this execution. On a 32 bit system the structure is 32 bytes, on a 64 bit " -"system the structure is 40 bytes (due to the larger pointer sizes). Objects " -"in the table are not deallocated until fast-import terminates. Importing 2 " -"million objects on a 32 bit system will require approximately 64 MiB of " -"memory." +msgid "--always" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1405 -msgid "" -"The object table is actually a hashtable keyed on the object name (the " -"unique SHA-1). This storage configuration allows fast-import to reuse an " -"existing or already written object and avoid writing duplicates to the " -"output packfile. Duplicate blobs are surprisingly common in an import, " -"typically due to branch merges in the source." +#: en/git-describe.txt:120 en/git-name-rev.txt:63 +msgid "Show uniquely abbreviated commit object as fallback." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1407 +#. type: Labeled list +#: en/git-describe.txt:121 en/rev-list-options.txt:124 #, no-wrap -msgid "per mark" +msgid "--first-parent" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1413 +#: en/git-describe.txt:125 msgid "" -"Marks are stored in a sparse array, using 1 pointer (4 bytes or 8 bytes, " -"depending on pointer size) per mark. Although the array is sparse, " -"frontends are still strongly encouraged to use marks between 1 and n, where " -"n is the total number of marks required for this import." +"Follow only the first parent commit upon seeing a merge commit. This is " +"useful when you wish to not match tags on branches merged in the history of " +"the target commit." msgstr "" -#. type: Title ~ -#: en/git-fast-import.txt:1415 -#, no-wrap -msgid "per branch" +#. type: Plain text +#: en/git-describe.txt:130 +msgid "With something like git.git current tree, I get:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1418 +#: en/git-describe.txt:133 +#, no-wrap msgid "" -"Branches are classified as active and inactive. The memory usage of the two " -"classes is significantly different." +"\t[torvalds@g5 git]$ git describe parent\n" +"\tv1.0.4-14-g2414721\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1424 +#: en/git-describe.txt:139 msgid "" -"Inactive branches are stored in a structure which uses 96 or 120 bytes (32 " -"bit or 64 bit systems, respectively), plus the length of the branch name " -"(typically under 200 bytes), per branch. fast-import will easily handle as " -"many as 10,000 inactive branches in under 2 MiB of memory." +"i.e. the current head of my \"parent\" branch is based on v1.0.4, but since " +"it has a few commits on top of that, describe has added the number of " +"additional commits (\"14\") and an abbreviated object name for the commit " +"itself (\"2414721\") at the end." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1431 +#: en/git-describe.txt:147 msgid "" -"Active branches have the same overhead as inactive branches, but also " -"contain copies of every tree that has been recently modified on that " -"branch. If subtree `include` has not been modified since the branch became " -"active, its contents will not be loaded into memory, but if subtree `src` " -"has been modified by a commit since the branch became active, then its " -"contents will be loaded in memory." +"The number of additional commits is the number of commits which would be " +"displayed by \"git log v1.0.4..parent\". The hash suffix is \"-g\" + 7-char " +"abbreviation for the tip commit of parent (which was " +"`2414721b194453f058079d897d13c4e377f92dc6`). The \"g\" prefix stands for " +"\"git\" and is used to allow describing the version of a software depending " +"on the SCM the software is managed with. This is useful in an environment " +"where people may use different SCMs." msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1435 -msgid "" -"As active branches store metadata about the files contained on that branch, " -"their in-memory storage size can grow to a considerable size (see below)." +#: en/git-describe.txt:149 +msgid "Doing a 'git describe' on a tag-name will just show the tag name:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1440 -msgid "" -"fast-import automatically moves active branches to inactive status based on " -"a simple least-recently-used algorithm. The LRU chain is updated on each " -"`commit` command. The maximum number of active branches can be increased or " -"decreased on the command line with --active-branches=." -msgstr "" - -#. type: Title ~ -#: en/git-fast-import.txt:1442 +#: en/git-describe.txt:152 #, no-wrap -msgid "per active tree" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1447 msgid "" -"Trees (aka directories) use just 12 bytes of memory on top of the memory " -"required for their entries (see ``per active file'' below). The cost of a " -"tree is virtually 0, as its overhead amortizes out over the individual file " -"entries." -msgstr "" - -#. type: Title ~ -#: en/git-fast-import.txt:1449 -#, no-wrap -msgid "per active file entry" +"\t[torvalds@g5 git]$ git describe v1.0.4\n" +"\tv1.0.4\n" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1455 +#: en/git-describe.txt:155 msgid "" -"Files (and pointers to subtrees) within active trees require 52 or 64 bytes " -"(32/64 bit platforms) per entry. To conserve space, file and tree names are " -"pooled in a common string table, allowing the filename ``Makefile'' to use " -"just 16 bytes (after including the string header overhead) no matter how " -"many times it occurs within the project." +"With --all, the command can use branch heads as references, so the output " +"shows the reference path as well:" msgstr "" #. type: Plain text -#: en/git-fast-import.txt:1460 -msgid "" -"The active branch LRU, when coupled with the filename string pool and lazy " -"loading of subtrees, allows fast-import to efficiently import projects with " -"2,000+ branches and 45,114+ files in a very limited memory footprint (less " -"than 2.7 MiB per active branch)." -msgstr "" - -#. type: Title - -#: en/git-fast-import.txt:1462 +#: en/git-describe.txt:158 #, no-wrap -msgid "Signals" -msgstr "" - -#. type: Plain text -#: en/git-fast-import.txt:1468 msgid "" -"Sending *SIGUSR1* to the 'git fast-import' process ends the current packfile " -"early, simulating a `checkpoint` command. The impatient operator can use " -"this facility to peek at the objects and refs from an import in progress, at " -"the cost of some added running time and worse compression." -msgstr "" - -#. type: Labeled list -#: en/git-fast-import.txt:1472 en/cmds-ancillarymanipulators.txt:4 -#, no-wrap -msgid "linkgit:git-fast-export[1]" -msgstr "" - -#. type: Title = -#: en/git-fetch-pack.txt:2 -#, no-wrap -msgid "git-fetch-pack(1)" -msgstr "" - -#. type: Plain text -#: en/git-fetch-pack.txt:7 -msgid "git-fetch-pack - Receive missing objects from another repository" +"\t[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2\n" +"\ttags/v1.0.0-21-g975b\n" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:16 +#: en/git-describe.txt:161 #, no-wrap msgid "" -"'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]\n" -"\t[--upload-pack=<git-upload-pack>]\n" -"\t[--depth=<n>] [--no-progress]\n" -"\t[-v] <repository> [<refs>...]\n" +"\t[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^\n" +"\theads/lt/describe-7-g975b\n" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:21 +#: en/git-describe.txt:164 msgid "" -"Usually you would want to use 'git fetch', which is a higher level wrapper " -"of this command, instead." +"With --abbrev set to 0, the command can be used to find the closest tagname " +"without any suffix:" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:27 +#: en/git-describe.txt:167 +#, no-wrap msgid "" -"Invokes 'git-upload-pack' on a possibly remote repository and asks it to " -"send objects missing from this repository, to update the named heads. The " -"list of commits available locally is found out by scanning the local refs/ " -"hierarchy and sent to 'git-upload-pack' running on the other end." +"\t[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2\n" +"\ttags/v1.0.0\n" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:31 +#: en/git-describe.txt:173 msgid "" -"This command degenerates to download everything to complete the asked refs " -"from the remote side when the local side does not have a common ancestor " -"commit." +"Note that the suffix you get if you type these commands today may be longer " +"than what Linus saw above when he ran these commands, as your Git repository " +"may have new commits whose object names begin with 975b that did not exist " +"back then, and \"-g975b\" suffix alone may not be sufficient to disambiguate " +"these commits." msgstr "" -#. type: Plain text -#: en/git-fetch-pack.txt:37 -msgid "Fetch all remote refs." +#. type: Title - +#: en/git-describe.txt:176 +#, no-wrap +msgid "SEARCH STRATEGY" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:43 en/git-send-pack.txt:46 +#: en/git-describe.txt:183 msgid "" -"Take the list of refs from stdin, one per line. If there are refs specified " -"on the command line in addition to this option, then the refs from stdin are " -"processed after those on the command line." +"For each commit-ish supplied, 'git describe' will first look for a tag which " +"tags exactly that commit. Annotated tags will always be preferred over " +"lightweight tags, and tags with newer dates will always be preferred over " +"tags with older dates. If an exact match is found, its name will be output " +"and searching will stop." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:47 en/git-send-pack.txt:50 +#: en/git-describe.txt:190 msgid "" -"If `--stateless-rpc` is specified together with this option then the list of " -"refs must be in packet format (pkt-line). Each ref must be in a separate " -"packet, and the list must end with a flush packet." +"If an exact match was not found, 'git describe' will walk back through the " +"commit history to locate an ancestor commit which has been tagged. The " +"ancestor's tag will be output along with an abbreviation of the input commit-" +"ish's SHA-1. If `--first-parent` was specified then the walk will only " +"consider the first parent of each commit." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:52 +#: en/git-describe.txt:196 msgid "" -"Pass `-q` flag to 'git unpack-objects'; this makes the cloning process less " -"verbose." +"If multiple tags were found during the walk then the tag which has the " +"fewest commits different from the input commit-ish will be selected and " +"output. Here fewest commits different is defined as the number of commits " +"which would be shown by `git log tag..input` will be the smallest number of " +"commits possible." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:59 +#: en/git-describe.txt:204 msgid "" -"Do not invoke 'git unpack-objects' on received data, but create a single " -"packfile out of it instead, and store it in the object database. If provided " -"twice then the pack is locked against repacking." +"Tree objects as well as tag objects not pointing at commits, cannot be " +"described. When describing blobs, the lightweight tags pointing at blobs " +"are ignored, but the blob is still described as <committ-ish>:<path> despite " +"the lightweight tag being favorable." msgstr "" -#. type: Labeled list -#: en/git-fetch-pack.txt:60 en/git-pack-objects.txt:184 en/git-send-pack.txt:64 +#. type: Title = +#: en/git-diff-files.txt:2 #, no-wrap -msgid "--thin" +msgid "git-diff-files(1)" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:63 -msgid "" -"Fetch a \"thin\" pack, which records objects in deltified form based on " -"objects not included in the pack to reduce network traffic." +#: en/git-diff-files.txt:7 +msgid "git-diff-files - Compares files in the working tree and the index" msgstr "" -#. type: Labeled list -#: en/git-fetch-pack.txt:64 en/git-pack-objects.txt:81 +#. type: Plain text +#: en/git-diff-files.txt:13 #, no-wrap -msgid "--include-tag" +msgid "'git diff-files' [-q] [-0|-1|-2|-3|-c|--cc] [<common diff options>] [<path>...]\n" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:69 +#: en/git-diff-files.txt:20 msgid "" -"If the remote side supports it, annotated tags objects will be downloaded on " -"the same connection as the other objects if the object the tag references is " -"downloaded. The caller must otherwise determine the tags this option made " -"available." +"Compares the files in the working tree and the index. When paths are " +"specified, compares only those named paths. Otherwise all entries in the " +"index are compared. The output format is the same as for 'git diff-index' " +"and 'git diff-tree'." msgstr "" #. type: Labeled list -#: en/git-fetch-pack.txt:70 +#: en/git-diff-files.txt:25 en/git-diff.txt:100 #, no-wrap -msgid "--upload-pack=<git-upload-pack>" -msgstr "" - -#. type: Plain text -#: en/git-fetch-pack.txt:81 -msgid "" -"Use this to specify the path to 'git-upload-pack' on the remote side, if is " -"not found on your $PATH. Installations of sshd ignores the user's " -"environment setup scripts for login shells (e.g. .bash_profile) and your " -"privately installed git may not be found on the system default $PATH. " -"Another workaround suggested is to set up your $PATH in \".bashrc\", but " -"this flag is for people who do not want to pay the overhead for " -"non-interactive shells by having a lean .bashrc file (they set most of the " -"things up in .bash_profile)." +msgid "-1 --base" msgstr "" #. type: Labeled list -#: en/git-fetch-pack.txt:82 +#: en/git-diff-files.txt:26 en/git-diff.txt:101 #, no-wrap -msgid "--exec=<git-upload-pack>" -msgstr "" - -#. type: Plain text -#: en/git-fetch-pack.txt:84 -msgid "Same as --upload-pack=<git-upload-pack>." +msgid "-2 --ours" msgstr "" -#. type: Plain text -#: en/git-fetch-pack.txt:89 -msgid "" -"Limit fetching to ancestor-chains not longer than n. 'git-upload-pack' " -"treats the special depth 2147483647 as infinite even if there is an " -"ancestor-chain that long." +#. type: Labeled list +#: en/git-diff-files.txt:27 en/git-diff.txt:102 +#, no-wrap +msgid "-3 --theirs" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:93 +#: en/git-diff-files.txt:32 msgid "" -"Deepen or shorten the history of a shallow'repository to include all " -"reachable commits after <date>." +"Diff against the \"base\" version, \"our branch\" or \"their branch\" " +"respectively. With these options, diffs for merged entries are not shown." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:98 en/fetch-options.txt:30 +#: en/git-diff-files.txt:36 msgid "" -"Deepen or shorten the history of a shallow repository to exclude commits " -"reachable from a specified remote branch or tag. This option can be " -"specified multiple times." +"The default is to diff against our branch (-2) and the cleanly resolved " +"paths. The option -0 can be given to omit diff output for unmerged entries " +"and just show \"Unmerged\"." msgstr "" #. type: Labeled list -#: en/git-fetch-pack.txt:99 +#: en/git-diff-files.txt:38 en/git-diff-tree.txt:98 en/rev-list-options.txt:957 #, no-wrap -msgid "--deepen-relative" +msgid "--cc" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:103 +#: en/git-diff-files.txt:43 msgid "" -"Argument --depth specifies the number of commits from the current shallow " -"boundary instead of from the tip of each remote branch history." +"This compares stage 2 (our branch), stage 3 (their branch) and the working " +"tree file and outputs a combined diff, similar to the way 'diff-tree' shows " +"a merge commit with these flags." msgstr "" -#. type: Labeled list -#: en/git-fetch-pack.txt:104 en/merge-options.txt:113 +#. type: Plain text +#: en/git-diff-files.txt:46 +msgid "Remain silent even on nonexistent files" +msgstr "" + +#. type: Title = +#: en/git-diff-index.txt:2 #, no-wrap -msgid "--no-progress" +msgid "git-diff-index(1)" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:106 -msgid "Do not show the progress." +#: en/git-diff-index.txt:7 +msgid "git-diff-index - Compare a tree to the working tree or index" msgstr "" -#. type: Labeled list -#: en/git-fetch-pack.txt:107 en/git-index-pack.txt:77 +#. type: Plain text +#: en/git-diff-index.txt:13 #, no-wrap -msgid "--check-self-contained-and-connected" +msgid "'git diff-index' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...]\n" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:110 +#: en/git-diff-index.txt:21 msgid "" -"Output \"connectivity-ok\" if the received pack is self-contained and " -"connected." +"Compares the content and mode of the blobs found in a tree object with the " +"corresponding tracked files in the working tree, or with the corresponding " +"paths in the index. When <path> arguments are present, compares only paths " +"matching those patterns. Otherwise all tracked files are compared." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:113 en/git-push.txt:267 en/git-send-pack.txt:63 -msgid "Run verbosely." +#: en/git-diff-index.txt:28 +msgid "The id of a tree object to diff against." msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:116 -msgid "The URL to the remote repository." -msgstr "" - -#. type: Labeled list -#: en/git-fetch-pack.txt:117 en/git-ls-remote.txt:68 -#, no-wrap -msgid "<refs>..." +#: en/git-diff-index.txt:31 +msgid "do not consider the on-disk file at all" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:121 +#: en/git-diff-index.txt:37 msgid "" -"The remote heads to update from. This is relative to $GIT_DIR " -"(e.g. \"HEAD\", \"refs/heads/master\"). When unspecified, update from all " -"heads the remote side has." +"By default, files recorded in the index but not checked out are reported as " +"deleted. This flag makes 'git diff-index' say that all non-checked-out " +"files are up to date." +msgstr "" + +#. type: Title - +#: en/git-diff-index.txt:41 +#, no-wrap +msgid "OPERATING MODES" msgstr "" #. type: Plain text -#: en/git-fetch-pack.txt:125 +#: en/git-diff-index.txt:46 msgid "" -"If the remote has enabled the options `uploadpack.allowTipSHA1InWant`, " -"`uploadpack.allowReachableSHA1InWant`, or `uploadpack.allowAnySHA1InWant`, " -"they may alternatively be 40-hex sha1s present on the remote." +"You can choose whether you want to trust the index file entirely (using the " +"`--cached` flag) or ask the diff logic to show any files that don't match " +"the stat state as being \"tentatively changed\". Both of these operations " +"are very useful indeed." msgstr "" -#. type: Labeled list -#: en/git-fetch-pack.txt:129 en/cmds-mainporcelain.txt:43 +#. type: Title - +#: en/git-diff-index.txt:48 #, no-wrap -msgid "linkgit:git-fetch[1]" +msgid "CACHED MODE" msgstr "" -#. type: Title = -#: en/git-fetch.txt:2 +#. type: Plain text +#: en/git-diff-index.txt:50 +msgid "If `--cached` is specified, it allows you to ask:" +msgstr "" + +#. type: Plain text +#: en/git-diff-index.txt:53 #, no-wrap -msgid "git-fetch(1)" +msgid "" +"\tshow me the differences between HEAD and the current index\n" +"\tcontents (the ones I'd write using 'git write-tree')\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:7 -msgid "git-fetch - Download objects and refs from another repository" +#: en/git-diff-index.txt:58 +msgid "" +"For example, let's say that you have worked on your working directory, " +"updated some files in the index and are ready to commit. You want to see " +"exactly *what* you are going to commit, without having to write a new tree " +"object and compare it that way, and to do that, you just do" msgstr "" #. type: Plain text -#: en/git-fetch.txt:16 +#: en/git-diff-index.txt:60 #, no-wrap -msgid "" -"'git fetch' [<options>] [<repository> [<refspec>...]]\n" -"'git fetch' [<options>] <group>\n" -"'git fetch' --multiple [<options>] [(<repository> | <group>)...]\n" -"'git fetch' --all [<options>]\n" +msgid "\tgit diff-index --cached HEAD\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:24 +#: en/git-diff-index.txt:65 msgid "" -"Fetch branches and/or tags (collectively, \"refs\") from one or more other " -"repositories, along with the objects necessary to complete their histories. " -"Remote-tracking branches are updated (see the description of <refspec> below " -"for ways to control this behavior)." +"Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had " +"done an `update-index` to make that effective in the index file. `git diff-" +"files` wouldn't show anything at all, since the index file matches my " +"working directory. But doing a 'git diff-index' does:" msgstr "" #. type: Plain text -#: en/git-fetch.txt:32 +#: en/git-diff-index.txt:69 +#, no-wrap msgid "" -"By default, any tag that points into the histories being fetched is also " -"fetched; the effect is to fetch tags that point at branches that you are " -"interested in. This default behavior can be changed by using the --tags or " -"--no-tags options or by configuring remote.<name>.tagOpt. By using a " -"refspec that fetches tags explicitly, you can fetch tags that do not point " -"into branches you are interested in as well." +" torvalds@ppc970:~/git> git diff-index --cached HEAD\n" +" -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c\n" +" +100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:37 -msgid "" -"'git fetch' can fetch from either a single named repository or URL, or from " -"several repositories at once if <group> is given and there is a " -"remotes.<group> entry in the configuration file. (See " -"linkgit:git-config[1])." +#: en/git-diff-index.txt:71 +msgid "You can see easily that the above is a rename." msgstr "" #. type: Plain text -#: en/git-fetch.txt:40 +#: en/git-diff-index.txt:75 msgid "" -"When no remote is specified, by default the `origin` remote will be used, " -"unless there's an upstream branch configured for the current branch." +"In fact, `git diff-index --cached` *should* always be entirely equivalent to " +"actually doing a 'git write-tree' and comparing that. Except this one is " +"much nicer for the case where you just want to check where you are." msgstr "" #. type: Plain text -#: en/git-fetch.txt:44 +#: en/git-diff-index.txt:79 msgid "" -"The names of refs that are fetched, together with the object names they " -"point at, are written to `.git/FETCH_HEAD`. This information may be used by " -"scripts or other git commands, such as linkgit:git-pull[1]." +"So doing a `git diff-index --cached` is basically very useful when you are " +"asking yourself \"what have I already marked for being committed, and what's " +"the difference to a previous tree\"." msgstr "" #. type: Title - -#: en/git-fetch.txt:55 +#: en/git-diff-index.txt:81 #, no-wrap -msgid "CONFIGURED REMOTE-TRACKING BRANCHES[[CRTB]]" +msgid "NON-CACHED MODE" msgstr "" #. type: Plain text -#: en/git-fetch.txt:61 +#: en/git-diff-index.txt:86 msgid "" -"You often interact with the same remote repository by regularly and " -"repeatedly fetching from it. In order to keep track of the progress of such " -"a remote repository, `git fetch` allows you to configure " -"`remote.<repository>.fetch` configuration variables." +"The \"non-cached\" mode takes a different approach, and is potentially the " +"more useful of the two in that what it does can't be emulated with a 'git " +"write-tree' + 'git diff-tree'. Thus that's the default mode. The non-cached " +"version asks the question:" msgstr "" #. type: Plain text -#: en/git-fetch.txt:63 -msgid "Typically such a variable may look like this:" -msgstr "" - -#. type: delimited block - -#: en/git-fetch.txt:67 +#: en/git-diff-index.txt:89 #, no-wrap msgid "" -"[remote \"origin\"]\n" -"\tfetch = +refs/heads/*:refs/remotes/origin/*\n" +" show me the differences between HEAD and the currently checked out\n" +" tree - index contents _and_ files that aren't up to date\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:70 -msgid "This configuration is used in two ways:" +#: en/git-diff-index.txt:93 +msgid "" +"which is obviously a very useful question too, since that tells you what you " +"*could* commit. Again, the output matches the 'git diff-tree -r' output to a " +"tee, but with a twist." msgstr "" #. type: Plain text -#: en/git-fetch.txt:80 +#: en/git-diff-index.txt:99 msgid "" -"When `git fetch` is run without specifying what branches and/or tags to " -"fetch on the command line, e.g. `git fetch origin` or `git fetch`, " -"`remote.<repository>.fetch` values are used as the refspecs--they specify " -"which refs to fetch and which local refs to update. The example above will " -"fetch all branches that exist in the `origin` (i.e. any ref that matches the " -"left-hand side of the value, `refs/heads/*`) and update the corresponding " -"remote-tracking branches in the `refs/remotes/origin/*` hierarchy." +"The twist is that if some file doesn't match the index, we don't have a " +"backing store thing for it, and we use the magic \"all-zero\" sha1 to show " +"that. So let's say that you have edited `kernel/sched.c`, but have not " +"actually done a 'git update-index' on it yet - there is no \"object\" " +"associated with the new state, and you get:" msgstr "" #. type: Plain text -#: en/git-fetch.txt:97 +#: en/git-diff-index.txt:102 +#, no-wrap msgid "" -"When `git fetch` is run with explicit branches and/or tags to fetch on the " -"command line, e.g. `git fetch origin master`, the <refspec>s given on the " -"command line determine what are to be fetched (e.g. `master` in the example, " -"which is a short-hand for `master:`, which in turn means \"fetch the " -"'master' branch but I do not explicitly say what remote-tracking branch to " -"update with it from the command line\"), and the example command will fetch " -"_only_ the 'master' branch. The `remote.<repository>.fetch` values " -"determine which remote-tracking branch, if any, is updated. When used in " -"this way, the `remote.<repository>.fetch` values do not have any effect in " -"deciding _what_ gets fetched (i.e. the values are not used as refspecs when " -"the command-line lists refspecs); they are only used to decide _where_ the " -"refs that are fetched are stored by acting as a mapping." +" torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD\n" +" :100644 100664 7476bb... 000000... kernel/sched.c\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:101 +#: en/git-diff-index.txt:107 msgid "" -"The latter use of the `remote.<repository>.fetch` values can be overridden " -"by giving the `--refmap=<refspec>` parameter(s) on the command line." +"i.e., it shows that the tree has changed, and that `kernel/sched.c` is not " +"up to date and may contain new stuff. The all-zero sha1 means that to get " +"the real diff, you need to look at the object in the working directory " +"directly rather than do an object-to-object diff." msgstr "" #. type: Plain text -#: en/git-fetch.txt:108 +#: en/git-diff-index.txt:113 msgid "" -"The output of \"git fetch\" depends on the transport method used; this " -"section describes the output when fetching over the Git protocol (either " -"locally or via ssh) and Smart HTTP protocol." +"As with other commands of this type, 'git diff-index' does not actually look " +"at the contents of the file at all. So maybe `kernel/sched.c` hasn't " +"actually changed, and it's just that you touched it. In either case, it's a " +"note that you need to 'git update-index' it to make the index be in sync." msgstr "" #. type: Plain text -#: en/git-fetch.txt:111 +#: en/git-diff-index.txt:119 msgid "" -"The status of the fetch is output in tabular form, with each line " -"representing the status of a single ref. Each line is of the form:" +"You can have a mixture of files show up as \"has been updated\" and \"is " +"still dirty in the working directory\" together. You can always tell which " +"file is in which state, since the \"has been updated\" ones show a valid " +"sha1, and the \"not in sync with the index\" ones will always have the " +"special all-zero sha1." msgstr "" -#. type: delimited block - -#: en/git-fetch.txt:114 +#. type: Title = +#: en/git-difftool.txt:2 #, no-wrap -msgid " <flag> <summary> <from> -> <to> [<reason>]\n" +msgid "git-difftool(1)" msgstr "" #. type: Plain text -#: en/git-fetch.txt:118 -msgid "The status of up-to-date refs is shown only if the --verbose option is used." +#: en/git-difftool.txt:7 +msgid "git-difftool - Show changes using common diff tools" msgstr "" #. type: Plain text -#: en/git-fetch.txt:123 -msgid "" -"In compact output mode, specified with configuration variable fetch.output, " -"if either entire `<from>` or `<to>` is found in the other string, it will be " -"substituted with `*` in the other string. For example, `master -> " -"origin/master` becomes `master -> origin/*`." -msgstr "" - -#. type: Labeled list -#: en/git-fetch.txt:124 en/git-push.txt:328 +#: en/git-difftool.txt:12 #, no-wrap -msgid "flag" +msgid "'git difftool' [<options>] [<commit> [<commit>]] [--] [<path>...]\n" msgstr "" #. type: Plain text -#: en/git-fetch.txt:126 en/git-push.txt:330 -msgid "A single character indicating the status of the ref:" +#: en/git-difftool.txt:19 +msgid "" +"'git difftool' is a Git command that allows you to compare and edit files " +"between revisions using common diff tools. 'git difftool' is a frontend to " +"'git diff' and accepts the same options and arguments. See linkgit:git-" +"diff[1]." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:126 en/git-push.txt:330 +#: en/git-difftool.txt:23 #, no-wrap -msgid "(space)" +msgid "--dir-diff" msgstr "" #. type: Plain text -#: en/git-fetch.txt:127 -msgid "for a successfully fetched fast-forward;" +#: en/git-difftool.txt:27 +msgid "" +"Copy the modified files to a temporary location and perform a directory diff " +"on them. This mode never prompts before launching the diff tool." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:127 en/git-push.txt:331 +#: en/git-difftool.txt:28 en/git-mergetool.txt:70 #, no-wrap -msgid "`+`" -msgstr "" - -#. type: Plain text -#: en/git-fetch.txt:128 en/git-push.txt:332 -msgid "for a successful forced update;" +msgid "-y" msgstr "" #. type: Labeled list -#: en/git-fetch.txt:128 en/git-push.txt:332 +#: en/git-difftool.txt:29 en/git-mergetool.txt:71 #, no-wrap -msgid "`-`" +msgid "--no-prompt" msgstr "" #. type: Plain text -#: en/git-fetch.txt:129 -msgid "for a successfully pruned ref;" +#: en/git-difftool.txt:31 +msgid "Do not prompt before launching a diff tool." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:129 +#: en/git-difftool.txt:32 en/git-mergetool.txt:78 #, no-wrap -msgid "`t`" +msgid "--prompt" msgstr "" #. type: Plain text -#: en/git-fetch.txt:130 -msgid "for a successful tag update;" +#: en/git-difftool.txt:36 +msgid "" +"Prompt before each invocation of the diff tool. This is the default " +"behaviour; the option is provided to override any configuration settings." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:130 en/git-push.txt:333 +#: en/git-difftool.txt:37 en/git-mergetool.txt:27 #, no-wrap -msgid "`*`" -msgstr "" - -#. type: Plain text -#: en/git-fetch.txt:131 -msgid "for a successfully fetched new ref;" +msgid "-t <tool>" msgstr "" #. type: Labeled list -#: en/git-fetch.txt:131 en/git-push.txt:334 +#: en/git-difftool.txt:38 en/git-mergetool.txt:28 #, no-wrap -msgid "`!`" +msgid "--tool=<tool>" msgstr "" #. type: Plain text -#: en/git-fetch.txt:132 -msgid "for a ref that was rejected or failed to update; and" -msgstr "" - -#. type: Labeled list -#: en/git-fetch.txt:132 en/git-push.txt:335 -#, no-wrap -msgid "`=`" +#: en/git-difftool.txt:42 +msgid "" +"Use the diff tool specified by <tool>. Valid values include emerge, " +"kompare, meld, and vimdiff. Run `git difftool --tool-help` for the list of " +"valid <tool> settings." msgstr "" #. type: Plain text -#: en/git-fetch.txt:133 -msgid "for a ref that was up to date and did not need fetching." +#: en/git-difftool.txt:47 +msgid "" +"If a diff tool is not specified, 'git difftool' will use the configuration " +"variable `diff.tool`. If the configuration variable `diff.tool` is not set, " +"'git difftool' will pick a suitable default." +msgstr "" + +#. type: Plain text +#: en/git-difftool.txt:53 +msgid "" +"You can explicitly provide a full path to the tool by setting the " +"configuration variable `difftool.<tool>.path`. For example, you can " +"configure the absolute path to kdiff3 by setting `difftool.kdiff3.path`. " +"Otherwise, 'git difftool' assumes the tool is available in PATH." +msgstr "" + +#. type: Plain text +#: en/git-difftool.txt:58 +msgid "" +"Instead of running one of the known diff tools, 'git difftool' can be " +"customized to run an alternative program by specifying the command line to " +"invoke in a configuration variable `difftool.<tool>.cmd`." +msgstr "" + +#. type: Plain text +#: en/git-difftool.txt:68 +msgid "" +"When 'git difftool' is invoked with this tool (either through the `-t` or `--" +"tool` option or the `diff.tool` configuration variable) the configured " +"command line will be invoked with the following variables available: `" +"$LOCAL` is set to the name of the temporary file containing the contents of " +"the diff pre-image and `$REMOTE` is set to the name of the temporary file " +"containing the contents of the diff post-image. `$MERGED` is the name of " +"the file which is being compared. `$BASE` is provided for compatibility with " +"custom merge tool commands and has the same value as `$MERGED`." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:134 en/git-push.txt:337 +#: en/git-difftool.txt:69 en/git-mergetool.txt:67 #, no-wrap -msgid "summary" +msgid "--tool-help" msgstr "" #. type: Plain text -#: en/git-fetch.txt:139 -msgid "" -"For a successfully fetched ref, the summary shows the old and new values of " -"the ref in a form suitable for using as an argument to `git log` (this is " -"`<old>..<new>` in most cases, and `<old>...<new>` for forced " -"non-fast-forward updates)." +#: en/git-difftool.txt:71 +msgid "Print a list of diff tools that may be used with `--tool`." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:140 en/git-push.txt:365 +#: en/git-difftool.txt:72 #, no-wrap -msgid "from" +msgid "--[no-]symlinks" msgstr "" #. type: Plain text -#: en/git-fetch.txt:144 +#: en/git-difftool.txt:77 msgid "" -"The name of the remote ref being fetched from, minus its `refs/<type>/` " -"prefix. In the case of deletion, the name of the remote ref is \"(none)\"." +"'git difftool''s default behavior is create symlinks to the working tree " +"when run in `--dir-diff` mode and the right-hand side of the comparison " +"yields the same content as the file in the working tree." msgstr "" #. type: Plain text -#: en/git-fetch.txt:145 en/git-push.txt:370 en/git-rebase.txt:790 -#, no-wrap -msgid "to" +#: en/git-difftool.txt:80 +msgid "" +"Specifying `--no-symlinks` instructs 'git difftool' to create copies " +"instead. `--no-symlinks` is the default on Windows." msgstr "" -#. type: Plain text -#: en/git-fetch.txt:148 -msgid "The name of the local ref being updated, minus its `refs/<type>/` prefix." +#. type: Labeled list +#: en/git-difftool.txt:81 +#, no-wrap +msgid "-x <command>" msgstr "" #. type: Labeled list -#: en/git-fetch.txt:149 en/git-push.txt:374 +#: en/git-difftool.txt:82 #, no-wrap -msgid "reason" +msgid "--extcmd=<command>" msgstr "" #. type: Plain text -#: en/git-fetch.txt:153 +#: en/git-difftool.txt:87 msgid "" -"A human-readable explanation. In the case of successfully fetched refs, no " -"explanation is needed. For a failed ref, the reason for failure is " -"described." +"Specify a custom command for viewing diffs. 'git-difftool' ignores the " +"configured defaults and runs `$command $LOCAL $REMOTE` when this option is " +"specified. Additionally, `$BASE` is set in the environment." +msgstr "" + +#. type: Labeled list +#: en/git-difftool.txt:88 en/git-help.txt:59 en/git-mergetool.txt:82 +#: en/git-show-branch.txt:111 en/git-update-index.txt:122 +#: en/rev-list-options.txt:256 +#, no-wrap +msgid "-g" +msgstr "" + +#. type: Labeled list +#: en/git-difftool.txt:89 +#, no-wrap +msgid "--[no-]gui" msgstr "" #. type: Plain text -#: en/git-fetch.txt:158 -msgid "Update the remote-tracking branches:" +#: en/git-difftool.txt:94 +msgid "" +"When 'git-difftool' is invoked with the `-g` or `--gui` option the default " +"diff tool will be read from the configured `diff.guitool` variable instead " +"of `diff.tool`. The `--no-gui` option can be used to override this setting." msgstr "" -#. type: delimited block - -#: en/git-fetch.txt:161 +#. type: Labeled list +#: en/git-difftool.txt:95 #, no-wrap -msgid "$ git fetch origin\n" +msgid "--[no-]trust-exit-code" msgstr "" #. type: Plain text -#: en/git-fetch.txt:167 +#: en/git-difftool.txt:100 msgid "" -"The above command copies all branches from the remote refs/heads/ namespace " -"and stores them to the local refs/remotes/origin/ namespace, unless the " -"branch.<name>.fetch option is used to specify a non-default refspec." +"'git-difftool' invokes a diff tool individually on each file. Errors " +"reported by the diff tool are ignored by default. Use `--trust-exit-code` " +"to make 'git-difftool' exit when an invoked diff tool returns a non-zero " +"exit code." msgstr "" #. type: Plain text -#: en/git-fetch.txt:169 -msgid "Using refspecs explicitly:" +#: en/git-difftool.txt:103 +msgid "" +"'git-difftool' will forward the exit code of the invoked tool when `--trust-" +"exit-code` is used." msgstr "" -#. type: delimited block - -#: en/git-fetch.txt:172 +#. type: Plain text +#: en/git-difftool.txt:105 +msgid "See linkgit:git-diff[1] for the full list of supported options." +msgstr "" + +#. type: Title - +#: en/git-difftool.txt:107 #, no-wrap -msgid "$ git fetch origin +pu:pu maint:tmp\n" +msgid "CONFIG VARIABLES" msgstr "" #. type: Plain text -#: en/git-fetch.txt:177 +#: en/git-difftool.txt:110 msgid "" -"This updates (or creates, as necessary) branches `pu` and `tmp` in the local " -"repository by fetching from the branches (respectively) `pu` and `maint` " -"from the remote repository." +"'git difftool' falls back to 'git mergetool' config variables when the " +"difftool equivalents have not been defined." msgstr "" -#. type: Plain text -#: en/git-fetch.txt:180 -msgid "" -"The `pu` branch will be updated even if it is does not fast-forward, because " -"it is prefixed with a plus sign; `tmp` will not be." +#. type: Labeled list +#: en/git-difftool.txt:111 +#, no-wrap +msgid "diff.tool" msgstr "" #. type: Plain text -#: en/git-fetch.txt:183 -msgid "" -"Peek at a remote's branch, without configuring the remote in your local " -"repository:" +#: en/git-difftool.txt:113 +msgid "The default diff tool to use." msgstr "" -#. type: delimited block - -#: en/git-fetch.txt:187 +#. type: Labeled list +#: en/git-difftool.txt:114 #, no-wrap -msgid "" -"$ git fetch git://git.kernel.org/pub/scm/git/git.git maint\n" -"$ git log FETCH_HEAD\n" +msgid "diff.guitool" msgstr "" #. type: Plain text -#: en/git-fetch.txt:194 -msgid "" -"The first command fetches the `maint` branch from the repository at " -"`git://git.kernel.org/pub/scm/git/git.git` and the second command uses " -"`FETCH_HEAD` to examine the branch with linkgit:git-log[1]. The fetched " -"objects will eventually be removed by git's built-in housekeeping (see " -"linkgit:git-gc[1])." +#: en/git-difftool.txt:116 +msgid "The default diff tool to use when `--gui` is specified." msgstr "" -#. type: Title - -#: en/git-fetch.txt:198 en/git-mv.txt:56 en/git-pack-refs.txt:64 en/git-pull.txt:243 en/git-rebase.txt:779 en/git-replace.txt:134 en/git-rm.txt:174 en/git-svn.txt:1026 en/git-worktree.txt:245 +#. type: Labeled list +#: en/git-difftool.txt:117 #, no-wrap -msgid "BUGS" +msgid "difftool.<tool>.path" msgstr "" #. type: Plain text -#: en/git-fetch.txt:205 en/git-pull.txt:250 +#: en/git-difftool.txt:120 msgid "" -"Using --recurse-submodules can only fetch new commits in already checked out " -"submodules right now. When e.g. upstream added a new submodule in the just " -"fetched commits of the superproject the submodule itself can not be fetched, " -"making it impossible to check out that submodule later without having to do " -"a fetch again. This is expected to be fixed in a future Git version." +"Override the path for the given tool. This is useful in case your tool is " +"not in the PATH." msgstr "" #. type: Labeled list -#: en/git-fetch.txt:209 en/cmds-mainporcelain.txt:73 +#: en/git-difftool.txt:121 #, no-wrap -msgid "linkgit:git-pull[1]" +msgid "difftool.<tool>.cmd" msgstr "" -#. type: Title = -#: en/git-filter-branch.txt:2 -#, no-wrap -msgid "git-filter-branch(1)" +#. type: Plain text +#: en/git-difftool.txt:123 +msgid "Specify the command to invoke the specified diff tool." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:7 -msgid "git-filter-branch - Rewrite branches" +#: en/git-difftool.txt:125 +msgid "See the `--tool=<tool>` option above for more details." +msgstr "" + +#. type: Labeled list +#: en/git-difftool.txt:126 +#, no-wrap +msgid "difftool.prompt" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:18 +#: en/git-difftool.txt:128 +msgid "Prompt before each invocation of the diff tool." +msgstr "" + +#. type: Labeled list +#: en/git-difftool.txt:129 #, no-wrap -msgid "" -"'git filter-branch' [--env-filter <command>] [--tree-filter <command>]\n" -"\t[--index-filter <command>] [--parent-filter <command>]\n" -"\t[--msg-filter <command>] [--commit-filter <command>]\n" -"\t[--tag-name-filter <command>] [--subdirectory-filter <directory>]\n" -"\t[--prune-empty]\n" -"\t[--original <namespace>] [-d <directory>] [-f | --force]\n" -"\t[--] [<rev-list options>...]\n" +msgid "difftool.trustExitCode" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:27 -msgid "" -"Lets you rewrite Git revision history by rewriting the branches mentioned in " -"the <rev-list options>, applying custom filters on each revision. Those " -"filters can modify each tree (e.g. removing a file or running a perl rewrite " -"on all files) or information about each commit. Otherwise, all information " -"(including original commit times or merge information) will be preserved." +#: en/git-difftool.txt:131 +msgid "Exit difftool if the invoked diff tool returns a non-zero exit status." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:34 -msgid "" -"The command will only rewrite the _positive_ refs mentioned in the command " -"line (e.g. if you pass 'a..b', only 'b' will be rewritten). If you specify " -"no filters, the commits will be recommitted without any changes, which would " -"normally have no effect. Nevertheless, this may be useful in the future for " -"compensating for some Git bugs or such, therefore such a usage is permitted." +#: en/git-difftool.txt:133 +msgid "See the `--trust-exit-code` option above for more details." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:39 -#, no-wrap -msgid "" -"*NOTE*: This command honors `.git/info/grafts` file and refs in\n" -"the `refs/replace/` namespace.\n" -"If you have any grafts or replacement refs defined, running this command\n" -"will make them permanent.\n" +#: en/git-difftool.txt:138 +msgid "Show changes between commits, commit and working tree, etc" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:48 +#: en/git-difftool.txt:141 +msgid "Run merge conflict resolution tools to resolve merge conflicts" +msgstr "" + +#. type: Plain text +#: en/git-difftool.txt:144 +msgid "Get and set repository or global options" +msgstr "" + +#. type: Title = +#: en/git-diff-tree.txt:2 #, no-wrap -msgid "" -"*WARNING*! The rewritten history will have different object names for all\n" -"the objects and will not converge with the original branch. You will not\n" -"be able to easily push and distribute the rewritten branch on top of the\n" -"original branch. Please do not use this command if you do not know the\n" -"full implications, and avoid using it anyway, if a simple single commit\n" -"would suffice to fix your problem. (See the \"RECOVERING FROM UPSTREAM\n" -"REBASE\" section in linkgit:git-rebase[1] for further information about\n" -"rewriting published history.)\n" +msgid "git-diff-tree(1)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:52 +#: en/git-diff-tree.txt:7 msgid "" -"Always verify that the rewritten version is correct: The original refs, if " -"different from the rewritten ones, will be stored in the namespace " -"'refs/original/'." +"git-diff-tree - Compares the content and mode of blobs found via two tree " +"objects" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:56 +#: en/git-diff-tree.txt:15 +#, no-wrap msgid "" -"Note that since this operation is very I/O expensive, it might be a good " -"idea to redirect the temporary directory off-disk with the `-d` option, " -"e.g. on tmpfs. Reportedly the speedup is very noticeable." +"'git diff-tree' [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty]\n" +"\t [-t] [-r] [-c | --cc] [--root] [<common diff options>]\n" +"\t <tree-ish> [<tree-ish>] [<path>...]\n" msgstr "" -#. type: Title ~ -#: en/git-filter-branch.txt:59 -#, no-wrap -msgid "Filters" +#. type: Plain text +#: en/git-diff-tree.txt:19 +msgid "Compares the content and mode of the blobs found via two tree objects." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:71 +#: en/git-diff-tree.txt:22 msgid "" -"The filters are applied in the order as listed below. The <command> " -"argument is always evaluated in the shell context using the 'eval' command " -"(with the notable exception of the commit filter, for technical reasons). " -"Prior to that, the `$GIT_COMMIT` environment variable will be set to contain " -"the id of the commit being rewritten. Also, GIT_AUTHOR_NAME, " -"GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, " -"and GIT_COMMITTER_DATE are taken from the current commit and exported to the " -"environment, in order to affect the author and committer identities of the " -"replacement commit created by linkgit:git-commit-tree[1] after the filters " -"have run." +"If there is only one <tree-ish> given, the commit is compared with its " +"parents (see --stdin below)." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:74 +#: en/git-diff-tree.txt:24 msgid "" -"If any evaluation of <command> returns a non-zero exit status, the whole " -"operation will be aborted." +"Note that 'git diff-tree' can use the tree encapsulated in a commit object." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:80 -msgid "" -"A 'map' function is available that takes an \"original sha1 id\" argument " -"and outputs a \"rewritten sha1 id\" if the commit has been already " -"rewritten, and \"original sha1 id\" otherwise; the 'map' function can return " -"several ids on separate lines if your commit filter emitted multiple " -"commits." +#: en/git-diff-tree.txt:31 +msgid "The id of a tree object." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:85 +#: en/git-diff-tree.txt:32 en/git-diff.txt:114 en/git-submodule.txt:410 #, no-wrap -msgid "--env-filter <command>" +msgid "<path>..." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:91 +#: en/git-diff-tree.txt:35 msgid "" -"This filter may be used if you only need to modify the environment in which " -"the commit will be performed. Specifically, you might want to rewrite the " -"author/committer name/email/time environment variables (see " -"linkgit:git-commit-tree[1] for details). Do not forget to re-export the " -"variables." +"If provided, the results are limited to a subset of files matching one of " +"the provided pathspecs." msgstr "" -#. type: Labeled list -#: en/git-filter-branch.txt:92 -#, no-wrap -msgid "--tree-filter <command>" +#. type: Plain text +#: en/git-diff-tree.txt:38 +msgid "recurse into sub-trees" +msgstr "" + +#. type: Plain text +#: en/git-diff-tree.txt:41 +msgid "show tree entry itself as well as subtrees. Implies -r." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:99 +#: en/git-diff-tree.txt:45 msgid "" -"This is the filter for rewriting the tree and its contents. The argument is " -"evaluated in shell with the working directory set to the root of the checked " -"out tree. The new tree is then used as-is (new files are auto-added, " -"disappeared files are auto-removed - neither .gitignore files nor any other " -"ignore rules *HAVE ANY EFFECT*!)." +"When `--root` is specified the initial commit will be shown as a big " +"creation event. This is equivalent to a diff against the NULL tree." msgstr "" -#. type: Labeled list -#: en/git-filter-branch.txt:100 -#, no-wrap -msgid "--index-filter <command>" +#. type: Plain text +#: en/git-diff-tree.txt:52 +msgid "" +"When `--stdin` is specified, the command does not take <tree-ish> arguments " +"from the command line. Instead, it reads lines containing either two " +"<tree>, one <commit>, or a list of <commit> from its standard input. (Use a " +"single space as separator.)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:106 +#: en/git-diff-tree.txt:57 msgid "" -"This is the filter for rewriting the index. It is similar to the tree " -"filter but does not check out the tree, which makes it much faster. " -"Frequently used with `git rm --cached --ignore-unmatch ...`, see EXAMPLES " -"below. For hairy cases, see linkgit:git-update-index[1]." +"When two trees are given, it compares the first tree with the second. When " +"a single commit is given, it compares the commit with its parents. The " +"remaining commits, when given, are used as if they are parents of the first " +"commit." msgstr "" -#. type: Labeled list -#: en/git-filter-branch.txt:107 -#, no-wrap -msgid "--parent-filter <command>" +#. type: Plain text +#: en/git-diff-tree.txt:62 +msgid "" +"When comparing two trees, the ID of both trees (separated by a space and " +"terminated by a newline) is printed before the difference. When comparing " +"commits, the ID of the first (or only) commit, followed by a newline, is " +"printed." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:114 +#: en/git-diff-tree.txt:65 msgid "" -"This is the filter for rewriting the commit's parent list. It will receive " -"the parent string on stdin and shall output the new parent string on " -"stdout. The parent string is in the format described in " -"linkgit:git-commit-tree[1]: empty for the initial commit, \"-p parent\" for " -"a normal commit and \"-p parent1 -p parent2 -p parent3 ...\" for a merge " -"commit." +"The following flags further affect the behavior when comparing commits (but " +"not trees)." msgstr "" -#. type: Labeled list -#: en/git-filter-branch.txt:115 -#, no-wrap -msgid "--msg-filter <command>" +#. type: Plain text +#: en/git-diff-tree.txt:71 +msgid "" +"By default, 'git diff-tree --stdin' does not show differences for merge " +"commits. With this flag, it shows differences to that commit from all of " +"its parents. See also `-c`." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:120 +#: en/git-diff-tree.txt:77 msgid "" -"This is the filter for rewriting the commit messages. The argument is " -"evaluated in the shell with the original commit message on standard input; " -"its standard output is used as the new commit message." +"By default, 'git diff-tree --stdin' shows differences, either in machine-" +"readable form (without `-p`) or in patch form (with `-p`). This output can " +"be suppressed. It is only useful with `-v` flag." +msgstr "" + +#. type: Plain text +#: en/git-diff-tree.txt:81 +msgid "" +"This flag causes 'git diff-tree --stdin' to also show the commit message " +"before the differences." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:121 +#: en/git-diff-tree.txt:84 #, no-wrap -msgid "--commit-filter <command>" +msgid "--no-commit-id" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:127 +#: en/git-diff-tree.txt:87 msgid "" -"This is the filter for performing the commit. If this filter is specified, " -"it will be called instead of the 'git commit-tree' command, with arguments " -"of the form \"<TREE_ID> [(-p <PARENT_COMMIT_ID>)...]\" and the log message " -"on stdin. The commit id is expected on stdout." +"'git diff-tree' outputs a line with the commit ID when applicable. This " +"flag suppressed the commit ID output." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:131 +#: en/git-diff-tree.txt:97 msgid "" -"As a special extension, the commit filter may emit multiple commit ids; in " -"that case, the rewritten children of the original commit will have all of " -"them as parents." +"This flag changes the way a merge commit is displayed (which means it is " +"useful only when the command is given one <tree-ish>, or `--stdin`). It " +"shows the differences from each of the parents to the merge result " +"simultaneously instead of showing pairwise diff between a parent and the " +"result one at a time (which is what the `-m` option does). Furthermore, it " +"lists only files which were modified from all parents." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:136 +#: en/git-diff-tree.txt:107 msgid "" -"You can use the 'map' convenience function in this filter, and other " -"convenience functions, too. For example, calling 'skip_commit \"$@\"' will " -"leave out the current commit (but not its changes! If you want that, use " -"'git rebase' instead)." +"This flag changes the way a merge commit patch is displayed, in a similar " +"way to the `-c` option. It implies the `-c` and `-p` options and further " +"compresses the patch output by omitting uninteresting hunks whose the " +"contents in the parents have only two variants and the merge result picks " +"one of them without modification. When all hunks are uninteresting, the " +"commit itself and the commit log message is not shown, just like in any " +"other \"empty diff\" case." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:140 +#: en/git-diff-tree.txt:111 msgid "" -"You can also use the `git_commit_non_empty_tree \"$@\"` instead of `git " -"commit-tree \"$@\"` if you don't wish to keep commits with a single parent " -"and that makes no change to the tree." +"Show the commit itself and the commit log message even if the diff itself is " +"empty." msgstr "" -#. type: Labeled list -#: en/git-filter-branch.txt:141 +#. type: Title = +#: en/git-diff.txt:2 #, no-wrap -msgid "--tag-name-filter <command>" +msgid "git-diff(1)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:147 -msgid "" -"This is the filter for rewriting tag names. When passed, it will be called " -"for every tag ref that points to a rewritten object (or to a tag object " -"which points to a rewritten object). The original tag name is passed via " -"standard input, and the new tag name is expected on standard output." +#: en/git-diff.txt:7 +msgid "git-diff - Show changes between commits, commit and working tree, etc" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:152 +#: en/git-diff.txt:17 +#, no-wrap msgid "" -"The original tags are not deleted, but can be overwritten; use " -"\"--tag-name-filter cat\" to simply update the tags. In this case, be very " -"careful and make sure you have the old tags backed up in case the conversion " -"has run afoul." +"'git diff' [<options>] [<commit>] [--] [<path>...]\n" +"'git diff' [<options>] --cached [<commit>] [--] [<path>...]\n" +"'git diff' [<options>] <commit> <commit> [--] [<path>...]\n" +"'git diff' [<options>] <blob> <blob>\n" +"'git diff' [<options>] --no-index [--] <path> <path>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:163 +#: en/git-diff.txt:23 msgid "" -"Nearly proper rewriting of tag objects is supported. If the tag has a " -"message attached, a new tag object will be created with the same message, " -"author, and timestamp. If the tag has a signature attached, the signature " -"will be stripped. It is by definition impossible to preserve signatures. The " -"reason this is \"nearly\" proper, is because ideally if the tag did not " -"change (points to the same object, has the same name, etc.) it should " -"retain any signature. That is not the case, signatures will always be " -"removed, buyer beware. There is also no support for changing the author or " -"timestamp (or the tag message for that matter). Tags which point to other " -"tags will be rewritten to point to the underlying commit." +"Show changes between the working tree and the index or a tree, changes " +"between the index and a tree, changes between two trees, changes between two " +"blob objects, or changes between two files on disk." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:164 +#: en/git-diff.txt:24 #, no-wrap -msgid "--subdirectory-filter <directory>" +msgid "'git diff' [<options>] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:168 +#: en/git-diff.txt:31 msgid "" -"Only look at the history which touches the given subdirectory. The result " -"will contain that directory (and only that) as its project root. Implies " -"<<Remap_to_ancestor>>." +"This form is to view the changes you made relative to the index (staging " +"area for the next commit). In other words, the differences are what you " +"_could_ tell Git to further add to the index but you still haven't. You can " +"stage these changes by using linkgit:git-add[1]." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:169 +#: en/git-diff.txt:32 #, no-wrap -msgid "--prune-empty" +msgid "'git diff' [<options>] --no-index [--] <path> <path>" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:176 +#: en/git-diff.txt:40 msgid "" -"Some filters will generate empty commits that leave the tree untouched. " -"This option instructs git-filter-branch to remove such commits if they have " -"exactly one or zero non-pruned parents; merge commits will therefore remain " -"intact. This option cannot be used together with `--commit-filter`, though " -"the same effect can be achieved by using the provided " -"`git_commit_non_empty_tree` function in a commit filter." +"This form is to compare the given two paths on the filesystem. You can omit " +"the `--no-index` option when running the command in a working tree " +"controlled by Git and at least one of the paths points outside the working " +"tree, or when running the command outside a working tree controlled by Git." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:177 +#: en/git-diff.txt:41 #, no-wrap -msgid "--original <namespace>" +msgid "'git diff' [<options>] --cached [<commit>] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:180 +#: en/git-diff.txt:50 msgid "" -"Use this option to set the namespace where the original commits will be " -"stored. The default value is 'refs/original'." +"This form is to view the changes you staged for the next commit relative to " +"the named <commit>. Typically you would want comparison with the latest " +"commit, so if you do not give <commit>, it defaults to HEAD. If HEAD does " +"not exist (e.g. unborn branches) and <commit> is not given, it shows all " +"staged changes. --staged is a synonym of --cached." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:181 +#: en/git-diff.txt:51 #, no-wrap -msgid "-d <directory>" +msgid "'git diff' [<options>] <commit> [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:188 +#: en/git-diff.txt:58 msgid "" -"Use this option to set the path to the temporary directory used for " -"rewriting. When applying a tree filter, the command needs to temporarily " -"check out the tree to some directory, which may consume considerable space " -"in case of large projects. By default it does this in the '.git-rewrite/' " -"directory but you can override that choice by this parameter." +"This form is to view the changes you have in your working tree relative to " +"the named <commit>. You can use HEAD to compare it with the latest commit, " +"or a branch name to compare with the tip of a different branch." +msgstr "" + +#. type: Labeled list +#: en/git-diff.txt:59 +#, no-wrap +msgid "'git diff' [<options>] <commit> <commit> [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:194 -msgid "" -"'git filter-branch' refuses to start with an existing temporary directory or " -"when there are already refs starting with 'refs/original/', unless forced." +#: en/git-diff.txt:63 +msgid "This is to view the changes between two arbitrary <commit>." msgstr "" #. type: Labeled list -#: en/git-filter-branch.txt:195 +#: en/git-diff.txt:64 #, no-wrap -msgid "<rev-list options>..." +msgid "'git diff' [<options>] <commit>..<commit> [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:200 +#: en/git-diff.txt:69 msgid "" -"Arguments for 'git rev-list'. All positive refs included by these options " -"are rewritten. You may also specify options such as `--all`, but you must " -"use `--` to separate them from the 'git filter-branch' options. Implies " -"<<Remap_to_ancestor>>." +"This is synonymous to the previous form. If <commit> on one side is " +"omitted, it will have the same effect as using HEAD instead." msgstr "" -#. type: Title ~ -#: en/git-filter-branch.txt:204 +#. type: Labeled list +#: en/git-diff.txt:70 #, no-wrap -msgid "Remap to ancestor" +msgid "'git diff' [<options>] <commit>\\...<commit> [--] [<path>...]" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:211 +#: en/git-diff.txt:77 msgid "" -"By using linkgit:git-rev-list[1] arguments, e.g., path limiters, you can " -"limit the set of revisions which get rewritten. However, positive refs on " -"the command line are distinguished: we don't let them be excluded by such " -"limiters. For this purpose, they are instead rewritten to point at the " -"nearest ancestor that was not excluded." +"This form is to view the changes on the branch containing and up to the " +"second <commit>, starting at a common ancestor of both <commit>. \"git diff " +"A\\...B\" is equivalent to \"git diff $(git merge-base A B) B\". You can " +"omit any one of <commit>, which has the same effect as using HEAD instead." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:218 +#: en/git-diff.txt:82 msgid "" -"Suppose you want to remove a file (containing confidential information or " -"copyright violation) from all commits:" +"Just in case you are doing something exotic, it should be noted that all of " +"the <commit> in the above description, except in the last two forms that use " +"\"..\" notations, can be any <tree>." msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:221 +#. type: Plain text +#: en/git-diff.txt:89 +msgid "" +"For a more complete list of ways to spell <commit>, see \"SPECIFYING " +"REVISIONS\" section in linkgit:gitrevisions[7]. However, \"diff\" is about " +"comparing two _endpoints_, not ranges, and the range notations (\"<commit>.." +"<commit>\" and \"<commit>\\...<commit>\") do not mean a range as defined in " +"the \"SPECIFYING RANGES\" section in linkgit:gitrevisions[7]." +msgstr "" + +#. type: Labeled list +#: en/git-diff.txt:90 #, no-wrap -msgid "git filter-branch --tree-filter 'rm filename' HEAD\n" +msgid "'git diff' [<options>] <blob> <blob>" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:226 +#: en/git-diff.txt:94 msgid "" -"However, if the file is absent from the tree of some commit, a simple `rm " -"filename` will fail for that tree and commit. Thus you may instead want to " -"use `rm -f filename` as the script." +"This form is to view the differences between the raw contents of two blob " +"objects." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:232 +#: en/git-diff.txt:108 msgid "" -"Using `--index-filter` with 'git rm' yields a significantly faster version. " -"Like with using `rm filename`, `git rm --cached filename` will fail if the " -"file is absent from the tree of a commit. If you want to \"completely " -"forget\" a file, it does not matter when it entered history, so we also add " -"`--ignore-unmatch`:" +"Compare the working tree with the \"base\" version (stage #1), \"our branch" +"\" (stage #2) or \"their branch\" (stage #3). The index contains these " +"stages only for unmerged entries i.e. while resolving conflicts. See " +"linkgit:git-read-tree[1] section \"3-Way Merge\" for detailed information." msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:235 -#, no-wrap +#. type: Plain text +#: en/git-diff.txt:113 msgid "" -"git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' " -"HEAD\n" +"Omit diff output for unmerged entries and just show \"Unmerged\". Can be " +"used only when comparing the working tree with the index." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:238 -msgid "Now, you will get the rewritten history saved in HEAD." +#: en/git-diff.txt:118 +msgid "" +"The <paths> parameters, when given, are used to limit the diff to the named " +"paths (you can give directory names and get diff for all files under them)." msgstr "" -#. type: Plain text -#: en/git-filter-branch.txt:241 -msgid "" -"To rewrite the repository to look as if `foodir/` had been its project root, " -"and discard all other history:" +#. type: Labeled list +#: en/git-diff.txt:125 +#, no-wrap +msgid "Various ways to check your working tree" msgstr "" #. type: delimited block - -#: en/git-filter-branch.txt:244 +#: en/git-diff.txt:131 #, no-wrap -msgid "git filter-branch --subdirectory-filter foodir -- --all\n" +msgid "" +"$ git diff <1>\n" +"$ git diff --cached <2>\n" +"$ git diff HEAD <3>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:249 -msgid "" -"Thus you can, e.g., turn a library subdirectory into a repository of its " -"own. Note the `--` that separates 'filter-branch' options from revision " -"options, and the `--all` to rewrite all branches and tags." +#: en/git-diff.txt:134 +msgid "Changes in the working tree not yet staged for the next commit." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:253 +#: en/git-diff.txt:136 msgid "" -"To set a commit (which typically is at the tip of another history) to be the " -"parent of the current initial commit, in order to paste the other history " -"behind the current history:" -msgstr "" - -#. type: delimited block - -#: en/git-filter-branch.txt:256 -#, no-wrap -msgid "git filter-branch --parent-filter 'sed \"s/^\\$/-p <graft-id>/\"' HEAD\n" +"Changes between the index and your last commit; what you would be committing " +"if you run \"git commit\" without \"-a\" option." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:262 +#: en/git-diff.txt:138 msgid "" -"(if the parent string is empty - which happens when we are dealing with the " -"initial commit - add graftcommit as a parent). Note that this assumes " -"history with a single root (that is, no merge without common ancestors " -"happened). If this is not the case, use:" +"Changes in the working tree since your last commit; what you would be " +"committing if you run \"git commit -a\"" msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:266 +#. type: Labeled list +#: en/git-diff.txt:139 #, no-wrap -msgid "" -"git filter-branch --parent-filter \\\n" -"\t'test $GIT_COMMIT = <commit-id> && echo \"-p <graft-id>\" || cat' HEAD\n" -msgstr "" - -#. type: Plain text -#: en/git-filter-branch.txt:269 -msgid "or even simpler:" +msgid "Comparing with arbitrary commits" msgstr "" #. type: delimited block - -#: en/git-filter-branch.txt:273 +#: en/git-diff.txt:145 #, no-wrap msgid "" -"echo \"$commit-id $graft-id\" >> .git/info/grafts\n" -"git filter-branch $graft-id..HEAD\n" +"$ git diff test <1>\n" +"$ git diff HEAD -- ./test <2>\n" +"$ git diff HEAD^ HEAD <3>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:276 -msgid "To remove commits authored by \"Darl McBribe\" from the history:" +#: en/git-diff.txt:149 +msgid "" +"Instead of using the tip of the current branch, compare with the tip of " +"\"test\" branch." msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:285 -#, no-wrap +#. type: Plain text +#: en/git-diff.txt:152 msgid "" -"git filter-branch --commit-filter '\n" -"\tif [ \"$GIT_AUTHOR_NAME\" = \"Darl McBribe\" ];\n" -"\tthen\n" -"\t\tskip_commit \"$@\";\n" -"\telse\n" -"\t\tgit commit-tree \"$@\";\n" -"\tfi' HEAD\n" +"Instead of comparing with the tip of \"test\" branch, compare with the tip " +"of the current branch, but limit the comparison to the file \"test\"." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:288 -msgid "The function 'skip_commit' is defined as follows:" +#: en/git-diff.txt:153 +msgid "Compare the version before the last commit and the last commit." +msgstr "" + +#. type: Labeled list +#: en/git-diff.txt:154 +#, no-wrap +msgid "Comparing branches" msgstr "" #. type: delimited block - -#: en/git-filter-branch.txt:300 +#: en/git-diff.txt:160 #, no-wrap msgid "" -"skip_commit()\n" -"{\n" -"\tshift;\n" -"\twhile [ -n \"$1\" ];\n" -"\tdo\n" -"\t\tshift;\n" -"\t\tmap \"$1\";\n" -"\t\tshift;\n" -"\tdone;\n" -"}\n" +"$ git diff topic master <1>\n" +"$ git diff topic..master <2>\n" +"$ git diff topic...master <3>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:307 -msgid "" -"The shift magic first throws away the tree id and then the -p parameters. " -"Note that this handles merges properly! In case Darl committed a merge " -"between P1 and P2, it will be propagated properly and all children of the " -"merge will become merge commits with P1,P2 as their parents instead of the " -"merge commit." +#: en/git-diff.txt:163 +msgid "Changes between the tips of the topic and the master branches." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:312 -#, no-wrap -msgid "" -"*NOTE* the changes introduced by the commits, and which are not reverted\n" -"by subsequent commits, will still be in the rewritten branch. If you want\n" -"to throw out _changes_ together with the commits, you should use the\n" -"interactive mode of 'git rebase'.\n" +#: en/git-diff.txt:164 en/git-remote-fd.txt:44 en/git-remote-fd.txt:52 +#: en/git-web--browse.txt:52 +msgid "Same as above." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:316 +#: en/git-diff.txt:166 msgid "" -"You can rewrite the commit log messages using `--msg-filter`. For example, " -"'git svn-id' strings in a repository created by 'git svn' can be removed " -"this way:" +"Changes that occurred on the master branch since when the topic branch was " +"started off it." +msgstr "" + +#. type: Labeled list +#: en/git-diff.txt:167 +#, no-wrap +msgid "Limiting the diff output" msgstr "" #. type: delimited block - -#: en/git-filter-branch.txt:321 +#: en/git-diff.txt:173 #, no-wrap msgid "" -"git filter-branch --msg-filter '\n" -"\tsed -e \"/^git-svn-id:/d\"\n" -"'\n" +"$ git diff --diff-filter=MRC <1>\n" +"$ git diff --name-status <2>\n" +"$ git diff arch/i386 include/asm-i386 <3>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:325 -msgid "" -"If you need to add 'Acked-by' lines to, say, the last 10 commits (none of " -"which is a merge), use this command:" +#: en/git-diff.txt:177 +msgid "Show only modification, rename, and copy, but not addition or deletion." msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:331 -#, no-wrap -msgid "" -"git filter-branch --msg-filter '\n" -"\tcat &&\n" -"\techo \"Acked-by: Bugs Bunny <bunny@bugzilla.org>\"\n" -"' HEAD~10..HEAD\n" +#. type: Plain text +#: en/git-diff.txt:179 +msgid "Show only names and the nature of change, but not actual diff output." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:337 -msgid "" -"The `--env-filter` option can be used to modify committer and/or author " -"identity. For example, if you found out that your commits have the wrong " -"identity due to a misconfigured user.email, you can make a correction, " -"before publishing the project, like this:" +#: en/git-diff.txt:180 +msgid "Limit diff output to named subtrees." +msgstr "" + +#. type: Labeled list +#: en/git-diff.txt:181 +#, no-wrap +msgid "Munging the diff output" msgstr "" #. type: delimited block - -#: en/git-filter-branch.txt:351 +#: en/git-diff.txt:186 #, no-wrap msgid "" -"git filter-branch --env-filter '\n" -"\tif test \"$GIT_AUTHOR_EMAIL\" = \"root@localhost\"\n" -"\tthen\n" -"\t\tGIT_AUTHOR_EMAIL=john@example.com\n" -"\t\texport GIT_AUTHOR_EMAIL\n" -"\tfi\n" -"\tif test \"$GIT_COMMITTER_EMAIL\" = \"root@localhost\"\n" -"\tthen\n" -"\t\tGIT_COMMITTER_EMAIL=john@example.com\n" -"\t\texport GIT_COMMITTER_EMAIL\n" -"\tfi\n" -"' -- --all\n" +"$ git diff --find-copies-harder -B -C <1>\n" +"$ git diff -R <2>\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:357 +#: en/git-diff.txt:190 msgid "" -"To restrict rewriting to only part of the history, specify a revision range " -"in addition to the new branch name. The new branch name will point to the " -"top-most revision that a 'git rev-list' of this range will print." +"Spend extra cycles to find renames, copies and complete rewrites (very " +"expensive)." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:359 -msgid "Consider this history:" -msgstr "" - -#. type: delimited block - -#: en/git-filter-branch.txt:364 -#, no-wrap -msgid "" -" D--E--F--G--H\n" -" / /\n" -"A--B-----C\n" +#: en/git-diff.txt:191 +msgid "Output diff in reverse." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:367 -msgid "To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:" +#: en/git-diff.txt:200 +msgid "" +"diff(1), linkgit:git-difftool[1], linkgit:git-log[1], linkgit:" +"gitdiffcore[7], linkgit:git-format-patch[1], linkgit:git-apply[1]" msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:370 +#. type: Title = +#: en/git-fast-export.txt:2 #, no-wrap -msgid "git filter-branch ... C..H\n" +msgid "git-fast-export(1)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:373 -msgid "To rewrite commits E,F,G,H, use one of these:" +#: en/git-fast-export.txt:7 +msgid "git-fast-export - Git data exporter" msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:377 +#. type: Plain text +#: en/git-fast-export.txt:13 #, no-wrap -msgid "" -"git filter-branch ... C..H --not D\n" -"git filter-branch ... D..H --not C\n" +msgid "'git fast-export [<options>]' | 'git fast-import'\n" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:380 -msgid "To move the whole tree into a subdirectory, or remove it from there:" +#: en/git-fast-export.txt:18 +msgid "" +"This program dumps the given revisions in a form suitable to be piped into " +"'git fast-import'." msgstr "" -#. type: delimited block - -#: en/git-filter-branch.txt:387 -#, no-wrap +#. type: Plain text +#: en/git-fast-export.txt:22 msgid "" -"git filter-branch --index-filter \\\n" -"\t'git ls-files -s | sed \"s-\\t\\\"*-&newsubdir/-\" |\n" -"\t\tGIT_INDEX_FILE=$GIT_INDEX_FILE.new \\\n" -"\t\t\tgit update-index --index-info &&\n" -"\t mv \"$GIT_INDEX_FILE.new\" \"$GIT_INDEX_FILE\"' HEAD\n" +"You can use it as a human-readable bundle replacement (see linkgit:git-" +"bundle[1]), or as a kind of an interactive 'git filter-branch'." msgstr "" -#. type: Title - -#: en/git-filter-branch.txt:392 +#. type: Labeled list +#: en/git-fast-export.txt:26 #, no-wrap -msgid "Checklist for Shrinking a Repository" +msgid "--progress=<n>" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:400 +#: en/git-fast-export.txt:29 msgid "" -"git-filter-branch can be used to get rid of a subset of files, usually with " -"some combination of `--index-filter` and `--subdirectory-filter`. People " -"expect the resulting repository to be smaller than the original, but you " -"need a few more steps to actually make it smaller, because Git tries hard " -"not to lose your objects until you tell it to. First make sure that:" +"Insert 'progress' statements every <n> objects, to be shown by 'git fast-" +"import' during import." +msgstr "" + +#. type: Labeled list +#: en/git-fast-export.txt:30 +#, no-wrap +msgid "--signed-tags=(verbatim|warn|warn-strip|strip|abort)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:404 +#: en/git-fast-export.txt:34 msgid "" -"You really removed all variants of a filename, if a blob was moved over its " -"lifetime. `git log --name-only --follow --all -- filename` can help you " -"find renames." +"Specify how to handle signed tags. Since any transformation after the " +"export can change the tag names (which can also happen when excluding " +"revisions) the signatures will not match." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:407 +#: en/git-fast-export.txt:41 msgid "" -"You really filtered all refs: use `--tag-name-filter cat -- --all` when " -"calling git-filter-branch." +"When asking to 'abort' (which is the default), this program will die when " +"encountering a signed tag. With 'strip', the tags will silently be made " +"unsigned, with 'warn-strip' they will be made unsigned but a warning will be " +"displayed, with 'verbatim', they will be silently exported and with 'warn', " +"they will be exported, but you will see a warning." +msgstr "" + +#. type: Labeled list +#: en/git-fast-export.txt:42 +#, no-wrap +msgid "--tag-of-filtered-object=(abort|drop|rewrite)" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:410 +#: en/git-fast-export.txt:46 msgid "" -"Then there are two ways to get a smaller repository. A safer way is to " -"clone, that keeps your original intact." +"Specify how to handle tags whose tagged object is filtered out. Since " +"revisions and files to export can be limited by path, tagged objects may be " +"filtered completely." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:414 +#: en/git-fast-export.txt:52 msgid "" -"Clone it with `git clone file:///path/to/repo`. The clone will not have the " -"removed objects. See linkgit:git-clone[1]. (Note that cloning with a plain " -"path just hardlinks everything!)" +"When asking to 'abort' (which is the default), this program will die when " +"encountering such a tag. With 'drop' it will omit such tags from the " +"output. With 'rewrite', if the tagged object is a commit, it will rewrite " +"the tag to tag an ancestor commit (via parent rewriting; see linkgit:git-rev-" +"list[1])" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:419 +#: en/git-fast-export.txt:58 msgid "" -"If you really don't want to clone it, for whatever reasons, check the " -"following points instead (in this order). This is a very destructive " -"approach, so *make a backup* or go back to cloning it. You have been " -"warned." +"Perform move and/or copy detection, as described in the linkgit:git-diff[1] " +"manual page, and use it to generate rename and copy commands in the output " +"dump." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:423 +#: en/git-fast-export.txt:61 msgid "" -"Remove the original refs backed up by git-filter-branch: say `git " -"for-each-ref --format=\"%(refname)\" refs/original/ | xargs -n 1 git " -"update-ref -d`." +"Note that earlier versions of this command did not complain and produced " +"incorrect results if you gave these options." msgstr "" -#. type: Plain text -#: en/git-filter-branch.txt:425 -msgid "Expire all reflogs with `git reflog expire --expire=now --all`." +#. type: Labeled list +#: en/git-fast-export.txt:62 en/git-fast-import.txt:78 +#, no-wrap +msgid "--export-marks=<file>" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:429 +#: en/git-fast-export.txt:73 msgid "" -"Garbage collect all unreferenced objects with `git gc --prune=now` (or if " -"your git-gc is not new enough to support arguments to `--prune`, use `git " -"repack -ad; git prune` instead)." +"Dumps the internal marks table to <file> when complete. Marks are written " +"one per line as `:markid SHA-1`. Only marks for revisions are dumped; marks " +"for blobs are ignored. Backends can use this file to validate imports after " +"they have been completed, or to save the marks table across incremental " +"runs. As <file> is only opened and truncated at completion, the same path " +"can also be safely given to --import-marks. The file will not be written if " +"no new object has been marked/exported." msgstr "" -#. type: Plain text -#: en/git-filter-branch.txt:441 -msgid "" -"git-filter-branch allows you to make complex shell-scripted rewrites of your " -"Git history, but you probably don't need this flexibility if you're simply " -"_removing unwanted data_ like large files or passwords. For those " -"operations you may want to consider " -"http://rtyley.github.io/bfg-repo-cleaner/[The BFG Repo-Cleaner], a JVM-based " -"alternative to git-filter-branch, typically at least 10-50x faster for those " -"use-cases, and with quite different characteristics:" +#. type: Labeled list +#: en/git-fast-export.txt:74 en/git-fast-import.txt:87 +#, no-wrap +msgid "--import-marks=<file>" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:449 +#: en/git-fast-export.txt:78 msgid "" -"Any particular version of a file is cleaned exactly _once_. The BFG, unlike " -"git-filter-branch, does not give you the opportunity to handle a file " -"differently based on where or when it was committed within your " -"history. This constraint gives the core performance benefit of The BFG, and " -"is well-suited to the task of cleansing bad data - you don't care _where_ " -"the bad data is, you just want it _gone_." +"Before processing any input, load the marks specified in <file>. The input " +"file must exist, must be readable, and must use the same format as produced " +"by --export-marks." msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:455 +#: en/git-fast-export.txt:83 msgid "" -"By default The BFG takes full advantage of multi-core machines, cleansing " -"commit file-trees in parallel. git-filter-branch cleans commits sequentially " -"(i.e. in a single-threaded manner), though it _is_ possible to write filters " -"that include their own parallelism, in the scripts executed against each " -"commit." +"Any commits that have already been marked will not be exported again. If " +"the backend uses a similar --import-marks file, this allows for incremental " +"bidirectional exporting of the repository by keeping the marks the same " +"across runs." +msgstr "" + +#. type: Labeled list +#: en/git-fast-export.txt:84 +#, no-wrap +msgid "--fake-missing-tagger" msgstr "" #. type: Plain text -#: en/git-filter-branch.txt:460 +#: en/git-fast-export.txt:89 msgid "" -"The http://rtyley.github.io/bfg-repo-cleaner/#examples[command options] are " -"much more restrictive than git-filter branch, and dedicated just to the " -"tasks of removing unwanted data- e.g: `--strip-blobs-bigger-than 1M`." +"Some old repositories have tags without a tagger. The fast-import protocol " +"was pretty strict about that, and did not allow that. So fake a tagger to " +"be able to fast-import the output." msgstr "" -#. type: Title = -#: en/git-fmt-merge-msg.txt:2 +#. type: Labeled list +#: en/git-fast-export.txt:90 #, no-wrap -msgid "git-fmt-merge-msg(1)" +msgid "--use-done-feature" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:7 -msgid "git-fmt-merge-msg - Produce a merge commit message" +#: en/git-fast-export.txt:93 +msgid "" +"Start the stream with a 'feature done' stanza, and terminate it with a " +"'done' command." msgstr "" -#. type: Plain text -#: en/git-fmt-merge-msg.txt:14 +#. type: Labeled list +#: en/git-fast-export.txt:94 #, no-wrap -msgid "" -"'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log]\n" -"'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] -F <file>\n" +msgid "--no-data" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:20 +#: en/git-fast-export.txt:101 msgid "" -"Takes the list of merged objects on stdin and produces a suitable commit " -"message to be used for the merge commit, usually to be passed as the " -"'<merge-message>' argument of 'git merge'." +"Skip output of blob objects and instead refer to blobs via their original " +"SHA-1 hash. This is useful when rewriting the directory structure or " +"history of a repository without touching the contents of individual files. " +"Note that the resulting stream can only be used by a repository which " +"already contains the necessary objects." +msgstr "" + +#. type: Labeled list +#: en/git-fast-export.txt:102 en/git-ls-tree.txt:72 +#, no-wrap +msgid "--full-tree" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:23 +#: en/git-fast-export.txt:107 msgid "" -"This command is intended mostly for internal use by scripts automatically " -"invoking 'git merge'." +"This option will cause fast-export to issue a \"deleteall\" directive for " +"each commit followed by a full list of all files in the commit (as opposed " +"to just listing the files which are different from the commit's first " +"parent)." msgstr "" #. type: Labeled list -#: en/git-fmt-merge-msg.txt:27 en/merge-options.txt:45 +#: en/git-fast-export.txt:108 #, no-wrap -msgid "--log[=<n>]" +msgid "--anonymize" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:33 +#: en/git-fast-export.txt:112 msgid "" -"In addition to branch names, populate the log message with one-line " -"descriptions from the actual commits that are being merged. At most <n> " -"commits from each merge parent will be used (20 if <n> is omitted). This " -"overrides the `merge.log` configuration variable." +"Anonymize the contents of the repository while still retaining the shape of " +"the history and stored tree. See the section on `ANONYMIZING` below." msgstr "" #. type: Labeled list -#: en/git-fmt-merge-msg.txt:34 en/merge-options.txt:46 +#: en/git-fast-export.txt:113 #, no-wrap -msgid "--no-log" +msgid "--reference-excluded-parents" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:37 -msgid "Do not list one-line descriptions from the actual commits being merged." +#: en/git-fast-export.txt:124 +msgid "" +"By default, running a command such as `git fast-export master~5..master` " +"will not include the commit master{tilde}5 and will make master{tilde}4 no " +"longer have master{tilde}5 as a parent (though both the old master{tilde}4 " +"and new master{tilde}4 will have all the same files). Use --reference-" +"excluded-parents to instead have the the stream refer to commits in the " +"excluded range of history by their sha1sum. Note that the resulting stream " +"can only be used by a repository which already contains the necessary parent " +"commits." msgstr "" #. type: Labeled list -#: en/git-fmt-merge-msg.txt:38 +#: en/git-fast-export.txt:125 #, no-wrap -msgid "--[no-]summary" +msgid "--show-original-ids" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:41 +#: en/git-fast-export.txt:131 msgid "" -"Synonyms to --log and --no-log; these are deprecated and will be removed in " -"the future." +"Add an extra directive to the output for commits and blobs, `original-oid " +"<SHA1SUM>`. While such directives will likely be ignored by importers such " +"as git-fast-import, it may be useful for intermediary filters (e.g. for " +"rewriting commit messages which refer to older commits, or for stripping " +"blobs by id)." msgstr "" #. type: Labeled list -#: en/git-fmt-merge-msg.txt:43 +#: en/git-fast-export.txt:132 #, no-wrap -msgid "--message <message>" +msgid "--refspec" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:46 +#: en/git-fast-export.txt:135 msgid "" -"Use <message> instead of the branch names for the first line of the log " -"message. For use with `--log`." +"Apply the specified refspec to each ref exported. Multiple of them can be " +"specified." msgstr "" #. type: Labeled list -#: en/git-fmt-merge-msg.txt:48 +#: en/git-fast-export.txt:136 #, no-wrap -msgid "--file <file>" +msgid "[<git-rev-list-args>...]" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:51 -msgid "Take the list of merged objects from <file> instead of stdin." +#: en/git-fast-export.txt:144 +msgid "" +"A list of arguments, acceptable to 'git rev-parse' and 'git rev-list', that " +"specifies the specific objects and references to export. For example, " +"`master~10..master` causes the current master reference to be exported along " +"with all objects added since its 10th ancestor commit and (unless the --" +"reference-excluded-parents option is specified) all files common to " +"master{tilde}9 and master{tilde}10." msgstr "" -#. type: Labeled list -#: en/git-fmt-merge-msg.txt:56 +#. type: delimited block - +#: en/git-fast-export.txt:150 #, no-wrap -msgid "merge.summary" +msgid "$ git fast-export --all | (cd /empty/repository && git fast-import)\n" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:59 +#: en/git-fast-export.txt:155 msgid "" -"Synonym to `merge.log`; this is deprecated and will be removed in the " -"future." +"This will export the whole repository and import it into the existing empty " +"repository. Except for reencoding commits that are not in UTF-8, it would " +"be a one-to-one mirror." msgstr "" #. type: delimited block - -#: en/git-fmt-merge-msg.txt:66 +#: en/git-fast-export.txt:160 #, no-wrap msgid "" -"$ git fetch origin master\n" -"$ git fmt-merge-msg --log <$GIT_DIR/FETCH_HEAD\n" +"$ git fast-export master~5..master |\n" +"\tsed \"s|refs/heads/master|refs/heads/other|\" |\n" +"\tgit fast-import\n" msgstr "" #. type: Plain text -#: en/git-fmt-merge-msg.txt:70 +#: en/git-fast-export.txt:164 msgid "" -"Print a log message describing a merge of the \"master\" branch from the " -"\"origin\" remote." +"This makes a new branch called 'other' from 'master~5..master' (i.e. if " +"'master' has linear history, it will take the last 5 commits)." msgstr "" -#. type: Labeled list -#: en/git-fmt-merge-msg.txt:75 en/cmds-mainporcelain.txt:64 -#, no-wrap -msgid "linkgit:git-merge[1]" +#. type: Plain text +#: en/git-fast-export.txt:168 +msgid "" +"Note that this assumes that none of the blobs and commit messages referenced " +"by that revision range contains the string 'refs/heads/master'." msgstr "" -#. type: Title = -#: en/git-for-each-ref.txt:2 +#. type: Title - +#: en/git-fast-export.txt:171 #, no-wrap -msgid "git-for-each-ref(1)" +msgid "ANONYMIZING" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:7 -msgid "git-for-each-ref - Output information on each ref" +#: en/git-fast-export.txt:179 +msgid "" +"If the `--anonymize` option is given, git will attempt to remove all " +"identifying information from the repository while still retaining enough of " +"the original tree and history patterns to reproduce some bugs. The goal is " +"that a git bug which is found on a private repository will persist in the " +"anonymized repository, and the latter can be shared with git developers to " +"help solve the bug." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:15 -#, no-wrap +#: en/git-fast-export.txt:191 msgid "" -"'git for-each-ref' [--count=<count>] [--shell|--perl|--python|--tcl]\n" -"\t\t [(--sort=<key>)...] [--format=<format>] [<pattern>...]\n" -"\t\t [--points-at <object>] [(--merged | --no-merged) [<object>]]\n" -"\t\t [--contains [<object>]]\n" +"With this option, git will replace all refnames, paths, blob contents, " +"commit and tag messages, names, and email addresses in the output with " +"anonymized data. Two instances of the same string will be replaced " +"equivalently (e.g., two commits with the same author will have the same " +"anonymized author in the output, but bear no resemblance to the original " +"author string). The relationship between commits, branches, and tags is " +"retained, as well as the commit timestamps (but the commit messages and " +"refnames bear no resemblance to the originals). The relative makeup of the " +"tree is retained (e.g., if you have a root tree with 10 files and 3 trees, " +"so will the output), but their names and the contents of the files will be " +"replaced." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:25 +#: en/git-fast-export.txt:194 msgid "" -"Iterate over all refs that match `<pattern>` and show them according to the " -"given `<format>`, after sorting them according to the given set of `<key>`. " -"If `<count>` is given, stop after showing that many refs. The interpolated " -"values in `<format>` can optionally be quoted as string literals in the " -"specified host language allowing their direct evaluation in that language." +"If you think you have found a git bug, you can start by exporting an " +"anonymized stream of the whole repository:" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:28 +#. type: delimited block - +#: en/git-fast-export.txt:197 #, no-wrap -msgid "<count>" +msgid "$ git fast-export --anonymize --all >anon-stream\n" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:32 +#: en/git-fast-export.txt:202 msgid "" -"By default the command shows all refs that match `<pattern>`. This option " -"makes it stop after showing that many refs." +"Then confirm that the bug persists in a repository created from that stream " +"(many bugs will not, as they really do depend on the exact repository " +"contents):" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:33 +#. type: delimited block - +#: en/git-fast-export.txt:208 #, no-wrap -msgid "<key>" +msgid "" +"$ git init anon-repo\n" +"$ cd anon-repo\n" +"$ git fast-import <../anon-stream\n" +"$ ... test your bug ...\n" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:39 +#: en/git-fast-export.txt:215 msgid "" -"A field name to sort on. Prefix `-` to sort in descending order of the " -"value. When unspecified, `refname` is used. You may use the --sort=<key> " -"option multiple times, in which case the last key becomes the primary key." +"If the anonymized repository shows the bug, it may be worth sharing `anon-" +"stream` along with a regular bug report. Note that the anonymized stream " +"compresses very well, so gzipping it is encouraged. If you want to examine " +"the stream to see that it does not contain any private data, you can peruse " +"it directly before sending. You may also want to try:" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:40 en/git-tag.txt:170 +#. type: delimited block - +#: en/git-fast-export.txt:218 #, no-wrap -msgid "<format>" +msgid "$ perl -pe 's/\\d+/X/g' <anon-stream | sort -u | less\n" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:51 +#: en/git-fast-export.txt:224 msgid "" -"A string that interpolates `%(fieldname)` from the object pointed at by a " -"ref being shown. If `fieldname` is prefixed with an asterisk (`*`) and the " -"ref points at a tag object, the value for the field in the object tag refers " -"is used. When unspecified, defaults to `%(objectname) SPC %(objecttype) TAB " -"%(refname)`. It also interpolates `%%` to `%`, and `%xx` where `xx` are hex " -"digits interpolates to character with hex code `xx`; for example `%00` " -"interpolates to `\\0` (NUL), `%09` to `\\t` (TAB) and `%0a` to `\\n` (LF)." -msgstr "" - -#. type: Labeled list -#: en/git-for-each-ref.txt:52 en/git-show-ref.txt:88 -#, no-wrap -msgid "<pattern>..." +"which shows all of the unique lines (with numbers converted to \"X\", to " +"collapse \"User 0\", \"User 1\", etc into \"User X\"). This produces a much " +"smaller output, and it is usually easy to quickly confirm that there is no " +"private data in the stream." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:57 +#: en/git-fast-export.txt:232 msgid "" -"If one or more patterns are given, only refs are shown that match against at " -"least one pattern, either using fnmatch(3) or literally, in the latter case " -"matching completely or from the beginning up to a slash." +"Since 'git fast-import' cannot tag trees, you will not be able to export the " +"linux.git repository completely, as it contains a tag referencing a tree " +"instead of a commit." msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:58 +#. type: Title = +#: en/git-fast-import.txt:2 #, no-wrap -msgid "--shell" +msgid "git-fast-import(1)" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:59 -#, no-wrap -msgid "--perl" +#. type: Plain text +#: en/git-fast-import.txt:7 +msgid "git-fast-import - Backend for fast Git data importers" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:60 +#. type: Plain text +#: en/git-fast-import.txt:13 #, no-wrap -msgid "--python" +msgid "frontend | 'git fast-import' [<options>]\n" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:61 -#, no-wrap -msgid "--tcl" +#. type: Plain text +#: en/git-fast-import.txt:20 +msgid "" +"This program is usually not what the end user wants to run directly. Most " +"end users want to use one of the existing frontend programs, which parses a " +"specific type of foreign source and feeds the contents stored there to 'git " +"fast-import'." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:66 +#: en/git-fast-import.txt:26 msgid "" -"If given, strings that substitute `%(fieldname)` placeholders are quoted as " -"string literals suitable for the specified host language. This is meant to " -"produce a scriptlet that can directly be `eval`ed." +"fast-import reads a mixed command/data stream from standard input and writes " +"one or more packfiles directly into the current repository. When EOF is " +"received on standard input, fast import writes out updated branch and tag " +"refs, fully updating the current repository with the newly imported data." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:69 -msgid "Only list refs which points at the given object." +#: en/git-fast-import.txt:32 +msgid "" +"The fast-import backend itself can import into an empty repository (one that " +"has already been initialized by 'git init') or incrementally update an " +"existing populated repository. Whether or not incremental imports are " +"supported from a particular foreign source depends on the frontend program " +"in use." msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:70 -#, no-wrap -msgid "--merged [<object>]" +#. type: Plain text +#: en/git-fast-import.txt:41 +msgid "" +"Force updating modified existing branches, even if doing so would cause " +"commits to be lost (as the new commit does not contain the old commit)." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:73 +#: en/git-fast-import.txt:47 msgid "" -"Only list refs whose tips are reachable from the specified commit (HEAD if " -"not specified)." +"Disable the output shown by --stats, making fast-import usually be silent " +"when it is successful. However, if the import stream has directives " +"intended to show user output (e.g. `progress` directives), the corresponding " +"messages will still be shown." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:74 +#: en/git-fast-import.txt:48 #, no-wrap -msgid "--no-merged [<object>]" +msgid "--stats" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:77 +#: en/git-fast-import.txt:53 msgid "" -"Only list refs whose tips are not reachable from the specified commit (HEAD " -"if not specified)." +"Display some basic statistics about the objects fast-import has created, the " +"packfiles they were stored into, and the memory used by fast-import during " +"this run. Showing this output is currently the default, but can be disabled " +"with --quiet." msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:78 +#. type: Title ~ +#: en/git-fast-import.txt:55 #, no-wrap -msgid "--contains [<object>]" +msgid "Options for Frontends" msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:81 -msgid "Only list refs which contain the specified commit (HEAD if not specified)." +#. type: Labeled list +#: en/git-fast-import.txt:57 +#, no-wrap +msgid "--cat-blob-fd=<fd>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:84 -msgid "Sorting and filtering refs are case insensitive." +#: en/git-fast-import.txt:62 +msgid "" +"Write responses to `get-mark`, `cat-blob`, and `ls` queries to the file " +"descriptor <fd> instead of `stdout`. Allows `progress` output intended for " +"the end-user to be separated from other output." msgstr "" -#. type: Title - -#: en/git-for-each-ref.txt:86 +#. type: Labeled list +#: en/git-fast-import.txt:63 #, no-wrap -msgid "FIELD NAMES" +msgid "--date-format=<fmt>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:91 +#: en/git-fast-import.txt:68 msgid "" -"Various values from structured fields in referenced objects can be used to " -"interpolate into the resulting output, or as sort keys." -msgstr "" - -#. type: Plain text -#: en/git-for-each-ref.txt:93 -msgid "For all objects, the following names can be used:" +"Specify the type of dates the frontend will supply to fast-import within " +"`author`, `committer` and `tagger` commands. See ``Date Formats'' below for " +"details about which formats are supported, and their syntax." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:94 +#: en/git-fast-import.txt:69 #, no-wrap -msgid "refname" +msgid "--done" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:110 +#: en/git-fast-import.txt:74 msgid "" -"The name of the ref (the part after $GIT_DIR/). For a non-ambiguous short " -"name of the ref append `:short`. The option core.warnAmbiguousRefs is used " -"to select the strict abbreviation mode. If `lstrip=<N>` (`rstrip=<N>`) is " -"appended, strips `<N>` slash-separated path components from the front (back) " -"of the refname (e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` " -"and `%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`). If `<N>` is a " -"negative number, strip as many path components as necessary from the " -"specified end to leave `-<N>` path components (e.g. `%(refname:lstrip=-2)` " -"turns `refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)` turns " -"`refs/tags/foo` into `refs`). When the ref does not have enough components, " -"the result becomes an empty string if stripping with positive <N>, or it " -"becomes the full refname if stripping with negative <N>. Neither is an " -"error." +"Terminate with error if there is no `done` command at the end of the " +"stream. This option might be useful for detecting errors that cause the " +"frontend to terminate before it has started to write a stream." msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:112 -msgid "`strip` can be used as a synomym to `lstrip`." +#. type: Title ~ +#: en/git-fast-import.txt:76 +#, no-wrap +msgid "Locations of Marks Files" msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:113 -#, no-wrap -msgid "objecttype" +#. type: Plain text +#: en/git-fast-import.txt:86 +msgid "" +"Dumps the internal marks table to <file> when complete. Marks are written " +"one per line as `:markid SHA-1`. Frontends can use this file to validate " +"imports after they have been completed, or to save the marks table across " +"incremental runs. As <file> is only opened and truncated at checkpoint (or " +"completion) the same path can also be safely given to --import-marks." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:115 -msgid "The type of the object (`blob`, `tree`, `commit`, `tag`)." +#: en/git-fast-import.txt:94 +msgid "" +"Before processing any input, load the marks specified in <file>. The input " +"file must exist, must be readable, and must use the same format as produced " +"by --export-marks. Multiple options may be supplied to import more than one " +"set of marks. If a mark is defined to different values, the last file wins." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:116 +#: en/git-fast-import.txt:95 #, no-wrap -msgid "objectsize" +msgid "--import-marks-if-exists=<file>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:118 -msgid "The size of the object (the same as 'git cat-file -s' reports)." +#: en/git-fast-import.txt:98 +msgid "" +"Like --import-marks but instead of erroring out, silently skips the file if " +"it does not exist." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:119 +#: en/git-fast-import.txt:99 #, no-wrap -msgid "objectname" +msgid "--[no-]relative-marks" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:125 +#: en/git-fast-import.txt:106 msgid "" -"The object name (aka SHA-1). For a non-ambiguous abbreviation of the object " -"name append `:short`. For an abbreviation of the object name with desired " -"length append `:short=<length>`, where the minimum length is " -"MINIMUM_ABBREV. The length may be exceeded to ensure unique object names." -msgstr "" - -#. type: Labeled list -#: en/git-for-each-ref.txt:126 -#, no-wrap -msgid "upstream" +"After specifying --relative-marks the paths specified with --import-marks= " +"and --export-marks= are relative to an internal directory in the current " +"repository. In git-fast-import this means that the paths are relative to " +"the .git/info/fast-import directory. However, other importers may use a " +"different location." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:140 +#: en/git-fast-import.txt:109 msgid "" -"The name of a local ref which can be considered ``upstream'' from the " -"displayed ref. Respects `:short`, `:lstrip` and `:rstrip` in the same way as " -"`refname` above. Additionally respects `:track` to show \"[ahead N, behind " -"M]\" and `:trackshort` to show the terse version: \">\" (ahead), \"<\" " -"(behind), \"<>\" (ahead and behind), or \"=\" (in sync). `:track` also " -"prints \"[gone]\" whenever unknown upstream ref is encountered. Append " -"`:track,nobracket` to show tracking information without brackets (i.e " -"\"ahead N, behind M\"). Has no effect if the ref does not have tracking " -"information associated with it. All the options apart from `nobracket` are " -"mutually exclusive, but if used together the last option is selected." +"Relative and non-relative marks may be combined by interweaving --(no-)-" +"relative-marks with the --(import|export)-marks= options." msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:141 +#. type: Title ~ +#: en/git-fast-import.txt:111 #, no-wrap -msgid "push" +msgid "Performance and Compression Tuning" msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:147 -msgid "" -"The name of a local ref which represents the `@{push}` location for the " -"displayed ref. Respects `:short`, `:lstrip`, `:rstrip`, `:track`, and " -"`:trackshort` options as `upstream` does. Produces an empty string if no " -"`@{push}` ref is configured." +#. type: Labeled list +#: en/git-fast-import.txt:113 +#, no-wrap +msgid "--active-branches=<n>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:151 -msgid "'*' if HEAD matches current ref (the checked out branch), ' ' otherwise." +#: en/git-fast-import.txt:116 +msgid "" +"Maximum number of branches to maintain active at once. See ``Memory " +"Utilization'' below for details. Default is 5." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:152 en/config.txt:214 en/diff-options.txt:241 +#: en/git-fast-import.txt:117 #, no-wrap -msgid "color" +msgid "--big-file-threshold=<n>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:155 +#: en/git-fast-import.txt:122 msgid "" -"Change output color. Followed by `:<colorname>`, where names are described " -"in `color.branch.*`." +"Maximum size of a blob that fast-import will attempt to create a delta for, " +"expressed in bytes. The default is 512m (512 MiB). Some importers may wish " +"to lower this on systems with constrained memory." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:156 +#: en/git-fast-import.txt:123 en/git-fetch-pack.txt:85 +#: en/git-pack-objects.txt:89 en/git-repack.txt:90 #, no-wrap -msgid "align" +msgid "--depth=<n>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:170 -msgid "" -"Left-, middle-, or right-align the content between %(align:...) and " -"%(end). The \"align:\" is followed by `width=<width>` and " -"`position=<position>` in any order separated by a comma, where the " -"`<position>` is either left, right or middle, default being left and " -"`<width>` is the total length of the content with alignment. For brevity, " -"the \"width=\" and/or \"position=\" prefixes may be omitted, and bare " -"<width> and <position> used instead. For instance, " -"`%(align:<width>,<position>)`. If the contents length is more than the width " -"then no alignment is performed. If used with `--quote` everything in between " -"%(align:...) and %(end) is quoted, but if nested then only the topmost level " -"performs quoting." +#: en/git-fast-import.txt:126 +msgid "Maximum delta depth, for blob and tree deltification. Default is 50." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:171 +#: en/git-fast-import.txt:127 #, no-wrap -msgid "if" +msgid "--export-pack-edges=<file>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:183 +#: en/git-fast-import.txt:135 msgid "" -"Used as %(if)...%(then)...%(end) or %(if)...%(then)...%(else)...%(end). If " -"there is an atom with value or string literal after the %(if) then " -"everything after the %(then) is printed, else if the %(else) atom is used, " -"then everything after %(else) is printed. We ignore space when evaluating " -"the string before %(then), this is useful when we use the %(HEAD) atom which " -"prints either \"*\" or \" \" and we want to apply the 'if' condition only on " -"the 'HEAD' ref. Append \":equals=<string>\" or \":notequals=<string>\" to " -"compare the value between the %(if:...) and %(then) atoms with the given " -"string." +"After creating a packfile, print a line of data to <file> listing the " +"filename of the packfile and the last commit on each branch that was written " +"to that packfile. This information may be useful after importing projects " +"whose total object set exceeds the 4 GiB packfile limit, as these commits " +"can be used as edge points during calls to 'git pack-objects'." msgstr "" #. type: Labeled list -#: en/git-for-each-ref.txt:184 +#: en/git-fast-import.txt:136 en/git-pack-objects.txt:114 en/git-repack.txt:118 #, no-wrap -msgid "symref" +msgid "--max-pack-size=<n>" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:189 -msgid "" -"The ref which the given symbolic ref refers to. If not a symbolic ref, " -"nothing is printed. Respects the `:short`, `:lstrip` and `:rstrip` options " -"in the same way as `refname` above." +#: en/git-fast-import.txt:139 +msgid "Maximum size of each output packfile. The default is unlimited." msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:193 -msgid "" -"In addition to the above, for commit and tag objects, the header field names " -"(`tree`, `parent`, `object`, `type`, and `tag`) can be used to specify the " -"value in the header field." +#. type: Labeled list +#: en/git-fast-import.txt:140 +#, no-wrap +msgid "fastimport.unpackLimit" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:198 -msgid "" -"For commit and tag objects, the special `creatordate` and `creator` fields " -"will correspond to the appropriate date or name-email-date tuple from the " -"`committer` or `tagger` fields depending on the object type. These are " -"intended for working on a mix of annotated and lightweight tags." +#: en/git-fast-import.txt:142 +msgid "See linkgit:git-config[1]" msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:202 -msgid "" -"Fields that have name-email-date tuple as its value (`author`, `committer`, " -"and `tagger`) can be suffixed with `name`, `email`, and `date` to extract " -"the named component." +#. type: Title - +#: en/git-fast-import.txt:144 en/git-p4.txt:507 +#, no-wrap +msgid "PERFORMANCE" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:211 +#: en/git-fast-import.txt:151 msgid "" -"The complete message in a commit and tag object is `contents`. Its first " -"line is `contents:subject`, where subject is the concatenation of all lines " -"of the commit message up to the first blank line. The next line is " -"'contents:body', where body is all of the lines after the first blank line. " -"The optional GPG signature is `contents:signature`. The first `N` lines of " -"the message is obtained using `contents:lines=N`. Additionally, the " -"trailers as interpreted by linkgit:git-interpret-trailers[1] are obtained as " -"'contents:trailers'." +"The design of fast-import allows it to import large projects in a minimum " +"amount of memory usage and processing time. Assuming the frontend is able " +"to keep up with fast-import and feed it a constant stream of data, import " +"times for projects holding 10+ years of history and containing 100,000+ " +"individual commits are generally completed in just 1-2 hours on quite modest " +"(~$2,000 USD) hardware." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:215 +#: en/git-fast-import.txt:157 msgid "" -"For sorting purposes, fields with numeric values sort in numeric order " -"(`objectsize`, `authordate`, `committerdate`, `creatordate`, `taggerdate`). " -"All other fields are used to sort in their byte-value order." +"Most bottlenecks appear to be in foreign source data access (the source just " +"cannot extract revisions fast enough) or disk IO (fast-import writes as fast " +"as the disk will take the data). Imports will run faster if the source data " +"is stored on a different drive than the destination Git repository (due to " +"less IO contention)." msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:218 -msgid "" -"There is also an option to sort by versions, this can be done by using the " -"fieldname `version:refname` or its alias `v:refname`." +#. type: Title - +#: en/git-fast-import.txt:160 +#, no-wrap +msgid "DEVELOPMENT COST" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:222 +#: en/git-fast-import.txt:167 msgid "" -"In any case, a field name that refers to a field inapplicable to the object " -"referred by the ref does not cause an error. It returns an empty string " -"instead." +"A typical frontend for fast-import tends to weigh in at approximately 200 " +"lines of Perl/Python/Ruby code. Most developers have been able to create " +"working importers in just a couple of hours, even though it is their first " +"exposure to fast-import, and sometimes even to Git. This is an ideal " +"situation, given that most conversion tools are throw-away (use once, and " +"never look back)." msgstr "" -#. type: Plain text -#: en/git-for-each-ref.txt:226 -msgid "" -"As a special case for the date-type fields, you may specify a format for the " -"date by adding `:` followed by date format name (see the values the `--date` " -"option to linkgit:git-rev-list[1] takes)." +#. type: Title - +#: en/git-fast-import.txt:170 +#, no-wrap +msgid "PARALLEL OPERATION" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:229 +#: en/git-fast-import.txt:175 msgid "" -"Some atoms like %(align) and %(if) always require a matching %(end). We " -"call them \"opening atoms\" and sometimes denote them as %($open)." +"Like 'git push' or 'git fetch', imports handled by fast-import are safe to " +"run alongside parallel `git repack -a -d` or `git gc` invocations, or any " +"other Git operation (including 'git prune', as loose objects are never used " +"by fast-import)." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:234 +#: en/git-fast-import.txt:184 msgid "" -"When a scripting language specific quoting is in effect, everything between " -"a top-level opening atom and its matching %(end) is evaluated according to " -"the semantics of the opening atom and only its result from the top-level is " -"quoted." +"fast-import does not lock the branch or tag refs it is actively importing. " +"After the import, during its ref update phase, fast-import tests each " +"existing branch ref to verify the update will be a fast-forward update (the " +"commit stored in the ref is contained in the new history of the commit to be " +"written). If the update is not a fast-forward update, fast-import will skip " +"updating that ref and instead prints a warning message. fast-import will " +"always attempt to update all branch refs, and does not stop on the first " +"failure." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:241 +#: en/git-fast-import.txt:188 msgid "" -"An example directly producing formatted text. Show the most recent 3 tagged " -"commits:" -msgstr "" - -#. type: delimited block - -#: en/git-for-each-ref.txt:244 en/git-for-each-ref.txt:260 en/git-for-each-ref.txt:274 -#, no-wrap -msgid "#!/bin/sh\n" +"Branch updates can be forced with --force, but it's recommended that this " +"only be used on an otherwise quiet repository. Using --force is not " +"necessary for an initial import into an empty repository." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:250 +#. type: Title - +#: en/git-fast-import.txt:191 #, no-wrap -msgid "" -"git for-each-ref --count=3 --sort='-*authordate' \\\n" -"--format='From: %(*authorname) %(*authoremail)\n" -"Subject: %(*subject)\n" -"Date: %(*authordate)\n" -"Ref: %(*refname)\n" +msgid "TECHNICAL DISCUSSION" msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:253 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:198 msgid "" -"%(*body)\n" -"' 'refs/tags'\n" +"fast-import tracks a set of branches in memory. Any branch can be created " +"or modified at any point during the import process by sending a `commit` " +"command on the input stream. This design allows a frontend program to " +"process an unlimited number of branches simultaneously, generating commits " +"in the order they are available from the source data. It also simplifies " +"the frontend programs considerably." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:258 +#: en/git-fast-import.txt:207 msgid "" -"A simple example showing the use of shell eval on the output, demonstrating " -"the use of --shell. List the prefixes of all heads:" +"fast-import does not use or alter the current working directory, or any file " +"within it. (It does however update the current Git repository, as " +"referenced by `GIT_DIR`.) Therefore an import frontend may use the working " +"directory for its own purposes, such as extracting file revisions from the " +"foreign source. This ignorance of the working directory also allows fast-" +"import to run very quickly, as it does not need to perform any costly file " +"update operations when switching between branches." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:267 +#. type: Title - +#: en/git-fast-import.txt:209 #, no-wrap -msgid "" -"git for-each-ref --shell --format=\"ref=%(refname)\" refs/heads | \\\n" -"while read entry\n" -"do\n" -"\teval \"$entry\"\n" -"\techo `dirname $ref`\n" -"done\n" +msgid "INPUT FORMAT" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:272 +#: en/git-fast-import.txt:215 msgid "" -"A bit more elaborate report on tags, demonstrating that the format may be an " -"entire script:" +"With the exception of raw file data (which Git does not interpret) the fast-" +"import input format is text (ASCII) based. This text based format " +"simplifies development and debugging of frontend programs, especially when a " +"higher level language such as Perl, Python or Ruby is being used." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:279 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:223 msgid "" -"fmt='\n" -"\tr=%(refname)\n" -"\tt=%(*objecttype)\n" -"\tT=${r#refs/tags/}\n" +"fast-import is very strict about its input. Where we say SP below we mean " +"*exactly* one space. Likewise LF means one (and only one) linefeed and HT " +"one (and only one) horizontal tab. Supplying additional whitespace " +"characters will cause unexpected results, such as branch names or file names " +"with leading or trailing spaces in their name, or early termination of fast-" +"import when it encounters unexpected input." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:286 +#. type: Title ~ +#: en/git-fast-import.txt:225 #, no-wrap -msgid "" -"\to=%(*objectname)\n" -"\tn=%(*authorname)\n" -"\te=%(*authoremail)\n" -"\ts=%(*subject)\n" -"\td=%(*authordate)\n" -"\tb=%(*body)\n" +msgid "Stream Comments" msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:305 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:232 msgid "" -"\tkind=Tag\n" -"\tif test \"z$t\" = z\n" -"\tthen\n" -"\t\t# could be a lightweight tag\n" -"\t\tt=%(objecttype)\n" -"\t\tkind=\"Lightweight tag\"\n" -"\t\to=%(objectname)\n" -"\t\tn=%(authorname)\n" -"\t\te=%(authoremail)\n" -"\t\ts=%(subject)\n" -"\t\td=%(authordate)\n" -"\t\tb=%(body)\n" -"\tfi\n" -"\techo \"$kind $T points at a $t object $o\"\n" -"\tif test \"z$t\" = zcommit\n" -"\tthen\n" -"\t\techo \"The commit was authored by $n $e\n" -"at $d, and titled\n" +"To aid in debugging frontends fast-import ignores any line that begins with " +"`#` (ASCII pound/hash) up to and including the line ending `LF`. A comment " +"line may contain any sequence of bytes that does not contain an LF and " +"therefore may be used to include any detailed debugging information that " +"might be specific to the frontend and useful when inspecting a fast-import " +"data stream." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:307 +#. type: Title ~ +#: en/git-fast-import.txt:234 #, no-wrap -msgid " $s\n" +msgid "Date Formats" msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:314 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:238 msgid "" -"Its message reads as:\n" -"\"\n" -"\t\techo \"$b\" | sed -e \"s/^/ /\"\n" -"\t\techo\n" -"\tfi\n" -"'\n" +"The following date formats are supported. A frontend should select the " +"format it will use for this import by passing the format name in the --date-" +"format=<fmt> command-line option." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:320 +#. type: Labeled list +#: en/git-fast-import.txt:239 #, no-wrap -msgid "" -"eval=`git for-each-ref --shell --format=\"$fmt\" \\\n" -"\t--sort='*objecttype' \\\n" -"\t--sort=-taggerdate \\\n" -"\trefs/tags`\n" -"eval \"$eval\"\n" +msgid "`raw`" msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:325 +#: en/git-fast-import.txt:243 msgid "" -"An example to show the usage of %(if)...%(then)...%(else)...%(end). This " -"prefixes the current branch with a star." +"This is the Git native format and is `<time> SP <offutc>`. It is also fast-" +"import's default format, if --date-format was not specified." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:328 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:247 msgid "" -"git for-each-ref --format=\"%(if)%(HEAD)%(then)* %(else) " -"%(end)%(refname:short)\" refs/heads/\n" +"The time of the event is specified by `<time>` as the number of seconds " +"since the UNIX epoch (midnight, Jan 1, 1970, UTC) and is written as an ASCII " +"decimal integer." msgstr "" #. type: Plain text -#: en/git-for-each-ref.txt:333 +#: en/git-fast-import.txt:253 msgid "" -"An example to show the usage of %(if)...%(then)...%(end). This prints the " -"authorname, if present." +"The local offset is specified by `<offutc>` as a positive or negative offset " +"from UTC. For example EST (which is 5 hours behind UTC) would be expressed " +"in `<tz>` by ``-0500'' while UTC is ``+0000''. The local offset does not " +"affect `<time>`; it is used only as an advisement to help formatting " +"routines display the timestamp." msgstr "" -#. type: delimited block - -#: en/git-for-each-ref.txt:336 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:259 msgid "" -"git for-each-ref --format=\"%(refname)%(if)%(authorname)%(then) Authored by: " -"%(authorname)%(end)\"\n" +"If the local offset is not available in the source material, use ``+0000'', " +"or the most common local offset. For example many organizations have a CVS " +"repository which has only ever been accessed by users who are located in the " +"same location and time zone. In this case a reasonable offset from UTC " +"could be assumed." msgstr "" -#. type: Labeled list -#: en/git-for-each-ref.txt:341 en/cmds-plumbinginterrogators.txt:40 -#, no-wrap -msgid "linkgit:git-show-ref[1]" +#. type: Plain text +#: en/git-fast-import.txt:262 +msgid "" +"Unlike the `rfc2822` format, this format is very strict. Any variation in " +"formatting will cause fast-import to reject the value." msgstr "" -#. type: Title = -#: en/git-format-patch.txt:2 +#. type: Labeled list +#: en/git-fast-import.txt:263 #, no-wrap -msgid "git-format-patch(1)" +msgid "`rfc2822`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:7 -msgid "git-format-patch - Prepare patches for e-mail submission" +#: en/git-fast-import.txt:265 +msgid "This is the standard email format as described by RFC 2822." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:28 -#, no-wrap +#: en/git-fast-import.txt:270 msgid "" -"'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n" -"\t\t [--no-thread | --thread[=<style>]]\n" -"\t\t [(--attach|--inline)[=<boundary>] | --no-attach]\n" -"\t\t [-s | --signoff]\n" -"\t\t [--signature=<signature> | --no-signature]\n" -"\t\t [--signature-file=<file>]\n" -"\t\t [-n | --numbered | -N | --no-numbered]\n" -"\t\t [--start-number <n>] [--numbered-files]\n" -"\t\t [--in-reply-to=Message-Id] [--suffix=.<sfx>]\n" -"\t\t [--ignore-if-in-upstream]\n" -"\t\t [--rfc] [--subject-prefix=Subject-Prefix]\n" -"\t\t [(--reroll-count|-v) <n>]\n" -"\t\t [--to=<email>] [--cc=<email>]\n" -"\t\t [--[no-]cover-letter] [--quiet] [--notes[=<ref>]]\n" -"\t\t [<common diff options>]\n" -"\t\t [ <since> | <revision range> ]\n" +"An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git parser is " +"accurate, but a little on the lenient side. It is the same parser used by " +"'git am' when applying patches received from email." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:36 +#: en/git-fast-import.txt:276 msgid "" -"Prepare each commit with its patch in one file per commit, formatted to " -"resemble UNIX mailbox format. The output of this command is convenient for " -"e-mail submission or for use with 'git am'." +"Some malformed strings may be accepted as valid dates. In some of these " +"cases Git will still be able to obtain the correct date from the malformed " +"string. There are also some types of malformed strings which Git will parse " +"wrong, and yet consider valid. Seriously malformed strings will be rejected." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:38 -msgid "There are two ways to specify which commits to operate on." +#: en/git-fast-import.txt:281 +msgid "" +"Unlike the `raw` format above, the time zone/UTC offset information " +"contained in an RFC 2822 date string is used to adjust the date value to UTC " +"prior to storage. Therefore it is important that this information be as " +"accurate as possible." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:42 +#: en/git-fast-import.txt:286 msgid "" -"A single commit, <since>, specifies that the commits leading to the tip of " -"the current branch that are not in the history that leads to the <since> to " -"be output." +"If the source material uses RFC 2822 style dates, the frontend should let " +"fast-import handle the parsing and conversion (rather than attempting to do " +"it itself) as the Git parser has been well tested in the wild." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:46 +#: en/git-fast-import.txt:291 msgid "" -"Generic <revision range> expression (see \"SPECIFYING REVISIONS\" section in " -"linkgit:gitrevisions[7]) means the commits in the specified range." +"Frontends should prefer the `raw` format if the source material already uses " +"UNIX-epoch format, can be coaxed to give dates in that format, or its format " +"is easily convertible to it, as there is no ambiguity in parsing." +msgstr "" + +#. type: Labeled list +#: en/git-fast-import.txt:292 +#, no-wrap +msgid "`now`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:52 +#: en/git-fast-import.txt:295 msgid "" -"The first rule takes precedence in the case of a single <commit>. To apply " -"the second rule, i.e., format everything since the beginning of history up " -"until <commit>, use the '\\--root' option: `git format-patch --root " -"<commit>`. If you want to format only <commit> itself, you can do this with " -"`git format-patch -1 <commit>`." +"Always use the current time and time zone. The literal `now` must always be " +"supplied for `<when>`." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:59 +#: en/git-fast-import.txt:300 msgid "" -"By default, each output file is numbered sequentially from 1, and uses the " -"first line of the commit message (massaged for pathname safety) as the " -"filename. With the `--numbered-files` option, the output file names will " -"only be numbers, without the first line of the commit appended. The names " -"of the output files are printed to standard output, unless the `--stdout` " -"option is specified." +"This is a toy format. The current time and time zone of this system is " +"always copied into the identity string at the time it is being created by " +"fast-import. There is no way to specify a different time or time zone." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:66 +#: en/git-fast-import.txt:305 msgid "" -"If `-o` is specified, output files are created in <dir>. Otherwise they are " -"created in the current working directory. The default path can be set with " -"the `format.outputDirectory` configuration option. The `-o` option takes " -"precedence over `format.outputDirectory`. To store patches in the current " -"working directory even when `format.outputDirectory` points elsewhere, use " -"`-o .`." +"This particular format is supplied as it's short to implement and may be " +"useful to a process that wants to create a new commit right now, without " +"needing to use a working directory or 'git update-index'." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:70 +#: en/git-fast-import.txt:312 msgid "" -"By default, the subject of a single patch is \"[PATCH] \" followed by the " -"concatenation of lines from the commit message up to the first blank line " -"(see the DISCUSSION section of linkgit:git-commit[1])." +"If separate `author` and `committer` commands are used in a `commit` the " +"timestamps may not match, as the system clock will be polled twice (once for " +"each command). The only way to ensure that both author and committer " +"identity information has the same timestamp is to omit `author` (thus " +"copying from `committer`) or to use a date format other than `now`." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:74 -msgid "" -"When multiple patches are output, the subject prefix will instead be " -"\"[PATCH n/m] \". To force 1/1 to be added for a single patch, use `-n`. " -"To omit patch numbers from the subject, use `-N`." +#. type: Title ~ +#: en/git-fast-import.txt:314 +#, no-wrap +msgid "Commands" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:79 +#: en/git-fast-import.txt:318 msgid "" -"If given `--thread`, `git-format-patch` will generate `In-Reply-To` and " -"`References` headers to make the second and subsequent patch mails appear as " -"replies to the first mail; this also generates a `Message-Id` header to " -"reference." +"fast-import accepts several commands to update the current repository and " +"control the current import process. More detailed discussion (with " +"examples) of each command follows later." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:85 +#. type: Title ~ +#: en/git-fast-import.txt:319 en/git-fast-import.txt:381 #, no-wrap -msgid "-<n>" +msgid "`commit`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:87 -msgid "Prepare patches from the topmost <n> commits." -msgstr "" - -#. type: Labeled list -#: en/git-format-patch.txt:88 -#, no-wrap -msgid "-o <dir>" +#: en/git-fast-import.txt:323 +msgid "" +"Creates a new branch or updates an existing branch by creating a new commit " +"and updating the branch to point at the newly created commit." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:89 +#. type: Title ~ +#: en/git-fast-import.txt:324 en/git-fast-import.txt:759 #, no-wrap -msgid "--output-directory <dir>" +msgid "`tag`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:92 +#: en/git-fast-import.txt:329 msgid "" -"Use <dir> to store the resulting files, instead of the current working " -"directory." +"Creates an annotated tag object from an existing commit or branch. " +"Lightweight tags are not supported by this command, as they are not " +"recommended for recording meaningful points in time." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:94 en/git-shortlog.txt:30 +#. type: Title ~ +#: en/git-fast-import.txt:330 en/git-fast-import.txt:803 #, no-wrap -msgid "--numbered" +msgid "`reset`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:96 -msgid "Name output in '[PATCH n/m]' format, even with a single patch." +#: en/git-fast-import.txt:334 +msgid "" +"Reset an existing branch (or a new branch) to a specific revision. This " +"command must be used to change a branch to a specific revision without " +"making a commit on it." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:98 +#. type: Title ~ +#: en/git-fast-import.txt:335 en/git-fast-import.txt:832 #, no-wrap -msgid "--no-numbered" +msgid "`blob`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:100 -msgid "Name output in '[PATCH]' format." +#: en/git-fast-import.txt:339 +msgid "" +"Convert raw file data into a blob, for future use in a `commit` command. " +"This command is optional and is not needed to perform an import." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:101 +#. type: Title ~ +#: en/git-fast-import.txt:340 en/git-fast-import.txt:905 #, no-wrap -msgid "--start-number <n>" +msgid "`checkpoint`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:103 -msgid "Start numbering the patches at <n> instead of 1." +#: en/git-fast-import.txt:345 +msgid "" +"Forces fast-import to close the current packfile, generate its unique SHA-1 " +"checksum and index, and start a new packfile. This command is optional and " +"is not needed to perform an import." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:104 +#. type: Title ~ +#: en/git-fast-import.txt:346 en/git-fast-import.txt:933 #, no-wrap -msgid "--numbered-files" +msgid "`progress`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:107 +#: en/git-fast-import.txt:350 msgid "" -"Output file names will be a simple number sequence without the default first " -"line of the commit appended." +"Causes fast-import to echo the entire line to its own standard output. This " +"command is optional and is not needed to perform an import." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:109 +#. type: Title ~ +#: en/git-fast-import.txt:351 en/git-fast-import.txt:1143 #, no-wrap -msgid "--keep-subject" +msgid "`done`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:112 -msgid "Do not strip/add '[PATCH]' from the first line of the commit log message." +#: en/git-fast-import.txt:355 +msgid "" +"Marks the end of the stream. This command is optional unless the `done` " +"feature was requested using the `--done` command-line option or `feature " +"done` command." +msgstr "" + +#. type: Title ~ +#: en/git-fast-import.txt:356 en/git-fast-import.txt:958 +#, no-wrap +msgid "`get-mark`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:118 +#: en/git-fast-import.txt:360 msgid "" -"Add `Signed-off-by:` line to the commit message, using the committer " -"identity of yourself. See the signoff option in linkgit:git-commit[1] for " -"more information." +"Causes fast-import to print the SHA-1 corresponding to a mark to the file " +"descriptor set with `--cat-blob-fd`, or `stdout` if unspecified." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:119 en/git-pack-objects.txt:57 +#. type: Title ~ +#: en/git-fast-import.txt:361 en/git-fast-import.txt:977 #, no-wrap -msgid "--stdout" +msgid "`cat-blob`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:122 +#: en/git-fast-import.txt:365 msgid "" -"Print all commits to the standard output in mbox format, instead of creating " -"a file for each one." +"Causes fast-import to print a blob in 'cat-file --batch' format to the file " +"descriptor set with `--cat-blob-fd` or `stdout` if unspecified." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:123 +#. type: Title ~ +#: en/git-fast-import.txt:366 en/git-fast-import.txt:1007 #, no-wrap -msgid "--attach[=<boundary>]" +msgid "`ls`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:127 +#: en/git-fast-import.txt:370 msgid "" -"Create multipart/mixed attachment, the first part of which is the commit " -"message and the patch itself in the second part, with `Content-Disposition: " -"attachment`." +"Causes fast-import to print a line describing a directory entry in 'ls-tree' " +"format to the file descriptor set with `--cat-blob-fd` or `stdout` if " +"unspecified." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:128 +#. type: Title ~ +#: en/git-fast-import.txt:371 en/git-fast-import.txt:1060 #, no-wrap -msgid "--no-attach" +msgid "`feature`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:131 -msgid "Disable the creation of an attachment, overriding the configuration setting." +#: en/git-fast-import.txt:374 +msgid "" +"Enable the specified feature. This requires that fast-import supports the " +"specified feature, and aborts if it does not." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:132 +#. type: Title ~ +#: en/git-fast-import.txt:375 en/git-fast-import.txt:1115 #, no-wrap -msgid "--inline[=<boundary>]" +msgid "`option`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:136 +#: en/git-fast-import.txt:379 msgid "" -"Create multipart/mixed attachment, the first part of which is the commit " -"message and the patch itself in the second part, with `Content-Disposition: " -"inline`." +"Specify any of the options listed under OPTIONS that do not change stream " +"semantic to suit the frontend's needs. This command is optional and is not " +"needed to perform an import." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:137 -#, no-wrap -msgid "--thread[=<style>]" +#. type: Plain text +#: en/git-fast-import.txt:384 +msgid "" +"Create or update a branch with a new commit, recording one logical change to " +"the project." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:138 +#. type: delimited block . +#: en/git-fast-import.txt:396 #, no-wrap -msgid "--no-thread" +msgid "" +"\t'commit' SP <ref> LF\n" +"\tmark?\n" +"\toriginal-oid?\n" +"\t('author' (SP <name>)? SP LT <email> GT SP <when> LF)?\n" +"\t'committer' (SP <name>)? SP LT <email> GT SP <when> LF\n" +"\tdata\n" +"\t('from' SP <commit-ish> LF)?\n" +"\t('merge' SP <commit-ish> LF)?\n" +"\t(filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)*\n" +"\tLF?\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:143 +#: en/git-fast-import.txt:404 msgid "" -"Controls addition of `In-Reply-To` and `References` headers to make the " -"second and subsequent mails appear as replies to the first. Also controls " -"generation of the `Message-Id` header to reference." +"where `<ref>` is the name of the branch to make the commit on. Typically " +"branch names are prefixed with `refs/heads/` in Git, so importing the CVS " +"branch symbol `RELENG-1_0` would use `refs/heads/RELENG-1_0` for the value " +"of `<ref>`. The value of `<ref>` must be a valid refname in Git. As `LF` " +"is not valid in a Git refname, no quoting or escaping syntax is supported " +"here." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:149 +#: en/git-fast-import.txt:410 msgid "" -"The optional <style> argument can be either `shallow` or `deep`. 'shallow' " -"threading makes every mail a reply to the head of the series, where the head " -"is chosen from the cover letter, the `--in-reply-to`, and the first patch " -"mail, in this order. 'deep' threading makes every mail a reply to the " -"previous one." +"A `mark` command may optionally appear, requesting fast-import to save a " +"reference to the newly created commit for future use by the frontend (see " +"below for format). It is very common for frontends to mark every commit " +"they create, thereby allowing future branch creation from any imported " +"commit." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:153 +#: en/git-fast-import.txt:416 msgid "" -"The default is `--no-thread`, unless the `format.thread` configuration is " -"set. If `--thread` is specified without a style, it defaults to the style " -"specified by `format.thread` if any, or else `shallow`." +"The `data` command following `committer` must supply the commit message (see " +"below for `data` command syntax). To import an empty commit message use a 0 " +"length data. Commit messages are free-form and are not interpreted by Git. " +"Currently they must be encoded in UTF-8, as fast-import does not permit " +"other encodings to be specified." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:157 +#: en/git-fast-import.txt:424 msgid "" -"Beware that the default for 'git send-email' is to thread emails itself. If " -"you want `git format-patch` to take care of threading, you will want to " -"ensure that threading is disabled for `git send-email`." +"Zero or more `filemodify`, `filedelete`, `filecopy`, `filerename`, " +"`filedeleteall` and `notemodify` commands may be included to update the " +"contents of the branch prior to creating the commit. These commands may be " +"supplied in any order. However it is recommended that a `filedeleteall` " +"command precede all `filemodify`, `filecopy`, `filerename` and `notemodify` " +"commands in the same commit, as `filedeleteall` wipes the branch clean (see " +"below)." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:158 +#. type: Plain text +#: en/git-fast-import.txt:426 en/git-fast-import.txt:819 +#: en/git-fast-import.txt:931 +msgid "The `LF` after the command is optional (it used to be required)." +msgstr "" + +#. type: Title ^ +#: en/git-fast-import.txt:428 #, no-wrap -msgid "--in-reply-to=Message-Id" +msgid "`author`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:162 +#: en/git-fast-import.txt:434 msgid "" -"Make the first mail (or all the mails with `--no-thread`) appear as a reply " -"to the given Message-Id, which avoids breaking threads to provide a new " -"patch series." +"An `author` command may optionally appear, if the author information might " +"differ from the committer information. If `author` is omitted then fast-" +"import will automatically use the committer's information for the author " +"portion of the commit. See below for a description of the fields in " +"`author`, as they are identical to `committer`." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:163 +#. type: Title ^ +#: en/git-fast-import.txt:436 #, no-wrap -msgid "--ignore-if-in-upstream" +msgid "`committer`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:169 +#: en/git-fast-import.txt:439 msgid "" -"Do not include a patch that matches a commit in <until>..<since>. This will " -"examine all patches reachable from <since> but not from <until> and compare " -"them with the patches being generated, and any patch that matches is " -"ignored." +"The `committer` command indicates who made this commit, and when they made " +"it." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:170 -#, no-wrap -msgid "--subject-prefix=<Subject-Prefix>" +#. type: Plain text +#: en/git-fast-import.txt:447 +msgid "" +"Here `<name>` is the person's display name (for example ``Com M Itter'') and " +"`<email>` is the person's email address (``\\cm@example.com''). `LT` and " +"`GT` are the literal less-than (\\x3c) and greater-than (\\x3e) symbols. " +"These are required to delimit the email address from the other fields in the " +"line. Note that `<name>` and `<email>` are free-form and may contain any " +"sequence of bytes, except `LT`, `GT` and `LF`. `<name>` is typically UTF-8 " +"encoded." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:175 +#: en/git-fast-import.txt:452 msgid "" -"Instead of the standard '[PATCH]' prefix in the subject line, instead use " -"'[<Subject-Prefix>]'. This allows for useful naming of a patch series, and " -"can be combined with the `--numbered` option." +"The time of the change is specified by `<when>` using the date format that " +"was selected by the --date-format=<fmt> command-line option. See ``Date " +"Formats'' above for the set of supported formats, and their syntax." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:176 +#. type: Title ^ +#: en/git-fast-import.txt:454 #, no-wrap -msgid "--rfc" +msgid "`from`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:180 +#: en/git-fast-import.txt:460 msgid "" -"Alias for `--subject-prefix=\"RFC PATCH\"`. RFC means \"Request For " -"Comments\"; use this when sending an experimental patch for discussion " -"rather than application." -msgstr "" - -#. type: Labeled list -#: en/git-format-patch.txt:181 -#, no-wrap -msgid "-v <n>" +"The `from` command is used to specify the commit to initialize this branch " +"from. This revision will be the first ancestor of the new commit. The " +"state of the tree built at this commit will begin with the state at the " +"`from` commit, and be altered by the content modifications in this commit." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:182 -#, no-wrap -msgid "--reroll-count=<n>" +#. type: Plain text +#: en/git-fast-import.txt:470 +msgid "" +"Omitting the `from` command in the first commit of a new branch will cause " +"fast-import to create that commit with no ancestor. This tends to be desired " +"only for the initial commit of a project. If the frontend creates all files " +"from scratch when making a new branch, a `merge` command may be used instead " +"of `from` to start the commit with an empty tree. Omitting the `from` " +"command on existing branches is usually desired, as the current commit on " +"that branch is automatically assumed to be the first ancestor of the new " +"commit." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:189 +#: en/git-fast-import.txt:473 msgid "" -"Mark the series as the <n>-th iteration of the topic. The output filenames " -"have `v<n>` prepended to them, and the subject prefix (\"PATCH\" by default, " -"but configurable via the `--subject-prefix` option) has ` v<n>` appended to " -"it. E.g. `--reroll-count=4` may produce `v4-0001-add-makefile.patch` file " -"that has \"Subject: [PATCH v4 1/20] Add makefile\" in it." +"As `LF` is not valid in a Git refname or SHA-1 expression, no quoting or " +"escaping syntax is supported within `<commit-ish>`." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:190 -#, no-wrap -msgid "--to=<email>" +#. type: Plain text +#: en/git-fast-import.txt:475 +msgid "Here `<commit-ish>` is any of the following:" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:195 +#: en/git-fast-import.txt:479 msgid "" -"Add a `To:` header to the email headers. This is in addition to any " -"configured headers, and may be used multiple times. The negated form " -"`--no-to` discards all `To:` headers added so far (from config or command " -"line)." +"The name of an existing branch already in fast-import's internal branch " +"table. If fast-import doesn't know the name, it's treated as a SHA-1 " +"expression." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:196 -#, no-wrap -msgid "--cc=<email>" +#. type: Plain text +#: en/git-fast-import.txt:481 +msgid "A mark reference, `:<idnum>`, where `<idnum>` is the mark number." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:201 +#: en/git-fast-import.txt:487 msgid "" -"Add a `Cc:` header to the email headers. This is in addition to any " -"configured headers, and may be used multiple times. The negated form " -"`--no-cc` discards all `Cc:` headers added so far (from config or command " -"line)." +"The reason fast-import uses `:` to denote a mark reference is this character " +"is not legal in a Git branch name. The leading `:` makes it easy to " +"distinguish between the mark 42 (`:42`) and the branch 42 (`42` or `refs/" +"heads/42`), or an abbreviated SHA-1 which happened to consist only of " +"base-10 digits." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:202 -#, no-wrap -msgid "--from" +#. type: Plain text +#: en/git-fast-import.txt:489 +msgid "Marks must be declared (via `mark`) before they can be used." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:203 -#, no-wrap -msgid "--from=<ident>" +#. type: Plain text +#: en/git-fast-import.txt:491 +msgid "A complete 40 byte or abbreviated commit SHA-1 in hex." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:209 +#: en/git-fast-import.txt:494 msgid "" -"Use `ident` in the `From:` header of each commit email. If the author ident " -"of the commit is not textually identical to the provided `ident`, place a " -"`From:` header in the body of the message with the original author. If no " -"`ident` is given, use the committer ident." +"Any valid Git SHA-1 expression that resolves to a commit. See ``SPECIFYING " +"REVISIONS'' in linkgit:gitrevisions[7] for details." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:216 +#: en/git-fast-import.txt:497 msgid "" -"Note that this option is only useful if you are actually sending the emails " -"and want to identify yourself as the sender, but retain the original author " -"(and `git am` will correctly pick up the in-body header). Note also that " -"`git send-email` already handles this transformation for you, and this " -"option should not be used if you are feeding the result to `git send-email`." -msgstr "" - -#. type: Labeled list -#: en/git-format-patch.txt:217 -#, no-wrap -msgid "--add-header=<header>" +"The special null SHA-1 (40 zeros) specifies that the branch is to be removed." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:224 +#: en/git-fast-import.txt:500 msgid "" -"Add an arbitrary header to the email headers. This is in addition to any " -"configured headers, and may be used multiple times. For example, " -"`--add-header=\"Organization: git-foo\"`. The negated form " -"`--no-add-header` discards *all* (`To:`, `Cc:`, and custom) headers added so " -"far from config or command line." +"The special case of restarting an incremental import from the current branch " +"value should be written as:" msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:225 +#. type: delimited block - +#: en/git-fast-import.txt:502 #, no-wrap -msgid "--[no-]cover-letter" +msgid "\tfrom refs/heads/branch^0\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:229 +#: en/git-fast-import.txt:509 msgid "" -"In addition to the patches, generate a cover letter file containing the " -"branch description, shortlog and the overall diffstat. You can fill in a " -"description in the file before sending it out." +"The `^0` suffix is necessary as fast-import does not permit a branch to " +"start from itself, and the branch is created in memory before the `from` " +"command is even read from the input. Adding `^0` will force fast-import to " +"resolve the commit through Git's revision parsing library, rather than its " +"internal branch table, thereby loading in the existing value of the branch." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:230 +#. type: Title ^ +#: en/git-fast-import.txt:511 #, no-wrap -msgid "--notes[=<ref>]" +msgid "`merge`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:233 +#: en/git-fast-import.txt:519 msgid "" -"Append the notes (see linkgit:git-notes[1]) for the commit after the " -"three-dash line." +"Includes one additional ancestor commit. The additional ancestry link does " +"not change the way the tree state is built at this commit. If the `from` " +"command is omitted when creating a new branch, the first `merge` commit will " +"be the first ancestor of the current commit, and the branch will start out " +"with no files. An unlimited number of `merge` commands per commit are " +"permitted by fast-import, thereby establishing an n-way merge." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:241 +#: en/git-fast-import.txt:522 msgid "" -"The expected use case of this is to write supporting explanation for the " -"commit that does not belong to the commit log message proper, and include it " -"with the patch submission. While one can simply write these explanations " -"after `format-patch` has run but before sending, keeping them as Git notes " -"allows them to be maintained between versions of the patch series (but see " -"the discussion of the `notes.rewrite` configuration options in " -"linkgit:git-notes[1] to use this workflow)." +"Here `<commit-ish>` is any of the commit specification expressions also " +"accepted by `from` (see above)." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:242 +#. type: Title ^ +#: en/git-fast-import.txt:524 #, no-wrap -msgid "--[no-]signature=<signature>" +msgid "`filemodify`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:247 +#: en/git-fast-import.txt:528 msgid "" -"Add a signature to each message produced. Per RFC 3676 the signature is " -"separated from the body by a line with '-- ' on it. If the signature option " -"is omitted the signature defaults to the Git version number." +"Included in a `commit` command to add a new file or change the content of an " +"existing file. This command has two different means of specifying the " +"content of the file." msgstr "" #. type: Labeled list -#: en/git-format-patch.txt:248 +#: en/git-fast-import.txt:529 en/git-fast-import.txt:696 #, no-wrap -msgid "--signature-file=<file>" +msgid "External data format" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:250 -msgid "Works just like --signature except the signature is read from a file." +#: en/git-fast-import.txt:532 +msgid "" +"The data content for the file was already supplied by a prior `blob` " +"command. The frontend just needs to connect it." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:251 +#. type: delimited block . +#: en/git-fast-import.txt:535 #, no-wrap -msgid "--suffix=.<sfx>" -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:256 -msgid "" -"Instead of using `.patch` as the suffix for generated filenames, use " -"specified suffix. A common alternative is `--suffix=.txt`. Leaving this " -"empty will remove the `.patch` suffix." +msgid "\t'M' SP <mode> SP <dataref> SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:259 +#: en/git-fast-import.txt:542 msgid "" -"Note that the leading character does not have to be a dot; for example, you " -"can use `--suffix=-patch` to get `0001-description-of-my-change-patch`." -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:263 -msgid "Do not print the names of the generated files to standard output." +"Here usually `<dataref>` must be either a mark reference (`:<idnum>`) set " +"by a prior `blob` command, or a full 40-byte SHA-1 of an existing Git blob " +"object. If `<mode>` is `040000`` then `<dataref>` must be the full 40-byte " +"SHA-1 of an existing Git tree object or a mark reference set with `--import-" +"marks`." msgstr "" #. type: Labeled list -#: en/git-format-patch.txt:264 +#: en/git-fast-import.txt:543 en/git-fast-import.txt:709 #, no-wrap -msgid "--no-binary" +msgid "Inline data format" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:269 +#: en/git-fast-import.txt:547 msgid "" -"Do not output contents of changes in binary files, instead display a notice " -"that those files changed. Patches generated using this option cannot be " -"applied properly, but they are still useful for code review." +"The data content for the file has not been supplied yet. The frontend wants " +"to supply it as part of this modify command." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:270 +#. type: delimited block . +#: en/git-fast-import.txt:551 #, no-wrap -msgid "--zero-commit" +msgid "" +"\t'M' SP <mode> SP 'inline' SP <path> LF\n" +"\tdata\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:273 -msgid "" -"Output an all-zero hash in each patch's From header instead of the hash of " -"the commit." +#: en/git-fast-import.txt:554 en/git-fast-import.txt:720 +msgid "See below for a detailed description of the `data` command." msgstr "" -#. type: Labeled list -#: en/git-format-patch.txt:274 -#, no-wrap -msgid "--base=<commit>" +#. type: Plain text +#: en/git-fast-import.txt:557 +msgid "" +"In both formats `<mode>` is the type of file entry, specified in octal. Git " +"only supports the following modes:" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:278 +#: en/git-fast-import.txt:561 msgid "" -"Record the base tree information to identify the state the patch series " -"applies to. See the BASE TREE INFORMATION section below for details." +"`100644` or `644`: A normal (not-executable) file. The majority of files in " +"most projects use this mode. If in doubt, this is what you want." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:285 -msgid "" -"Treat the revision argument as a <revision range>, even if it is just a " -"single commit (that would normally be treated as a <since>). Note that root " -"commits included in the specified range are always formatted as creation " -"patches, independently of this flag." +#: en/git-fast-import.txt:562 +msgid "`100755` or `755`: A normal, but executable, file." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:292 -msgid "" -"You can specify extra mail header lines to be added to each message, " -"defaults for the subject prefix and file suffix, number patches when " -"outputting more than one patch, add \"To\" or \"Cc:\" headers, configure " -"attachments, and sign off patches with configuration variables." +#: en/git-fast-import.txt:563 +msgid "`120000`: A symlink, the content of the file will be the link target." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:304 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:566 msgid "" -"[format]\n" -"\theaders = \"Organization: git-foo\\n\"\n" -"\tsubjectPrefix = CHANGE\n" -"\tsuffix = .txt\n" -"\tnumbered = auto\n" -"\tto = <email>\n" -"\tcc = <email>\n" -"\tattach [ = mime-boundary-string ]\n" -"\tsignOff = true\n" -"\tcoverletter = auto\n" +"`160000`: A gitlink, SHA-1 of the object refers to a commit in another " +"repository. Git links can only be specified by SHA or through a commit mark. " +"They are used to implement submodules." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:313 +#: en/git-fast-import.txt:568 msgid "" -"The patch produced by 'git format-patch' is in UNIX mailbox format, with a " -"fixed \"magic\" time stamp to indicate that the file is output from " -"format-patch rather than a real mailbox, like so:" +"`040000`: A subdirectory. Subdirectories can only be specified by SHA or " +"through a tree mark set with `--import-marks`." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:323 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:571 msgid "" -"From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001\n" -"From: Tony Luck <tony.luck@intel.com>\n" -"Date: Tue, 13 Jul 2010 11:42:54 -0700\n" -"Subject: [PATCH] " -"=?UTF-8?q?[IA64]=20Put=20ia64=20config=20files=20on=20the=20?=\n" -" =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20diet?=\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"In both formats `<path>` is the complete path of the file to be added (if " +"not already existing) or modified (if already existing)." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:326 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:575 msgid "" -"arch/arm config files were slimmed down using a python script\n" -"(See commit c2330e286f68f1c408b4aa6515ba49d57f05beae comment)\n" +"A `<path>` string must use UNIX-style directory separators (forward slash `/" +"`), may contain any byte other than `LF`, and must not start with double " +"quote (`\"`)." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:329 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:582 msgid "" -"Do the same for ia64 so we can have sleek & trim looking\n" -"...\n" +"A path can use C-style string quoting; this is accepted in all cases and " +"mandatory if the filename starts with double quote or contains `LF`. In C-" +"style quoting, the complete name should be surrounded with double quotes, " +"and any `LF`, backslash, or double quote characters must be escaped by " +"preceding them with a backslash (e.g., `\"path/with\\n, \\\\ and \\\" in it" +"\"`)." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:337 -msgid "" -"Typically it will be placed in a MUA's drafts folder, edited to add timely " -"commentary that should not go in the changelog after the three dashes, and " -"then sent as a message whose body, in our example, starts with \"arch/arm " -"config files were...\". On the receiving end, readers can save interesting " -"patches in a UNIX mailbox and apply them with linkgit:git-am[1]." +#: en/git-fast-import.txt:584 +msgid "The value of `<path>` must be in canonical form. That is it must not:" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:343 -msgid "" -"When a patch is part of an ongoing discussion, the patch generated by 'git " -"format-patch' can be tweaked to take advantage of the 'git am --scissors' " -"feature. After your response to the discussion comes a line that consists " -"solely of \"`-- >8 --`\" (scissors and perforation), followed by the patch " -"with unnecessary header fields removed:" -msgstr "" - -#. type: delimited block - -#: en/git-format-patch.txt:347 -#, no-wrap -msgid "" -"...\n" -"> So we should do such-and-such.\n" -msgstr "" - -#. type: delimited block - -#: en/git-format-patch.txt:349 -#, no-wrap -msgid "Makes sense to me. How about this patch?\n" -msgstr "" - -#. type: delimited block - -#: en/git-format-patch.txt:352 -#, no-wrap -msgid "" -"-- >8 --\n" -"Subject: [IA64] Put ia64 config files on the Uwe Kleine-Kì² nig diet\n" -msgstr "" - -#. type: delimited block - -#: en/git-format-patch.txt:355 -#, no-wrap -msgid "" -"arch/arm config files were slimmed down using a python script\n" -"...\n" +#: en/git-fast-import.txt:586 +msgid "contain an empty directory component (e.g. `foo//bar` is invalid)," msgstr "" #. type: Plain text -#: en/git-format-patch.txt:363 -msgid "" -"When sending a patch this way, most often you are sending your own patch, so " -"in addition to the \"`From $SHA1 $magic_timestamp`\" marker you should omit " -"`From:` and `Date:` lines from the patch file. The patch title is likely to " -"be different from the subject of the discussion the patch is in response to, " -"so it is likely that you would want to keep the Subject: line, like the " -"example above." +#: en/git-fast-import.txt:587 +msgid "end with a directory separator (e.g. `foo/` is invalid)," msgstr "" -#. type: Title ~ -#: en/git-format-patch.txt:365 -#, no-wrap -msgid "Checking for patch corruption" +#. type: Plain text +#: en/git-fast-import.txt:588 +msgid "start with a directory separator (e.g. `/foo` is invalid)," msgstr "" #. type: Plain text -#: en/git-format-patch.txt:368 +#: en/git-fast-import.txt:590 msgid "" -"Many mailers if not set up properly will corrupt whitespace. Here are two " -"common types of corruption:" +"contain the special component `.` or `..` (e.g. `foo/./bar` and `foo/../bar` " +"are invalid)." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:370 -msgid "Empty context lines that do not have _any_ whitespace." +#: en/git-fast-import.txt:592 +msgid "The root of the tree can be represented by an empty string as `<path>`." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:373 -msgid "Non-empty context lines that have one extra whitespace at the beginning." +#: en/git-fast-import.txt:594 +msgid "It is recommended that `<path>` always be encoded using UTF-8." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:375 -msgid "One way to test if your MUA is set up correctly is:" +#. type: Title ^ +#: en/git-fast-import.txt:596 +#, no-wrap +msgid "`filedelete`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:379 +#: en/git-fast-import.txt:602 msgid "" -"Send the patch to yourself, exactly the way you would, except with To: and " -"Cc: lines that do not contain the list and maintainer address." +"Included in a `commit` command to remove a file or recursively delete an " +"entire directory from the branch. If the file or directory removal makes " +"its parent directory empty, the parent directory will be automatically " +"removed too. This cascades up the tree until the first non-empty directory " +"or the root is reached." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:382 -msgid "Save that patch to a file in UNIX mailbox format. Call it a.patch, say." +#. type: delimited block . +#: en/git-fast-import.txt:605 +#, no-wrap +msgid "\t'D' SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:384 -msgid "Apply it:" +#: en/git-fast-import.txt:610 +msgid "" +"here `<path>` is the complete path of the file or subdirectory to be removed " +"from the branch. See `filemodify` above for a detailed description of " +"`<path>`." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:389 +#. type: Title ^ +#: en/git-fast-import.txt:612 #, no-wrap -msgid "" -"$ git fetch <project> master:test-apply\n" -"$ git checkout test-apply\n" -"$ git reset --hard\n" -"$ git am a.patch\n" +msgid "`filecopy`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:391 -msgid "If it does not apply correctly, there can be various reasons." +#: en/git-fast-import.txt:617 +msgid "" +"Recursively copies an existing file or subdirectory to a different location " +"within the branch. The existing file or directory must exist. If the " +"destination exists it will be completely replaced by the content copied from " +"the source." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:396 -msgid "" -"The patch itself does not apply cleanly. That is _bad_ but does not have " -"much to do with your MUA. You might want to rebase the patch with " -"linkgit:git-rebase[1] before regenerating it in this case." +#. type: delimited block . +#: en/git-fast-import.txt:620 +#, no-wrap +msgid "\t'C' SP <path> SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:401 +#: en/git-fast-import.txt:626 en/git-fast-import.txt:646 msgid "" -"The MUA corrupted your patch; \"am\" would complain that the patch does not " -"apply. Look in the .git/rebase-apply/ subdirectory and see what 'patch' " -"file contains and check for the common corruption patterns mentioned above." +"here the first `<path>` is the source location and the second `<path>` is " +"the destination. See `filemodify` above for a detailed description of what " +"`<path>` may look like. To use a source path that contains SP the path must " +"be quoted." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:409 +#: en/git-fast-import.txt:631 msgid "" -"While at it, check the 'info' and 'final-commit' files as well. If what is " -"in 'final-commit' is not exactly what you would want to see in the commit " -"log message, it is very likely that the receiver would end up hand editing " -"the log message when applying your patch. Things like \"Hi, this is my " -"first patch.\\n\" in the patch e-mail should come after the three-dash line " -"that signals the end of the commit message." +"A `filecopy` command takes effect immediately. Once the source location has " +"been copied to the destination any future commands applied to the source " +"location will not impact the destination of the copy." msgstr "" -#. type: Title - -#: en/git-format-patch.txt:411 +#. type: Title ^ +#: en/git-fast-import.txt:633 #, no-wrap -msgid "MUA-SPECIFIC HINTS" +msgid "`filerename`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:414 +#: en/git-fast-import.txt:637 msgid "" -"Here are some hints on how to successfully submit patches inline using " -"various mailers." +"Renames an existing file or subdirectory to a different location within the " +"branch. The existing file or directory must exist. If the destination " +"exists it will be replaced by the source directory." msgstr "" -#. type: Title ~ -#: en/git-format-patch.txt:416 +#. type: delimited block . +#: en/git-fast-import.txt:640 #, no-wrap -msgid "GMail" +msgid "\t'R' SP <path> SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:422 +#: en/git-fast-import.txt:651 msgid "" -"GMail does not have any way to turn off line wrapping in the web interface, " -"so it will mangle any emails that you send. You can however use \"git " -"send-email\" and send your patches through the GMail SMTP server, or use any " -"IMAP email client to connect to the google IMAP server and forward the " -"emails through that." +"A `filerename` command takes effect immediately. Once the source location " +"has been renamed to the destination any future commands applied to the " +"source location will create new files there and not impact the destination " +"of the rename." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:425 +#: en/git-fast-import.txt:660 msgid "" -"For hints on using 'git send-email' to send your patches through the GMail " -"SMTP server, see the EXAMPLE section of linkgit:git-send-email[1]." +"Note that a `filerename` is the same as a `filecopy` followed by a " +"`filedelete` of the source location. There is a slight performance " +"advantage to using `filerename`, but the advantage is so small that it is " +"never worth trying to convert a delete/add pair in source material into a " +"rename for fast-import. This `filerename` command is provided just to " +"simplify frontends that already have rename information and don't want " +"bother with decomposing it into a `filecopy` followed by a `filedelete`." +msgstr "" + +#. type: Title ^ +#: en/git-fast-import.txt:662 +#, no-wrap +msgid "`filedeleteall`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:428 +#: en/git-fast-import.txt:667 msgid "" -"For hints on submission using the IMAP interface, see the EXAMPLE section of " -"linkgit:git-imap-send[1]." +"Included in a `commit` command to remove all files (and also all " +"directories) from the branch. This command resets the internal branch " +"structure to have no files in it, allowing the frontend to subsequently add " +"all interesting files from scratch." msgstr "" -#. type: Title ~ -#: en/git-format-patch.txt:430 +#. type: delimited block . +#: en/git-fast-import.txt:670 #, no-wrap -msgid "Thunderbird" +msgid "\t'deleteall' LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:434 +#: en/git-fast-import.txt:676 msgid "" -"By default, Thunderbird will both wrap emails as well as flag them as being " -"'format=flowed', both of which will make the resulting email unusable by " -"Git." +"This command is extremely useful if the frontend does not know (or does not " +"care to know) what files are currently on the branch, and therefore cannot " +"generate the proper `filedelete` commands to update the content." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:438 +#: en/git-fast-import.txt:684 msgid "" -"There are three different approaches: use an add-on to turn off line wraps, " -"configure Thunderbird to not mangle patches, or use an external editor to " -"keep Thunderbird from mangling the patches." +"Issuing a `filedeleteall` followed by the needed `filemodify` commands to " +"set the correct content will produce the same results as sending only the " +"needed `filemodify` and `filedelete` commands. The `filedeleteall` approach " +"may however require fast-import to use slightly more memory per active " +"branch (less than 1 MiB for even most large projects); so frontends that can " +"easily obtain only the affected paths for a commit are encouraged to do so." msgstr "" #. type: Title ^ -#: en/git-format-patch.txt:440 +#: en/git-fast-import.txt:686 #, no-wrap -msgid "Approach #1 (add-on)" +msgid "`notemodify`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:448 +#: en/git-fast-import.txt:695 msgid "" -"Install the Toggle Word Wrap add-on that is available from " -"https://addons.mozilla.org/thunderbird/addon/toggle-word-wrap/ It adds a " -"menu entry \"Enable Word Wrap\" in the composer's \"Options\" menu that you " -"can tick off. Now you can compose the message as you otherwise do (cut + " -"paste, 'git format-patch' | 'git imap-send', etc), but you have to insert " -"line breaks manually in any text that you type." -msgstr "" - -#. type: Title ^ -#: en/git-format-patch.txt:450 -#, no-wrap -msgid "Approach #2 (configuration)" -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:452 -msgid "Three steps:" +"Included in a `commit` `<notes_ref>` command to add a new note annotating a " +"`<commit-ish>` or change this annotation contents. Internally it is similar " +"to filemodify 100644 on `<commit-ish>` path (maybe split into " +"subdirectories). It's not advised to use any other commands to write to the " +"`<notes_ref>` tree except `filedeleteall` to delete all existing notes in " +"this tree. This command has two different means of specifying the content " +"of the note." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:456 +#: en/git-fast-import.txt:700 msgid "" -"Configure your mail server composition as plain text: Edit...Account " -"Settings...Composition & Addressing, uncheck \"Compose Messages in HTML\"." +"The data content for the note was already supplied by a prior `blob` " +"command. The frontend just needs to connect it to the commit that is to be " +"annotated." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:458 -msgid "Configure your general composition window to not wrap." +#. type: delimited block . +#: en/git-fast-import.txt:703 +#, no-wrap +msgid "\t'N' SP <dataref> SP <commit-ish> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:461 +#: en/git-fast-import.txt:708 msgid "" -"In Thunderbird 2: Edit..Preferences..Composition, wrap plain text messages " -"at 0" +"Here `<dataref>` can be either a mark reference (`:<idnum>`) set by a prior " +"`blob` command, or a full 40-byte SHA-1 of an existing Git blob object." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:467 +#: en/git-fast-import.txt:713 msgid "" -"In Thunderbird 3: Edit..Preferences..Advanced..Config Editor. Search for " -"\"mail.wrap_long_lines\". Toggle it to make sure it is set to " -"`false`. Also, search for \"mailnews.wraplength\" and set the value to 0." +"The data content for the note has not been supplied yet. The frontend wants " +"to supply it as part of this modify command." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:472 +#. type: delimited block . +#: en/git-fast-import.txt:717 +#, no-wrap msgid "" -"Disable the use of format=flowed: Edit..Preferences..Advanced..Config " -"Editor. Search for \"mailnews.send_plaintext_flowed\". Toggle it to make " -"sure it is set to `false`." +"\t'N' SP 'inline' SP <commit-ish> LF\n" +"\tdata\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:476 +#: en/git-fast-import.txt:723 msgid "" -"After that is done, you should be able to compose email as you otherwise " -"would (cut + paste, 'git format-patch' | 'git imap-send', etc), and the " -"patches will not be mangled." +"In both formats `<commit-ish>` is any of the commit specification " +"expressions also accepted by `from` (see above)." msgstr "" -#. type: Title ^ -#: en/git-format-patch.txt:478 +#. type: Title ~ +#: en/git-fast-import.txt:725 #, no-wrap -msgid "Approach #3 (external editor)" +msgid "`mark`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:483 +#: en/git-fast-import.txt:731 msgid "" -"The following Thunderbird extensions are needed: AboutConfig from " -"http://aboutconfig.mozdev.org/ and External Editor from " -"http://globs.org/articles.php?lng=en&pg=8" +"Arranges for fast-import to save a reference to the current object, allowing " +"the frontend to recall this object at a future point in time, without " +"knowing its SHA-1. Here the current object is the object creation command " +"the `mark` command appears within. This can be `commit`, `tag`, and `blob`, " +"but `commit` is the most common usage." msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:485 -msgid "Prepare the patch as a text file using your method of choice." +#. type: delimited block . +#: en/git-fast-import.txt:734 +#, no-wrap +msgid "\t'mark' SP ':' <idnum> LF\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:490 +#: en/git-fast-import.txt:740 msgid "" -"Before opening a compose window, use Edit->Account Settings to uncheck the " -"\"Compose messages in HTML format\" setting in the \"Composition & " -"Addressing\" panel of the account to be used to send the patch." +"where `<idnum>` is the number assigned by the frontend to this mark. The " +"value of `<idnum>` is expressed as an ASCII decimal integer. The value 0 is " +"reserved and cannot be used as a mark. Only values greater than or equal to " +"1 may be used as marks." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:494 +#: en/git-fast-import.txt:744 msgid "" -"In the main Thunderbird window, 'before' you open the compose window for the " -"patch, use Tools->about:config to set the following to the indicated values:" +"New marks are created automatically. Existing marks can be moved to another " +"object simply by reusing the same `<idnum>` in another `mark` command." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:498 +#. type: Title ~ +#: en/git-fast-import.txt:746 #, no-wrap -msgid "" -"\tmailnews.send_plaintext_flowed => false\n" -"\tmailnews.wraplength => 0\n" -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:501 -msgid "Open a compose window and click the external editor icon." +msgid "`original-oid`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:504 +#: en/git-fast-import.txt:751 msgid "" -"In the external editor window, read in the patch file and exit the editor " -"normally." +"Provides the name of the object in the original source control system. fast-" +"import will simply ignore this directive, but filter processes which operate " +"on and modify the stream before feeding to fast-import may have uses for " +"this information" msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:507 -msgid "" -"Side note: it may be possible to do step 2 with about:config and the " -"following settings but no one's tried yet." +#. type: delimited block . +#: en/git-fast-import.txt:754 +#, no-wrap +msgid "\t'original-oid' SP <object-identifier> LF\n" msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:512 -#, no-wrap -msgid "" -"\tmail.html_compose => false\n" -"\tmail.identity.default.compose_html => false\n" -"\tmail.identity.id?.compose_html => false\n" +#. type: Plain text +#: en/git-fast-import.txt:757 +msgid "where `<object-identifer>` is any string not containing LF." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:517 +#: en/git-fast-import.txt:762 msgid "" -"There is a script in contrib/thunderbird-patch-inline which can help you " -"include patches with Thunderbird in an easy way. To use it, do the steps " -"above and then use the script as the external editor." +"Creates an annotated tag referring to a specific commit. To create " +"lightweight (non-annotated) tags see the `reset` command below." msgstr "" -#. type: Title ~ -#: en/git-format-patch.txt:519 +#. type: delimited block . +#: en/git-fast-import.txt:769 #, no-wrap -msgid "KMail" -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:521 -msgid "This should help you to submit patches inline using KMail." +msgid "" +"\t'tag' SP <name> LF\n" +"\t'from' SP <commit-ish> LF\n" +"\toriginal-oid?\n" +"\t'tagger' (SP <name>)? SP LT <email> GT SP <when> LF\n" +"\tdata\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:523 -msgid "Prepare the patch as a text file." +#: en/git-fast-import.txt:772 +msgid "where `<name>` is the name of the tag to create." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:525 -msgid "Click on New Mail." +#: en/git-fast-import.txt:777 +msgid "" +"Tag names are automatically prefixed with `refs/tags/` when stored in Git, " +"so importing the CVS branch symbol `RELENG-1_0-FINAL` would use just " +"`RELENG-1_0-FINAL` for `<name>`, and fast-import will write the " +"corresponding ref as `refs/tags/RELENG-1_0-FINAL`." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:528 +#: en/git-fast-import.txt:781 msgid "" -"Go under \"Options\" in the Composer window and be sure that \"Word wrap\" " -"is not set." +"The value of `<name>` must be a valid refname in Git and therefore may " +"contain forward slashes. As `LF` is not valid in a Git refname, no quoting " +"or escaping syntax is supported here." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:530 -msgid "Use Message -> Insert file... and insert the patch." +#: en/git-fast-import.txt:784 +msgid "" +"The `from` command is the same as in the `commit` command; see above for " +"details." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:533 +#: en/git-fast-import.txt:787 msgid "" -"Back in the compose window: add whatever other text you wish to the message, " -"complete the addressing and subject fields, and press send." -msgstr "" - -#. type: Title - -#: en/git-format-patch.txt:535 -#, no-wrap -msgid "BASE TREE INFORMATION" +"The `tagger` command uses the same format as `committer` within `commit`; " +"again see above for details." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:544 +#: en/git-fast-import.txt:793 msgid "" -"The base tree information block is used for maintainers or third party " -"testers to know the exact state the patch series applies to. It consists of " -"the 'base commit', which is a well-known commit that is part of the stable " -"part of the project history everybody else works off of, and zero or more " -"'prerequisite patches', which are well-known patches in flight that is not " -"yet part of the 'base commit' that need to be applied on top of 'base " -"commit' in topological order before the patches can be applied." +"The `data` command following `tagger` must supply the annotated tag message " +"(see below for `data` command syntax). To import an empty tag message use a " +"0 length data. Tag messages are free-form and are not interpreted by Git. " +"Currently they must be encoded in UTF-8, as fast-import does not permit " +"other encodings to be specified." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:550 +#: en/git-fast-import.txt:801 msgid "" -"The 'base commit' is shown as \"base-commit: \" followed by the 40-hex of " -"the commit object name. A 'prerequisite patch' is shown as " -"\"prerequisite-patch-id: \" followed by the 40-hex 'patch id', which can be " -"obtained by passing the patch through the `git patch-id --stable` command." +"Signing annotated tags during import from within fast-import is not " +"supported. Trying to include your own PGP/GPG signature is not recommended, " +"as the frontend does not (easily) have access to the complete set of bytes " +"which normally goes into such a signature. If signing is required, create " +"lightweight tags from within fast-import with `reset`, then create the " +"annotated versions of those tags offline with the standard 'git tag' process." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:554 +#: en/git-fast-import.txt:808 msgid "" -"Imagine that on top of the public commit P, you applied well-known patches " -"X, Y and Z from somebody else, and then built your three-patch series A, B, " -"C, the history would be like:" +"Creates (or recreates) the named branch, optionally starting from a specific " +"revision. The reset command allows a frontend to issue a new `from` command " +"for an existing branch, or to create a new branch from an existing commit " +"without creating a new commit." msgstr "" #. type: delimited block . -#: en/git-format-patch.txt:557 +#: en/git-fast-import.txt:813 #, no-wrap -msgid "---P---X---Y---Z---A---B---C\n" -msgstr "" - -#. type: Plain text -#: en/git-format-patch.txt:564 msgid "" -"With `git format-patch --base=P -3 C` (or variants thereof, e.g. with " -"`--cover-letter` of using `Z..C` instead of `-3 C` to specify the range), " -"the base tree information block is shown at the end of the first message the " -"command outputs (either the first patch, or the cover letter), like this:" +"\t'reset' SP <ref> LF\n" +"\t('from' SP <commit-ish> LF)?\n" +"\tLF?\n" msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:570 -#, no-wrap +#. type: Plain text +#: en/git-fast-import.txt:817 msgid "" -"base-commit: P\n" -"prerequisite-patch-id: X\n" -"prerequisite-patch-id: Y\n" -"prerequisite-patch-id: Z\n" +"For a detailed description of `<ref>` and `<commit-ish>` see above under " +"`commit` and `from`." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:573 -msgid "For non-linear topology, such as" -msgstr "" - -#. type: delimited block . -#: en/git-format-patch.txt:578 -#, no-wrap +#: en/git-fast-import.txt:822 msgid "" -"---P---X---A---M---C\n" -" \\ /\n" -" Y---Z---B\n" +"The `reset` command can also be used to create lightweight (non-annotated) " +"tags. For example:" msgstr "" -#. type: Plain text -#: en/git-format-patch.txt:583 +#. type: delimited block = +#: en/git-fast-import.txt:826 +#, no-wrap msgid "" -"You can also use `git format-patch --base=P -3 C` to generate patches for A, " -"B and C, and the identifiers for P, X, Y, Z are appended at the end of the " -"first message." +"\treset refs/tags/938\n" +"\tfrom :938\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:589 +#: en/git-fast-import.txt:830 msgid "" -"If set `--base=auto` in cmdline, it will track base commit automatically, " -"the base commit will be the merge base of tip commit of the remote-tracking " -"branch and revision-range specified in cmdline. For a local branch, you " -"need to track a remote branch by `git branch --set-upstream-to` before using " -"this option." +"would create the lightweight tag `refs/tags/938` referring to whatever " +"commit mark `:938` references." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:595 +#: en/git-fast-import.txt:837 msgid "" -"Extract commits between revisions R1 and R2, and apply them on top of the " -"current branch using 'git am' to cherry-pick them:" +"Requests writing one file revision to the packfile. The revision is not " +"connected to any commit; this connection must be formed in a subsequent " +"`commit` command by referencing the blob through an assigned mark." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:598 +#. type: delimited block . +#: en/git-fast-import.txt:843 #, no-wrap -msgid "$ git format-patch -k --stdout R1..R2 | git am -3 -k\n" +msgid "" +"\t'blob' LF\n" +"\tmark?\n" +"\toriginal-oid?\n" +"\tdata\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:602 +#: en/git-fast-import.txt:849 msgid "" -"Extract all commits which are in the current branch but not in the origin " -"branch:" +"The mark command is optional here as some frontends have chosen to generate " +"the Git SHA-1 for the blob on their own, and feed that directly to " +"`commit`. This is typically more work than it's worth however, as marks are " +"inexpensive to store and easy to use." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:605 +#. type: Title ~ +#: en/git-fast-import.txt:851 #, no-wrap -msgid "$ git format-patch origin\n" +msgid "`data`" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:608 -msgid "For each commit a separate file is created in the current directory." +#: en/git-fast-import.txt:858 +msgid "" +"Supplies raw data (for use as blob/file content, commit messages, or " +"annotated tag messages) to fast-import. Data can be supplied using an exact " +"byte count or delimited with a terminating line. Real frontends intended " +"for production-quality conversions should always use the exact byte count " +"format, as it is more robust and performs better. The delimited format is " +"intended primarily for testing fast-import." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:611 +#: en/git-fast-import.txt:863 msgid "" -"Extract all commits that lead to 'origin' since the inception of the " -"project:" +"Comment lines appearing within the `<raw>` part of `data` commands are " +"always taken to be part of the body of the data and are therefore never " +"ignored by fast-import. This makes it safe to import any file/message " +"content whose lines might start with `#`." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:614 +#. type: Labeled list +#: en/git-fast-import.txt:864 #, no-wrap -msgid "$ git format-patch --root origin\n" +msgid "Exact byte count format" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:617 -msgid "The same as the previous one:" +#: en/git-fast-import.txt:866 +msgid "The frontend must specify the number of bytes of data." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:620 +#. type: delimited block . +#: en/git-fast-import.txt:870 #, no-wrap -msgid "$ git format-patch -M -B origin\n" +msgid "" +"\t'data' SP <count> LF\n" +"\t<raw> LF?\n" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:627 +#: en/git-fast-import.txt:876 msgid "" -"Additionally, it detects and handles renames and complete rewrites " -"intelligently to produce a renaming patch. A renaming patch reduces the " -"amount of text output, and generally makes it easier to review. Note that " -"non-Git \"patch\" programs won't understand renaming patches, so use it only " -"when you know the recipient uses Git to apply your patch." +"where `<count>` is the exact number of bytes appearing within `<raw>`. The " +"value of `<count>` is expressed as an ASCII decimal integer. The `LF` on " +"either side of `<raw>` is not included in `<count>` and will not be included " +"in the imported data." msgstr "" #. type: Plain text -#: en/git-format-patch.txt:630 +#: en/git-fast-import.txt:881 msgid "" -"Extract three topmost commits from the current branch and format them as " -"e-mailable patches:" +"The `LF` after `<raw>` is optional (it used to be required) but " +"recommended. Always including it makes debugging a fast-import stream " +"easier as the next command always starts in column 0 of the next line, even " +"if `<raw>` did not end with an `LF`." msgstr "" -#. type: delimited block - -#: en/git-format-patch.txt:633 +#. type: Labeled list +#: en/git-fast-import.txt:882 #, no-wrap -msgid "$ git format-patch -3\n" +msgid "Delimited format" msgstr "" #. type: Plain text -#: en/git-format-patch.txt:638 -msgid "linkgit:git-am[1], linkgit:git-send-email[1]" +#: en/git-fast-import.txt:887 +msgid "" +"A delimiter string is used to mark the end of the data. fast-import will " +"compute the length by searching for the delimiter. This format is primarily " +"useful for testing and is not recommended for real data." msgstr "" -#. type: Title = -#: en/git-fsck-objects.txt:2 +#. type: delimited block . +#: en/git-fast-import.txt:893 #, no-wrap -msgid "git-fsck-objects(1)" +msgid "" +"\t'data' SP '<<' <delim> LF\n" +"\t<raw> LF\n" +"\t<delim> LF\n" +"\tLF?\n" msgstr "" #. type: Plain text -#: en/git-fsck-objects.txt:7 +#: en/git-fast-import.txt:901 msgid "" -"git-fsck-objects - Verifies the connectivity and validity of the objects in " -"the database" +"where `<delim>` is the chosen delimiter string. The string `<delim>` must " +"not appear on a line by itself within `<raw>`, as otherwise fast-import will " +"think the data ends earlier than it really does. The `LF` immediately " +"trailing `<raw>` is part of `<raw>`. This is one of the limitations of the " +"delimited format, it is impossible to supply a data chunk which does not " +"have an LF as its last byte." msgstr "" #. type: Plain text -#: en/git-fsck-objects.txt:13 -#, no-wrap -msgid "'git fsck-objects' ...\n" +#: en/git-fast-import.txt:903 +msgid "The `LF` after `<delim> LF` is optional (it used to be required)." msgstr "" #. type: Plain text -#: en/git-fsck-objects.txt:19 +#: en/git-fast-import.txt:908 msgid "" -"This is a synonym for linkgit:git-fsck[1]. Please refer to the " -"documentation of that command." +"Forces fast-import to close the current packfile, start a new one, and to " +"save out all current branch refs, tags and marks." msgstr "" -#. type: Title = -#: en/git-fsck.txt:2 +#. type: delimited block . +#: en/git-fast-import.txt:912 #, no-wrap -msgid "git-fsck(1)" +msgid "" +"\t'checkpoint' LF\n" +"\tLF?\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:7 +#: en/git-fast-import.txt:918 msgid "" -"git-fsck - Verifies the connectivity and validity of the objects in the " -"database" +"Note that fast-import automatically switches packfiles when the current " +"packfile reaches --max-pack-size, or 4 GiB, whichever limit is smaller. " +"During an automatic packfile switch fast-import does not update the branch " +"refs, tags or marks." msgstr "" #. type: Plain text -#: en/git-fsck.txt:16 -#, no-wrap +#: en/git-fast-import.txt:923 msgid "" -"'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n" -"\t [--[no-]full] [--strict] [--verbose] [--lost-found]\n" -"\t [--[no-]dangling] [--[no-]progress] [--connectivity-only]\n" -"\t [--[no-]name-objects] [<object>*]\n" -msgstr "" - -#. type: Plain text -#: en/git-fsck.txt:20 en/cmds-ancillaryinterrogators.txt:18 -msgid "Verifies the connectivity and validity of the objects in the database." +"As a `checkpoint` can require a significant amount of CPU time and disk IO " +"(to compute the overall pack SHA-1 checksum, generate the corresponding " +"index file, and update the refs) it can easily take several minutes for a " +"single `checkpoint` command to complete." msgstr "" #. type: Plain text -#: en/git-fsck.txt:25 -msgid "An object to treat as the head of an unreachability trace." +#: en/git-fast-import.txt:929 +msgid "" +"Frontends may choose to issue checkpoints during extremely large and long " +"running imports, or when they need to allow another Git process access to a " +"branch. However given that a 30 GiB Subversion repository can be loaded " +"into Git through fast-import in about 3 hours, explicit checkpointing may " +"not be necessary." msgstr "" #. type: Plain text -#: en/git-fsck.txt:29 +#: en/git-fast-import.txt:938 msgid "" -"If no objects are given, 'git fsck' defaults to using the index file, all " -"SHA-1 references in `refs` namespace, and all reflogs (unless --no-reflogs " -"is given) as heads." +"Causes fast-import to print the entire `progress` line unmodified to its " +"standard output channel (file descriptor 1) when the command is processed " +"from the input stream. The command otherwise has no impact on the current " +"import, or on any of fast-import's internal state." msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:30 +#. type: delimited block . +#: en/git-fast-import.txt:942 #, no-wrap -msgid "--unreachable" +msgid "" +"\t'progress' SP <any> LF\n" +"\tLF?\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:33 +#: en/git-fast-import.txt:948 msgid "" -"Print out objects that exist but that aren't reachable from any of the " -"reference nodes." +"The `<any>` part of the command may contain any sequence of bytes that does " +"not contain `LF`. The `LF` after the command is optional. Callers may wish " +"to process the output through a tool such as sed to remove the leading part " +"of the line, for example:" msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:34 +#. type: delimited block = +#: en/git-fast-import.txt:951 #, no-wrap -msgid "--[no-]dangling" +msgid "\tfrontend | git fast-import | sed 's/^progress //'\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:37 +#: en/git-fast-import.txt:956 msgid "" -"Print objects that exist but that are never 'directly' used (default). " -"`--no-dangling` can be used to omit this information from the output." -msgstr "" - -#. type: Plain text -#: en/git-fsck.txt:40 -msgid "Report root nodes." -msgstr "" - -#. type: Plain text -#: en/git-fsck.txt:43 -msgid "Report tags." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:44 -#, no-wrap -msgid "--cache" +"Placing a `progress` command immediately after a `checkpoint` will inform " +"the reader when the `checkpoint` has been completed and it can safely access " +"the refs that fast-import updated." msgstr "" #. type: Plain text -#: en/git-fsck.txt:47 +#: en/git-fast-import.txt:964 msgid "" -"Consider any object recorded in the index also as a head node for an " -"unreachability trace." +"Causes fast-import to print the SHA-1 corresponding to a mark to stdout or " +"to the file descriptor previously arranged with the `--cat-blob-fd` " +"argument. The command otherwise has no impact on the current import; its " +"purpose is to retrieve SHA-1s that later commits might want to refer to in " +"their commit messages." msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:48 +#. type: delimited block . +#: en/git-fast-import.txt:967 #, no-wrap -msgid "--no-reflogs" +msgid "\t'get-mark' SP ':' <idnum> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:53 +#: en/git-fast-import.txt:972 msgid "" -"Do not consider commits that are referenced only by an entry in a reflog to " -"be reachable. This option is meant only to search for commits that used to " -"be in a ref, but now aren't, but are still in that corresponding reflog." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:54 -#, no-wrap -msgid "--full" +"This command can be used anywhere in the stream that comments are accepted. " +"In particular, the `get-mark` command can be used in the middle of a commit " +"but not in the middle of a `data` command." msgstr "" #. type: Plain text -#: en/git-fsck.txt:63 +#: en/git-fast-import.txt:975 en/git-fast-import.txt:1005 +#: en/git-fast-import.txt:1058 msgid "" -"Check not just objects in GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), but also " -"the ones found in alternate object pools listed in " -"GIT_ALTERNATE_OBJECT_DIRECTORIES or $GIT_DIR/objects/info/alternates, and in " -"packed Git archives found in $GIT_DIR/objects/pack and corresponding pack " -"subdirectories in alternate object pools. This is now default; you can turn " -"it off with --no-full." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:64 -#, no-wrap -msgid "--connectivity-only" +"See ``Responses To Commands'' below for details about how to read this " +"output safely." msgstr "" #. type: Plain text -#: en/git-fsck.txt:68 +#: en/git-fast-import.txt:983 msgid "" -"Check only the connectivity of tags, commits and tree objects. By avoiding " -"to unpack blobs, this speeds up the operation, at the expense of missing " -"corrupt objects or other problematic issues." +"Causes fast-import to print a blob to a file descriptor previously arranged " +"with the `--cat-blob-fd` argument. The command otherwise has no impact on " +"the current import; its main purpose is to retrieve blobs that may be in " +"fast-import's memory but not accessible from the target repository." msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:69 en/git-index-pack.txt:74 en/git-unpack-objects.txt:44 +#. type: delimited block . +#: en/git-fast-import.txt:986 #, no-wrap -msgid "--strict" +msgid "\t'cat-blob' SP <dataref> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:76 +#: en/git-fast-import.txt:991 msgid "" -"Enable more strict checking, namely to catch a file mode recorded with g+w " -"bit set, which was created by older versions of Git. Existing repositories, " -"including the Linux kernel, Git itself, and sparse repository have old " -"objects that triggers this check, but it is recommended to check new " -"projects with this flag." +"The `<dataref>` can be either a mark reference (`:<idnum>`) set previously " +"or a full 40-byte SHA-1 of a Git blob, preexisting or ready to be written." msgstr "" #. type: Plain text -#: en/git-fsck.txt:79 -msgid "Be chatty." +#: en/git-fast-import.txt:993 +msgid "Output uses the same format as `git cat-file --batch`:" msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:80 +#. type: delimited block = +#: en/git-fast-import.txt:997 #, no-wrap -msgid "--lost-found" +msgid "" +"\t<sha1> SP 'blob' SP <size> LF\n" +"\t<contents> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:85 +#: en/git-fast-import.txt:1002 msgid "" -"Write dangling objects into .git/lost-found/commit/ or " -".git/lost-found/other/, depending on type. If the object is a blob, the " -"contents are written into the file, rather than its object name." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:86 -#, no-wrap -msgid "--name-objects" +"This command can be used anywhere in the stream that comments are accepted. " +"In particular, the `cat-blob` command can be used in the middle of a commit " +"but not in the middle of a `data` command." msgstr "" #. type: Plain text -#: en/git-fsck.txt:91 +#: en/git-fast-import.txt:1013 msgid "" -"When displaying names of reachable objects, in addition to the SHA-1 also " -"display a name that describes *how* they are reachable, compatible with " -"linkgit:git-rev-parse[1], e.g. `HEAD@{1234567890}~25^2:src/`." +"Prints information about the object at a path to a file descriptor " +"previously arranged with the `--cat-blob-fd` argument. This allows printing " +"a blob from the active commit (with `cat-blob`) or copying a blob or tree " +"from a previous commit for use in the current one (with `filemodify`)." msgstr "" #. type: Plain text -#: en/git-fsck.txt:98 +#: en/git-fast-import.txt:1016 msgid "" -"Progress status is reported on the standard error stream by default when it " -"is attached to a terminal, unless --no-progress or --verbose is " -"specified. --progress forces progress status even if the standard error " -"stream is not directed to a terminal." +"The `ls` command can be used anywhere in the stream that comments are " +"accepted, including the middle of a commit." msgstr "" -#. type: Plain text -#: en/git-fsck.txt:108 -msgid "" -"git-fsck tests SHA-1 and general object sanity, and it does full tracking of " -"the resulting reachability and everything else. It prints out any corruption " -"it finds (missing or bad objects), and if you use the `--unreachable` flag " -"it will also print out objects that exist but that aren't reachable from any " -"of the specified head nodes (or the default set, as mentioned above)." +#. type: Labeled list +#: en/git-fast-import.txt:1017 +#, no-wrap +msgid "Reading from the active commit" msgstr "" #. type: Plain text -#: en/git-fsck.txt:112 +#: en/git-fast-import.txt:1021 msgid "" -"Any corrupt objects you will have to find in backups or other archives " -"(i.e., you can just remove them and do an 'rsync' with some other site in " -"the hopes that somebody else has the object you have corrupted)." +"This form can only be used in the middle of a `commit`. The path names a " +"directory entry within fast-import's active commit. The path must be quoted " +"in this case." msgstr "" -#. type: Title - -#: en/git-fsck.txt:114 +#. type: delimited block . +#: en/git-fast-import.txt:1024 #, no-wrap -msgid "Extracted Diagnostics" +msgid "\t'ls' SP <path> LF\n" msgstr "" #. type: Labeled list -#: en/git-fsck.txt:116 +#: en/git-fast-import.txt:1026 #, no-wrap -msgid "expect dangling commits - potential heads - due to lack of head information" +msgid "Reading from a named tree" msgstr "" #. type: Plain text -#: en/git-fsck.txt:120 +#: en/git-fast-import.txt:1032 msgid "" -"You haven't specified any nodes as heads so it won't be possible to " -"differentiate between un-parented commits and root nodes." +"The `<dataref>` can be a mark reference (`:<idnum>`) or the full 40-byte " +"SHA-1 of a Git tag, commit, or tree object, preexisting or waiting to be " +"written. The path is relative to the top level of the tree named by " +"`<dataref>`." msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:121 +#. type: delimited block . +#: en/git-fast-import.txt:1035 #, no-wrap -msgid "missing sha1 directory '<dir>'" +msgid "\t'ls' SP <dataref> SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:123 -msgid "The directory holding the sha1 objects is missing." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:124 -#, no-wrap -msgid "unreachable <type> <object>" +#: en/git-fast-import.txt:1038 +msgid "See `filemodify` above for a detailed description of `<path>`." msgstr "" #. type: Plain text -#: en/git-fsck.txt:131 -msgid "" -"The <type> object <object>, isn't actually referred to directly or " -"indirectly in any of the trees or commits seen. This can mean that there's " -"another root node that you're not specifying or that the tree is corrupt. If " -"you haven't missed a root node then you might as well delete unreachable " -"nodes since they can't be used." +#: en/git-fast-import.txt:1040 +msgid "Output uses the same format as `git ls-tree <tree> -- <path>`:" msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:132 +#. type: delimited block = +#: en/git-fast-import.txt:1043 #, no-wrap -msgid "missing <type> <object>" +msgid "\t<mode> SP ('blob' | 'tree' | 'commit') SP <dataref> HT <path> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:135 +#: en/git-fast-import.txt:1048 msgid "" -"The <type> object <object>, is referred to but isn't present in the " -"database." -msgstr "" - -#. type: Labeled list -#: en/git-fsck.txt:136 -#, no-wrap -msgid "dangling <type> <object>" +"The <dataref> represents the blob, tree, or commit object at <path> and can " +"be used in later 'get-mark', 'cat-blob', 'filemodify', or 'ls' commands." msgstr "" #. type: Plain text -#: en/git-fsck.txt:139 +#: en/git-fast-import.txt:1051 msgid "" -"The <type> object <object>, is present in the database but never 'directly' " -"used. A dangling commit could be a root node." +"If there is no file or subtree at that path, 'git fast-import' will instead " +"report" msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:140 +#. type: delimited block = +#: en/git-fast-import.txt:1054 #, no-wrap -msgid "sha1 mismatch <object>" +msgid "\tmissing SP <path> LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:144 +#: en/git-fast-import.txt:1063 msgid "" -"The database has an object who's sha1 doesn't match the database value. " -"This indicates a serious data integrity problem." +"Require that fast-import supports the specified feature, or abort if it does " +"not." msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:148 +#. type: delimited block . +#: en/git-fast-import.txt:1066 #, no-wrap -msgid "GIT_OBJECT_DIRECTORY" +msgid "\t'feature' SP <feature> ('=' <argument>)? LF\n" msgstr "" #. type: Plain text -#: en/git-fsck.txt:150 -msgid "used to specify the object database root (usually $GIT_DIR/objects)" +#: en/git-fast-import.txt:1069 +msgid "The <feature> part of the command may be any one of the following:" msgstr "" -#. type: Labeled list -#: en/git-fsck.txt:151 +#. type: Plain text +#: en/git-fast-import.txt:1070 en/git-fast-import.txt:1137 #, no-wrap -msgid "GIT_INDEX_FILE" +msgid "date-format" msgstr "" #. type: Plain text -#: en/git-fsck.txt:153 -msgid "used to specify the index file of the index" +#: en/git-fast-import.txt:1071 en/git-fast-import.txt:1139 +#, no-wrap +msgid "export-marks" msgstr "" #. type: Labeled list -#: en/git-fsck.txt:154 +#: en/git-fast-import.txt:1072 #, no-wrap -msgid "GIT_ALTERNATE_OBJECT_DIRECTORIES" +msgid "relative-marks" msgstr "" -#. type: Plain text -#: en/git-fsck.txt:156 -msgid "used to specify additional object database roots (usually unset)" +#. type: Labeled list +#: en/git-fast-import.txt:1073 +#, no-wrap +msgid "no-relative-marks" msgstr "" -#. type: Title = -#: en/git-gc.txt:2 +#. type: Plain text +#: en/git-fast-import.txt:1074 en/git-fast-import.txt:1141 #, no-wrap -msgid "git-gc(1)" +msgid "force" msgstr "" #. type: Plain text -#: en/git-gc.txt:7 -msgid "git-gc - Cleanup unnecessary files and optimize the local repository" +#: en/git-fast-import.txt:1078 +msgid "" +"Act as though the corresponding command-line option with a leading `--` was " +"passed on the command line (see OPTIONS, above)." msgstr "" #. type: Plain text -#: en/git-gc.txt:13 +#: en/git-fast-import.txt:1079 en/git-fast-import.txt:1138 #, no-wrap -msgid "" -"'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] " -"[--force]\n" +msgid "import-marks" msgstr "" -#. type: Plain text -#: en/git-gc.txt:20 -msgid "" -"Runs a number of housekeeping tasks within the current repository, such as " -"compressing file revisions (to reduce disk space and increase performance) " -"and removing unreachable objects which may have been created from prior " -"invocations of 'git add'." +#. type: Labeled list +#: en/git-fast-import.txt:1080 +#, no-wrap +msgid "import-marks-if-exists" msgstr "" #. type: Plain text -#: en/git-gc.txt:24 +#: en/git-fast-import.txt:1088 msgid "" -"Users are encouraged to run this task on a regular basis within each " -"repository to maintain good disk space utilization and good operating " -"performance." +"Like --import-marks except in two respects: first, only one \"feature import-" +"marks\" or \"feature import-marks-if-exists\" command is allowed per stream; " +"second, an --import-marks= or --import-marks-if-exists command-line option " +"overrides any of these \"feature\" commands in the stream; third, \"feature " +"import-marks-if-exists\" like a corresponding command-line option silently " +"skips a nonexistent file." msgstr "" -#. type: Plain text -#: en/git-gc.txt:28 -msgid "" -"Some git commands may automatically run 'git gc'; see the `--auto` flag " -"below for details. If you know what you're doing and all you want is to " -"disable this behavior permanently without further considerations, just do:" +#. type: Labeled list +#: en/git-fast-import.txt:1089 +#, no-wrap +msgid "get-mark" msgstr "" -#. type: delimited block - -#: en/git-gc.txt:31 +#. type: Labeled list +#: en/git-fast-import.txt:1090 #, no-wrap -msgid "$ git config --global gc.auto 0\n" +msgid "cat-blob" msgstr "" #. type: Labeled list -#: en/git-gc.txt:36 en/git-read-tree.txt:71 +#: en/git-fast-import.txt:1091 #, no-wrap -msgid "--aggressive" +msgid "ls" msgstr "" #. type: Plain text -#: en/git-gc.txt:43 +#: en/git-fast-import.txt:1099 msgid "" -"Usually 'git gc' runs very quickly while providing good disk space " -"utilization and performance. This option will cause 'git gc' to more " -"aggressively optimize the repository at the expense of taking much more " -"time. The effects of this optimization are persistent, so this option only " -"needs to be used occasionally; every few hundred changesets or so." +"Require that the backend support the 'get-mark', 'cat-blob', or 'ls' command " +"respectively. Versions of fast-import not supporting the specified command " +"will exit with a message indicating so. This lets the import error out " +"early with a clear message, rather than wasting time on the early part of an " +"import before the unsupported command is detected." msgstr "" #. type: Labeled list -#: en/git-gc.txt:44 +#: en/git-fast-import.txt:1100 #, no-wrap -msgid "--auto" +msgid "notes" msgstr "" #. type: Plain text -#: en/git-gc.txt:49 +#: en/git-fast-import.txt:1105 msgid "" -"With this option, 'git gc' checks whether any housekeeping is required; if " -"not, it exits without performing any work. Some git commands run `git gc " -"--auto` after performing operations that could create many loose objects." +"Require that the backend support the 'notemodify' (N) subcommand to the " +"'commit' command. Versions of fast-import not supporting notes will exit " +"with a message indicating so." msgstr "" -#. type: Plain text -#: en/git-gc.txt:56 -msgid "" -"Housekeeping is required if there are too many loose objects or too many " -"packs in the repository. If the number of loose objects exceeds the value of " -"the `gc.auto` configuration variable, then all loose objects are combined " -"into a single pack using `git repack -d -l`. Setting the value of `gc.auto` " -"to 0 disables automatic packing of loose objects." +#. type: Labeled list +#: en/git-fast-import.txt:1106 +#, no-wrap +msgid "done" msgstr "" #. type: Plain text -#: en/git-gc.txt:62 +#: en/git-fast-import.txt:1113 msgid "" -"If the number of packs exceeds the value of `gc.autoPackLimit`, then " -"existing packs (except those marked with a `.keep` file) are consolidated " -"into a single pack by using the `-A` option of 'git repack'. Setting " -"`gc.autoPackLimit` to 0 disables automatic consolidation of packs." -msgstr "" - -#. type: Labeled list -#: en/git-gc.txt:63 -#, no-wrap -msgid "--prune=<date>" +"Error out if the stream ends without a 'done' command. Without this " +"feature, errors causing the frontend to end abruptly at a convenient point " +"in the stream can go undetected. This may occur, for example, if an import " +"front end dies in mid-operation without emitting SIGTERM or SIGKILL at its " +"subordinate git fast-import instance." msgstr "" #. type: Plain text -#: en/git-gc.txt:70 +#: en/git-fast-import.txt:1120 msgid "" -"Prune loose objects older than date (default is 2 weeks ago, overridable by " -"the config variable `gc.pruneExpire`). --prune=all prunes loose objects " -"regardless of their age and increases the risk of corruption if another " -"process is writing to the repository concurrently; see \"NOTES\" " -"below. --prune is on by default." +"Processes the specified option so that git fast-import behaves in a way that " +"suits the frontend's needs. Note that options specified by the frontend are " +"overridden by any options the user may specify to git fast-import itself." msgstr "" -#. type: Labeled list -#: en/git-gc.txt:71 en/git-pack-refs.txt:57 +#. type: delimited block . +#: en/git-fast-import.txt:1123 #, no-wrap -msgid "--no-prune" +msgid " 'option' SP <option> LF\n" msgstr "" #. type: Plain text -#: en/git-gc.txt:73 -msgid "Do not prune any loose objects." +#: en/git-fast-import.txt:1128 +msgid "" +"The `<option>` part of the command may contain any of the options listed in " +"the OPTIONS section that do not change import semantics, without the leading " +"`--` and is treated in the same way." msgstr "" #. type: Plain text -#: en/git-gc.txt:76 -msgid "Suppress all progress reports." +#: en/git-fast-import.txt:1132 +msgid "" +"Option commands must be the first commands on the input (not counting " +"feature commands), to give an option command after any non-option command is " +"an error." msgstr "" #. type: Plain text -#: en/git-gc.txt:80 +#: en/git-fast-import.txt:1135 msgid "" -"Force `git gc` to run even if there may be another `git gc` instance running " -"on this repository." +"The following command-line options change import semantics and may therefore " +"not be passed as option:" msgstr "" #. type: Plain text -#: en/git-gc.txt:89 -msgid "" -"The optional configuration variable `gc.reflogExpire` can be set to indicate " -"how long historical entries within each branch's reflog should remain " -"available in this repository. The setting is expressed as a length of time, " -"for example '90 days' or '3 months'. It defaults to '90 days'." +#: en/git-fast-import.txt:1140 +msgid "cat-blob-fd" msgstr "" #. type: Plain text -#: en/git-gc.txt:98 +#: en/git-fast-import.txt:1146 msgid "" -"The optional configuration variable `gc.reflogExpireUnreachable` can be set " -"to indicate how long historical reflog entries which are not part of the " -"current branch should remain available in this repository. These types of " -"entries are generally created as a result of using `git commit --amend` or " -"`git rebase` and are the commits prior to the amend or rebase occurring. " -"Since these changes are not part of the current project most users will want " -"to expire them sooner. This option defaults to '30 days'." +"If the `done` feature is not in use, treated as if EOF was read. This can " +"be used to tell fast-import to finish early." msgstr "" #. type: Plain text -#: en/git-gc.txt:102 +#: en/git-fast-import.txt:1150 msgid "" -"The above two configuration variables can be given to a pattern. For " -"example, this sets non-default expiry values only to remote-tracking " -"branches:" +"If the `--done` command-line option or `feature done` command is in use, the " +"`done` command is mandatory and marks the end of the stream." msgstr "" -#. type: delimited block - -#: en/git-gc.txt:107 +#. type: Title - +#: en/git-fast-import.txt:1152 #, no-wrap -msgid "" -"[gc \"refs/remotes/*\"]\n" -"\treflogExpire = never\n" -"\treflogExpireUnreachable = 3 days\n" +msgid "RESPONSES TO COMMANDS" msgstr "" #. type: Plain text -#: en/git-gc.txt:112 +#: en/git-fast-import.txt:1159 msgid "" -"The optional configuration variable `gc.rerereResolved` indicates how long " -"records of conflicted merge you resolved earlier are kept. This defaults to " -"60 days." +"New objects written by fast-import are not available immediately. Most fast-" +"import commands have no visible effect until the next checkpoint (or " +"completion). The frontend can send commands to fill fast-import's input " +"pipe without worrying about how quickly they will take effect, which " +"improves performance by simplifying scheduling." msgstr "" #. type: Plain text -#: en/git-gc.txt:116 +#: en/git-fast-import.txt:1166 msgid "" -"The optional configuration variable `gc.rerereUnresolved` indicates how long " -"records of conflicted merge you have not resolved are kept. This defaults " -"to 15 days." +"For some frontends, though, it is useful to be able to read back data from " +"the current repository as it is being updated (for example when the source " +"material describes objects in terms of patches to be applied to previously " +"imported objects). This can be accomplished by connecting the frontend and " +"fast-import via bidirectional pipes:" msgstr "" -#. type: Plain text -#: en/git-gc.txt:121 +#. type: delimited block = +#: en/git-fast-import.txt:1171 +#, no-wrap msgid "" -"The optional configuration variable `gc.packRefs` determines if 'git gc' " -"runs 'git pack-refs'. This can be set to \"notbare\" to enable it within all " -"non-bare repos or it can be set to a boolean value. This defaults to true." +"\tmkfifo fast-import-output\n" +"\tfrontend <fast-import-output |\n" +"\tgit fast-import >fast-import-output\n" msgstr "" #. type: Plain text -#: en/git-gc.txt:128 +#: en/git-fast-import.txt:1175 msgid "" -"The optional configuration variable `gc.aggressiveWindow` controls how much " -"time is spent optimizing the delta compression of the objects in the " -"repository when the --aggressive option is specified. The larger the value, " -"the more time is spent optimizing the delta compression. See the " -"documentation for the --window' option in linkgit:git-repack[1] for more " -"details. This defaults to 250." +"A frontend set up this way can use `progress`, `get-mark`, `ls`, and `cat-" +"blob` commands to read information from the import in progress." msgstr "" #. type: Plain text -#: en/git-gc.txt:131 +#: en/git-fast-import.txt:1179 msgid "" -"Similarly, the optional configuration variable `gc.aggressiveDepth` controls " -"--depth option in linkgit:git-repack[1]. This defaults to 50." +"To avoid deadlock, such frontends must completely consume any pending output " +"from `progress`, `ls`, `get-mark`, and `cat-blob` before performing writes " +"to fast-import that might block." msgstr "" -#. type: Plain text -#: en/git-gc.txt:135 -msgid "" -"The optional configuration variable `gc.pruneExpire` controls how old the " -"unreferenced loose objects have to be before they are pruned. The default " -"is \"2 weeks ago\"." +#. type: Title - +#: en/git-fast-import.txt:1181 +#, no-wrap +msgid "CRASH REPORTS" msgstr "" #. type: Plain text -#: en/git-gc.txt:150 +#: en/git-fast-import.txt:1187 msgid "" -"'git gc' tries very hard not to delete objects that are referenced anywhere " -"in your repository. In particular, it will keep not only objects referenced " -"by your current set of branches and tags, but also objects referenced by the " -"index, remote-tracking branches, refs saved by 'git filter-branch' in " -"refs/original/, or reflogs (which may reference commits in branches that " -"were later amended or rewound). If you are expecting some objects to be " -"deleted and they aren't, check all of those locations and decide whether it " -"makes sense in your case to remove those references." +"If fast-import is supplied invalid input it will terminate with a non-zero " +"exit status and create a crash report in the top level of the Git repository " +"it was importing into. Crash reports contain a snapshot of the internal " +"fast-import state as well as the most recent commands that lead up to the " +"crash." msgstr "" #. type: Plain text -#: en/git-gc.txt:157 +#: en/git-fast-import.txt:1194 msgid "" -"On the other hand, when 'git gc' runs concurrently with another process, " -"there is a risk of it deleting an object that the other process is using but " -"hasn't created a reference to. This may just cause the other process to fail " -"or may corrupt the repository if the other process later adds a reference to " -"the deleted object. Git has two features that significantly mitigate this " -"problem:" +"All recent commands (including stream comments, file changes and progress " +"commands) are shown in the command history within the crash report, but raw " +"file data and commit messages are excluded from the crash report. This " +"exclusion saves space within the report file and reduces the amount of " +"buffering that fast-import must perform during execution." msgstr "" #. type: Plain text -#: en/git-gc.txt:160 +#: en/git-fast-import.txt:1202 msgid "" -"Any object with modification time newer than the `--prune` date is kept, " -"along with everything reachable from it." +"After writing a crash report fast-import will close the current packfile and " +"export the marks table. This allows the frontend developer to inspect the " +"repository state and resume the import from the point where it crashed. The " +"modified branches and tags are not updated during a crash, as the import did " +"not complete successfully. Branch and tag information can be found in the " +"crash report and must be applied manually if the update is needed." msgstr "" #. type: Plain text -#: en/git-gc.txt:164 -msgid "" -"Most operations that add an object to the database update the modification " -"time of the object if it is already present so that #1 applies." +#: en/git-fast-import.txt:1204 +msgid "An example crash:" msgstr "" -#. type: Plain text -#: en/git-gc.txt:169 +#. type: delimited block = +#: en/git-fast-import.txt:1220 +#, no-wrap msgid "" -"However, these features fall short of a complete solution, so users who run " -"commands concurrently have to live with some risk of corruption (which seems " -"to be low in practice) unless they turn off automatic garbage collection " -"with 'git config gc.auto 0'." +"\t$ cat >in <<END_OF_INPUT\n" +"\t# my very first test commit\n" +"\tcommit refs/heads/master\n" +"\tcommitter Shawn O. Pearce <spearce> 19283 -0400\n" +"\t# who is that guy anyway?\n" +"\tdata <<EOF\n" +"\tthis is my commit\n" +"\tEOF\n" +"\tM 644 inline .gitignore\n" +"\tdata <<EOF\n" +"\t.gitignore\n" +"\tEOF\n" +"\tM 777 inline bob\n" +"\tEND_OF_INPUT\n" msgstr "" -#. type: Plain text -#: en/git-gc.txt:175 +#. type: delimited block = +#: en/git-fast-import.txt:1224 +#, no-wrap msgid "" -"The 'git gc --auto' command will run the 'pre-auto-gc' hook. See " -"linkgit:githooks[5] for more information." +"\t$ git fast-import <in\n" +"\tfatal: Corrupt mode: M 777 inline bob\n" +"\tfast-import: dumping crash report to .git/fast_import_crash_8434\n" msgstr "" -#. type: Plain text -#: en/git-gc.txt:183 +#. type: delimited block = +#: en/git-fast-import.txt:1230 +#, no-wrap msgid "" -"linkgit:git-prune[1] linkgit:git-reflog[1] linkgit:git-repack[1] " -"linkgit:git-rerere[1]" +"\t$ cat .git/fast_import_crash_8434\n" +"\tfast-import crash report:\n" +"\t fast-import process: 8434\n" +"\t parent process : 1391\n" +"\t at Sat Sep 1 00:58:12 2007\n" msgstr "" -#. type: Title = -#: en/git-get-tar-commit-id.txt:2 +#. type: delimited block = +#: en/git-fast-import.txt:1232 #, no-wrap -msgid "git-get-tar-commit-id(1)" +msgid "\tfatal: Corrupt mode: M 777 inline bob\n" msgstr "" -#. type: Plain text -#: en/git-get-tar-commit-id.txt:7 +#. type: delimited block = +#: en/git-fast-import.txt:1242 +#, no-wrap msgid "" -"git-get-tar-commit-id - Extract commit ID from an archive created using " -"git-archive" +"\tMost Recent Commands Before Crash\n" +"\t---------------------------------\n" +"\t # my very first test commit\n" +"\t commit refs/heads/master\n" +"\t committer Shawn O. Pearce <spearce> 19283 -0400\n" +"\t # who is that guy anyway?\n" +"\t data <<EOF\n" +"\t M 644 inline .gitignore\n" +"\t data <<EOF\n" msgstr "" -#. type: Plain text -#: en/git-get-tar-commit-id.txt:13 +#. type: delimited block = +#: en/git-fast-import.txt:1243 #, no-wrap -msgid "'git get-tar-commit-id'\n" +msgid "M 777 inline bob\n" msgstr "" -#. type: Plain text -#: en/git-get-tar-commit-id.txt:22 +#. type: delimited block = +#: en/git-fast-import.txt:1246 +#, no-wrap msgid "" -"Read a tar archive created by 'git archive' from the standard input and " -"extract the commit ID stored in it. It reads only the first 1024 bytes of " -"input, thus its runtime is not influenced by the size of the tar archive " -"very much." +"Active Branch LRU\n" +"-----------------\n" msgstr "" -#. type: Plain text -#: en/git-get-tar-commit-id.txt:27 -msgid "" -"If no commit ID is found, 'git get-tar-commit-id' quietly exists with a " -"return code of 1. This can happen if the archive had not been created using " -"'git archive' or if the first parameter of 'git archive' had been a tree ID " -"instead of a commit ID or tag." +#. type: delimited block = +#: en/git-fast-import.txt:1247 +#, no-wrap +msgid "active_branches = 1 cur, 5 max\n" msgstr "" -#. type: Title = -#: en/git-grep.txt:2 -#, no-wrap -msgid "git-grep(1)" +#. type: delimited block = +#: en/git-fast-import.txt:1250 +msgid "pos clock name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" msgstr "" -#. type: Plain text -#: en/git-grep.txt:7 -msgid "git-grep - Print lines matching a pattern" +#. type: delimited block = +#: en/git-fast-import.txt:1251 +msgid "0 refs/heads/master" msgstr "" -#. type: Plain text -#: en/git-grep.txt:32 +#. type: delimited block = +#: en/git-fast-import.txt:1255 #, no-wrap msgid "" -"'git grep' [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | " -"--word-regexp]\n" -"\t [-v | --invert-match] [-h|-H] [--full-name]\n" -"\t [-E | --extended-regexp] [-G | --basic-regexp]\n" -"\t [-P | --perl-regexp]\n" -"\t [-F | --fixed-strings] [-n | --line-number]\n" -"\t [-l | --files-with-matches] [-L | --files-without-match]\n" -"\t [(-O | --open-files-in-pager) [<pager>]]\n" -"\t [-z | --null]\n" -"\t [-c | --count] [--all-match] [-q | --quiet]\n" -"\t [--max-depth <depth>]\n" -"\t [--color[=<when>] | --no-color]\n" -"\t [--break] [--heading] [-p | --show-function]\n" -"\t [-A <post-context>] [-B <pre-context>] [-C <context>]\n" -"\t [-W | --function-context]\n" -"\t [--threads <num>]\n" -"\t [-f <file>] [-e] <pattern>\n" -"\t [--and|--or|--not|(|)|-e <pattern>...]\n" -"\t [--recurse-submodules] [--parent-basename <basename>]\n" -"\t [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | " -"<tree>...]\n" -"\t [--] [<pathspec>...]\n" +"Inactive Branches\n" +"-----------------\n" +"refs/heads/master:\n" msgstr "" -#. type: Plain text -#: en/git-grep.txt:39 +#. type: delimited block = +#: en/git-fast-import.txt:1261 +#, no-wrap msgid "" -"Look for specified patterns in the tracked files in the work tree, blobs " -"registered in the index file, or blobs in given tree objects. Patterns are " -"lists of one or more search expressions separated by newline characters. An " -"empty string as search expression matches all lines." +"status : active loaded dirty\n" +"tip commit : 0000000000000000000000000000000000000000\n" +"old tree : 0000000000000000000000000000000000000000\n" +"cur tree : 0000000000000000000000000000000000000000\n" +"commit clock: 0\n" +"last pack :\n" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:44 en/config.txt:1619 +#. type: delimited block = +#: en/git-fast-import.txt:1265 +msgid "------------------- END OF CRASH REPORT" +msgstr "" + +#. type: Title - +#: en/git-fast-import.txt:1268 #, no-wrap -msgid "grep.lineNumber" +msgid "TIPS AND TRICKS" msgstr "" #. type: Plain text -#: en/git-grep.txt:46 en/config.txt:1621 -msgid "If set to true, enable `-n` option by default." +#: en/git-fast-import.txt:1271 +msgid "" +"The following tips and tricks have been collected from various users of fast-" +"import, and are offered here as suggestions." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:47 en/config.txt:1622 +#. type: Title ~ +#: en/git-fast-import.txt:1273 #, no-wrap -msgid "grep.patternType" +msgid "Use One Mark Per Commit" msgstr "" #. type: Plain text -#: en/git-grep.txt:52 en/config.txt:1627 +#: en/git-fast-import.txt:1281 msgid "" -"Set the default matching behavior. Using a value of 'basic', 'extended', " -"'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`, " -"`--fixed-strings`, or `--perl-regexp` option accordingly, while the value " -"'default' will return to the default matching behavior." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:53 en/config.txt:1628 -#, no-wrap -msgid "grep.extendedRegexp" +"When doing a repository conversion, use a unique mark per commit (`mark :" +"<n>`) and supply the --export-marks option on the command line. fast-import " +"will dump a file which lists every mark and the Git object SHA-1 that " +"corresponds to it. If the frontend can tie the marks back to the source " +"repository, it is easy to verify the accuracy and completeness of the import " +"by comparing each Git commit to the corresponding source revision." msgstr "" #. type: Plain text -#: en/git-grep.txt:57 en/config.txt:1632 +#: en/git-fast-import.txt:1285 msgid "" -"If set to true, enable `--extended-regexp` option by default. This option is " -"ignored when the `grep.patternType` option is set to a value other than " -"'default'." +"Coming from a system such as Perforce or Subversion this should be quite " +"simple, as the fast-import mark can also be the Perforce changeset number or " +"the Subversion revision number." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:58 en/config.txt:1633 +#. type: Title ~ +#: en/git-fast-import.txt:1287 #, no-wrap -msgid "grep.threads" +msgid "Freely Skip Around Branches" msgstr "" #. type: Plain text -#: en/git-grep.txt:61 +#: en/git-fast-import.txt:1292 msgid "" -"Number of grep worker threads to use. If unset (or set to 0), 8 threads are " -"used by default (for now)." +"Don't bother trying to optimize the frontend to stick to one branch at a " +"time during an import. Although doing so might be slightly faster for fast-" +"import, it tends to increase the complexity of the frontend code " +"considerably." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:62 +#. type: Plain text +#: en/git-fast-import.txt:1296 +msgid "" +"The branch LRU builtin to fast-import tends to behave very well, and the " +"cost of activating an inactive branch is so low that bouncing around between " +"branches has virtually no impact on import performance." +msgstr "" + +#. type: Title ~ +#: en/git-fast-import.txt:1298 #, no-wrap -msgid "grep.fullName" +msgid "Handling Renames" msgstr "" #. type: Plain text -#: en/git-grep.txt:64 -msgid "If set to true, enable `--full-name` option by default." +#: en/git-fast-import.txt:1303 +msgid "" +"When importing a renamed file or directory, simply delete the old name(s) " +"and modify the new name(s) during the corresponding commit. Git performs " +"rename detection after-the-fact, rather than explicitly during a commit." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:65 en/config.txt:1637 +#. type: Title ~ +#: en/git-fast-import.txt:1305 #, no-wrap -msgid "grep.fallbackToNoIndex" +msgid "Use Tag Fixup Branches" msgstr "" #. type: Plain text -#: en/git-grep.txt:68 en/config.txt:1640 +#: en/git-fast-import.txt:1309 msgid "" -"If set to true, fall back to git grep --no-index if git grep is executed " -"outside of a git repository. Defaults to false." +"Some other SCM systems let the user create a tag from multiple files which " +"are not from the same commit/changeset. Or to create tags which are a " +"subset of the files available in the repository." msgstr "" #. type: Plain text -#: en/git-grep.txt:75 +#: en/git-fast-import.txt:1316 msgid "" -"Instead of searching tracked files in the working tree, search blobs " -"registered in the index file." +"Importing these tags as-is in Git is impossible without making at least one " +"commit which ``fixes up'' the files to match the content of the tag. Use " +"fast-import's `reset` command to reset a dummy branch outside of your normal " +"branch space to the base commit for the tag, then commit one or more file " +"fixup commits, and finally tag the dummy branch." msgstr "" #. type: Plain text -#: en/git-grep.txt:78 -msgid "Search files in the current directory that is not managed by Git." +#: en/git-fast-import.txt:1322 +msgid "" +"For example since all normal branches are stored under `refs/heads/` name " +"the tag fixup branch `TAG_FIXUP`. This way it is impossible for the fixup " +"branch used by the importer to have namespace conflicts with real branches " +"imported from the source (the name `TAG_FIXUP` is not `refs/heads/" +"TAG_FIXUP`)." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:79 -#, no-wrap -msgid "--untracked" +#. type: Plain text +#: en/git-fast-import.txt:1328 +msgid "" +"When committing fixups, consider using `merge` to connect the commit(s) " +"which are supplying file revisions to the fixup branch. Doing so will allow " +"tools such as 'git blame' to track through the real commit history and " +"properly annotate the source files." msgstr "" #. type: Plain text -#: en/git-grep.txt:82 +#: en/git-fast-import.txt:1331 msgid "" -"In addition to searching in the tracked files in the working tree, search " -"also in untracked files." +"After fast-import terminates the frontend will need to do `rm .git/" +"TAG_FIXUP` to remove the dummy branch." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:83 +#. type: Title ~ +#: en/git-fast-import.txt:1333 #, no-wrap -msgid "--no-exclude-standard" +msgid "Import Now, Repack Later" msgstr "" #. type: Plain text -#: en/git-grep.txt:86 +#: en/git-fast-import.txt:1337 msgid "" -"Also search in ignored files by not honoring the `.gitignore` " -"mechanism. Only useful with `--untracked`." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:87 en/git-ls-files.txt:97 -#, no-wrap -msgid "--exclude-standard" +"As soon as fast-import completes the Git repository is completely valid and " +"ready for use. Typically this takes only a very short time, even for " +"considerably large projects (100,000+ commits)." msgstr "" #. type: Plain text -#: en/git-grep.txt:91 +#: en/git-fast-import.txt:1344 msgid "" -"Do not pay attention to ignored files specified via the\t`.gitignore` " -"mechanism. Only useful when searching files in the current directory with " -"`--no-index`." +"However repacking the repository is necessary to improve data locality and " +"access performance. It can also take hours on extremely large projects " +"(especially if -f and a large --window parameter is used). Since repacking " +"is safe to run alongside readers and writers, run the repack in the " +"background and let it finish when it finishes. There is no reason to wait " +"to explore your new Git project!" msgstr "" #. type: Plain text -#: en/git-grep.txt:97 +#: en/git-fast-import.txt:1349 msgid "" -"Recursively search in each submodule that has been initialized and checked " -"out in the repository. When used in combination with the <tree> option the " -"prefix of all submodule output will be the name of the parent project's " -"<tree> object." +"If you choose to wait for the repack, don't try to run benchmarks or " +"performance tests until repacking is completed. fast-import outputs " +"suboptimal packfiles that are simply never seen in real use situations." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:98 +#. type: Title ~ +#: en/git-fast-import.txt:1351 #, no-wrap -msgid "--parent-basename <basename>" +msgid "Repacking Historical Data" msgstr "" #. type: Plain text -#: en/git-grep.txt:104 +#: en/git-fast-import.txt:1358 msgid "" -"For internal use only. In order to produce uniform output with the " -"--recurse-submodules option, this option can be used to provide the basename " -"of a parent's <tree> object to a submodule so the submodule can prefix its " -"output with the parent's name rather than the SHA1 of the submodule." +"If you are repacking very old imported data (e.g. older than the last year), " +"consider expending some extra CPU time and supplying --window=50 (or higher) " +"when you run 'git repack'. This will take longer, but will also produce a " +"smaller packfile. You only need to expend the effort once, and everyone " +"using your project will benefit from the smaller repository." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:106 en/diff-options.txt:519 +#. type: Title ~ +#: en/git-fast-import.txt:1360 #, no-wrap -msgid "--text" -msgstr "" - -#. type: Plain text -#: en/git-grep.txt:108 -msgid "Process binary files as if they were text." +msgid "Include Some Progress Messages" msgstr "" #. type: Plain text -#: en/git-grep.txt:111 -msgid "Honor textconv filter settings." +#: en/git-fast-import.txt:1367 +msgid "" +"Every once in a while have your frontend emit a `progress` message to fast-" +"import. The contents of the messages are entirely free-form, so one " +"suggestion would be to output the current month and year each time the " +"current commit date moves into the next month. Your users will feel better " +"knowing how much of the data stream has been processed." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:112 en/diff-options.txt:571 +#. type: Title - +#: en/git-fast-import.txt:1370 #, no-wrap -msgid "--no-textconv" +msgid "PACKFILE OPTIMIZATION" msgstr "" #. type: Plain text -#: en/git-grep.txt:115 -msgid "Do not honor textconv filter settings. This is the default." +#: en/git-fast-import.txt:1376 +msgid "" +"When packing a blob fast-import always attempts to deltify against the last " +"blob written. Unless specifically arranged for by the frontend, this will " +"probably not be a prior version of the same file, so the generated delta " +"will not be the smallest possible. The resulting packfile will be " +"compressed, but will not be optimal." msgstr "" #. type: Plain text -#: en/git-grep.txt:120 -msgid "Ignore case differences between the patterns and the files." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:121 -#, no-wrap -msgid "-I" +#: en/git-fast-import.txt:1384 +msgid "" +"Frontends which have efficient access to all revisions of a single file (for " +"example reading an RCS/CVS ,v file) can choose to supply all revisions of " +"that file as a sequence of consecutive `blob` commands. This allows fast-" +"import to deltify the different file revisions against each other, saving " +"space in the final packfile. Marks can be used to later identify individual " +"file revisions during a sequence of `commit` commands." msgstr "" #. type: Plain text -#: en/git-grep.txt:123 -msgid "Don't match the pattern in binary files." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:124 -#, no-wrap -msgid "--max-depth <depth>" +#: en/git-fast-import.txt:1391 +msgid "" +"The packfile(s) created by fast-import do not encourage good disk access " +"patterns. This is caused by fast-import writing the data in the order it is " +"received on standard input, while Git typically organizes data within " +"packfiles to make the most recent (current tip) data appear before " +"historical data. Git also clusters commits together, speeding up revision " +"traversal through better cache locality." msgstr "" #. type: Plain text -#: en/git-grep.txt:130 +#: en/git-fast-import.txt:1398 msgid "" -"For each <pathspec> given on command line, descend at most <depth> levels of " -"directories. A negative value means no limit. This option is ignored if " -"<pathspec> contains active wildcards. In other words if \"a*\" matches a " -"directory named \"a*\", \"*\" is matched literally so --max-depth is still " -"effective." +"For this reason it is strongly recommended that users repack the repository " +"with `git repack -a -d` after fast-import completes, allowing Git to " +"reorganize the packfiles for faster data access. If blob deltas are " +"suboptimal (see above) then also adding the `-f` option to force " +"recomputation of all deltas can significantly reduce the final packfile size " +"(30-50% smaller can be quite typical)." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:132 +#. type: Title - +#: en/git-fast-import.txt:1401 #, no-wrap -msgid "--word-regexp" +msgid "MEMORY UTILIZATION" msgstr "" #. type: Plain text -#: en/git-grep.txt:136 +#: en/git-fast-import.txt:1407 msgid "" -"Match the pattern only at word boundary (either begin at the beginning of a " -"line, or preceded by a non-word character; end at the end of a line or " -"followed by a non-word character)." +"There are a number of factors which affect how much memory fast-import " +"requires to perform an import. Like critical sections of core Git, fast-" +"import uses its own memory allocators to amortize any overheads associated " +"with malloc. In practice fast-import tends to amortize any malloc overheads " +"to 0, due to its use of large block allocations." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:138 +#. type: Title ~ +#: en/git-fast-import.txt:1409 #, no-wrap -msgid "--invert-match" +msgid "per object" msgstr "" #. type: Plain text -#: en/git-grep.txt:140 -msgid "Select non-matching lines." +#: en/git-fast-import.txt:1416 +msgid "" +"fast-import maintains an in-memory structure for every object written in " +"this execution. On a 32 bit system the structure is 32 bytes, on a 64 bit " +"system the structure is 40 bytes (due to the larger pointer sizes). Objects " +"in the table are not deallocated until fast-import terminates. Importing 2 " +"million objects on a 32 bit system will require approximately 64 MiB of " +"memory." msgstr "" #. type: Plain text -#: en/git-grep.txt:148 +#: en/git-fast-import.txt:1422 msgid "" -"By default, the command shows the filename for each match. `-h` option is " -"used to suppress this output. `-H` is there for completeness and does not " -"do anything except it overrides `-h` given earlier on the command line." +"The object table is actually a hashtable keyed on the object name (the " +"unique SHA-1). This storage configuration allows fast-import to reuse an " +"existing or already written object and avoid writing duplicates to the " +"output packfile. Duplicate blobs are surprisingly common in an import, " +"typically due to branch merges in the source." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:149 en/git-ls-files.txt:136 en/git-ls-tree.txt:68 +#. type: Title ~ +#: en/git-fast-import.txt:1424 #, no-wrap -msgid "--full-name" +msgid "per mark" msgstr "" #. type: Plain text -#: en/git-grep.txt:154 en/git-ls-files.txt:141 +#: en/git-fast-import.txt:1430 msgid "" -"When run from a subdirectory, the command usually outputs paths relative to " -"the current directory. This option forces paths to be output relative to " -"the project top directory." +"Marks are stored in a sparse array, using 1 pointer (4 bytes or 8 bytes, " +"depending on pointer size) per mark. Although the array is sparse, " +"frontends are still strongly encouraged to use marks between 1 and n, where " +"n is the total number of marks required for this import." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:155 en/rev-list-options.txt:84 +#. type: Title ~ +#: en/git-fast-import.txt:1432 #, no-wrap -msgid "-E" +msgid "per branch" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:156 en/rev-list-options.txt:85 -#, no-wrap -msgid "--extended-regexp" +#. type: Plain text +#: en/git-fast-import.txt:1435 +msgid "" +"Branches are classified as active and inactive. The memory usage of the two " +"classes is significantly different." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:157 -#, no-wrap -msgid "-G" +#. type: Plain text +#: en/git-fast-import.txt:1441 +msgid "" +"Inactive branches are stored in a structure which uses 96 or 120 bytes (32 " +"bit or 64 bit systems, respectively), plus the length of the branch name " +"(typically under 200 bytes), per branch. fast-import will easily handle as " +"many as 10,000 inactive branches in under 2 MiB of memory." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:158 en/rev-list-options.txt:80 -#, no-wrap -msgid "--basic-regexp" +#. type: Plain text +#: en/git-fast-import.txt:1448 +msgid "" +"Active branches have the same overhead as inactive branches, but also " +"contain copies of every tree that has been recently modified on that " +"branch. If subtree `include` has not been modified since the branch became " +"active, its contents will not be loaded into memory, but if subtree `src` " +"has been modified by a commit since the branch became active, then its " +"contents will be loaded in memory." msgstr "" #. type: Plain text -#: en/git-grep.txt:161 +#: en/git-fast-import.txt:1452 msgid "" -"Use POSIX extended/basic regexp for patterns. Default is to use basic " -"regexp." +"As active branches store metadata about the files contained on that branch, " +"their in-memory storage size can grow to a considerable size (see below)." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:163 en/rev-list-options.txt:94 +#. type: Plain text +#: en/git-fast-import.txt:1457 +msgid "" +"fast-import automatically moves active branches to inactive status based on " +"a simple least-recently-used algorithm. The LRU chain is updated on each " +"`commit` command. The maximum number of active branches can be increased or " +"decreased on the command line with --active-branches=." +msgstr "" + +#. type: Title ~ +#: en/git-fast-import.txt:1459 #, no-wrap -msgid "--perl-regexp" +msgid "per active tree" msgstr "" #. type: Plain text -#: en/git-grep.txt:166 -msgid "Use Perl-compatible regexp for patterns. Requires libpcre to be compiled in." +#: en/git-fast-import.txt:1464 +msgid "" +"Trees (aka directories) use just 12 bytes of memory on top of the memory " +"required for their entries (see ``per active file'' below). The cost of a " +"tree is virtually 0, as its overhead amortizes out over the individual file " +"entries." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:167 en/git-repack.txt:69 en/rev-list-options.txt:89 +#. type: Title ~ +#: en/git-fast-import.txt:1466 #, no-wrap -msgid "-F" +msgid "per active file entry" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:168 en/rev-list-options.txt:90 -#, no-wrap -msgid "--fixed-strings" +#. type: Plain text +#: en/git-fast-import.txt:1472 +msgid "" +"Files (and pointers to subtrees) within active trees require 52 or 64 bytes " +"(32/64 bit platforms) per entry. To conserve space, file and tree names are " +"pooled in a common string table, allowing the filename ``Makefile'' to use " +"just 16 bytes (after including the string header overhead) no matter how " +"many times it occurs within the project." msgstr "" #. type: Plain text -#: en/git-grep.txt:171 -msgid "Use fixed strings for patterns (don't interpret pattern as a regex)." +#: en/git-fast-import.txt:1477 +msgid "" +"The active branch LRU, when coupled with the filename string pool and lazy " +"loading of subtrees, allows fast-import to efficiently import projects with " +"2,000+ branches and 45,114+ files in a very limited memory footprint (less " +"than 2.7 MiB per active branch)." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:173 +#. type: Title - +#: en/git-fast-import.txt:1479 #, no-wrap -msgid "--line-number" +msgid "SIGNALS" msgstr "" #. type: Plain text -#: en/git-grep.txt:175 -msgid "Prefix the line number to matching lines." +#: en/git-fast-import.txt:1485 +msgid "" +"Sending *SIGUSR1* to the 'git fast-import' process ends the current packfile " +"early, simulating a `checkpoint` command. The impatient operator can use " +"this facility to peek at the objects and refs from an import in progress, at " +"the cost of some added running time and worse compression." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:177 +#. type: Title = +#: en/git-fetch-pack.txt:2 #, no-wrap -msgid "--files-with-matches" +msgid "git-fetch-pack(1)" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:179 -#, no-wrap -msgid "-L" +#. type: Plain text +#: en/git-fetch-pack.txt:7 +msgid "git-fetch-pack - Receive missing objects from another repository" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:180 +#. type: Plain text +#: en/git-fetch-pack.txt:16 #, no-wrap -msgid "--files-without-match" +msgid "" +"'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]\n" +"\t[--upload-pack=<git-upload-pack>]\n" +"\t[--depth=<n>] [--no-progress]\n" +"\t[-v] <repository> [<refs>...]\n" msgstr "" #. type: Plain text -#: en/git-grep.txt:185 +#: en/git-fetch-pack.txt:21 msgid "" -"Instead of showing every matched line, show only the names of files that " -"contain (or do not contain) matches. For better compatibility with 'git " -"diff', `--name-only` is a synonym for `--files-with-matches`." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:186 -#, no-wrap -msgid "-O[<pager>]" +"Usually you would want to use 'git fetch', which is a higher level wrapper " +"of this command, instead." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:187 -#, no-wrap -msgid "--open-files-in-pager[=<pager>]" +#. type: Plain text +#: en/git-fetch-pack.txt:27 +msgid "" +"Invokes 'git-upload-pack' on a possibly remote repository and asks it to " +"send objects missing from this repository, to update the named heads. The " +"list of commits available locally is found out by scanning the local refs/ " +"hierarchy and sent to 'git-upload-pack' running on the other end." msgstr "" #. type: Plain text -#: en/git-grep.txt:195 +#: en/git-fetch-pack.txt:31 msgid "" -"Open the matching files in the pager (not the output of 'grep'). If the " -"pager happens to be \"less\" or \"vi\", and the user specified only one " -"pattern, the first file is positioned at the first match automatically. The " -"`pager` argument is optional; if specified, it must be stuck to the option " -"without a space. If `pager` is unspecified, the default pager will be used " -"(see `core.pager` in linkgit:git-config[1])." +"This command degenerates to download everything to complete the asked refs " +"from the remote side when the local side does not have a common ancestor " +"commit." msgstr "" #. type: Plain text -#: en/git-grep.txt:200 -msgid "Output \\0 instead of the character that normally follows a file name." +#: en/git-fetch-pack.txt:37 +msgid "Fetch all remote refs." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:202 en/rev-list-options.txt:848 -#, no-wrap -msgid "--count" +#. type: Plain text +#: en/git-fetch-pack.txt:43 en/git-send-pack.txt:46 +msgid "" +"Take the list of refs from stdin, one per line. If there are refs specified " +"on the command line in addition to this option, then the refs from stdin are " +"processed after those on the command line." msgstr "" #. type: Plain text -#: en/git-grep.txt:205 -msgid "Instead of showing every matched line, show the number of lines that match." +#: en/git-fetch-pack.txt:47 en/git-send-pack.txt:50 +msgid "" +"If `--stateless-rpc` is specified together with this option then the list of " +"refs must be in packet format (pkt-line). Each ref must be in a separate " +"packet, and the list must end with a flush packet." msgstr "" #. type: Plain text -#: en/git-grep.txt:209 +#: en/git-fetch-pack.txt:52 msgid "" -"Show colored matches. The value must be always (the default), never, or " -"auto." +"Pass `-q` flag to 'git unpack-objects'; this makes the cloning process less " +"verbose." msgstr "" #. type: Plain text -#: en/git-grep.txt:214 +#: en/git-fetch-pack.txt:59 msgid "" -"Turn off match highlighting, even when the configuration file gives the " -"default to color output. Same as `--color=never`." +"Do not invoke 'git unpack-objects' on received data, but create a single " +"packfile out of it instead, and store it in the object database. If provided " +"twice then the pack is locked against repacking." msgstr "" #. type: Labeled list -#: en/git-grep.txt:215 +#: en/git-fetch-pack.txt:60 en/git-pack-objects.txt:208 en/git-send-pack.txt:64 #, no-wrap -msgid "--break" +msgid "--thin" msgstr "" #. type: Plain text -#: en/git-grep.txt:217 -msgid "Print an empty line between matches from different files." +#: en/git-fetch-pack.txt:63 +msgid "" +"Fetch a \"thin\" pack, which records objects in deltified form based on " +"objects not included in the pack to reduce network traffic." msgstr "" #. type: Labeled list -#: en/git-grep.txt:218 +#: en/git-fetch-pack.txt:64 en/git-pack-objects.txt:83 #, no-wrap -msgid "--heading" +msgid "--include-tag" msgstr "" #. type: Plain text -#: en/git-grep.txt:221 +#: en/git-fetch-pack.txt:69 msgid "" -"Show the filename above the matches in that file instead of at the start of " -"each shown line." +"If the remote side supports it, annotated tags objects will be downloaded on " +"the same connection as the other objects if the object the tag references is " +"downloaded. The caller must otherwise determine the tags this option made " +"available." msgstr "" #. type: Labeled list -#: en/git-grep.txt:223 +#: en/git-fetch-pack.txt:70 #, no-wrap -msgid "--show-function" +msgid "--upload-pack=<git-upload-pack>" msgstr "" #. type: Plain text -#: en/git-grep.txt:229 +#: en/git-fetch-pack.txt:81 msgid "" -"Show the preceding line that contains the function name of the match, unless " -"the matching line is a function name itself. The name is determined in the " -"same way as 'git diff' works out patch hunk headers (see 'Defining a custom " -"hunk-header' in linkgit:gitattributes[5])." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:230 -#, no-wrap -msgid "-<num>" +"Use this to specify the path to 'git-upload-pack' on the remote side, if is " +"not found on your $PATH. Installations of sshd ignores the user's " +"environment setup scripts for login shells (e.g. .bash_profile) and your " +"privately installed git may not be found on the system default $PATH. " +"Another workaround suggested is to set up your $PATH in \".bashrc\", but " +"this flag is for people who do not want to pay the overhead for non-" +"interactive shells by having a lean .bashrc file (they set most of the " +"things up in .bash_profile)." msgstr "" #. type: Labeled list -#: en/git-grep.txt:231 +#: en/git-fetch-pack.txt:82 #, no-wrap -msgid "-C <num>" +msgid "--exec=<git-upload-pack>" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:232 -#, no-wrap -msgid "--context <num>" +#. type: Plain text +#: en/git-fetch-pack.txt:84 +msgid "Same as --upload-pack=<git-upload-pack>." msgstr "" #. type: Plain text -#: en/git-grep.txt:235 +#: en/git-fetch-pack.txt:89 msgid "" -"Show <num> leading and trailing lines, and place a line containing `--` " -"between contiguous groups of matches." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:236 -#, no-wrap -msgid "-A <num>" +"Limit fetching to ancestor-chains not longer than n. 'git-upload-pack' " +"treats the special depth 2147483647 as infinite even if there is an ancestor-" +"chain that long." msgstr "" #. type: Labeled list -#: en/git-grep.txt:237 +#: en/git-fetch-pack.txt:99 #, no-wrap -msgid "--after-context <num>" +msgid "--deepen-relative" msgstr "" #. type: Plain text -#: en/git-grep.txt:240 +#: en/git-fetch-pack.txt:103 msgid "" -"Show <num> trailing lines, and place a line containing `--` between " -"contiguous groups of matches." -msgstr "" - -#. type: Labeled list -#: en/git-grep.txt:241 -#, no-wrap -msgid "-B <num>" +"Argument --depth specifies the number of commits from the current shallow " +"boundary instead of from the tip of each remote branch history." msgstr "" #. type: Labeled list -#: en/git-grep.txt:242 +#: en/git-fetch-pack.txt:104 en/merge-options.txt:130 #, no-wrap -msgid "--before-context <num>" +msgid "--no-progress" msgstr "" #. type: Plain text -#: en/git-grep.txt:245 -msgid "" -"Show <num> leading lines, and place a line containing `--` between " -"contiguous groups of matches." +#: en/git-fetch-pack.txt:106 +msgid "Do not show the progress." msgstr "" #. type: Labeled list -#: en/git-grep.txt:247 en/diff-options.txt:547 +#: en/git-fetch-pack.txt:107 en/git-index-pack.txt:77 #, no-wrap -msgid "--function-context" +msgid "--check-self-contained-and-connected" msgstr "" #. type: Plain text -#: en/git-grep.txt:252 +#: en/git-fetch-pack.txt:110 msgid "" -"Show the surrounding text from the previous line containing a function name " -"up to the one before the next function name, effectively showing the whole " -"function in which the match was found." +"Output \"connectivity-ok\" if the received pack is self-contained and " +"connected." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:253 -#, no-wrap -msgid "--threads <num>" +#. type: Plain text +#: en/git-fetch-pack.txt:113 en/git-push.txt:370 en/git-send-pack.txt:63 +msgid "Run verbosely." msgstr "" #. type: Plain text -#: en/git-grep.txt:256 -msgid "" -"Number of grep worker threads to use. See `grep.threads` in 'CONFIGURATION' " -"for more information." +#: en/git-fetch-pack.txt:116 +msgid "The URL to the remote repository." msgstr "" #. type: Labeled list -#: en/git-grep.txt:257 +#: en/git-fetch-pack.txt:117 en/git-ls-remote.txt:86 #, no-wrap -msgid "-f <file>" +msgid "<refs>..." msgstr "" #. type: Plain text -#: en/git-grep.txt:259 -msgid "Read patterns from <file>, one per line." +#: en/git-fetch-pack.txt:121 +msgid "" +"The remote heads to update from. This is relative to $GIT_DIR (e.g. \"HEAD" +"\", \"refs/heads/master\"). When unspecified, update from all heads the " +"remote side has." msgstr "" #. type: Plain text -#: en/git-grep.txt:265 +#: en/git-fetch-pack.txt:125 msgid "" -"The next parameter is the pattern. This option has to be used for patterns " -"starting with `-` and should be used in scripts passing user input to grep. " -"Multiple patterns are combined by 'or'." +"If the remote has enabled the options `uploadpack.allowTipSHA1InWant`, " +"`uploadpack.allowReachableSHA1InWant`, or `uploadpack.allowAnySHA1InWant`, " +"they may alternatively be 40-hex sha1s present on the remote." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:266 +#. type: Title = +#: en/git-fetch.txt:2 #, no-wrap -msgid "--and" +msgid "git-fetch(1)" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:267 -#, no-wrap -msgid "--or" +#. type: Plain text +#: en/git-fetch.txt:7 +msgid "git-fetch - Download objects and refs from another repository" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:268 en/git-rev-parse.txt:129 en/rev-list-options.txt:131 +#. type: Plain text +#: en/git-fetch.txt:16 #, no-wrap -msgid "--not" +msgid "" +"'git fetch' [<options>] [<repository> [<refspec>...]]\n" +"'git fetch' [<options>] <group>\n" +"'git fetch' --multiple [<options>] [(<repository> | <group>)...]\n" +"'git fetch' --all [<options>]\n" msgstr "" -#. type: Labeled list -#: en/git-grep.txt:269 -#, no-wrap -msgid "( ... )" +#. type: Plain text +#: en/git-fetch.txt:24 +msgid "" +"Fetch branches and/or tags (collectively, \"refs\") from one or more other " +"repositories, along with the objects necessary to complete their histories. " +"Remote-tracking branches are updated (see the description of <refspec> below " +"for ways to control this behavior)." msgstr "" #. type: Plain text -#: en/git-grep.txt:274 +#: en/git-fetch.txt:32 msgid "" -"Specify how multiple patterns are combined using Boolean expressions. " -"`--or` is the default operator. `--and` has higher precedence than `--or`. " -"`-e` has to be used for all patterns." +"By default, any tag that points into the histories being fetched is also " +"fetched; the effect is to fetch tags that point at branches that you are " +"interested in. This default behavior can be changed by using the --tags or " +"--no-tags options or by configuring remote.<name>.tagOpt. By using a " +"refspec that fetches tags explicitly, you can fetch tags that do not point " +"into branches you are interested in as well." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:275 en/rev-list-options.txt:67 -#, no-wrap -msgid "--all-match" +#. type: Plain text +#: en/git-fetch.txt:37 +msgid "" +"'git fetch' can fetch from either a single named repository or URL, or from " +"several repositories at once if <group> is given and there is a remotes." +"<group> entry in the configuration file. (See linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/git-grep.txt:279 +#: en/git-fetch.txt:40 msgid "" -"When giving multiple pattern expressions combined with `--or`, this flag is " -"specified to limit the match to files that have lines to match all of them." +"When no remote is specified, by default the `origin` remote will be used, " +"unless there's an upstream branch configured for the current branch." msgstr "" #. type: Plain text -#: en/git-grep.txt:284 +#: en/git-fetch.txt:44 msgid "" -"Do not output matched lines; instead, exit with status 0 when there is a " -"match and with non-zero status when there isn't." +"The names of refs that are fetched, together with the object names they " +"point at, are written to `.git/FETCH_HEAD`. This information may be used by " +"scripts or other git commands, such as linkgit:git-pull[1]." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:285 +#. type: Title - +#: en/git-fetch.txt:55 #, no-wrap -msgid "<tree>..." +msgid "CONFIGURED REMOTE-TRACKING BRANCHES[[CRTB]]" msgstr "" #. type: Plain text -#: en/git-grep.txt:288 +#: en/git-fetch.txt:61 msgid "" -"Instead of searching tracked files in the working tree, search blobs in the " -"given trees." +"You often interact with the same remote repository by regularly and " +"repeatedly fetching from it. In order to keep track of the progress of such " +"a remote repository, `git fetch` allows you to configure `remote." +"<repository>.fetch` configuration variables." msgstr "" #. type: Plain text -#: en/git-grep.txt:292 +#: en/git-fetch.txt:63 +msgid "Typically such a variable may look like this:" +msgstr "" + +#. type: delimited block - +#: en/git-fetch.txt:67 +#, no-wrap msgid "" -"Signals the end of options; the rest of the parameters are <pathspec> " -"limiters." +"[remote \"origin\"]\n" +"\tfetch = +refs/heads/*:refs/remotes/origin/*\n" +msgstr "" + +#. type: Plain text +#: en/git-fetch.txt:70 +msgid "This configuration is used in two ways:" msgstr "" #. type: Plain text -#: en/git-grep.txt:296 +#: en/git-fetch.txt:80 msgid "" -"If given, limit the search to paths matching at least one pattern. Both " -"leading paths match and glob(7) patterns are supported." +"When `git fetch` is run without specifying what branches and/or tags to " +"fetch on the command line, e.g. `git fetch origin` or `git fetch`, `remote." +"<repository>.fetch` values are used as the refspecs--they specify which refs " +"to fetch and which local refs to update. The example above will fetch all " +"branches that exist in the `origin` (i.e. any ref that matches the left-hand " +"side of the value, `refs/heads/*`) and update the corresponding remote-" +"tracking branches in the `refs/remotes/origin/*` hierarchy." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:300 -#, no-wrap -msgid "`git grep 'time_t' -- '*.[ch]'`" +#. type: Plain text +#: en/git-fetch.txt:97 +msgid "" +"When `git fetch` is run with explicit branches and/or tags to fetch on the " +"command line, e.g. `git fetch origin master`, the <refspec>s given on the " +"command line determine what are to be fetched (e.g. `master` in the example, " +"which is a short-hand for `master:`, which in turn means \"fetch the " +"'master' branch but I do not explicitly say what remote-tracking branch to " +"update with it from the command line\"), and the example command will fetch " +"_only_ the 'master' branch. The `remote.<repository>.fetch` values " +"determine which remote-tracking branch, if any, is updated. When used in " +"this way, the `remote.<repository>.fetch` values do not have any effect in " +"deciding _what_ gets fetched (i.e. the values are not used as refspecs when " +"the command-line lists refspecs); they are only used to decide _where_ the " +"refs that are fetched are stored by acting as a mapping." msgstr "" #. type: Plain text -#: en/git-grep.txt:303 +#: en/git-fetch.txt:101 msgid "" -"Looks for `time_t` in all tracked .c and .h files in the working directory " -"and its subdirectories." +"The latter use of the `remote.<repository>.fetch` values can be overridden " +"by giving the `--refmap=<refspec>` parameter(s) on the command line." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:304 +#. type: Title - +#: en/git-fetch.txt:103 #, no-wrap -msgid "`git grep -e '#define' --and \\( -e MAX_PATH -e PATH_MAX \\)`" +msgid "PRUNING" msgstr "" #. type: Plain text -#: en/git-grep.txt:307 -msgid "Looks for a line that has `#define` and either `MAX_PATH` or `PATH_MAX`." +#: en/git-fetch.txt:108 +msgid "" +"Git has a default disposition of keeping data unless it's explicitly thrown " +"away; this extends to holding onto local references to branches on remotes " +"that have themselves deleted those branches." msgstr "" -#. type: Labeled list -#: en/git-grep.txt:308 -#, no-wrap -msgid "`git grep --all-match -e NODE -e Unexpected`" +#. type: Plain text +#: en/git-fetch.txt:114 +msgid "" +"If left to accumulate, these stale references might make performance worse " +"on big and busy repos that have a lot of branch churn, and e.g. make the " +"output of commands like `git branch -a --contains <commit>` needlessly " +"verbose, as well as impacting anything else that'll work with the complete " +"set of known references." msgstr "" #. type: Plain text -#: en/git-grep.txt:311 +#: en/git-fetch.txt:117 msgid "" -"Looks for a line that has `NODE` or `Unexpected` in files that have lines " -"that match both." +"These remote-tracking references can be deleted as a one-off with either of:" msgstr "" -#. type: Title = -#: en/git-gui.txt:2 +#. type: delimited block - +#: en/git-fetch.txt:121 #, no-wrap -msgid "git-gui(1)" +msgid "" +"# While fetching\n" +"$ git fetch --prune <name>\n" msgstr "" -#. type: Plain text -#: en/git-gui.txt:7 -msgid "git-gui - A portable graphical interface to Git" +#. type: delimited block - +#: en/git-fetch.txt:124 +#, no-wrap +msgid "" +"# Only prune, don't fetch\n" +"$ git remote prune <name>\n" msgstr "" #. type: Plain text -#: en/git-gui.txt:12 -#, no-wrap -msgid "'git gui' [<command>] [arguments]\n" +#: en/git-fetch.txt:130 +msgid "" +"To prune references as part of your normal workflow without needing to " +"remember to run that, set `fetch.prune` globally, or `remote.<name>.prune` " +"per-remote in the config. See linkgit:git-config[1]." msgstr "" #. type: Plain text -#: en/git-gui.txt:19 +#: en/git-fetch.txt:135 msgid "" -"A Tcl/Tk based graphical user interface to Git. 'git gui' focuses on " -"allowing users to make changes to their repository by making new commits, " -"amending existing ones, creating branches, performing local merges, and " -"fetching/pushing to remote repositories." +"Here's where things get tricky and more specific. The pruning feature " +"doesn't actually care about branches, instead it'll prune local <-> remote-" +"references as a function of the refspec of the remote (see `<refspec>` and " +"<<CRTB,CONFIGURED REMOTE-TRACKING BRANCHES>> above)." msgstr "" #. type: Plain text -#: en/git-gui.txt:24 +#: en/git-fetch.txt:141 msgid "" -"Unlike 'gitk', 'git gui' focuses on commit generation and single file " -"annotation and does not show project history. It does however supply menu " -"actions to start a 'gitk' session from within 'git gui'." +"Therefore if the refspec for the remote includes e.g. `refs/tags/*:refs/tags/" +"*`, or you manually run e.g. `git fetch --prune <name> \"refs/tags/*:refs/" +"tags/*\"` it won't be stale remote tracking branches that are deleted, but " +"any local tag that doesn't exist on the remote." msgstr "" #. type: Plain text -#: en/git-gui.txt:29 +#: en/git-fetch.txt:146 msgid "" -"'git gui' is known to work on all popular UNIX systems, Mac OS X, and " -"Windows (under both Cygwin and MSYS). To the extent possible OS specific " -"user interface guidelines are followed, making 'git gui' a fairly native " -"interface for users." +"This might not be what you expect, i.e. you want to prune remote `<name>`, " +"but also explicitly fetch tags from it, so when you fetch from it you delete " +"all your local tags, most of which may not have come from the `<name>` " +"remote in the first place." msgstr "" -#. type: Title - -#: en/git-gui.txt:31 en/git-p4.txt:63 en/git-remote.txt:42 en/git-rerere.txt:32 en/git-shell.txt:25 en/git-submodule.txt:60 en/git-svn.txt:29 en/git-worktree.txt:47 -#, no-wrap -msgid "COMMANDS" +#. type: Plain text +#: en/git-fetch.txt:150 +msgid "" +"So be careful when using this with a refspec like `refs/tags/*:refs/tags/*`, " +"or any other refspec which might map references from multiple remotes to the " +"same local namespace." msgstr "" -#. type: Labeled list -#: en/git-gui.txt:32 -#, no-wrap -msgid "blame" +#. type: Plain text +#: en/git-fetch.txt:157 +msgid "" +"Since keeping up-to-date with both branches and tags on the remote is a " +"common use-case the `--prune-tags` option can be supplied along with `--" +"prune` to prune local tags that don't exist on the remote, and force-update " +"those tags that differ. Tag pruning can also be enabled with `fetch." +"pruneTags` or `remote.<name>.pruneTags` in the config. See linkgit:git-" +"config[1]." msgstr "" #. type: Plain text -#: en/git-gui.txt:35 +#: en/git-fetch.txt:161 msgid "" -"Start a blame viewer on the specified file on the given version (or working " -"directory if not specified)." +"The `--prune-tags` option is equivalent to having `refs/tags/*:refs/tags/*` " +"declared in the refspecs of the remote. This can lead to some seemingly " +"strange interactions:" msgstr "" -#. type: Labeled list -#: en/git-gui.txt:36 +#. type: delimited block - +#: en/git-fetch.txt:166 #, no-wrap -msgid "browser" +msgid "" +"# These both fetch tags\n" +"$ git fetch --no-tags origin 'refs/tags/*:refs/tags/*'\n" +"$ git fetch --no-tags --prune-tags origin\n" msgstr "" #. type: Plain text -#: en/git-gui.txt:40 +#: en/git-fetch.txt:172 msgid "" -"Start a tree browser showing all files in the specified commit. Files " -"selected through the browser are opened in the blame viewer." +"The reason it doesn't error out when provided without `--prune` or its " +"config versions is for flexibility of the configured versions, and to " +"maintain a 1=1 mapping between what the command line flags do, and what the " +"configuration versions do." msgstr "" -#. type: Labeled list -#: en/git-gui.txt:41 -#, no-wrap -msgid "citool" +#. type: Plain text +#: en/git-fetch.txt:177 +msgid "" +"It's reasonable to e.g. configure `fetch.pruneTags=true` in `~/.gitconfig` " +"to have tags pruned whenever `git fetch --prune` is run, without making " +"every invocation of `git fetch` without `--prune` an error." msgstr "" #. type: Plain text -#: en/git-gui.txt:46 +#: en/git-fetch.txt:181 msgid "" -"Start 'git gui' and arrange to make exactly one commit before exiting and " -"returning to the shell. The interface is limited to only commit actions, " -"slightly reducing the application's startup time and simplifying the " -"menubar." +"Pruning tags with `--prune-tags` also works when fetching a URL instead of a " +"named remote. These will all prune tags not found on origin:" msgstr "" -#. type: Labeled list -#: en/git-gui.txt:47 +#. type: delimited block - +#: en/git-fetch.txt:187 #, no-wrap -msgid "version" +msgid "" +"$ git fetch origin --prune --prune-tags\n" +"$ git fetch origin --prune 'refs/tags/*:refs/tags/*'\n" +"$ git fetch <url of origin> --prune --prune-tags\n" +"$ git fetch <url of origin> --prune 'refs/tags/*:refs/tags/*'\n" msgstr "" #. type: Plain text -#: en/git-gui.txt:49 -msgid "Display the currently running version of 'git gui'." -msgstr "" - -#. type: Labeled list -#: en/git-gui.txt:53 -#, no-wrap -msgid "`git gui blame Makefile`" +#: en/git-fetch.txt:195 +msgid "" +"The output of \"git fetch\" depends on the transport method used; this " +"section describes the output when fetching over the Git protocol (either " +"locally or via ssh) and Smart HTTP protocol." msgstr "" #. type: Plain text -#: en/git-gui.txt:61 +#: en/git-fetch.txt:198 msgid "" -"Show the contents of the file 'Makefile' in the current working directory, " -"and provide annotations for both the original author of each line, and who " -"moved the line to its current location. The uncommitted file is annotated, " -"and uncommitted changes (if any) are explicitly attributed to 'Not Yet " -"Committed'." +"The status of the fetch is output in tabular form, with each line " +"representing the status of a single ref. Each line is of the form:" msgstr "" -#. type: Labeled list -#: en/git-gui.txt:62 +#. type: delimited block - +#: en/git-fetch.txt:201 #, no-wrap -msgid "`git gui blame v0.99.8 Makefile`" +msgid " <flag> <summary> <from> -> <to> [<reason>]\n" msgstr "" #. type: Plain text -#: en/git-gui.txt:68 +#: en/git-fetch.txt:205 msgid "" -"Show the contents of 'Makefile' in revision 'v0.99.8' and provide " -"annotations for each line. Unlike the above example the file is read from " -"the object database and not the working directory." -msgstr "" - -#. type: Labeled list -#: en/git-gui.txt:69 -#, no-wrap -msgid "`git gui blame --line=100 Makefile`" +"The status of up-to-date refs is shown only if the --verbose option is used." msgstr "" #. type: Plain text -#: en/git-gui.txt:73 +#: en/git-fetch.txt:210 msgid "" -"Loads annotations as described above and automatically scrolls the view to " -"center on line '100'." +"In compact output mode, specified with configuration variable fetch.output, " +"if either entire `<from>` or `<to>` is found in the other string, it will be " +"substituted with `*` in the other string. For example, `master -> origin/" +"master` becomes `master -> origin/*`." msgstr "" #. type: Labeled list -#: en/git-gui.txt:74 +#: en/git-fetch.txt:211 en/git-push.txt:431 #, no-wrap -msgid "`git gui citool`" +msgid "flag" msgstr "" #. type: Plain text -#: en/git-gui.txt:79 -msgid "" -"Make one commit and return to the shell when it is complete. This command " -"returns a non-zero exit code if the window was closed in any way other than " -"by making a commit." +#: en/git-fetch.txt:213 en/git-push.txt:433 +msgid "A single character indicating the status of the ref:" msgstr "" #. type: Labeled list -#: en/git-gui.txt:80 +#: en/git-fetch.txt:213 en/git-push.txt:433 #, no-wrap -msgid "`git gui citool --amend`" +msgid "(space)" msgstr "" #. type: Plain text -#: en/git-gui.txt:84 -msgid "Automatically enter the 'Amend Last Commit' mode of the interface." +#: en/git-fetch.txt:214 +msgid "for a successfully fetched fast-forward;" msgstr "" #. type: Labeled list -#: en/git-gui.txt:85 +#: en/git-fetch.txt:214 en/git-push.txt:434 #, no-wrap -msgid "`git gui citool --nocommit`" +msgid "`+`" msgstr "" #. type: Plain text -#: en/git-gui.txt:91 -msgid "" -"Behave as normal citool, but instead of making a commit simply terminate " -"with a zero exit code. It still checks that the index does not contain any " -"unmerged entries, so you can use it as a GUI version of " -"linkgit:git-mergetool[1]" +#: en/git-fetch.txt:215 en/git-push.txt:435 +msgid "for a successful forced update;" msgstr "" #. type: Labeled list -#: en/git-gui.txt:92 +#: en/git-fetch.txt:215 en/git-push.txt:435 #, no-wrap -msgid "`git citool`" +msgid "`-`" msgstr "" #. type: Plain text -#: en/git-gui.txt:95 -msgid "Same as `git gui citool` (above)." +#: en/git-fetch.txt:216 +msgid "for a successfully pruned ref;" msgstr "" #. type: Labeled list -#: en/git-gui.txt:96 +#: en/git-fetch.txt:216 #, no-wrap -msgid "`git gui browser maint`" +msgid "`t`" msgstr "" #. type: Plain text -#: en/git-gui.txt:101 -msgid "" -"Show a browser for the tree of the 'maint' branch. Files selected in the " -"browser can be viewed with the internal blame viewer." +#: en/git-fetch.txt:217 +msgid "for a successful tag update;" msgstr "" #. type: Labeled list -#: en/git-gui.txt:104 en/cmds-mainporcelain.txt:112 +#: en/git-fetch.txt:217 en/git-push.txt:436 #, no-wrap -msgid "linkgit:gitk[1]" +msgid "`*`" msgstr "" #. type: Plain text -#: en/git-gui.txt:108 -msgid "" -"The Git repository browser. Shows branches, commit history and file " -"differences. gitk is the utility started by 'git gui''s Repository " -"Visualize actions." +#: en/git-fetch.txt:218 +msgid "for a successfully fetched new ref;" msgstr "" -#. type: Title - -#: en/git-gui.txt:110 +#. type: Labeled list +#: en/git-fetch.txt:218 en/git-push.txt:437 #, no-wrap -msgid "Other" +msgid "`!`" msgstr "" #. type: Plain text -#: en/git-gui.txt:114 -msgid "" -"'git gui' is actually maintained as an independent project, but stable " -"versions are distributed as part of the Git suite for the convenience of end " -"users." +#: en/git-fetch.txt:219 +msgid "for a ref that was rejected or failed to update; and" msgstr "" -#. type: Plain text -#: en/git-gui.txt:116 -msgid "A 'git gui' development repository can be obtained from:" +#. type: Labeled list +#: en/git-fetch.txt:219 en/git-push.txt:438 +#, no-wrap +msgid "`=`" msgstr "" #. type: Plain text -#: en/git-gui.txt:118 -#, no-wrap -msgid " git clone git://repo.or.cz/git-gui.git\n" +#: en/git-fetch.txt:220 +msgid "for a ref that was up to date and did not need fetching." msgstr "" -#. type: Plain text -#: en/git-gui.txt:122 +#. type: Labeled list +#: en/git-fetch.txt:221 en/git-push.txt:440 #, no-wrap -msgid " git clone http://repo.or.cz/r/git-gui.git\n" +msgid "summary" msgstr "" #. type: Plain text -#: en/git-gui.txt:124 -msgid "or browsed online at http://repo.or.cz/w/git-gui.git/[]." +#: en/git-fetch.txt:226 +msgid "" +"For a successfully fetched ref, the summary shows the old and new values of " +"the ref in a form suitable for using as an argument to `git log` (this is " +"`<old>..<new>` in most cases, and `<old>...<new>` for forced non-fast-" +"forward updates)." msgstr "" -#. type: Title = -#: en/git-hash-object.txt:2 +#. type: Labeled list +#: en/git-fetch.txt:227 en/git-push.txt:468 #, no-wrap -msgid "git-hash-object(1)" +msgid "from" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:7 +#: en/git-fetch.txt:231 msgid "" -"git-hash-object - Compute object ID and optionally creates a blob from a " -"file" +"The name of the remote ref being fetched from, minus its `refs/<type>/` " +"prefix. In the case of deletion, the name of the remote ref is \"(none)\"." msgstr "" #. type: Plain text -#: en/git-hash-object.txt:14 +#: en/git-fetch.txt:232 en/git-push.txt:473 en/git-rebase.txt:1037 #, no-wrap -msgid "" -"'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin " -"[--literally]] [--] <file>...\n" -"'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters]\n" +msgid "to" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:24 +#: en/git-fetch.txt:235 msgid "" -"Computes the object ID value for an object with specified type with the " -"contents of the named file (which can be outside of the work tree), and " -"optionally writes the resulting object into the object database. Reports " -"its object ID to its standard output. This is used by 'git cvsimport' to " -"update the index without modifying files in the work tree. When <type> is " -"not specified, it defaults to \"blob\"." +"The name of the local ref being updated, minus its `refs/<type>/` prefix." msgstr "" #. type: Labeled list -#: en/git-hash-object.txt:28 +#: en/git-fetch.txt:236 en/git-push.txt:477 #, no-wrap -msgid "-t <type>" +msgid "reason" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:30 -msgid "Specify the type (default: \"blob\")." +#: en/git-fetch.txt:240 +msgid "" +"A human-readable explanation. In the case of successfully fetched refs, no " +"explanation is needed. For a failed ref, the reason for failure is described." msgstr "" #. type: Plain text -#: en/git-hash-object.txt:33 -msgid "Actually write the object into the object database." +#: en/git-fetch.txt:245 +msgid "Update the remote-tracking branches:" +msgstr "" + +#. type: delimited block - +#: en/git-fetch.txt:248 +#, no-wrap +msgid "$ git fetch origin\n" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:36 -msgid "Read the object from standard input instead of from a file." +#: en/git-fetch.txt:254 +msgid "" +"The above command copies all branches from the remote refs/heads/ namespace " +"and stores them to the local refs/remotes/origin/ namespace, unless the " +"branch.<name>.fetch option is used to specify a non-default refspec." msgstr "" -#. type: Labeled list -#: en/git-hash-object.txt:37 +#. type: Plain text +#: en/git-fetch.txt:256 +msgid "Using refspecs explicitly:" +msgstr "" + +#. type: delimited block - +#: en/git-fetch.txt:259 #, no-wrap -msgid "--stdin-paths" +msgid "$ git fetch origin +pu:pu maint:tmp\n" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:40 +#: en/git-fetch.txt:264 msgid "" -"Read file names from the standard input, one per line, instead of from the " -"command-line." +"This updates (or creates, as necessary) branches `pu` and `tmp` in the local " +"repository by fetching from the branches (respectively) `pu` and `maint` " +"from the remote repository." msgstr "" #. type: Plain text -#: en/git-hash-object.txt:50 +#: en/git-fetch.txt:267 msgid "" -"Hash object as it were located at the given path. The location of file does " -"not directly influence on the hash value, but path is used to determine what " -"Git filters should be applied to the object before it can be placed to the " -"object database, and, as result of applying filters, the actual blob put " -"into the object database may differ from the given file. This option is " -"mainly useful for hashing temporary files located outside of the working " -"directory or files read from stdin." -msgstr "" - -#. type: Labeled list -#: en/git-hash-object.txt:51 -#, no-wrap -msgid "--no-filters" +"The `pu` branch will be updated even if it is does not fast-forward, because " +"it is prefixed with a plus sign; `tmp` will not be." msgstr "" #. type: Plain text -#: en/git-hash-object.txt:56 +#: en/git-fetch.txt:270 msgid "" -"Hash the contents as is, ignoring any input filter that would have been " -"chosen by the attributes mechanism, including the end-of-line conversion. If " -"the file is read from standard input then this is always implied, unless the " -"`--path` option is given." +"Peek at a remote's branch, without configuring the remote in your local " +"repository:" msgstr "" -#. type: Labeled list -#: en/git-hash-object.txt:57 +#. type: delimited block - +#: en/git-fetch.txt:274 #, no-wrap -msgid "--literally" +msgid "" +"$ git fetch git://git.kernel.org/pub/scm/git/git.git maint\n" +"$ git log FETCH_HEAD\n" msgstr "" #. type: Plain text -#: en/git-hash-object.txt:62 +#: en/git-fetch.txt:281 msgid "" -"Allow `--stdin` to hash any garbage into a loose object which might not " -"otherwise pass standard object parsing or git-fsck checks. Useful for " -"stress-testing Git itself or reproducing characteristics of corrupt or bogus " -"objects encountered in the wild." +"The first command fetches the `maint` branch from the repository at `git://" +"git.kernel.org/pub/scm/git/git.git` and the second command uses `FETCH_HEAD` " +"to examine the branch with linkgit:git-log[1]. The fetched objects will " +"eventually be removed by git's built-in housekeeping (see linkgit:git-gc[1])." +msgstr "" + +#. type: Plain text +#: en/git-fetch.txt:292 en/git-pull.txt:255 +msgid "" +"Using --recurse-submodules can only fetch new commits in already checked out " +"submodules right now. When e.g. upstream added a new submodule in the just " +"fetched commits of the superproject the submodule itself can not be fetched, " +"making it impossible to check out that submodule later without having to do " +"a fetch again. This is expected to be fixed in a future Git version." msgstr "" #. type: Title = -#: en/git-help.txt:2 +#: en/git-filter-branch.txt:2 #, no-wrap -msgid "git-help(1)" +msgid "git-filter-branch(1)" msgstr "" #. type: Plain text -#: en/git-help.txt:7 -msgid "git-help - Display help information about Git" +#: en/git-filter-branch.txt:7 +msgid "git-filter-branch - Rewrite branches" msgstr "" #. type: Plain text -#: en/git-help.txt:13 +#: en/git-filter-branch.txt:18 #, no-wrap msgid "" -"'git help' [-a|--all] [-g|--guide]\n" -"\t [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]\n" +"'git filter-branch' [--setup <command>] [--subdirectory-filter <directory>]\n" +"\t[--env-filter <command>] [--tree-filter <command>]\n" +"\t[--index-filter <command>] [--parent-filter <command>]\n" +"\t[--msg-filter <command>] [--commit-filter <command>]\n" +"\t[--tag-name-filter <command>] [--prune-empty]\n" +"\t[--original <namespace>] [-d <directory>] [-f | --force]\n" +"\t[--state-branch <branch>] [--] [<rev-list options>...]\n" msgstr "" #. type: Plain text -#: en/git-help.txt:20 +#: en/git-filter-branch.txt:27 msgid "" -"With no options and no COMMAND or GUIDE given, the synopsis of the 'git' " -"command and a list of the most commonly used Git commands are printed on the " -"standard output." +"Lets you rewrite Git revision history by rewriting the branches mentioned in " +"the <rev-list options>, applying custom filters on each revision. Those " +"filters can modify each tree (e.g. removing a file or running a perl rewrite " +"on all files) or information about each commit. Otherwise, all information " +"(including original commit times or merge information) will be preserved." msgstr "" #. type: Plain text -#: en/git-help.txt:23 +#: en/git-filter-branch.txt:34 msgid "" -"If the option `--all` or `-a` is given, all available commands are printed " -"on the standard output." +"The command will only rewrite the _positive_ refs mentioned in the command " +"line (e.g. if you pass 'a..b', only 'b' will be rewritten). If you specify " +"no filters, the commits will be recommitted without any changes, which would " +"normally have no effect. Nevertheless, this may be useful in the future for " +"compensating for some Git bugs or such, therefore such a usage is permitted." msgstr "" #. type: Plain text -#: en/git-help.txt:26 +#: en/git-filter-branch.txt:39 +#, no-wrap msgid "" -"If the option `--guide` or `-g` is given, a list of the useful Git guides is " -"also printed on the standard output." +"*NOTE*: This command honors `.git/info/grafts` file and refs in\n" +"the `refs/replace/` namespace.\n" +"If you have any grafts or replacement refs defined, running this command\n" +"will make them permanent.\n" msgstr "" #. type: Plain text -#: en/git-help.txt:31 +#: en/git-filter-branch.txt:48 +#, no-wrap msgid "" -"If a command, or a guide, is given, a manual page for that command or guide " -"is brought up. The 'man' program is used by default for this purpose, but " -"this can be overridden by other options or configuration variables." +"*WARNING*! The rewritten history will have different object names for all\n" +"the objects and will not converge with the original branch. You will not\n" +"be able to easily push and distribute the rewritten branch on top of the\n" +"original branch. Please do not use this command if you do not know the\n" +"full implications, and avoid using it anyway, if a simple single commit\n" +"would suffice to fix your problem. (See the \"RECOVERING FROM UPSTREAM\n" +"REBASE\" section in linkgit:git-rebase[1] for further information about\n" +"rewriting published history.)\n" msgstr "" #. type: Plain text -#: en/git-help.txt:34 +#: en/git-filter-branch.txt:52 msgid "" -"Note that `git --help ...` is identical to `git help ...` because the former " -"is internally converted into the latter." +"Always verify that the rewritten version is correct: The original refs, if " +"different from the rewritten ones, will be stored in the namespace 'refs/" +"original/'." msgstr "" #. type: Plain text -#: en/git-help.txt:36 -msgid "To display the linkgit:git[1] man page, use `git help git`." +#: en/git-filter-branch.txt:56 +msgid "" +"Note that since this operation is very I/O expensive, it might be a good " +"idea to redirect the temporary directory off-disk with the `-d` option, e.g. " +"on tmpfs. Reportedly the speedup is very noticeable." msgstr "" -#. type: Plain text -#: en/git-help.txt:38 -msgid "This page can be displayed with 'git help help' or `git help --help`" +#. type: Title ~ +#: en/git-filter-branch.txt:59 +#, no-wrap +msgid "Filters" msgstr "" #. type: Plain text -#: en/git-help.txt:45 +#: en/git-filter-branch.txt:71 msgid "" -"Prints all the available commands on the standard output. This option " -"overrides any given command or guide name." +"The filters are applied in the order as listed below. The <command> " +"argument is always evaluated in the shell context using the 'eval' command " +"(with the notable exception of the commit filter, for technical reasons). " +"Prior to that, the `$GIT_COMMIT` environment variable will be set to contain " +"the id of the commit being rewritten. Also, GIT_AUTHOR_NAME, " +"GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, " +"and GIT_COMMITTER_DATE are taken from the current commit and exported to the " +"environment, in order to affect the author and committer identities of the " +"replacement commit created by linkgit:git-commit-tree[1] after the filters " +"have run." msgstr "" -#. type: Labeled list -#: en/git-help.txt:47 -#, no-wrap -msgid "--guides" +#. type: Plain text +#: en/git-filter-branch.txt:74 +msgid "" +"If any evaluation of <command> returns a non-zero exit status, the whole " +"operation will be aborted." msgstr "" #. type: Plain text -#: en/git-help.txt:50 +#: en/git-filter-branch.txt:80 msgid "" -"Prints a list of useful guides on the standard output. This option overrides " -"any given command or guide name." +"A 'map' function is available that takes an \"original sha1 id\" argument " +"and outputs a \"rewritten sha1 id\" if the commit has been already " +"rewritten, and \"original sha1 id\" otherwise; the 'map' function can return " +"several ids on separate lines if your commit filter emitted multiple commits." msgstr "" #. type: Labeled list -#: en/git-help.txt:52 +#: en/git-filter-branch.txt:85 #, no-wrap -msgid "--info" +msgid "--setup <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:55 +#: en/git-filter-branch.txt:91 msgid "" -"Display manual page for the command in the 'info' format. The 'info' program " -"will be used for that purpose." +"This is not a real filter executed for each commit but a one time setup just " +"before the loop. Therefore no commit-specific variables are defined yet. " +"Functions or variables defined here can be used or modified in the following " +"filter steps except the commit filter, for technical reasons." msgstr "" #. type: Labeled list -#: en/git-help.txt:57 +#: en/git-filter-branch.txt:92 #, no-wrap -msgid "--man" -msgstr "" - -#. type: Plain text -#: en/git-help.txt:61 -msgid "" -"Display manual page for the command in the 'man' format. This option may be " -"used to override a value set in the `help.format` configuration variable." +msgid "--subdirectory-filter <directory>" msgstr "" #. type: Plain text -#: en/git-help.txt:65 +#: en/git-filter-branch.txt:96 msgid "" -"By default the 'man' program will be used to display the manual page, but " -"the `man.viewer` configuration variable may be used to choose other display " -"programs (see below)." +"Only look at the history which touches the given subdirectory. The result " +"will contain that directory (and only that) as its project root. Implies " +"<<Remap_to_ancestor>>." msgstr "" #. type: Labeled list -#: en/git-help.txt:67 +#: en/git-filter-branch.txt:97 #, no-wrap -msgid "--web" -msgstr "" - -#. type: Plain text -#: en/git-help.txt:70 -msgid "" -"Display manual page for the command in the 'web' (HTML) format. A web " -"browser will be used for that purpose." +msgid "--env-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:76 +#: en/git-filter-branch.txt:102 msgid "" -"The web browser can be specified using the configuration variable " -"`help.browser`, or `web.browser` if the former is not set. If none of these " -"config variables is set, the 'git web{litdd}browse' helper script (called by " -"'git help') will pick a suitable default. See " -"linkgit:git-web{litdd}browse[1] for more information about this." -msgstr "" - -#. type: Title - -#: en/git-help.txt:78 en/git-interpret-trailers.txt:84 en/git-p4.txt:450 en/git-web--browse.txt:59 -#, no-wrap -msgid "CONFIGURATION VARIABLES" +"This filter may be used if you only need to modify the environment in which " +"the commit will be performed. Specifically, you might want to rewrite the " +"author/committer name/email/time environment variables (see linkgit:git-" +"commit-tree[1] for details)." msgstr "" #. type: Labeled list -#: en/git-help.txt:81 en/config.txt:1765 +#: en/git-filter-branch.txt:103 #, no-wrap -msgid "help.format" +msgid "--tree-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:87 +#: en/git-filter-branch.txt:110 msgid "" -"If no command-line option is passed, the `help.format` configuration " -"variable will be checked. The following values are supported for this " -"variable; they make 'git help' behave as their corresponding command- line " -"option:" -msgstr "" - -#. type: Plain text -#: en/git-help.txt:89 -msgid "\"man\" corresponds to '-m|--man'," +"This is the filter for rewriting the tree and its contents. The argument is " +"evaluated in shell with the working directory set to the root of the checked " +"out tree. The new tree is then used as-is (new files are auto-added, " +"disappeared files are auto-removed - neither .gitignore files nor any other " +"ignore rules *HAVE ANY EFFECT*!)." msgstr "" -#. type: Plain text -#: en/git-help.txt:90 -msgid "\"info\" corresponds to '-i|--info'," +#. type: Labeled list +#: en/git-filter-branch.txt:111 +#, no-wrap +msgid "--index-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:91 -msgid "\"web\" or \"html\" correspond to '-w|--web'." +#: en/git-filter-branch.txt:117 +msgid "" +"This is the filter for rewriting the index. It is similar to the tree " +"filter but does not check out the tree, which makes it much faster. " +"Frequently used with `git rm --cached --ignore-unmatch ...`, see EXAMPLES " +"below. For hairy cases, see linkgit:git-update-index[1]." msgstr "" -#. type: Title ~ -#: en/git-help.txt:93 +#. type: Labeled list +#: en/git-filter-branch.txt:118 #, no-wrap -msgid "help.browser, web.browser and browser.<tool>.path" +msgid "--parent-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:99 +#: en/git-filter-branch.txt:125 msgid "" -"The `help.browser`, `web.browser` and `browser.<tool>.path` will also be " -"checked if the 'web' format is chosen (either by command-line option or " -"configuration variable). See '-w|--web' in the OPTIONS section above and " -"linkgit:git-web{litdd}browse[1]." +"This is the filter for rewriting the commit's parent list. It will receive " +"the parent string on stdin and shall output the new parent string on " +"stdout. The parent string is in the format described in linkgit:git-commit-" +"tree[1]: empty for the initial commit, \"-p parent\" for a normal commit and " +"\"-p parent1 -p parent2 -p parent3 ...\" for a merge commit." msgstr "" #. type: Labeled list -#: en/git-help.txt:101 en/config.txt:2170 +#: en/git-filter-branch.txt:126 #, no-wrap -msgid "man.viewer" +msgid "--msg-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:105 +#: en/git-filter-branch.txt:131 msgid "" -"The `man.viewer` configuration variable will be checked if the 'man' format " -"is chosen. The following values are currently supported:" +"This is the filter for rewriting the commit messages. The argument is " +"evaluated in the shell with the original commit message on standard input; " +"its standard output is used as the new commit message." msgstr "" -#. type: Plain text -#: en/git-help.txt:107 -msgid "\"man\": use the 'man' program as usual," +#. type: Labeled list +#: en/git-filter-branch.txt:132 +#, no-wrap +msgid "--commit-filter <command>" msgstr "" #. type: Plain text -#: en/git-help.txt:109 +#: en/git-filter-branch.txt:138 msgid "" -"\"woman\": use 'emacsclient' to launch the \"woman\" mode in emacs (this " -"only works starting with emacsclient versions 22)," +"This is the filter for performing the commit. If this filter is specified, " +"it will be called instead of the 'git commit-tree' command, with arguments " +"of the form \"<TREE_ID> [(-p <PARENT_COMMIT_ID>)...]\" and the log message " +"on stdin. The commit id is expected on stdout." msgstr "" #. type: Plain text -#: en/git-help.txt:111 +#: en/git-filter-branch.txt:142 msgid "" -"\"konqueror\": use 'kfmclient' to open the man page in a new konqueror tab " -"(see 'Note about konqueror' below)." +"As a special extension, the commit filter may emit multiple commit ids; in " +"that case, the rewritten children of the original commit will have all of " +"them as parents." msgstr "" #. type: Plain text -#: en/git-help.txt:114 +#: en/git-filter-branch.txt:147 msgid "" -"Values for other tools can be used if there is a corresponding " -"`man.<tool>.cmd` configuration entry (see below)." +"You can use the 'map' convenience function in this filter, and other " +"convenience functions, too. For example, calling 'skip_commit \"$@\"' will " +"leave out the current commit (but not its changes! If you want that, use " +"'git rebase' instead)." msgstr "" #. type: Plain text -#: en/git-help.txt:118 +#: en/git-filter-branch.txt:151 msgid "" -"Multiple values may be given to the `man.viewer` configuration " -"variable. Their corresponding programs will be tried in the order listed in " -"the configuration file." +"You can also use the `git_commit_non_empty_tree \"$@\"` instead of `git " +"commit-tree \"$@\"` if you don't wish to keep commits with a single parent " +"and that makes no change to the tree." msgstr "" -#. type: Plain text -#: en/git-help.txt:120 -msgid "For example, this configuration:" +#. type: Labeled list +#: en/git-filter-branch.txt:152 +#, no-wrap +msgid "--tag-name-filter <command>" msgstr "" -#. type: delimited block - -#: en/git-help.txt:125 -#, no-wrap +#. type: Plain text +#: en/git-filter-branch.txt:158 msgid "" -"\t[man]\n" -"\t\tviewer = konqueror\n" -"\t\tviewer = woman\n" +"This is the filter for rewriting tag names. When passed, it will be called " +"for every tag ref that points to a rewritten object (or to a tag object " +"which points to a rewritten object). The original tag name is passed via " +"standard input, and the new tag name is expected on standard output." msgstr "" #. type: Plain text -#: en/git-help.txt:129 +#: en/git-filter-branch.txt:163 msgid "" -"will try to use konqueror first. But this may fail (for example, if DISPLAY " -"is not set) and in that case emacs' woman mode will be tried." +"The original tags are not deleted, but can be overwritten; use \"--tag-name-" +"filter cat\" to simply update the tags. In this case, be very careful and " +"make sure you have the old tags backed up in case the conversion has run " +"afoul." msgstr "" #. type: Plain text -#: en/git-help.txt:133 +#: en/git-filter-branch.txt:174 msgid "" -"If everything fails, or if no viewer is configured, the viewer specified in " -"the `GIT_MAN_VIEWER` environment variable will be tried. If that fails too, " -"the 'man' program will be tried anyway." +"Nearly proper rewriting of tag objects is supported. If the tag has a " +"message attached, a new tag object will be created with the same message, " +"author, and timestamp. If the tag has a signature attached, the signature " +"will be stripped. It is by definition impossible to preserve signatures. The " +"reason this is \"nearly\" proper, is because ideally if the tag did not " +"change (points to the same object, has the same name, etc.) it should " +"retain any signature. That is not the case, signatures will always be " +"removed, buyer beware. There is also no support for changing the author or " +"timestamp (or the tag message for that matter). Tags which point to other " +"tags will be rewritten to point to the underlying commit." msgstr "" #. type: Labeled list -#: en/git-help.txt:135 en/config.txt:2179 +#: en/git-filter-branch.txt:175 #, no-wrap -msgid "man.<tool>.path" +msgid "--prune-empty" msgstr "" #. type: Plain text -#: en/git-help.txt:142 +#: en/git-filter-branch.txt:182 msgid "" -"You can explicitly provide a full path to your preferred man viewer by " -"setting the configuration variable `man.<tool>.path`. For example, you can " -"configure the absolute path to konqueror by setting " -"'man.konqueror.path'. Otherwise, 'git help' assumes the tool is available in " -"PATH." +"Some filters will generate empty commits that leave the tree untouched. " +"This option instructs git-filter-branch to remove such commits if they have " +"exactly one or zero non-pruned parents; merge commits will therefore remain " +"intact. This option cannot be used together with `--commit-filter`, though " +"the same effect can be achieved by using the provided " +"`git_commit_non_empty_tree` function in a commit filter." msgstr "" #. type: Labeled list -#: en/git-help.txt:144 en/config.txt:2174 +#: en/git-filter-branch.txt:183 #, no-wrap -msgid "man.<tool>.cmd" +msgid "--original <namespace>" msgstr "" #. type: Plain text -#: en/git-help.txt:152 +#: en/git-filter-branch.txt:186 msgid "" -"When the man viewer, specified by the `man.viewer` configuration variables, " -"is not among the supported ones, then the corresponding `man.<tool>.cmd` " -"configuration variable will be looked up. If this variable exists then the " -"specified tool will be treated as a custom command and a shell eval will be " -"used to run the command with the man page passed as arguments." +"Use this option to set the namespace where the original commits will be " +"stored. The default value is 'refs/original'." msgstr "" -#. type: Title - -#: en/git-help.txt:154 en/git-web--browse.txt:88 +#. type: Labeled list +#: en/git-filter-branch.txt:187 #, no-wrap -msgid "Note about konqueror" +msgid "-d <directory>" msgstr "" #. type: Plain text -#: en/git-help.txt:159 +#: en/git-filter-branch.txt:194 msgid "" -"When 'konqueror' is specified in the `man.viewer` configuration variable, we " -"launch 'kfmclient' to try to open the man page on an already opened " -"konqueror in a new tab if possible." +"Use this option to set the path to the temporary directory used for " +"rewriting. When applying a tree filter, the command needs to temporarily " +"check out the tree to some directory, which may consume considerable space " +"in case of large projects. By default it does this in the '.git-rewrite/' " +"directory but you can override that choice by this parameter." msgstr "" #. type: Plain text -#: en/git-help.txt:163 +#: en/git-filter-branch.txt:200 msgid "" -"For consistency, we also try such a trick if 'man.konqueror.path' is set to " -"something like 'A_PATH_TO/konqueror'. That means we will try to launch " -"'A_PATH_TO/kfmclient' instead." +"'git filter-branch' refuses to start with an existing temporary directory or " +"when there are already refs starting with 'refs/original/', unless forced." +msgstr "" + +#. type: Labeled list +#: en/git-filter-branch.txt:201 +#, no-wrap +msgid "--state-branch <branch>" msgstr "" #. type: Plain text -#: en/git-help.txt:166 en/git-web--browse.txt:100 +#: en/git-filter-branch.txt:206 msgid "" -"If you really want to use 'konqueror', then you can use something like the " -"following:" +"This option will cause the mapping from old to new objects to be loaded from " +"named branch upon startup and saved as a new commit to that branch upon " +"exit, enabling incremental of large trees. If '<branch>' does not exist it " +"will be created." msgstr "" -#. type: delimited block - -#: en/git-help.txt:170 +#. type: Labeled list +#: en/git-filter-branch.txt:207 #, no-wrap -msgid "" -"\t[man]\n" -"\t\tviewer = konq\n" +msgid "<rev-list options>..." msgstr "" -#. type: delimited block - -#: en/git-help.txt:173 -#, no-wrap +#. type: Plain text +#: en/git-filter-branch.txt:212 msgid "" -"\t[man \"konq\"]\n" -"\t\tcmd = A_PATH_TO/konqueror\n" +"Arguments for 'git rev-list'. All positive refs included by these options " +"are rewritten. You may also specify options such as `--all`, but you must " +"use `--` to separate them from the 'git filter-branch' options. Implies " +"<<Remap_to_ancestor>>." msgstr "" #. type: Title ~ -#: en/git-help.txt:176 +#: en/git-filter-branch.txt:216 #, no-wrap -msgid "Note about git config --global" +msgid "Remap to ancestor" msgstr "" #. type: Plain text -#: en/git-help.txt:180 +#: en/git-filter-branch.txt:223 msgid "" -"Note that all these configuration variables should probably be set using the " -"`--global` flag, for example like this:" +"By using linkgit:git-rev-list[1] arguments, e.g., path limiters, you can " +"limit the set of revisions which get rewritten. However, positive refs on " +"the command line are distinguished: we don't let them be excluded by such " +"limiters. For this purpose, they are instead rewritten to point at the " +"nearest ancestor that was not excluded." msgstr "" -#. type: delimited block - -#: en/git-help.txt:184 -#, no-wrap +#. type: Plain text +#: en/git-filter-branch.txt:231 msgid "" -"$ git config --global help.format web\n" -"$ git config --global web.browser firefox\n" +"On success, the exit status is `0`. If the filter can't find any commits to " +"rewrite, the exit status is `2`. On any other error, the exit status may be " +"any other non-zero value." msgstr "" #. type: Plain text -#: en/git-help.txt:188 en/git-web--browse.txt:121 +#: en/git-filter-branch.txt:238 msgid "" -"as they are probably more user specific than repository specific. See " -"linkgit:git-config[1] for more information about this." +"Suppose you want to remove a file (containing confidential information or " +"copyright violation) from all commits:" msgstr "" -#. type: Title = -#: en/git-http-backend.txt:2 +#. type: delimited block - +#: en/git-filter-branch.txt:241 #, no-wrap -msgid "git-http-backend(1)" +msgid "git filter-branch --tree-filter 'rm filename' HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:7 -msgid "git-http-backend - Server side implementation of Git over HTTP" +#: en/git-filter-branch.txt:246 +msgid "" +"However, if the file is absent from the tree of some commit, a simple `rm " +"filename` will fail for that tree and commit. Thus you may instead want to " +"use `rm -f filename` as the script." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:12 +#: en/git-filter-branch.txt:252 +msgid "" +"Using `--index-filter` with 'git rm' yields a significantly faster version. " +"Like with using `rm filename`, `git rm --cached filename` will fail if the " +"file is absent from the tree of a commit. If you want to \"completely forget" +"\" a file, it does not matter when it entered history, so we also add `--" +"ignore-unmatch`:" +msgstr "" + +#. type: delimited block - +#: en/git-filter-branch.txt:255 #, no-wrap -msgid "'git http-backend'\n" +msgid "git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:20 -msgid "" -"A simple CGI program to serve the contents of a Git repository to Git " -"clients accessing the repository over http:// and https:// protocols. The " -"program supports clients fetching using both the smart HTTP protocol and the " -"backwards-compatible dumb HTTP protocol, as well as clients pushing using " -"the smart HTTP protocol." +#: en/git-filter-branch.txt:258 +msgid "Now, you will get the rewritten history saved in HEAD." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:25 +#: en/git-filter-branch.txt:261 msgid "" -"It verifies that the directory has the magic file \"git-daemon-export-ok\", " -"and it will refuse to export any Git directory that hasn't explicitly been " -"marked for export this way (unless the `GIT_HTTP_EXPORT_ALL` environmental " -"variable is set)." +"To rewrite the repository to look as if `foodir/` had been its project root, " +"and discard all other history:" +msgstr "" + +#. type: delimited block - +#: en/git-filter-branch.txt:264 +#, no-wrap +msgid "git filter-branch --subdirectory-filter foodir -- --all\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:31 +#: en/git-filter-branch.txt:269 msgid "" -"By default, only the `upload-pack` service is enabled, which serves 'git " -"fetch-pack' and 'git ls-remote' clients, which are invoked from 'git fetch', " -"'git pull', and 'git clone'. If the client is authenticated, the " -"`receive-pack` service is enabled, which serves 'git send-pack' clients, " -"which is invoked from 'git push'." +"Thus you can, e.g., turn a library subdirectory into a repository of its " +"own. Note the `--` that separates 'filter-branch' options from revision " +"options, and the `--all` to rewrite all branches and tags." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:36 +#: en/git-filter-branch.txt:273 msgid "" -"These services can be enabled/disabled using the per-repository " -"configuration file:" +"To set a commit (which typically is at the tip of another history) to be the " +"parent of the current initial commit, in order to paste the other history " +"behind the current history:" msgstr "" -#. type: Labeled list -#: en/git-http-backend.txt:37 +#. type: delimited block - +#: en/git-filter-branch.txt:276 #, no-wrap -msgid "http.getanyfile" +msgid "git filter-branch --parent-filter 'sed \"s/^\\$/-p <graft-id>/\"' HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:44 +#: en/git-filter-branch.txt:282 msgid "" -"This serves Git clients older than version 1.6.6 that are unable to use the " -"upload pack service. When enabled, clients are able to read any file within " -"the repository, including objects that are no longer reachable from a branch " -"but are still present. It is enabled by default, but a repository can " -"disable it by setting this configuration item to `false`." +"(if the parent string is empty - which happens when we are dealing with the " +"initial commit - add graftcommit as a parent). Note that this assumes " +"history with a single root (that is, no merge without common ancestors " +"happened). If this is not the case, use:" msgstr "" -#. type: Labeled list -#: en/git-http-backend.txt:45 +#. type: delimited block - +#: en/git-filter-branch.txt:286 #, no-wrap -msgid "http.uploadpack" +msgid "" +"git filter-branch --parent-filter \\\n" +"\t'test $GIT_COMMIT = <commit-id> && echo \"-p <graft-id>\" || cat' HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:49 -msgid "" -"This serves 'git fetch-pack' and 'git ls-remote' clients. It is enabled by " -"default, but a repository can disable it by setting this configuration item " -"to `false`." +#: en/git-filter-branch.txt:289 +msgid "or even simpler:" msgstr "" -#. type: Labeled list -#: en/git-http-backend.txt:50 +#. type: delimited block - +#: en/git-filter-branch.txt:293 #, no-wrap -msgid "http.receivepack" +msgid "" +"git replace --graft $commit-id $graft-id\n" +"git filter-branch $graft-id..HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:56 -msgid "" -"This serves 'git send-pack' clients, allowing push. It is disabled by " -"default for anonymous users, and enabled by default for users authenticated " -"by the web server. It can be disabled by setting this item to `false`, or " -"enabled for all users, including anonymous users, by setting it to `true`." +#: en/git-filter-branch.txt:296 +msgid "To remove commits authored by \"Darl McBribe\" from the history:" msgstr "" -#. type: Title - -#: en/git-http-backend.txt:58 +#. type: delimited block - +#: en/git-filter-branch.txt:305 #, no-wrap -msgid "URL TRANSLATION" +msgid "" +"git filter-branch --commit-filter '\n" +"\tif [ \"$GIT_AUTHOR_NAME\" = \"Darl McBribe\" ];\n" +"\tthen\n" +"\t\tskip_commit \"$@\";\n" +"\telse\n" +"\t\tgit commit-tree \"$@\";\n" +"\tfi' HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:65 +#: en/git-filter-branch.txt:308 +msgid "The function 'skip_commit' is defined as follows:" +msgstr "" + +#. type: delimited block - +#: en/git-filter-branch.txt:320 +#, no-wrap msgid "" -"To determine the location of the repository on disk, 'git http-backend' " -"concatenates the environment variables PATH_INFO, which is set automatically " -"by the web server, and GIT_PROJECT_ROOT, which must be set manually in the " -"web server configuration. If GIT_PROJECT_ROOT is not set, 'git " -"http-backend' reads PATH_TRANSLATED, which is also set automatically by the " -"web server." +"skip_commit()\n" +"{\n" +"\tshift;\n" +"\twhile [ -n \"$1\" ];\n" +"\tdo\n" +"\t\tshift;\n" +"\t\tmap \"$1\";\n" +"\t\tshift;\n" +"\tdone;\n" +"}\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:70 +#: en/git-filter-branch.txt:327 msgid "" -"All of the following examples map `http://$hostname/git/foo/bar.git` to " -"`/var/www/git/foo/bar.git`." +"The shift magic first throws away the tree id and then the -p parameters. " +"Note that this handles merges properly! In case Darl committed a merge " +"between P1 and P2, it will be propagated properly and all children of the " +"merge will become merge commits with P1,P2 as their parents instead of the " +"merge commit." msgstr "" -#. type: Labeled list -#: en/git-http-backend.txt:71 +#. type: Plain text +#: en/git-filter-branch.txt:332 #, no-wrap -msgid "Apache 2.x" +msgid "" +"*NOTE* the changes introduced by the commits, and which are not reverted\n" +"by subsequent commits, will still be in the rewritten branch. If you want\n" +"to throw out _changes_ together with the commits, you should use the\n" +"interactive mode of 'git rebase'.\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:75 +#: en/git-filter-branch.txt:336 msgid "" -"Ensure mod_cgi, mod_alias, and mod_env are enabled, set GIT_PROJECT_ROOT (or " -"DocumentRoot) appropriately, and create a ScriptAlias to the CGI:" +"You can rewrite the commit log messages using `--msg-filter`. For example, " +"'git svn-id' strings in a repository created by 'git svn' can be removed " +"this way:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:80 +#: en/git-filter-branch.txt:341 #, no-wrap msgid "" -"SetEnv GIT_PROJECT_ROOT /var/www/git\n" -"SetEnv GIT_HTTP_EXPORT_ALL\n" -"ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/\n" +"git filter-branch --msg-filter '\n" +"\tsed -e \"/^git-svn-id:/d\"\n" +"'\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:86 +#: en/git-filter-branch.txt:345 msgid "" -"To enable anonymous read access but authenticated write access, require " -"authorization for both the initial ref advertisement (which we detect as a " -"push via the service parameter in the query string), and the receive-pack " -"invocation itself:" +"If you need to add 'Acked-by' lines to, say, the last 10 commits (none of " +"which is a merge), use this command:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:91 +#: en/git-filter-branch.txt:351 #, no-wrap msgid "" -"RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]\n" -"RewriteCond %{REQUEST_URI} /git-receive-pack$\n" -"RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]\n" +"git filter-branch --msg-filter '\n" +"\tcat &&\n" +"\techo \"Acked-by: Bugs Bunny <bunny@bugzilla.org>\"\n" +"' HEAD~10..HEAD\n" msgstr "" -#. type: delimited block - -#: en/git-http-backend.txt:95 -#, no-wrap +#. type: Plain text +#: en/git-filter-branch.txt:357 msgid "" -"<LocationMatch \"^/git/\">\n" -"\tOrder Deny,Allow\n" -"\tDeny from env=AUTHREQUIRED\n" +"The `--env-filter` option can be used to modify committer and/or author " +"identity. For example, if you found out that your commits have the wrong " +"identity due to a misconfigured user.email, you can make a correction, " +"before publishing the project, like this:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:102 +#: en/git-filter-branch.txt:369 #, no-wrap msgid "" -"\tAuthType Basic\n" -"\tAuthName \"Git Access\"\n" -"\tRequire group committers\n" -"\tSatisfy Any\n" -"\t...\n" -"</LocationMatch>\n" +"git filter-branch --env-filter '\n" +"\tif test \"$GIT_AUTHOR_EMAIL\" = \"root@localhost\"\n" +"\tthen\n" +"\t\tGIT_AUTHOR_EMAIL=john@example.com\n" +"\tfi\n" +"\tif test \"$GIT_COMMITTER_EMAIL\" = \"root@localhost\"\n" +"\tthen\n" +"\t\tGIT_COMMITTER_EMAIL=john@example.com\n" +"\tfi\n" +"' -- --all\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:107 +#: en/git-filter-branch.txt:375 msgid "" -"If you do not have `mod_rewrite` available to match against the query " -"string, it is sufficient to just protect `git-receive-pack` itself, like:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:115 -#, no-wrap -msgid "" -"<LocationMatch \"^/git/.*/git-receive-pack$\">\n" -"\tAuthType Basic\n" -"\tAuthName \"Git Access\"\n" -"\tRequire group committers\n" -"\t...\n" -"</LocationMatch>\n" -msgstr "" - -#. type: Plain text -#: en/git-http-backend.txt:125 -msgid "" -"In this mode, the server will not request authentication until the client " -"actually starts the object negotiation phase of the push, rather than during " -"the initial contact. For this reason, you must also enable the " -"`http.receivepack` config option in any repositories that should accept a " -"push. The default behavior, if `http.receivepack` is not set, is to reject " -"any pushes by unauthenticated users; the initial request will therefore " -"report `403 Forbidden` to the client, without even giving an opportunity for " -"authentication." -msgstr "" - -#. type: Plain text -#: en/git-http-backend.txt:128 -msgid "" -"To require authentication for both reads and writes, use a Location " -"directive around the repository, or one of its parent directories:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:136 -#, no-wrap -msgid "" -"<Location /git/private>\n" -"\tAuthType Basic\n" -"\tAuthName \"Private Git Access\"\n" -"\tRequire group committers\n" -"\t...\n" -"</Location>\n" +"To restrict rewriting to only part of the history, specify a revision range " +"in addition to the new branch name. The new branch name will point to the " +"top-most revision that a 'git rev-list' of this range will print." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:141 -msgid "" -"To serve gitweb at the same url, use a ScriptAliasMatch to only those URLs " -"that 'git http-backend' can handle, and forward the rest to gitweb:" +#: en/git-filter-branch.txt:377 +msgid "Consider this history:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:151 +#: en/git-filter-branch.txt:382 #, no-wrap msgid "" -"ScriptAliasMatch \\\n" -"\t\"(?x)^/git/(.*/(HEAD | \\\n" -"\t\t\tinfo/refs | \\\n" -"\t\t\tobjects/(info/[^/]+ | \\\n" -"\t\t\t\t [0-9a-f]{2}/[0-9a-f]{38} | \\\n" -"\t\t\t\t pack/pack-[0-9a-f]{40}\\.(pack|idx)) | \\\n" -"\t\t\tgit-(upload|receive)-pack))$\" \\\n" -"\t/usr/libexec/git-core/git-http-backend/$1\n" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:153 -#, no-wrap -msgid "ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/\n" +" D--E--F--G--H\n" +" / /\n" +"A--B-----C\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:157 -msgid "" -"To serve multiple repositories from different linkgit:gitnamespaces[7] in a " -"single repository:" +#: en/git-filter-branch.txt:385 +msgid "To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:161 -#, no-wrap -msgid "" -"SetEnvIf Request_URI \"^/git/([^/]*)\" GIT_NAMESPACE=$1\n" -"ScriptAliasMatch ^/git/[^/]*(.*) " -"/usr/libexec/git-core/git-http-backend/storage.git$1\n" -msgstr "" - -#. type: Labeled list -#: en/git-http-backend.txt:163 +#: en/git-filter-branch.txt:388 #, no-wrap -msgid "Accelerated static Apache 2.x" +msgid "git filter-branch ... C..H\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:168 -msgid "" -"Similar to the above, but Apache can be used to return static files that are " -"stored on disk.\tOn many systems this may be more efficient as Apache can " -"ask the kernel to copy the file contents from the file system directly to " -"the network:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:171 en/git-http-backend.txt:181 -#, no-wrap -msgid "SetEnv GIT_PROJECT_ROOT /var/www/git\n" +#: en/git-filter-branch.txt:391 +msgid "To rewrite commits E,F,G,H, use one of these:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:175 +#: en/git-filter-branch.txt:395 #, no-wrap msgid "" -"AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ " -"/var/www/git/$1\n" -"AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ " -"/var/www/git/$1\n" -"ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/\n" +"git filter-branch ... C..H --not D\n" +"git filter-branch ... D..H --not C\n" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:178 -msgid "This can be combined with the gitweb configuration:" +#: en/git-filter-branch.txt:398 +msgid "To move the whole tree into a subdirectory, or remove it from there:" msgstr "" #. type: delimited block - -#: en/git-http-backend.txt:191 +#: en/git-filter-branch.txt:405 #, no-wrap msgid "" -"AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ " -"/var/www/git/$1\n" -"AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ " -"/var/www/git/$1\n" -"ScriptAliasMatch \\\n" -"\t\"(?x)^/git/(.*/(HEAD | \\\n" -"\t\t\tinfo/refs | \\\n" -"\t\t\tobjects/info/[^/]+ | \\\n" -"\t\t\tgit-(upload|receive)-pack))$\" \\\n" -"\t/usr/libexec/git-core/git-http-backend/$1\n" -"ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/\n" +"git filter-branch --index-filter \\\n" +"\t'git ls-files -s | sed \"s-\\t\\\"*-&newsubdir/-\" |\n" +"\t\tGIT_INDEX_FILE=$GIT_INDEX_FILE.new \\\n" +"\t\t\tgit update-index --index-info &&\n" +"\t mv \"$GIT_INDEX_FILE.new\" \"$GIT_INDEX_FILE\"' HEAD\n" msgstr "" -#. type: Labeled list -#: en/git-http-backend.txt:193 +#. type: Title - +#: en/git-filter-branch.txt:410 #, no-wrap -msgid "Lighttpd" +msgid "CHECKLIST FOR SHRINKING A REPOSITORY" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:197 -msgid "" -"Ensure that `mod_cgi`, `mod_alias`, `mod_auth`, `mod_setenv` are loaded, " -"then set `GIT_PROJECT_ROOT` appropriately and redirect all requests to the " -"CGI:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:207 -#, no-wrap +#: en/git-filter-branch.txt:418 msgid "" -"alias.url += ( \"/git\" => \"/usr/lib/git-core/git-http-backend\" )\n" -"$HTTP[\"url\"] =~ \"^/git\" {\n" -"\tcgi.assign = (\"\" => \"\")\n" -"\tsetenv.add-environment = (\n" -"\t\t\"GIT_PROJECT_ROOT\" => \"/var/www/git\",\n" -"\t\t\"GIT_HTTP_EXPORT_ALL\" => \"\"\n" -"\t)\n" -"}\n" +"git-filter-branch can be used to get rid of a subset of files, usually with " +"some combination of `--index-filter` and `--subdirectory-filter`. People " +"expect the resulting repository to be smaller than the original, but you " +"need a few more steps to actually make it smaller, because Git tries hard " +"not to lose your objects until you tell it to. First make sure that:" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:210 -msgid "To enable anonymous read access but authenticated write access:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:218 -#, no-wrap +#: en/git-filter-branch.txt:422 msgid "" -"$HTTP[\"querystring\"] =~ \"service=git-receive-pack\" {\n" -"\tinclude \"git-auth.conf\"\n" -"}\n" -"$HTTP[\"url\"] =~ \"^/git/.*/git-receive-pack$\" {\n" -"\tinclude \"git-auth.conf\"\n" -"}\n" +"You really removed all variants of a filename, if a blob was moved over its " +"lifetime. `git log --name-only --follow --all -- filename` can help you " +"find renames." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:221 -msgid "where `git-auth.conf` looks something like:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:231 -#, no-wrap +#: en/git-filter-branch.txt:425 msgid "" -"auth.require = (\n" -"\t\"/\" => (\n" -"\t\t\"method\" => \"basic\",\n" -"\t\t\"realm\" => \"Git Access\",\n" -"\t\t\"require\" => \"valid-user\"\n" -"\t )\n" -")\n" -"# ...and set up auth.backend here\n" +"You really filtered all refs: use `--tag-name-filter cat -- --all` when " +"calling git-filter-branch." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:234 -msgid "To require authentication for both reads and writes:" -msgstr "" - -#. type: delimited block - -#: en/git-http-backend.txt:239 -#, no-wrap +#: en/git-filter-branch.txt:428 msgid "" -"$HTTP[\"url\"] =~ \"^/git/private\" {\n" -"\tinclude \"git-auth.conf\"\n" -"}\n" +"Then there are two ways to get a smaller repository. A safer way is to " +"clone, that keeps your original intact." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:246 +#: en/git-filter-branch.txt:432 msgid "" -"'git http-backend' relies upon the `CGI` environment variables set by the " -"invoking web server, including:" -msgstr "" - -#. type: Plain text -#: en/git-http-backend.txt:248 -msgid "PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)" -msgstr "" - -#. type: Plain text -#: en/git-http-backend.txt:249 -msgid "REMOTE_USER" +"Clone it with `git clone file:///path/to/repo`. The clone will not have the " +"removed objects. See linkgit:git-clone[1]. (Note that cloning with a plain " +"path just hardlinks everything!)" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:250 -msgid "REMOTE_ADDR" +#: en/git-filter-branch.txt:437 +msgid "" +"If you really don't want to clone it, for whatever reasons, check the " +"following points instead (in this order). This is a very destructive " +"approach, so *make a backup* or go back to cloning it. You have been warned." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:251 -msgid "CONTENT_TYPE" +#: en/git-filter-branch.txt:441 +msgid "" +"Remove the original refs backed up by git-filter-branch: say `git for-each-" +"ref --format=\"%(refname)\" refs/original/ | xargs -n 1 git update-ref -d`." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:252 -msgid "QUERY_STRING" +#: en/git-filter-branch.txt:443 +msgid "Expire all reflogs with `git reflog expire --expire=now --all`." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:253 -msgid "REQUEST_METHOD" +#: en/git-filter-branch.txt:447 +msgid "" +"Garbage collect all unreferenced objects with `git gc --prune=now` (or if " +"your git-gc is not new enough to support arguments to `--prune`, use `git " +"repack -ad; git prune` instead)." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:257 +#: en/git-filter-branch.txt:459 msgid "" -"The `GIT_HTTP_EXPORT_ALL` environmental variable may be passed to " -"'git-http-backend' to bypass the check for the \"git-daemon-export-ok\" file " -"in each repository before allowing export of that repository." +"git-filter-branch allows you to make complex shell-scripted rewrites of your " +"Git history, but you probably don't need this flexibility if you're simply " +"_removing unwanted data_ like large files or passwords. For those " +"operations you may want to consider http://rtyley.github.io/bfg-repo-cleaner/" +"[The BFG Repo-Cleaner], a JVM-based alternative to git-filter-branch, " +"typically at least 10-50x faster for those use-cases, and with quite " +"different characteristics:" msgstr "" #. type: Plain text -#: en/git-http-backend.txt:266 +#: en/git-filter-branch.txt:467 msgid "" -"The `GIT_HTTP_MAX_REQUEST_BUFFER` environment variable (or the " -"`http.maxRequestBuffer` config variable) may be set to change the largest " -"ref negotiation request that git will handle during a fetch; any fetch " -"requiring a larger buffer will not succeed. This value should not normally " -"need to be changed, but may be helpful if you are fetching from a repository " -"with an extremely large number of refs. The value can be specified with a " -"unit (e.g., `100M` for 100 megabytes). The default is 10 megabytes." +"Any particular version of a file is cleaned exactly _once_. The BFG, unlike " +"git-filter-branch, does not give you the opportunity to handle a file " +"differently based on where or when it was committed within your history. " +"This constraint gives the core performance benefit of The BFG, and is well-" +"suited to the task of cleansing bad data - you don't care _where_ the bad " +"data is, you just want it _gone_." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:271 +#: en/git-filter-branch.txt:473 msgid "" -"The backend process sets GIT_COMMITTER_NAME to '$REMOTE_USER' and " -"GIT_COMMITTER_EMAIL to '$\\{REMOTE_USER}@http.$\\{REMOTE_ADDR\\}', ensuring " -"that any reflogs created by 'git-receive-pack' contain some identifying " -"information of the remote user who performed the push." +"By default The BFG takes full advantage of multi-core machines, cleansing " +"commit file-trees in parallel. git-filter-branch cleans commits sequentially " +"(i.e. in a single-threaded manner), though it _is_ possible to write filters " +"that include their own parallelism, in the scripts executed against each " +"commit." msgstr "" #. type: Plain text -#: en/git-http-backend.txt:274 +#: en/git-filter-branch.txt:478 msgid "" -"All `CGI` environment variables are available to each of the hooks invoked " -"by the 'git-receive-pack'." +"The http://rtyley.github.io/bfg-repo-cleaner/#examples[command options] are " +"much more restrictive than git-filter branch, and dedicated just to the " +"tasks of removing unwanted data- e.g: `--strip-blobs-bigger-than 1M`." msgstr "" #. type: Title = -#: en/git-http-fetch.txt:2 +#: en/git-fmt-merge-msg.txt:2 #, no-wrap -msgid "git-http-fetch(1)" +msgid "git-fmt-merge-msg(1)" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:7 -msgid "git-http-fetch - Download from a remote Git repository via HTTP" +#: en/git-fmt-merge-msg.txt:7 +msgid "git-fmt-merge-msg - Produce a merge commit message" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:13 +#: en/git-fmt-merge-msg.txt:14 #, no-wrap msgid "" -"'git http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] " -"[--stdin] <commit> <url>\n" +"'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log]\n" +"'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] -F <file>\n" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:17 -msgid "Downloads a remote Git repository via HTTP." +#: en/git-fmt-merge-msg.txt:20 +msgid "" +"Takes the list of merged objects on stdin and produces a suitable commit " +"message to be used for the merge commit, usually to be passed as the '<merge-" +"message>' argument of 'git merge'." msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:20 -#, no-wrap +#: en/git-fmt-merge-msg.txt:23 msgid "" -"*NOTE*: use of this command without -a is deprecated. The -a\n" -"behaviour will become the default in a future release.\n" +"This command is intended mostly for internal use by scripts automatically " +"invoking 'git merge'." msgstr "" #. type: Labeled list -#: en/git-http-fetch.txt:23 +#: en/git-fmt-merge-msg.txt:27 en/merge-options.txt:52 #, no-wrap -msgid "commit-id" +msgid "--log[=<n>]" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:26 -msgid "Either the hash or the filename under [URL]/refs/ to pull." +#: en/git-fmt-merge-msg.txt:33 +msgid "" +"In addition to branch names, populate the log message with one-line " +"descriptions from the actual commits that are being merged. At most <n> " +"commits from each merge parent will be used (20 if <n> is omitted). This " +"overrides the `merge.log` configuration variable." msgstr "" -#. type: Plain text -#: en/git-http-fetch.txt:29 -msgid "Get the commit objects." +#. type: Labeled list +#: en/git-fmt-merge-msg.txt:34 en/merge-options.txt:53 +#, no-wrap +msgid "--no-log" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:31 -msgid "Get trees associated with the commit objects." +#: en/git-fmt-merge-msg.txt:37 +msgid "Do not list one-line descriptions from the actual commits being merged." msgstr "" -#. type: Plain text -#: en/git-http-fetch.txt:33 -msgid "Get all the objects." +#. type: Labeled list +#: en/git-fmt-merge-msg.txt:38 +#, no-wrap +msgid "--[no-]summary" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:35 -msgid "Report what is downloaded." +#: en/git-fmt-merge-msg.txt:41 +msgid "" +"Synonyms to --log and --no-log; these are deprecated and will be removed in " +"the future." msgstr "" #. type: Labeled list -#: en/git-http-fetch.txt:36 +#: en/git-fmt-merge-msg.txt:43 #, no-wrap -msgid "-w <filename>" +msgid "--message <message>" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:39 +#: en/git-fmt-merge-msg.txt:46 msgid "" -"Writes the commit-id into the filename under $GIT_DIR/refs/<filename> on the " -"local end after the transfer is complete." +"Use <message> instead of the branch names for the first line of the log " +"message. For use with `--log`." msgstr "" -#. type: Plain text -#: en/git-http-fetch.txt:43 -msgid "" -"Instead of a commit id on the command line (which is not expected in this " -"case), 'git http-fetch' expects lines on stdin in the format" +#. type: Labeled list +#: en/git-fmt-merge-msg.txt:48 +#, no-wrap +msgid "--file <file>" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:45 -#, no-wrap -msgid "<commit-id>['\\t'<filename-as-in--w>]\n" +#: en/git-fmt-merge-msg.txt:51 +msgid "Take the list of merged objects from <file> instead of stdin." msgstr "" #. type: Labeled list -#: en/git-http-fetch.txt:46 +#: en/git-fmt-merge-msg.txt:56 #, no-wrap -msgid "--recover" +msgid "merge.summary" msgstr "" #. type: Plain text -#: en/git-http-fetch.txt:49 +#: en/git-fmt-merge-msg.txt:59 msgid "" -"Verify that everything reachable from target is fetched. Used after an " -"earlier fetch is interrupted." +"Synonym to `merge.log`; this is deprecated and will be removed in the future." msgstr "" -#. type: Title = -#: en/git-http-push.txt:2 +#. type: delimited block - +#: en/git-fmt-merge-msg.txt:66 #, no-wrap -msgid "git-http-push(1)" +msgid "" +"$ git fetch origin master\n" +"$ git fmt-merge-msg --log <$GIT_DIR/FETCH_HEAD\n" msgstr "" #. type: Plain text -#: en/git-http-push.txt:7 -msgid "git-http-push - Push objects over HTTP/DAV to another repository" +#: en/git-fmt-merge-msg.txt:70 +msgid "" +"Print a log message describing a merge of the \"master\" branch from the " +"\"origin\" remote." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:13 +#. type: Title = +#: en/git-for-each-ref.txt:2 #, no-wrap -msgid "" -"'git http-push' [--all] [--dry-run] [--force] [--verbose] <url> <ref> " -"[<ref>...]\n" +msgid "git-for-each-ref(1)" msgstr "" #. type: Plain text -#: en/git-http-push.txt:18 -msgid "Sends missing objects to remote repository, and updates the remote branch." +#: en/git-for-each-ref.txt:7 +msgid "git-for-each-ref - Output information on each ref" msgstr "" #. type: Plain text -#: en/git-http-push.txt:22 +#: en/git-for-each-ref.txt:16 #, no-wrap msgid "" -"*NOTE*: This command is temporarily disabled if your libcurl\n" -"is older than 7.16, as the combination has been reported\n" -"not to work and sometimes corrupts repository.\n" +"'git for-each-ref' [--count=<count>] [--shell|--perl|--python|--tcl]\n" +"\t\t [(--sort=<key>)...] [--format=<format>] [<pattern>...]\n" +"\t\t [--points-at=<object>]\n" +"\t\t (--merged[=<object>] | --no-merged[=<object>])\n" +"\t\t [--contains[=<object>]] [--no-contains[=<object>]]\n" msgstr "" #. type: Plain text -#: en/git-http-push.txt:29 +#: en/git-for-each-ref.txt:26 msgid "" -"Do not assume that the remote repository is complete in its current state, " -"and verify all objects in the entire local ref's history exist in the remote " -"repository." +"Iterate over all refs that match `<pattern>` and show them according to the " +"given `<format>`, after sorting them according to the given set of `<key>`. " +"If `<count>` is given, stop after showing that many refs. The interpolated " +"values in `<format>` can optionally be quoted as string literals in the " +"specified host language allowing their direct evaluation in that language." +msgstr "" + +#. type: Labeled list +#: en/git-for-each-ref.txt:29 en/git-show-ref.txt:88 +#, no-wrap +msgid "<pattern>..." msgstr "" #. type: Plain text -#: en/git-http-push.txt:36 en/git-send-pack.txt:60 +#: en/git-for-each-ref.txt:34 msgid "" -"Usually, the command refuses to update a remote ref that is not an ancestor " -"of the local ref used to overwrite it. This flag disables the check. What " -"this means is that the remote repository can lose commits; use it with care." +"If one or more patterns are given, only refs are shown that match against at " +"least one pattern, either using fnmatch(3) or literally, in the latter case " +"matching completely or from the beginning up to a slash." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:39 en/git-push.txt:120 en/git-send-pack.txt:53 -msgid "Do everything except actually send the updates." +#. type: Labeled list +#: en/git-for-each-ref.txt:35 +#, no-wrap +msgid "--count=<count>" msgstr "" #. type: Plain text -#: en/git-http-push.txt:43 +#: en/git-for-each-ref.txt:39 msgid "" -"Report the list of objects being walked locally and the list of objects " -"successfully sent to the remote repository." +"By default the command shows all refs that match `<pattern>`. This option " +"makes it stop after showing that many refs." msgstr "" #. type: Plain text -#: en/git-http-push.txt:49 +#: en/git-for-each-ref.txt:46 msgid "" -"Remove <ref> from remote repository. The specified branch cannot be the " -"remote HEAD. If -d is specified the following other conditions must also be " -"met:" +"A field name to sort on. Prefix `-` to sort in descending order of the " +"value. When unspecified, `refname` is used. You may use the --sort=<key> " +"option multiple times, in which case the last key becomes the primary key." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:51 -msgid "Remote HEAD must resolve to an object that exists locally" +#. type: Labeled list +#: en/git-for-each-ref.txt:47 en/git-replace.txt:106 en/git-tag.txt:190 +#: en/pretty-options.txt:2 +#, no-wrap +msgid "--format=<format>" msgstr "" #. type: Plain text -#: en/git-http-push.txt:52 -msgid "Specified branch resolves to an object that exists locally" +#: en/git-for-each-ref.txt:59 +msgid "" +"A string that interpolates `%(fieldname)` from a ref being shown and the " +"object it points at. If `fieldname` is prefixed with an asterisk (`*`) and " +"the ref points at a tag object, use the value for the field in the object " +"which the tag object refers to (instead of the field in the tag object). " +"When unspecified, `<format>` defaults to `%(objectname) SPC %(objecttype) " +"TAB %(refname)`. It also interpolates `%%` to `%`, and `%xx` where `xx` are " +"hex digits interpolates to character with hex code `xx`; for example `%00` " +"interpolates to `\\0` (NUL), `%09` to `\\t` (TAB) and `%0a` to `\\n` (LF)." msgstr "" #. type: Plain text -#: en/git-http-push.txt:53 -msgid "Specified branch is an ancestor of the remote HEAD" +#: en/git-for-each-ref.txt:64 en/git-tag.txt:122 +msgid "" +"Respect any colors specified in the `--format` option. The `<when>` field " +"must be one of `always`, `never`, or `auto` (if `<when>` is absent, behave " +"as if `always` was given)." msgstr "" #. type: Labeled list -#: en/git-http-push.txt:54 en/git-send-pack.txt:92 +#: en/git-for-each-ref.txt:65 #, no-wrap -msgid "<ref>..." +msgid "--shell" msgstr "" -#. type: Plain text -#: en/git-http-push.txt:56 en/git-send-pack.txt:94 -msgid "The remote refs to update." +#. type: Labeled list +#: en/git-for-each-ref.txt:66 +#, no-wrap +msgid "--perl" msgstr "" -#. type: Title - -#: en/git-http-push.txt:59 en/git-send-pack.txt:97 +#. type: Labeled list +#: en/git-for-each-ref.txt:67 #, no-wrap -msgid "Specifying the Refs" +msgid "--python" msgstr "" -#. type: Plain text -#: en/git-http-push.txt:65 -msgid "" -"A '<ref>' specification can be either a single pattern, or a pair of such " -"patterns separated by a colon \":\" (this means that a ref name cannot have " -"a colon in it). A single pattern '<name>' is just a shorthand for " -"'<name>:<name>'." +#. type: Labeled list +#: en/git-for-each-ref.txt:68 +#, no-wrap +msgid "--tcl" msgstr "" #. type: Plain text -#: en/git-http-push.txt:71 +#: en/git-for-each-ref.txt:73 msgid "" -"Each pattern pair consists of the source side (before the colon) and the " -"destination side (after the colon). The ref to be pushed is determined by " -"finding a match that matches the source side, and where it is pushed is " -"determined by using the destination side." +"If given, strings that substitute `%(fieldname)` placeholders are quoted as " +"string literals suitable for the specified host language. This is meant to " +"produce a scriptlet that can directly be `eval`ed." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:74 en/git-send-pack.txt:125 -msgid "It is an error if <src> does not match exactly one of the local refs." +#. type: Labeled list +#: en/git-for-each-ref.txt:74 +#, no-wrap +msgid "--points-at=<object>" msgstr "" #. type: Plain text -#: en/git-http-push.txt:76 en/git-send-pack.txt:129 -msgid "If <dst> does not match any remote ref, either" +#: en/git-for-each-ref.txt:76 +msgid "Only list refs which points at the given object." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:79 en/git-send-pack.txt:132 -msgid "" -"it has to start with \"refs/\"; <dst> is used as the destination literally " -"in this case." +#. type: Labeled list +#: en/git-for-each-ref.txt:77 +#, no-wrap +msgid "--merged[=<object>]" msgstr "" #. type: Plain text -#: en/git-http-push.txt:83 en/git-send-pack.txt:136 +#: en/git-for-each-ref.txt:81 msgid "" -"<src> == <dst> and the ref that matched the <src> must not exist in the set " -"of remote refs; the ref matched <src> locally is used as the name of the " -"destination." +"Only list refs whose tips are reachable from the specified commit (HEAD if " +"not specified), incompatible with `--no-merged`." +msgstr "" + +#. type: Labeled list +#: en/git-for-each-ref.txt:82 +#, no-wrap +msgid "--no-merged[=<object>]" msgstr "" #. type: Plain text -#: en/git-http-push.txt:89 en/git-send-pack.txt:142 +#: en/git-for-each-ref.txt:86 msgid "" -"Without `--force`, the <src> ref is stored at the remote only if <dst> does " -"not exist, or <dst> is a proper subset (i.e. an ancestor) of <src>. This " -"check, known as \"fast-forward check\", is performed in order to avoid " -"accidentally overwriting the remote ref and lose other peoples' commits from " -"there." +"Only list refs whose tips are not reachable from the specified commit (HEAD " +"if not specified), incompatible with `--merged`." msgstr "" -#. type: Plain text -#: en/git-http-push.txt:91 en/git-send-pack.txt:144 -msgid "With `--force`, the fast-forward check is disabled for all refs." +#. type: Labeled list +#: en/git-for-each-ref.txt:87 +#, no-wrap +msgid "--contains[=<object>]" msgstr "" #. type: Plain text -#: en/git-http-push.txt:94 en/git-send-pack.txt:147 +#: en/git-for-each-ref.txt:90 msgid "" -"Optionally, a <ref> parameter can be prefixed with a plus '+' sign to " -"disable the fast-forward check only on that ref." +"Only list refs which contain the specified commit (HEAD if not specified)." msgstr "" -#. type: Title = -#: en/git-imap-send.txt:2 +#. type: Labeled list +#: en/git-for-each-ref.txt:91 #, no-wrap -msgid "git-imap-send(1)" +msgid "--no-contains[=<object>]" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:7 -msgid "git-imap-send - Send a collection of patches from stdin to an IMAP folder" +#: en/git-for-each-ref.txt:94 +msgid "" +"Only list refs which don't contain the specified commit (HEAD if not " +"specified)." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:13 +#: en/git-for-each-ref.txt:97 +msgid "Sorting and filtering refs are case insensitive." +msgstr "" + +#. type: Title - +#: en/git-for-each-ref.txt:99 #, no-wrap -msgid "'git imap-send' [-v] [-q] [--[no-]curl]\n" +msgid "FIELD NAMES" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:23 +#: en/git-for-each-ref.txt:104 msgid "" -"This command uploads a mailbox generated with 'git format-patch' into an " -"IMAP drafts folder. This allows patches to be sent as other email is when " -"using mail clients that cannot read mailbox files directly. The command also " -"works with any general mailbox in which emails have the fields \"From\", " -"\"Date\", and \"Subject\" in that order." +"Various values from structured fields in referenced objects can be used to " +"interpolate into the resulting output, or as sort keys." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:25 -msgid "Typical usage is something like:" +#: en/git-for-each-ref.txt:106 +msgid "For all objects, the following names can be used:" +msgstr "" + +#. type: Labeled list +#: en/git-for-each-ref.txt:107 +#, no-wrap +msgid "refname" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:27 -msgid "git format-patch --signoff --stdout --attach origin | git imap-send" +#: en/git-for-each-ref.txt:123 +msgid "" +"The name of the ref (the part after $GIT_DIR/). For a non-ambiguous short " +"name of the ref append `:short`. The option core.warnAmbiguousRefs is used " +"to select the strict abbreviation mode. If `lstrip=<N>` (`rstrip=<N>`) is " +"appended, strips `<N>` slash-separated path components from the front (back) " +"of the refname (e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` " +"and `%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`). If `<N>` is a " +"negative number, strip as many path components as necessary from the " +"specified end to leave `-<N>` path components (e.g. `%(refname:lstrip=-2)` " +"turns `refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)` turns `refs/" +"tags/foo` into `refs`). When the ref does not have enough components, the " +"result becomes an empty string if stripping with positive <N>, or it becomes " +"the full refname if stripping with negative <N>. Neither is an error." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:39 -msgid "Be quiet." +#: en/git-for-each-ref.txt:125 +msgid "`strip` can be used as a synonym to `lstrip`." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:40 +#: en/git-for-each-ref.txt:126 #, no-wrap -msgid "--curl" +msgid "objecttype" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:44 -msgid "" -"Use libcurl to communicate with the IMAP server, unless tunneling into it. " -"Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND option set." +#: en/git-for-each-ref.txt:128 +msgid "The type of the object (`blob`, `tree`, `commit`, `tag`)." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:45 +#: en/git-for-each-ref.txt:129 #, no-wrap -msgid "--no-curl" -msgstr "" - -#. type: Plain text -#: en/git-imap-send.txt:49 -msgid "" -"Talk to the IMAP server using git's own IMAP routines instead of using " -"libcurl. Ignored if Git was built with the NO_OPENSSL option set." +msgid "objectsize" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:56 +#: en/git-for-each-ref.txt:133 msgid "" -"To use the tool, imap.folder and either imap.tunnel or imap.host must be set " -"to appropriate values." -msgstr "" - -#. type: Title ~ -#: en/git-imap-send.txt:58 en/config.txt:256 -#, no-wrap -msgid "Variables" +"The size of the object (the same as 'git cat-file -s' reports). Append `:" +"disk` to get the size, in bytes, that the object takes up on disk. See the " +"note about on-disk sizes in the `CAVEATS` section below." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:60 +#: en/git-for-each-ref.txt:133 #, no-wrap -msgid "imap.folder" +msgid "objectname" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:64 +#: en/git-for-each-ref.txt:139 msgid "" -"The folder to drop the mails into, which is typically the Drafts folder. For " -"example: \"INBOX.Drafts\", \"INBOX/Drafts\" or \"[Gmail]/Drafts\". Required." +"The object name (aka SHA-1). For a non-ambiguous abbreviation of the object " +"name append `:short`. For an abbreviation of the object name with desired " +"length append `:short=<length>`, where the minimum length is MINIMUM_ABBREV. " +"The length may be exceeded to ensure unique object names." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:65 +#: en/git-for-each-ref.txt:139 #, no-wrap -msgid "imap.tunnel" +msgid "deltabase" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:69 +#: en/git-for-each-ref.txt:143 msgid "" -"Command used to setup a tunnel to the IMAP server through which commands " -"will be piped instead of using a direct network connection to the " -"server. Required when imap.host is not set." +"This expands to the object name of the delta base for the given object, if " +"it is stored as a delta. Otherwise it expands to the null object name (all " +"zeroes)." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:70 +#: en/git-for-each-ref.txt:144 #, no-wrap -msgid "imap.host" +msgid "upstream" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:74 +#: en/git-for-each-ref.txt:154 msgid "" -"A URL identifying the server. Use a `imap://` prefix for non-secure " -"connections and a `imaps://` prefix for secure connections. Ignored when " -"imap.tunnel is set, but required otherwise." +"The name of a local ref which can be considered ``upstream'' from the " +"displayed ref. Respects `:short`, `:lstrip` and `:rstrip` in the same way as " +"`refname` above. Additionally respects `:track` to show \"[ahead N, behind " +"M]\" and `:trackshort` to show the terse version: \">\" (ahead), \"<" +"\" (behind), \"<>\" (ahead and behind), or \"=\" (in sync). `:track` also " +"prints \"[gone]\" whenever unknown upstream ref is encountered. Append `:" +"track,nobracket` to show tracking information without brackets (i.e \"ahead " +"N, behind M\")." msgstr "" -#. type: Labeled list -#: en/git-imap-send.txt:75 -#, no-wrap -msgid "imap.user" +#. type: Plain text +#: en/git-for-each-ref.txt:161 +msgid "" +"For any remote-tracking branch `%(upstream)`, `%(upstream:remotename)` and `" +"%(upstream:remoteref)` refer to the name of the remote and the name of the " +"tracked remote ref, respectively. In other words, the remote-tracking branch " +"can be updated explicitly and individually by using the refspec `%(upstream:" +"remoteref):%(upstream)` to fetch from `%(upstream:remotename)`." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:77 -msgid "The username to use when logging in to the server." +#: en/git-for-each-ref.txt:165 +msgid "" +"Has no effect if the ref does not have tracking information associated with " +"it. All the options apart from `nobracket` are mutually exclusive, but if " +"used together the last option is selected." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:78 +#: en/git-for-each-ref.txt:166 #, no-wrap -msgid "imap.pass" +msgid "push" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:80 -msgid "The password to use when logging in to the server." +#: en/git-for-each-ref.txt:172 +msgid "" +"The name of a local ref which represents the `@{push}` location for the " +"displayed ref. Respects `:short`, `:lstrip`, `:rstrip`, `:track`, `:" +"trackshort`, `:remotename`, and `:remoteref` options as `upstream` does. " +"Produces an empty string if no `@{push}` ref is configured." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:81 +#: en/git-for-each-ref.txt:173 en/git.txt:340 #, no-wrap -msgid "imap.port" +msgid "HEAD" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:85 +#: en/git-for-each-ref.txt:176 msgid "" -"An integer port number to connect to on the server. Defaults to 143 for " -"imap:// hosts and 993 for imaps:// hosts. Ignored when imap.tunnel is set." -msgstr "" - -#. type: Labeled list -#: en/git-imap-send.txt:86 -#, no-wrap -msgid "imap.sslverify" +"'*' if HEAD matches current ref (the checked out branch), ' ' otherwise." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:90 +#: en/git-for-each-ref.txt:182 msgid "" -"A boolean to enable/disable verification of the server certificate used by " -"the SSL/TLS connection. Default is `true`. Ignored when imap.tunnel is set." +"Change output color. Followed by `:<colorname>`, where color names are " +"described under Values in the \"CONFIGURATION FILE\" section of linkgit:git-" +"config[1]. For example, `%(color:bold red)`." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:91 +#: en/git-for-each-ref.txt:183 #, no-wrap -msgid "imap.preformattedHTML" +msgid "align" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:97 +#: en/git-for-each-ref.txt:197 msgid "" -"A boolean to enable/disable the use of html encoding when sending a patch. " -"An html encoded patch will be bracketed with <pre> and have a content type " -"of text/html. Ironically, enabling this option causes Thunderbird to send " -"the patch as a plain/text, format=fixed email. Default is `false`." +"Left-, middle-, or right-align the content between %(align:...) and %(end). " +"The \"align:\" is followed by `width=<width>` and `position=<position>` in " +"any order separated by a comma, where the `<position>` is either left, right " +"or middle, default being left and `<width>` is the total length of the " +"content with alignment. For brevity, the \"width=\" and/or \"position=\" " +"prefixes may be omitted, and bare <width> and <position> used instead. For " +"instance, `%(align:<width>,<position>)`. If the contents length is more than " +"the width then no alignment is performed. If used with `--quote` everything " +"in between %(align:...) and %(end) is quoted, but if nested then only the " +"topmost level performs quoting." msgstr "" #. type: Labeled list -#: en/git-imap-send.txt:98 +#: en/git-for-each-ref.txt:198 #, no-wrap -msgid "imap.authMethod" +msgid "if" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:104 +#: en/git-for-each-ref.txt:210 msgid "" -"Specify authenticate method for authentication with IMAP server. If Git was " -"built with the NO_CURL option, or if your curl version is older than 7.34.0, " -"or if you're running git-imap-send with the `--no-curl` option, the only " -"supported method is 'CRAM-MD5'. If this is not set then 'git imap-send' uses " -"the basic IMAP plaintext LOGIN command." -msgstr "" - -#. type: Plain text -#: en/git-imap-send.txt:109 -msgid "Using tunnel mode:" +"Used as %(if)...%(then)...%(end) or %(if)...%(then)...%(else)...%(end). If " +"there is an atom with value or string literal after the %(if) then " +"everything after the %(then) is printed, else if the %(else) atom is used, " +"then everything after %(else) is printed. We ignore space when evaluating " +"the string before %(then), this is useful when we use the %(HEAD) atom which " +"prints either \"*\" or \" \" and we want to apply the 'if' condition only on " +"the 'HEAD' ref. Append \":equals=<string>\" or \":notequals=<string>\" to " +"compare the value between the %(if:...) and %(then) atoms with the given " +"string." msgstr "" -#. type: delimited block . -#: en/git-imap-send.txt:114 +#. type: Labeled list +#: en/git-for-each-ref.txt:211 #, no-wrap -msgid "" -"[imap]\n" -" folder = \"INBOX.Drafts\"\n" -" tunnel = \"ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> " -"/dev/null\"\n" +msgid "symref" msgstr "" #. type: Plain text -#: en/git-imap-send.txt:117 -msgid "Using direct mode:" -msgstr "" - -#. type: delimited block . -#: en/git-imap-send.txt:124 -#, no-wrap +#: en/git-for-each-ref.txt:216 msgid "" -"[imap]\n" -" folder = \"INBOX.Drafts\"\n" -" host = imap://imap.example.com\n" -" user = bob\n" -" pass = p4ssw0rd\n" +"The ref which the given symbolic ref refers to. If not a symbolic ref, " +"nothing is printed. Respects the `:short`, `:lstrip` and `:rstrip` options " +"in the same way as `refname` above." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:127 -msgid "Using direct mode with SSL:" -msgstr "" - -#. type: delimited block . -#: en/git-imap-send.txt:136 -#, no-wrap +#: en/git-for-each-ref.txt:220 msgid "" -"[imap]\n" -" folder = \"INBOX.Drafts\"\n" -" host = imaps://imap.example.com\n" -" user = bob\n" -" pass = p4ssw0rd\n" -" port = 123\n" -" sslverify = false\n" +"In addition to the above, for commit and tag objects, the header field names " +"(`tree`, `parent`, `object`, `type`, and `tag`) can be used to specify the " +"value in the header field." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:143 +#: en/git-for-each-ref.txt:225 msgid "" -"To submit patches using GMail's IMAP interface, first, edit your " -"~/.gitconfig to specify your account settings:" -msgstr "" - -#. type: delimited block - -#: en/git-imap-send.txt:151 -#, no-wrap -msgid "" -"[imap]\n" -"\tfolder = \"[Gmail]/Drafts\"\n" -"\thost = imaps://imap.gmail.com\n" -"\tuser = user@gmail.com\n" -"\tport = 993\n" -"\tsslverify = false\n" +"For commit and tag objects, the special `creatordate` and `creator` fields " +"will correspond to the appropriate date or name-email-date tuple from the " +"`committer` or `tagger` fields depending on the object type. These are " +"intended for working on a mix of annotated and lightweight tags." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:155 +#: en/git-for-each-ref.txt:229 msgid "" -"You might need to instead use: folder = \"[Google Mail]/Drafts\" if you get " -"an error that the \"Folder doesn't exist\"." -msgstr "" - -#. type: Plain text -#: en/git-imap-send.txt:157 -msgid "Once the commits are ready to be sent, run the following command:" +"Fields that have name-email-date tuple as its value (`author`, `committer`, " +"and `tagger`) can be suffixed with `name`, `email`, and `date` to extract " +"the named component." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:159 -#, no-wrap +#: en/git-for-each-ref.txt:242 msgid "" -" $ git format-patch --cover-letter -M --stdout origin/master | git " -"imap-send\n" +"The complete message in a commit and tag object is `contents`. Its first " +"line is `contents:subject`, where subject is the concatenation of all lines " +"of the commit message up to the first blank line. The next line is " +"`contents:body`, where body is all of the lines after the first blank line. " +"The optional GPG signature is `contents:signature`. The first `N` lines of " +"the message is obtained using `contents:lines=N`. Additionally, the " +"trailers as interpreted by linkgit:git-interpret-trailers[1] are obtained as " +"`trailers` (or by using the historical alias `contents:trailers`). Non-" +"trailer lines from the trailer block can be omitted with `trailers:only`. " +"Whitespace-continuations can be removed from trailers so that each trailer " +"appears on a line by itself with its full content with `trailers:unfold`. " +"Both can be used together as `trailers:unfold,only`." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:163 +#: en/git-for-each-ref.txt:246 msgid "" -"Just make sure to disable line wrapping in the email client (GMail's web " -"interface will wrap lines no matter what, so you need to use a real IMAP " -"client)." -msgstr "" - -#. type: Title - -#: en/git-imap-send.txt:165 -#, no-wrap -msgid "CAUTION" +"For sorting purposes, fields with numeric values sort in numeric order " +"(`objectsize`, `authordate`, `committerdate`, `creatordate`, `taggerdate`). " +"All other fields are used to sort in their byte-value order." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:172 +#: en/git-for-each-ref.txt:249 msgid "" -"It is still your responsibility to make sure that the email message sent by " -"your email program meets the standards of your project. Many projects do " -"not like patches to be attached. Some mail agents will transform patches " -"(e.g. wrap lines, send them as format=flowed) in ways that make them fail. " -"You will get angry flames ridiculing you if you don't check this." +"There is also an option to sort by versions, this can be done by using the " +"fieldname `version:refname` or its alias `v:refname`." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:176 -#, no-wrap +#: en/git-for-each-ref.txt:253 msgid "" -"Thunderbird in particular is known to be problematic. Thunderbird\n" -"users may wish to visit this web page for more information:\n" -" " -"http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email\n" +"In any case, a field name that refers to a field inapplicable to the object " +"referred by the ref does not cause an error. It returns an empty string " +"instead." msgstr "" #. type: Plain text -#: en/git-imap-send.txt:180 -msgid "linkgit:git-format-patch[1], linkgit:git-send-email[1], mbox(5)" -msgstr "" - -#. type: Title = -#: en/git-index-pack.txt:2 -#, no-wrap -msgid "git-index-pack(1)" +#: en/git-for-each-ref.txt:257 +msgid "" +"As a special case for the date-type fields, you may specify a format for the " +"date by adding `:` followed by date format name (see the values the `--date` " +"option to linkgit:git-rev-list[1] takes)." msgstr "" #. type: Plain text -#: en/git-index-pack.txt:7 -msgid "git-index-pack - Build pack index file for an existing packed archive" +#: en/git-for-each-ref.txt:260 +msgid "" +"Some atoms like %(align) and %(if) always require a matching %(end). We " +"call them \"opening atoms\" and sometimes denote them as %($open)." msgstr "" #. type: Plain text -#: en/git-index-pack.txt:15 -#, no-wrap +#: en/git-for-each-ref.txt:265 msgid "" -"'git index-pack' [-v] [-o <index-file>] <pack-file>\n" -"'git index-pack' --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]\n" -" [<pack-file>]\n" +"When a scripting language specific quoting is in effect, everything between " +"a top-level opening atom and its matching %(end) is evaluated according to " +"the semantics of the opening atom and only its result from the top-level is " +"quoted." msgstr "" #. type: Plain text -#: en/git-index-pack.txt:23 +#: en/git-for-each-ref.txt:272 msgid "" -"Reads a packed archive (.pack) from the specified file, and builds a pack " -"index file (.idx) for it. The packed archive together with the pack index " -"can then be placed in the objects/pack/ directory of a Git repository." +"An example directly producing formatted text. Show the most recent 3 tagged " +"commits:" msgstr "" -#. type: Plain text -#: en/git-index-pack.txt:29 -msgid "Be verbose about what is going on, including progress status." +#. type: delimited block - +#: en/git-for-each-ref.txt:275 en/git-for-each-ref.txt:291 +#: en/git-for-each-ref.txt:305 +#, no-wrap +msgid "#!/bin/sh\n" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:30 +#. type: delimited block - +#: en/git-for-each-ref.txt:281 #, no-wrap -msgid "-o <index-file>" +msgid "" +"git for-each-ref --count=3 --sort='-*authordate' \\\n" +"--format='From: %(*authorname) %(*authoremail)\n" +"Subject: %(*subject)\n" +"Date: %(*authordate)\n" +"Ref: %(*refname)\n" msgstr "" -#. type: Plain text -#: en/git-index-pack.txt:37 +#. type: delimited block - +#: en/git-for-each-ref.txt:284 +#, no-wrap msgid "" -"Write the generated pack index into the specified file. Without this option " -"the name of pack index file is constructed from the name of packed archive " -"file by replacing .pack with .idx (and the program fails if the name of " -"packed archive does not end with .pack)." +"%(*body)\n" +"' 'refs/tags'\n" msgstr "" #. type: Plain text -#: en/git-index-pack.txt:47 +#: en/git-for-each-ref.txt:289 msgid "" -"When this flag is provided, the pack is read from stdin instead and a copy " -"is then written to <pack-file>. If <pack-file> is not specified, the pack is " -"written to objects/pack/ directory of the current Git repository with a " -"default name determined from the pack content. If <pack-file> is not " -"specified consider using --keep to prevent a race condition between this " -"process and 'git repack'." +"A simple example showing the use of shell eval on the output, demonstrating " +"the use of --shell. List the prefixes of all heads:" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:48 +#. type: delimited block - +#: en/git-for-each-ref.txt:298 #, no-wrap -msgid "--fix-thin" -msgstr "" - -#. type: Plain text -#: en/git-index-pack.txt:53 msgid "" -"Fix a \"thin\" pack produced by `git pack-objects --thin` (see " -"linkgit:git-pack-objects[1] for details) by adding the excluded objects the " -"deltified objects are based on to the pack. This option only makes sense in " -"conjunction with --stdin." +"git for-each-ref --shell --format=\"ref=%(refname)\" refs/heads | \\\n" +"while read entry\n" +"do\n" +"\teval \"$entry\"\n" +"\techo `dirname $ref`\n" +"done\n" msgstr "" #. type: Plain text -#: en/git-index-pack.txt:61 +#: en/git-for-each-ref.txt:303 msgid "" -"Before moving the index into its final destination create an empty .keep " -"file for the associated pack file. This option is usually necessary with " -"--stdin to prevent a simultaneous 'git repack' process from deleting the " -"newly constructed pack and index before refs can be updated to use objects " -"contained in the pack." +"A bit more elaborate report on tags, demonstrating that the format may be an " +"entire script:" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:62 +#. type: delimited block - +#: en/git-for-each-ref.txt:310 #, no-wrap -msgid "--keep=<msg>" -msgstr "" - -#. type: Plain text -#: en/git-index-pack.txt:68 msgid "" -"Like --keep create a .keep file before moving the index into its final " -"destination, but rather than creating an empty file place '<msg>' followed " -"by an LF into the .keep file. The '<msg>' message can later be searched for " -"within all .keep files to locate any which have outlived their usefulness." +"fmt='\n" +"\tr=%(refname)\n" +"\tt=%(*objecttype)\n" +"\tT=${r#refs/tags/}\n" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:69 en/git-pack-objects.txt:225 +#. type: delimited block - +#: en/git-for-each-ref.txt:317 #, no-wrap -msgid "--index-version=<version>[,<offset>]" -msgstr "" - -#. type: Plain text -#: en/git-index-pack.txt:73 en/git-pack-objects.txt:229 msgid "" -"This is intended to be used by the test suite only. It allows to force the " -"version for the generated pack index, and to force 64-bit index entries on " -"objects located above the given offset." -msgstr "" - -#. type: Plain text -#: en/git-index-pack.txt:76 -msgid "Die, if the pack contains broken objects or links." +"\to=%(*objectname)\n" +"\tn=%(*authorname)\n" +"\te=%(*authoremail)\n" +"\ts=%(*subject)\n" +"\td=%(*authordate)\n" +"\tb=%(*body)\n" msgstr "" -#. type: Plain text -#: en/git-index-pack.txt:79 -msgid "Die if the pack contains broken links. For internal use only." +#. type: delimited block - +#: en/git-for-each-ref.txt:336 +#, no-wrap +msgid "" +"\tkind=Tag\n" +"\tif test \"z$t\" = z\n" +"\tthen\n" +"\t\t# could be a lightweight tag\n" +"\t\tt=%(objecttype)\n" +"\t\tkind=\"Lightweight tag\"\n" +"\t\to=%(objectname)\n" +"\t\tn=%(authorname)\n" +"\t\te=%(authoremail)\n" +"\t\ts=%(subject)\n" +"\t\td=%(authordate)\n" +"\t\tb=%(body)\n" +"\tfi\n" +"\techo \"$kind $T points at a $t object $o\"\n" +"\tif test \"z$t\" = zcommit\n" +"\tthen\n" +"\t\techo \"The commit was authored by $n $e\n" +"at $d, and titled\n" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:80 en/git-pack-objects.txt:215 +#. type: delimited block - +#: en/git-for-each-ref.txt:338 #, no-wrap -msgid "--threads=<n>" +msgid " $s\n" msgstr "" -#. type: Plain text -#: en/git-index-pack.txt:89 +#. type: delimited block - +#: en/git-for-each-ref.txt:345 +#, no-wrap msgid "" -"Specifies the number of threads to spawn when resolving deltas. This " -"requires that index-pack be compiled with pthreads otherwise this option is " -"ignored with a warning. This is meant to reduce packing time on " -"multiprocessor machines. The required amount of memory for the delta search " -"window is however multiplied by the number of threads. Specifying 0 will " -"cause Git to auto-detect the number of CPU's and use maximum 3 threads." +"Its message reads as:\n" +"\"\n" +"\t\techo \"$b\" | sed -e \"s/^/ /\"\n" +"\t\techo\n" +"\tfi\n" +"'\n" msgstr "" -#. type: Labeled list -#: en/git-index-pack.txt:90 en/git-unpack-objects.txt:47 +#. type: delimited block - +#: en/git-for-each-ref.txt:351 #, no-wrap -msgid "--max-input-size=<size>" +msgid "" +"eval=`git for-each-ref --shell --format=\"$fmt\" \\\n" +"\t--sort='*objecttype' \\\n" +"\t--sort=-taggerdate \\\n" +"\trefs/tags`\n" +"eval \"$eval\"\n" msgstr "" #. type: Plain text -#: en/git-index-pack.txt:92 en/git-unpack-objects.txt:49 -msgid "Die, if the pack is larger than <size>." +#: en/git-for-each-ref.txt:356 +msgid "" +"An example to show the usage of %(if)...%(then)...%(else)...%(end). This " +"prefixes the current branch with a star." msgstr "" -#. type: Title - -#: en/git-index-pack.txt:94 +#. type: delimited block - +#: en/git-for-each-ref.txt:359 #, no-wrap -msgid "Note" +msgid "git for-each-ref --format=\"%(if)%(HEAD)%(then)* %(else) %(end)%(refname:short)\" refs/heads/\n" msgstr "" #. type: Plain text -#: en/git-index-pack.txt:100 +#: en/git-for-each-ref.txt:364 msgid "" -"Once the index has been created, the list of object names is sorted and the " -"SHA-1 hash of that list is printed to stdout. If --stdin was also used then " -"this is prefixed by either \"pack\\t\", or \"keep\\t\" if a new .keep file " -"was successfully created. This is useful to remove a" +"An example to show the usage of %(if)...%(then)...%(end). This prints the " +"authorname, if present." msgstr "" -#. type: Block title -#: en/git-index-pack.txt:100 +#. type: delimited block - +#: en/git-for-each-ref.txt:367 #, no-wrap -msgid "keep file used as a lock to prevent the race with 'git repack'" -msgstr "" - -#. type: Plain text -#: en/git-index-pack.txt:102 -msgid "mentioned above." +msgid "git for-each-ref --format=\"%(refname)%(if)%(authorname)%(then) Authored by: %(authorname)%(end)\"\n" msgstr "" #. type: Title = -#: en/git-init-db.txt:2 +#: en/git-format-patch.txt:2 #, no-wrap -msgid "git-init-db(1)" +msgid "git-format-patch(1)" msgstr "" #. type: Plain text -#: en/git-init-db.txt:7 -msgid "git-init-db - Creates an empty Git repository" +#: en/git-format-patch.txt:7 +msgid "git-format-patch - Prepare patches for e-mail submission" msgstr "" #. type: Plain text -#: en/git-init-db.txt:13 +#: en/git-format-patch.txt:31 #, no-wrap msgid "" -"'git init-db' [-q | --quiet] [--bare] [--template=<template_directory>] " -"[--separate-git-dir <git dir>] [--shared[=<permissions>]]\n" +"'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n" +"\t\t [--no-thread | --thread[=<style>]]\n" +"\t\t [(--attach|--inline)[=<boundary>] | --no-attach]\n" +"\t\t [-s | --signoff]\n" +"\t\t [--signature=<signature> | --no-signature]\n" +"\t\t [--signature-file=<file>]\n" +"\t\t [-n | --numbered | -N | --no-numbered]\n" +"\t\t [--start-number <n>] [--numbered-files]\n" +"\t\t [--in-reply-to=Message-Id] [--suffix=.<sfx>]\n" +"\t\t [--ignore-if-in-upstream]\n" +"\t\t [--rfc] [--subject-prefix=Subject-Prefix]\n" +"\t\t [(--reroll-count|-v) <n>]\n" +"\t\t [--to=<email>] [--cc=<email>]\n" +"\t\t [--[no-]cover-letter] [--quiet] [--notes[=<ref>]]\n" +"\t\t [--interdiff=<previous>]\n" +"\t\t [--range-diff=<previous> [--creation-factor=<percent>]]\n" +"\t\t [--progress]\n" +"\t\t [<common diff options>]\n" +"\t\t [ <since> | <revision range> ]\n" msgstr "" #. type: Plain text -#: en/git-init-db.txt:20 +#: en/git-format-patch.txt:39 msgid "" -"This is a synonym for linkgit:git-init[1]. Please refer to the " -"documentation of that command." -msgstr "" - -#. type: Title = -#: en/git-init.txt:2 -#, no-wrap -msgid "git-init(1)" +"Prepare each commit with its patch in one file per commit, formatted to " +"resemble UNIX mailbox format. The output of this command is convenient for " +"e-mail submission or for use with 'git am'." msgstr "" #. type: Plain text -#: en/git-init.txt:7 -msgid "git-init - Create an empty Git repository or reinitialize an existing one" +#: en/git-format-patch.txt:41 +msgid "There are two ways to specify which commits to operate on." msgstr "" #. type: Plain text -#: en/git-init.txt:15 -#, no-wrap +#: en/git-format-patch.txt:45 msgid "" -"'git init' [-q | --quiet] [--bare] [--template=<template_directory>]\n" -"\t [--separate-git-dir <git dir>]\n" -"\t [--shared[=<permissions>]] [directory]\n" +"A single commit, <since>, specifies that the commits leading to the tip of " +"the current branch that are not in the history that leads to the <since> to " +"be output." msgstr "" #. type: Plain text -#: en/git-init.txt:24 +#: en/git-format-patch.txt:49 msgid "" -"This command creates an empty Git repository - basically a `.git` directory " -"with subdirectories for `objects`, `refs/heads`, `refs/tags`, and template " -"files. An initial `HEAD` file that references the HEAD of the master branch " -"is also created." +"Generic <revision range> expression (see \"SPECIFYING REVISIONS\" section in " +"linkgit:gitrevisions[7]) means the commits in the specified range." msgstr "" #. type: Plain text -#: en/git-init.txt:27 +#: en/git-format-patch.txt:55 msgid "" -"If the `$GIT_DIR` environment variable is set then it specifies a path to " -"use instead of `./.git` for the base of the repository." +"The first rule takes precedence in the case of a single <commit>. To apply " +"the second rule, i.e., format everything since the beginning of history up " +"until <commit>, use the `--root` option: `git format-patch --root " +"<commit>`. If you want to format only <commit> itself, you can do this with " +"`git format-patch -1 <commit>`." msgstr "" #. type: Plain text -#: en/git-init.txt:32 +#: en/git-format-patch.txt:62 msgid "" -"If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY` " -"environment variable then the sha1 directories are created underneath - " -"otherwise the default `$GIT_DIR/objects` directory is used." +"By default, each output file is numbered sequentially from 1, and uses the " +"first line of the commit message (massaged for pathname safety) as the " +"filename. With the `--numbered-files` option, the output file names will " +"only be numbers, without the first line of the commit appended. The names " +"of the output files are printed to standard output, unless the `--stdout` " +"option is specified." msgstr "" #. type: Plain text -#: en/git-init.txt:37 +#: en/git-format-patch.txt:69 msgid "" -"Running 'git init' in an existing repository is safe. It will not overwrite " -"things that are already there. The primary reason for rerunning 'git init' " -"is to pick up newly added templates (or to move the repository to another " -"place if --separate-git-dir is given)." +"If `-o` is specified, output files are created in <dir>. Otherwise they are " +"created in the current working directory. The default path can be set with " +"the `format.outputDirectory` configuration option. The `-o` option takes " +"precedence over `format.outputDirectory`. To store patches in the current " +"working directory even when `format.outputDirectory` points elsewhere, use `-" +"o .`." msgstr "" #. type: Plain text -#: en/git-init.txt:47 -msgid "Only print error and warning messages; all other output will be suppressed." +#: en/git-format-patch.txt:73 +msgid "" +"By default, the subject of a single patch is \"[PATCH] \" followed by the " +"concatenation of lines from the commit message up to the first blank line " +"(see the DISCUSSION section of linkgit:git-commit[1])." msgstr "" #. type: Plain text -#: en/git-init.txt:52 +#: en/git-format-patch.txt:77 msgid "" -"Create a bare repository. If `GIT_DIR` environment is not set, it is set to " -"the current working directory." +"When multiple patches are output, the subject prefix will instead be " +"\"[PATCH n/m] \". To force 1/1 to be added for a single patch, use `-n`. " +"To omit patch numbers from the subject, use `-N`." msgstr "" #. type: Plain text -#: en/git-init.txt:57 +#: en/git-format-patch.txt:82 msgid "" -"Specify the directory from which templates will be used. (See the " -"\"TEMPLATE DIRECTORY\" section below.)" +"If given `--thread`, `git-format-patch` will generate `In-Reply-To` and " +"`References` headers to make the second and subsequent patch mails appear as " +"replies to the first mail; this also generates a `Message-Id` header to " +"reference." msgstr "" -#. type: Plain text -#: en/git-init.txt:64 -msgid "" -"Instead of initializing the repository as a directory to either `$GIT_DIR` " -"or `./.git/`, create a text file there containing the path to the actual " -"repository. This file acts as filesystem-agnostic Git symbolic link to the " -"repository." +#. type: Labeled list +#: en/git-format-patch.txt:88 +#, no-wrap +msgid "-<n>" msgstr "" #. type: Plain text -#: en/git-init.txt:66 -msgid "" -"If this is reinitialization, the repository will be moved to the specified " -"path." +#: en/git-format-patch.txt:90 +msgid "Prepare patches from the topmost <n> commits." msgstr "" #. type: Labeled list -#: en/git-init.txt:67 +#: en/git-format-patch.txt:91 #, no-wrap -msgid "--shared[=(false|true|umask|group|all|world|everybody|0xxx)]" +msgid "-o <dir>" msgstr "" -#. type: Plain text -#: en/git-init.txt:75 -msgid "" -"Specify that the Git repository is to be shared amongst several users. This " -"allows users belonging to the same group to push into that repository. When " -"specified, the config variable \"core.sharedRepository\" is set so that " -"files and directories under `$GIT_DIR` are created with the requested " -"permissions. When not specified, Git will use permissions reported by " -"umask(2)." +#. type: Labeled list +#: en/git-format-patch.txt:92 +#, no-wrap +msgid "--output-directory <dir>" msgstr "" #. type: Plain text -#: en/git-init.txt:78 +#: en/git-format-patch.txt:95 msgid "" -"The option can have the following values, defaulting to 'group' if no value " -"is given:" +"Use <dir> to store the resulting files, instead of the current working " +"directory." msgstr "" #. type: Labeled list -#: en/git-init.txt:80 +#: en/git-format-patch.txt:97 en/git-shortlog.txt:30 #, no-wrap -msgid "'umask' (or 'false')" +msgid "--numbered" msgstr "" #. type: Plain text -#: en/git-init.txt:84 -msgid "" -"Use permissions reported by umask(2). The default, when `--shared` is not " -"specified." +#: en/git-format-patch.txt:99 +msgid "Name output in '[PATCH n/m]' format, even with a single patch." msgstr "" #. type: Labeled list -#: en/git-init.txt:85 +#: en/git-format-patch.txt:101 #, no-wrap -msgid "'group' (or 'true')" +msgid "--no-numbered" msgstr "" #. type: Plain text -#: en/git-init.txt:93 -msgid "" -"Make the repository group-writable, (and g+sx, since the git group may be " -"not the primary group of all users). This is used to loosen the permissions " -"of an otherwise safe umask(2) value. Note that the umask still applies to " -"the other permission bits (e.g. if umask is '0022', using 'group' will not " -"remove read privileges from other (non-group) users). See '0xxx' for how to " -"exactly specify the repository permissions." +#: en/git-format-patch.txt:103 +msgid "Name output in '[PATCH]' format." msgstr "" #. type: Labeled list -#: en/git-init.txt:94 +#: en/git-format-patch.txt:104 #, no-wrap -msgid "'all' (or 'world' or 'everybody')" +msgid "--start-number <n>" msgstr "" #. type: Plain text -#: en/git-init.txt:97 -msgid "Same as 'group', but make the repository readable by all users." +#: en/git-format-patch.txt:106 +msgid "Start numbering the patches at <n> instead of 1." msgstr "" #. type: Labeled list -#: en/git-init.txt:98 +#: en/git-format-patch.txt:107 #, no-wrap -msgid "'0xxx'" +msgid "--numbered-files" msgstr "" #. type: Plain text -#: en/git-init.txt:105 +#: en/git-format-patch.txt:110 msgid "" -"'0xxx' is an octal number and each file will have mode '0xxx'. '0xxx' will " -"override users' umask(2) value (and not only loosen permissions as 'group' " -"and 'all' does). '0640' will create a repository which is group-readable, " -"but not group-writable or accessible to others. '0660' will create a repo " -"that is readable and writable to the current user and group, but " -"inaccessible to others." +"Output file names will be a simple number sequence without the default first " +"line of the commit appended." msgstr "" -#. type: Plain text -#: en/git-init.txt:110 -msgid "" -"By default, the configuration flag `receive.denyNonFastForwards` is enabled " -"in shared repositories, so that you cannot force a non fast-forwarding push " -"into it." +#. type: Labeled list +#: en/git-format-patch.txt:112 +#, no-wrap +msgid "--keep-subject" msgstr "" #. type: Plain text -#: en/git-init.txt:113 +#: en/git-format-patch.txt:115 msgid "" -"If you provide a 'directory', the command is run inside it. If this " -"directory does not exist, it will be created." -msgstr "" - -#. type: Title - -#: en/git-init.txt:117 -#, no-wrap -msgid "TEMPLATE DIRECTORY" +"Do not strip/add '[PATCH]' from the first line of the commit log message." msgstr "" #. type: Plain text -#: en/git-init.txt:121 +#: en/git-format-patch.txt:121 msgid "" -"Files and directories in the template directory whose name do not start with " -"a dot will be copied to the `$GIT_DIR` after it is created." +"Add `Signed-off-by:` line to the commit message, using the committer " +"identity of yourself. See the signoff option in linkgit:git-commit[1] for " +"more information." msgstr "" -#. type: Plain text -#: en/git-init.txt:123 -msgid "The template directory will be one of the following (in order):" +#. type: Labeled list +#: en/git-format-patch.txt:122 en/git-pack-objects.txt:59 +#, no-wrap +msgid "--stdout" msgstr "" #. type: Plain text -#: en/git-init.txt:125 -msgid "the argument given with the `--template` option;" +#: en/git-format-patch.txt:125 +msgid "" +"Print all commits to the standard output in mbox format, instead of creating " +"a file for each one." msgstr "" -#. type: Plain text -#: en/git-init.txt:127 -msgid "the contents of the `$GIT_TEMPLATE_DIR` environment variable;" +#. type: Labeled list +#: en/git-format-patch.txt:126 +#, no-wrap +msgid "--attach[=<boundary>]" msgstr "" #. type: Plain text -#: en/git-init.txt:129 -msgid "the `init.templateDir` configuration variable; or" +#: en/git-format-patch.txt:130 +msgid "" +"Create multipart/mixed attachment, the first part of which is the commit " +"message and the patch itself in the second part, with `Content-Disposition: " +"attachment`." msgstr "" -#. type: Plain text -#: en/git-init.txt:131 -msgid "the default template directory: `/usr/share/git-core/templates`." +#. type: Labeled list +#: en/git-format-patch.txt:131 +#, no-wrap +msgid "--no-attach" msgstr "" #. type: Plain text -#: en/git-init.txt:134 +#: en/git-format-patch.txt:134 msgid "" -"The default template directory includes some directory structure, suggested " -"\"exclude patterns\" (see linkgit:gitignore[5]), and sample hook files." +"Disable the creation of an attachment, overriding the configuration setting." msgstr "" -#. type: Plain text -#: en/git-init.txt:137 -msgid "" -"The sample hooks are all disabled by default, To enable one of the sample " -"hooks rename it by removing its `.sample` suffix." +#. type: Labeled list +#: en/git-format-patch.txt:135 +#, no-wrap +msgid "--inline[=<boundary>]" msgstr "" #. type: Plain text -#: en/git-init.txt:139 -msgid "See linkgit:githooks[5] for more general info on hook execution." +#: en/git-format-patch.txt:139 +msgid "" +"Create multipart/mixed attachment, the first part of which is the commit " +"message and the patch itself in the second part, with `Content-Disposition: " +"inline`." msgstr "" #. type: Labeled list -#: en/git-init.txt:143 +#: en/git-format-patch.txt:140 #, no-wrap -msgid "Start a new Git repository for an existing code base" +msgid "--thread[=<style>]" msgstr "" -#. type: delimited block - -#: en/git-init.txt:150 +#. type: Labeled list +#: en/git-format-patch.txt:141 #, no-wrap -msgid "" -"$ cd /path/to/my/codebase\n" -"$ git init <1>\n" -"$ git add . <2>\n" -"$ git commit <3>\n" +msgid "--no-thread" msgstr "" #. type: Plain text -#: en/git-init.txt:153 -msgid "Create a /path/to/my/codebase/.git directory." +#: en/git-format-patch.txt:146 +msgid "" +"Controls addition of `In-Reply-To` and `References` headers to make the " +"second and subsequent mails appear as replies to the first. Also controls " +"generation of the `Message-Id` header to reference." msgstr "" #. type: Plain text -#: en/git-init.txt:154 -msgid "Add all existing files to the index." +#: en/git-format-patch.txt:152 +msgid "" +"The optional <style> argument can be either `shallow` or `deep`. 'shallow' " +"threading makes every mail a reply to the head of the series, where the head " +"is chosen from the cover letter, the `--in-reply-to`, and the first patch " +"mail, in this order. 'deep' threading makes every mail a reply to the " +"previous one." msgstr "" #. type: Plain text -#: en/git-init.txt:155 -msgid "Record the pristine state as the first commit in the history." -msgstr "" - -#. type: Title = -#: en/git-instaweb.txt:2 -#, no-wrap -msgid "git-instaweb(1)" +#: en/git-format-patch.txt:156 +msgid "" +"The default is `--no-thread`, unless the `format.thread` configuration is " +"set. If `--thread` is specified without a style, it defaults to the style " +"specified by `format.thread` if any, or else `shallow`." msgstr "" #. type: Plain text -#: en/git-instaweb.txt:7 -msgid "git-instaweb - Instantly browse your working repository in gitweb" +#: en/git-format-patch.txt:160 +msgid "" +"Beware that the default for 'git send-email' is to thread emails itself. If " +"you want `git format-patch` to take care of threading, you will want to " +"ensure that threading is disabled for `git send-email`." msgstr "" -#. type: Plain text -#: en/git-instaweb.txt:14 +#. type: Labeled list +#: en/git-format-patch.txt:161 #, no-wrap -msgid "" -"'git instaweb' [--local] [--httpd=<httpd>] [--port=<port>]\n" -" [--browser=<browser>]\n" -"'git instaweb' [--start] [--stop] [--restart]\n" +msgid "--in-reply-to=Message-Id" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:19 +#: en/git-format-patch.txt:165 msgid "" -"A simple script to set up `gitweb` and a web server for browsing the local " -"repository." -msgstr "" - -#. type: Plain text -#: en/git-instaweb.txt:26 -msgid "Only bind the web server to the local IP (127.0.0.1)." +"Make the first mail (or all the mails with `--no-thread`) appear as a reply " +"to the given Message-Id, which avoids breaking threads to provide a new " +"patch series." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:28 +#: en/git-format-patch.txt:166 #, no-wrap -msgid "--httpd" +msgid "--ignore-if-in-upstream" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:34 +#: en/git-format-patch.txt:172 msgid "" -"The HTTP daemon command-line that will be executed. Command-line options " -"may be specified here, and the configuration file will be added at the end " -"of the command-line. Currently apache2, lighttpd, mongoose, plackup and " -"webrick are supported. (Default: lighttpd)" +"Do not include a patch that matches a commit in <until>..<since>. This will " +"examine all patches reachable from <since> but not from <until> and compare " +"them with the patches being generated, and any patch that matches is ignored." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:36 +#: en/git-format-patch.txt:173 #, no-wrap -msgid "--module-path" +msgid "--subject-prefix=<Subject-Prefix>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:39 +#: en/git-format-patch.txt:178 msgid "" -"The module path (only needed if httpd is Apache). (Default: " -"/usr/lib/apache2/modules)" +"Instead of the standard '[PATCH]' prefix in the subject line, instead use " +"'[<Subject-Prefix>]'. This allows for useful naming of a patch series, and " +"can be combined with the `--numbered` option." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:41 +#: en/git-format-patch.txt:179 #, no-wrap -msgid "--port" +msgid "--rfc" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:43 -msgid "The port number to bind the httpd to. (Default: 1234)" +#: en/git-format-patch.txt:183 +msgid "" +"Alias for `--subject-prefix=\"RFC PATCH\"`. RFC means \"Request For Comments" +"\"; use this when sending an experimental patch for discussion rather than " +"application." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:44 en/git-mailinfo.txt:47 en/git-mailsplit.txt:35 en/git-repack.txt:116 en/git-status.txt:31 en/git-submodule.txt:279 en/blame-options.txt:1 en/diff-options.txt:525 +#: en/git-format-patch.txt:184 #, no-wrap -msgid "-b" +msgid "-v <n>" msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:45 +#: en/git-format-patch.txt:185 #, no-wrap -msgid "--browser" +msgid "--reroll-count=<n>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:51 +#: en/git-format-patch.txt:192 msgid "" -"The web browser that should be used to view the gitweb page. This will be " -"passed to the 'git web{litdd}browse' helper script along with the URL of the " -"gitweb instance. See linkgit:git-web{litdd}browse[1] for more information " -"about this. If the script fails, the URL will be printed to stdout." -msgstr "" - -#. type: Labeled list -#: en/git-instaweb.txt:52 -#, no-wrap -msgid "start" +"Mark the series as the <n>-th iteration of the topic. The output filenames " +"have `v<n>` prepended to them, and the subject prefix (\"PATCH\" by default, " +"but configurable via the `--subject-prefix` option) has ` v<n>` appended to " +"it. E.g. `--reroll-count=4` may produce `v4-0001-add-makefile.patch` file " +"that has \"Subject: [PATCH v4 1/20] Add makefile\" in it." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:53 +#: en/git-format-patch.txt:193 #, no-wrap -msgid "--start" +msgid "--to=<email>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:56 +#: en/git-format-patch.txt:198 msgid "" -"Start the httpd instance and exit. Regenerate configuration files as " -"necessary for spawning a new instance." -msgstr "" - -#. type: Labeled list -#: en/git-instaweb.txt:57 -#, no-wrap -msgid "stop" +"Add a `To:` header to the email headers. This is in addition to any " +"configured headers, and may be used multiple times. The negated form `--no-" +"to` discards all `To:` headers added so far (from config or command line)." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:58 +#: en/git-format-patch.txt:199 #, no-wrap -msgid "--stop" +msgid "--cc=<email>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:62 +#: en/git-format-patch.txt:204 msgid "" -"Stop the httpd instance and exit. This does not generate any of the " -"configuration files for spawning a new instance, nor does it close the " -"browser." +"Add a `Cc:` header to the email headers. This is in addition to any " +"configured headers, and may be used multiple times. The negated form `--no-" +"cc` discards all `Cc:` headers added so far (from config or command line)." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:63 +#: en/git-format-patch.txt:205 #, no-wrap -msgid "restart" +msgid "--from" msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:64 +#: en/git-format-patch.txt:206 #, no-wrap -msgid "--restart" +msgid "--from=<ident>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:67 +#: en/git-format-patch.txt:212 msgid "" -"Restart the httpd instance and exit. Regenerate configuration files as " -"necessary for spawning a new instance." +"Use `ident` in the `From:` header of each commit email. If the author ident " +"of the commit is not textually identical to the provided `ident`, place a " +"`From:` header in the body of the message with the original author. If no " +"`ident` is given, use the committer ident." msgstr "" #. type: Plain text -#: en/git-instaweb.txt:72 -msgid "You may specify configuration in your .git/config" +#: en/git-format-patch.txt:219 +msgid "" +"Note that this option is only useful if you are actually sending the emails " +"and want to identify yourself as the sender, but retain the original author " +"(and `git am` will correctly pick up the in-body header). Note also that " +"`git send-email` already handles this transformation for you, and this " +"option should not be used if you are feeding the result to `git send-email`." msgstr "" -#. type: delimited block - -#: en/git-instaweb.txt:80 +#. type: Labeled list +#: en/git-format-patch.txt:220 #, no-wrap -msgid "" -"[instaweb]\n" -"\tlocal = true\n" -"\thttpd = apache2 -f\n" -"\tport = 4321\n" -"\tbrowser = konqueror\n" -"\tmodulePath = /usr/lib/apache2/modules\n" +msgid "--add-header=<header>" msgstr "" #. type: Plain text -#: en/git-instaweb.txt:86 +#: en/git-format-patch.txt:227 msgid "" -"If the configuration variable `instaweb.browser` is not set, `web.browser` " -"will be used instead if it is defined. See linkgit:git-web{litdd}browse[1] " -"for more information about this." +"Add an arbitrary header to the email headers. This is in addition to any " +"configured headers, and may be used multiple times. For example, `--add-" +"header=\"Organization: git-foo\"`. The negated form `--no-add-header` " +"discards *all* (`To:`, `Cc:`, and custom) headers added so far from config " +"or command line." msgstr "" #. type: Labeled list -#: en/git-instaweb.txt:90 en/cmds-ancillaryinterrogators.txt:49 -#, no-wrap -msgid "linkgit:gitweb[1]" -msgstr "" - -#. type: Title = -#: en/git-interpret-trailers.txt:2 +#: en/git-format-patch.txt:228 #, no-wrap -msgid "git-interpret-trailers(1)" +msgid "--[no-]cover-letter" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:7 +#: en/git-format-patch.txt:232 msgid "" -"git-interpret-trailers - help add structured information into commit " -"messages" +"In addition to the patches, generate a cover letter file containing the " +"branch description, shortlog and the overall diffstat. You can fill in a " +"description in the file before sending it out." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:12 +#. type: Labeled list +#: en/git-format-patch.txt:233 #, no-wrap -msgid "" -"'git interpret-trailers' [--in-place] [--trim-empty] [(--trailer " -"<token>[(=|:)<value>])...] [<file>...]\n" +msgid "--interdiff=<previous>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:18 +#: en/git-format-patch.txt:241 msgid "" -"Help adding 'trailers' lines, that look similar to RFC 822 e-mail headers, " -"at the end of the otherwise free-form part of a commit message." +"As a reviewer aid, insert an interdiff into the cover letter, or as " +"commentary of the lone patch of a 1-patch series, showing the differences " +"between the previous version of the patch series and the series currently " +"being formatted. `previous` is a single revision naming the tip of the " +"previous series which shares a common base with the series being formatted " +"(for example `git format-patch --cover-letter --interdiff=feature/v1 -3 " +"feature/v2`)." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:24 -msgid "" -"This command reads some patches or commit messages from either the <file> " -"arguments or the standard input if no <file> is specified. Then this command " -"applies the arguments passed using the `--trailer` option, if any, to the " -"commit message part of each input file. The result is emitted on the " -"standard output." +#. type: Labeled list +#: en/git-format-patch.txt:242 +#, no-wrap +msgid "--range-diff=<previous>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:29 +#: en/git-format-patch.txt:253 msgid "" -"Some configuration variables control the way the `--trailer` arguments are " -"applied to each commit message and the way any existing trailer in the " -"commit message is changed. They also make it possible to automatically add " -"some trailers." +"As a reviewer aid, insert a range-diff (see linkgit:git-range-diff[1]) into " +"the cover letter, or as commentary of the lone patch of a 1-patch series, " +"showing the differences between the previous version of the patch series and " +"the series currently being formatted. `previous` can be a single revision " +"naming the tip of the previous series if it shares a common base with the " +"series being formatted (for example `git format-patch --cover-letter --range-" +"diff=feature/v1 -3 feature/v2`), or a revision range if the two versions of " +"the series are disjoint (for example `git format-patch --cover-letter --" +"range-diff=feature/v1~3..feature/v1 -3 feature/v2`)." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:36 +#: en/git-format-patch.txt:258 msgid "" -"By default, a '<token>=<value>' or '<token>:<value>' argument given using " -"`--trailer` will be appended after the existing trailers only if the last " -"trailer has a different (<token>, <value>) pair (or if there is no existing " -"trailer). The <token> and <value> parts will be trimmed to remove starting " -"and trailing whitespace, and the resulting trimmed <token> and <value> will " -"appear in the message like this:" +"Note that diff options passed to the command affect how the primary product " +"of `format-patch` is generated, and they are not passed to the underlying " +"`range-diff` machinery used to generate the cover-letter material (this may " +"change in the future)." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:39 +#. type: Labeled list +#: en/git-format-patch.txt:259 #, no-wrap -msgid "token: value\n" +msgid "--creation-factor=<percent>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:43 +#: en/git-format-patch.txt:264 msgid "" -"This means that the trimmed <token> and <value> will be separated by `': '` " -"(one colon followed by one space)." +"Used with `--range-diff`, tweak the heuristic which matches up commits " +"between the previous and current series of patches by adjusting the creation/" +"deletion cost fudge factor. See linkgit:git-range-diff[1]) for details." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:49 -msgid "" -"By default the new trailer will appear at the end of all the existing " -"trailers. If there is no existing trailer, the new trailer will appear after " -"the commit message part of the output, and, if there is no line with only " -"spaces at the end of the commit message part, one blank line will be added " -"before the new trailer." +#. type: Labeled list +#: en/git-format-patch.txt:265 +#, no-wrap +msgid "--notes[=<ref>]" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:58 +#: en/git-format-patch.txt:268 msgid "" -"Existing trailers are extracted from the input message by looking for a " -"group of one or more lines that (i) are all trailers, or (ii) contains at " -"least one Git-generated or user-configured trailer and consists of at least " -"25% trailers. The group must be preceded by one or more empty (or " -"whitespace-only) lines. The group must either be at the end of the message " -"or be the last non-whitespace lines before a line that starts with " -"'---'. Such three minus signs start the patch part of the message." +"Append the notes (see linkgit:git-notes[1]) for the commit after the three-" +"dash line." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:63 +#: en/git-format-patch.txt:276 msgid "" -"When reading trailers, there can be whitespaces after the token, the " -"separator and the value. There can also be whitespaces inside the token and " -"the value. The value may be split over multiple lines with each subsequent " -"line starting with whitespace, like the \"folding\" in RFC 822." +"The expected use case of this is to write supporting explanation for the " +"commit that does not belong to the commit log message proper, and include it " +"with the patch submission. While one can simply write these explanations " +"after `format-patch` has run but before sending, keeping them as Git notes " +"allows them to be maintained between versions of the patch series (but see " +"the discussion of the `notes.rewrite` configuration options in linkgit:git-" +"notes[1] to use this workflow)." +msgstr "" + +#. type: Labeled list +#: en/git-format-patch.txt:277 +#, no-wrap +msgid "--[no-]signature=<signature>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:67 +#: en/git-format-patch.txt:282 msgid "" -"Note that 'trailers' do not follow and are not intended to follow many rules " -"for RFC 822 headers. For example they do not follow the encoding rules and " -"probably many other rules." +"Add a signature to each message produced. Per RFC 3676 the signature is " +"separated from the body by a line with '-- ' on it. If the signature option " +"is omitted the signature defaults to the Git version number." msgstr "" #. type: Labeled list -#: en/git-interpret-trailers.txt:70 +#: en/git-format-patch.txt:283 #, no-wrap -msgid "--in-place" +msgid "--signature-file=<file>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:72 -msgid "Edit the files in place." +#: en/git-format-patch.txt:285 +msgid "Works just like --signature except the signature is read from a file." msgstr "" #. type: Labeled list -#: en/git-interpret-trailers.txt:73 +#: en/git-format-patch.txt:286 #, no-wrap -msgid "--trim-empty" +msgid "--suffix=.<sfx>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:77 +#: en/git-format-patch.txt:291 msgid "" -"If the <value> part of any trailer contains only whitespace, the whole " -"trailer will be removed from the resulting message. This applies to " -"existing trailers as well as new trailers." +"Instead of using `.patch` as the suffix for generated filenames, use " +"specified suffix. A common alternative is `--suffix=.txt`. Leaving this " +"empty will remove the `.patch` suffix." msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:78 -#, no-wrap -msgid "--trailer <token>[(=|:)<value>]" +#. type: Plain text +#: en/git-format-patch.txt:294 +msgid "" +"Note that the leading character does not have to be a dot; for example, you " +"can use `--suffix=-patch` to get `0001-description-of-my-change-patch`." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:82 -msgid "" -"Specify a (<token>, <value>) pair that should be applied as a trailer to the " -"input messages. See the description of this command." +#: en/git-format-patch.txt:298 +msgid "Do not print the names of the generated files to standard output." msgstr "" #. type: Labeled list -#: en/git-interpret-trailers.txt:86 +#: en/git-format-patch.txt:299 #, no-wrap -msgid "trailer.separators" +msgid "--no-binary" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:91 +#: en/git-format-patch.txt:304 msgid "" -"This option tells which characters are recognized as trailer separators. By " -"default only ':' is recognized as a trailer separator, except that '=' is " -"always accepted on the command line for compatibility with other git " -"commands." +"Do not output contents of changes in binary files, instead display a notice " +"that those files changed. Patches generated using this option cannot be " +"applied properly, but they are still useful for code review." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:95 -msgid "" -"The first character given by this option will be the default character used " -"when another separator is not specified in the config for this trailer." +#. type: Labeled list +#: en/git-format-patch.txt:305 +#, no-wrap +msgid "--zero-commit" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:102 +#: en/git-format-patch.txt:308 msgid "" -"For example, if the value for this option is \"%=$\", then only lines using " -"the format '<token><sep><value>' with <sep> containing '%', '=' or '$' and " -"then spaces will be considered trailers. And '%' will be the default " -"separator used, so by default trailers will appear like: '<token>% <value>' " -"(one percent sign and one space will appear between the token and the " -"value)." +"Output an all-zero hash in each patch's From header instead of the hash of " +"the commit." msgstr "" #. type: Labeled list -#: en/git-interpret-trailers.txt:103 +#: en/git-format-patch.txt:309 #, no-wrap -msgid "trailer.where" +msgid "--base=<commit>" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:105 -msgid "This option tells where a new trailer will be added." +#: en/git-format-patch.txt:313 +msgid "" +"Record the base tree information to identify the state the patch series " +"applies to. See the BASE TREE INFORMATION section below for details." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:107 -msgid "This can be `end`, which is the default, `start`, `after` or `before`." +#: en/git-format-patch.txt:320 +msgid "" +"Treat the revision argument as a <revision range>, even if it is just a " +"single commit (that would normally be treated as a <since>). Note that root " +"commits included in the specified range are always formatted as creation " +"patches, independently of this flag." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:110 -msgid "" -"If it is `end`, then each new trailer will appear at the end of the existing " -"trailers." +#: en/git-format-patch.txt:323 +msgid "Show progress reports on stderr as patches are generated." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:113 +#: en/git-format-patch.txt:330 msgid "" -"If it is `start`, then each new trailer will appear at the start, instead of " -"the end, of the existing trailers." +"You can specify extra mail header lines to be added to each message, " +"defaults for the subject prefix and file suffix, number patches when " +"outputting more than one patch, add \"To\" or \"Cc:\" headers, configure " +"attachments, and sign off patches with configuration variables." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:116 +#. type: delimited block - +#: en/git-format-patch.txt:342 +#, no-wrap msgid "" -"If it is `after`, then each new trailer will appear just after the last " -"trailer with the same <token>." +"[format]\n" +"\theaders = \"Organization: git-foo\\n\"\n" +"\tsubjectPrefix = CHANGE\n" +"\tsuffix = .txt\n" +"\tnumbered = auto\n" +"\tto = <email>\n" +"\tcc = <email>\n" +"\tattach [ = mime-boundary-string ]\n" +"\tsignOff = true\n" +"\tcoverletter = auto\n" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:119 +#: en/git-format-patch.txt:351 msgid "" -"If it is `before`, then each new trailer will appear just before the first " -"trailer with the same <token>." +"The patch produced by 'git format-patch' is in UNIX mailbox format, with a " +"fixed \"magic\" time stamp to indicate that the file is output from format-" +"patch rather than a real mailbox, like so:" msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:120 +#. type: delimited block - +#: en/git-format-patch.txt:361 #, no-wrap -msgid "trailer.ifexists" +msgid "" +"From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001\n" +"From: Tony Luck <tony.luck@intel.com>\n" +"Date: Tue, 13 Jul 2010 11:42:54 -0700\n" +"Subject: [PATCH] =?UTF-8?q?[IA64]=20Put=20ia64=20config=20files=20on=20the=20?=\n" +" =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20diet?=\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:124 +#. type: delimited block - +#: en/git-format-patch.txt:364 +#, no-wrap msgid "" -"This option makes it possible to choose what action will be performed when " -"there is already at least one trailer with the same <token> in the message." +"arch/arm config files were slimmed down using a python script\n" +"(See commit c2330e286f68f1c408b4aa6515ba49d57f05beae comment)\n" msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:127 +#. type: delimited block - +#: en/git-format-patch.txt:367 +#, no-wrap msgid "" -"The valid values for this option are: `addIfDifferentNeighbor` (this is the " -"default), `addIfDifferent`, `add`, `overwrite` or `doNothing`." +"Do the same for ia64 so we can have sleek & trim looking\n" +"...\n" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:131 +#: en/git-format-patch.txt:375 msgid "" -"With `addIfDifferentNeighbor`, a new trailer will be added only if no " -"trailer with the same (<token>, <value>) pair is above or below the line " -"where the new trailer will be added." +"Typically it will be placed in a MUA's drafts folder, edited to add timely " +"commentary that should not go in the changelog after the three dashes, and " +"then sent as a message whose body, in our example, starts with \"arch/arm " +"config files were...\". On the receiving end, readers can save interesting " +"patches in a UNIX mailbox and apply them with linkgit:git-am[1]." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:134 +#: en/git-format-patch.txt:381 msgid "" -"With `addIfDifferent`, a new trailer will be added only if no trailer with " -"the same (<token>, <value>) pair is already in the message." +"When a patch is part of an ongoing discussion, the patch generated by 'git " +"format-patch' can be tweaked to take advantage of the 'git am --scissors' " +"feature. After your response to the discussion comes a line that consists " +"solely of \"`-- >8 --`\" (scissors and perforation), followed by the patch " +"with unnecessary header fields removed:" msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:137 +#. type: delimited block - +#: en/git-format-patch.txt:385 +#, no-wrap msgid "" -"With `add`, a new trailer will be added, even if some trailers with the same " -"(<token>, <value>) pair are already in the message." +"...\n" +"> So we should do such-and-such.\n" msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:142 -msgid "" -"With `replace`, an existing trailer with the same <token> will be deleted " -"and the new trailer will be added. The deleted trailer will be the closest " -"one (with the same <token>) to the place where the new one will be added." +#. type: delimited block - +#: en/git-format-patch.txt:387 +#, no-wrap +msgid "Makes sense to me. How about this patch?\n" msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:145 +#. type: delimited block - +#: en/git-format-patch.txt:390 +#, no-wrap msgid "" -"With `doNothing`, nothing will be done; that is no new trailer will be added " -"if there is already one with the same <token> in the message." +"-- >8 --\n" +"Subject: [IA64] Put ia64 config files on the Uwe Kleine-Kì² nig diet\n" msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:146 +#. type: delimited block - +#: en/git-format-patch.txt:393 #, no-wrap -msgid "trailer.ifmissing" +msgid "" +"arch/arm config files were slimmed down using a python script\n" +"...\n" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:150 +#: en/git-format-patch.txt:401 msgid "" -"This option makes it possible to choose what action will be performed when " -"there is not yet any trailer with the same <token> in the message." +"When sending a patch this way, most often you are sending your own patch, so " +"in addition to the \"`From $SHA1 $magic_timestamp`\" marker you should omit " +"`From:` and `Date:` lines from the patch file. The patch title is likely to " +"be different from the subject of the discussion the patch is in response to, " +"so it is likely that you would want to keep the Subject: line, like the " +"example above." +msgstr "" + +#. type: Title ~ +#: en/git-format-patch.txt:403 +#, no-wrap +msgid "Checking for patch corruption" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:153 +#: en/git-format-patch.txt:406 msgid "" -"The valid values for this option are: `add` (this is the default) and " -"`doNothing`." +"Many mailers if not set up properly will corrupt whitespace. Here are two " +"common types of corruption:" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:155 -msgid "With `add`, a new trailer will be added." +#: en/git-format-patch.txt:408 +msgid "Empty context lines that do not have _any_ whitespace." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:157 -msgid "With `doNothing`, nothing will be done." +#: en/git-format-patch.txt:411 +msgid "" +"Non-empty context lines that have one extra whitespace at the beginning." msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:158 -#, no-wrap -msgid "trailer.<token>.key" +#. type: Plain text +#: en/git-format-patch.txt:413 +msgid "One way to test if your MUA is set up correctly is:" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:164 +#: en/git-format-patch.txt:417 msgid "" -"This `key` will be used instead of <token> in the trailer. At the end of " -"this key, a separator can appear and then some space characters. By default " -"the only valid separator is ':', but this can be changed using the " -"`trailer.separators` config variable." +"Send the patch to yourself, exactly the way you would, except with To: and " +"Cc: lines that do not contain the list and maintainer address." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:167 +#: en/git-format-patch.txt:420 msgid "" -"If there is a separator, then the key will be used instead of both the " -"<token> and the default separator when adding the trailer." +"Save that patch to a file in UNIX mailbox format. Call it a.patch, say." msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:168 -#, no-wrap -msgid "trailer.<token>.where" +#. type: Plain text +#: en/git-format-patch.txt:422 +msgid "Apply it:" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:172 +#: en/git-format-patch.txt:427 +#, no-wrap msgid "" -"This option takes the same values as the 'trailer.where' configuration " -"variable and it overrides what is specified by that option for trailers with " -"the specified <token>." +"$ git fetch <project> master:test-apply\n" +"$ git checkout test-apply\n" +"$ git reset --hard\n" +"$ git am a.patch\n" msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:173 -#, no-wrap -msgid "trailer.<token>.ifexist" +#. type: Plain text +#: en/git-format-patch.txt:429 +msgid "If it does not apply correctly, there can be various reasons." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:177 +#: en/git-format-patch.txt:434 msgid "" -"This option takes the same values as the 'trailer.ifexist' configuration " -"variable and it overrides what is specified by that option for trailers with " -"the specified <token>." +"The patch itself does not apply cleanly. That is _bad_ but does not have " +"much to do with your MUA. You might want to rebase the patch with linkgit:" +"git-rebase[1] before regenerating it in this case." msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:178 -#, no-wrap -msgid "trailer.<token>.ifmissing" +#. type: Plain text +#: en/git-format-patch.txt:439 +msgid "" +"The MUA corrupted your patch; \"am\" would complain that the patch does not " +"apply. Look in the .git/rebase-apply/ subdirectory and see what 'patch' " +"file contains and check for the common corruption patterns mentioned above." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:182 +#: en/git-format-patch.txt:447 msgid "" -"This option takes the same values as the 'trailer.ifmissing' configuration " -"variable and it overrides what is specified by that option for trailers with " -"the specified <token>." +"While at it, check the 'info' and 'final-commit' files as well. If what is " +"in 'final-commit' is not exactly what you would want to see in the commit " +"log message, it is very likely that the receiver would end up hand editing " +"the log message when applying your patch. Things like \"Hi, this is my " +"first patch.\\n\" in the patch e-mail should come after the three-dash line " +"that signals the end of the commit message." msgstr "" -#. type: Labeled list -#: en/git-interpret-trailers.txt:183 +#. type: Title - +#: en/git-format-patch.txt:449 #, no-wrap -msgid "trailer.<token>.command" +msgid "MUA-SPECIFIC HINTS" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:187 +#: en/git-format-patch.txt:452 msgid "" -"This option can be used to specify a shell command that will be called to " -"automatically add or modify a trailer with the specified <token>." +"Here are some hints on how to successfully submit patches inline using " +"various mailers." msgstr "" -#. type: Plain text -#: en/git-interpret-trailers.txt:193 -msgid "" -"When this option is specified, the behavior is as if a special " -"'<token>=<value>' argument were added at the beginning of the command line, " -"where <value> is taken to be the standard output of the specified command " -"with any leading and trailing whitespace trimmed off." +#. type: Title ~ +#: en/git-format-patch.txt:454 +#, no-wrap +msgid "GMail" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:197 +#: en/git-format-patch.txt:460 msgid "" -"If the command contains the `$ARG` string, this string will be replaced with " -"the <value> part of an existing trailer with the same <token>, if any, " -"before the command is launched." +"GMail does not have any way to turn off line wrapping in the web interface, " +"so it will mangle any emails that you send. You can however use \"git send-" +"email\" and send your patches through the GMail SMTP server, or use any IMAP " +"email client to connect to the google IMAP server and forward the emails " +"through that." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:203 +#: en/git-format-patch.txt:463 msgid "" -"If some '<token>=<value>' arguments are also passed on the command line, " -"when a 'trailer.<token>.command' is configured, the command will also be " -"executed for each of these arguments. And the <value> part of these " -"arguments, if any, will be used to replace the `$ARG` string in the command." +"For hints on using 'git send-email' to send your patches through the GMail " +"SMTP server, see the EXAMPLE section of linkgit:git-send-email[1]." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:209 +#: en/git-format-patch.txt:466 msgid "" -"Configure a 'sign' trailer with a 'Signed-off-by' key, and then add two of " -"these trailers to a message:" +"For hints on submission using the IMAP interface, see the EXAMPLE section of " +"linkgit:git-imap-send[1]." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:214 +#. type: Title ~ +#: en/git-format-patch.txt:468 #, no-wrap -msgid "" -"$ git config trailer.sign.key \"Signed-off-by\"\n" -"$ cat msg.txt\n" -"subject\n" +msgid "Thunderbird" msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:218 -#, no-wrap +#. type: Plain text +#: en/git-format-patch.txt:472 msgid "" -"message\n" -"$ cat msg.txt | git interpret-trailers --trailer 'sign: Alice " -"<alice@example.com>' --trailer 'sign: Bob <bob@example.com>'\n" -"subject\n" +"By default, Thunderbird will both wrap emails as well as flag them as being " +"'format=flowed', both of which will make the resulting email unusable by Git." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:220 en/git-interpret-trailers.txt:232 en/git-interpret-trailers.txt:239 en/git-interpret-trailers.txt:303 -#, no-wrap -msgid "message\n" +#. type: Plain text +#: en/git-format-patch.txt:476 +msgid "" +"There are three different approaches: use an add-on to turn off line wraps, " +"configure Thunderbird to not mangle patches, or use an external editor to " +"keep Thunderbird from mangling the patches." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:223 +#. type: Title ^ +#: en/git-format-patch.txt:478 #, no-wrap -msgid "" -"Signed-off-by: Alice <alice@example.com>\n" -"Signed-off-by: Bob <bob@example.com>\n" +msgid "Approach #1 (add-on)" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:226 -msgid "Use the `--in-place` option to edit a message file in place:" +#: en/git-format-patch.txt:486 +msgid "" +"Install the Toggle Word Wrap add-on that is available from https://addons." +"mozilla.org/thunderbird/addon/toggle-word-wrap/ It adds a menu entry " +"\"Enable Word Wrap\" in the composer's \"Options\" menu that you can tick " +"off. Now you can compose the message as you otherwise do (cut + paste, 'git " +"format-patch' | 'git imap-send', etc), but you have to insert line breaks " +"manually in any text that you type." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:230 +#. type: Title ^ +#: en/git-format-patch.txt:488 #, no-wrap -msgid "" -"$ cat msg.txt\n" -"subject\n" +msgid "Approach #2 (configuration)" msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:237 -#, no-wrap -msgid "" -"Signed-off-by: Bob <bob@example.com>\n" -"$ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' " -"--in-place msg.txt\n" -"$ cat msg.txt\n" -"subject\n" +#. type: Plain text +#: en/git-format-patch.txt:490 +msgid "Three steps:" msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:242 -#, no-wrap +#. type: Plain text +#: en/git-format-patch.txt:494 msgid "" -"Signed-off-by: Bob <bob@example.com>\n" -"Acked-by: Alice <alice@example.com>\n" +"Configure your mail server composition as plain text: Edit...Account " +"Settings...Composition & Addressing, uncheck \"Compose Messages in HTML\"." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:246 -msgid "" -"Extract the last commit as a patch, and add a 'Cc' and a 'Reviewed-by' " -"trailer to it:" +#: en/git-format-patch.txt:496 +msgid "Configure your general composition window to not wrap." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:251 -#, no-wrap +#. type: Plain text +#: en/git-format-patch.txt:499 msgid "" -"$ git format-patch -1\n" -"0001-foo.patch\n" -"$ git interpret-trailers --trailer 'Cc: Alice <alice@example.com>' --trailer " -"'Reviewed-by: Bob <bob@example.com>' 0001-foo.patch >0001-bar.patch\n" +"In Thunderbird 2: Edit..Preferences..Composition, wrap plain text messages " +"at 0" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:256 +#: en/git-format-patch.txt:505 msgid "" -"Configure a 'sign' trailer with a command to automatically add a " -"'Signed-off-by: ' with the author information only if there is no " -"'Signed-off-by: ' already, and show how it works:" +"In Thunderbird 3: Edit..Preferences..Advanced..Config Editor. Search for " +"\"mail.wrap_long_lines\". Toggle it to make sure it is set to `false`. " +"Also, search for \"mailnews.wraplength\" and set the value to 0." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:264 -#, no-wrap +#. type: Plain text +#: en/git-format-patch.txt:510 msgid "" -"$ git config trailer.sign.key \"Signed-off-by: \"\n" -"$ git config trailer.sign.ifmissing add\n" -"$ git config trailer.sign.ifexists doNothing\n" -"$ git config trailer.sign.command 'echo \"$(git config user.name) <$(git " -"config user.email)>\"'\n" -"$ git interpret-trailers <<EOF\n" -"> EOF\n" +"Disable the use of format=flowed: Edit..Preferences..Advanced..Config " +"Editor. Search for \"mailnews.send_plaintext_flowed\". Toggle it to make " +"sure it is set to `false`." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:269 -#, no-wrap +#. type: Plain text +#: en/git-format-patch.txt:514 msgid "" -"Signed-off-by: Bob <bob@example.com>\n" -"$ git interpret-trailers <<EOF\n" -"> Signed-off-by: Alice <alice@example.com>\n" -"> EOF\n" +"After that is done, you should be able to compose email as you otherwise " +"would (cut + paste, 'git format-patch' | 'git imap-send', etc), and the " +"patches will not be mangled." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:271 +#. type: Title ^ +#: en/git-format-patch.txt:516 #, no-wrap -msgid "Signed-off-by: Alice <alice@example.com>\n" +msgid "Approach #3 (external editor)" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:275 +#: en/git-format-patch.txt:521 msgid "" -"Configure a 'fix' trailer with a key that contains a '#' and no space after " -"this character, and show how it works:" +"The following Thunderbird extensions are needed: AboutConfig from http://" +"aboutconfig.mozdev.org/ and External Editor from http://globs.org/articles." +"php?lng=en&pg=8" msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:281 -#, no-wrap -msgid "" -"$ git config trailer.separators \":#\"\n" -"$ git config trailer.fix.key \"Fix #\"\n" -"$ echo \"subject\" | git interpret-trailers --trailer fix=42\n" -"subject\n" +#. type: Plain text +#: en/git-format-patch.txt:523 +msgid "Prepare the patch as a text file using your method of choice." msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:283 -#, no-wrap -msgid "Fix #42\n" +#. type: Plain text +#: en/git-format-patch.txt:528 +msgid "" +"Before opening a compose window, use Edit->Account Settings to uncheck the " +"\"Compose messages in HTML format\" setting in the \"Composition & Addressing" +"\" panel of the account to be used to send the patch." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:287 +#: en/git-format-patch.txt:532 msgid "" -"Configure a 'see' trailer with a command to show the subject of a commit " -"that is related, and show how it works:" +"In the main Thunderbird window, 'before' you open the compose window for the " +"patch, use Tools->about:config to set the following to the indicated values:" msgstr "" #. type: delimited block - -#: en/git-interpret-trailers.txt:301 +#: en/git-format-patch.txt:536 #, no-wrap msgid "" -"$ git config trailer.see.key \"See-also: \"\n" -"$ git config trailer.see.ifExists \"replace\"\n" -"$ git config trailer.see.ifMissing \"doNothing\"\n" -"$ git config trailer.see.command \"git log -1 --oneline --format=\\\"%h " -"(%s)\\\" --abbrev-commit --abbrev=14 \\$ARG\"\n" -"$ git interpret-trailers <<EOF\n" -"> subject\n" -"> \n" -"> message\n" -"> \n" -"> see: HEAD~2\n" -"> EOF\n" -"subject\n" +"\tmailnews.send_plaintext_flowed => false\n" +"\tmailnews.wraplength => 0\n" msgstr "" -#. type: delimited block - -#: en/git-interpret-trailers.txt:305 -#, no-wrap -msgid "See-also: fe3187489d69c4 (subject of related commit)\n" +#. type: Plain text +#: en/git-format-patch.txt:539 +msgid "Open a compose window and click the external editor icon." msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:312 +#: en/git-format-patch.txt:542 msgid "" -"Configure a commit template with some trailers with empty values (using sed " -"to show and keep the trailing spaces at the end of the trailers), then " -"configure a commit-msg hook that uses 'git interpret-trailers' to remove " -"trailers with empty values and to add a 'git-version' trailer:" +"In the external editor window, read in the patch file and exit the editor " +"normally." +msgstr "" + +#. type: Plain text +#: en/git-format-patch.txt:545 +msgid "" +"Side note: it may be possible to do step 2 with about:config and the " +"following settings but no one's tried yet." msgstr "" #. type: delimited block - -#: en/git-interpret-trailers.txt:331 +#: en/git-format-patch.txt:550 #, no-wrap msgid "" -"$ sed -e 's/ Z$/ /' >commit_template.txt <<EOF\n" -"> ***subject***\n" -"> \n" -"> ***message***\n" -"> \n" -"> Fixes: Z\n" -"> Cc: Z\n" -"> Reviewed-by: Z\n" -"> Signed-off-by: Z\n" -"> EOF\n" -"$ git config commit.template commit_template.txt\n" -"$ cat >.git/hooks/commit-msg <<EOF\n" -"> #!/bin/sh\n" -"> git interpret-trailers --trim-empty --trailer \"git-version: \\$(git " -"describe)\" \"\\$1\" > \"\\$1.new\"\n" -"> mv \"\\$1.new\" \"\\$1\"\n" -"> EOF\n" -"$ chmod +x .git/hooks/commit-msg\n" +"\tmail.html_compose => false\n" +"\tmail.identity.default.compose_html => false\n" +"\tmail.identity.id?.compose_html => false\n" msgstr "" #. type: Plain text -#: en/git-interpret-trailers.txt:336 -msgid "linkgit:git-commit[1], linkgit:git-format-patch[1], linkgit:git-config[1]" +#: en/git-format-patch.txt:555 +msgid "" +"There is a script in contrib/thunderbird-patch-inline which can help you " +"include patches with Thunderbird in an easy way. To use it, do the steps " +"above and then use the script as the external editor." msgstr "" -#. type: Title = -#: en/git-log.txt:2 +#. type: Title ~ +#: en/git-format-patch.txt:557 #, no-wrap -msgid "git-log(1)" +msgid "KMail" msgstr "" #. type: Plain text -#: en/git-log.txt:7 -msgid "git-log - Show commit logs" +#: en/git-format-patch.txt:559 +msgid "This should help you to submit patches inline using KMail." msgstr "" #. type: Plain text -#: en/git-log.txt:13 -#, no-wrap -msgid "'git log' [<options>] [<revision range>] [[\\--] <path>...]\n" +#: en/git-format-patch.txt:561 +msgid "Prepare the patch as a text file." msgstr "" #. type: Plain text -#: en/git-log.txt:17 -msgid "Shows the commit logs." +#: en/git-format-patch.txt:563 +msgid "Click on New Mail." msgstr "" #. type: Plain text -#: en/git-log.txt:22 +#: en/git-format-patch.txt:566 msgid "" -"The command takes options applicable to the `git rev-list` command to " -"control what is shown and how, and options applicable to the `git diff-*` " -"commands to control how the changes each commit introduces are shown." +"Go under \"Options\" in the Composer window and be sure that \"Word wrap\" " +"is not set." msgstr "" -#. type: Labeled list -#: en/git-log.txt:27 -#, no-wrap -msgid "--follow" +#. type: Plain text +#: en/git-format-patch.txt:568 +msgid "Use Message -> Insert file... and insert the patch." msgstr "" #. type: Plain text -#: en/git-log.txt:30 +#: en/git-format-patch.txt:571 msgid "" -"Continue listing the history of a file beyond renames (works only for a " -"single file)." +"Back in the compose window: add whatever other text you wish to the message, " +"complete the addressing and subject fields, and press send." msgstr "" -#. type: Labeled list -#: en/git-log.txt:31 +#. type: Title - +#: en/git-format-patch.txt:573 #, no-wrap -msgid "--no-decorate" +msgid "BASE TREE INFORMATION" msgstr "" -#. type: Labeled list -#: en/git-log.txt:32 -#, no-wrap -msgid "--decorate[=short|full|auto|no]" +#. type: Plain text +#: en/git-format-patch.txt:582 +msgid "" +"The base tree information block is used for maintainers or third party " +"testers to know the exact state the patch series applies to. It consists of " +"the 'base commit', which is a well-known commit that is part of the stable " +"part of the project history everybody else works off of, and zero or more " +"'prerequisite patches', which are well-known patches in flight that is not " +"yet part of the 'base commit' that need to be applied on top of 'base " +"commit' in topological order before the patches can be applied." msgstr "" #. type: Plain text -#: en/git-log.txt:40 +#: en/git-format-patch.txt:588 msgid "" -"Print out the ref names of any commits that are shown. If 'short' is " -"specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and " -"'refs/remotes/' will not be printed. If 'full' is specified, the full ref " -"name (including prefix) will be printed. If 'auto' is specified, then if the " -"output is going to a terminal, the ref names are shown as if 'short' were " -"given, otherwise no ref names are shown. The default option is 'short'." +"The 'base commit' is shown as \"base-commit: \" followed by the 40-hex of " +"the commit object name. A 'prerequisite patch' is shown as \"prerequisite-" +"patch-id: \" followed by the 40-hex 'patch id', which can be obtained by " +"passing the patch through the `git patch-id --stable` command." msgstr "" -#. type: Labeled list -#: en/git-log.txt:41 +#. type: Plain text +#: en/git-format-patch.txt:592 +msgid "" +"Imagine that on top of the public commit P, you applied well-known patches " +"X, Y and Z from somebody else, and then built your three-patch series A, B, " +"C, the history would be like:" +msgstr "" + +#. type: delimited block . +#: en/git-format-patch.txt:595 #, no-wrap -msgid "--source" +msgid "---P---X---Y---Z---A---B---C\n" msgstr "" #. type: Plain text -#: en/git-log.txt:44 +#: en/git-format-patch.txt:602 msgid "" -"Print out the ref name given on the command line by which each commit was " -"reached." +"With `git format-patch --base=P -3 C` (or variants thereof, e.g. with `--" +"cover-letter` or using `Z..C` instead of `-3 C` to specify the range), the " +"base tree information block is shown at the end of the first message the " +"command outputs (either the first patch, or the cover letter), like this:" msgstr "" -#. type: Labeled list -#: en/git-log.txt:45 +#. type: delimited block - +#: en/git-format-patch.txt:608 #, no-wrap -msgid "--use-mailmap" +msgid "" +"base-commit: P\n" +"prerequisite-patch-id: X\n" +"prerequisite-patch-id: Y\n" +"prerequisite-patch-id: Z\n" msgstr "" #. type: Plain text -#: en/git-log.txt:49 -msgid "" -"Use mailmap file to map author and committer names and email addresses to " -"canonical real names and email addresses. See linkgit:git-shortlog[1]." +#: en/git-format-patch.txt:611 +msgid "For non-linear topology, such as" msgstr "" -#. type: Labeled list -#: en/git-log.txt:50 +#. type: delimited block . +#: en/git-format-patch.txt:616 #, no-wrap -msgid "--full-diff" +msgid "" +"---P---X---A---M---C\n" +" \\ /\n" +" Y---Z---B\n" msgstr "" #. type: Plain text -#: en/git-log.txt:56 +#: en/git-format-patch.txt:621 msgid "" -"Without this flag, `git log -p <path>...` shows commits that touch the " -"specified paths, and diffs about the same specified paths. With this, the " -"full diff is shown for commits that touch the specified paths; this means " -"that \"<path>...\" limits only commits, and doesn't limit diff for those " -"commits." +"You can also use `git format-patch --base=P -3 C` to generate patches for A, " +"B and C, and the identifiers for P, X, Y, Z are appended at the end of the " +"first message." msgstr "" #. type: Plain text -#: en/git-log.txt:59 +#: en/git-format-patch.txt:627 msgid "" -"Note that this affects all diff-based output types, e.g. those produced by " -"`--stat`, etc." +"If set `--base=auto` in cmdline, it will track base commit automatically, " +"the base commit will be the merge base of tip commit of the remote-tracking " +"branch and revision-range specified in cmdline. For a local branch, you " +"need to track a remote branch by `git branch --set-upstream-to` before using " +"this option." msgstr "" -#. type: Labeled list -#: en/git-log.txt:60 +#. type: Plain text +#: en/git-format-patch.txt:633 +msgid "" +"Extract commits between revisions R1 and R2, and apply them on top of the " +"current branch using 'git am' to cherry-pick them:" +msgstr "" + +#. type: delimited block - +#: en/git-format-patch.txt:636 #, no-wrap -msgid "--log-size" +msgid "$ git format-patch -k --stdout R1..R2 | git am -3 -k\n" msgstr "" #. type: Plain text -#: en/git-log.txt:65 +#: en/git-format-patch.txt:640 msgid "" -"Include a line ``log size <number>'' in the output for each commit, where " -"<number> is the length of that commit's message in bytes. Intended to speed " -"up tools that read log messages from `git log` output by allowing them to " -"allocate space in advance." +"Extract all commits which are in the current branch but not in the origin " +"branch:" msgstr "" -#. type: Labeled list -#: en/git-log.txt:66 +#. type: delimited block - +#: en/git-format-patch.txt:643 #, no-wrap -msgid "-L <start>,<end>:<file>" +msgid "$ git format-patch origin\n" msgstr "" -#. type: Labeled list -#: en/git-log.txt:67 -#, no-wrap -msgid "-L :<funcname>:<file>" +#. type: Plain text +#: en/git-format-patch.txt:646 +msgid "For each commit a separate file is created in the current directory." msgstr "" #. type: Plain text -#: en/git-log.txt:74 +#: en/git-format-patch.txt:649 msgid "" -"Trace the evolution of the line range given by \"<start>,<end>\" (or the " -"function name regex <funcname>) within the <file>. You may not give any " -"pathspec limiters. This is currently limited to a walk starting from a " -"single revision, i.e., you may only give zero or one positive revision " -"arguments. You can specify this option more than once." +"Extract all commits that lead to 'origin' since the inception of the project:" msgstr "" -#. type: Labeled list -#: en/git-log.txt:77 en/git-shortlog.txt:63 +#. type: delimited block - +#: en/git-format-patch.txt:652 #, no-wrap -msgid "<revision range>" +msgid "$ git format-patch --root origin\n" msgstr "" #. type: Plain text -#: en/git-log.txt:85 -msgid "" -"Show only commits in the specified revision range. When no <revision range> " -"is specified, it defaults to `HEAD` (i.e. the whole history leading to the " -"current commit). `origin..HEAD` specifies all the commits reachable from " -"the current commit (i.e. `HEAD`), but not from `origin`. For a complete list " -"of ways to spell <revision range>, see the 'Specifying Ranges' section of " -"linkgit:gitrevisions[7]." +#: en/git-format-patch.txt:655 +msgid "The same as the previous one:" msgstr "" -#. type: Plain text -#: en/git-log.txt:91 +#. type: delimited block - +#: en/git-format-patch.txt:658 #, no-wrap -msgid "" -"[\\--] <path>...::\n" -"\tShow only commits that are enough to explain how the files\n" -"\tthat match the specified paths came to be. See 'History\n" -"\tSimplification' below for details and other simplification\n" -"\tmodes.\n" +msgid "$ git format-patch -M -B origin\n" msgstr "" #. type: Plain text -#: en/git-log.txt:94 +#: en/git-format-patch.txt:665 msgid "" -"Paths may need to be prefixed with ``\\-- '' to separate them from options " -"or the revision range, when confusion arises." +"Additionally, it detects and handles renames and complete rewrites " +"intelligently to produce a renaming patch. A renaming patch reduces the " +"amount of text output, and generally makes it easier to review. Note that " +"non-Git \"patch\" programs won't understand renaming patches, so use it only " +"when you know the recipient uses Git to apply your patch." msgstr "" -#. type: Title - -#: en/git-log.txt:100 en/git-show.txt:49 -#, no-wrap -msgid "COMMON DIFF OPTIONS" +#. type: Plain text +#: en/git-format-patch.txt:668 +msgid "" +"Extract three topmost commits from the current branch and format them as e-" +"mailable patches:" msgstr "" -#. type: Labeled list -#: en/git-log.txt:109 +#. type: delimited block - +#: en/git-format-patch.txt:671 #, no-wrap -msgid "`git log --no-merges`" +msgid "$ git format-patch -3\n" msgstr "" #. type: Plain text -#: en/git-log.txt:112 -msgid "Show the whole commit history, but skip any merges" +#: en/git-format-patch.txt:676 +msgid "linkgit:git-am[1], linkgit:git-send-email[1]" msgstr "" -#. type: Labeled list -#: en/git-log.txt:113 +#. type: Title = +#: en/git-fsck-objects.txt:2 #, no-wrap -msgid "`git log v2.6.12.. include/scsi drivers/scsi`" +msgid "git-fsck-objects(1)" msgstr "" #. type: Plain text -#: en/git-log.txt:117 +#: en/git-fsck-objects.txt:7 msgid "" -"Show all commits since version 'v2.6.12' that changed any file in the " -"`include/scsi` or `drivers/scsi` subdirectories" +"git-fsck-objects - Verifies the connectivity and validity of the objects in " +"the database" msgstr "" -#. type: Labeled list -#: en/git-log.txt:118 +#. type: Plain text +#: en/git-fsck-objects.txt:13 #, no-wrap -msgid "`git log --since=\"2 weeks ago\" -- gitk`" +msgid "'git fsck-objects' ...\n" msgstr "" #. type: Plain text -#: en/git-log.txt:123 +#: en/git-fsck-objects.txt:19 msgid "" -"Show the changes during the last two weeks to the file 'gitk'. The ``--'' " -"is necessary to avoid confusion with the *branch* named 'gitk'" +"This is a synonym for linkgit:git-fsck[1]. Please refer to the " +"documentation of that command." msgstr "" -#. type: Labeled list -#: en/git-log.txt:124 +#. type: Title = +#: en/git-fsck.txt:2 #, no-wrap -msgid "`git log --name-status release..test`" +msgid "git-fsck(1)" msgstr "" #. type: Plain text -#: en/git-log.txt:129 +#: en/git-fsck.txt:7 msgid "" -"Show the commits that are in the \"test\" branch but not yet in the " -"\"release\" branch, along with the list of paths each commit modifies." -msgstr "" - -#. type: Labeled list -#: en/git-log.txt:130 -#, no-wrap -msgid "`git log --follow builtin/rev-list.c`" +"git-fsck - Verifies the connectivity and validity of the objects in the " +"database" msgstr "" #. type: Plain text -#: en/git-log.txt:135 +#: en/git-fsck.txt:16 +#, no-wrap msgid "" -"Shows the commits that changed `builtin/rev-list.c`, including those commits " -"that occurred before the file was given its present name." +"'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n" +"\t [--[no-]full] [--strict] [--verbose] [--lost-found]\n" +"\t [--[no-]dangling] [--[no-]progress] [--connectivity-only]\n" +"\t [--[no-]name-objects] [<object>*]\n" msgstr "" -#. type: Labeled list -#: en/git-log.txt:136 -#, no-wrap -msgid "`git log --branches --not --remotes=origin`" +#. type: Plain text +#: en/git-fsck.txt:25 +msgid "An object to treat as the head of an unreachability trace." msgstr "" #. type: Plain text -#: en/git-log.txt:141 +#: en/git-fsck.txt:29 msgid "" -"Shows all commits that are in any of local branches but not in any of " -"remote-tracking branches for 'origin' (what you have that origin doesn't)." +"If no objects are given, 'git fsck' defaults to using the index file, all " +"SHA-1 references in `refs` namespace, and all reflogs (unless --no-reflogs " +"is given) as heads." msgstr "" #. type: Labeled list -#: en/git-log.txt:142 +#: en/git-fsck.txt:30 #, no-wrap -msgid "`git log master --not --remotes=*/master`" +msgid "--unreachable" msgstr "" #. type: Plain text -#: en/git-log.txt:146 +#: en/git-fsck.txt:33 msgid "" -"Shows all commits that are in local master but not in any remote repository " -"master branches." +"Print out objects that exist but that aren't reachable from any of the " +"reference nodes." msgstr "" #. type: Labeled list -#: en/git-log.txt:147 +#: en/git-fsck.txt:34 #, no-wrap -msgid "`git log -p -m --first-parent`" +msgid "--[no-]dangling" msgstr "" #. type: Plain text -#: en/git-log.txt:154 +#: en/git-fsck.txt:37 msgid "" -"Shows the history including change diffs, but only from the ``main branch'' " -"perspective, skipping commits that come from merged branches, and showing " -"full diffs of changes introduced by the merges. This makes sense only when " -"following a strict policy of merging all topic branches when staying on a " -"single integration branch." +"Print objects that exist but that are never 'directly' used (default). `--" +"no-dangling` can be used to omit this information from the output." msgstr "" -#. type: Labeled list -#: en/git-log.txt:155 -#, no-wrap -msgid "`git log -L '/int main/',/^}/:main.c`" +#. type: Plain text +#: en/git-fsck.txt:40 +msgid "Report root nodes." msgstr "" #. type: Plain text -#: en/git-log.txt:159 -msgid "Shows how the function `main()` in the file `main.c` evolved over time." +#: en/git-fsck.txt:43 +msgid "Report tags." msgstr "" #. type: Labeled list -#: en/git-log.txt:160 +#: en/git-fsck.txt:44 #, no-wrap -msgid "`git log -3`" -msgstr "" - -#. type: Plain text -#: en/git-log.txt:163 -msgid "Limits the number of commits to show to 3." +msgid "--cache" msgstr "" #. type: Plain text -#: en/git-log.txt:174 +#: en/git-fsck.txt:47 msgid "" -"See linkgit:git-config[1] for core variables and linkgit:git-diff[1] for " -"settings related to diff generation." +"Consider any object recorded in the index also as a head node for an " +"unreachability trace." msgstr "" #. type: Labeled list -#: en/git-log.txt:175 en/config.txt:1383 +#: en/git-fsck.txt:48 #, no-wrap -msgid "format.pretty" +msgid "--no-reflogs" msgstr "" #. type: Plain text -#: en/git-log.txt:178 +#: en/git-fsck.txt:53 msgid "" -"Default for the `--format` option. (See 'Pretty Formats' above.) Defaults " -"to `medium`." +"Do not consider commits that are referenced only by an entry in a reflog to " +"be reachable. This option is meant only to search for commits that used to " +"be in a ref, but now aren't, but are still in that corresponding reflog." msgstr "" #. type: Labeled list -#: en/git-log.txt:179 en/config.txt:2053 +#: en/git-fsck.txt:54 #, no-wrap -msgid "i18n.logOutputEncoding" +msgid "--full" msgstr "" #. type: Plain text -#: en/git-log.txt:183 +#: en/git-fsck.txt:63 msgid "" -"Encoding to use when displaying logs. (See 'Discussion' above.) Defaults " -"to the value of `i18n.commitEncoding` if set, and UTF-8 otherwise." +"Check not just objects in GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), but also " +"the ones found in alternate object pools listed in " +"GIT_ALTERNATE_OBJECT_DIRECTORIES or $GIT_DIR/objects/info/alternates, and in " +"packed Git archives found in $GIT_DIR/objects/pack and corresponding pack " +"subdirectories in alternate object pools. This is now default; you can turn " +"it off with --no-full." msgstr "" #. type: Labeled list -#: en/git-log.txt:184 en/config.txt:2112 +#: en/git-fsck.txt:64 #, no-wrap -msgid "log.date" +msgid "--connectivity-only" msgstr "" #. type: Plain text -#: en/git-log.txt:188 +#: en/git-fsck.txt:68 msgid "" -"Default format for human-readable dates. (Compare the `--date` option.) " -"Defaults to \"default\", which means to write dates like `Sat May 8 19:35:34 " -"2010 -0500`." +"Check only the connectivity of tags, commits and tree objects. By avoiding " +"to unpack blobs, this speeds up the operation, at the expense of missing " +"corrupt objects or other problematic issues." msgstr "" #. type: Labeled list -#: en/git-log.txt:189 en/config.txt:2127 +#: en/git-fsck.txt:69 en/git-index-pack.txt:74 en/git-unpack-objects.txt:44 #, no-wrap -msgid "log.follow" +msgid "--strict" msgstr "" #. type: Plain text -#: en/git-log.txt:194 en/config.txt:2132 +#: en/git-fsck.txt:76 msgid "" -"If `true`, `git log` will act as if the `--follow` option was used when a " -"single <path> is given. This has the same limitations as `--follow`, " -"i.e. it cannot be used to follow multiple files and does not work well on " -"non-linear history." -msgstr "" - -#. type: Labeled list -#: en/git-log.txt:195 en/config.txt:2137 -#, no-wrap -msgid "log.showRoot" +"Enable more strict checking, namely to catch a file mode recorded with g+w " +"bit set, which was created by older versions of Git. Existing repositories, " +"including the Linux kernel, Git itself, and sparse repository have old " +"objects that triggers this check, but it is recommended to check new " +"projects with this flag." msgstr "" #. type: Plain text -#: en/git-log.txt:200 -msgid "" -"If `false`, `git log` and related commands will not treat the initial commit " -"as a big creation event. Any root commits in `git log -p` output would be " -"shown without a diff attached. The default is `true`." +#: en/git-fsck.txt:79 +msgid "Be chatty." msgstr "" #. type: Labeled list -#: en/git-log.txt:201 +#: en/git-fsck.txt:80 #, no-wrap -msgid "log.showSignature" +msgid "--lost-found" msgstr "" #. type: Plain text -#: en/git-log.txt:204 +#: en/git-fsck.txt:85 msgid "" -"If `true`, `git log` and related commands will act as if the " -"`--show-signature` option was passed to them." -msgstr "" - -#. type: Labeled list -#: en/git-log.txt:205 -#, no-wrap -msgid "mailmap.*" -msgstr "" - -#. type: Plain text -#: en/git-log.txt:207 -msgid "See linkgit:git-shortlog[1]." +"Write dangling objects into .git/lost-found/commit/ or .git/lost-found/" +"other/, depending on type. If the object is a blob, the contents are " +"written into the file, rather than its object name." msgstr "" #. type: Labeled list -#: en/git-log.txt:208 en/git-notes.txt:333 en/config.txt:2251 +#: en/git-fsck.txt:86 #, no-wrap -msgid "notes.displayRef" -msgstr "" - -#. type: Plain text -#: en/git-log.txt:213 -msgid "" -"Which refs, in addition to the default set by `core.notesRef` or " -"`GIT_NOTES_REF`, to read notes from when showing commit messages with the " -"`log` family of commands. See linkgit:git-notes[1]." +msgid "--name-objects" msgstr "" #. type: Plain text -#: en/git-log.txt:217 +#: en/git-fsck.txt:91 msgid "" -"May be an unabbreviated ref name or a glob and may be specified multiple " -"times. A warning will be issued for refs that do not exist, but a glob that " -"does not match any refs is silently ignored." +"When displaying names of reachable objects, in addition to the SHA-1 also " +"display a name that describes *how* they are reachable, compatible with " +"linkgit:git-rev-parse[1], e.g. `HEAD@{1234567890}~25^2:src/`." msgstr "" #. type: Plain text -#: en/git-log.txt:221 +#: en/git-fsck.txt:98 msgid "" -"This setting can be disabled by the `--no-notes` option, overridden by the " -"`GIT_NOTES_DISPLAY_REF` environment variable, and overridden by the " -"`--notes=<ref>` option." -msgstr "" - -#. type: Title = -#: en/git-ls-files.txt:2 -#, no-wrap -msgid "git-ls-files(1)" +"Progress status is reported on the standard error stream by default when it " +"is attached to a terminal, unless --no-progress or --verbose is specified. --" +"progress forces progress status even if the standard error stream is not " +"directed to a terminal." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:7 +#: en/git-fsck.txt:108 msgid "" -"git-ls-files - Show information about files in the index and the working " -"tree" +"git-fsck tests SHA-1 and general object sanity, and it does full tracking of " +"the resulting reachability and everything else. It prints out any corruption " +"it finds (missing or bad objects), and if you use the `--unreachable` flag " +"it will also print out objects that exist but that aren't reachable from any " +"of the specified head nodes (or the default set, as mentioned above)." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:23 -#, no-wrap +#: en/git-fsck.txt:112 msgid "" -"'git ls-files' [-z] [-t] [-v]\n" -"\t\t(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*\n" -"\t\t(-[c|d|o|i|s|u|k|m])*\n" -"\t\t[--eol]\n" -"\t\t[-x <pattern>|--exclude=<pattern>]\n" -"\t\t[-X <file>|--exclude-from=<file>]\n" -"\t\t[--exclude-per-directory=<file>]\n" -"\t\t[--exclude-standard]\n" -"\t\t[--error-unmatch] [--with-tree=<tree-ish>]\n" -"\t\t[--full-name] [--recurse-submodules]\n" -"\t\t[--abbrev] [--] [<file>...]\n" +"Any corrupt objects you will have to find in backups or other archives (i." +"e., you can just remove them and do an 'rsync' with some other site in the " +"hopes that somebody else has the object you have corrupted)." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:29 +#: en/git-fsck.txt:115 msgid "" -"This merges the file listing in the directory cache index with the actual " -"working directory list, and shows different combinations of the two." +"If core.commitGraph is true, the commit-graph file will also be inspected " +"using 'git commit-graph verify'. See linkgit:git-commit-graph[1]." msgstr "" -#. type: Plain text -#: en/git-ls-files.txt:32 -msgid "One or more of the options below may be used to determine the files shown:" -msgstr "" - -#. type: Plain text -#: en/git-ls-files.txt:38 -msgid "Show cached files in the output (default)" +#. type: Title - +#: en/git-fsck.txt:117 +#, no-wrap +msgid "Extracted Diagnostics" msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:40 +#: en/git-fsck.txt:119 #, no-wrap -msgid "--deleted" +msgid "expect dangling commits - potential heads - due to lack of head information" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:42 -msgid "Show deleted files in the output" +#: en/git-fsck.txt:123 +msgid "" +"You haven't specified any nodes as heads so it won't be possible to " +"differentiate between un-parented commits and root nodes." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:44 +#: en/git-fsck.txt:124 #, no-wrap -msgid "--modified" +msgid "missing sha1 directory '<dir>'" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:46 -msgid "Show modified files in the output" +#: en/git-fsck.txt:126 +msgid "The directory holding the sha1 objects is missing." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:48 +#: en/git-fsck.txt:127 #, no-wrap -msgid "--others" +msgid "unreachable <type> <object>" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:50 -msgid "Show other (i.e. untracked) files in the output" +#: en/git-fsck.txt:134 +msgid "" +"The <type> object <object>, isn't actually referred to directly or " +"indirectly in any of the trees or commits seen. This can mean that there's " +"another root node that you're not specifying or that the tree is corrupt. If " +"you haven't missed a root node then you might as well delete unreachable " +"nodes since they can't be used." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:52 en/git-status.txt:97 +#: en/git-fsck.txt:135 #, no-wrap -msgid "--ignored" +msgid "missing <type> <object>" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:57 +#: en/git-fsck.txt:138 msgid "" -"Show only ignored files in the output. When showing files in the index, " -"print only those matched by an exclude pattern. When showing \"other\" " -"files, show only those matched by an exclude pattern." +"The <type> object <object>, is referred to but isn't present in the database." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:59 +#: en/git-fsck.txt:139 #, no-wrap -msgid "--stage" +msgid "dangling <type> <object>" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:61 -msgid "Show staged contents' object name, mode bits and stage number in the output." +#: en/git-fsck.txt:142 +msgid "" +"The <type> object <object>, is present in the database but never 'directly' " +"used. A dangling commit could be a root node." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:62 +#: en/git-fsck.txt:143 #, no-wrap -msgid "--directory" +msgid "hash mismatch <object>" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:65 +#: en/git-fsck.txt:147 msgid "" -"If a whole directory is classified as \"other\", show just its name (with a " -"trailing slash) and not its whole contents." +"The database has an object whose hash doesn't match the object database " +"value. This indicates a serious data integrity problem." msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:66 +#. type: Title - +#: en/git-fsck.txt:149 en/git.txt:372 #, no-wrap -msgid "--no-empty-directory" -msgstr "" - -#. type: Plain text -#: en/git-ls-files.txt:68 -msgid "Do not list empty directories. Has no effect without --directory." +msgid "Environment Variables" msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:70 en/git-update-index.txt:65 +#: en/git-fsck.txt:151 #, no-wrap -msgid "--unmerged" +msgid "GIT_OBJECT_DIRECTORY" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:72 -msgid "Show unmerged files in the output (forces --stage)" +#: en/git-fsck.txt:153 +msgid "used to specify the object database root (usually $GIT_DIR/objects)" msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:74 +#: en/git-fsck.txt:154 #, no-wrap -msgid "--killed" -msgstr "" - -#. type: Plain text -#: en/git-ls-files.txt:78 -msgid "" -"Show files on the filesystem that need to be removed due to file/directory " -"conflicts for checkout-index to succeed." +msgid "GIT_INDEX_FILE" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:82 -msgid "" -"\\0 line termination on output and do not quote filenames. See OUTPUT below " -"for more information." +#: en/git-fsck.txt:156 +msgid "used to specify the index file of the index" msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:83 +#: en/git-fsck.txt:157 #, no-wrap -msgid "-x <pattern>" +msgid "GIT_ALTERNATE_OBJECT_DIRECTORIES" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:88 -msgid "" -"Skip untracked files matching pattern. Note that pattern is a shell " -"wildcard pattern. See EXCLUDE PATTERNS below for more information." +#: en/git-fsck.txt:159 +msgid "used to specify additional object database roots (usually unset)" msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:89 +#. type: Title = +#: en/git-gc.txt:2 #, no-wrap -msgid "-X <file>" +msgid "git-gc(1)" msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:90 -#, no-wrap -msgid "--exclude-from=<file>" +#. type: Plain text +#: en/git-gc.txt:7 +msgid "git-gc - Cleanup unnecessary files and optimize the local repository" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:92 -msgid "Read exclude patterns from <file>; 1 per line." +#: en/git-gc.txt:13 +#, no-wrap +msgid "'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] [--force] [--keep-largest-pack]\n" msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:93 -#, no-wrap -msgid "--exclude-per-directory=<file>" +#. type: Plain text +#: en/git-gc.txt:22 +msgid "" +"Runs a number of housekeeping tasks within the current repository, such as " +"compressing file revisions (to reduce disk space and increase performance), " +"removing unreachable objects which may have been created from prior " +"invocations of 'git add', packing refs, pruning reflog, rerere metadata or " +"stale working trees. May also update ancillary indexes such as the commit-" +"graph." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:96 +#: en/git-gc.txt:26 msgid "" -"Read additional exclude patterns that apply only to the directory and its " -"subdirectories in <file>." +"Users are encouraged to run this task on a regular basis within each " +"repository to maintain good disk space utilization and good operating " +"performance." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:100 +#: en/git-gc.txt:30 msgid "" -"Add the standard Git exclusions: .git/info/exclude, .gitignore in each " -"directory, and the user's global exclusion file." +"Some git commands may automatically run 'git gc'; see the `--auto` flag " +"below for details. If you know what you're doing and all you want is to " +"disable this behavior permanently without further considerations, just do:" +msgstr "" + +#. type: delimited block - +#: en/git-gc.txt:33 +#, no-wrap +msgid "$ git config --global gc.auto 0\n" msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:101 +#: en/git-gc.txt:38 en/git-read-tree.txt:71 #, no-wrap -msgid "--error-unmatch" +msgid "--aggressive" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:104 +#: en/git-gc.txt:45 msgid "" -"If any <file> does not appear in the index, treat this as an error (return " -"1)." +"Usually 'git gc' runs very quickly while providing good disk space " +"utilization and performance. This option will cause 'git gc' to more " +"aggressively optimize the repository at the expense of taking much more " +"time. The effects of this optimization are persistent, so this option only " +"needs to be used occasionally; every few hundred changesets or so." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:105 +#: en/git-gc.txt:46 #, no-wrap -msgid "--with-tree=<tree-ish>" +msgid "--auto" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:111 +#: en/git-gc.txt:53 msgid "" -"When using --error-unmatch to expand the user supplied <file> (i.e. path " -"pattern) arguments to paths, pretend that paths which were removed in the " -"index since the named <tree-ish> are still present. Using this option with " -"`-s` or `-u` options does not make any sense." +"With this option, 'git gc' checks whether any housekeeping is required; if " +"not, it exits without performing any work. Some git commands run `git gc --" +"auto` after performing operations that could create many loose objects. " +"Housekeeping is required if there are too many loose objects or too many " +"packs in the repository." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:119 +#: en/git-gc.txt:58 msgid "" -"This feature is semi-deprecated. For scripting purpose, " -"linkgit:git-status[1] `--porcelain` and linkgit:git-diff-files[1] " -"`--name-status` are almost always superior alternatives, and users should " -"look at linkgit:git-status[1] `--short` or linkgit:git-diff[1] " -"`--name-status` for more user-friendly alternatives." +"If the number of loose objects exceeds the value of the `gc.auto` " +"configuration variable, then all loose objects are combined into a single " +"pack using `git repack -d -l`. Setting the value of `gc.auto` to 0 disables " +"automatic packing of loose objects." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:122 +#: en/git-gc.txt:70 msgid "" -"This option identifies the file status with the following tags (followed by " -"a space) at the start of each line:" -msgstr "" - -#. type: Labeled list -#: en/git-ls-files.txt:123 -#, no-wrap -msgid "H" +"If the number of packs exceeds the value of `gc.autoPackLimit`, then " +"existing packs (except those marked with a `.keep` file or over `gc." +"bigPackThreshold` limit) are consolidated into a single pack by using the `-" +"A` option of 'git repack'. If the amount of memory is estimated not enough " +"for `git repack` to run smoothly and `gc.bigPackThreshold` is not set, the " +"largest pack will also be excluded (this is the equivalent of running `git " +"gc` with `--keep-base-pack`). Setting `gc.autoPackLimit` to 0 disables " +"automatic consolidation of packs." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:124 -msgid "cached" +#: en/git-gc.txt:74 +msgid "" +"If houskeeping is required due to many loose objects or packs, all other " +"housekeeping tasks (e.g. rerere, working trees, reflog...) will be performed " +"as well." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:124 +#: en/git-gc.txt:76 #, no-wrap -msgid "S" +msgid "--prune=<date>" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:125 -msgid "skip-worktree" +#: en/git-gc.txt:83 +msgid "" +"Prune loose objects older than date (default is 2 weeks ago, overridable by " +"the config variable `gc.pruneExpire`). --prune=all prunes loose objects " +"regardless of their age and increases the risk of corruption if another " +"process is writing to the repository concurrently; see \"NOTES\" below. --" +"prune is on by default." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:125 +#: en/git-gc.txt:84 en/git-pack-refs.txt:57 #, no-wrap -msgid "M" +msgid "--no-prune" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:126 -msgid "unmerged" -msgstr "" - -#. type: Labeled list -#: en/git-ls-files.txt:126 -#, no-wrap -msgid "R" +#: en/git-gc.txt:86 +msgid "Do not prune any loose objects." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:127 -msgid "removed/deleted" -msgstr "" - -#. type: Labeled list -#: en/git-ls-files.txt:127 -#, no-wrap -msgid "C" +#: en/git-gc.txt:89 +msgid "Suppress all progress reports." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:128 -msgid "modified/changed" +#: en/git-gc.txt:93 +msgid "" +"Force `git gc` to run even if there may be another `git gc` instance running " +"on this repository." msgstr "" #. type: Labeled list -#: en/git-ls-files.txt:128 +#: en/git-gc.txt:94 #, no-wrap -msgid "K" +msgid "--keep-largest-pack" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:129 -msgid "to be killed" +#: en/git-gc.txt:98 +msgid "" +"All packs except the largest pack and those marked with a `.keep` files are " +"consolidated into a single pack. When this option is used, `gc." +"bigPackThreshold` is ignored." msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:129 -#, no-wrap -msgid "?" +#. type: Plain text +#: en/git-gc.txt:107 +msgid "" +"The optional configuration variable `gc.reflogExpire` can be set to indicate " +"how long historical entries within each branch's reflog should remain " +"available in this repository. The setting is expressed as a length of time, " +"for example '90 days' or '3 months'. It defaults to '90 days'." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:135 +#: en/git-gc.txt:116 msgid "" -"Similar to `-t`, but use lowercase letters for files that are marked as " -"'assume unchanged' (see linkgit:git-update-index[1])." +"The optional configuration variable `gc.reflogExpireUnreachable` can be set " +"to indicate how long historical reflog entries which are not part of the " +"current branch should remain available in this repository. These types of " +"entries are generally created as a result of using `git commit --amend` or " +"`git rebase` and are the commits prior to the amend or rebase occurring. " +"Since these changes are not part of the current project most users will want " +"to expire them sooner. This option defaults to '30 days'." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:145 +#: en/git-gc.txt:120 msgid "" -"Recursively calls ls-files on each submodule in the repository. Currently " -"there is only support for the --cached mode." +"The above two configuration variables can be given to a pattern. For " +"example, this sets non-default expiry values only to remote-tracking " +"branches:" msgstr "" -#. type: Labeled list -#: en/git-ls-files.txt:146 en/git-ls-tree.txt:63 en/git-show-ref.txt:65 en/diff-options.txt:324 +#. type: delimited block - +#: en/git-gc.txt:125 #, no-wrap -msgid "--abbrev[=<n>]" +msgid "" +"[gc \"refs/remotes/*\"]\n" +"\treflogExpire = never\n" +"\treflogExpireUnreachable = 3 days\n" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:150 en/git-ls-tree.txt:67 +#: en/git-gc.txt:130 msgid "" -"Instead of showing the full 40-byte hexadecimal object lines, show only a " -"partial prefix. Non default number of digits can be specified with " -"--abbrev=<n>." +"The optional configuration variable `gc.rerereResolved` indicates how long " +"records of conflicted merge you resolved earlier are kept. This defaults to " +"60 days." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:156 +#: en/git-gc.txt:134 msgid "" -"After each line that describes a file, add more data about its cache entry. " -"This is intended to show as much information as possible for manual " -"inspection; the exact format may change at any time." -msgstr "" - -#. type: Labeled list -#: en/git-ls-files.txt:157 -#, no-wrap -msgid "--eol" +"The optional configuration variable `gc.rerereUnresolved` indicates how long " +"records of conflicted merge you have not resolved are kept. This defaults " +"to 15 days." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:162 +#: en/git-gc.txt:139 msgid "" -"Show <eolinfo> and <eolattr> of files. <eolinfo> is the file content " -"identification used by Git when the \"text\" attribute is \"auto\" (or not " -"set and core.autocrlf is not false). <eolinfo> is either \"-text\", " -"\"none\", \"lf\", \"crlf\", \"mixed\" or \"\"." +"The optional configuration variable `gc.packRefs` determines if 'git gc' " +"runs 'git pack-refs'. This can be set to \"notbare\" to enable it within all " +"non-bare repos or it can be set to a boolean value. This defaults to true." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:165 +#: en/git-gc.txt:143 msgid "" -"\"\" means the file is not a regular file, it is not in the index or not " -"accessible in the working tree." +"The optional configuration variable `gc.writeCommitGraph` determines if 'git " +"gc' should run 'git commit-graph write'. This can be set to a boolean value. " +"This defaults to false." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:169 +#: en/git-gc.txt:150 msgid "" -"<eolattr> is the attribute that is used when checking out or committing, it " -"is either \"\", \"-text\", \"text\", \"text=auto\", \"text eol=lf\", \"text " -"eol=crlf\". Since Git 2.10 \"text=auto eol=lf\" and \"text=auto eol=crlf\" " -"are supported." +"The optional configuration variable `gc.aggressiveWindow` controls how much " +"time is spent optimizing the delta compression of the objects in the " +"repository when the --aggressive option is specified. The larger the value, " +"the more time is spent optimizing the delta compression. See the " +"documentation for the --window option in linkgit:git-repack[1] for more " +"details. This defaults to 250." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:173 +#: en/git-gc.txt:153 msgid "" -"Both the <eolinfo> in the index (\"i/<eolinfo>\") and in the working tree " -"(\"w/<eolinfo>\") are shown for regular files, followed by the " -"(\"attr/<eolattr>\")." +"Similarly, the optional configuration variable `gc.aggressiveDepth` controls " +"--depth option in linkgit:git-repack[1]. This defaults to 50." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:180 +#: en/git-gc.txt:157 msgid "" -"Files to show. If no files are given all files which match the other " -"specified criteria are shown." -msgstr "" - -#. type: Title - -#: en/git-ls-files.txt:182 -#, no-wrap -msgid "Output" +"The optional configuration variable `gc.pruneExpire` controls how old the " +"unreferenced loose objects have to be before they are pruned. The default " +"is \"2 weeks ago\"." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:185 +#: en/git-gc.txt:161 msgid "" -"'git ls-files' just outputs the filenames unless `--stage` is specified in " -"which case it outputs:" +"Optional configuration variable `gc.worktreePruneExpire` controls how old a " +"stale working tree should be before `git worktree prune` deletes it. Default " +"is \"3 months ago\"." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:187 -#, no-wrap -msgid " [<tag> ]<mode> <object> <stage> <file>\n" +#: en/git-gc.txt:176 +msgid "" +"'git gc' tries very hard not to delete objects that are referenced anywhere " +"in your repository. In particular, it will keep not only objects referenced " +"by your current set of branches and tags, but also objects referenced by the " +"index, remote-tracking branches, refs saved by 'git filter-branch' in refs/" +"original/, or reflogs (which may reference commits in branches that were " +"later amended or rewound). If you are expecting some objects to be deleted " +"and they aren't, check all of those locations and decide whether it makes " +"sense in your case to remove those references." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:190 -#, no-wrap +#: en/git-gc.txt:183 msgid "" -"'git ls-files --eol' will show\n" -"\ti/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>\n" +"On the other hand, when 'git gc' runs concurrently with another process, " +"there is a risk of it deleting an object that the other process is using but " +"hasn't created a reference to. This may just cause the other process to fail " +"or may corrupt the repository if the other process later adds a reference to " +"the deleted object. Git has two features that significantly mitigate this " +"problem:" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:193 +#: en/git-gc.txt:186 msgid "" -"'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine " -"detailed information on unmerged paths." +"Any object with modification time newer than the `--prune` date is kept, " +"along with everything reachable from it." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:199 +#: en/git-gc.txt:190 msgid "" -"For an unmerged path, instead of recording a single mode/SHA-1 pair, the " -"index records up to three such pairs; one from tree O in stage 1, A in stage " -"2, and B in stage 3. This information can be used by the user (or the " -"porcelain) to see what should eventually be recorded at the path. (see " -"linkgit:git-read-tree[1] for more information on state)" +"Most operations that add an object to the database update the modification " +"time of the object if it is already present so that #1 applies." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:204 en/git-ls-tree.txt:101 en/diff-format.txt:85 +#: en/git-gc.txt:195 msgid "" -"Without the `-z` option, pathnames with \"unusual\" characters are quoted as " -"explained for the configuration variable `core.quotePath` (see " -"linkgit:git-config[1]). Using `-z` the filename is output verbatim and the " -"line is terminated by a NUL byte." -msgstr "" - -#. type: Title - -#: en/git-ls-files.txt:207 -#, no-wrap -msgid "Exclude Patterns" +"However, these features fall short of a complete solution, so users who run " +"commands concurrently have to live with some risk of corruption (which seems " +"to be low in practice) unless they turn off automatic garbage collection " +"with 'git config gc.auto 0'." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:213 +#: en/git-gc.txt:201 msgid "" -"'git ls-files' can use a list of \"exclude patterns\" when traversing the " -"directory tree and finding files to show when the flags --others or " -"--ignored are specified. linkgit:gitignore[5] specifies the format of " -"exclude patterns." +"The 'git gc --auto' command will run the 'pre-auto-gc' hook. See linkgit:" +"githooks[5] for more information." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:215 -msgid "These exclude patterns come from these places, in order:" +#: en/git-gc.txt:209 +msgid "" +"linkgit:git-prune[1] linkgit:git-reflog[1] linkgit:git-repack[1] linkgit:git-" +"rerere[1]" msgstr "" -#. type: Plain text -#: en/git-ls-files.txt:219 -msgid "" -"The command-line flag --exclude=<pattern> specifies a single pattern. " -"Patterns are ordered in the same order they appear in the command line." +#. type: Title = +#: en/git-get-tar-commit-id.txt:2 +#, no-wrap +msgid "git-get-tar-commit-id(1)" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:223 +#: en/git-get-tar-commit-id.txt:7 msgid "" -"The command-line flag --exclude-from=<file> specifies a file containing a " -"list of patterns. Patterns are ordered in the same order they appear in the " -"file." +"git-get-tar-commit-id - Extract commit ID from an archive created using git-" +"archive" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:229 -msgid "" -"The command-line flag --exclude-per-directory=<name> specifies a name of the " -"file in each directory 'git ls-files' examines, normally `.gitignore`. " -"Files in deeper directories take precedence. Patterns are ordered in the " -"same order they appear in the files." +#: en/git-get-tar-commit-id.txt:13 +#, no-wrap +msgid "'git get-tar-commit-id'\n" msgstr "" #. type: Plain text -#: en/git-ls-files.txt:235 +#: en/git-get-tar-commit-id.txt:22 msgid "" -"A pattern specified on the command line with --exclude or read from the file " -"specified with --exclude-from is relative to the top of the directory tree. " -"A pattern read from a file specified by --exclude-per-directory is relative " -"to the directory that the pattern file appears in." +"Read a tar archive created by 'git archive' from the standard input and " +"extract the commit ID stored in it. It reads only the first 1024 bytes of " +"input, thus its runtime is not influenced by the size of the tar archive " +"very much." msgstr "" #. type: Plain text -#: en/git-ls-files.txt:239 -msgid "linkgit:git-read-tree[1], linkgit:gitignore[5]" +#: en/git-get-tar-commit-id.txt:27 +msgid "" +"If no commit ID is found, 'git get-tar-commit-id' quietly exists with a " +"return code of 1. This can happen if the archive had not been created using " +"'git archive' or if the first parameter of 'git archive' had been a tree ID " +"instead of a commit ID or tag." msgstr "" #. type: Title = -#: en/git-ls-remote.txt:2 +#: en/git-grep.txt:2 #, no-wrap -msgid "git-ls-remote(1)" +msgid "git-grep(1)" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:7 -msgid "git-ls-remote - List references in a remote repository" +#: en/git-grep.txt:7 +msgid "git-grep - Print lines matching a pattern" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:15 +#: en/git-grep.txt:32 #, no-wrap msgid "" -"'git ls-remote' [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n" -"\t [-q | --quiet] [--exit-code] [--get-url]\n" -"\t [--symref] [<repository> [<refs>...]]\n" +"'git grep' [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp]\n" +"\t [-v | --invert-match] [-h|-H] [--full-name]\n" +"\t [-E | --extended-regexp] [-G | --basic-regexp]\n" +"\t [-P | --perl-regexp]\n" +"\t [-F | --fixed-strings] [-n | --line-number] [--column]\n" +"\t [-l | --files-with-matches] [-L | --files-without-match]\n" +"\t [(-O | --open-files-in-pager) [<pager>]]\n" +"\t [-z | --null]\n" +"\t [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]\n" +"\t [--max-depth <depth>] [--[no-]recursive]\n" +"\t [--color[=<when>] | --no-color]\n" +"\t [--break] [--heading] [-p | --show-function]\n" +"\t [-A <post-context>] [-B <pre-context>] [-C <context>]\n" +"\t [-W | --function-context]\n" +"\t [--threads <num>]\n" +"\t [-f <file>] [-e] <pattern>\n" +"\t [--and|--or|--not|(|)|-e <pattern>...]\n" +"\t [--recurse-submodules] [--parent-basename <basename>]\n" +"\t [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]\n" +"\t [--] [<pathspec>...]\n" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:20 +#: en/git-grep.txt:39 msgid "" -"Displays references available in a remote repository along with the " -"associated commit IDs." +"Look for specified patterns in the tracked files in the work tree, blobs " +"registered in the index file, or blobs in given tree objects. Patterns are " +"lists of one or more search expressions separated by newline characters. An " +"empty string as search expression matches all lines." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:25 en/git-show-ref.txt:41 +#: en/git-grep.txt:44 #, no-wrap -msgid "--heads" +msgid "grep.lineNumber" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:32 -msgid "" -"Limit to only refs/heads and refs/tags, respectively. These options are " -"_not_ mutually exclusive; when given both, references stored in refs/heads " -"and refs/tags are displayed." +#: en/git-grep.txt:46 +msgid "If set to true, enable `-n` option by default." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:33 +#: en/git-grep.txt:47 #, no-wrap -msgid "--refs" +msgid "grep.column" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:35 -msgid "Do not show peeled tags or pseudorefs like HEAD\tin the output." -msgstr "" - -#. type: Plain text -#: en/git-ls-remote.txt:39 -msgid "Do not print remote URL to stderr." +#: en/git-grep.txt:49 +msgid "If set to true, enable the `--column` option by default." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:40 +#: en/git-grep.txt:50 #, no-wrap -msgid "--upload-pack=<exec>" +msgid "grep.patternType" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:45 +#: en/git-grep.txt:55 msgid "" -"Specify the full path of 'git-upload-pack' on the remote host. This allows " -"listing references from repositories accessed via SSH and where the SSH " -"daemon does not use the PATH configured by the user." +"Set the default matching behavior. Using a value of 'basic', 'extended', " +"'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`, `--" +"fixed-strings`, or `--perl-regexp` option accordingly, while the value " +"'default' will return to the default matching behavior." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:46 en/diff-options.txt:552 +#: en/git-grep.txt:56 #, no-wrap -msgid "--exit-code" +msgid "grep.extendedRegexp" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:51 +#: en/git-grep.txt:60 msgid "" -"Exit with status \"2\" when no matching refs are found in the remote " -"repository. Usually the command exits with status \"0\" to indicate it " -"successfully talked with the remote repository, whether it found any " -"matching refs." +"If set to true, enable `--extended-regexp` option by default. This option is " +"ignored when the `grep.patternType` option is set to a value other than " +"'default'." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:52 +#: en/git-grep.txt:61 #, no-wrap -msgid "--get-url" +msgid "grep.threads" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:56 +#: en/git-grep.txt:64 msgid "" -"Expand the URL of the given remote repository taking into account any " -"\"url.<base>.insteadOf\" config setting (See linkgit:git-config[1]) and exit " -"without talking to the remote." +"Number of grep worker threads to use. If unset (or set to 0), 8 threads are " +"used by default (for now)." msgstr "" #. type: Labeled list -#: en/git-ls-remote.txt:57 +#: en/git-grep.txt:65 #, no-wrap -msgid "--symref" +msgid "grep.fullName" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:62 -msgid "" -"In addition to the object pointed by it, show the underlying ref pointed by " -"it when showing a symbolic ref. Currently, upload-pack only shows the " -"symref HEAD, so it will be the only one shown by ls-remote." +#: en/git-grep.txt:67 +msgid "If set to true, enable `--full-name` option by default." +msgstr "" + +#. type: Labeled list +#: en/git-grep.txt:68 +#, no-wrap +msgid "grep.fallbackToNoIndex" msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:67 +#: en/git-grep.txt:71 msgid "" -"The \"remote\" repository to query. This parameter can be either a URL or " -"the name of a remote (see the GIT URLS and REMOTES sections of " -"linkgit:git-fetch[1])." +"If set to true, fall back to git grep --no-index if git grep is executed " +"outside of a git repository. Defaults to false." msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:73 +#: en/git-grep.txt:78 msgid "" -"When unspecified, all references, after filtering done with --heads and " -"--tags, are shown. When <refs>... are specified, only references matching " -"the given patterns are displayed." +"Instead of searching tracked files in the working tree, search blobs " +"registered in the index file." msgstr "" #. type: Plain text -#: en/git-ls-remote.txt:92 -#, no-wrap -msgid "" -"\t$ git ls-remote --tags ./.\n" -"\td6602ec5194c87b0fc87103ca4d67251c76f233a\trefs/tags/v0.99\n" -"\tf25a265a342aed6041ab0cc484224d9ca54b6f41\trefs/tags/v0.99.1\n" -"\t7ceca275d047c90c0c7d5afb13ab97efdf51bd6e\trefs/tags/v0.99.3\n" -"\tc5db5456ae3b0873fc659c19fafdde22313cc441\trefs/tags/v0.99.2\n" -"\t0918385dbd9656cab0d1d81ba7453d49bbc16250\trefs/tags/junio-gpg-pub\n" -"\t$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc\n" -"\t5fe978a5381f1fbad26a80e682ddd2a401966740\trefs/heads/master\n" -"\tc781a84b5204fb294c9ccc79f8b3baceeb32c061\trefs/heads/pu\n" -"\t$ git remote add korg http://www.kernel.org/pub/scm/git/git.git\n" -"\t$ git ls-remote --tags korg v\\*\n" -"\td6602ec5194c87b0fc87103ca4d67251c76f233a\trefs/tags/v0.99\n" -"\tf25a265a342aed6041ab0cc484224d9ca54b6f41\trefs/tags/v0.99.1\n" -"\tc5db5456ae3b0873fc659c19fafdde22313cc441\trefs/tags/v0.99.2\n" -"\t7ceca275d047c90c0c7d5afb13ab97efdf51bd6e\trefs/tags/v0.99.3\n" +#: en/git-grep.txt:81 +msgid "Search files in the current directory that is not managed by Git." msgstr "" -#. type: Title = -#: en/git-ls-tree.txt:2 +#. type: Labeled list +#: en/git-grep.txt:82 #, no-wrap -msgid "git-ls-tree(1)" +msgid "--untracked" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:7 -msgid "git-ls-tree - List the contents of a tree object" +#: en/git-grep.txt:85 +msgid "" +"In addition to searching in the tracked files in the working tree, search " +"also in untracked files." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:15 +#. type: Labeled list +#: en/git-grep.txt:86 #, no-wrap -msgid "" -"'git ls-tree' [-d] [-r] [-t] [-l] [-z]\n" -"\t [--name-only] [--name-status] [--full-name] [--full-tree] " -"[--abbrev[=<n>]]\n" -"\t <tree-ish> [<path>...]\n" +msgid "--no-exclude-standard" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:20 +#: en/git-grep.txt:89 msgid "" -"Lists the contents of a given tree object, like what \"/bin/ls -a\" does in " -"the current working directory. Note that:" +"Also search in ignored files by not honoring the `.gitignore` mechanism. " +"Only useful with `--untracked`." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:25 -msgid "" -"the behaviour is slightly different from that of \"/bin/ls\" in that the " -"'<path>' denotes just a list of patterns to match, e.g. so specifying " -"directory name (without `-r`) will behave differently, and order of the " -"arguments does not matter." +#. type: Labeled list +#: en/git-grep.txt:90 en/git-ls-files.txt:98 +#, no-wrap +msgid "--exclude-standard" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:35 +#: en/git-grep.txt:94 msgid "" -"the behaviour is similar to that of \"/bin/ls\" in that the '<path>' is " -"taken as relative to the current working directory. E.g. when you are in a " -"directory 'sub' that has a directory 'dir', you can run 'git ls-tree -r HEAD " -"dir' to list the contents of the tree (that is 'sub/dir' in `HEAD`). You " -"don't want to give a tree that is not at the root level (e.g. `git ls-tree " -"-r HEAD:sub dir`) in this case, as that would result in asking for " -"'sub/sub/dir' in the `HEAD` commit. However, the current working directory " -"can be ignored by passing --full-tree option." +"Do not pay attention to ignored files specified via the\t`.gitignore` " +"mechanism. Only useful when searching files in the current directory with " +"`--no-index`." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:40 -msgid "Id of a tree-ish." +#. type: Labeled list +#: en/git-grep.txt:95 en/git-ls-files.txt:148 +#, no-wrap +msgid "--recurse-submodules" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:43 -msgid "Show only the named tree entry itself, not its children." +#: en/git-grep.txt:100 +msgid "" +"Recursively search in each submodule that has been initialized and checked " +"out in the repository. When used in combination with the <tree> option the " +"prefix of all submodule output will be the name of the parent project's " +"<tree> object." msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:46 -msgid "Recurse into sub-trees." +#: en/git-grep.txt:104 +msgid "Process binary files as if they were text." msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:50 -msgid "" -"Show tree entries even when going to recurse them. Has no effect if `-r` was " -"not passed. `-d` implies `-t`." +#: en/git-grep.txt:107 +msgid "Honor textconv filter settings." msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:54 -msgid "Show object size of blob (file) entries." +#: en/git-grep.txt:111 +msgid "Do not honor textconv filter settings. This is the default." msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:58 -msgid "" -"\\0 line termination on output and do not quote filenames. See OUTPUT " -"FORMAT below for more information." +#: en/git-grep.txt:116 +msgid "Ignore case differences between the patterns and the files." msgstr "" #. type: Labeled list -#: en/git-ls-tree.txt:60 en/diff-options.txt:202 +#: en/git-grep.txt:117 #, no-wrap -msgid "--name-status" -msgstr "" - -#. type: Plain text -#: en/git-ls-tree.txt:62 -msgid "List only filenames (instead of the \"long\" output), one per line." +msgid "-I" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:71 -msgid "" -"Instead of showing the path names relative to the current working directory, " -"show the full path names." +#: en/git-grep.txt:119 +msgid "Don't match the pattern in binary files." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:75 -msgid "" -"Do not limit the listing to the current working directory. Implies " -"--full-name." +#. type: Labeled list +#: en/git-grep.txt:120 +#, no-wrap +msgid "--max-depth <depth>" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:80 -#, no-wrap +#: en/git-grep.txt:126 msgid "" -"[<path>...]::\n" -"\tWhen paths are given, show them (note that this isn't really raw\n" -"\tpathnames, but rather a list of patterns to match). Otherwise\n" -"\timplicitly uses the root level of the tree as the sole path argument.\n" +"For each <pathspec> given on command line, descend at most <depth> levels of " +"directories. A value of -1 means no limit. This option is ignored if " +"<pathspec> contains active wildcards. In other words if \"a*\" matches a " +"directory named \"a*\", \"*\" is matched literally so --max-depth is still " +"effective." msgstr "" -#. type: Title - -#: en/git-ls-tree.txt:83 +#. type: Labeled list +#: en/git-grep.txt:128 en/git-submodule.txt:387 #, no-wrap -msgid "Output Format" +msgid "--recursive" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:85 -#, no-wrap -msgid " <mode> SP <type> SP <object> TAB <file>\n" +#: en/git-grep.txt:130 +msgid "Same as `--max-depth=-1`; this is the default." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:88 -msgid "" -"This output format is compatible with what `--index-info --stdin` of 'git " -"update-index' expects." +#. type: Labeled list +#: en/git-grep.txt:131 +#, no-wrap +msgid "--no-recursive" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:90 -msgid "When the `-l` option is used, format changes to" +#: en/git-grep.txt:133 +msgid "Same as `--max-depth=0`." msgstr "" -#. type: Plain text -#: en/git-ls-tree.txt:92 +#. type: Labeled list +#: en/git-grep.txt:135 #, no-wrap -msgid " <mode> SP <type> SP <object> SP <object size> TAB <file>\n" +msgid "--word-regexp" msgstr "" #. type: Plain text -#: en/git-ls-tree.txt:96 +#: en/git-grep.txt:139 msgid "" -"Object size identified by <object> is given in bytes, and right-justified " -"with minimum width of 7 characters. Object size is given only for blobs " -"(file) entries; for other entries `-` character is used in place of size." +"Match the pattern only at word boundary (either begin at the beginning of a " +"line, or preceded by a non-word character; end at the end of a line or " +"followed by a non-word character)." msgstr "" -#. type: Title = -#: en/git-mailinfo.txt:2 +#. type: Labeled list +#: en/git-grep.txt:141 #, no-wrap -msgid "git-mailinfo(1)" +msgid "--invert-match" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:7 -msgid "git-mailinfo - Extracts patch and authorship from a single e-mail message" +#: en/git-grep.txt:143 +msgid "Select non-matching lines." msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:13 -#, no-wrap +#: en/git-grep.txt:151 msgid "" -"'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] " -"<msg> <patch>\n" +"By default, the command shows the filename for each match. `-h` option is " +"used to suppress this output. `-H` is there for completeness and does not " +"do anything except it overrides `-h` given earlier on the command line." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:23 -msgid "" -"Reads a single e-mail message from the standard input, and writes the commit " -"log message in <msg> file, and the patches in <patch> file. The author " -"name, e-mail and e-mail subject are written out to the standard output to be " -"used by 'git am' to create a commit. It is usually not necessary to use " -"this command directly. See linkgit:git-am[1] instead." +#. type: Labeled list +#: en/git-grep.txt:152 en/git-ls-files.txt:142 en/git-ls-tree.txt:68 +#, no-wrap +msgid "--full-name" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:32 +#: en/git-grep.txt:157 en/git-ls-files.txt:147 msgid "" -"Usually the program removes email cruft from the Subject: header line to " -"extract the title line for the commit log message. This option prevents " -"this munging, and is most useful when used to read back 'git format-patch " -"-k' output." +"When run from a subdirectory, the command usually outputs paths relative to " +"the current directory. This option forces paths to be output relative to " +"the project top directory." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:34 -msgid "Specifically, the following are removed until none of them remain:" +#. type: Labeled list +#: en/git-grep.txt:158 en/rev-list-options.txt:82 +#, no-wrap +msgid "-E" msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:37 -msgid "Leading and trailing whitespace." +#. type: Labeled list +#: en/git-grep.txt:159 en/rev-list-options.txt:83 +#, no-wrap +msgid "--extended-regexp" msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:39 -msgid "Leading `Re:`, `re:`, and `:`." +#. type: Labeled list +#: en/git-grep.txt:160 +#, no-wrap +msgid "-G" msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:41 -msgid "Leading bracketed strings (between `[` and `]`, usually" +#. type: Labeled list +#: en/git-grep.txt:161 en/rev-list-options.txt:78 +#, no-wrap +msgid "--basic-regexp" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:42 -msgid "`[PATCH]`)." +#: en/git-grep.txt:164 +msgid "" +"Use POSIX extended/basic regexp for patterns. Default is to use basic " +"regexp." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:46 -msgid "" -"Finally, runs of whitespace are normalized to a single ASCII space " -"character." +#. type: Labeled list +#: en/git-grep.txt:166 en/rev-list-options.txt:93 +#, no-wrap +msgid "--perl-regexp" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:51 -msgid "" -"When -k is not in effect, all leading strings bracketed with '[' and ']' " -"pairs are stripped. This option limits the stripping to only the pairs " -"whose bracketed string contains the word \"PATCH\"." +#: en/git-grep.txt:168 +msgid "Use Perl-compatible regular expressions for patterns." msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:58 +#: en/git-grep.txt:172 en/rev-list-options.txt:100 msgid "" -"The commit log message, author name and author email are taken from the " -"e-mail, and after minimally decoding MIME transfer encoding, re-coded in the " -"charset specified by i18n.commitencoding (defaulting to UTF-8) by " -"transliterating them. This used to be optional but now it is the default." +"Support for these types of regular expressions is an optional compile-time " +"dependency. If Git wasn't compiled with support for them providing this " +"option will cause it to die." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:61 -msgid "" -"Note that the patch is always used as-is without charset conversion, even " -"with this flag." +#. type: Labeled list +#: en/git-grep.txt:173 en/git-repack.txt:74 en/rev-list-options.txt:87 +#, no-wrap +msgid "-F" msgstr "" #. type: Labeled list -#: en/git-mailinfo.txt:62 en/blame-options.txt:52 en/pretty-options.txt:35 +#: en/git-grep.txt:174 en/rev-list-options.txt:88 #, no-wrap -msgid "--encoding=<encoding>" +msgid "--fixed-strings" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:65 -msgid "" -"Similar to -u. But when re-coding, the charset specified here is used " -"instead of the one specified by i18n.commitencoding or UTF-8." +#: en/git-grep.txt:177 +msgid "Use fixed strings for patterns (don't interpret pattern as a regex)." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:68 -msgid "Disable all charset re-coding of the metadata." +#. type: Labeled list +#: en/git-grep.txt:179 +#, no-wrap +msgid "--line-number" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:73 -msgid "" -"Copy the Message-ID header at the end of the commit message. This is useful " -"in order to associate commits with mailing list discussions." +#: en/git-grep.txt:181 +msgid "Prefix the line number to matching lines." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:82 -msgid "" -"Remove everything in body before a scissors line. A line that mainly " -"consists of scissors (either \">8\" or \"8<\") and perforation (dash \"-\") " -"marks is called a scissors line, and is used to request the reader to cut " -"the message at that line. If such a line appears in the body of the message " -"before the patch, everything before it (including the scissors line itself) " -"is ignored when this option is used." +#. type: Labeled list +#: en/git-grep.txt:182 +#, no-wrap +msgid "--column" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:87 +#: en/git-grep.txt:185 msgid "" -"This is useful if you want to begin your message in a discussion thread with " -"comments and suggestions on the message you are responding to, and to " -"conclude it with a patch submission, separating the discussion and the " -"beginning of the proposed commit log message with a scissors line." +"Prefix the 1-indexed byte-offset of the first match from the start of the " +"matching line." msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:89 -msgid "" -"This can be enabled by default with the configuration option " -"mailinfo.scissors." +#. type: Labeled list +#: en/git-grep.txt:187 +#, no-wrap +msgid "--files-with-matches" msgstr "" -#. type: Plain text -#: en/git-mailinfo.txt:92 -msgid "Ignore scissors lines. Useful for overriding mailinfo.scissors settings." +#. type: Labeled list +#: en/git-grep.txt:189 +#, no-wrap +msgid "-L" msgstr "" #. type: Labeled list -#: en/git-mailinfo.txt:93 +#: en/git-grep.txt:190 #, no-wrap -msgid "<msg>" +msgid "--files-without-match" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:96 +#: en/git-grep.txt:195 msgid "" -"The commit log message extracted from e-mail, usually except the title line " -"which comes from e-mail Subject." +"Instead of showing every matched line, show only the names of files that " +"contain (or do not contain) matches. For better compatibility with 'git " +"diff', `--name-only` is a synonym for `--files-with-matches`." msgstr "" #. type: Labeled list -#: en/git-mailinfo.txt:97 en/git-patch-id.txt:59 +#: en/git-grep.txt:196 #, no-wrap -msgid "<patch>" +msgid "-O[<pager>]" +msgstr "" + +#. type: Labeled list +#: en/git-grep.txt:197 +#, no-wrap +msgid "--open-files-in-pager[=<pager>]" msgstr "" #. type: Plain text -#: en/git-mailinfo.txt:99 -msgid "The patch extracted from e-mail." +#: en/git-grep.txt:205 +msgid "" +"Open the matching files in the pager (not the output of 'grep'). If the " +"pager happens to be \"less\" or \"vi\", and the user specified only one " +"pattern, the first file is positioned at the first match automatically. The " +"`pager` argument is optional; if specified, it must be stuck to the option " +"without a space. If `pager` is unspecified, the default pager will be used " +"(see `core.pager` in linkgit:git-config[1])." msgstr "" -#. type: Title = -#: en/git-mailsplit.txt:2 +#. type: Plain text +#: en/git-grep.txt:210 +msgid "Output \\0 instead of the character that normally follows a file name." +msgstr "" + +#. type: Labeled list +#: en/git-grep.txt:212 #, no-wrap -msgid "git-mailsplit(1)" +msgid "--only-matching" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:7 -msgid "git-mailsplit - Simple UNIX mbox splitter program" +#: en/git-grep.txt:215 +msgid "" +"Print only the matched (non-empty) parts of a matching line, with each such " +"part on a separate output line." msgstr "" -#. type: Plain text -#: en/git-mailsplit.txt:13 +#. type: Labeled list +#: en/git-grep.txt:217 en/rev-list-options.txt:932 #, no-wrap +msgid "--count" +msgstr "" + +#. type: Plain text +#: en/git-grep.txt:220 msgid "" -"'git mailsplit' [-b] [-f<nn>] [-d<prec>] [--keep-cr] [--mboxrd]\n" -"\t\t-o<directory> [--] [(<mbox>|<Maildir>)...]\n" +"Instead of showing every matched line, show the number of lines that match." msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:18 +#: en/git-grep.txt:224 msgid "" -"Splits a mbox file or a Maildir into a list of files: \"0001\" \"0002\" .. " -"in the specified directory so you can process them further from there." +"Show colored matches. The value must be always (the default), never, or " +"auto." msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:21 +#: en/git-grep.txt:229 msgid "" -"Maildir splitting relies upon filenames being sorted to output patches in " -"the correct order." +"Turn off match highlighting, even when the configuration file gives the " +"default to color output. Same as `--color=never`." msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:24 +#: en/git-grep.txt:230 #, no-wrap -msgid "<mbox>" +msgid "--break" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:27 -msgid "Mbox file to split. If not given, the mbox is read from the standard input." +#: en/git-grep.txt:232 +msgid "Print an empty line between matches from different files." msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:28 +#: en/git-grep.txt:233 #, no-wrap -msgid "<Maildir>" +msgid "--heading" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:31 +#: en/git-grep.txt:236 msgid "" -"Root of the Maildir to split. This directory should contain the cur, tmp and " -"new subdirectories." +"Show the filename above the matches in that file instead of at the start of " +"each shown line." msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:32 +#: en/git-grep.txt:238 #, no-wrap -msgid "-o<directory>" -msgstr "" - -#. type: Plain text -#: en/git-mailsplit.txt:34 -msgid "Directory in which to place the individual messages." +msgid "--show-function" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:38 +#: en/git-grep.txt:244 msgid "" -"If any file doesn't begin with a From line, assume it is a single mail " -"message instead of signaling error." +"Show the preceding line that contains the function name of the match, unless " +"the matching line is a function name itself. The name is determined in the " +"same way as 'git diff' works out patch hunk headers (see 'Defining a custom " +"hunk-header' in linkgit:gitattributes[5])." msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:39 +#: en/git-grep.txt:245 #, no-wrap -msgid "-d<prec>" +msgid "-<num>" msgstr "" -#. type: Plain text -#: en/git-mailsplit.txt:43 -msgid "" -"Instead of the default 4 digits with leading zeros, different precision can " -"be specified for the generated filenames." +#. type: Labeled list +#: en/git-grep.txt:246 +#, no-wrap +msgid "-C <num>" msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:44 +#: en/git-grep.txt:247 #, no-wrap -msgid "-f<nn>" +msgid "--context <num>" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:47 +#: en/git-grep.txt:250 msgid "" -"Skip the first <nn> numbers, for example if -f3 is specified, start the " -"numbering with 0004." +"Show <num> leading and trailing lines, and place a line containing `--` " +"between contiguous groups of matches." msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:48 +#: en/git-grep.txt:251 #, no-wrap -msgid "--keep-cr" -msgstr "" - -#. type: Plain text -#: en/git-mailsplit.txt:50 -msgid "Do not remove `\\r` from lines ending with `\\r\\n`." +msgid "-A <num>" msgstr "" #. type: Labeled list -#: en/git-mailsplit.txt:51 +#: en/git-grep.txt:252 #, no-wrap -msgid "--mboxrd" +msgid "--after-context <num>" msgstr "" #. type: Plain text -#: en/git-mailsplit.txt:54 +#: en/git-grep.txt:255 msgid "" -"Input is of the \"mboxrd\" format and \"^>+From \" line escaping is " -"reversed." +"Show <num> trailing lines, and place a line containing `--` between " +"contiguous groups of matches." msgstr "" -#. type: Title = -#: en/git-merge-base.txt:2 +#. type: Labeled list +#: en/git-grep.txt:256 #, no-wrap -msgid "git-merge-base(1)" +msgid "-B <num>" msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:7 -msgid "git-merge-base - Find as good common ancestors as possible for a merge" +#. type: Labeled list +#: en/git-grep.txt:257 +#, no-wrap +msgid "--before-context <num>" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:17 -#, no-wrap +#: en/git-grep.txt:260 msgid "" -"'git merge-base' [-a|--all] <commit> <commit>...\n" -"'git merge-base' [-a|--all] --octopus <commit>...\n" -"'git merge-base' --is-ancestor <commit> <commit>\n" -"'git merge-base' --independent <commit>...\n" -"'git merge-base' --fork-point <ref> [<commit>]\n" +"Show <num> leading lines, and place a line containing `--` between " +"contiguous groups of matches." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:27 +#: en/git-grep.txt:267 msgid "" -"'git merge-base' finds best common ancestor(s) between two commits to use in " -"a three-way merge. One common ancestor is 'better' than another common " -"ancestor if the latter is an ancestor of the former. A common ancestor that " -"does not have any better common ancestor is a 'best common ancestor', i.e. a " -"'merge base'. Note that there can be more than one merge base for a pair of " -"commits." +"Show the surrounding text from the previous line containing a function name " +"up to the one before the next function name, effectively showing the whole " +"function in which the match was found." msgstr "" -#. type: Title - -#: en/git-merge-base.txt:29 +#. type: Labeled list +#: en/git-grep.txt:268 #, no-wrap -msgid "OPERATION MODES" +msgid "--threads <num>" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:33 +#: en/git-grep.txt:271 msgid "" -"As the most common special case, specifying only two commits on the command " -"line means computing the merge base between the given two commits." +"Number of grep worker threads to use. See `grep.threads` in 'CONFIGURATION' " +"for more information." +msgstr "" + +#. type: Labeled list +#: en/git-grep.txt:272 +#, no-wrap +msgid "-f <file>" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:38 -msgid "" -"More generally, among the two commits to compute the merge base from, one is " -"specified by the first commit argument on the command line; the other commit " -"is a (possibly hypothetical) commit that is a merge across all the remaining " -"commits on the command line." +#: en/git-grep.txt:274 +msgid "Read patterns from <file>, one per line." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:42 +#: en/git-grep.txt:280 msgid "" -"As a consequence, the 'merge base' is not necessarily contained in each of " -"the commit arguments if more than two commits are specified. This is " -"different from linkgit:git-show-branch[1] when used with the `--merge-base` " -"option." +"The next parameter is the pattern. This option has to be used for patterns " +"starting with `-` and should be used in scripts passing user input to grep. " +"Multiple patterns are combined by 'or'." msgstr "" #. type: Labeled list -#: en/git-merge-base.txt:43 +#: en/git-grep.txt:281 #, no-wrap -msgid "--octopus" -msgstr "" - -#. type: Plain text -#: en/git-merge-base.txt:47 -msgid "" -"Compute the best common ancestors of all supplied commits, in preparation " -"for an n-way merge. This mimics the behavior of 'git show-branch " -"--merge-base'." +msgid "--and" msgstr "" #. type: Labeled list -#: en/git-merge-base.txt:48 en/git-show-branch.txt:90 +#: en/git-grep.txt:282 #, no-wrap -msgid "--independent" +msgid "--or" msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:54 -msgid "" -"Instead of printing merge bases, print a minimal subset of the supplied " -"commits with the same ancestors. In other words, among the commits given, " -"list those which cannot be reached from any other. This mimics the behavior " -"of 'git show-branch --independent'." +#. type: Labeled list +#: en/git-grep.txt:283 en/git-rev-parse.txt:135 en/rev-list-options.txt:134 +#, no-wrap +msgid "--not" msgstr "" #. type: Labeled list -#: en/git-merge-base.txt:55 +#: en/git-grep.txt:284 #, no-wrap -msgid "--is-ancestor" +msgid "( ... )" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:59 +#: en/git-grep.txt:289 msgid "" -"Check if the first <commit> is an ancestor of the second <commit>, and exit " -"with status 0 if true, or with status 1 if not. Errors are signaled by a " -"non-zero status that is not 1." +"Specify how multiple patterns are combined using Boolean expressions. `--" +"or` is the default operator. `--and` has higher precedence than `--or`. `-" +"e` has to be used for all patterns." msgstr "" #. type: Labeled list -#: en/git-merge-base.txt:60 en/git-rebase.txt:346 +#: en/git-grep.txt:290 en/rev-list-options.txt:65 #, no-wrap -msgid "--fork-point" +msgid "--all-match" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:68 +#: en/git-grep.txt:294 msgid "" -"Find the point at which a branch (or any history that leads to <commit>) " -"forked from another branch (or any reference) <ref>. This does not just " -"look for the common ancestor of the two commits, but also takes into account " -"the reflog of <ref> to see if the history leading to <commit> forked from an " -"earlier incarnation of the branch <ref> (see discussion on this mode below)." -msgstr "" - -#. type: Plain text -#: en/git-merge-base.txt:74 -msgid "Output all merge bases for the commits, instead of just one." +"When giving multiple pattern expressions combined with `--or`, this flag is " +"specified to limit the match to files that have lines to match all of them." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:80 +#: en/git-grep.txt:299 msgid "" -"Given two commits 'A' and 'B', `git merge-base A B` will output a commit " -"which is reachable from both 'A' and 'B' through the parent relationship." +"Do not output matched lines; instead, exit with status 0 when there is a " +"match and with non-zero status when there isn't." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:82 -msgid "For example, with this topology:" +#. type: Labeled list +#: en/git-grep.txt:300 +#, no-wrap +msgid "<tree>..." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:86 -#, no-wrap +#: en/git-grep.txt:303 msgid "" -"\t o---o---o---B\n" -"\t /\n" -"\t---o---1---o---o---o---A\n" +"Instead of searching tracked files in the working tree, search blobs in the " +"given trees." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:88 -msgid "the merge base between 'A' and 'B' is '1'." +#: en/git-grep.txt:307 +msgid "" +"Signals the end of options; the rest of the parameters are <pathspec> " +"limiters." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:92 +#: en/git-grep.txt:311 msgid "" -"Given three commits 'A', 'B' and 'C', `git merge-base A B C` will compute " -"the merge base between 'A' and a hypothetical commit 'M', which is a merge " -"between 'B' and 'C'. For example, with this topology:" +"If given, limit the search to paths matching at least one pattern. Both " +"leading paths match and glob(7) patterns are supported." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:98 +#. type: Labeled list +#: en/git-grep.txt:318 #, no-wrap -msgid "" -"\t o---o---o---o---C\n" -"\t /\n" -"\t / o---o---o---B\n" -"\t / /\n" -"\t---2---1---o---o---o---A\n" +msgid "`git grep 'time_t' -- '*.[ch]'`" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:101 +#: en/git-grep.txt:321 msgid "" -"the result of `git merge-base A B C` is '1'. This is because the equivalent " -"topology with a merge commit 'M' between 'B' and 'C' is:" +"Looks for `time_t` in all tracked .c and .h files in the working directory " +"and its subdirectories." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:108 +#. type: Labeled list +#: en/git-grep.txt:322 #, no-wrap -msgid "" -"\t o---o---o---o---o\n" -"\t / \\\n" -"\t / o---o---o---o---M\n" -"\t / /\n" -"\t---2---1---o---o---o---A\n" +msgid "`git grep -e '#define' --and \\( -e MAX_PATH -e PATH_MAX \\)`" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:112 +#: en/git-grep.txt:325 msgid "" -"and the result of `git merge-base A M` is '1'. Commit '2' is also a common " -"ancestor between 'A' and 'M', but '1' is a better common ancestor, because " -"'2' is an ancestor of '1'. Hence, '2' is not a merge base." +"Looks for a line that has `#define` and either `MAX_PATH` or `PATH_MAX`." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:115 -msgid "" -"The result of `git merge-base --octopus A B C` is '2', because '2' is the " -"best common ancestor of all commits." +#. type: Labeled list +#: en/git-grep.txt:326 +#, no-wrap +msgid "`git grep --all-match -e NODE -e Unexpected`" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:118 +#: en/git-grep.txt:329 msgid "" -"When the history involves criss-cross merges, there can be more than one " -"'best' common ancestor for two commits. For example, with this topology:" +"Looks for a line that has `NODE` or `Unexpected` in files that have lines " +"that match both." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:124 +#. type: Labeled list +#: en/git-grep.txt:330 #, no-wrap -msgid "" -"\t---1---o---A\n" -"\t \\ /\n" -"\t X\n" -"\t / \\\n" -"\t---2---o---o---B\n" +msgid "`git grep solution -- :^Documentation`" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:128 -msgid "" -"both '1' and '2' are merge-bases of A and B. Neither one is better than the " -"other (both are 'best' merge bases). When the `--all` option is not given, " -"it is unspecified which best one is output." +#: en/git-grep.txt:332 +msgid "Looks for `solution`, excluding files in `Documentation`." +msgstr "" + +#. type: Title = +#: en/git-gui.txt:2 +#, no-wrap +msgid "git-gui(1)" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:133 -msgid "" -"A common idiom to check \"fast-forward-ness\" between two commits A and B is " -"(or at least used to be) to compute the merge base between A and B, and " -"check if it is the same as A, in which case, A is an ancestor of B. You " -"will see this idiom used often in older scripts." +#: en/git-gui.txt:7 +msgid "git-gui - A portable graphical interface to Git" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:139 +#: en/git-gui.txt:12 #, no-wrap -msgid "" -"\tA=$(git rev-parse --verify A)\n" -"\tif test \"$A\" = \"$(git merge-base A B)\"\n" -"\tthen\n" -"\t\t... A is an ancestor of B ...\n" -"\tfi\n" +msgid "'git gui' [<command>] [arguments]\n" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:141 -msgid "In modern git, you can say this in a more direct way:" +#: en/git-gui.txt:19 +msgid "" +"A Tcl/Tk based graphical user interface to Git. 'git gui' focuses on " +"allowing users to make changes to their repository by making new commits, " +"amending existing ones, creating branches, performing local merges, and " +"fetching/pushing to remote repositories." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:146 -#, no-wrap +#: en/git-gui.txt:24 msgid "" -"\tif git merge-base --is-ancestor A B\n" -"\tthen\n" -"\t\t... A is an ancestor of B ...\n" -"\tfi\n" +"Unlike 'gitk', 'git gui' focuses on commit generation and single file " +"annotation and does not show project history. It does however supply menu " +"actions to start a 'gitk' session from within 'git gui'." msgstr "" #. type: Plain text -#: en/git-merge-base.txt:148 -msgid "instead." +#: en/git-gui.txt:29 +msgid "" +"'git gui' is known to work on all popular UNIX systems, Mac OS X, and " +"Windows (under both Cygwin and MSYS). To the extent possible OS specific " +"user interface guidelines are followed, making 'git gui' a fairly native " +"interface for users." msgstr "" #. type: Title - -#: en/git-merge-base.txt:150 +#: en/git-gui.txt:31 en/git-p4.txt:63 en/git-remote.txt:42 en/git-rerere.txt:32 +#: en/git-shell.txt:25 en/git-submodule.txt:30 en/git-svn.txt:29 +#: en/git-worktree.txt:46 #, no-wrap -msgid "Discussion on fork-point mode" +msgid "COMMANDS" msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:156 -msgid "" -"After working on the `topic` branch created with `git checkout -b topic " -"origin/master`, the history of remote-tracking branch `origin/master` may " -"have been rewound and rebuilt, leading to a history of this shape:" +#. type: Labeled list +#: en/git-gui.txt:32 +#, no-wrap +msgid "blame" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:164 -#, no-wrap +#: en/git-gui.txt:35 msgid "" -"\t o---B1\n" -"\t /\n" -"\t---o---o---B2--o---o---o---B (origin/master)\n" -"\t \\\n" -"\t B3\n" -"\t \\\n" -"\t Derived (topic)\n" +"Start a blame viewer on the specified file on the given version (or working " +"directory if not specified)." msgstr "" -#. type: Plain text -#: en/git-merge-base.txt:170 -msgid "" -"where `origin/master` used to point at commits B3, B2, B1 and now it points " -"at B, and your `topic` branch was started on top of it back when " -"`origin/master` was at B3. This mode uses the reflog of `origin/master` to " -"find B3 as the fork point, so that the `topic` can be rebased on top of the " -"updated `origin/master` by:" +#. type: Labeled list +#: en/git-gui.txt:36 +#, no-wrap +msgid "browser" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:173 -#, no-wrap +#: en/git-gui.txt:40 msgid "" -" $ fork_point=$(git merge-base --fork-point origin/master topic)\n" -" $ git rebase --onto origin/master $fork_point topic\n" +"Start a tree browser showing all files in the specified commit. Files " +"selected through the browser are opened in the blame viewer." msgstr "" -#. type: Title - -#: en/git-merge-base.txt:176 +#. type: Labeled list +#: en/git-gui.txt:41 #, no-wrap -msgid "See also" +msgid "citool" msgstr "" #. type: Plain text -#: en/git-merge-base.txt:180 -msgid "linkgit:git-rev-list[1], linkgit:git-show-branch[1], linkgit:git-merge[1]" +#: en/git-gui.txt:46 +msgid "" +"Start 'git gui' and arrange to make exactly one commit before exiting and " +"returning to the shell. The interface is limited to only commit actions, " +"slightly reducing the application's startup time and simplifying the menubar." msgstr "" -#. type: Title = -#: en/git-merge-file.txt:2 +#. type: Labeled list +#: en/git-gui.txt:47 #, no-wrap -msgid "git-merge-file(1)" +msgid "version" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:7 -msgid "git-merge-file - Run a three-way file merge" +#: en/git-gui.txt:49 +msgid "Display the currently running version of 'git gui'." msgstr "" -#. type: Plain text -#: en/git-merge-file.txt:15 +#. type: Title - +#: en/git-gui.txt:52 en/git-imap-send.txt:63 en/git-whatchanged.txt:29 #, no-wrap -msgid "" -"'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]\n" -"\t[--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]\n" -"\t[--[no-]diff3] <current-file> <base-file> <other-file>\n" +msgid "Examples" msgstr "" -#. type: Plain text -#: en/git-merge-file.txt:25 -msgid "" -"'git merge-file' incorporates all changes that lead from the `<base-file>` " -"to `<other-file>` into `<current-file>`. The result ordinarily goes into " -"`<current-file>`. 'git merge-file' is useful for combining separate changes " -"to an original. Suppose `<base-file>` is the original, and both " -"`<current-file>` and `<other-file>` are modifications of `<base-file>`, then " -"'git merge-file' combines both changes." +#. type: Labeled list +#: en/git-gui.txt:53 +#, no-wrap +msgid "`git gui blame Makefile`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:30 +#: en/git-gui.txt:61 msgid "" -"A conflict occurs if both `<current-file>` and `<other-file>` have changes " -"in a common segment of lines. If a conflict is found, 'git merge-file' " -"normally outputs a warning and brackets the conflict with lines containing " -"<<<<<<< and >>>>>>> markers. A typical conflict will look like this:" +"Show the contents of the file 'Makefile' in the current working directory, " +"and provide annotations for both the original author of each line, and who " +"moved the line to its current location. The uncommitted file is annotated, " +"and uncommitted changes (if any) are explicitly attributed to 'Not Yet " +"Committed'." msgstr "" -#. type: Plain text -#: en/git-merge-file.txt:36 +#. type: Labeled list +#: en/git-gui.txt:62 #, no-wrap -msgid "" -"\t<<<<<<< A\n" -"\tlines in file A\n" -"\t=======\n" -"\tlines in file B\n" -"\t>>>>>>> B\n" +msgid "`git gui blame v0.99.8 Makefile`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:42 +#: en/git-gui.txt:68 msgid "" -"If there are conflicts, the user should edit the result and delete one of " -"the alternatives. When `--ours`, `--theirs`, or `--union` option is in " -"effect, however, these conflicts are resolved favouring lines from " -"`<current-file>`, lines from `<other-file>`, or lines from both " -"respectively. The length of the conflict markers can be given with the " -"`--marker-size` option." +"Show the contents of 'Makefile' in revision 'v0.99.8' and provide " +"annotations for each line. Unlike the above example the file is read from " +"the object database and not the working directory." msgstr "" -#. type: Plain text -#: en/git-merge-file.txt:46 -msgid "" -"The exit value of this program is negative on error, and the number of " -"conflicts otherwise (truncated to 127 if there are more than that many " -"conflicts). If the merge was clean, the exit value is 0." +#. type: Labeled list +#: en/git-gui.txt:69 +#, no-wrap +msgid "`git gui blame --line=100 Makefile`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:50 +#: en/git-gui.txt:73 msgid "" -"'git merge-file' is designed to be a minimal clone of RCS 'merge'; that is, " -"it implements all of RCS 'merge''s functionality which is needed by " -"linkgit:git[1]." +"Loads annotations as described above and automatically scrolls the view to " +"center on line '100'." msgstr "" #. type: Labeled list -#: en/git-merge-file.txt:55 +#: en/git-gui.txt:74 #, no-wrap -msgid "-L <label>" +msgid "`git gui citool`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:62 +#: en/git-gui.txt:79 msgid "" -"This option may be given up to three times, and specifies labels to be used " -"in place of the corresponding file names in conflict reports. That is, `git " -"merge-file -L x -L y -L z a b c` generates output that looks like it came " -"from files x, y and z instead of from files a, b and c." +"Make one commit and return to the shell when it is complete. This command " +"returns a non-zero exit code if the window was closed in any way other than " +"by making a commit." msgstr "" -#. type: Plain text -#: en/git-merge-file.txt:66 -msgid "Send results to standard output instead of overwriting `<current-file>`." +#. type: Labeled list +#: en/git-gui.txt:80 +#, no-wrap +msgid "`git gui citool --amend`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:69 -msgid "Quiet; do not warn about conflicts." +#: en/git-gui.txt:84 +msgid "Automatically enter the 'Amend Last Commit' mode of the interface." msgstr "" #. type: Labeled list -#: en/git-merge-file.txt:70 +#: en/git-gui.txt:85 #, no-wrap -msgid "--diff3" +msgid "`git gui citool --nocommit`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:72 -msgid "Show conflicts in \"diff3\" style." +#: en/git-gui.txt:91 +msgid "" +"Behave as normal citool, but instead of making a commit simply terminate " +"with a zero exit code. It still checks that the index does not contain any " +"unmerged entries, so you can use it as a GUI version of linkgit:git-" +"mergetool[1]" msgstr "" #. type: Labeled list -#: en/git-merge-file.txt:75 +#: en/git-gui.txt:92 #, no-wrap -msgid "--union" +msgid "`git citool`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:78 -msgid "" -"Instead of leaving conflicts in the file, resolve conflicts favouring our " -"(or their or both) side of the lines." +#: en/git-gui.txt:95 +msgid "Same as `git gui citool` (above)." msgstr "" #. type: Labeled list -#: en/git-merge-file.txt:83 +#: en/git-gui.txt:96 #, no-wrap -msgid "`git merge-file README.my README README.upstream`" +msgid "`git gui browser maint`" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:87 +#: en/git-gui.txt:101 msgid "" -"combines the changes of README.my and README.upstream since README, tries to " -"merge them and writes the result into README.my." +"Show a browser for the tree of the 'maint' branch. Files selected in the " +"browser can be viewed with the internal blame viewer." msgstr "" -#. type: Labeled list -#: en/git-merge-file.txt:88 +#. type: Plain text +#: en/git-gui.txt:108 +msgid "" +"The Git repository browser. Shows branches, commit history and file " +"differences. gitk is the utility started by 'git gui''s Repository " +"Visualize actions." +msgstr "" + +#. type: Title - +#: en/git-gui.txt:110 #, no-wrap -msgid "`git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345`" +msgid "Other" msgstr "" #. type: Plain text -#: en/git-merge-file.txt:92 +#: en/git-gui.txt:114 msgid "" -"merges tmp/a123 and tmp/c345 with the base tmp/b234, but uses labels `a` and " -"`c` instead of `tmp/a123` and `tmp/c345`." +"'git gui' is actually maintained as an independent project, but stable " +"versions are distributed as part of the Git suite for the convenience of end " +"users." msgstr "" -#. type: Title = -#: en/git-merge-index.txt:2 -#, no-wrap -msgid "git-merge-index(1)" +#. type: Plain text +#: en/git-gui.txt:116 +msgid "A 'git gui' development repository can be obtained from:" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:7 -msgid "git-merge-index - Run a merge for files needing merging" +#: en/git-gui.txt:118 +#, no-wrap +msgid " git clone git://repo.or.cz/git-gui.git\n" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:13 +#: en/git-gui.txt:122 #, no-wrap -msgid "'git merge-index' [-o] [-q] <merge-program> (-a | [--] <file>*)\n" +msgid " git clone http://repo.or.cz/r/git-gui.git\n" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:20 -msgid "" -"This looks up the <file>(s) in the index and, if there are any merge " -"entries, passes the SHA-1 hash for those files as arguments 1, 2, 3 (empty " -"argument if no file), and <file> as argument 4. File modes for the three " -"files are passed as arguments 5, 6 and 7." +#: en/git-gui.txt:124 +msgid "or browsed online at http://repo.or.cz/w/git-gui.git/[]." msgstr "" -#. type: Plain text -#: en/git-merge-index.txt:28 -msgid "Run merge against all files in the index that need merging." +#. type: Title = +#: en/git-hash-object.txt:2 +#, no-wrap +msgid "git-hash-object(1)" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:34 +#: en/git-hash-object.txt:7 msgid "" -"Instead of stopping at the first failed merge, do all of them in one shot - " -"continue with merging even when previous merges returned errors, and only " -"return the error code after all the merges." +"git-hash-object - Compute object ID and optionally creates a blob from a file" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:39 +#: en/git-hash-object.txt:14 +#, no-wrap msgid "" -"Do not complain about a failed merge program (a merge program failure " -"usually indicates conflicts during the merge). This is for porcelains which " -"might want to emit custom messages." +"'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin [--literally]] [--] <file>...\n" +"'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters]\n" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:43 +#: en/git-hash-object.txt:24 msgid "" -"If 'git merge-index' is called with multiple <file>s (or -a) then it " -"processes them in turn only stopping if merge returns a non-zero exit code." +"Computes the object ID value for an object with specified type with the " +"contents of the named file (which can be outside of the work tree), and " +"optionally writes the resulting object into the object database. Reports " +"its object ID to its standard output. This is used by 'git cvsimport' to " +"update the index without modifying files in the work tree. When <type> is " +"not specified, it defaults to \"blob\"." msgstr "" -#. type: Plain text -#: en/git-merge-index.txt:46 -msgid "" -"Typically this is run with a script calling Git's imitation of the 'merge' " -"command from the RCS package." +#. type: Labeled list +#: en/git-hash-object.txt:28 +#, no-wrap +msgid "-t <type>" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:49 -msgid "A sample script called 'git merge-one-file' is included in the distribution." +#: en/git-hash-object.txt:30 +msgid "Specify the type (default: \"blob\")." msgstr "" #. type: Plain text -#: en/git-merge-index.txt:54 -msgid "" -"ALERT ALERT ALERT! The Git \"merge object order\" is different from the RCS " -"'merge' program merge object order. In the above ordering, the original is " -"first. But the argument order to the 3-way merge program 'merge' is to have " -"the original in the middle. Don't ask me why." +#: en/git-hash-object.txt:33 +msgid "Actually write the object into the object database." msgstr "" #. type: Plain text -#: en/git-merge-index.txt:56 en/git-svn.txt:155 -msgid "Examples:" +#: en/git-hash-object.txt:36 +msgid "Read the object from standard input instead of from a file." msgstr "" -#. type: Plain text -#: en/git-merge-index.txt:62 +#. type: Labeled list +#: en/git-hash-object.txt:37 #, no-wrap -msgid "" -" torvalds@ppc970:~/merge-test> git merge-index cat MM\n" -" This is MM from the original tree.\t\t\t# original\n" -" This is modified MM in the branch A.\t\t\t# merge1\n" -" This is modified MM in the branch B.\t\t\t# merge2\n" -" This is modified MM in the branch B.\t\t\t# current contents\n" +msgid "--stdin-paths" msgstr "" #. type: Plain text -#: en/git-merge-index.txt:71 -#, no-wrap +#: en/git-hash-object.txt:40 msgid "" -" torvalds@ppc970:~/merge-test> git merge-index cat AA MM\n" -" cat: : No such file or directory\n" -" This is added AA in the branch A.\n" -" This is added AA in the branch B.\n" -" This is added AA in the branch B.\n" -" fatal: merge program failed\n" +"Read file names from the standard input, one per line, instead of from the " +"command-line." msgstr "" #. type: Plain text -#: en/git-merge-index.txt:76 +#: en/git-hash-object.txt:50 msgid "" -"where the latter example shows how 'git merge-index' will stop trying to " -"merge once anything has returned an error (i.e., `cat` returned an error for " -"the AA file, because it didn't exist in the original, and thus 'git " -"merge-index' didn't even try to merge the MM thing)." +"Hash object as it were located at the given path. The location of file does " +"not directly influence on the hash value, but path is used to determine what " +"Git filters should be applied to the object before it can be placed to the " +"object database, and, as result of applying filters, the actual blob put " +"into the object database may differ from the given file. This option is " +"mainly useful for hashing temporary files located outside of the working " +"directory or files read from stdin." msgstr "" -#. type: Title = -#: en/git-merge-one-file.txt:2 +#. type: Labeled list +#: en/git-hash-object.txt:51 #, no-wrap -msgid "git-merge-one-file(1)" +msgid "--no-filters" msgstr "" #. type: Plain text -#: en/git-merge-one-file.txt:7 -msgid "git-merge-one-file - The standard helper program to use with git-merge-index" +#: en/git-hash-object.txt:56 +msgid "" +"Hash the contents as is, ignoring any input filter that would have been " +"chosen by the attributes mechanism, including the end-of-line conversion. If " +"the file is read from standard input then this is always implied, unless the " +"`--path` option is given." msgstr "" -#. type: Plain text -#: en/git-merge-one-file.txt:13 +#. type: Labeled list +#: en/git-hash-object.txt:57 #, no-wrap -msgid "'git merge-one-file'\n" +msgid "--literally" msgstr "" #. type: Plain text -#: en/git-merge-one-file.txt:18 +#: en/git-hash-object.txt:62 msgid "" -"This is the standard helper program to use with 'git merge-index' to resolve " -"a merge after the trivial merge done with 'git read-tree -m'." +"Allow `--stdin` to hash any garbage into a loose object which might not " +"otherwise pass standard object parsing or git-fsck checks. Useful for stress-" +"testing Git itself or reproducing characteristics of corrupt or bogus " +"objects encountered in the wild." msgstr "" #. type: Title = -#: en/git-mergetool--lib.txt:2 +#: en/git-help.txt:2 #, no-wrap -msgid "git-mergetool{litdd}lib(1)" +msgid "git-help(1)" msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:7 -msgid "git-mergetool--lib - Common Git merge tool shell scriptlets" +#: en/git-help.txt:7 +msgid "git-help - Display help information about Git" msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:12 +#: en/git-help.txt:13 #, no-wrap -msgid "'TOOL_MODE=(diff|merge) . \"$(git --exec-path)/git-mergetool{litdd}lib\"'\n" +msgid "" +"'git help' [-a|--all [--[no-]verbose]] [-g|--guide]\n" +"\t [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]\n" msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:19 en/git-sh-i18n.txt:19 en/git-sh-setup.txt:19 +#: en/git-help.txt:20 msgid "" -"This is not a command the end user would want to run. Ever. This " -"documentation is meant for people who are studying the Porcelain-ish scripts " -"and/or are writing new ones." +"With no options and no COMMAND or GUIDE given, the synopsis of the 'git' " +"command and a list of the most commonly used Git commands are printed on the " +"standard output." msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:23 +#: en/git-help.txt:23 msgid "" -"The 'git-mergetool{litdd}lib' scriptlet is designed to be sourced (using " -"`.`) by other shell scripts to set up functions for working with Git merge " -"tools." +"If the option `--all` or `-a` is given, all available commands are printed " +"on the standard output." msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:27 +#: en/git-help.txt:26 msgid "" -"Before sourcing 'git-mergetool{litdd}lib', your script must set `TOOL_MODE` " -"to define the operation mode for the functions listed below. 'diff' and " -"'merge' are valid values." +"If the option `--guide` or `-g` is given, a list of the useful Git guides is " +"also printed on the standard output." msgstr "" -#. type: Title - -#: en/git-mergetool--lib.txt:29 en/git-sh-i18n.txt:28 en/git-sh-setup.txt:34 -#, no-wrap -msgid "FUNCTIONS" +#. type: Plain text +#: en/git-help.txt:31 +msgid "" +"If a command, or a guide, is given, a manual page for that command or guide " +"is brought up. The 'man' program is used by default for this purpose, but " +"this can be overridden by other options or configuration variables." msgstr "" -#. type: Labeled list -#: en/git-mergetool--lib.txt:30 -#, no-wrap -msgid "get_merge_tool" +#. type: Plain text +#: en/git-help.txt:35 +msgid "" +"If an alias is given, git shows the definition of the alias on standard " +"output. To get the manual page for the aliased command, use `git COMMAND --" +"help`." msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:32 -msgid "returns a merge tool." +#: en/git-help.txt:38 +msgid "" +"Note that `git --help ...` is identical to `git help ...` because the former " +"is internally converted into the latter." msgstr "" -#. type: Labeled list -#: en/git-mergetool--lib.txt:33 -#, no-wrap -msgid "get_merge_tool_cmd" +#. type: Plain text +#: en/git-help.txt:40 +msgid "To display the linkgit:git[1] man page, use `git help git`." msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:35 -msgid "returns the custom command for a merge tool." +#: en/git-help.txt:42 +msgid "This page can be displayed with 'git help help' or `git help --help`" msgstr "" -#. type: Labeled list -#: en/git-mergetool--lib.txt:36 -#, no-wrap -msgid "get_merge_tool_path" +#. type: Plain text +#: en/git-help.txt:49 +msgid "" +"Prints all the available commands on the standard output. This option " +"overrides any given command or guide name." msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:38 -msgid "returns the custom path for a merge tool." +#: en/git-help.txt:53 +msgid "" +"When used with `--all` print description for all recognized commands. This " +"is the default." msgstr "" #. type: Labeled list -#: en/git-mergetool--lib.txt:39 +#: en/git-help.txt:55 #, no-wrap -msgid "run_merge_tool" +msgid "--config" msgstr "" #. type: Plain text -#: en/git-mergetool--lib.txt:44 +#: en/git-help.txt:58 msgid "" -"launches a merge tool given the tool name and a true/false flag to indicate " -"whether a merge base is present. '$MERGED', '$LOCAL', '$REMOTE', and " -"'$BASE' must be defined for use by the merge tool." +"List all available configuration variables. This is a short summary of the " +"list in linkgit:git-config[1]." msgstr "" -#. type: Title = -#: en/git-mergetool.txt:2 +#. type: Labeled list +#: en/git-help.txt:60 #, no-wrap -msgid "git-mergetool(1)" +msgid "--guides" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:7 +#: en/git-help.txt:63 msgid "" -"git-mergetool - Run merge conflict resolution tools to resolve merge " -"conflicts" +"Prints a list of useful guides on the standard output. This option overrides " +"any given command or guide name." msgstr "" -#. type: Plain text -#: en/git-mergetool.txt:12 +#. type: Labeled list +#: en/git-help.txt:65 #, no-wrap -msgid "'git mergetool' [--tool=<tool>] [-y | --[no-]prompt] [<file>...]\n" +msgid "--info" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:18 +#: en/git-help.txt:68 msgid "" -"Use `git mergetool` to run one of several merge utilities to resolve merge " -"conflicts. It is typically run after 'git merge'." +"Display manual page for the command in the 'info' format. The 'info' program " +"will be used for that purpose." msgstr "" -#. type: Plain text -#: en/git-mergetool.txt:24 -msgid "" -"If one or more <file> parameters are given, the merge tool program will be " -"run to resolve differences on each file (skipping those without conflicts). " -"Specifying a directory will include all unresolved files in that path. If " -"no <file> names are specified, 'git mergetool' will run the merge tool " -"program on every file with merge conflicts." +#. type: Labeled list +#: en/git-help.txt:70 +#, no-wrap +msgid "--man" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:33 +#: en/git-help.txt:74 msgid "" -"Use the merge resolution program specified by <tool>. Valid values include " -"emerge, gvimdiff, kdiff3, meld, vimdiff, and tortoisemerge. Run `git " -"mergetool --tool-help` for the list of valid <tool> settings." +"Display manual page for the command in the 'man' format. This option may be " +"used to override a value set in the `help.format` configuration variable." msgstr "" #. type: Plain text -#: en/git-mergetool.txt:38 +#: en/git-help.txt:78 msgid "" -"If a merge resolution program is not specified, 'git mergetool' will use the " -"configuration variable `merge.tool`. If the configuration variable " -"`merge.tool` is not set, 'git mergetool' will pick a suitable default." +"By default the 'man' program will be used to display the manual page, but " +"the `man.viewer` configuration variable may be used to choose other display " +"programs (see below)." msgstr "" -#. type: Plain text -#: en/git-mergetool.txt:44 -msgid "" -"You can explicitly provide a full path to the tool by setting the " -"configuration variable `mergetool.<tool>.path`. For example, you can " -"configure the absolute path to kdiff3 by setting " -"`mergetool.kdiff3.path`. Otherwise, 'git mergetool' assumes the tool is " -"available in PATH." +#. type: Labeled list +#: en/git-help.txt:80 +#, no-wrap +msgid "--web" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:49 +#: en/git-help.txt:83 msgid "" -"Instead of running one of the known merge tool programs, 'git mergetool' can " -"be customized to run an alternative program by specifying the command line " -"to invoke in a configuration variable `mergetool.<tool>.cmd`." +"Display manual page for the command in the 'web' (HTML) format. A web " +"browser will be used for that purpose." msgstr "" #. type: Plain text -#: en/git-mergetool.txt:60 +#: en/git-help.txt:89 msgid "" -"When 'git mergetool' is invoked with this tool (either through the `-t` or " -"`--tool` option or the `merge.tool` configuration variable) the configured " -"command line will be invoked with `$BASE` set to the name of a temporary " -"file containing the common base for the merge, if available; `$LOCAL` set to " -"the name of a temporary file containing the contents of the file on the " -"current branch; `$REMOTE` set to the name of a temporary file containing the " -"contents of the file to be merged, and `$MERGED` set to the name of the file " -"to which the merge tool should write the result of the merge resolution." +"The web browser can be specified using the configuration variable `help." +"browser`, or `web.browser` if the former is not set. If none of these config " +"variables is set, the 'git web{litdd}browse' helper script (called by 'git " +"help') will pick a suitable default. See linkgit:git-web{litdd}browse[1] for " +"more information about this." +msgstr "" + +#. type: Title - +#: en/git-help.txt:91 en/git-interpret-trailers.txt:135 en/git-p4.txt:515 +#: en/git-web--browse.txt:59 +#, no-wrap +msgid "CONFIGURATION VARIABLES" +msgstr "" + +#. type: Title ~ +#: en/git-help.txt:94 +#, no-wrap +msgid "help.format" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:66 +#: en/git-help.txt:100 msgid "" -"If the custom merge tool correctly indicates the success of a merge " -"resolution with its exit code, then the configuration variable " -"`mergetool.<tool>.trustExitCode` can be set to `true`. Otherwise, 'git " -"mergetool' will prompt the user to indicate the success of the resolution " -"after the custom tool has exited." +"If no command-line option is passed, the `help.format` configuration " +"variable will be checked. The following values are supported for this " +"variable; they make 'git help' behave as their corresponding command- line " +"option:" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:69 -msgid "Print a list of merge tools that may be used with `--tool`." +#: en/git-help.txt:102 +msgid "\"man\" corresponds to '-m|--man'," msgstr "" #. type: Plain text -#: en/git-mergetool.txt:77 -msgid "" -"Don't prompt before each invocation of the merge resolution program. This " -"is the default if the merge resolution program is explicitly specified with " -"the `--tool` option or with the `merge.tool` configuration variable." +#: en/git-help.txt:103 +msgid "\"info\" corresponds to '-i|--info'," msgstr "" #. type: Plain text -#: en/git-mergetool.txt:81 -msgid "" -"Prompt before each invocation of the merge resolution program to give the " -"user a chance to skip the path." +#: en/git-help.txt:104 +msgid "\"web\" or \"html\" correspond to '-w|--web'." msgstr "" -#. type: Labeled list -#: en/git-mergetool.txt:82 en/diff-options.txt:467 +#. type: Title ~ +#: en/git-help.txt:106 #, no-wrap -msgid "-O<orderfile>" +msgid "help.browser, web.browser and browser.<tool>.path" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:88 +#: en/git-help.txt:112 msgid "" -"Process files in the order specified in the <orderfile>, which has one shell " -"glob pattern per line. This overrides the `diff.orderFile` configuration " -"variable (see linkgit:git-config[1]). To cancel `diff.orderFile`, use " -"`-O/dev/null`." +"The `help.browser`, `web.browser` and `browser.<tool>.path` will also be " +"checked if the 'web' format is chosen (either by command-line option or " +"configuration variable). See '-w|--web' in the OPTIONS section above and " +"linkgit:git-web{litdd}browse[1]." msgstr "" -#. type: Title - -#: en/git-mergetool.txt:90 +#. type: Title ~ +#: en/git-help.txt:114 #, no-wrap -msgid "TEMPORARY FILES" +msgid "man.viewer" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:94 +#: en/git-help.txt:118 msgid "" -"`git mergetool` creates `*.orig` backup files while resolving merges. These " -"are safe to remove once a file has been merged and its `git mergetool` " -"session has completed." +"The `man.viewer` configuration variable will be checked if the 'man' format " +"is chosen. The following values are currently supported:" msgstr "" #. type: Plain text -#: en/git-mergetool.txt:98 -msgid "" -"Setting the `mergetool.keepBackup` configuration variable to `false` causes " -"`git mergetool` to automatically remove the backup as files are successfully " -"merged." -msgstr "" - -#. type: Title = -#: en/git-merge-tree.txt:2 -#, no-wrap -msgid "git-merge-tree(1)" +#: en/git-help.txt:120 +msgid "\"man\": use the 'man' program as usual," msgstr "" #. type: Plain text -#: en/git-merge-tree.txt:7 -msgid "git-merge-tree - Show three-way merge without touching index" +#: en/git-help.txt:122 +msgid "" +"\"woman\": use 'emacsclient' to launch the \"woman\" mode in emacs (this " +"only works starting with emacsclient versions 22)," msgstr "" #. type: Plain text -#: en/git-merge-tree.txt:13 -#, no-wrap -msgid "'git merge-tree' <base-tree> <branch1> <branch2>\n" +#: en/git-help.txt:124 +msgid "" +"\"konqueror\": use 'kfmclient' to open the man page in a new konqueror tab " +"(see 'Note about konqueror' below)." msgstr "" #. type: Plain text -#: en/git-merge-tree.txt:21 +#: en/git-help.txt:127 msgid "" -"Reads three tree-ish, and output trivial merge results and conflicting " -"stages to the standard output. This is similar to what three-way 'git " -"read-tree -m' does, but instead of storing the results in the index, the " -"command outputs the entries to the standard output." +"Values for other tools can be used if there is a corresponding `man.<tool>." +"cmd` configuration entry (see below)." msgstr "" #. type: Plain text -#: en/git-merge-tree.txt:26 +#: en/git-help.txt:131 msgid "" -"This is meant to be used by higher level scripts to compute merge results " -"outside of the index, and stuff the results back into the index. For this " -"reason, the output from the command omits entries that match the <branch1> " -"tree." -msgstr "" - -#. type: Title = -#: en/git-merge.txt:2 -#, no-wrap -msgid "git-merge(1)" +"Multiple values may be given to the `man.viewer` configuration variable. " +"Their corresponding programs will be tried in the order listed in the " +"configuration file." msgstr "" #. type: Plain text -#: en/git-merge.txt:7 -msgid "git-merge - Join two or more development histories together" +#: en/git-help.txt:133 +msgid "For example, this configuration:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:19 +#. type: delimited block - +#: en/git-help.txt:138 #, no-wrap msgid "" -"'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]\n" -"\t[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]\n" -"\t[--[no-]allow-unrelated-histories]\n" -"\t[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]\n" -"'git merge' <msg> HEAD <commit>...\n" -"'git merge' --abort\n" -"'git merge' --continue\n" +"\t[man]\n" +"\t\tviewer = konqueror\n" +"\t\tviewer = woman\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:27 +#: en/git-help.txt:142 msgid "" -"Incorporates changes from the named commits (since the time their histories " -"diverged from the current branch) into the current branch. This command is " -"used by 'git pull' to incorporate changes from another repository and can be " -"used by hand to merge changes from one branch into another." +"will try to use konqueror first. But this may fail (for example, if DISPLAY " +"is not set) and in that case emacs' woman mode will be tried." msgstr "" #. type: Plain text -#: en/git-merge.txt:30 en/git-pull.txt:40 -msgid "Assume the following history exists and the current branch is \"`master`\":" +#: en/git-help.txt:146 +msgid "" +"If everything fails, or if no viewer is configured, the viewer specified in " +"the `GIT_MAN_VIEWER` environment variable will be tried. If that fails too, " +"the 'man' program will be tried anyway." msgstr "" -#. type: delimited block - -#: en/git-merge.txt:35 +#. type: Title ~ +#: en/git-help.txt:148 #, no-wrap -msgid "" -"\t A---B---C topic\n" -"\t /\n" -" D---E---F---G master\n" +msgid "man.<tool>.path" msgstr "" #. type: Plain text -#: en/git-merge.txt:42 +#: en/git-help.txt:155 msgid "" -"Then \"`git merge topic`\" will replay the changes made on the `topic` " -"branch since it diverged from `master` (i.e., `E`) until its current commit " -"(`C`) on top of `master`, and record the result in a new commit along with " -"the names of the two parent commits and a log message from the user " -"describing the changes." +"You can explicitly provide a full path to your preferred man viewer by " +"setting the configuration variable `man.<tool>.path`. For example, you can " +"configure the absolute path to konqueror by setting 'man.konqueror.path'. " +"Otherwise, 'git help' assumes the tool is available in PATH." msgstr "" -#. type: delimited block - -#: en/git-merge.txt:47 +#. type: Title ~ +#: en/git-help.txt:157 #, no-wrap -msgid "" -"\t A---B---C topic\n" -"\t / \\\n" -" D---E---F---G---H master\n" +msgid "man.<tool>.cmd" msgstr "" #. type: Plain text -#: en/git-merge.txt:52 +#: en/git-help.txt:165 msgid "" -"The second syntax (<msg> `HEAD` <commit>...) is supported for historical " -"reasons. Do not use it from the command line or in new scripts. It is the " -"same as `git merge -m <msg> <commit>...`." +"When the man viewer, specified by the `man.viewer` configuration variables, " +"is not among the supported ones, then the corresponding `man.<tool>.cmd` " +"configuration variable will be looked up. If this variable exists then the " +"specified tool will be treated as a custom command and a shell eval will be " +"used to run the command with the man page passed as arguments." msgstr "" -#. type: Plain text -#: en/git-merge.txt:60 -msgid "" -"The third syntax (\"`git merge --abort`\") can only be run after the merge " -"has resulted in conflicts. 'git merge --abort' will abort the merge process " -"and try to reconstruct the pre-merge state. However, if there were " -"uncommitted changes when the merge started (and especially if those changes " -"were further modified after the merge was started), 'git merge --abort' will " -"in some cases be unable to reconstruct the original (pre-merge) " -"changes. Therefore:" +#. type: Title ~ +#: en/git-help.txt:167 +#, no-wrap +msgid "Note about konqueror" msgstr "" #. type: Plain text -#: en/git-merge.txt:64 -#, no-wrap +#: en/git-help.txt:172 msgid "" -"*Warning*: Running 'git merge' with non-trivial uncommitted changes is\n" -"discouraged: while possible, it may leave you in a state that is hard to\n" -"back out of in the case of a conflict.\n" +"When 'konqueror' is specified in the `man.viewer` configuration variable, we " +"launch 'kfmclient' to try to open the man page on an already opened " +"konqueror in a new tab if possible." msgstr "" #. type: Plain text -#: en/git-merge.txt:67 +#: en/git-help.txt:176 msgid "" -"The fourth syntax (\"`git merge --continue`\") can only be run after the " -"merge has resulted in conflicts." +"For consistency, we also try such a trick if 'man.konqueror.path' is set to " +"something like 'A_PATH_TO/konqueror'. That means we will try to launch " +"'A_PATH_TO/kfmclient' instead." msgstr "" #. type: Plain text -#: en/git-merge.txt:77 +#: en/git-help.txt:179 en/git-web--browse.txt:100 msgid "" -"GPG-sign the resulting merge commit. The `keyid` argument is optional and " -"defaults to the committer identity; if specified, it must be stuck to the " -"option without a space." +"If you really want to use 'konqueror', then you can use something like the " +"following:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:81 +#. type: delimited block - +#: en/git-help.txt:183 +#, no-wrap msgid "" -"Set the commit message to be used for the merge commit (in case one is " -"created)." +"\t[man]\n" +"\t\tviewer = konq\n" msgstr "" -#. type: Plain text -#: en/git-merge.txt:84 +#. type: delimited block - +#: en/git-help.txt:186 +#, no-wrap msgid "" -"If `--log` is specified, a shortlog of the commits being merged will be " -"appended to the specified message." +"\t[man \"konq\"]\n" +"\t\tcmd = A_PATH_TO/konqueror\n" +msgstr "" + +#. type: Title ~ +#: en/git-help.txt:189 +#, no-wrap +msgid "Note about git config --global" msgstr "" #. type: Plain text -#: en/git-merge.txt:88 +#: en/git-help.txt:193 msgid "" -"The 'git fmt-merge-msg' command can be used to give a good default for " -"automated 'git merge' invocations. The automated message can include the " -"branch description." +"Note that all these configuration variables should probably be set using the " +"`--global` flag, for example like this:" msgstr "" -#. type: Labeled list -#: en/git-merge.txt:89 +#. type: delimited block - +#: en/git-help.txt:197 #, no-wrap -msgid "--[no-]rerere-autoupdate" +msgid "" +"$ git config --global help.format web\n" +"$ git config --global web.browser firefox\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:92 +#: en/git-help.txt:201 en/git-web--browse.txt:121 msgid "" -"Allow the rerere mechanism to update the index with the result of " -"auto-conflict resolution if possible." +"as they are probably more user specific than repository specific. See " +"linkgit:git-config[1] for more information about this." msgstr "" -#. type: Plain text -#: en/git-merge.txt:96 -msgid "" -"Abort the current conflict resolution process, and try to reconstruct the " -"pre-merge state." +#. type: Title = +#: en/git-http-backend.txt:2 +#, no-wrap +msgid "git-http-backend(1)" msgstr "" #. type: Plain text -#: en/git-merge.txt:101 -msgid "" -"If there were uncommitted worktree changes present when the merge started, " -"'git merge --abort' will in some cases be unable to reconstruct these " -"changes. It is therefore recommended to always commit or stash your changes " -"before running 'git merge'." +#: en/git-http-backend.txt:7 +msgid "git-http-backend - Server side implementation of Git over HTTP" msgstr "" #. type: Plain text -#: en/git-merge.txt:104 -msgid "" -"'git merge --abort' is equivalent to 'git reset --merge' when `MERGE_HEAD` " -"is present." +#: en/git-http-backend.txt:12 +#, no-wrap +msgid "'git http-backend'\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:109 +#: en/git-http-backend.txt:20 msgid "" -"After a 'git merge' stops due to conflicts you can conclude the merge by " -"running 'git merge --continue' (see \"HOW TO RESOLVE CONFLICTS\" section " -"below)." +"A simple CGI program to serve the contents of a Git repository to Git " +"clients accessing the repository over http:// and https:// protocols. The " +"program supports clients fetching using both the smart HTTP protocol and the " +"backwards-compatible dumb HTTP protocol, as well as clients pushing using " +"the smart HTTP protocol." msgstr "" #. type: Plain text -#: en/git-merge.txt:114 +#: en/git-http-backend.txt:25 msgid "" -"Commits, usually other branch heads, to merge into our branch. Specifying " -"more than one commit will create a merge with more than two parents " -"(affectionately called an Octopus merge)." +"It verifies that the directory has the magic file \"git-daemon-export-ok\", " +"and it will refuse to export any Git directory that hasn't explicitly been " +"marked for export this way (unless the `GIT_HTTP_EXPORT_ALL` environmental " +"variable is set)." msgstr "" #. type: Plain text -#: en/git-merge.txt:118 +#: en/git-http-backend.txt:31 msgid "" -"If no commit is given from the command line, merge the remote-tracking " -"branches that the current branch is configured to use as its upstream. See " -"also the configuration section of this manual page." +"By default, only the `upload-pack` service is enabled, which serves 'git " +"fetch-pack' and 'git ls-remote' clients, which are invoked from 'git fetch', " +"'git pull', and 'git clone'. If the client is authenticated, the `receive-" +"pack` service is enabled, which serves 'git send-pack' clients, which is " +"invoked from 'git push'." msgstr "" #. type: Plain text -#: en/git-merge.txt:122 +#: en/git-http-backend.txt:36 msgid "" -"When `FETCH_HEAD` (and no other commit) is specified, the branches recorded " -"in the `.git/FETCH_HEAD` file by the previous invocation of `git fetch` for " -"merging are merged to the current branch." +"These services can be enabled/disabled using the per-repository " +"configuration file:" msgstr "" -#. type: Title - -#: en/git-merge.txt:125 +#. type: Labeled list +#: en/git-http-backend.txt:37 #, no-wrap -msgid "PRE-MERGE CHECKS" +msgid "http.getanyfile" msgstr "" #. type: Plain text -#: en/git-merge.txt:133 +#: en/git-http-backend.txt:44 msgid "" -"Before applying outside changes, you should get your own work in good shape " -"and committed locally, so it will not be clobbered if there are conflicts. " -"See also linkgit:git-stash[1]. 'git pull' and 'git merge' will stop without " -"doing anything when local uncommitted changes overlap with files that 'git " -"pull'/'git merge' may need to update." +"This serves Git clients older than version 1.6.6 that are unable to use the " +"upload pack service. When enabled, clients are able to read any file within " +"the repository, including objects that are no longer reachable from a branch " +"but are still present. It is enabled by default, but a repository can " +"disable it by setting this configuration item to `false`." msgstr "" -#. type: Plain text -#: en/git-merge.txt:139 -msgid "" -"To avoid recording unrelated changes in the merge commit, 'git pull' and " -"'git merge' will also abort if there are any changes registered in the index " -"relative to the `HEAD` commit. (One exception is when the changed index " -"entries are in the state that would result from the merge already.)" +#. type: Labeled list +#: en/git-http-backend.txt:45 +#, no-wrap +msgid "http.uploadpack" msgstr "" #. type: Plain text -#: en/git-merge.txt:142 +#: en/git-http-backend.txt:49 msgid "" -"If all named commits are already ancestors of `HEAD`, 'git merge' will exit " -"early with the message \"Already up-to-date.\"" +"This serves 'git fetch-pack' and 'git ls-remote' clients. It is enabled by " +"default, but a repository can disable it by setting this configuration item " +"to `false`." msgstr "" -#. type: Title - -#: en/git-merge.txt:144 +#. type: Labeled list +#: en/git-http-backend.txt:50 #, no-wrap -msgid "FAST-FORWARD MERGE" +msgid "http.receivepack" msgstr "" #. type: Plain text -#: en/git-merge.txt:154 +#: en/git-http-backend.txt:56 msgid "" -"Often the current branch head is an ancestor of the named commit. This is " -"the most common case especially when invoked from 'git pull': you are " -"tracking an upstream repository, you have committed no local changes, and " -"now you want to update to a newer upstream revision. In this case, a new " -"commit is not needed to store the combined history; instead, the `HEAD` " -"(along with the index) is updated to point at the named commit, without " -"creating an extra merge commit." -msgstr "" - -#. type: Plain text -#: en/git-merge.txt:156 -msgid "This behavior can be suppressed with the `--no-ff` option." +"This serves 'git send-pack' clients, allowing push. It is disabled by " +"default for anonymous users, and enabled by default for users authenticated " +"by the web server. It can be disabled by setting this item to `false`, or " +"enabled for all users, including anonymous users, by setting it to `true`." msgstr "" #. type: Title - -#: en/git-merge.txt:158 +#: en/git-http-backend.txt:58 #, no-wrap -msgid "TRUE MERGE" +msgid "URL TRANSLATION" msgstr "" #. type: Plain text -#: en/git-merge.txt:163 +#: en/git-http-backend.txt:65 msgid "" -"Except in a fast-forward merge (see above), the branches to be merged must " -"be tied together by a merge commit that has both of them as its parents." +"To determine the location of the repository on disk, 'git http-backend' " +"concatenates the environment variables PATH_INFO, which is set automatically " +"by the web server, and GIT_PROJECT_ROOT, which must be set manually in the " +"web server configuration. If GIT_PROJECT_ROOT is not set, 'git http-" +"backend' reads PATH_TRANSLATED, which is also set automatically by the web " +"server." msgstr "" #. type: Plain text -#: en/git-merge.txt:168 +#: en/git-http-backend.txt:70 msgid "" -"A merged version reconciling the changes from all branches to be merged is " -"committed, and your `HEAD`, index, and working tree are updated to it. It " -"is possible to have modifications in the working tree as long as they do not " -"overlap; the update will preserve them." -msgstr "" - -#. type: Plain text -#: en/git-merge.txt:171 -msgid "When it is not obvious how to reconcile the changes, the following happens:" +"All of the following examples map `http://$hostname/git/foo/bar.git` to `/" +"var/www/git/foo/bar.git`." msgstr "" -#. type: Plain text -#: en/git-merge.txt:173 -msgid "The `HEAD` pointer stays the same." +#. type: Labeled list +#: en/git-http-backend.txt:71 +#, no-wrap +msgid "Apache 2.x" msgstr "" #. type: Plain text -#: en/git-merge.txt:174 -msgid "The `MERGE_HEAD` ref is set to point to the other branch head." +#: en/git-http-backend.txt:75 +msgid "" +"Ensure mod_cgi, mod_alias, and mod_env are enabled, set GIT_PROJECT_ROOT (or " +"DocumentRoot) appropriately, and create a ScriptAlias to the CGI:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:176 +#. type: delimited block - +#: en/git-http-backend.txt:80 +#, no-wrap msgid "" -"Paths that merged cleanly are updated both in the index file and in your " -"working tree." +"SetEnv GIT_PROJECT_ROOT /var/www/git\n" +"SetEnv GIT_HTTP_EXPORT_ALL\n" +"ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:182 +#: en/git-http-backend.txt:86 msgid "" -"For conflicting paths, the index file records up to three versions: stage 1 " -"stores the version from the common ancestor, stage 2 from `HEAD`, and stage " -"3 from `MERGE_HEAD` (you can inspect the stages with `git ls-files -u`). " -"The working tree files contain the result of the \"merge\" program; " -"i.e. 3-way merge results with familiar conflict markers `<<<` `===` `>>>`." +"To enable anonymous read access but authenticated write access, require " +"authorization for both the initial ref advertisement (which we detect as a " +"push via the service parameter in the query string), and the receive-pack " +"invocation itself:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:186 +#. type: delimited block - +#: en/git-http-backend.txt:91 +#, no-wrap msgid "" -"No other changes are made. In particular, the local modifications you had " -"before you started merge will stay the same and the index entries for them " -"stay as they were, i.e. matching `HEAD`." +"RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]\n" +"RewriteCond %{REQUEST_URI} /git-receive-pack$\n" +"RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]\n" msgstr "" -#. type: Plain text -#: en/git-merge.txt:189 +#. type: delimited block - +#: en/git-http-backend.txt:95 +#, no-wrap msgid "" -"If you tried a merge which resulted in complex conflicts and want to start " -"over, you can recover with `git merge --abort`." +"<LocationMatch \"^/git/\">\n" +"\tOrder Deny,Allow\n" +"\tDeny from env=AUTHREQUIRED\n" msgstr "" -#. type: Title - -#: en/git-merge.txt:191 +#. type: delimited block - +#: en/git-http-backend.txt:102 #, no-wrap -msgid "MERGING TAG" +msgid "" +"\tAuthType Basic\n" +"\tAuthName \"Git Access\"\n" +"\tRequire group committers\n" +"\tSatisfy Any\n" +"\t...\n" +"</LocationMatch>\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:198 +#: en/git-http-backend.txt:107 msgid "" -"When merging an annotated (and possibly signed) tag, Git always creates a " -"merge commit even if a fast-forward merge is possible, and the commit " -"message template is prepared with the tag message. Additionally, if the tag " -"is signed, the signature check is reported as a comment in the message " -"template. See also linkgit:git-tag[1]." +"If you do not have `mod_rewrite` available to match against the query " +"string, it is sufficient to just protect `git-receive-pack` itself, like:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:202 +#. type: delimited block - +#: en/git-http-backend.txt:115 +#, no-wrap msgid "" -"When you want to just integrate with the work leading to the commit that " -"happens to be tagged, e.g. synchronizing with an upstream release point, you " -"may not want to make an unnecessary merge commit." +"<LocationMatch \"^/git/.*/git-receive-pack$\">\n" +"\tAuthType Basic\n" +"\tAuthName \"Git Access\"\n" +"\tRequire group committers\n" +"\t...\n" +"</LocationMatch>\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:206 +#: en/git-http-backend.txt:125 msgid "" -"In such a case, you can \"unwrap\" the tag yourself before feeding it to " -"`git merge`, or pass `--ff-only` when you do not have any work on your " -"own. e.g." +"In this mode, the server will not request authentication until the client " +"actually starts the object negotiation phase of the push, rather than during " +"the initial contact. For this reason, you must also enable the `http." +"receivepack` config option in any repositories that should accept a push. " +"The default behavior, if `http.receivepack` is not set, is to reject any " +"pushes by unauthenticated users; the initial request will therefore report " +"`403 Forbidden` to the client, without even giving an opportunity for " +"authentication." msgstr "" -#. type: delimited block - -#: en/git-merge.txt:211 -#, no-wrap +#. type: Plain text +#: en/git-http-backend.txt:128 msgid "" -"git fetch origin\n" -"git merge v1.2.3^0\n" -"git merge --ff-only v1.2.3\n" +"To require authentication for both reads and writes, use a Location " +"directive around the repository, or one of its parent directories:" msgstr "" -#. type: Title - -#: en/git-merge.txt:215 +#. type: delimited block - +#: en/git-http-backend.txt:136 #, no-wrap -msgid "HOW CONFLICTS ARE PRESENTED" +msgid "" +"<Location /git/private>\n" +"\tAuthType Basic\n" +"\tAuthName \"Private Git Access\"\n" +"\tRequire group committers\n" +"\t...\n" +"</Location>\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:224 +#: en/git-http-backend.txt:141 msgid "" -"During a merge, the working tree files are updated to reflect the result of " -"the merge. Among the changes made to the common ancestor's version, " -"non-overlapping ones (that is, you changed an area of the file while the " -"other side left that area intact, or vice versa) are incorporated in the " -"final result verbatim. When both sides made changes to the same area, " -"however, Git cannot randomly pick one side over the other, and asks you to " -"resolve it by leaving what both sides did to that area." +"To serve gitweb at the same url, use a ScriptAliasMatch to only those URLs " +"that 'git http-backend' can handle, and forward the rest to gitweb:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:227 +#. type: delimited block - +#: en/git-http-backend.txt:151 +#, no-wrap msgid "" -"By default, Git uses the same style as the one used by the \"merge\" program " -"from the RCS suite to present such a conflicted hunk, like this:" +"ScriptAliasMatch \\\n" +"\t\"(?x)^/git/(.*/(HEAD | \\\n" +"\t\t\tinfo/refs | \\\n" +"\t\t\tobjects/(info/[^/]+ | \\\n" +"\t\t\t\t [0-9a-f]{2}/[0-9a-f]{38} | \\\n" +"\t\t\t\t pack/pack-[0-9a-f]{40}\\.(pack|idx)) | \\\n" +"\t\t\tgit-(upload|receive)-pack))$\" \\\n" +"\t/usr/libexec/git-core/git-http-backend/$1\n" msgstr "" #. type: delimited block - -#: en/git-merge.txt:238 +#: en/git-http-backend.txt:153 #, no-wrap -msgid "" -"Here are lines that are either unchanged from the common\n" -"ancestor, or cleanly resolved because only one side changed.\n" -"<<<<<<< yours:sample.txt\n" -"Conflict resolution is hard;\n" -"let's go shopping.\n" -"=======\n" -"Git makes conflict resolution easy.\n" -">>>>>>> theirs:sample.txt\n" -"And here is another line that is cleanly resolved or unmodified.\n" +msgid "ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:243 +#: en/git-http-backend.txt:157 msgid "" -"The area where a pair of conflicting changes happened is marked with markers " -"`<<<<<<<`, `=======`, and `>>>>>>>`. The part before the `=======` is " -"typically your side, and the part afterwards is typically their side." +"To serve multiple repositories from different linkgit:gitnamespaces[7] in a " +"single repository:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:249 +#. type: delimited block - +#: en/git-http-backend.txt:161 +#, no-wrap msgid "" -"The default format does not show what the original said in the conflicting " -"area. You cannot tell how many lines are deleted and replaced with Barbie's " -"remark on your side. The only thing you can tell is that your side wants to " -"say it is hard and you'd prefer to go shopping, while the other side wants " -"to claim it is easy." +"SetEnvIf Request_URI \"^/git/([^/]*)\" GIT_NAMESPACE=$1\n" +"ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1\n" +msgstr "" + +#. type: Labeled list +#: en/git-http-backend.txt:163 +#, no-wrap +msgid "Accelerated static Apache 2.x" msgstr "" #. type: Plain text -#: en/git-merge.txt:253 +#: en/git-http-backend.txt:168 msgid "" -"An alternative style can be used by setting the \"merge.conflictStyle\" " -"configuration variable to \"diff3\". In \"diff3\" style, the above conflict " -"may look like this:" +"Similar to the above, but Apache can be used to return static files that are " +"stored on disk.\tOn many systems this may be more efficient as Apache can " +"ask the kernel to copy the file contents from the file system directly to " +"the network:" +msgstr "" + +#. type: delimited block - +#: en/git-http-backend.txt:171 en/git-http-backend.txt:181 +#, no-wrap +msgid "SetEnv GIT_PROJECT_ROOT /var/www/git\n" msgstr "" #. type: delimited block - -#: en/git-merge.txt:266 +#: en/git-http-backend.txt:175 #, no-wrap msgid "" -"Here are lines that are either unchanged from the common\n" -"ancestor, or cleanly resolved because only one side changed.\n" -"<<<<<<< yours:sample.txt\n" -"Conflict resolution is hard;\n" -"let's go shopping.\n" -"|||||||\n" -"Conflict resolution is hard.\n" -"=======\n" -"Git makes conflict resolution easy.\n" -">>>>>>> theirs:sample.txt\n" -"And here is another line that is cleanly resolved or unmodified.\n" +"AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1\n" +"AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1\n" +"ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:274 -msgid "" -"In addition to the `<<<<<<<`, `=======`, and `>>>>>>>` markers, it uses " -"another `|||||||` marker that is followed by the original text. You can " -"tell that the original just stated a fact, and your side simply gave in to " -"that statement and gave up, while the other side tried to have a more " -"positive attitude. You can sometimes come up with a better resolution by " -"viewing the original." +#: en/git-http-backend.txt:178 +msgid "This can be combined with the gitweb configuration:" msgstr "" -#. type: Title - -#: en/git-merge.txt:277 +#. type: delimited block - +#: en/git-http-backend.txt:191 #, no-wrap -msgid "HOW TO RESOLVE CONFLICTS" +msgid "" +"AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1\n" +"AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1\n" +"ScriptAliasMatch \\\n" +"\t\"(?x)^/git/(.*/(HEAD | \\\n" +"\t\t\tinfo/refs | \\\n" +"\t\t\tobjects/info/[^/]+ | \\\n" +"\t\t\tgit-(upload|receive)-pack))$\" \\\n" +"\t/usr/libexec/git-core/git-http-backend/$1\n" +"ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/\n" msgstr "" -#. type: Plain text -#: en/git-merge.txt:280 -msgid "After seeing a conflict, you can do two things:" +#. type: Labeled list +#: en/git-http-backend.txt:193 +#, no-wrap +msgid "Lighttpd" msgstr "" #. type: Plain text -#: en/git-merge.txt:285 +#: en/git-http-backend.txt:197 msgid "" -"Decide not to merge. The only clean-ups you need are to reset the index " -"file to the `HEAD` commit to reverse 2. and to clean up working tree changes " -"made by 2. and 3.; `git merge --abort` can be used for this." +"Ensure that `mod_cgi`, `mod_alias`, `mod_auth`, `mod_setenv` are loaded, " +"then set `GIT_PROJECT_ROOT` appropriately and redirect all requests to the " +"CGI:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:289 +#. type: delimited block - +#: en/git-http-backend.txt:207 +#, no-wrap msgid "" -"Resolve the conflicts. Git will mark the conflicts in the working tree. " -"Edit the files into shape and 'git add' them to the index. Use 'git commit' " -"to seal the deal." +"alias.url += ( \"/git\" => \"/usr/lib/git-core/git-http-backend\" )\n" +"$HTTP[\"url\"] =~ \"^/git\" {\n" +"\tcgi.assign = (\"\" => \"\")\n" +"\tsetenv.add-environment = (\n" +"\t\t\"GIT_PROJECT_ROOT\" => \"/var/www/git\",\n" +"\t\t\"GIT_HTTP_EXPORT_ALL\" => \"\"\n" +"\t)\n" +"}\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:291 -msgid "You can work through the conflict with a number of tools:" +#: en/git-http-backend.txt:210 +msgid "To enable anonymous read access but authenticated write access:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:294 +#. type: delimited block - +#: en/git-http-backend.txt:218 +#, no-wrap msgid "" -"Use a mergetool. `git mergetool` to launch a graphical mergetool which will " -"work you through the merge." +"$HTTP[\"querystring\"] =~ \"service=git-receive-pack\" {\n" +"\tinclude \"git-auth.conf\"\n" +"}\n" +"$HTTP[\"url\"] =~ \"^/git/.*/git-receive-pack$\" {\n" +"\tinclude \"git-auth.conf\"\n" +"}\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:298 -msgid "" -"Look at the diffs. `git diff` will show a three-way diff, highlighting " -"changes from both the `HEAD` and `MERGE_HEAD` versions." +#: en/git-http-backend.txt:221 +msgid "where `git-auth.conf` looks something like:" msgstr "" -#. type: Plain text -#: en/git-merge.txt:302 +#. type: delimited block - +#: en/git-http-backend.txt:231 +#, no-wrap msgid "" -"Look at the diffs from each branch. `git log --merge -p <path>` will show " -"diffs first for the `HEAD` version and then the `MERGE_HEAD` version." +"auth.require = (\n" +"\t\"/\" => (\n" +"\t\t\"method\" => \"basic\",\n" +"\t\t\"realm\" => \"Git Access\",\n" +"\t\t\"require\" => \"valid-user\"\n" +"\t )\n" +")\n" +"# ...and set up auth.backend here\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:307 +#: en/git-http-backend.txt:234 +msgid "To require authentication for both reads and writes:" +msgstr "" + +#. type: delimited block - +#: en/git-http-backend.txt:239 +#, no-wrap msgid "" -"Look at the originals. `git show :1:filename` shows the common ancestor, " -"`git show :2:filename` shows the `HEAD` version, and `git show :3:filename` " -"shows the `MERGE_HEAD` version." +"$HTTP[\"url\"] =~ \"^/git/private\" {\n" +"\tinclude \"git-auth.conf\"\n" +"}\n" msgstr "" #. type: Plain text -#: en/git-merge.txt:314 +#: en/git-http-backend.txt:246 msgid "" -"Merge branches `fixes` and `enhancements` on top of the current branch, " -"making an octopus merge:" +"'git http-backend' relies upon the `CGI` environment variables set by the " +"invoking web server, including:" msgstr "" -#. type: delimited block - -#: en/git-merge.txt:317 -#, no-wrap -msgid "$ git merge fixes enhancements\n" +#. type: Plain text +#: en/git-http-backend.txt:248 +msgid "PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)" msgstr "" #. type: Plain text -#: en/git-merge.txt:321 -msgid "" -"Merge branch `obsolete` into the current branch, using `ours` merge " -"strategy:" +#: en/git-http-backend.txt:249 +msgid "REMOTE_USER" msgstr "" -#. type: delimited block - -#: en/git-merge.txt:324 -#, no-wrap -msgid "$ git merge -s ours obsolete\n" +#. type: Plain text +#: en/git-http-backend.txt:250 +msgid "REMOTE_ADDR" msgstr "" #. type: Plain text -#: en/git-merge.txt:328 -msgid "" -"Merge branch `maint` into the current branch, but do not make a new commit " -"automatically:" +#: en/git-http-backend.txt:251 +msgid "CONTENT_TYPE" msgstr "" -#. type: delimited block - -#: en/git-merge.txt:331 -#, no-wrap -msgid "$ git merge --no-commit maint\n" +#. type: Plain text +#: en/git-http-backend.txt:252 +msgid "QUERY_STRING" msgstr "" #. type: Plain text -#: en/git-merge.txt:335 -msgid "" -"This can be used when you want to include further changes to the merge, or " -"want to write your own merge commit message." +#: en/git-http-backend.txt:253 +msgid "REQUEST_METHOD" msgstr "" #. type: Plain text -#: en/git-merge.txt:339 +#: en/git-http-backend.txt:257 msgid "" -"You should refrain from abusing this option to sneak substantial changes " -"into a merge commit. Small fixups like bumping release/version name would " -"be acceptable." +"The `GIT_HTTP_EXPORT_ALL` environmental variable may be passed to 'git-http-" +"backend' to bypass the check for the \"git-daemon-export-ok\" file in each " +"repository before allowing export of that repository." msgstr "" -#. type: Labeled list -#: en/git-merge.txt:347 en/config.txt:985 -#, no-wrap -msgid "branch.<name>.mergeOptions" +#. type: Plain text +#: en/git-http-backend.txt:266 +msgid "" +"The `GIT_HTTP_MAX_REQUEST_BUFFER` environment variable (or the `http." +"maxRequestBuffer` config variable) may be set to change the largest ref " +"negotiation request that git will handle during a fetch; any fetch requiring " +"a larger buffer will not succeed. This value should not normally need to be " +"changed, but may be helpful if you are fetching from a repository with an " +"extremely large number of refs. The value can be specified with a unit (e." +"g., `100M` for 100 megabytes). The default is 10 megabytes." msgstr "" #. type: Plain text -#: en/git-merge.txt:351 +#: en/git-http-backend.txt:271 msgid "" -"Sets default options for merging into branch <name>. The syntax and " -"supported options are the same as those of 'git merge', but option values " -"containing whitespace characters are currently not supported." +"The backend process sets GIT_COMMITTER_NAME to '$REMOTE_USER' and " +"GIT_COMMITTER_EMAIL to '$\\{REMOTE_USER}@http.$\\{REMOTE_ADDR\\}', ensuring " +"that any reflogs created by 'git-receive-pack' contain some identifying " +"information of the remote user who performed the push." msgstr "" #. type: Plain text -#: en/git-merge.txt:360 +#: en/git-http-backend.txt:274 msgid "" -"linkgit:git-fmt-merge-msg[1], linkgit:git-pull[1], linkgit:gitattributes[5], " -"linkgit:git-reset[1], linkgit:git-diff[1], linkgit:git-ls-files[1], " -"linkgit:git-add[1], linkgit:git-rm[1], linkgit:git-mergetool[1]" +"All `CGI` environment variables are available to each of the hooks invoked " +"by the 'git-receive-pack'." msgstr "" #. type: Title = -#: en/git-mktag.txt:2 +#: en/git-http-fetch.txt:2 #, no-wrap -msgid "git-mktag(1)" +msgid "git-http-fetch(1)" msgstr "" #. type: Plain text -#: en/git-mktag.txt:7 -msgid "git-mktag - Creates a tag object" +#: en/git-http-fetch.txt:7 +msgid "git-http-fetch - Download from a remote Git repository via HTTP" msgstr "" #. type: Plain text -#: en/git-mktag.txt:13 +#: en/git-http-fetch.txt:13 #, no-wrap -msgid "'git mktag'\n" +msgid "'git http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin] <commit> <url>\n" msgstr "" #. type: Plain text -#: en/git-mktag.txt:18 -msgid "" -"Reads a tag contents on standard input and creates a tag object that can " -"also be used to sign other objects." +#: en/git-http-fetch.txt:17 +msgid "Downloads a remote Git repository via HTTP." msgstr "" #. type: Plain text -#: en/git-mktag.txt:20 -msgid "The output is the new tag's <object> identifier." +#: en/git-http-fetch.txt:21 +msgid "" +"This command always gets all objects. Historically, there were three options " +"`-a`, `-c` and `-t` for choosing which objects to download. They are now " +"silently ignored." msgstr "" -#. type: Title - -#: en/git-mktag.txt:22 +#. type: Labeled list +#: en/git-http-fetch.txt:24 #, no-wrap -msgid "Tag Format" +msgid "commit-id" msgstr "" #. type: Plain text -#: en/git-mktag.txt:25 -msgid "" -"A tag signature file, to be fed to this command's standard input, has a very " -"simple fixed format: four lines of" +#: en/git-http-fetch.txt:27 +msgid "Either the hash or the filename under [URL]/refs/ to pull." msgstr "" -#. type: Plain text -#: en/git-mktag.txt:30 +#. type: Labeled list +#: en/git-http-fetch.txt:28 #, no-wrap -msgid "" -" object <sha1>\n" -" type <typename>\n" -" tag <tagname>\n" -" tagger <tagger>\n" +msgid "-a, -c, -t" msgstr "" #. type: Plain text -#: en/git-mktag.txt:36 -msgid "" -"followed by some 'optional' free-form message (some tags created by older " -"Git may not have `tagger` line). The message, when exists, is separated by " -"a blank line from the header. The message part may contain a signature that " -"Git itself doesn't care about, but that can be verified with gpg." -msgstr "" - -#. type: Title = -#: en/git-mktree.txt:2 -#, no-wrap -msgid "git-mktree(1)" +#: en/git-http-fetch.txt:30 +msgid "These options are ignored for historical reasons." msgstr "" #. type: Plain text -#: en/git-mktree.txt:7 -msgid "git-mktree - Build a tree-object from ls-tree formatted text" +#: en/git-http-fetch.txt:32 +msgid "Report what is downloaded." msgstr "" -#. type: Plain text -#: en/git-mktree.txt:13 +#. type: Labeled list +#: en/git-http-fetch.txt:33 #, no-wrap -msgid "'git mktree' [-z] [--missing] [--batch]\n" +msgid "-w <filename>" msgstr "" #. type: Plain text -#: en/git-mktree.txt:20 +#: en/git-http-fetch.txt:36 msgid "" -"Reads standard input in non-recursive `ls-tree` output format, and creates a " -"tree object. The order of the tree entries is normalised by mktree so " -"pre-sorting the input is not required. The object name of the tree object " -"built is written to the standard output." +"Writes the commit-id into the filename under $GIT_DIR/refs/<filename> on the " +"local end after the transfer is complete." msgstr "" #. type: Plain text -#: en/git-mktree.txt:25 -msgid "Read the NUL-terminated `ls-tree -z` output instead." +#: en/git-http-fetch.txt:40 +msgid "" +"Instead of a commit id on the command line (which is not expected in this " +"case), 'git http-fetch' expects lines on stdin in the format" msgstr "" -#. type: Labeled list -#: en/git-mktree.txt:26 +#. type: Plain text +#: en/git-http-fetch.txt:42 #, no-wrap -msgid "--missing" +msgid "<commit-id>['\\t'<filename-as-in--w>]\n" msgstr "" -#. type: Plain text -#: en/git-mktree.txt:31 -msgid "" -"Allow missing objects. The default behaviour (without this option) is to " -"verify that each tree entry's sha1 identifies an existing object. This " -"option has no effect on the treatment of gitlink entries (aka " -"\"submodules\") which are always allowed to be missing." +#. type: Labeled list +#: en/git-http-fetch.txt:43 +#, no-wrap +msgid "--recover" msgstr "" #. type: Plain text -#: en/git-mktree.txt:37 +#: en/git-http-fetch.txt:46 msgid "" -"Allow building of more than one tree object before exiting. Each tree is " -"separated by as single blank line. The final new-line is optional. Note - " -"if the `-z` option is used, lines are terminated with NUL." +"Verify that everything reachable from target is fetched. Used after an " +"earlier fetch is interrupted." msgstr "" #. type: Title = -#: en/git-mv.txt:2 +#: en/git-http-push.txt:2 #, no-wrap -msgid "git-mv(1)" +msgid "git-http-push(1)" msgstr "" #. type: Plain text -#: en/git-mv.txt:7 -msgid "git-mv - Move or rename a file, a directory, or a symlink" +#: en/git-http-push.txt:7 +msgid "git-http-push - Push objects over HTTP/DAV to another repository" msgstr "" #. type: Plain text -#: en/git-mv.txt:13 +#: en/git-http-push.txt:13 #, no-wrap -msgid "'git mv' <options>... <args>...\n" +msgid "'git http-push' [--all] [--dry-run] [--force] [--verbose] <url> <ref> [<ref>...]\n" msgstr "" #. type: Plain text -#: en/git-mv.txt:17 -msgid "Move or rename a file, directory or symlink." +#: en/git-http-push.txt:18 +msgid "" +"Sends missing objects to remote repository, and updates the remote branch." msgstr "" #. type: Plain text -#: en/git-mv.txt:20 +#: en/git-http-push.txt:22 #, no-wrap msgid "" -" git mv [-v] [-f] [-n] [-k] <source> <destination>\n" -" git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>\n" +"*NOTE*: This command is temporarily disabled if your libcurl\n" +"is older than 7.16, as the combination has been reported\n" +"not to work and sometimes corrupts repository.\n" msgstr "" #. type: Plain text -#: en/git-mv.txt:25 +#: en/git-http-push.txt:29 msgid "" -"In the first form, it renames <source>, which must exist and be either a " -"file, symlink or directory, to <destination>. In the second form, the last " -"argument has to be an existing directory; the given sources will be moved " -"into this directory." +"Do not assume that the remote repository is complete in its current state, " +"and verify all objects in the entire local ref's history exist in the remote " +"repository." msgstr "" #. type: Plain text -#: en/git-mv.txt:28 +#: en/git-http-push.txt:36 en/git-send-pack.txt:60 msgid "" -"The index is updated after successful completion, but the change must still " -"be committed." +"Usually, the command refuses to update a remote ref that is not an ancestor " +"of the local ref used to overwrite it. This flag disables the check. What " +"this means is that the remote repository can lose commits; use it with care." msgstr "" #. type: Plain text -#: en/git-mv.txt:34 -msgid "Force renaming or moving of a file even if the target exists" +#: en/git-http-push.txt:39 en/git-push.txt:175 en/git-send-pack.txt:53 +msgid "Do everything except actually send the updates." msgstr "" #. type: Plain text -#: en/git-mv.txt:39 +#: en/git-http-push.txt:43 msgid "" -"Skip move or rename actions which would lead to an error condition. An error " -"happens when a source is neither existing nor controlled by Git, or when it " -"would overwrite an existing file unless `-f` is given." +"Report the list of objects being walked locally and the list of objects " +"successfully sent to the remote repository." msgstr "" #. type: Plain text -#: en/git-mv.txt:42 -msgid "Do nothing; only show what would happen" +#: en/git-http-push.txt:49 +msgid "" +"Remove <ref> from remote repository. The specified branch cannot be the " +"remote HEAD. If -d is specified the following other conditions must also be " +"met:" msgstr "" #. type: Plain text -#: en/git-mv.txt:46 -msgid "Report the names of files as they are moved." -msgstr "" - -#. type: Title - -#: en/git-mv.txt:48 en/git-rm.txt:138 -#, no-wrap -msgid "SUBMODULES" +#: en/git-http-push.txt:51 +msgid "Remote HEAD must resolve to an object that exists locally" msgstr "" #. type: Plain text -#: en/git-mv.txt:54 -msgid "" -"Moving a submodule using a gitfile (which means they were cloned with a Git " -"version 1.7.8 or newer) will update the gitfile and core.worktree setting to " -"make the submodule work in the new location. It also will attempt to update " -"the submodule.<name>.path setting in the linkgit:gitmodules[5] file and " -"stage that file (unless -n is used)." +#: en/git-http-push.txt:52 +msgid "Specified branch resolves to an object that exists locally" msgstr "" #. type: Plain text -#: en/git-mv.txt:66 -msgid "" -"Each time a superproject update moves a populated submodule (e.g. when " -"switching between commits before and after the move) a stale submodule " -"checkout will remain in the old location and an empty directory will appear " -"in the new location. To populate the submodule again in the new location the " -"user will have to run \"git submodule update\" afterwards. Removing the old " -"directory is only safe when it uses a gitfile, as otherwise the history of " -"the submodule will be deleted too. Both steps will be obsolete when " -"recursive submodule update has been implemented." +#: en/git-http-push.txt:53 +msgid "Specified branch is an ancestor of the remote HEAD" msgstr "" -#. type: Title = -#: en/git-name-rev.txt:2 +#. type: Labeled list +#: en/git-http-push.txt:54 en/git-send-pack.txt:98 #, no-wrap -msgid "git-name-rev(1)" +msgid "<ref>..." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:7 -msgid "git-name-rev - Find symbolic names for given revs" +#: en/git-http-push.txt:56 en/git-send-pack.txt:100 +msgid "The remote refs to update." msgstr "" -#. type: Plain text -#: en/git-name-rev.txt:14 +#. type: Title - +#: en/git-http-push.txt:59 en/git-send-pack.txt:103 #, no-wrap -msgid "" -"'git name-rev' [--tags] [--refs=<pattern>]\n" -"\t ( --all | --stdin | <commit-ish>... )\n" +msgid "SPECIFYING THE REFS" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:19 +#: en/git-http-push.txt:65 msgid "" -"Finds symbolic names suitable for human digestion for revisions given in any " -"format parsable by 'git rev-parse'." +"A '<ref>' specification can be either a single pattern, or a pair of such " +"patterns separated by a colon \":\" (this means that a ref name cannot have " +"a colon in it). A single pattern '<name>' is just a shorthand for '<name>:" +"<name>'." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:26 -msgid "Do not use branch names, but only tags to name the commits" +#: en/git-http-push.txt:71 +msgid "" +"Each pattern pair consists of the source side (before the colon) and the " +"destination side (after the colon). The ref to be pushed is determined by " +"finding a match that matches the source side, and where it is pushed is " +"determined by using the destination side." msgstr "" -#. type: Labeled list -#: en/git-name-rev.txt:27 -#, no-wrap -msgid "--refs=<pattern>" +#. type: Plain text +#: en/git-http-push.txt:74 en/git-send-pack.txt:131 +msgid "It is an error if <src> does not match exactly one of the local refs." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:32 -msgid "" -"Only use refs whose names match a given shell pattern. The pattern can be " -"one of branch name, tag name or fully qualified ref name. If given multiple " -"times, use refs whose names match any of the given shell patterns. Use " -"`--no-refs` to clear any previous ref patterns given." +#: en/git-http-push.txt:76 en/git-send-pack.txt:135 +msgid "If <dst> does not match any remote ref, either" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:41 +#: en/git-http-push.txt:79 en/git-send-pack.txt:138 msgid "" -"Do not use any ref whose name matches a given shell pattern. The pattern can " -"be one of branch name, tag name or fully qualified ref name. If given " -"multiple times, a ref will be excluded when it matches any of the given " -"patterns. When used together with --refs, a ref will be used as a match only " -"when it matches at least one --refs pattern and does not match any --exclude " -"patterns. Use `--no-exclude` to clear the list of exclude patterns." +"it has to start with \"refs/\"; <dst> is used as the destination literally " +"in this case." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:44 -msgid "List all commits reachable from all refs" +#: en/git-http-push.txt:83 en/git-send-pack.txt:142 +msgid "" +"<src> == <dst> and the ref that matched the <src> must not exist in the set " +"of remote refs; the ref matched <src> locally is used as the name of the " +"destination." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:50 +#: en/git-http-push.txt:89 en/git-send-pack.txt:148 msgid "" -"Transform stdin by substituting all the 40-character SHA-1 hexes (say $hex) " -"with \"$hex ($rev_name)\". When used with --name-only, substitute with " -"\"$rev_name\", omitting $hex altogether. Intended for the scripter's use." +"Without `--force`, the <src> ref is stored at the remote only if <dst> does " +"not exist, or <dst> is a proper subset (i.e. an ancestor) of <src>. This " +"check, known as \"fast-forward check\", is performed in order to avoid " +"accidentally overwriting the remote ref and lose other peoples' commits from " +"there." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:56 +#: en/git-http-push.txt:91 en/git-send-pack.txt:150 +msgid "With `--force`, the fast-forward check is disabled for all refs." +msgstr "" + +#. type: Plain text +#: en/git-http-push.txt:94 en/git-send-pack.txt:153 msgid "" -"Instead of printing both the SHA-1 and the name, print only the name. If " -"given with --tags the usual tag prefix of \"tags/\" is also omitted from the " -"name, matching the output of `git-describe` more closely." +"Optionally, a <ref> parameter can be prefixed with a plus '+' sign to " +"disable the fast-forward check only on that ref." msgstr "" -#. type: Labeled list -#: en/git-name-rev.txt:57 +#. type: Title = +#: en/git-imap-send.txt:2 #, no-wrap -msgid "--no-undefined" +msgid "git-imap-send(1)" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:60 +#: en/git-imap-send.txt:7 msgid "" -"Die with error code != 0 when a reference is undefined, instead of printing " -"`undefined`." +"git-imap-send - Send a collection of patches from stdin to an IMAP folder" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:71 -msgid "" -"Given a commit, find out where it is relative to the local refs. Say " -"somebody wrote you about that fantastic commit " -"33db5f4d9027a10e477ccf054b2c1ab94f74c85a. Of course, you look into the " -"commit, but that only tells you what happened, but not the context." +#: en/git-imap-send.txt:13 +#, no-wrap +msgid "'git imap-send' [-v] [-q] [--[no-]curl]\n" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:73 -msgid "Enter 'git name-rev':" -msgstr "" - -#. type: delimited block - -#: en/git-name-rev.txt:77 -#, no-wrap +#: en/git-imap-send.txt:23 msgid "" -"% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a\n" -"33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940\n" +"This command uploads a mailbox generated with 'git format-patch' into an " +"IMAP drafts folder. This allows patches to be sent as other email is when " +"using mail clients that cannot read mailbox files directly. The command also " +"works with any general mailbox in which emails have the fields \"From\", " +"\"Date\", and \"Subject\" in that order." msgstr "" #. type: Plain text -#: en/git-name-rev.txt:80 -msgid "" -"Now you are wiser, because you know that it happened 940 revisions before " -"v0.99." +#: en/git-imap-send.txt:25 +msgid "Typical usage is something like:" msgstr "" #. type: Plain text -#: en/git-name-rev.txt:82 -msgid "Another nice thing you can do is:" +#: en/git-imap-send.txt:27 +msgid "git format-patch --signoff --stdout --attach origin | git imap-send" msgstr "" -#. type: delimited block - -#: en/git-name-rev.txt:85 -#, no-wrap -msgid "% git log | git name-rev --stdin\n" +#. type: Plain text +#: en/git-imap-send.txt:39 +msgid "Be quiet." msgstr "" -#. type: Title = -#: en/git-notes.txt:2 +#. type: Labeled list +#: en/git-imap-send.txt:40 #, no-wrap -msgid "git-notes(1)" +msgid "--curl" msgstr "" #. type: Plain text -#: en/git-notes.txt:7 -msgid "git-notes - Add or inspect object notes" +#: en/git-imap-send.txt:44 +msgid "" +"Use libcurl to communicate with the IMAP server, unless tunneling into it. " +"Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND option set." msgstr "" -#. type: Plain text -#: en/git-notes.txt:23 +#. type: Labeled list +#: en/git-imap-send.txt:45 #, no-wrap -msgid "" -"'git notes' [list [<object>]]\n" -"'git notes' add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) " -"<object>] [<object>]\n" -"'git notes' copy [-f] ( --stdin | <from-object> <to-object> )\n" -"'git notes' append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) " -"<object>] [<object>]\n" -"'git notes' edit [--allow-empty] [<object>]\n" -"'git notes' show [<object>]\n" -"'git notes' merge [-v | -q] [-s <strategy> ] <notes-ref>\n" -"'git notes' merge --commit [-v | -q]\n" -"'git notes' merge --abort [-v | -q]\n" -"'git notes' remove [--ignore-missing] [--stdin] [<object>...]\n" -"'git notes' prune [-n | -v]\n" -"'git notes' get-ref\n" +msgid "--no-curl" msgstr "" #. type: Plain text -#: en/git-notes.txt:29 +#: en/git-imap-send.txt:49 msgid "" -"Adds, removes, or reads notes attached to objects, without touching the " -"objects themselves." +"Talk to the IMAP server using git's own IMAP routines instead of using " +"libcurl. Ignored if Git was built with the NO_OPENSSL option set." msgstr "" #. type: Plain text -#: en/git-notes.txt:34 +#: en/git-imap-send.txt:56 msgid "" -"By default, notes are saved to and read from `refs/notes/commits`, but this " -"default can be overridden. See the OPTIONS, CONFIGURATION, and ENVIRONMENT " -"sections below. If this ref does not exist, it will be quietly created when " -"it is first needed to store a note." +"To use the tool, imap.folder and either imap.tunnel or imap.host must be set " +"to appropriate values." msgstr "" #. type: Plain text -#: en/git-notes.txt:41 -msgid "" -"A typical use of notes is to supplement a commit message without changing " -"the commit itself. Notes can be shown by 'git log' along with the original " -"commit message. To distinguish these notes from the message stored in the " -"commit object, the notes are indented like the message, after an unindented " -"line saying \"Notes (<refname>):\" (or \"Notes:\" for `refs/notes/commits`)." +#: en/git-imap-send.txt:66 +msgid "Using tunnel mode:" msgstr "" -#. type: Plain text -#: en/git-notes.txt:45 +#. type: delimited block . +#: en/git-imap-send.txt:71 +#, no-wrap msgid "" -"Notes can also be added to patches prepared with `git format-patch` by using " -"the `--notes` option. Such notes are added as a patch commentary after a " -"three dash separator line." +"[imap]\n" +" folder = \"INBOX.Drafts\"\n" +" tunnel = \"ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null\"\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:48 -msgid "" -"To change which notes are shown by 'git log', see the \"notes.displayRef\" " -"configuration in linkgit:git-log[1]." +#: en/git-imap-send.txt:74 +msgid "Using direct mode:" msgstr "" -#. type: Plain text -#: en/git-notes.txt:51 +#. type: delimited block . +#: en/git-imap-send.txt:81 +#, no-wrap msgid "" -"See the \"notes.rewrite.<command>\" configuration for a way to carry notes " -"across commands that rewrite commits." +"[imap]\n" +" folder = \"INBOX.Drafts\"\n" +" host = imap://imap.example.com\n" +" user = bob\n" +" pass = p4ssw0rd\n" msgstr "" -#. type: Title - -#: en/git-notes.txt:54 -#, no-wrap -msgid "SUBCOMMANDS" +#. type: Plain text +#: en/git-imap-send.txt:84 +msgid "Using direct mode with SSL:" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:56 en/git-worktree.txt:59 +#. type: delimited block . +#: en/git-imap-send.txt:93 #, no-wrap -msgid "list" +msgid "" +"[imap]\n" +" folder = \"INBOX.Drafts\"\n" +" host = imaps://imap.example.com\n" +" user = bob\n" +" pass = p4ssw0rd\n" +" port = 123\n" +" sslverify = false\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:61 +#: en/git-imap-send.txt:100 msgid "" -"List the notes object for a given object. If no object is given, show a list " -"of all note objects and the objects they annotate (in the format \"<note " -"object> <annotated object>\"). This is the default subcommand if no " -"subcommand is given." +"To submit patches using GMail's IMAP interface, first, edit your ~/." +"gitconfig to specify your account settings:" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:62 +#. type: delimited block - +#: en/git-imap-send.txt:108 #, no-wrap -msgid "add" +msgid "" +"[imap]\n" +"\tfolder = \"[Gmail]/Drafts\"\n" +"\thost = imaps://imap.gmail.com\n" +"\tuser = user@gmail.com\n" +"\tport = 993\n" +"\tsslverify = false\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:69 +#: en/git-imap-send.txt:112 msgid "" -"Add notes for a given object (defaults to HEAD). Abort if the object already " -"has notes (use `-f` to overwrite existing notes). However, if you're using " -"`add` interactively (using an editor to supply the notes contents), then - " -"instead of aborting - the existing notes will be opened in the editor (like " -"the `edit` subcommand)." +"You might need to instead use: folder = \"[Google Mail]/Drafts\" if you get " +"an error that the \"Folder doesn't exist\"." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:70 -#, no-wrap -msgid "copy" +#. type: Plain text +#: en/git-imap-send.txt:114 +msgid "Once the commits are ready to be sent, run the following command:" msgstr "" #. type: Plain text -#: en/git-notes.txt:76 -msgid "" -"Copy the notes for the first object onto the second object. Abort if the " -"second object already has notes, or if the first object has none (use -f to " -"overwrite existing notes to the second object). This subcommand is " -"equivalent to: `git notes add [-f] -C $(git notes list <from-object>) " -"<to-object>`" +#: en/git-imap-send.txt:116 +#, no-wrap +msgid " $ git format-patch --cover-letter -M --stdout origin/master | git imap-send\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:78 -msgid "In `--stdin` mode, take lines in the format" +#: en/git-imap-send.txt:120 +msgid "" +"Just make sure to disable line wrapping in the email client (GMail's web " +"interface will wrap lines no matter what, so you need to use a real IMAP " +"client)." msgstr "" -#. type: delimited block - -#: en/git-notes.txt:81 +#. type: Title - +#: en/git-imap-send.txt:122 #, no-wrap -msgid "<from-object> SP <to-object> [ SP <rest> ] LF\n" +msgid "CAUTION" msgstr "" #. type: Plain text -#: en/git-notes.txt:86 +#: en/git-imap-send.txt:129 msgid "" -"on standard input, and copy the notes from each <from-object> to its " -"corresponding <to-object>. (The optional `<rest>` is ignored so that the " -"command can read the input given to the `post-rewrite` hook.)" +"It is still your responsibility to make sure that the email message sent by " +"your email program meets the standards of your project. Many projects do " +"not like patches to be attached. Some mail agents will transform patches (e." +"g. wrap lines, send them as format=flowed) in ways that make them fail. You " +"will get angry flames ridiculing you if you don't check this." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:87 +#. type: Plain text +#: en/git-imap-send.txt:133 #, no-wrap -msgid "append" +msgid "" +"Thunderbird in particular is known to be problematic. Thunderbird\n" +"users may wish to visit this web page for more information:\n" +" http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:90 -msgid "" -"Append to the notes of an existing object (defaults to HEAD). Creates a new " -"notes object if needed." +#: en/git-imap-send.txt:137 +msgid "linkgit:git-format-patch[1], linkgit:git-send-email[1], mbox(5)" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:91 +#. type: Title = +#: en/git-index-pack.txt:2 #, no-wrap -msgid "edit" +msgid "git-index-pack(1)" msgstr "" #. type: Plain text -#: en/git-notes.txt:93 -msgid "Edit the notes for a given object (defaults to HEAD)." +#: en/git-index-pack.txt:7 +msgid "git-index-pack - Build pack index file for an existing packed archive" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:94 +#. type: Plain text +#: en/git-index-pack.txt:15 #, no-wrap -msgid "show" +msgid "" +"'git index-pack' [-v] [-o <index-file>] <pack-file>\n" +"'git index-pack' --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]\n" +" [<pack-file>]\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:96 -msgid "Show the notes for a given object (defaults to HEAD)." +#: en/git-index-pack.txt:23 +msgid "" +"Reads a packed archive (.pack) from the specified file, and builds a pack " +"index file (.idx) for it. The packed archive together with the pack index " +"can then be placed in the objects/pack/ directory of a Git repository." +msgstr "" + +#. type: Plain text +#: en/git-index-pack.txt:29 +msgid "Be verbose about what is going on, including progress status." msgstr "" #. type: Labeled list -#: en/git-notes.txt:97 en/git-submodule.txt:183 +#: en/git-index-pack.txt:30 #, no-wrap -msgid "merge" +msgid "-o <index-file>" msgstr "" #. type: Plain text -#: en/git-notes.txt:102 +#: en/git-index-pack.txt:37 msgid "" -"Merge the given notes ref into the current notes ref. This will try to " -"merge the changes made by the given notes ref (called \"remote\") since the " -"merge-base (if any) into the current notes ref (called \"local\")." +"Write the generated pack index into the specified file. Without this option " +"the name of pack index file is constructed from the name of packed archive " +"file by replacing .pack with .idx (and the program fails if the name of " +"packed archive does not end with .pack)." msgstr "" #. type: Plain text -#: en/git-notes.txt:111 +#: en/git-index-pack.txt:47 msgid "" -"If conflicts arise and a strategy for automatically resolving conflicting " -"notes (see the \"NOTES MERGE STRATEGIES\" section) is not given, the " -"\"manual\" resolver is used. This resolver checks out the conflicting notes " -"in a special worktree (`.git/NOTES_MERGE_WORKTREE`), and instructs the user " -"to manually resolve the conflicts there. When done, the user can either " -"finalize the merge with 'git notes merge --commit', or abort the merge with " -"'git notes merge --abort'." +"When this flag is provided, the pack is read from stdin instead and a copy " +"is then written to <pack-file>. If <pack-file> is not specified, the pack is " +"written to objects/pack/ directory of the current Git repository with a " +"default name determined from the pack content. If <pack-file> is not " +"specified consider using --keep to prevent a race condition between this " +"process and 'git repack'." msgstr "" #. type: Labeled list -#: en/git-notes.txt:112 +#: en/git-index-pack.txt:48 #, no-wrap -msgid "remove" +msgid "--fix-thin" msgstr "" #. type: Plain text -#: en/git-notes.txt:117 +#: en/git-index-pack.txt:53 msgid "" -"Remove the notes for given objects (defaults to HEAD). When giving zero or " -"one object from the command line, this is equivalent to specifying an empty " -"note message to the `edit` subcommand." -msgstr "" - -#. type: Labeled list -#: en/git-notes.txt:118 en/git-worktree.txt:74 -#, no-wrap -msgid "prune" +"Fix a \"thin\" pack produced by `git pack-objects --thin` (see linkgit:git-" +"pack-objects[1] for details) by adding the excluded objects the deltified " +"objects are based on to the pack. This option only makes sense in " +"conjunction with --stdin." msgstr "" #. type: Plain text -#: en/git-notes.txt:120 -msgid "Remove all notes for non-existing/unreachable objects." +#: en/git-index-pack.txt:61 +msgid "" +"Before moving the index into its final destination create an empty .keep " +"file for the associated pack file. This option is usually necessary with --" +"stdin to prevent a simultaneous 'git repack' process from deleting the newly " +"constructed pack and index before refs can be updated to use objects " +"contained in the pack." msgstr "" #. type: Labeled list -#: en/git-notes.txt:121 +#: en/git-index-pack.txt:62 #, no-wrap -msgid "get-ref" +msgid "--keep=<msg>" msgstr "" #. type: Plain text -#: en/git-notes.txt:124 +#: en/git-index-pack.txt:68 msgid "" -"Print the current notes ref. This provides an easy way to retrieve the " -"current notes ref (e.g. from scripts)." +"Like --keep create a .keep file before moving the index into its final " +"destination, but rather than creating an empty file place '<msg>' followed " +"by an LF into the .keep file. The '<msg>' message can later be searched for " +"within all .keep files to locate any which have outlived their usefulness." msgstr "" -#. type: Plain text -#: en/git-notes.txt:131 -msgid "" -"When adding notes to an object that already has notes, overwrite the " -"existing notes (instead of aborting)." +#. type: Labeled list +#: en/git-index-pack.txt:69 en/git-pack-objects.txt:249 +#, no-wrap +msgid "--index-version=<version>[,<offset>]" msgstr "" #. type: Plain text -#: en/git-notes.txt:139 +#: en/git-index-pack.txt:73 en/git-pack-objects.txt:253 msgid "" -"Use the given note message (instead of prompting). If multiple `-m` options " -"are given, their values are concatenated as separate paragraphs. Lines " -"starting with `#` and empty lines other than a single line between " -"paragraphs will be stripped out." +"This is intended to be used by the test suite only. It allows to force the " +"version for the generated pack index, and to force 64-bit index entries on " +"objects located above the given offset." msgstr "" #. type: Plain text -#: en/git-notes.txt:146 -msgid "" -"Take the note message from the given file. Use '-' to read the note message " -"from the standard input. Lines starting with `#` and empty lines other than " -"a single line between paragraphs will be stripped out." +#: en/git-index-pack.txt:76 +msgid "Die, if the pack contains broken objects or links." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:147 -#, no-wrap -msgid "-C <object>" +#. type: Plain text +#: en/git-index-pack.txt:79 +msgid "Die if the pack contains broken links. For internal use only." msgstr "" #. type: Labeled list -#: en/git-notes.txt:148 +#: en/git-index-pack.txt:80 #, no-wrap -msgid "--reuse-message=<object>" +msgid "--fsck-objects" msgstr "" #. type: Plain text -#: en/git-notes.txt:152 -msgid "" -"Take the given blob object (for\texample, another note) as the note " -"message. (Use `git notes copy <object>` instead to copy notes between " -"objects.)" +#: en/git-index-pack.txt:82 +msgid "Die if the pack contains broken objects. For internal use only." msgstr "" #. type: Labeled list -#: en/git-notes.txt:153 +#: en/git-index-pack.txt:83 en/git-pack-objects.txt:239 en/git-repack.txt:102 #, no-wrap -msgid "-c <object>" +msgid "--threads=<n>" +msgstr "" + +#. type: Plain text +#: en/git-index-pack.txt:92 +msgid "" +"Specifies the number of threads to spawn when resolving deltas. This " +"requires that index-pack be compiled with pthreads otherwise this option is " +"ignored with a warning. This is meant to reduce packing time on " +"multiprocessor machines. The required amount of memory for the delta search " +"window is however multiplied by the number of threads. Specifying 0 will " +"cause Git to auto-detect the number of CPU's and use maximum 3 threads." msgstr "" #. type: Labeled list -#: en/git-notes.txt:154 +#: en/git-index-pack.txt:93 en/git-unpack-objects.txt:47 #, no-wrap -msgid "--reedit-message=<object>" +msgid "--max-input-size=<size>" msgstr "" #. type: Plain text -#: en/git-notes.txt:157 -msgid "" -"Like '-C', but with `-c` the editor is invoked, so that the user can further " -"edit the note message." +#: en/git-index-pack.txt:95 en/git-unpack-objects.txt:49 +msgid "Die, if the pack is larger than <size>." msgstr "" #. type: Plain text -#: en/git-notes.txt:161 +#: en/git-index-pack.txt:103 msgid "" -"Allow an empty note object to be stored. The default behavior is to " -"automatically remove empty notes." +"Once the index has been created, the list of object names is sorted and the " +"SHA-1 hash of that list is printed to stdout. If --stdin was also used then " +"this is prefixed by either \"pack\\t\", or \"keep\\t\" if a new .keep file " +"was successfully created. This is useful to remove a" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:162 +#. type: Block title +#: en/git-index-pack.txt:103 #, no-wrap -msgid "--ref <ref>" +msgid "keep file used as a lock to prevent the race with 'git repack'" msgstr "" #. type: Plain text -#: en/git-notes.txt:168 -msgid "" -"Manipulate the notes tree in <ref>. This overrides `GIT_NOTES_REF` and the " -"\"core.notesRef\" configuration. The ref specifies the full refname when it " -"begins with `refs/notes/`; when it begins with `notes/`, `refs/` and " -"otherwise `refs/notes/` is prefixed to form a full name of the ref." +#: en/git-index-pack.txt:105 +msgid "mentioned above." +msgstr "" + +#. type: Title = +#: en/git-init-db.txt:2 +#, no-wrap +msgid "git-init-db(1)" msgstr "" #. type: Plain text -#: en/git-notes.txt:172 -msgid "" -"Do not consider it an error to request removing notes from an object that " -"does not have notes attached to it." +#: en/git-init-db.txt:7 +msgid "git-init-db - Creates an empty Git repository" msgstr "" #. type: Plain text -#: en/git-notes.txt:177 -msgid "" -"Also read the object names to remove notes from from the standard input " -"(there is no reason you cannot combine this with object names from the " -"command line)." +#: en/git-init-db.txt:13 +#, no-wrap +msgid "'git init-db' [-q | --quiet] [--bare] [--template=<template_directory>] [--separate-git-dir <git dir>] [--shared[=<permissions>]]\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:182 +#: en/git-init-db.txt:20 msgid "" -"Do not remove anything; just report the object names whose notes would be " -"removed." +"This is a synonym for linkgit:git-init[1]. Please refer to the " +"documentation of that command." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:183 en/git-rebase.txt:282 en/merge-options.txt:77 +#. type: Title = +#: en/git-init.txt:2 #, no-wrap -msgid "-s <strategy>" +msgid "git-init(1)" msgstr "" #. type: Plain text -#: en/git-notes.txt:191 +#: en/git-init.txt:7 msgid "" -"When merging notes, resolve notes conflicts using the given strategy. The " -"following strategies are recognized: \"manual\" (default), \"ours\", " -"\"theirs\", \"union\" and \"cat_sort_uniq\". This option overrides the " -"\"notes.mergeStrategy\" configuration setting. See the \"NOTES MERGE " -"STRATEGIES\" section below for more information on each notes merge " -"strategy." +"git-init - Create an empty Git repository or reinitialize an existing one" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:192 en/merge-options.txt:1 +#. type: Plain text +#: en/git-init.txt:15 #, no-wrap -msgid "--commit" +msgid "" +"'git init' [-q | --quiet] [--bare] [--template=<template_directory>]\n" +"\t [--separate-git-dir <git dir>]\n" +"\t [--shared[=<permissions>]] [directory]\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:200 +#: en/git-init.txt:24 msgid "" -"Finalize an in-progress 'git notes merge'. Use this option when you have " -"resolved the conflicts that 'git notes merge' stored in " -".git/NOTES_MERGE_WORKTREE. This amends the partial merge commit created by " -"'git notes merge' (stored in .git/NOTES_MERGE_PARTIAL) by adding the notes " -"in .git/NOTES_MERGE_WORKTREE. The notes ref stored in the " -".git/NOTES_MERGE_REF symref is updated to the resulting commit." +"This command creates an empty Git repository - basically a `.git` directory " +"with subdirectories for `objects`, `refs/heads`, `refs/tags`, and template " +"files. An initial `HEAD` file that references the HEAD of the master branch " +"is also created." msgstr "" #. type: Plain text -#: en/git-notes.txt:205 +#: en/git-init.txt:27 msgid "" -"Abort/reset a in-progress 'git notes merge', i.e. a notes merge with " -"conflicts. This simply removes all files related to the notes merge." +"If the `$GIT_DIR` environment variable is set then it specifies a path to " +"use instead of `./.git` for the base of the repository." msgstr "" #. type: Plain text -#: en/git-notes.txt:209 -msgid "When merging notes, operate quietly." +#: en/git-init.txt:32 +msgid "" +"If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY` " +"environment variable then the sha1 directories are created underneath - " +"otherwise the default `$GIT_DIR/objects` directory is used." msgstr "" #. type: Plain text -#: en/git-notes.txt:215 +#: en/git-init.txt:37 msgid "" -"When merging notes, be more verbose. When pruning notes, report all object " -"names whose notes are removed." +"Running 'git init' in an existing repository is safe. It will not overwrite " +"things that are already there. The primary reason for rerunning 'git init' " +"is to pick up newly added templates (or to move the repository to another " +"place if --separate-git-dir is given)." msgstr "" #. type: Plain text -#: en/git-notes.txt:229 +#: en/git-init.txt:45 msgid "" -"Commit notes are blobs containing extra information about an object (usually " -"information to supplement a commit's message). These blobs are taken from " -"notes refs. A notes ref is usually a branch which contains \"files\" whose " -"paths are the object names for the objects they describe, with some " -"directory separators included for performance reasons footnote:[Permitted " -"pathnames have the form 'ab'`/`'cd'`/`'ef'`/`'...'`/`'abcdef...': a sequence " -"of directory names of two hexadecimal digits each followed by a filename " -"with the rest of the object ID.]." +"Only print error and warning messages; all other output will be suppressed." msgstr "" #. type: Plain text -#: en/git-notes.txt:236 +#: en/git-init.txt:50 msgid "" -"Every notes change creates a new commit at the specified notes ref. You can " -"therefore inspect the history of the notes by invoking, e.g., `git log -p " -"notes/commits`. Currently the commit message only records which operation " -"triggered the update, and the commit authorship is determined according to " -"the usual rules (see linkgit:git-commit[1]). These details may change in " -"the future." +"Create a bare repository. If `GIT_DIR` environment is not set, it is set to " +"the current working directory." msgstr "" #. type: Plain text -#: en/git-notes.txt:240 +#: en/git-init.txt:55 msgid "" -"It is also permitted for a notes ref to point directly to a tree object, in " -"which case the history of the notes can be read with `git log -p -g " -"<refname>`." -msgstr "" - -#. type: Title - -#: en/git-notes.txt:243 -#, no-wrap -msgid "NOTES MERGE STRATEGIES" +"Specify the directory from which templates will be used. (See the " +"\"TEMPLATE DIRECTORY\" section below.)" msgstr "" #. type: Plain text -#: en/git-notes.txt:252 +#: en/git-init.txt:62 msgid "" -"The default notes merge strategy is \"manual\", which checks out conflicting " -"notes in a special work tree for resolving notes conflicts " -"(`.git/NOTES_MERGE_WORKTREE`), and instructs the user to resolve the " -"conflicts in that work tree. When done, the user can either finalize the " -"merge with 'git notes merge --commit', or abort the merge with 'git notes " -"merge --abort'." +"Instead of initializing the repository as a directory to either `$GIT_DIR` " +"or `./.git/`, create a text file there containing the path to the actual " +"repository. This file acts as filesystem-agnostic Git symbolic link to the " +"repository." msgstr "" #. type: Plain text -#: en/git-notes.txt:255 +#: en/git-init.txt:64 msgid "" -"Users may select an automated merge strategy from among the following using " -"either -s/--strategy option or configuring notes.mergeStrategy accordingly:" +"If this is reinitialization, the repository will be moved to the specified " +"path." msgstr "" -#. type: Plain text -#: en/git-notes.txt:258 -msgid "" -"\"ours\" automatically resolves conflicting notes in favor of the local " -"version (i.e. the current notes ref)." +#. type: Labeled list +#: en/git-init.txt:65 +#, no-wrap +msgid "--shared[=(false|true|umask|group|all|world|everybody|0xxx)]" msgstr "" #. type: Plain text -#: en/git-notes.txt:262 +#: en/git-init.txt:73 msgid "" -"\"theirs\" automatically resolves notes conflicts in favor of the remote " -"version (i.e. the given notes ref being merged into the current notes ref)." +"Specify that the Git repository is to be shared amongst several users. This " +"allows users belonging to the same group to push into that repository. When " +"specified, the config variable \"core.sharedRepository\" is set so that " +"files and directories under `$GIT_DIR` are created with the requested " +"permissions. When not specified, Git will use permissions reported by " +"umask(2)." msgstr "" #. type: Plain text -#: en/git-notes.txt:265 +#: en/git-init.txt:76 msgid "" -"\"union\" automatically resolves notes conflicts by concatenating the local " -"and remote versions." +"The option can have the following values, defaulting to 'group' if no value " +"is given:" msgstr "" -#. type: Plain text -#: en/git-notes.txt:275 -msgid "" -"\"cat_sort_uniq\" is similar to \"union\", but in addition to concatenating " -"the local and remote versions, this strategy also sorts the resulting lines, " -"and removes duplicate lines from the result. This is equivalent to applying " -"the \"cat | sort | uniq\" shell pipeline to the local and remote " -"versions. This strategy is useful if the notes follow a line-based format " -"where one wants to avoid duplicated lines in the merge result. Note that if " -"either the local or remote version contain duplicate lines prior to the " -"merge, these will also be removed by this notes merge strategy." +#. type: Labeled list +#: en/git-init.txt:78 +#, no-wrap +msgid "'umask' (or 'false')" msgstr "" #. type: Plain text -#: en/git-notes.txt:282 +#: en/git-init.txt:82 msgid "" -"You can use notes to add annotations with information that was not available " -"at the time a commit was written." +"Use permissions reported by umask(2). The default, when `--shared` is not " +"specified." msgstr "" -#. type: delimited block - -#: en/git-notes.txt:288 +#. type: Labeled list +#: en/git-init.txt:83 #, no-wrap +msgid "'group' (or 'true')" +msgstr "" + +#. type: Plain text +#: en/git-init.txt:91 msgid "" -"$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2\n" -"$ git show -s 72a144e\n" -"[...]\n" -" Signed-off-by: Junio C Hamano <gitster@pobox.com>\n" +"Make the repository group-writable, (and g+sx, since the git group may be " +"not the primary group of all users). This is used to loosen the permissions " +"of an otherwise safe umask(2) value. Note that the umask still applies to " +"the other permission bits (e.g. if umask is '0022', using 'group' will not " +"remove read privileges from other (non-group) users). See '0xxx' for how to " +"exactly specify the repository permissions." msgstr "" -#. type: delimited block - -#: en/git-notes.txt:291 +#. type: Labeled list +#: en/git-init.txt:92 #, no-wrap -msgid "" -"Notes:\n" -" Tested-by: Johannes Sixt <j6t@kdbg.org>\n" +msgid "'all' (or 'world' or 'everybody')" msgstr "" #. type: Plain text -#: en/git-notes.txt:296 -msgid "" -"In principle, a note is a regular Git blob, and any kind of (non-)format is " -"accepted. You can binary-safely create notes from arbitrary files using " -"'git hash-object':" +#: en/git-init.txt:95 +msgid "Same as 'group', but make the repository readable by all users." msgstr "" -#. type: delimited block - -#: en/git-notes.txt:301 +#. type: Labeled list +#: en/git-init.txt:96 #, no-wrap -msgid "" -"$ cc *.c\n" -"$ blob=$(git hash-object -w a.out)\n" -"$ git notes --ref=built add --allow-empty -C \"$blob\" HEAD\n" +msgid "'0xxx'" msgstr "" #. type: Plain text -#: en/git-notes.txt:308 +#: en/git-init.txt:103 msgid "" -"(You cannot simply use `git notes --ref=built add -F a.out HEAD` because " -"that is not binary-safe.) Of course, it doesn't make much sense to display " -"non-text-format notes with 'git log', so if you use such notes, you'll " -"probably need to write some special-purpose tools to do something useful " -"with them." +"'0xxx' is an octal number and each file will have mode '0xxx'. '0xxx' will " +"override users' umask(2) value (and not only loosen permissions as 'group' " +"and 'all' does). '0640' will create a repository which is group-readable, " +"but not group-writable or accessible to others. '0660' will create a repo " +"that is readable and writable to the current user and group, but " +"inaccessible to others." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:313 en/config.txt:846 -#, no-wrap -msgid "core.notesRef" +#. type: Plain text +#: en/git-init.txt:108 +msgid "" +"By default, the configuration flag `receive.denyNonFastForwards` is enabled " +"in shared repositories, so that you cannot force a non fast-forwarding push " +"into it." msgstr "" #. type: Plain text -#: en/git-notes.txt:318 +#: en/git-init.txt:111 msgid "" -"Notes ref to read and manipulate instead of `refs/notes/commits`. Must be " -"an unabbreviated ref name. This setting can be overridden through the " -"environment and command line." +"If you provide a 'directory', the command is run inside it. If this " +"directory does not exist, it will be created." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:319 en/config.txt:2239 +#. type: Title - +#: en/git-init.txt:113 #, no-wrap -msgid "notes.mergeStrategy" +msgid "TEMPLATE DIRECTORY" msgstr "" #. type: Plain text -#: en/git-notes.txt:324 +#: en/git-init.txt:117 msgid "" -"Which merge strategy to choose by default when resolving notes conflicts. " -"Must be one of `manual`, `ours`, `theirs`, `union`, or `cat_sort_uniq`. " -"Defaults to `manual`. See \"NOTES MERGE STRATEGIES\" section above for more " -"information on each strategy." +"Files and directories in the template directory whose name do not start with " +"a dot will be copied to the `$GIT_DIR` after it is created." msgstr "" #. type: Plain text -#: en/git-notes.txt:326 -msgid "This setting can be overridden by passing the `--strategy` option." +#: en/git-init.txt:119 +msgid "The template directory will be one of the following (in order):" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:327 en/config.txt:2245 -#, no-wrap -msgid "notes.<name>.mergeStrategy" +#. type: Plain text +#: en/git-init.txt:121 +msgid "the argument given with the `--template` option;" msgstr "" #. type: Plain text -#: en/git-notes.txt:332 -msgid "" -"Which merge strategy to choose when doing a notes merge into " -"refs/notes/<name>. This overrides the more general " -"\"notes.mergeStrategy\". See the \"NOTES MERGE STRATEGIES\" section above " -"for more information on each available strategy." +#: en/git-init.txt:123 +msgid "the contents of the `$GIT_TEMPLATE_DIR` environment variable;" msgstr "" #. type: Plain text -#: en/git-notes.txt:341 -msgid "" -"Which ref (or refs, if a glob or specified more than once), in addition to " -"the default set by `core.notesRef` or `GIT_NOTES_REF`, to read notes from " -"when showing commit messages with the 'git log' family of commands. This " -"setting can be overridden on the command line or by the " -"`GIT_NOTES_DISPLAY_REF` environment variable. See linkgit:git-log[1]." +#: en/git-init.txt:125 +msgid "the `init.templateDir` configuration variable; or" msgstr "" -#. type: Labeled list -#: en/git-notes.txt:342 en/config.txt:2268 -#, no-wrap -msgid "notes.rewrite.<command>" +#. type: Plain text +#: en/git-init.txt:127 +msgid "the default template directory: `/usr/share/git-core/templates`." msgstr "" #. type: Plain text -#: en/git-notes.txt:347 +#: en/git-init.txt:130 msgid "" -"When rewriting commits with <command> (currently `amend` or `rebase`), if " -"this variable is `false`, git will not copy notes from the original to the " -"rewritten commit. Defaults to `true`. See also \"`notes.rewriteRef`\" " -"below." +"The default template directory includes some directory structure, suggested " +"\"exclude patterns\" (see linkgit:gitignore[5]), and sample hook files." msgstr "" #. type: Plain text -#: en/git-notes.txt:350 +#: en/git-init.txt:133 msgid "" -"This setting can be overridden by the `GIT_NOTES_REWRITE_REF` environment " -"variable." +"The sample hooks are all disabled by default. To enable one of the sample " +"hooks rename it by removing its `.sample` suffix." +msgstr "" + +#. type: Plain text +#: en/git-init.txt:135 +msgid "See linkgit:githooks[5] for more general info on hook execution." msgstr "" #. type: Labeled list -#: en/git-notes.txt:351 en/config.txt:2275 +#: en/git-init.txt:139 #, no-wrap -msgid "notes.rewriteMode" +msgid "Start a new Git repository for an existing code base" msgstr "" -#. type: Plain text -#: en/git-notes.txt:356 +#. type: delimited block - +#: en/git-init.txt:146 +#, no-wrap msgid "" -"When copying notes during a rewrite, what to do if the target commit already " -"has a note. Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or " -"`ignore`. Defaults to `concatenate`." +"$ cd /path/to/my/codebase\n" +"$ git init <1>\n" +"$ git add . <2>\n" +"$ git commit <3>\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:359 en/config.txt:2284 -msgid "" -"This setting can be overridden with the `GIT_NOTES_REWRITE_MODE` environment " -"variable." +#: en/git-init.txt:149 +msgid "Create a /path/to/my/codebase/.git directory." msgstr "" -#. type: Labeled list -#: en/git-notes.txt:360 en/config.txt:2285 +#. type: Plain text +#: en/git-init.txt:150 +msgid "Add all existing files to the index." +msgstr "" + +#. type: Plain text +#: en/git-init.txt:151 +msgid "Record the pristine state as the first commit in the history." +msgstr "" + +#. type: Title = +#: en/git-instaweb.txt:2 #, no-wrap -msgid "notes.rewriteRef" +msgid "git-instaweb(1)" msgstr "" #. type: Plain text -#: en/git-notes.txt:365 +#: en/git-instaweb.txt:7 +msgid "git-instaweb - Instantly browse your working repository in gitweb" +msgstr "" + +#. type: Plain text +#: en/git-instaweb.txt:14 +#, no-wrap msgid "" -"When copying notes during a rewrite, specifies the (fully qualified) ref " -"whose notes should be copied. May be a glob, in which case notes in all " -"matching refs will be copied. You may also specify this configuration " -"several times." +"'git instaweb' [--local] [--httpd=<httpd>] [--port=<port>]\n" +" [--browser=<browser>]\n" +"'git instaweb' [--start] [--stop] [--restart]\n" msgstr "" #. type: Plain text -#: en/git-notes.txt:368 +#: en/git-instaweb.txt:19 msgid "" -"Does not have a default value; you must configure this variable to enable " -"note rewriting." +"A simple script to set up `gitweb` and a web server for browsing the local " +"repository." msgstr "" #. type: Plain text -#: en/git-notes.txt:370 -msgid "Can be overridden with the `GIT_NOTES_REWRITE_REF` environment variable." +#: en/git-instaweb.txt:26 +msgid "Only bind the web server to the local IP (127.0.0.1)." msgstr "" #. type: Labeled list -#: en/git-notes.txt:375 +#: en/git-instaweb.txt:28 #, no-wrap -msgid "`GIT_NOTES_REF`" +msgid "--httpd" msgstr "" #. type: Plain text -#: en/git-notes.txt:378 +#: en/git-instaweb.txt:35 msgid "" -"Which ref to manipulate notes from, instead of `refs/notes/commits`. This " -"overrides the `core.notesRef` setting." +"The HTTP daemon command-line that will be executed. Command-line options " +"may be specified here, and the configuration file will be added at the end " +"of the command-line. Currently apache2, lighttpd, mongoose, plackup, python " +"and webrick are supported. (Default: lighttpd)" msgstr "" #. type: Labeled list -#: en/git-notes.txt:379 +#: en/git-instaweb.txt:37 #, no-wrap -msgid "`GIT_NOTES_DISPLAY_REF`" -msgstr "" - -#. type: Plain text -#: en/git-notes.txt:385 -msgid "" -"Colon-delimited list of refs or globs indicating which refs, in addition to " -"the default from `core.notesRef` or `GIT_NOTES_REF`, to read notes from when " -"showing commit messages. This overrides the `notes.displayRef` setting." +msgid "--module-path" msgstr "" #. type: Plain text -#: en/git-notes.txt:388 +#: en/git-instaweb.txt:40 msgid "" -"A warning will be issued for refs that do not exist, but a glob that does " -"not match any refs is silently ignored." +"The module path (only needed if httpd is Apache). (Default: /usr/lib/" +"apache2/modules)" msgstr "" #. type: Labeled list -#: en/git-notes.txt:389 +#: en/git-instaweb.txt:42 #, no-wrap -msgid "`GIT_NOTES_REWRITE_MODE`" +msgid "--port" msgstr "" #. type: Plain text -#: en/git-notes.txt:394 -msgid "" -"When copying notes during a rewrite, what to do if the target commit already " -"has a note. Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or " -"`ignore`. This overrides the `core.rewriteMode` setting." +#: en/git-instaweb.txt:44 +msgid "The port number to bind the httpd to. (Default: 1234)" msgstr "" #. type: Labeled list -#: en/git-notes.txt:395 +#: en/git-instaweb.txt:46 #, no-wrap -msgid "`GIT_NOTES_REWRITE_REF`" +msgid "--browser" msgstr "" #. type: Plain text -#: en/git-notes.txt:399 +#: en/git-instaweb.txt:52 msgid "" -"When rewriting commits, which notes to copy from the original to the " -"rewritten commit. Must be a colon-delimited list of refs or globs." +"The web browser that should be used to view the gitweb page. This will be " +"passed to the 'git web{litdd}browse' helper script along with the URL of the " +"gitweb instance. See linkgit:git-web{litdd}browse[1] for more information " +"about this. If the script fails, the URL will be printed to stdout." msgstr "" -#. type: Plain text -#: en/git-notes.txt:402 -msgid "" -"If not set in the environment, the list of notes to copy depends on the " -"`notes.rewrite.<command>` and `notes.rewriteRef` settings." +#. type: Labeled list +#: en/git-instaweb.txt:53 +#, no-wrap +msgid "start" msgstr "" -#. type: Title = -#: en/git-p4.txt:2 +#. type: Labeled list +#: en/git-instaweb.txt:54 #, no-wrap -msgid "git-p4(1)" +msgid "--start" msgstr "" #. type: Plain text -#: en/git-p4.txt:7 -msgid "git-p4 - Import from and submit to Perforce repositories" +#: en/git-instaweb.txt:57 +msgid "" +"Start the httpd instance and exit. Regenerate configuration files as " +"necessary for spawning a new instance." msgstr "" -#. type: Plain text -#: en/git-p4.txt:16 +#. type: Labeled list +#: en/git-instaweb.txt:58 #, no-wrap -msgid "" -"'git p4 clone' [<sync options>] [<clone options>] <p4 depot path>...\n" -"'git p4 sync' [<sync options>] [<p4 depot path>...]\n" -"'git p4 rebase'\n" -"'git p4 submit' [<submit options>] [<master branch name>]\n" +msgid "stop" msgstr "" -#. type: Plain text -#: en/git-p4.txt:22 -msgid "This command provides a way to interact with p4 repositories using Git." +#. type: Labeled list +#: en/git-instaweb.txt:59 +#, no-wrap +msgid "--stop" msgstr "" #. type: Plain text -#: en/git-p4.txt:30 +#: en/git-instaweb.txt:63 msgid "" -"Create a new Git repository from an existing p4 repository using 'git p4 " -"clone', giving it one or more p4 depot paths. Incorporate new commits from " -"p4 changes with 'git p4 sync'. The 'sync' command is also used to include " -"new branches from other p4 depot paths. Submit Git changes back to p4 using " -"'git p4 submit'. The command 'git p4 rebase' does a sync plus rebases the " -"current branch onto the updated p4 remote branch." +"Stop the httpd instance and exit. This does not generate any of the " +"configuration files for spawning a new instance, nor does it close the " +"browser." msgstr "" -#. type: Plain text -#: en/git-p4.txt:35 -msgid "Clone a repository:" +#. type: Labeled list +#: en/git-instaweb.txt:64 +#, no-wrap +msgid "restart" msgstr "" -#. type: delimited block - -#: en/git-p4.txt:38 en/git-p4.txt:71 +#. type: Labeled list +#: en/git-instaweb.txt:65 #, no-wrap -msgid "$ git p4 clone //depot/path/project\n" +msgid "--restart" msgstr "" #. type: Plain text -#: en/git-p4.txt:41 -msgid "Do some work in the newly created Git repository:" -msgstr "" - -#. type: delimited block - -#: en/git-p4.txt:46 -#, no-wrap +#: en/git-instaweb.txt:68 msgid "" -"$ cd project\n" -"$ vi foo.h\n" -"$ git commit -a -m \"edited foo.h\"\n" +"Restart the httpd instance and exit. Regenerate configuration files as " +"necessary for spawning a new instance." msgstr "" #. type: Plain text -#: en/git-p4.txt:50 -msgid "" -"Update the Git repository with recent changes from p4, rebasing your work on " -"top:" +#: en/git-instaweb.txt:73 +msgid "You may specify configuration in your .git/config" msgstr "" #. type: delimited block - -#: en/git-p4.txt:53 en/git-p4.txt:130 +#: en/git-instaweb.txt:81 #, no-wrap -msgid "$ git p4 rebase\n" +msgid "" +"[instaweb]\n" +"\tlocal = true\n" +"\thttpd = apache2 -f\n" +"\tport = 4321\n" +"\tbrowser = konqueror\n" +"\tmodulePath = /usr/lib/apache2/modules\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:56 -msgid "Submit your commits back to p4:" +#: en/git-instaweb.txt:87 +msgid "" +"If the configuration variable `instaweb.browser` is not set, `web.browser` " +"will be used instead if it is defined. See linkgit:git-web{litdd}browse[1] " +"for more information about this." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:59 en/git-p4.txt:145 +#. type: Title = +#: en/git-interpret-trailers.txt:2 #, no-wrap -msgid "$ git p4 submit\n" +msgid "git-interpret-trailers(1)" msgstr "" -#. type: Title ~ -#: en/git-p4.txt:66 -#, no-wrap -msgid "Clone" +#. type: Plain text +#: en/git-interpret-trailers.txt:7 +msgid "" +"git-interpret-trailers - add or parse structured information in commit " +"messages" msgstr "" #. type: Plain text -#: en/git-p4.txt:69 +#: en/git-interpret-trailers.txt:13 +#, no-wrap msgid "" -"Generally, 'git p4 clone' is used to create a new Git directory from an " -"existing p4 repository:" +"'git interpret-trailers' [<options>] [(--trailer <token>[(=|:)<value>])...] [<file>...]\n" +"'git interpret-trailers' [<options>] [--parse] [<file>...]\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:73 -msgid "This:" +#: en/git-interpret-trailers.txt:19 +msgid "" +"Help parsing or adding 'trailers' lines, that look similar to RFC 822 e-mail " +"headers, at the end of the otherwise free-form part of a commit message." msgstr "" #. type: Plain text -#: en/git-p4.txt:75 -msgid "Creates an empty Git repository in a subdirectory called 'project'." +#: en/git-interpret-trailers.txt:23 +msgid "" +"This command reads some patches or commit messages from either the <file> " +"arguments or the standard input if no <file> is specified. If `--parse` is " +"specified, the output consists of the parsed trailers." msgstr "" #. type: Plain text -#: en/git-p4.txt:78 +#: en/git-interpret-trailers.txt:27 msgid "" -"Imports the full contents of the head revision from the given p4 depot path " -"into a single commit in the Git branch 'refs/remotes/p4/master'." +"Otherwise, this command applies the arguments passed using the `--trailer` " +"option, if any, to the commit message part of each input file. The result is " +"emitted on the standard output." msgstr "" #. type: Plain text -#: en/git-p4.txt:80 -msgid "Creates a local branch, 'master' from this remote and checks it out." +#: en/git-interpret-trailers.txt:32 +msgid "" +"Some configuration variables control the way the `--trailer` arguments are " +"applied to each commit message and the way any existing trailer in the " +"commit message is changed. They also make it possible to automatically add " +"some trailers." msgstr "" #. type: Plain text -#: en/git-p4.txt:83 +#: en/git-interpret-trailers.txt:39 msgid "" -"To reproduce the entire p4 history in Git, use the '@all' modifier on the " -"depot path:" +"By default, a '<token>=<value>' or '<token>:<value>' argument given using `--" +"trailer` will be appended after the existing trailers only if the last " +"trailer has a different (<token>, <value>) pair (or if there is no existing " +"trailer). The <token> and <value> parts will be trimmed to remove starting " +"and trailing whitespace, and the resulting trimmed <token> and <value> will " +"appear in the message like this:" msgstr "" #. type: delimited block - -#: en/git-p4.txt:85 +#: en/git-interpret-trailers.txt:42 #, no-wrap -msgid "$ git p4 clone //depot/path/project@all\n" +msgid "token: value\n" msgstr "" -#. type: Title ~ -#: en/git-p4.txt:89 -#, no-wrap -msgid "Sync" +#. type: Plain text +#: en/git-interpret-trailers.txt:46 +msgid "" +"This means that the trimmed <token> and <value> will be separated by `': '` " +"(one colon followed by one space)." msgstr "" #. type: Plain text -#: en/git-p4.txt:92 +#: en/git-interpret-trailers.txt:52 msgid "" -"As development continues in the p4 repository, those changes can be included " -"in the Git repository using:" +"By default the new trailer will appear at the end of all the existing " +"trailers. If there is no existing trailer, the new trailer will appear after " +"the commit message part of the output, and, if there is no line with only " +"spaces at the end of the commit message part, one blank line will be added " +"before the new trailer." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:94 -#, no-wrap -msgid "$ git p4 sync\n" +#. type: Plain text +#: en/git-interpret-trailers.txt:62 +msgid "" +"Existing trailers are extracted from the input message by looking for a " +"group of one or more lines that (i) is all trailers, or (ii) contains at " +"least one Git-generated or user-configured trailer and consists of at least " +"25% trailers. The group must be preceded by one or more empty (or " +"whitespace-only) lines. The group must either be at the end of the message " +"or be the last non-whitespace lines before a line that starts with " +"'---' (followed by a space or the end of the line). Such three minus signs " +"start the patch part of the message. See also `--no-divider` below." msgstr "" #. type: Plain text -#: en/git-p4.txt:96 -msgid "This command finds new changes in p4 and imports them as Git commits." +#: en/git-interpret-trailers.txt:67 +msgid "" +"When reading trailers, there can be whitespaces after the token, the " +"separator and the value. There can also be whitespaces inside the token and " +"the value. The value may be split over multiple lines with each subsequent " +"line starting with whitespace, like the \"folding\" in RFC 822." msgstr "" #. type: Plain text -#: en/git-p4.txt:99 +#: en/git-interpret-trailers.txt:71 msgid "" -"P4 repositories can be added to an existing Git repository using 'git p4 " -"sync' too:" +"Note that 'trailers' do not follow and are not intended to follow many rules " +"for RFC 822 headers. For example they do not follow the encoding rules and " +"probably many other rules." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:104 +#. type: Labeled list +#: en/git-interpret-trailers.txt:74 #, no-wrap -msgid "" -"$ mkdir repo-git\n" -"$ cd repo-git\n" -"$ git init\n" -"$ git p4 sync //path/in/your/perforce/depot\n" +msgid "--in-place" msgstr "" #. type: Plain text -#: en/git-p4.txt:109 -msgid "" -"This imports the specified depot into 'refs/remotes/p4/master' in an " -"existing Git repository. The `--branch` option can be used to specify a " -"different branch to be used for the p4 content." +#: en/git-interpret-trailers.txt:76 +msgid "Edit the files in place." msgstr "" -#. type: Plain text -#: en/git-p4.txt:114 -msgid "" -"If a Git repository includes branches 'refs/remotes/origin/p4', these will " -"be fetched and consulted first during a 'git p4 sync'. Since importing " -"directly from p4 is considerably slower than pulling changes from a Git " -"remote, this can be useful in a multi-developer environment." +#. type: Labeled list +#: en/git-interpret-trailers.txt:77 +#, no-wrap +msgid "--trim-empty" msgstr "" #. type: Plain text -#: en/git-p4.txt:119 +#: en/git-interpret-trailers.txt:81 msgid "" -"If there are multiple branches, doing 'git p4 sync' will automatically use " -"the \"BRANCH DETECTION\" algorithm to try to partition new changes into the " -"right branch. This can be overridden with the `--branch` option to specify " -"just a single branch to update." +"If the <value> part of any trailer contains only whitespace, the whole " +"trailer will be removed from the resulting message. This applies to " +"existing trailers as well as new trailers." msgstr "" -#. type: Title ~ -#: en/git-p4.txt:122 +#. type: Labeled list +#: en/git-interpret-trailers.txt:82 #, no-wrap -msgid "Rebase" +msgid "--trailer <token>[(=|:)<value>]" msgstr "" #. type: Plain text -#: en/git-p4.txt:128 +#: en/git-interpret-trailers.txt:86 msgid "" -"A common working pattern is to fetch the latest changes from the p4 depot " -"and merge them with local uncommitted changes. Often, the p4 repository is " -"the ultimate location for all code, thus a rebase workflow makes sense. " -"This command does 'git p4 sync' followed by 'git rebase' to move local " -"commits on top of updated p4 changes." +"Specify a (<token>, <value>) pair that should be applied as a trailer to the " +"input messages. See the description of this command." msgstr "" -#. type: Title ~ -#: en/git-p4.txt:134 +#. type: Labeled list +#: en/git-interpret-trailers.txt:87 #, no-wrap -msgid "Submit" +msgid "--where <placement>" +msgstr "" + +#. type: Labeled list +#: en/git-interpret-trailers.txt:88 +#, no-wrap +msgid "--no-where" msgstr "" #. type: Plain text -#: en/git-p4.txt:140 +#: en/git-interpret-trailers.txt:94 msgid "" -"Submitting changes from a Git repository back to the p4 repository requires " -"a separate p4 client workspace. This should be specified using the " -"`P4CLIENT` environment variable or the Git configuration variable " -"'git-p4.client'. The p4 client must exist, but the client root will be " -"created and populated if it does not already exist." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:143 -msgid "" -"To submit all changes that are in the current Git branch but not in the " -"'p4/master' branch, use:" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:148 -msgid "To specify a branch other than the current one, use:" +"Specify where all new trailers will be added. A setting provided with '--" +"where' overrides all configuration variables and applies to all '--trailer' " +"options until the next occurrence of '--where' or '--no-where'. Possible " +"values are `after`, `before`, `end` or `start`." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:150 +#. type: Labeled list +#: en/git-interpret-trailers.txt:95 #, no-wrap -msgid "$ git p4 submit topicbranch\n" +msgid "--if-exists <action>" msgstr "" -#. type: Plain text -#: en/git-p4.txt:154 -msgid "" -"The upstream reference is generally 'refs/remotes/p4/master', but can be " -"overridden using the `--origin=` command-line option." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:159 -msgid "" -"The p4 changes will be created as the user invoking 'git p4 submit'. The " -"`--preserve-user` option will cause ownership to be modified according to " -"the author of the Git commit. This option requires admin privileges in p4, " -"which can be granted using 'p4 protect'." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:165 +#. type: Labeled list +#: en/git-interpret-trailers.txt:96 #, no-wrap -msgid "General options" +msgid "--no-if-exists" msgstr "" #. type: Plain text -#: en/git-p4.txt:167 -msgid "All commands except clone accept these options." +#: en/git-interpret-trailers.txt:103 +msgid "" +"Specify what action will be performed when there is already at least one " +"trailer with the same <token> in the message. A setting provided with '--if-" +"exists' overrides all configuration variables and applies to all '--trailer' " +"options until the next occurrence of '--if-exists' or '--no-if-exists'. " +"Possible actions are `addIfDifferent`, `addIfDifferentNeighbor`, `add`, " +"`replace` and `doNothing`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:168 +#: en/git-interpret-trailers.txt:104 #, no-wrap -msgid "--git-dir <dir>" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:170 -msgid "Set the `GIT_DIR` environment variable. See linkgit:git[1]." +msgid "--if-missing <action>" msgstr "" -#. type: Plain text -#: en/git-p4.txt:174 -msgid "Provide more progress information." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:176 +#. type: Labeled list +#: en/git-interpret-trailers.txt:105 #, no-wrap -msgid "Sync options" +msgid "--no-if-missing" msgstr "" #. type: Plain text -#: en/git-p4.txt:179 +#: en/git-interpret-trailers.txt:112 msgid "" -"These options can be used in the initial 'clone' as well as in subsequent " -"'sync' operations." +"Specify what action will be performed when there is no other trailer with " +"the same <token> in the message. A setting provided with '--if-missing' " +"overrides all configuration variables and applies to all '--trailer' options " +"until the next occurrence of '--if-missing' or '--no-if-missing'. Possible " +"actions are `doNothing` or `add`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:180 +#: en/git-interpret-trailers.txt:113 #, no-wrap -msgid "--branch <ref>" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:184 -msgid "" -"Import changes into <ref> instead of refs/remotes/p4/master. If <ref> " -"starts with refs/, it is used as is. Otherwise, if it does not start with " -"p4/, that prefix is added." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:188 -msgid "" -"By default a <ref> not starting with refs/ is treated as the name of a " -"remote-tracking branch (under refs/remotes/). This behavior can be modified " -"using the --import-local option." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:190 -msgid "The default <ref> is \"master\"." +msgid "--only-trailers" msgstr "" #. type: Plain text -#: en/git-p4.txt:193 -msgid "" -"This example imports a new remote \"p4/proj2\" into an existing Git " -"repository:" -msgstr "" - -#. type: delimited block - -#: en/git-p4.txt:197 -#, no-wrap -msgid "" -" $ git init\n" -" $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2\n" +#: en/git-interpret-trailers.txt:115 +msgid "Output only the trailers, not any other parts of the input." msgstr "" #. type: Labeled list -#: en/git-p4.txt:199 +#: en/git-interpret-trailers.txt:116 #, no-wrap -msgid "--detect-branches" +msgid "--only-input" msgstr "" #. type: Plain text -#: en/git-p4.txt:202 +#: en/git-interpret-trailers.txt:120 msgid "" -"Use the branch detection algorithm to find new paths in p4. It is " -"documented below in \"BRANCH DETECTION\"." +"Output only trailers that exist in the input; do not add any from the " +"command-line or by following configured `trailer.*` rules." msgstr "" #. type: Labeled list -#: en/git-p4.txt:203 +#: en/git-interpret-trailers.txt:121 #, no-wrap -msgid "--changesfile <file>" +msgid "--unfold" msgstr "" #. type: Plain text -#: en/git-p4.txt:207 +#: en/git-interpret-trailers.txt:124 msgid "" -"Import exactly the p4 change numbers listed in 'file', one per line. " -"Normally, 'git p4' inspects the current p4 repository state and detects the " -"changes it should import." +"Remove any whitespace-continuation in trailers, so that each trailer appears " +"on a line by itself with its full content." msgstr "" #. type: Labeled list -#: en/git-p4.txt:208 +#: en/git-interpret-trailers.txt:125 #, no-wrap -msgid "--silent" +msgid "--parse" msgstr "" #. type: Plain text -#: en/git-p4.txt:210 -msgid "Do not print any progress information." +#: en/git-interpret-trailers.txt:128 +msgid "A convenience alias for `--only-trailers --only-input --unfold`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:211 +#: en/git-interpret-trailers.txt:129 #, no-wrap -msgid "--detect-labels" +msgid "--no-divider" msgstr "" #. type: Plain text -#: en/git-p4.txt:215 +#: en/git-interpret-trailers.txt:133 msgid "" -"Query p4 for labels associated with the depot paths, and add them as tags in " -"Git. Limited usefulness as only imports labels associated with new " -"changelists. Deprecated." +"Do not treat `---` as the end of the commit message. Use this when you know " +"your input contains just the commit message itself (and not an email or the " +"output of `git format-patch`)." msgstr "" #. type: Labeled list -#: en/git-p4.txt:216 en/git-p4.txt:331 +#: en/git-interpret-trailers.txt:137 #, no-wrap -msgid "--import-labels" +msgid "trailer.separators" msgstr "" #. type: Plain text -#: en/git-p4.txt:218 -msgid "Import labels from p4 into Git." +#: en/git-interpret-trailers.txt:142 +msgid "" +"This option tells which characters are recognized as trailer separators. By " +"default only ':' is recognized as a trailer separator, except that '=' is " +"always accepted on the command line for compatibility with other git " +"commands." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:219 -#, no-wrap -msgid "--import-local" +#. type: Plain text +#: en/git-interpret-trailers.txt:146 +msgid "" +"The first character given by this option will be the default character used " +"when another separator is not specified in the config for this trailer." msgstr "" #. type: Plain text -#: en/git-p4.txt:226 +#: en/git-interpret-trailers.txt:153 msgid "" -"By default, p4 branches are stored in 'refs/remotes/p4/', where they will be " -"treated as remote-tracking branches by linkgit:git-branch[1] and other " -"commands. This option instead puts p4 branches in 'refs/heads/p4/'. Note " -"that future sync operations must specify `--import-local` as well so that " -"they can find the p4 branches in refs/heads." +"For example, if the value for this option is \"%=$\", then only lines using " +"the format '<token><sep><value>' with <sep> containing '%', '=' or '$' and " +"then spaces will be considered trailers. And '%' will be the default " +"separator used, so by default trailers will appear like: '<token>% " +"<value>' (one percent sign and one space will appear between the token and " +"the value)." msgstr "" #. type: Labeled list -#: en/git-p4.txt:227 +#: en/git-interpret-trailers.txt:154 #, no-wrap -msgid "--max-changes <n>" +msgid "trailer.where" msgstr "" #. type: Plain text -#: en/git-p4.txt:233 -msgid "" -"Import at most 'n' changes, rather than the entire range of changes included " -"in the given revision specifier. A typical usage would be use '@all' as the " -"revision specifier, but then to use '--max-changes 1000' to import only the " -"last 1000 revisions rather than the entire revision history." +#: en/git-interpret-trailers.txt:156 +msgid "This option tells where a new trailer will be added." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:234 -#, no-wrap -msgid "--changes-block-size <n>" +#. type: Plain text +#: en/git-interpret-trailers.txt:158 +msgid "This can be `end`, which is the default, `start`, `after` or `before`." msgstr "" #. type: Plain text -#: en/git-p4.txt:242 +#: en/git-interpret-trailers.txt:161 msgid "" -"The internal block size to use when converting a revision specifier such as " -"'@all' into a list of specific change numbers. Instead of using a single " -"call to 'p4 changes' to find the full list of changes for the conversion, " -"there are a sequence of calls to 'p4 changes -m', each of which requests one " -"block of changes of the given size. The default block size is 500, which " -"should usually be suitable." -msgstr "" - -#. type: Labeled list -#: en/git-p4.txt:243 -#, no-wrap -msgid "--keep-path" +"If it is `end`, then each new trailer will appear at the end of the existing " +"trailers." msgstr "" #. type: Plain text -#: en/git-p4.txt:250 +#: en/git-interpret-trailers.txt:164 msgid "" -"The mapping of file names from the p4 depot path to Git, by default, " -"involves removing the entire depot path. With this option, the full p4 " -"depot path is retained in Git. For example, path '//depot/main/foo/bar.c', " -"when imported from '//depot/main/', becomes 'foo/bar.c'. With " -"`--keep-path`, the Git path is instead 'depot/main/foo/bar.c'." +"If it is `start`, then each new trailer will appear at the start, instead of " +"the end, of the existing trailers." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:251 -#, no-wrap -msgid "--use-client-spec" +#. type: Plain text +#: en/git-interpret-trailers.txt:167 +msgid "" +"If it is `after`, then each new trailer will appear just after the last " +"trailer with the same <token>." msgstr "" #. type: Plain text -#: en/git-p4.txt:254 +#: en/git-interpret-trailers.txt:170 msgid "" -"Use a client spec to find the list of interesting files in p4. See the " -"\"CLIENT SPEC\" section below." +"If it is `before`, then each new trailer will appear just before the first " +"trailer with the same <token>." msgstr "" #. type: Labeled list -#: en/git-p4.txt:255 +#: en/git-interpret-trailers.txt:171 #, no-wrap -msgid "-/ <path>" +msgid "trailer.ifexists" msgstr "" #. type: Plain text -#: en/git-p4.txt:257 -msgid "Exclude selected depot paths when cloning or syncing." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:259 -#, no-wrap -msgid "Clone options" +#: en/git-interpret-trailers.txt:175 +msgid "" +"This option makes it possible to choose what action will be performed when " +"there is already at least one trailer with the same <token> in the message." msgstr "" #. type: Plain text -#: en/git-p4.txt:262 +#: en/git-interpret-trailers.txt:178 msgid "" -"These options can be used in an initial 'clone', along with the 'sync' " -"options described above." +"The valid values for this option are: `addIfDifferentNeighbor` (this is the " +"default), `addIfDifferent`, `add`, `replace` or `doNothing`." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:263 -#, no-wrap -msgid "--destination <directory>" +#. type: Plain text +#: en/git-interpret-trailers.txt:182 +msgid "" +"With `addIfDifferentNeighbor`, a new trailer will be added only if no " +"trailer with the same (<token>, <value>) pair is above or below the line " +"where the new trailer will be added." msgstr "" #. type: Plain text -#: en/git-p4.txt:267 +#: en/git-interpret-trailers.txt:185 msgid "" -"Where to create the Git repository. If not provided, the last component in " -"the p4 depot path is used to create a new directory." +"With `addIfDifferent`, a new trailer will be added only if no trailer with " +"the same (<token>, <value>) pair is already in the message." msgstr "" #. type: Plain text -#: en/git-p4.txt:270 -msgid "Perform a bare clone. See linkgit:git-clone[1]." +#: en/git-interpret-trailers.txt:188 +msgid "" +"With `add`, a new trailer will be added, even if some trailers with the same " +"(<token>, <value>) pair are already in the message." msgstr "" -#. type: Title ~ -#: en/git-p4.txt:272 -#, no-wrap -msgid "Submit options" +#. type: Plain text +#: en/git-interpret-trailers.txt:193 +msgid "" +"With `replace`, an existing trailer with the same <token> will be deleted " +"and the new trailer will be added. The deleted trailer will be the closest " +"one (with the same <token>) to the place where the new one will be added." msgstr "" #. type: Plain text -#: en/git-p4.txt:274 -msgid "These options can be used to modify 'git p4 submit' behavior." +#: en/git-interpret-trailers.txt:196 +msgid "" +"With `doNothing`, nothing will be done; that is no new trailer will be added " +"if there is already one with the same <token> in the message." msgstr "" #. type: Labeled list -#: en/git-p4.txt:275 +#: en/git-interpret-trailers.txt:197 #, no-wrap -msgid "--origin <commit>" +msgid "trailer.ifmissing" msgstr "" #. type: Plain text -#: en/git-p4.txt:279 +#: en/git-interpret-trailers.txt:201 msgid "" -"Upstream location from which commits are identified to submit to p4. By " -"default, this is the most recent p4 commit reachable from `HEAD`." +"This option makes it possible to choose what action will be performed when " +"there is not yet any trailer with the same <token> in the message." msgstr "" #. type: Plain text -#: en/git-p4.txt:285 +#: en/git-interpret-trailers.txt:204 msgid "" -"Detect renames. See linkgit:git-diff[1]. Renames will be represented in p4 " -"using explicit 'move' operations. There is no corresponding option to " -"detect copies, but there are variables for both moves and copies." +"The valid values for this option are: `add` (this is the default) and " +"`doNothing`." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:286 -#, no-wrap -msgid "--preserve-user" +#. type: Plain text +#: en/git-interpret-trailers.txt:206 +msgid "With `add`, a new trailer will be added." msgstr "" #. type: Plain text -#: en/git-p4.txt:289 -msgid "" -"Re-author p4 changes before submitting to p4. This option requires p4 admin " -"privileges." +#: en/git-interpret-trailers.txt:208 +msgid "With `doNothing`, nothing will be done." msgstr "" #. type: Labeled list -#: en/git-p4.txt:290 +#: en/git-interpret-trailers.txt:209 #, no-wrap -msgid "--export-labels" +msgid "trailer.<token>.key" msgstr "" #. type: Plain text -#: en/git-p4.txt:293 +#: en/git-interpret-trailers.txt:215 msgid "" -"Export tags from Git as p4 labels. Tags found in Git are applied to the " -"perforce working directory." +"This `key` will be used instead of <token> in the trailer. At the end of " +"this key, a separator can appear and then some space characters. By default " +"the only valid separator is ':', but this can be changed using the `trailer." +"separators` config variable." msgstr "" #. type: Plain text -#: en/git-p4.txt:298 +#: en/git-interpret-trailers.txt:218 msgid "" -"Show just what commits would be submitted to p4; do not change state in Git " -"or p4." +"If there is a separator, then the key will be used instead of both the " +"<token> and the default separator when adding the trailer." msgstr "" #. type: Labeled list -#: en/git-p4.txt:299 +#: en/git-interpret-trailers.txt:219 #, no-wrap -msgid "--prepare-p4-only" +msgid "trailer.<token>.where" msgstr "" #. type: Plain text -#: en/git-p4.txt:305 +#: en/git-interpret-trailers.txt:223 msgid "" -"Apply a commit to the p4 workspace, opening, adding and deleting files in p4 " -"as for a normal submit operation. Do not issue the final \"p4 submit\", but " -"instead print a message about how to submit manually or revert. This option " -"always stops after the first (oldest) commit. Git tags are not exported to " -"p4." +"This option takes the same values as the 'trailer.where' configuration " +"variable and it overrides what is specified by that option for trailers with " +"the specified <token>." msgstr "" #. type: Labeled list -#: en/git-p4.txt:306 +#: en/git-interpret-trailers.txt:224 #, no-wrap -msgid "--shelve" +msgid "trailer.<token>.ifexists" msgstr "" #. type: Plain text -#: en/git-p4.txt:310 +#: en/git-interpret-trailers.txt:228 msgid "" -"Instead of submitting create a series of shelved changelists. After " -"creating each shelve, the relevant files are reverted/deleted. If you have " -"multiple commits pending multiple shelves will be created." +"This option takes the same values as the 'trailer.ifexists' configuration " +"variable and it overrides what is specified by that option for trailers with " +"the specified <token>." msgstr "" #. type: Labeled list -#: en/git-p4.txt:311 +#: en/git-interpret-trailers.txt:229 #, no-wrap -msgid "--update-shelve CHANGELIST" +msgid "trailer.<token>.ifmissing" msgstr "" #. type: Plain text -#: en/git-p4.txt:314 -msgid "Update an existing shelved changelist with this commit. Implies --shelve." +#: en/git-interpret-trailers.txt:233 +msgid "" +"This option takes the same values as the 'trailer.ifmissing' configuration " +"variable and it overrides what is specified by that option for trailers with " +"the specified <token>." msgstr "" #. type: Labeled list -#: en/git-p4.txt:315 +#: en/git-interpret-trailers.txt:234 #, no-wrap -msgid "--conflict=(ask|skip|quit)" +msgid "trailer.<token>.command" msgstr "" #. type: Plain text -#: en/git-p4.txt:321 +#: en/git-interpret-trailers.txt:238 msgid "" -"Conflicts can occur when applying a commit to p4. When this happens, the " -"default behavior (\"ask\") is to prompt whether to skip this commit and " -"continue, or quit. This option can be used to bypass the prompt, causing " -"conflicting commits to be automatically skipped, or to quit trying to apply " -"commits, without prompting." -msgstr "" - -#. type: Labeled list -#: en/git-p4.txt:322 -#, no-wrap -msgid "--branch <branch>" +"This option can be used to specify a shell command that will be called to " +"automatically add or modify a trailer with the specified <token>." msgstr "" #. type: Plain text -#: en/git-p4.txt:326 +#: en/git-interpret-trailers.txt:244 msgid "" -"After submitting, sync this named branch instead of the default p4/master. " -"See the \"Sync options\" section above for more information." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:328 -#, no-wrap -msgid "Rebase options" +"When this option is specified, the behavior is as if a special " +"'<token>=<value>' argument were added at the beginning of the command line, " +"where <value> is taken to be the standard output of the specified command " +"with any leading and trailing whitespace trimmed off." msgstr "" #. type: Plain text -#: en/git-p4.txt:330 -msgid "These options can be used to modify 'git p4 rebase' behavior." +#: en/git-interpret-trailers.txt:248 +msgid "" +"If the command contains the `$ARG` string, this string will be replaced with " +"the <value> part of an existing trailer with the same <token>, if any, " +"before the command is launched." msgstr "" #. type: Plain text -#: en/git-p4.txt:333 -msgid "Import p4 labels." -msgstr "" - -#. type: Title - -#: en/git-p4.txt:335 -#, no-wrap -msgid "DEPOT PATH SYNTAX" +#: en/git-interpret-trailers.txt:254 +msgid "" +"If some '<token>=<value>' arguments are also passed on the command line, " +"when a 'trailer.<token>.command' is configured, the command will also be " +"executed for each of these arguments. And the <value> part of these " +"arguments, if any, will be used to replace the `$ARG` string in the command." msgstr "" #. type: Plain text -#: en/git-p4.txt:339 +#: en/git-interpret-trailers.txt:260 msgid "" -"The p4 depot path argument to 'git p4 sync' and 'git p4 clone' can be one or " -"more space-separated p4 depot paths, with an optional p4 revision specifier " -"on the end:" +"Configure a 'sign' trailer with a 'Signed-off-by' key, and then add two of " +"these trailers to a message:" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:340 +#. type: delimited block - +#: en/git-interpret-trailers.txt:265 #, no-wrap -msgid "\"//depot/my/project\"" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:342 -msgid "Import one commit with all files in the '#head' change under that tree." +msgid "" +"$ git config trailer.sign.key \"Signed-off-by\"\n" +"$ cat msg.txt\n" +"subject\n" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:343 +#. type: delimited block - +#: en/git-interpret-trailers.txt:269 #, no-wrap -msgid "\"//depot/my/project@all\"" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:345 -msgid "Import one commit for each change in the history of that depot path." +msgid "" +"message\n" +"$ cat msg.txt | git interpret-trailers --trailer 'sign: Alice <alice@example.com>' --trailer 'sign: Bob <bob@example.com>'\n" +"subject\n" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:346 +#. type: delimited block - +#: en/git-interpret-trailers.txt:271 en/git-interpret-trailers.txt:283 +#: en/git-interpret-trailers.txt:290 en/git-interpret-trailers.txt:354 #, no-wrap -msgid "\"//depot/my/project@1,6\"" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:348 -msgid "Import only changes 1 through 6." +msgid "message\n" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:349 +#. type: delimited block - +#: en/git-interpret-trailers.txt:274 #, no-wrap -msgid "\"//depot/proj1@all //depot/proj2@all\"" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:358 msgid "" -"Import all changes from both named depot paths into a single repository. " -"Only files below these directories are included. There is not a " -"subdirectory in Git for each \"proj1\" and \"proj2\". You must use the " -"`--destination` option when specifying more than one depot path. The " -"revision specifier must be specified identically on each depot path. If " -"there are files in the depot paths with the same name, the path with the " -"most recently updated version of the file is the one that appears in Git." +"Signed-off-by: Alice <alice@example.com>\n" +"Signed-off-by: Bob <bob@example.com>\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:360 -msgid "See 'p4 help revisions' for the full syntax of p4 revision specifiers." +#: en/git-interpret-trailers.txt:277 +msgid "Use the `--in-place` option to edit a message file in place:" msgstr "" -#. type: Title - -#: en/git-p4.txt:363 +#. type: delimited block - +#: en/git-interpret-trailers.txt:281 #, no-wrap -msgid "CLIENT SPEC" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:373 msgid "" -"The p4 client specification is maintained with the 'p4 client' command and " -"contains among other fields, a View that specifies how the depot is mapped " -"into the client repository. The 'clone' and 'sync' commands can consult the " -"client spec when given the `--use-client-spec` option or when the " -"useClientSpec variable is true. After 'git p4 clone', the useClientSpec " -"variable is automatically set in the repository configuration file. This " -"allows future 'git p4 submit' commands to work properly; the submit command " -"looks only at the variable and does not have a command-line option." +"$ cat msg.txt\n" +"subject\n" msgstr "" -#. type: Plain text -#: en/git-p4.txt:380 +#. type: delimited block - +#: en/git-interpret-trailers.txt:288 +#, no-wrap msgid "" -"The full syntax for a p4 view is documented in 'p4 help views'. 'git p4' " -"knows only a subset of the view syntax. It understands multi-line mappings, " -"overlays with '+', exclusions with '-' and double-quotes around whitespace. " -"Of the possible wildcards, 'git p4' only handles '...', and only when it is " -"at the end of the path. 'git p4' will complain if it encounters an " -"unhandled wildcard." +"Signed-off-by: Bob <bob@example.com>\n" +"$ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' --in-place msg.txt\n" +"$ cat msg.txt\n" +"subject\n" msgstr "" -#. type: Plain text -#: en/git-p4.txt:385 +#. type: delimited block - +#: en/git-interpret-trailers.txt:293 +#, no-wrap msgid "" -"Bugs in the implementation of overlap mappings exist. If multiple depot " -"paths map through overlays to the same location in the repository, 'git p4' " -"can choose the wrong one. This is hard to solve without dedicating a client " -"spec just for 'git p4'." +"Signed-off-by: Bob <bob@example.com>\n" +"Acked-by: Alice <alice@example.com>\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:390 +#: en/git-interpret-trailers.txt:297 msgid "" -"The name of the client can be given to 'git p4' in multiple ways. The " -"variable 'git-p4.client' takes precedence if it exists. Otherwise, normal " -"p4 mechanisms of determining the client are used: environment variable " -"P4CLIENT, a file referenced by P4CONFIG, or the local host name." +"Extract the last commit as a patch, and add a 'Cc' and a 'Reviewed-by' " +"trailer to it:" msgstr "" -#. type: Title - -#: en/git-p4.txt:393 +#. type: delimited block - +#: en/git-interpret-trailers.txt:302 #, no-wrap -msgid "BRANCH DETECTION" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:400 msgid "" -"P4 does not have the same concept of a branch as Git. Instead, p4 organizes " -"its content as a directory tree, where by convention different logical " -"branches are in different locations in the tree. The 'p4 branch' command is " -"used to maintain mappings between different areas in the tree, and indicate " -"related content. 'git p4' can use these mappings to determine branch " -"relationships." +"$ git format-patch -1\n" +"0001-foo.patch\n" +"$ git interpret-trailers --trailer 'Cc: Alice <alice@example.com>' --trailer 'Reviewed-by: Bob <bob@example.com>' 0001-foo.patch >0001-bar.patch\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:405 +#: en/git-interpret-trailers.txt:307 msgid "" -"If you have a repository where all the branches of interest exist as " -"subdirectories of a single depot path, you can use `--detect-branches` when " -"cloning or syncing to have 'git p4' automatically find subdirectories in p4, " -"and to generate these as branches in Git." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:407 -msgid "For example, if the P4 repository structure is:" +"Configure a 'sign' trailer with a command to automatically add a 'Signed-off-" +"by: ' with the author information only if there is no 'Signed-off-by: ' " +"already, and show how it works:" msgstr "" #. type: delimited block - -#: en/git-p4.txt:410 +#: en/git-interpret-trailers.txt:315 #, no-wrap msgid "" -"//depot/main/...\n" -"//depot/branch1/...\n" +"$ git config trailer.sign.key \"Signed-off-by: \"\n" +"$ git config trailer.sign.ifmissing add\n" +"$ git config trailer.sign.ifexists doNothing\n" +"$ git config trailer.sign.command 'echo \"$(git config user.name) <$(git config user.email)>\"'\n" +"$ git interpret-trailers <<EOF\n" +"> EOF\n" msgstr "" -#. type: Plain text -#: en/git-p4.txt:413 -msgid "And \"p4 branch -o branch1\" shows a View line that looks like:" +#. type: delimited block - +#: en/git-interpret-trailers.txt:320 +#, no-wrap +msgid "" +"Signed-off-by: Bob <bob@example.com>\n" +"$ git interpret-trailers <<EOF\n" +"> Signed-off-by: Alice <alice@example.com>\n" +"> EOF\n" msgstr "" #. type: delimited block - -#: en/git-p4.txt:415 +#: en/git-interpret-trailers.txt:322 #, no-wrap -msgid "//depot/main/... //depot/branch1/...\n" +msgid "Signed-off-by: Alice <alice@example.com>\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:418 -msgid "Then this 'git p4 clone' command:" +#: en/git-interpret-trailers.txt:326 +msgid "" +"Configure a 'fix' trailer with a key that contains a '#' and no space after " +"this character, and show how it works:" msgstr "" #. type: delimited block - -#: en/git-p4.txt:420 +#: en/git-interpret-trailers.txt:332 #, no-wrap -msgid "git p4 clone --detect-branches //depot@all\n" +msgid "" +"$ git config trailer.separators \":#\"\n" +"$ git config trailer.fix.key \"Fix #\"\n" +"$ echo \"subject\" | git interpret-trailers --trailer fix=42\n" +"subject\n" msgstr "" -#. type: Plain text -#: en/git-p4.txt:423 -msgid "" -"produces a separate branch in 'refs/remotes/p4/' for //depot/main, called " -"'master', and one for //depot/branch1 called 'depot/branch1'." +#. type: delimited block - +#: en/git-interpret-trailers.txt:334 +#, no-wrap +msgid "Fix #42\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:433 +#: en/git-interpret-trailers.txt:338 msgid "" -"However, it is not necessary to create branches in p4 to be able to use them " -"like branches. Because it is difficult to infer branch relationships " -"automatically, a Git configuration setting 'git-p4.branchList' can be used " -"to explicitly identify branch relationships. It is a list of " -"\"source:destination\" pairs, like a simple p4 branch specification, where " -"the \"source\" and \"destination\" are the path elements in the p4 " -"repository. The example above relied on the presence of the p4 branch. " -"Without p4 branches, the same result will occur with:" +"Configure a 'see' trailer with a command to show the subject of a commit " +"that is related, and show how it works:" msgstr "" #. type: delimited block - -#: en/git-p4.txt:438 +#: en/git-interpret-trailers.txt:352 #, no-wrap msgid "" -"git init depot\n" -"cd depot\n" -"git config git-p4.branchList main:branch1\n" -"git p4 clone --detect-branches //depot@all .\n" +"$ git config trailer.see.key \"See-also: \"\n" +"$ git config trailer.see.ifExists \"replace\"\n" +"$ git config trailer.see.ifMissing \"doNothing\"\n" +"$ git config trailer.see.command \"git log -1 --oneline --format=\\\"%h (%s)\\\" --abbrev-commit --abbrev=14 \\$ARG\"\n" +"$ git interpret-trailers <<EOF\n" +"> subject\n" +"> \n" +"> message\n" +"> \n" +"> see: HEAD~2\n" +"> EOF\n" +"subject\n" msgstr "" -#. type: Title - -#: en/git-p4.txt:442 +#. type: delimited block - +#: en/git-interpret-trailers.txt:356 #, no-wrap -msgid "PERFORMANCE" +msgid "See-also: fe3187489d69c4 (subject of related commit)\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:447 +#: en/git-interpret-trailers.txt:363 msgid "" -"The fast-import mechanism used by 'git p4' creates one pack file for each " -"invocation of 'git p4 sync'. Normally, Git garbage compression " -"(linkgit:git-gc[1]) automatically compresses these to fewer pack files, but " -"explicit invocation of 'git repack -adf' may improve performance." -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:453 -msgid "" -"The following config settings can be used to modify 'git p4' behavior. They " -"all are in the 'git-p4' section." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:455 -#, no-wrap -msgid "General variables" +"Configure a commit template with some trailers with empty values (using sed " +"to show and keep the trailing spaces at the end of the trailers), then " +"configure a commit-msg hook that uses 'git interpret-trailers' to remove " +"trailers with empty values and to add a 'git-version' trailer:" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:456 +#. type: delimited block - +#: en/git-interpret-trailers.txt:382 #, no-wrap -msgid "git-p4.user" +msgid "" +"$ sed -e 's/ Z$/ /' >commit_template.txt <<EOF\n" +"> ***subject***\n" +"> \n" +"> ***message***\n" +"> \n" +"> Fixes: Z\n" +"> Cc: Z\n" +"> Reviewed-by: Z\n" +"> Signed-off-by: Z\n" +"> EOF\n" +"$ git config commit.template commit_template.txt\n" +"$ cat >.git/hooks/commit-msg <<EOF\n" +"> #!/bin/sh\n" +"> git interpret-trailers --trim-empty --trailer \"git-version: \\$(git describe)\" \"\\$1\" > \"\\$1.new\"\n" +"> mv \"\\$1.new\" \"\\$1\"\n" +"> EOF\n" +"$ chmod +x .git/hooks/commit-msg\n" msgstr "" #. type: Plain text -#: en/git-p4.txt:459 +#: en/git-interpret-trailers.txt:387 msgid "" -"User specified as an option to all p4 commands, with '-u <user>'. The " -"environment variable 'P4USER' can be used instead." +"linkgit:git-commit[1], linkgit:git-format-patch[1], linkgit:git-config[1]" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:460 +#. type: Title = +#: en/git-log.txt:2 #, no-wrap -msgid "git-p4.password" +msgid "git-log(1)" msgstr "" #. type: Plain text -#: en/git-p4.txt:464 -msgid "" -"Password specified as an option to all p4 commands, with '-P <password>'. " -"The environment variable 'P4PASS' can be used instead." +#: en/git-log.txt:7 +msgid "git-log - Show commit logs" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:465 +#. type: Plain text +#: en/git-log.txt:13 #, no-wrap -msgid "git-p4.port" +msgid "'git log' [<options>] [<revision range>] [[--] <path>...]\n" +msgstr "" + +#. type: Plain text +#: en/git-log.txt:17 +msgid "Shows the commit logs." msgstr "" #. type: Plain text -#: en/git-p4.txt:469 +#: en/git-log.txt:22 msgid "" -"Port specified as an option to all p4 commands, with '-p <port>'. The " -"environment variable 'P4PORT' can be used instead." +"The command takes options applicable to the `git rev-list` command to " +"control what is shown and how, and options applicable to the `git diff-*` " +"commands to control how the changes each commit introduces are shown." msgstr "" #. type: Labeled list -#: en/git-p4.txt:470 +#: en/git-log.txt:27 #, no-wrap -msgid "git-p4.host" +msgid "--follow" msgstr "" #. type: Plain text -#: en/git-p4.txt:474 +#: en/git-log.txt:30 msgid "" -"Host specified as an option to all p4 commands, with '-h <host>'. The " -"environment variable 'P4HOST' can be used instead." +"Continue listing the history of a file beyond renames (works only for a " +"single file)." msgstr "" #. type: Labeled list -#: en/git-p4.txt:475 +#: en/git-log.txt:31 #, no-wrap -msgid "git-p4.client" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:478 -msgid "" -"Client specified as an option to all p4 commands, with '-c <client>', " -"including the client spec." +msgid "--no-decorate" msgstr "" #. type: Labeled list -#: en/git-p4.txt:479 +#: en/git-log.txt:32 #, no-wrap -msgid "git-p4.retries" +msgid "--decorate[=short|full|auto|no]" msgstr "" #. type: Plain text -#: en/git-p4.txt:484 +#: en/git-log.txt:40 msgid "" -"Specifies the number of times to retry a p4 command (notably, 'p4 sync') if " -"the network times out. The default value is 3. Set the value to 0 to " -"disable retries or if your p4 version does not support retries (pre 2012.2)." +"Print out the ref names of any commits that are shown. If 'short' is " +"specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and 'refs/" +"remotes/' will not be printed. If 'full' is specified, the full ref name " +"(including prefix) will be printed. If 'auto' is specified, then if the " +"output is going to a terminal, the ref names are shown as if 'short' were " +"given, otherwise no ref names are shown. The default option is 'short'." msgstr "" -#. type: Title ~ -#: en/git-p4.txt:486 +#. type: Labeled list +#: en/git-log.txt:41 #, no-wrap -msgid "Clone and sync variables" +msgid "--decorate-refs=<pattern>" msgstr "" #. type: Labeled list -#: en/git-p4.txt:487 +#: en/git-log.txt:42 #, no-wrap -msgid "git-p4.syncFromOrigin" +msgid "--decorate-refs-exclude=<pattern>" msgstr "" #. type: Plain text -#: en/git-p4.txt:493 +#: en/git-log.txt:47 msgid "" -"Because importing commits from other Git repositories is much faster than " -"importing them from p4, a mechanism exists to find p4 changes first in Git " -"remotes. If branches exist under 'refs/remote/origin/p4', those will be " -"fetched and used when syncing from p4. This variable can be set to 'false' " -"to disable this behavior." +"If no `--decorate-refs` is given, pretend as if all refs were included. For " +"each candidate, do not use it for decoration if it matches any patterns " +"given to `--decorate-refs-exclude` or if it doesn't match any of the " +"patterns given to `--decorate-refs`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:494 +#: en/git-log.txt:48 #, no-wrap -msgid "git-p4.branchUser" +msgid "--source" msgstr "" #. type: Plain text -#: en/git-p4.txt:499 +#: en/git-log.txt:51 msgid "" -"One phase in branch detection involves looking at p4 branches to find new " -"ones to import. By default, all branches are inspected. This option limits " -"the search to just those owned by the single user named in the variable." +"Print out the ref name given on the command line by which each commit was " +"reached." msgstr "" #. type: Labeled list -#: en/git-p4.txt:500 +#: en/git-log.txt:52 #, no-wrap -msgid "git-p4.branchList" +msgid "--use-mailmap" msgstr "" #. type: Plain text -#: en/git-p4.txt:505 +#: en/git-log.txt:56 msgid "" -"List of branches to be imported when branch detection is enabled. Each " -"entry should be a pair of branch names separated by a colon (:). This " -"example declares that both branchA and branchB were created from main:" +"Use mailmap file to map author and committer names and email addresses to " +"canonical real names and email addresses. See linkgit:git-shortlog[1]." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:509 +#. type: Labeled list +#: en/git-log.txt:57 #, no-wrap -msgid "" -"git config git-p4.branchList main:branchA\n" -"git config --add git-p4.branchList main:branchB\n" +msgid "--full-diff" msgstr "" -#. type: Labeled list -#: en/git-p4.txt:511 -#, no-wrap -msgid "git-p4.ignoredP4Labels" +#. type: Plain text +#: en/git-log.txt:63 +msgid "" +"Without this flag, `git log -p <path>...` shows commits that touch the " +"specified paths, and diffs about the same specified paths. With this, the " +"full diff is shown for commits that touch the specified paths; this means " +"that \"<path>...\" limits only commits, and doesn't limit diff for those " +"commits." msgstr "" #. type: Plain text -#: en/git-p4.txt:514 +#: en/git-log.txt:66 msgid "" -"List of p4 labels to ignore. This is built automatically as unimportable " -"labels are discovered." +"Note that this affects all diff-based output types, e.g. those produced by " +"`--stat`, etc." msgstr "" #. type: Labeled list -#: en/git-p4.txt:515 +#: en/git-log.txt:67 #, no-wrap -msgid "git-p4.importLabels" +msgid "--log-size" msgstr "" #. type: Plain text -#: en/git-p4.txt:517 -msgid "Import p4 labels into git, as per --import-labels." +#: en/git-log.txt:72 +msgid "" +"Include a line ``log size <number>'' in the output for each commit, where " +"<number> is the length of that commit's message in bytes. Intended to speed " +"up tools that read log messages from `git log` output by allowing them to " +"allocate space in advance." msgstr "" #. type: Labeled list -#: en/git-p4.txt:518 +#: en/git-log.txt:73 #, no-wrap -msgid "git-p4.labelImportRegexp" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:521 -msgid "" -"Only p4 labels matching this regular expression will be imported. The " -"default value is '[a-zA-Z0-9_\\-.]+$'." +msgid "-L <start>,<end>:<file>" msgstr "" #. type: Labeled list -#: en/git-p4.txt:522 +#: en/git-log.txt:74 #, no-wrap -msgid "git-p4.useClientSpec" +msgid "-L :<funcname>:<file>" msgstr "" #. type: Plain text -#: en/git-p4.txt:527 +#: en/git-log.txt:81 msgid "" -"Specify that the p4 client spec should be used to identify p4 depot paths of " -"interest. This is equivalent to specifying the option `--use-client-spec`. " -"See the \"CLIENT SPEC\" section above. This variable is a boolean, not the " -"name of a p4 client." +"Trace the evolution of the line range given by \"<start>,<end>\" (or the " +"function name regex <funcname>) within the <file>. You may not give any " +"pathspec limiters. This is currently limited to a walk starting from a " +"single revision, i.e., you may only give zero or one positive revision " +"arguments. You can specify this option more than once." msgstr "" #. type: Labeled list -#: en/git-p4.txt:528 +#: en/git-log.txt:84 en/git-shortlog.txt:63 #, no-wrap -msgid "git-p4.pathEncoding" +msgid "<revision range>" msgstr "" #. type: Plain text -#: en/git-p4.txt:534 +#: en/git-log.txt:92 msgid "" -"Perforce keeps the encoding of a path as given by the originating OS. Git " -"expects paths encoded as UTF-8. Use this config to tell git-p4 what encoding " -"Perforce had used for the paths. This encoding is used to transcode the " -"paths to UTF-8. As an example, Perforce on Windows often uses \"cp1252\" to " -"encode path names." +"Show only commits in the specified revision range. When no <revision range> " +"is specified, it defaults to `HEAD` (i.e. the whole history leading to the " +"current commit). `origin..HEAD` specifies all the commits reachable from " +"the current commit (i.e. `HEAD`), but not from `origin`. For a complete list " +"of ways to spell <revision range>, see the 'Specifying Ranges' section of " +"linkgit:gitrevisions[7]." msgstr "" #. type: Labeled list -#: en/git-p4.txt:535 +#: en/git-log.txt:93 en/git-shortlog.txt:72 #, no-wrap -msgid "git-p4.largeFileSystem" +msgid "[--] <path>..." msgstr "" #. type: Plain text -#: en/git-p4.txt:541 +#: en/git-log.txt:98 msgid "" -"Specify the system that is used for large (binary) files. Please note that " -"large file systems do not support the 'git p4 submit' command. Only Git LFS " -"is implemented right now (see https://git-lfs.github.com/ for more " -"information). Download and install the Git LFS command line extension to use " -"this option and configure it like this:" +"Show only commits that are enough to explain how the files that match the " +"specified paths came to be. See 'History Simplification' below for details " +"and other simplification modes." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:544 -#, no-wrap -msgid "git config git-p4.largeFileSystem GitLFS\n" +#. type: Plain text +#: en/git-log.txt:101 en/git-shortlog.txt:78 +msgid "" +"Paths may need to be prefixed with `--` to separate them from options or the " +"revision range, when confusion arises." msgstr "" -#. type: Labeled list -#: en/git-p4.txt:546 +#. type: Title - +#: en/git-log.txt:107 en/git-show.txt:49 #, no-wrap -msgid "git-p4.largeFileExtensions" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:549 -msgid "" -"All files matching a file extension in the list will be processed by the " -"large file system. Do not prefix the extensions with '.'." +msgid "COMMON DIFF OPTIONS" msgstr "" #. type: Labeled list -#: en/git-p4.txt:550 +#: en/git-log.txt:116 #, no-wrap -msgid "git-p4.largeFileThreshold" +msgid "`git log --no-merges`" msgstr "" #. type: Plain text -#: en/git-p4.txt:554 -msgid "" -"All files with an uncompressed size exceeding the threshold will be " -"processed by the large file system. By default the threshold is defined in " -"bytes. Add the suffix k, m, or g to change the unit." +#: en/git-log.txt:119 +msgid "Show the whole commit history, but skip any merges" msgstr "" #. type: Labeled list -#: en/git-p4.txt:555 +#: en/git-log.txt:120 #, no-wrap -msgid "git-p4.largeFileCompressedThreshold" +msgid "`git log v2.6.12.. include/scsi drivers/scsi`" msgstr "" #. type: Plain text -#: en/git-p4.txt:560 +#: en/git-log.txt:124 msgid "" -"All files with a compressed size exceeding the threshold will be processed " -"by the large file system. This option might slow down your clone/sync " -"process. By default the threshold is defined in bytes. Add the suffix k, m, " -"or g to change the unit." +"Show all commits since version 'v2.6.12' that changed any file in the " +"`include/scsi` or `drivers/scsi` subdirectories" msgstr "" #. type: Labeled list -#: en/git-p4.txt:561 +#: en/git-log.txt:125 #, no-wrap -msgid "git-p4.largeFilePush" +msgid "`git log --since=\"2 weeks ago\" -- gitk`" msgstr "" #. type: Plain text -#: en/git-p4.txt:564 +#: en/git-log.txt:130 msgid "" -"Boolean variable which defines if large files are automatically pushed to a " -"server." +"Show the changes during the last two weeks to the file 'gitk'. The `--` is " +"necessary to avoid confusion with the *branch* named 'gitk'" msgstr "" #. type: Labeled list -#: en/git-p4.txt:565 +#: en/git-log.txt:131 #, no-wrap -msgid "git-p4.keepEmptyCommits" +msgid "`git log --name-status release..test`" msgstr "" #. type: Plain text -#: en/git-p4.txt:568 +#: en/git-log.txt:136 msgid "" -"A changelist that contains only excluded files will be imported as an empty " -"commit if this boolean option is set to true." +"Show the commits that are in the \"test\" branch but not yet in the \"release" +"\" branch, along with the list of paths each commit modifies." msgstr "" #. type: Labeled list -#: en/git-p4.txt:569 +#: en/git-log.txt:137 #, no-wrap -msgid "git-p4.mapUser" +msgid "`git log --follow builtin/rev-list.c`" msgstr "" #. type: Plain text -#: en/git-p4.txt:572 +#: en/git-log.txt:142 msgid "" -"Map a P4 user to a name and email address in Git. Use a string with the " -"following format to create a mapping:" +"Shows the commits that changed `builtin/rev-list.c`, including those commits " +"that occurred before the file was given its present name." msgstr "" -#. type: delimited block - -#: en/git-p4.txt:575 +#. type: Labeled list +#: en/git-log.txt:143 #, no-wrap -msgid "git config --add git-p4.mapUser \"p4user = First Last <mail@address.com>\"\n" +msgid "`git log --branches --not --remotes=origin`" msgstr "" #. type: Plain text -#: en/git-p4.txt:579 +#: en/git-log.txt:148 msgid "" -"A mapping will override any user information from P4. Mappings for multiple " -"P4 user can be defined." -msgstr "" - -#. type: Title ~ -#: en/git-p4.txt:581 -#, no-wrap -msgid "Submit variables" +"Shows all commits that are in any of local branches but not in any of remote-" +"tracking branches for 'origin' (what you have that origin doesn't)." msgstr "" #. type: Labeled list -#: en/git-p4.txt:582 +#: en/git-log.txt:149 #, no-wrap -msgid "git-p4.detectRenames" +msgid "`git log master --not --remotes=*/master`" msgstr "" #. type: Plain text -#: en/git-p4.txt:585 +#: en/git-log.txt:153 msgid "" -"Detect renames. See linkgit:git-diff[1]. This can be true, false, or a " -"score as expected by 'git diff -M'." +"Shows all commits that are in local master but not in any remote repository " +"master branches." msgstr "" #. type: Labeled list -#: en/git-p4.txt:586 +#: en/git-log.txt:154 #, no-wrap -msgid "git-p4.detectCopies" +msgid "`git log -p -m --first-parent`" msgstr "" #. type: Plain text -#: en/git-p4.txt:589 +#: en/git-log.txt:161 msgid "" -"Detect copies. See linkgit:git-diff[1]. This can be true, false, or a " -"score as expected by 'git diff -C'." +"Shows the history including change diffs, but only from the ``main branch'' " +"perspective, skipping commits that come from merged branches, and showing " +"full diffs of changes introduced by the merges. This makes sense only when " +"following a strict policy of merging all topic branches when staying on a " +"single integration branch." msgstr "" #. type: Labeled list -#: en/git-p4.txt:590 +#: en/git-log.txt:162 #, no-wrap -msgid "git-p4.detectCopiesHarder" +msgid "`git log -L '/int main/',/^}/:main.c`" msgstr "" #. type: Plain text -#: en/git-p4.txt:592 -msgid "Detect copies harder. See linkgit:git-diff[1]. A boolean." +#: en/git-log.txt:166 +msgid "Shows how the function `main()` in the file `main.c` evolved over time." msgstr "" #. type: Labeled list -#: en/git-p4.txt:593 +#: en/git-log.txt:167 #, no-wrap -msgid "git-p4.preserveUser" +msgid "`git log -3`" msgstr "" #. type: Plain text -#: en/git-p4.txt:596 -msgid "" -"On submit, re-author changes to reflect the Git author, regardless of who " -"invokes 'git p4 submit'." -msgstr "" - -#. type: Labeled list -#: en/git-p4.txt:597 -#, no-wrap -msgid "git-p4.allowMissingP4Users" +#: en/git-log.txt:170 +msgid "Limits the number of commits to show to 3." msgstr "" #. type: Plain text -#: en/git-p4.txt:601 +#: en/git-log.txt:181 msgid "" -"When 'preserveUser' is true, 'git p4' normally dies if it cannot find an " -"author in the p4 user map. This setting submits the change regardless." +"See linkgit:git-config[1] for core variables and linkgit:git-diff[1] for " +"settings related to diff generation." msgstr "" #. type: Labeled list -#: en/git-p4.txt:602 +#: en/git-log.txt:182 #, no-wrap -msgid "git-p4.skipSubmitEdit" +msgid "format.pretty" msgstr "" #. type: Plain text -#: en/git-p4.txt:606 +#: en/git-log.txt:185 msgid "" -"The submit process invokes the editor before each p4 change is submitted. " -"If this setting is true, though, the editing step is skipped." +"Default for the `--format` option. (See 'Pretty Formats' above.) Defaults " +"to `medium`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:607 +#: en/git-log.txt:186 #, no-wrap -msgid "git-p4.skipSubmitEditCheck" +msgid "i18n.logOutputEncoding" msgstr "" #. type: Plain text -#: en/git-p4.txt:611 +#: en/git-log.txt:190 msgid "" -"After editing the p4 change message, 'git p4' makes sure that the " -"description really was changed by looking at the file modification time. " -"This option disables that test." +"Encoding to use when displaying logs. (See 'Discussion' above.) Defaults " +"to the value of `i18n.commitEncoding` if set, and UTF-8 otherwise." msgstr "" #. type: Labeled list -#: en/git-p4.txt:612 +#: en/git-log.txt:191 #, no-wrap -msgid "git-p4.allowSubmit" +msgid "log.date" msgstr "" #. type: Plain text -#: en/git-p4.txt:618 +#: en/git-log.txt:195 msgid "" -"By default, any branch can be used as the source for a 'git p4 submit' " -"operation. This configuration variable, if set, permits only the named " -"branches to be used as submit sources. Branch names must be the short names " -"(no \"refs/heads/\"), and should be separated by commas (\",\"), with no " -"spaces." -msgstr "" - -#. type: Labeled list -#: en/git-p4.txt:619 -#, no-wrap -msgid "git-p4.skipUserNameCheck" +"Default format for human-readable dates. (Compare the `--date` option.) " +"Defaults to \"default\", which means to write dates like `Sat May 8 19:35:34 " +"2010 -0500`." msgstr "" #. type: Plain text -#: en/git-p4.txt:623 +#: en/git-log.txt:199 msgid "" -"If the user running 'git p4 submit' does not exist in the p4 user map, 'git " -"p4' exits. This option can be used to force submission regardless." +"If the format is set to \"auto:foo\" and the pager is in use, format \"foo\" " +"will be the used for the date format. Otherwise \"default\" will be used." msgstr "" #. type: Labeled list -#: en/git-p4.txt:624 +#: en/git-log.txt:200 #, no-wrap -msgid "git-p4.attemptRCSCleanup" +msgid "log.follow" msgstr "" #. type: Plain text -#: en/git-p4.txt:629 +#: en/git-log.txt:205 msgid "" -"If enabled, 'git p4 submit' will attempt to cleanup RCS keywords ($Header$, " -"etc). These would otherwise cause merge conflicts and prevent the submit " -"going ahead. This option should be considered experimental at present." +"If `true`, `git log` will act as if the `--follow` option was used when a " +"single <path> is given. This has the same limitations as `--follow`, i.e. " +"it cannot be used to follow multiple files and does not work well on non-" +"linear history." msgstr "" #. type: Labeled list -#: en/git-p4.txt:630 +#: en/git-log.txt:206 #, no-wrap -msgid "git-p4.exportLabels" +msgid "log.showRoot" msgstr "" #. type: Plain text -#: en/git-p4.txt:632 -msgid "Export Git tags to p4 labels, as per --export-labels." +#: en/git-log.txt:211 +msgid "" +"If `false`, `git log` and related commands will not treat the initial commit " +"as a big creation event. Any root commits in `git log -p` output would be " +"shown without a diff attached. The default is `true`." msgstr "" #. type: Labeled list -#: en/git-p4.txt:633 +#: en/git-log.txt:212 #, no-wrap -msgid "git-p4.labelExportRegexp" +msgid "log.showSignature" msgstr "" #. type: Plain text -#: en/git-p4.txt:636 +#: en/git-log.txt:215 msgid "" -"Only p4 labels matching this regular expression will be exported. The " -"default value is '[a-zA-Z0-9_\\-.]+$'." +"If `true`, `git log` and related commands will act as if the `--show-" +"signature` option was passed to them." msgstr "" #. type: Labeled list -#: en/git-p4.txt:637 +#: en/git-log.txt:216 #, no-wrap -msgid "git-p4.conflict" +msgid "mailmap.*" msgstr "" #. type: Plain text -#: en/git-p4.txt:640 -msgid "" -"Specify submit behavior when a conflict with p4 is found, as per " -"--conflict. The default behavior is 'ask'." +#: en/git-log.txt:218 +msgid "See linkgit:git-shortlog[1]." msgstr "" -#. type: Title - -#: en/git-p4.txt:642 +#. type: Labeled list +#: en/git-log.txt:219 en/git-notes.txt:333 #, no-wrap -msgid "IMPLEMENTATION DETAILS" -msgstr "" - -#. type: Plain text -#: en/git-p4.txt:644 -msgid "Changesets from p4 are imported using Git fast-import." +msgid "notes.displayRef" msgstr "" #. type: Plain text -#: en/git-p4.txt:646 +#: en/git-log.txt:224 msgid "" -"Cloning or syncing does not require a p4 client; file contents are collected " -"using 'p4 print'." +"Which refs, in addition to the default set by `core.notesRef` or " +"`GIT_NOTES_REF`, to read notes from when showing commit messages with the " +"`log` family of commands. See linkgit:git-notes[1]." msgstr "" #. type: Plain text -#: en/git-p4.txt:649 +#: en/git-log.txt:228 msgid "" -"Submitting requires a p4 client, which is not in the same location as the " -"Git repository. Patches are applied, one at a time, to this p4 client and " -"submitted from there." +"May be an unabbreviated ref name or a glob and may be specified multiple " +"times. A warning will be issued for refs that do not exist, but a glob that " +"does not match any refs is silently ignored." msgstr "" #. type: Plain text -#: en/git-p4.txt:652 +#: en/git-log.txt:232 msgid "" -"Each commit imported by 'git p4' has a line at the end of the log message " -"indicating the p4 depot location and change number. This line is used by " -"later 'git p4 sync' operations to know which p4 changes are new." +"This setting can be disabled by the `--no-notes` option, overridden by the " +"`GIT_NOTES_DISPLAY_REF` environment variable, and overridden by the `--" +"notes=<ref>` option." msgstr "" #. type: Title = -#: en/git-pack-objects.txt:2 +#: en/git-ls-files.txt:2 #, no-wrap -msgid "git-pack-objects(1)" +msgid "git-ls-files(1)" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:7 -msgid "git-pack-objects - Create a packed archive of objects" +#: en/git-ls-files.txt:7 +msgid "" +"git-ls-files - Show information about files in the index and the working tree" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:17 +#: en/git-ls-files.txt:23 #, no-wrap msgid "" -"'git pack-objects' [-q | --progress | --all-progress] " -"[--all-progress-implied]\n" -"\t[--no-reuse-delta] [--delta-base-offset] [--non-empty]\n" -"\t[--local] [--incremental] [--window=<n>] [--depth=<n>]\n" -"\t[--revs [--unpacked | --all]] [--stdout | base-name]\n" -"\t[--shallow] [--keep-true-parents] < object-list\n" +"'git ls-files' [-z] [-t] [-v] [-f]\n" +"\t\t(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*\n" +"\t\t(-[c|d|o|i|s|u|k|m])*\n" +"\t\t[--eol]\n" +"\t\t[-x <pattern>|--exclude=<pattern>]\n" +"\t\t[-X <file>|--exclude-from=<file>]\n" +"\t\t[--exclude-per-directory=<file>]\n" +"\t\t[--exclude-standard]\n" +"\t\t[--error-unmatch] [--with-tree=<tree-ish>]\n" +"\t\t[--full-name] [--recurse-submodules]\n" +"\t\t[--abbrev] [--] [<file>...]\n" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:23 +#: en/git-ls-files.txt:29 msgid "" -"Reads list of objects from the standard input, and writes a packed archive " -"with specified base-name, or to the standard output." +"This merges the file listing in the directory cache index with the actual " +"working directory list, and shows different combinations of the two." msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:29 +#: en/git-ls-files.txt:32 msgid "" -"A packed archive is an efficient way to transfer a set of objects between " -"two repositories as well as an access efficient archival format. In a " -"packed archive, an object is either stored as a compressed whole or as a " -"difference from some other object. The latter is often called a delta." +"One or more of the options below may be used to determine the files shown:" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:33 -msgid "" -"The packed archive format (.pack) is designed to be self-contained so that " -"it can be unpacked without any further information. Therefore, each object " -"that a delta depends upon must be present within the pack." +#: en/git-ls-files.txt:38 +msgid "Show cached files in the output (default)" msgstr "" -#. type: Plain text -#: en/git-pack-objects.txt:39 -msgid "" -"A pack index file (.idx) is generated for fast, random access to the objects " -"in the pack. Placing both the index file (.idx) and the packed archive " -"(.pack) in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or any of the " -"directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) enables Git to read from " -"the pack archive." +#. type: Labeled list +#: en/git-ls-files.txt:40 +#, no-wrap +msgid "--deleted" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:45 -msgid "" -"The 'git unpack-objects' command can read the packed archive and expand the " -"objects contained in the pack into \"one-file one-object\" format; this is " -"typically done by the smart-pull commands when a pack is created on-the-fly " -"for efficient network transport by their peers." +#: en/git-ls-files.txt:42 +msgid "Show deleted files in the output" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:49 +#: en/git-ls-files.txt:44 #, no-wrap -msgid "base-name" -msgstr "" - -#. type: Plain text -#: en/git-pack-objects.txt:56 -msgid "" -"Write into a pair of files (.pack and .idx), using <base-name> to determine " -"the name of the created file. When this option is used, the two files are " -"written in <base-name>-<SHA-1>.{pack,idx} files. <SHA-1> is a hash based on " -"the pack content and is written to the standard output of the command." +msgid "--modified" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:60 -msgid "" -"Write the pack contents (what would have been written to .pack file) out to " -"the standard output." +#: en/git-ls-files.txt:46 +msgid "Show modified files in the output" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:61 +#: en/git-ls-files.txt:48 #, no-wrap -msgid "--revs" +msgid "--others" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:69 -msgid "" -"Read the revision arguments from the standard input, instead of individual " -"object names. The revision arguments are processed the same way as 'git " -"rev-list' with the `--objects` flag uses its `commit` arguments to build the " -"list of objects it outputs. The objects on the resulting list are packed. " -"Besides revisions, `--not` or `--shallow <SHA-1>` lines are also accepted." +#: en/git-ls-files.txt:50 +msgid "Show other (i.e. untracked) files in the output" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:70 en/rev-list-options.txt:693 +#: en/git-ls-files.txt:52 #, no-wrap -msgid "--unpacked" +msgid "--ignored" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:74 +#: en/git-ls-files.txt:58 msgid "" -"This implies `--revs`. When processing the list of revision arguments read " -"from the standard input, limit the objects packed to those that are not " -"already packed." +"Show only ignored files in the output. When showing files in the index, " +"print only those matched by an exclude pattern. When showing \"other\" " +"files, show only those matched by an exclude pattern. Standard ignore rules " +"are not automatically activated, therefore at least one of the `--exclude*` " +"options is required." msgstr "" -#. type: Plain text -#: en/git-pack-objects.txt:80 -msgid "" -"This implies `--revs`. In addition to the list of revision arguments read " -"from the standard input, pretend as if all refs under `refs/` are specified " -"to be included." +#. type: Labeled list +#: en/git-ls-files.txt:60 +#, no-wrap +msgid "--stage" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:85 +#: en/git-ls-files.txt:62 msgid "" -"Include unasked-for annotated tags if the object they reference was included " -"in the resulting packfile. This can be useful to send new tags to native " -"Git clients." +"Show staged contents' mode bits, object name and stage number in the output." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:86 en/git-repack.txt:84 +#: en/git-ls-files.txt:63 #, no-wrap -msgid "--window=<n>" +msgid "--directory" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:98 +#: en/git-ls-files.txt:66 msgid "" -"These two options affect how the objects contained in the pack are stored " -"using delta compression. The objects are first internally sorted by type, " -"size and optionally names and compared against the other objects within " -"--window to see if using delta compression saves space. --depth limits the " -"maximum delta depth; making it too deep affects the performance on the " -"unpacker side, because delta data needs to be applied that many times to get " -"to the necessary object. The default value for --window is 10 and --depth " -"is 50." +"If a whole directory is classified as \"other\", show just its name (with a " +"trailing slash) and not its whole contents." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:99 en/git-repack.txt:95 +#: en/git-ls-files.txt:67 #, no-wrap -msgid "--window-memory=<n>" -msgstr "" - -#. type: Plain text -#: en/git-pack-objects.txt:109 -msgid "" -"This option provides an additional limit on top of `--window`; the window " -"size will dynamically scale down so as to not take up more than '<n>' bytes " -"in memory. This is useful in repositories with a mix of large and small " -"objects to not run out of memory with a large window, but still be able to " -"take advantage of the large window for the smaller objects. The size can be " -"suffixed with \"k\", \"m\", or \"g\". `--window-memory=0` makes memory " -"usage unlimited. The default is taken from the `pack.windowMemory` " -"configuration variable." +msgid "--no-empty-directory" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:117 en/git-repack.txt:115 -msgid "" -"Maximum size of each output pack file. The size can be suffixed with \"k\", " -"\"m\", or \"g\". The minimum size allowed is limited to 1 MiB. If " -"specified, multiple packfiles may be created, which also prevents the " -"creation of a bitmap index. The default is unlimited, unless the config " -"variable `pack.packSizeLimit` is set." +#: en/git-ls-files.txt:69 +msgid "Do not list empty directories. Has no effect without --directory." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:118 +#: en/git-ls-files.txt:71 en/git-update-index.txt:67 #, no-wrap -msgid "--honor-pack-keep" +msgid "--unmerged" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:122 -msgid "" -"This flag causes an object already in a local pack that has a .keep file to " -"be ignored, even if it would have otherwise been packed." +#: en/git-ls-files.txt:73 +msgid "Show unmerged files in the output (forces --stage)" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:123 en/git-svn.txt:357 en/blame-options.txt:48 +#: en/git-ls-files.txt:75 #, no-wrap -msgid "--incremental" +msgid "--killed" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:126 +#: en/git-ls-files.txt:79 msgid "" -"This flag causes an object already in a pack to be ignored even if it would " -"have otherwise been packed." +"Show files on the filesystem that need to be removed due to file/directory " +"conflicts for checkout-index to succeed." msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:131 +#: en/git-ls-files.txt:83 msgid "" -"This flag causes an object that is borrowed from an alternate object store " -"to be ignored even if it would have otherwise been packed." +"\\0 line termination on output and do not quote filenames. See OUTPUT below " +"for more information." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:132 +#: en/git-ls-files.txt:84 #, no-wrap -msgid "--non-empty" +msgid "-x <pattern>" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:135 -msgid "Only create a packed archive if it would contain at least one object." +#: en/git-ls-files.txt:89 +msgid "" +"Skip untracked files matching pattern. Note that pattern is a shell " +"wildcard pattern. See EXCLUDE PATTERNS below for more information." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:142 +#: en/git-ls-files.txt:90 #, no-wrap -msgid "--all-progress" +msgid "-X <file>" +msgstr "" + +#. type: Labeled list +#: en/git-ls-files.txt:91 +#, no-wrap +msgid "--exclude-from=<file>" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:152 -msgid "" -"When --stdout is specified then progress report is displayed during the " -"object count and compression phases but inhibited during the write-out " -"phase. The reason is that in some cases the output stream is directly linked " -"to another command which may wish to display progress status of its own as " -"it processes incoming pack data. This flag is like --progress except that " -"it forces progress report for the write-out phase as well even if --stdout " -"is used." +#: en/git-ls-files.txt:93 +msgid "Read exclude patterns from <file>; 1 per line." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:153 +#: en/git-ls-files.txt:94 #, no-wrap -msgid "--all-progress-implied" +msgid "--exclude-per-directory=<file>" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:157 +#: en/git-ls-files.txt:97 msgid "" -"This is used to imply --all-progress whenever progress display is " -"activated. Unlike --all-progress this flag doesn't actually force any " -"progress display by itself." +"Read additional exclude patterns that apply only to the directory and its " +"subdirectories in <file>." msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:161 +#: en/git-ls-files.txt:101 msgid "" -"This flag makes the command not to report its progress on the standard error " -"stream." +"Add the standard Git exclusions: .git/info/exclude, .gitignore in each " +"directory, and the user's global exclusion file." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:162 +#: en/git-ls-files.txt:102 #, no-wrap -msgid "--no-reuse-delta" +msgid "--error-unmatch" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:168 +#: en/git-ls-files.txt:105 msgid "" -"When creating a packed archive in a repository that has existing packs, the " -"command reuses existing deltas. This sometimes results in a slightly " -"suboptimal pack. This flag tells the command not to reuse existing deltas " -"but compute them from scratch." +"If any <file> does not appear in the index, treat this as an error (return " +"1)." msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:169 +#: en/git-ls-files.txt:106 #, no-wrap -msgid "--no-reuse-object" +msgid "--with-tree=<tree-ish>" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:175 +#: en/git-ls-files.txt:112 msgid "" -"This flag tells the command not to reuse existing object data at all, " -"including non deltified object, forcing recompression of everything. This " -"implies --no-reuse-delta. Useful only in the obscure case where wholesale " -"enforcement of a different compression level on the packed data is desired." -msgstr "" - -#. type: Labeled list -#: en/git-pack-objects.txt:176 -#, no-wrap -msgid "--compression=<n>" +"When using --error-unmatch to expand the user supplied <file> (i.e. path " +"pattern) arguments to paths, pretend that paths which were removed in the " +"index since the named <tree-ish> are still present. Using this option with " +"`-s` or `-u` options does not make any sense." msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:183 +#: en/git-ls-files.txt:120 msgid "" -"Specifies compression level for newly-compressed data in the generated " -"pack. If not specified, pack compression level is determined first by " -"pack.compression, then by core.compression, and defaults to -1, the zlib " -"default, if neither is set. Add --no-reuse-object if you want to force a " -"uniform compression level on all data no matter the source." +"This feature is semi-deprecated. For scripting purpose, linkgit:git-" +"status[1] `--porcelain` and linkgit:git-diff-files[1] `--name-status` are " +"almost always superior alternatives, and users should look at linkgit:git-" +"status[1] `--short` or linkgit:git-diff[1] `--name-status` for more user-" +"friendly alternatives." msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:188 +#: en/git-ls-files.txt:123 msgid "" -"Create a \"thin\" pack by omitting the common objects between a sender and a " -"receiver in order to reduce network transfer. This option only makes sense " -"in conjunction with --stdout." +"This option identifies the file status with the following tags (followed by " +"a space) at the start of each line:" +msgstr "" + +#. type: Labeled list +#: en/git-ls-files.txt:124 +#, no-wrap +msgid "H" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:193 -msgid "" -"Note: A thin pack violates the packed archive format by omitting required " -"objects and is thus unusable by Git without making it self-contained. Use " -"`git index-pack --fix-thin` (see linkgit:git-index-pack[1]) to restore the " -"self-contained property." +#: en/git-ls-files.txt:125 +msgid "cached" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:194 +#: en/git-ls-files.txt:125 #, no-wrap -msgid "--shallow" +msgid "S" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:198 -msgid "" -"Optimize a pack that will be provided to a client with a shallow " -"repository. This option, combined with --thin, can result in a smaller pack " -"at the cost of speed." +#: en/git-ls-files.txt:126 +msgid "skip-worktree" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:199 +#: en/git-ls-files.txt:126 #, no-wrap -msgid "--delta-base-offset" +msgid "M" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:209 -msgid "" -"A packed archive can express the base object of a delta as either a 20-byte " -"object name or as an offset in the stream, but ancient versions of Git don't " -"understand the latter. By default, 'git pack-objects' only uses the former " -"format for better compatibility. This option allows the command to use the " -"latter format for compactness. Depending on the average delta chain length, " -"this option typically shrinks the resulting packfile by 3-5 per-cent." +#: en/git-ls-files.txt:127 +msgid "unmerged" msgstr "" -#. type: Plain text -#: en/git-pack-objects.txt:214 -msgid "" -"Note: Porcelain commands such as `git gc` (see linkgit:git-gc[1]), `git " -"repack` (see linkgit:git-repack[1]) pass this option by default in modern " -"Git when they put objects in your repository into pack files. So does `git " -"bundle` (see linkgit:git-bundle[1]) when it creates a bundle." +#. type: Labeled list +#: en/git-ls-files.txt:127 +#, no-wrap +msgid "R" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:224 -msgid "" -"Specifies the number of threads to spawn when searching for best delta " -"matches. This requires that pack-objects be compiled with pthreads " -"otherwise this option is ignored with a warning. This is meant to reduce " -"packing time on multiprocessor machines. The required amount of memory for " -"the delta search window is however multiplied by the number of threads. " -"Specifying 0 will cause Git to auto-detect the number of CPU's and set the " -"number of threads accordingly." +#: en/git-ls-files.txt:128 +msgid "removed/deleted" msgstr "" #. type: Labeled list -#: en/git-pack-objects.txt:230 +#: en/git-ls-files.txt:128 #, no-wrap -msgid "--keep-true-parents" +msgid "C" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:233 -msgid "With this option, parents that are hidden by grafts are packed nevertheless." +#: en/git-ls-files.txt:129 +msgid "modified/changed" +msgstr "" + +#. type: Labeled list +#: en/git-ls-files.txt:129 +#, no-wrap +msgid "K" msgstr "" #. type: Plain text -#: en/git-pack-objects.txt:239 -msgid "linkgit:git-rev-list[1] linkgit:git-repack[1] linkgit:git-prune-packed[1]" +#: en/git-ls-files.txt:130 +msgid "to be killed" msgstr "" -#. type: Title = -#: en/git-pack-redundant.txt:2 +#. type: Labeled list +#: en/git-ls-files.txt:130 #, no-wrap -msgid "git-pack-redundant(1)" +msgid "?" msgstr "" -#. type: Plain text -#: en/git-pack-redundant.txt:7 -msgid "git-pack-redundant - Find redundant pack files" +#. type: Title ~ +#: en/git-ls-files.txt:131 en/git.txt:513 +#, no-wrap +msgid "other" msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:13 -#, no-wrap +#: en/git-ls-files.txt:136 msgid "" -"'git pack-redundant' [ --verbose ] [ --alt-odb ] < --all | .pack filename " -"... >\n" +"Similar to `-t`, but use lowercase letters for files that are marked as " +"'assume unchanged' (see linkgit:git-update-index[1])." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:19 +#: en/git-ls-files.txt:141 msgid "" -"This program computes which packs in your repository are redundant. The " -"output is suitable for piping to `xargs rm` if you are in the root of the " -"repository." +"Similar to `-t`, but use lowercase letters for files that are marked as " +"'fsmonitor valid' (see linkgit:git-update-index[1])." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:24 +#: en/git-ls-files.txt:151 msgid "" -"'git pack-redundant' accepts a list of objects on standard input. Any " -"objects given will be ignored when checking which packs are required. This " -"makes the following command useful when wanting to remove packs which " -"contain unreachable objects." +"Recursively calls ls-files on each submodule in the repository. Currently " +"there is only support for the --cached mode." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:27 +#: en/git-ls-files.txt:156 en/git-ls-tree.txt:67 msgid "" -"git fsck --full --unreachable | cut -d ' ' -f3 | \\ git pack-redundant --all " -"| xargs rm" +"Instead of showing the full 40-byte hexadecimal object lines, show only a " +"partial prefix. Non default number of digits can be specified with --" +"abbrev=<n>." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:34 -msgid "Processes all packs. Any filenames on the command line are ignored." +#: en/git-ls-files.txt:162 +msgid "" +"After each line that describes a file, add more data about its cache entry. " +"This is intended to show as much information as possible for manual " +"inspection; the exact format may change at any time." msgstr "" #. type: Labeled list -#: en/git-pack-redundant.txt:35 +#: en/git-ls-files.txt:163 #, no-wrap -msgid "--alt-odb" +msgid "--eol" msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:38 +#: en/git-ls-files.txt:168 msgid "" -"Don't require objects present in packs from alternate object directories to " -"be present in local packs." +"Show <eolinfo> and <eolattr> of files. <eolinfo> is the file content " +"identification used by Git when the \"text\" attribute is \"auto\" (or not " +"set and core.autocrlf is not false). <eolinfo> is either \"-text\", \"none" +"\", \"lf\", \"crlf\", \"mixed\" or \"\"." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:41 -msgid "Outputs some statistics to stderr. Has a small performance penalty." +#: en/git-ls-files.txt:171 +msgid "" +"\"\" means the file is not a regular file, it is not in the index or not " +"accessible in the working tree." msgstr "" #. type: Plain text -#: en/git-pack-redundant.txt:47 +#: en/git-ls-files.txt:175 msgid "" -"linkgit:git-pack-objects[1] linkgit:git-repack[1] " -"linkgit:git-prune-packed[1]" -msgstr "" - -#. type: Title = -#: en/git-pack-refs.txt:2 -#, no-wrap -msgid "git-pack-refs(1)" +"<eolattr> is the attribute that is used when checking out or committing, it " +"is either \"\", \"-text\", \"text\", \"text=auto\", \"text eol=lf\", \"text " +"eol=crlf\". Since Git 2.10 \"text=auto eol=lf\" and \"text=auto eol=crlf\" " +"are supported." msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:7 -msgid "git-pack-refs - Pack heads and tags for efficient repository access" +#: en/git-ls-files.txt:179 +msgid "" +"Both the <eolinfo> in the index (\"i/<eolinfo>\") and in the working tree " +"(\"w/<eolinfo>\") are shown for regular files, followed by the (\"attr/" +"<eolattr>\")." msgstr "" -#. type: Plain text -#: en/git-pack-refs.txt:12 +#. type: Labeled list +#: en/git-ls-files.txt:183 en/git.txt:331 en/git-update-index.txt:224 #, no-wrap -msgid "'git pack-refs' [--all] [--no-prune]\n" +msgid "<file>" msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:24 +#: en/git-ls-files.txt:186 msgid "" -"Traditionally, tips of branches and tags (collectively known as 'refs') were " -"stored one file per ref in a (sub)directory under `$GIT_DIR/refs` " -"directory. While many branch tips tend to be updated often, most tags and " -"some branch tips are never updated. When a repository has hundreds or " -"thousands of tags, this one-file-per-ref format both wastes storage and " -"hurts performance." +"Files to show. If no files are given all files which match the other " +"specified criteria are shown." msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:31 +#: en/git-ls-files.txt:191 msgid "" -"This command is used to solve the storage and performance problem by storing " -"the refs in a single file, `$GIT_DIR/packed-refs`. When a ref is missing " -"from the traditional `$GIT_DIR/refs` directory hierarchy, it is looked up in " -"this file and used if found." +"'git ls-files' just outputs the filenames unless `--stage` is specified in " +"which case it outputs:" msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:34 -msgid "" -"Subsequent updates to branches always create new files under `$GIT_DIR/refs` " -"directory hierarchy." +#: en/git-ls-files.txt:193 +#, no-wrap +msgid " [<tag> ]<mode> <object> <stage> <file>\n" msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:43 +#: en/git-ls-files.txt:196 +#, no-wrap msgid "" -"A recommended practice to deal with a repository with too many refs is to " -"pack its refs with `--all` once, and occasionally run `git pack-refs`. Tags " -"are by definition stationary and are not expected to change. Branch heads " -"will be packed with the initial `pack-refs --all`, but only the currently " -"active branch heads will become unpacked, and the next `pack-refs` (without " -"`--all`) will leave them unpacked." +"'git ls-files --eol' will show\n" +"\ti/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>\n" msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:56 +#: en/git-ls-files.txt:199 msgid "" -"The command by default packs all tags and refs that are already packed, and " -"leaves other refs alone. This is because branches are expected to be " -"actively developed and packing their tips does not help performance. This " -"option causes branch tips to be packed as well. Useful for a repository " -"with many branches of historical interests." +"'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine " +"detailed information on unmerged paths." msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:61 +#: en/git-ls-files.txt:205 msgid "" -"The command usually removes loose refs under `$GIT_DIR/refs` hierarchy after " -"packing them. This option tells it not to." +"For an unmerged path, instead of recording a single mode/SHA-1 pair, the " +"index records up to three such pairs; one from tree O in stage 1, A in stage " +"2, and B in stage 3. This information can be used by the user (or the " +"porcelain) to see what should eventually be recorded at the path. (see " +"linkgit:git-read-tree[1] for more information on state)" +msgstr "" + +#. type: Title - +#: en/git-ls-files.txt:213 +#, no-wrap +msgid "EXCLUDE PATTERNS" msgstr "" #. type: Plain text -#: en/git-pack-refs.txt:69 +#: en/git-ls-files.txt:219 msgid "" -"Older documentation written before the packed-refs mechanism was introduced " -"may still say things like \".git/refs/heads/<branch> file exists\" when it " -"means \"branch <branch> exists\"." +"'git ls-files' can use a list of \"exclude patterns\" when traversing the " +"directory tree and finding files to show when the flags --others or --" +"ignored are specified. linkgit:gitignore[5] specifies the format of exclude " +"patterns." msgstr "" -#. type: Title = -#: en/git-parse-remote.txt:2 -#, no-wrap -msgid "git-parse-remote(1)" +#. type: Plain text +#: en/git-ls-files.txt:221 +msgid "These exclude patterns come from these places, in order:" msgstr "" #. type: Plain text -#: en/git-parse-remote.txt:7 +#: en/git-ls-files.txt:225 msgid "" -"git-parse-remote - Routines to help parsing remote repository access " -"parameters" +"The command-line flag --exclude=<pattern> specifies a single pattern. " +"Patterns are ordered in the same order they appear in the command line." msgstr "" #. type: Plain text -#: en/git-parse-remote.txt:13 -#, no-wrap -msgid "'. \"$(git --exec-path)/git-parse-remote\"'\n" +#: en/git-ls-files.txt:229 +msgid "" +"The command-line flag --exclude-from=<file> specifies a file containing a " +"list of patterns. Patterns are ordered in the same order they appear in the " +"file." msgstr "" #. type: Plain text -#: en/git-parse-remote.txt:20 +#: en/git-ls-files.txt:235 msgid "" -"This script is included in various scripts to supply routines to parse files " -"under $GIT_DIR/remotes/ and $GIT_DIR/branches/ and configuration variables " -"that are related to fetching, pulling and pushing." +"The command-line flag --exclude-per-directory=<name> specifies a name of the " +"file in each directory 'git ls-files' examines, normally `.gitignore`. " +"Files in deeper directories take precedence. Patterns are ordered in the " +"same order they appear in the files." msgstr "" -#. type: Title = -#: en/git-patch-id.txt:2 -#, no-wrap -msgid "git-patch-id(1)" +#. type: Plain text +#: en/git-ls-files.txt:241 +msgid "" +"A pattern specified on the command line with --exclude or read from the file " +"specified with --exclude-from is relative to the top of the directory tree. " +"A pattern read from a file specified by --exclude-per-directory is relative " +"to the directory that the pattern file appears in." msgstr "" #. type: Plain text -#: en/git-patch-id.txt:7 -msgid "git-patch-id - Compute unique ID for a patch" +#: en/git-ls-files.txt:245 +msgid "linkgit:git-read-tree[1], linkgit:gitignore[5]" msgstr "" -#. type: Plain text -#: en/git-patch-id.txt:12 +#. type: Title = +#: en/git-ls-remote.txt:2 #, no-wrap -msgid "'git patch-id' [--stable | --unstable]\n" +msgid "git-ls-remote(1)" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:16 -msgid "Read a patch from the standard input and compute the patch ID for it." +#: en/git-ls-remote.txt:7 +msgid "git-ls-remote - List references in a remote repository" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:21 +#: en/git-ls-remote.txt:15 +#, no-wrap msgid "" -"A \"patch ID\" is nothing but a sum of SHA-1 of the file diffs associated " -"with a patch, with whitespace and line numbers ignored. As such, it's " -"\"reasonably stable\", but at the same time also reasonably unique, i.e., " -"two patches that have the same \"patch ID\" are almost guaranteed to be the " -"same thing." -msgstr "" - -#. type: Plain text -#: en/git-patch-id.txt:23 -msgid "IOW, you can use this thing to look for likely duplicate commits." +"'git ls-remote' [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n" +"\t [-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]\n" +"\t [--symref] [<repository> [<refs>...]]\n" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:29 +#: en/git-ls-remote.txt:20 msgid "" -"When dealing with 'git diff-tree' output, it takes advantage of the fact " -"that the patch is prefixed with the object name of the commit, and outputs " -"two 40-byte hexadecimal strings. The first string is the patch ID, and the " -"second string is the commit ID. This can be used to make a mapping from " -"patch ID to commit ID." +"Displays references available in a remote repository along with the " +"associated commit IDs." msgstr "" #. type: Labeled list -#: en/git-patch-id.txt:33 +#: en/git-ls-remote.txt:25 en/git-show-ref.txt:40 #, no-wrap -msgid "--stable" +msgid "--heads" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:35 -msgid "Use a \"stable\" sum of hashes as the patch ID. With this option:" +#: en/git-ls-remote.txt:32 +msgid "" +"Limit to only refs/heads and refs/tags, respectively. These options are " +"_not_ mutually exclusive; when given both, references stored in refs/heads " +"and refs/tags are displayed." msgstr "" -#. type: Plain text -#: en/git-patch-id.txt:41 -msgid "" -"Reordering file diffs that make up a patch does not affect the ID. In " -"particular, two patches produced by comparing the same two trees with two " -"different settings for \"-O<orderfile>\" result in the same patch ID " -"signature, thereby allowing the computed result to be used as a key to index " -"some meta-information about the change between the two trees;" +#. type: Labeled list +#: en/git-ls-remote.txt:33 +#, no-wrap +msgid "--refs" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:47 -msgid "" -"Result is different from the value produced by git 1.9 and older or produced " -"when an \"unstable\" hash (see --unstable below) is configured - even when " -"used on a diff output taken without any use of \"-O<orderfile>\", thereby " -"making existing databases storing such \"unstable\" or historical patch-ids " -"unusable." +#: en/git-ls-remote.txt:35 +msgid "Do not show peeled tags or pseudorefs like HEAD\tin the output." msgstr "" #. type: Plain text -#: en/git-patch-id.txt:49 -#, no-wrap -msgid "This is the default if patchid.stable is set to true.\n" +#: en/git-ls-remote.txt:39 +msgid "Do not print remote URL to stderr." msgstr "" #. type: Labeled list -#: en/git-patch-id.txt:50 +#: en/git-ls-remote.txt:40 #, no-wrap -msgid "--unstable" +msgid "--upload-pack=<exec>" msgstr "" #. type: Plain text -#: en/git-patch-id.txt:56 +#: en/git-ls-remote.txt:45 msgid "" -"Use an \"unstable\" hash as the patch ID. With this option, the result " -"produced is compatible with the patch-id value produced by git 1.9 and " -"older. Users with pre-existing databases storing patch-ids produced by git " -"1.9 and older (who do not deal with reordered patches) may want to use this " -"option." -msgstr "" - -#. type: Plain text -#: en/git-patch-id.txt:58 -msgid "This is the default." +"Specify the full path of 'git-upload-pack' on the remote host. This allows " +"listing references from repositories accessed via SSH and where the SSH " +"daemon does not use the PATH configured by the user." msgstr "" #. type: Plain text -#: en/git-patch-id.txt:61 -msgid "The diff to create the ID of." +#: en/git-ls-remote.txt:51 +msgid "" +"Exit with status \"2\" when no matching refs are found in the remote " +"repository. Usually the command exits with status \"0\" to indicate it " +"successfully talked with the remote repository, whether it found any " +"matching refs." msgstr "" -#. type: Title = -#: en/git-prune-packed.txt:2 +#. type: Labeled list +#: en/git-ls-remote.txt:52 #, no-wrap -msgid "git-prune-packed(1)" +msgid "--get-url" msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:7 -msgid "git-prune-packed - Remove extra objects that are already in pack files" +#: en/git-ls-remote.txt:56 +msgid "" +"Expand the URL of the given remote repository taking into account any \"url." +"<base>.insteadOf\" config setting (See linkgit:git-config[1]) and exit " +"without talking to the remote." msgstr "" -#. type: Plain text -#: en/git-prune-packed.txt:13 +#. type: Labeled list +#: en/git-ls-remote.txt:57 #, no-wrap -msgid "'git prune-packed' [-n|--dry-run] [-q|--quiet]\n" +msgid "--symref" msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:19 +#: en/git-ls-remote.txt:62 msgid "" -"This program searches the `$GIT_OBJECT_DIRECTORY` for all objects that " -"currently exist in a pack file as well as the independent object " -"directories." -msgstr "" - -#. type: Plain text -#: en/git-prune-packed.txt:21 -msgid "All such extra objects are removed." +"In addition to the object pointed by it, show the underlying ref pointed by " +"it when showing a symbolic ref. Currently, upload-pack only shows the " +"symref HEAD, so it will be the only one shown by ls-remote." msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:24 en/git-repack.txt:24 +#: en/git-ls-remote.txt:72 msgid "" -"A pack is a collection of objects, individually compressed, with delta " -"compression applied, stored in a single file, with an associated index file." +"Sort based on the key given. Prefix `-` to sort in descending order of the " +"value. Supports \"version:refname\" or \"v:refname\" (tag names are treated " +"as versions). The \"version:refname\" sort order can also be affected by the " +"\"versionsort.suffix\" configuration variable. See linkgit:git-for-each-" +"ref[1] for more sort options, but be aware keys like `committerdate` that " +"require access to the objects themselves will not work for refs whose " +"objects have not yet been fetched from the remote, and will give a `missing " +"object` error." msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:27 en/git-repack.txt:27 +#: en/git-ls-remote.txt:85 msgid "" -"Packs are used to reduce the load on mirror systems, backup engines, disk " -"storage, etc." +"The \"remote\" repository to query. This parameter can be either a URL or " +"the name of a remote (see the GIT URLS and REMOTES sections of linkgit:git-" +"fetch[1])." msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:35 +#: en/git-ls-remote.txt:91 msgid "" -"Don't actually remove any objects, only show those that would have been " -"removed." +"When unspecified, all references, after filtering done with --heads and --" +"tags, are shown. When <refs>... are specified, only references matching the " +"given patterns are displayed." msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:39 -msgid "Squelch the progress indicator." +#: en/git-ls-remote.txt:110 +#, no-wrap +msgid "" +"\t$ git ls-remote --tags ./.\n" +"\td6602ec5194c87b0fc87103ca4d67251c76f233a\trefs/tags/v0.99\n" +"\tf25a265a342aed6041ab0cc484224d9ca54b6f41\trefs/tags/v0.99.1\n" +"\t7ceca275d047c90c0c7d5afb13ab97efdf51bd6e\trefs/tags/v0.99.3\n" +"\tc5db5456ae3b0873fc659c19fafdde22313cc441\trefs/tags/v0.99.2\n" +"\t0918385dbd9656cab0d1d81ba7453d49bbc16250\trefs/tags/junio-gpg-pub\n" +"\t$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc\n" +"\t5fe978a5381f1fbad26a80e682ddd2a401966740\trefs/heads/master\n" +"\tc781a84b5204fb294c9ccc79f8b3baceeb32c061\trefs/heads/pu\n" +"\t$ git remote add korg http://www.kernel.org/pub/scm/git/git.git\n" +"\t$ git ls-remote --tags korg v\\*\n" +"\td6602ec5194c87b0fc87103ca4d67251c76f233a\trefs/tags/v0.99\n" +"\tf25a265a342aed6041ab0cc484224d9ca54b6f41\trefs/tags/v0.99.1\n" +"\tc5db5456ae3b0873fc659c19fafdde22313cc441\trefs/tags/v0.99.2\n" +"\t7ceca275d047c90c0c7d5afb13ab97efdf51bd6e\trefs/tags/v0.99.3\n" msgstr "" #. type: Plain text -#: en/git-prune-packed.txt:44 -msgid "linkgit:git-pack-objects[1] linkgit:git-repack[1]" +#: en/git-ls-remote.txt:114 +msgid "linkgit:git-check-ref-format[1]." msgstr "" #. type: Title = -#: en/git-prune.txt:2 +#: en/git-ls-tree.txt:2 #, no-wrap -msgid "git-prune(1)" +msgid "git-ls-tree(1)" msgstr "" #. type: Plain text -#: en/git-prune.txt:7 -msgid "git-prune - Prune all unreachable objects from the object database" +#: en/git-ls-tree.txt:7 +msgid "git-ls-tree - List the contents of a tree object" msgstr "" #. type: Plain text -#: en/git-prune.txt:13 +#: en/git-ls-tree.txt:15 #, no-wrap -msgid "'git prune' [-n] [-v] [--expire <expire>] [--] [<head>...]\n" +msgid "" +"'git ls-tree' [-d] [-r] [-t] [-l] [-z]\n" +"\t [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]]\n" +"\t <tree-ish> [<path>...]\n" msgstr "" #. type: Plain text -#: en/git-prune.txt:19 +#: en/git-ls-tree.txt:20 msgid "" -"In most cases, users should run 'git gc', which calls 'git prune'. See the " -"section \"NOTES\", below." +"Lists the contents of a given tree object, like what \"/bin/ls -a\" does in " +"the current working directory. Note that:" msgstr "" #. type: Plain text -#: en/git-prune.txt:29 +#: en/git-ls-tree.txt:25 msgid "" -"This runs 'git fsck --unreachable' using all the refs available in `refs/`, " -"optionally with additional set of objects specified on the command line, and " -"prunes all unpacked objects unreachable from any of these head objects from " -"the object database. In addition, it prunes the unpacked objects that are " -"also found in packs by running 'git prune-packed'. It also removes entries " -"from .git/shallow that are not reachable by any ref." +"the behaviour is slightly different from that of \"/bin/ls\" in that the " +"'<path>' denotes just a list of patterns to match, e.g. so specifying " +"directory name (without `-r`) will behave differently, and order of the " +"arguments does not matter." msgstr "" #. type: Plain text -#: en/git-prune.txt:32 +#: en/git-ls-tree.txt:35 msgid "" -"Note that unreachable, packed objects will remain. If this is not desired, " -"see linkgit:git-repack[1]." +"the behaviour is similar to that of \"/bin/ls\" in that the '<path>' is " +"taken as relative to the current working directory. E.g. when you are in a " +"directory 'sub' that has a directory 'dir', you can run 'git ls-tree -r HEAD " +"dir' to list the contents of the tree (that is 'sub/dir' in `HEAD`). You " +"don't want to give a tree that is not at the root level (e.g. `git ls-tree -" +"r HEAD:sub dir`) in this case, as that would result in asking for 'sub/sub/" +"dir' in the `HEAD` commit. However, the current working directory can be " +"ignored by passing --full-tree option." msgstr "" #. type: Plain text -#: en/git-prune.txt:40 -msgid "Do not remove anything; just report what it would remove." +#: en/git-ls-tree.txt:40 +msgid "Id of a tree-ish." msgstr "" #. type: Plain text -#: en/git-prune.txt:44 -msgid "Report all removed objects." -msgstr "" - -#. type: Labeled list -#: en/git-prune.txt:48 en/git-worktree.txt:124 -#, no-wrap -msgid "--expire <time>" +#: en/git-ls-tree.txt:43 +msgid "Show only the named tree entry itself, not its children." msgstr "" #. type: Plain text -#: en/git-prune.txt:50 -msgid "Only expire loose objects older than <time>." -msgstr "" - -#. type: Labeled list -#: en/git-prune.txt:51 -#, no-wrap -msgid "<head>..." +#: en/git-ls-tree.txt:46 +msgid "Recurse into sub-trees." msgstr "" #. type: Plain text -#: en/git-prune.txt:55 +#: en/git-ls-tree.txt:50 msgid "" -"In addition to objects reachable from any of our references, keep objects " -"reachable from listed <head>s." +"Show tree entries even when going to recurse them. Has no effect if `-r` was " +"not passed. `-d` implies `-t`." msgstr "" #. type: Plain text -#: en/git-prune.txt:62 -msgid "" -"To prune objects not used by your repository or another that borrows from " -"your repository via its `.git/objects/info/alternates`:" +#: en/git-ls-tree.txt:54 +msgid "Show object size of blob (file) entries." msgstr "" -#. type: delimited block - -#: en/git-prune.txt:65 -#, no-wrap -msgid "$ git prune $(cd ../another && git rev-parse --all)\n" +#. type: Plain text +#: en/git-ls-tree.txt:58 +msgid "" +"\\0 line termination on output and do not quote filenames. See OUTPUT " +"FORMAT below for more information." msgstr "" #. type: Plain text -#: en/git-prune.txt:73 -msgid "" -"In most cases, users will not need to call 'git prune' directly, but should " -"instead call 'git gc', which handles pruning along with many other " -"housekeeping tasks." +#: en/git-ls-tree.txt:62 +msgid "List only filenames (instead of the \"long\" output), one per line." msgstr "" #. type: Plain text -#: en/git-prune.txt:76 +#: en/git-ls-tree.txt:71 msgid "" -"For a description of which objects are considered for pruning, see 'git " -"fsck''s --unreachable option." +"Instead of showing the path names relative to the current working directory, " +"show the full path names." msgstr "" #. type: Plain text -#: en/git-prune.txt:83 -msgid "linkgit:git-fsck[1], linkgit:git-gc[1], linkgit:git-reflog[1]" +#: en/git-ls-tree.txt:75 +msgid "" +"Do not limit the listing to the current working directory. Implies --full-" +"name." msgstr "" -#. type: Title = -#: en/git-pull.txt:2 +#. type: Labeled list +#: en/git-ls-tree.txt:76 #, no-wrap -msgid "git-pull(1)" +msgid "[<path>...]" msgstr "" #. type: Plain text -#: en/git-pull.txt:7 +#: en/git-ls-tree.txt:80 msgid "" -"git-pull - Fetch from and integrate with another repository or a local " -"branch" +"When paths are given, show them (note that this isn't really raw pathnames, " +"but rather a list of patterns to match). Otherwise implicitly uses the root " +"level of the tree as the sole path argument." +msgstr "" + +#. type: Title - +#: en/git-ls-tree.txt:83 +#, no-wrap +msgid "Output Format" msgstr "" #. type: Plain text -#: en/git-pull.txt:13 +#: en/git-ls-tree.txt:85 #, no-wrap -msgid "'git pull' [options] [<repository> [<refspec>...]]\n" +msgid " <mode> SP <type> SP <object> TAB <file>\n" msgstr "" #. type: Plain text -#: en/git-pull.txt:21 +#: en/git-ls-tree.txt:88 msgid "" -"Incorporates changes from a remote repository into the current branch. In " -"its default mode, `git pull` is shorthand for `git fetch` followed by `git " -"merge FETCH_HEAD`." +"This output format is compatible with what `--index-info --stdin` of 'git " +"update-index' expects." msgstr "" #. type: Plain text -#: en/git-pull.txt:26 -msgid "" -"More precisely, 'git pull' runs 'git fetch' with the given parameters and " -"calls 'git merge' to merge the retrieved branch heads into the current " -"branch. With `--rebase`, it runs 'git rebase' instead of 'git merge'." +#: en/git-ls-tree.txt:90 +msgid "When the `-l` option is used, format changes to" msgstr "" #. type: Plain text -#: en/git-pull.txt:33 -msgid "" -"<repository> should be the name of a remote repository as passed to " -"linkgit:git-fetch[1]. <refspec> can name an arbitrary remote ref (for " -"example, the name of a tag) or even a collection of refs with corresponding " -"remote-tracking branches (e.g., " -"refs/heads/{asterisk}:refs/remotes/origin/{asterisk}), but usually it is the " -"name of a branch in the remote repository." +#: en/git-ls-tree.txt:92 +#, no-wrap +msgid " <mode> SP <type> SP <object> SP <object size> TAB <file>\n" msgstr "" #. type: Plain text -#: en/git-pull.txt:37 +#: en/git-ls-tree.txt:96 msgid "" -"Default values for <repository> and <branch> are read from the \"remote\" " -"and \"merge\" configuration for the current branch as set by " -"linkgit:git-branch[1] `--track`." +"Object size identified by <object> is given in bytes, and right-justified " +"with minimum width of 7 characters. Object size is given only for blobs " +"(file) entries; for other entries `-` character is used in place of size." msgstr "" -#. type: delimited block - -#: en/git-pull.txt:47 +#. type: Title = +#: en/git-mailinfo.txt:2 #, no-wrap -msgid "" -"\t A---B---C master on origin\n" -"\t /\n" -" D---E---F---G master\n" -"\t^\n" -"\torigin/master in your repository\n" +msgid "git-mailinfo(1)" msgstr "" #. type: Plain text -#: en/git-pull.txt:54 +#: en/git-mailinfo.txt:7 msgid "" -"Then \"`git pull`\" will fetch and replay the changes from the remote " -"`master` branch since it diverged from the local `master` (i.e., `E`) until " -"its current commit (`C`) on top of `master` and record the result in a new " -"commit along with the names of the two parent commits and a log message from " -"the user describing the changes." +"git-mailinfo - Extracts patch and authorship from a single e-mail message" msgstr "" -#. type: delimited block - -#: en/git-pull.txt:59 +#. type: Plain text +#: en/git-mailinfo.txt:13 #, no-wrap -msgid "" -"\t A---B---C origin/master\n" -"\t / \\\n" -" D---E---F---G---H master\n" +msgid "'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] <msg> <patch>\n" msgstr "" #. type: Plain text -#: en/git-pull.txt:63 +#: en/git-mailinfo.txt:23 msgid "" -"See linkgit:git-merge[1] for details, including how conflicts are presented " -"and handled." +"Reads a single e-mail message from the standard input, and writes the commit " +"log message in <msg> file, and the patches in <patch> file. The author " +"name, e-mail and e-mail subject are written out to the standard output to be " +"used by 'git am' to create a commit. It is usually not necessary to use " +"this command directly. See linkgit:git-am[1] instead." msgstr "" #. type: Plain text -#: en/git-pull.txt:68 +#: en/git-mailinfo.txt:32 msgid "" -"In Git 1.7.0 or later, to cancel a conflicting merge, use `git reset " -"--merge`. *Warning*: In older versions of Git, running 'git pull' with " -"uncommitted changes is discouraged: while possible, it leaves you in a state " -"that may be hard to back out of in the case of a conflict." +"Usually the program removes email cruft from the Subject: header line to " +"extract the title line for the commit log message. This option prevents " +"this munging, and is most useful when used to read back 'git format-patch -" +"k' output." msgstr "" #. type: Plain text -#: en/git-pull.txt:73 -msgid "" -"If any of the remote changes overlap with local uncommitted changes, the " -"merge will be automatically cancelled and the work tree untouched. It is " -"generally best to get any local changes in working order before pulling or " -"stash them away with linkgit:git-stash[1]." +#: en/git-mailinfo.txt:34 +msgid "Specifically, the following are removed until none of them remain:" msgstr "" #. type: Plain text -#: en/git-pull.txt:82 -msgid "" -"This is passed to both underlying git-fetch to squelch reporting of during " -"transfer, and underlying git-merge to squelch output during merging." +#: en/git-mailinfo.txt:37 +msgid "Leading and trailing whitespace." msgstr "" #. type: Plain text -#: en/git-pull.txt:86 -msgid "Pass --verbose to git-fetch and git-merge." +#: en/git-mailinfo.txt:39 +msgid "Leading `Re:`, `re:`, and `:`." msgstr "" -#. type: Labeled list -#: en/git-pull.txt:87 -#, no-wrap -msgid "--[no-]recurse-submodules[=yes|on-demand|no]" +#. type: Plain text +#: en/git-mailinfo.txt:41 +msgid "Leading bracketed strings (between `[` and `]`, usually" msgstr "" #. type: Plain text -#: en/git-pull.txt:95 -msgid "" -"This option controls if new commits of all populated submodules should be " -"fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]). That " -"might be necessary to get the data needed for merging submodule commits, a " -"feature Git learned in 1.7.3. Notice that the result of a merge will not be " -"checked out in the submodule, \"git submodule update\" has to be called " -"afterwards to bring the work tree up to date with the merge result." +#: en/git-mailinfo.txt:42 +msgid "`[PATCH]`)." msgstr "" -#. type: Title ~ -#: en/git-pull.txt:97 -#, no-wrap -msgid "Options related to merging" +#. type: Plain text +#: en/git-mailinfo.txt:46 +msgid "" +"Finally, runs of whitespace are normalized to a single ASCII space character." msgstr "" -#. type: Labeled list -#: en/git-pull.txt:104 -#, no-wrap -msgid "--rebase[=false|true|preserve|interactive]" +#. type: Plain text +#: en/git-mailinfo.txt:51 +msgid "" +"When -k is not in effect, all leading strings bracketed with '[' and ']' " +"pairs are stripped. This option limits the stripping to only the pairs " +"whose bracketed string contains the word \"PATCH\"." msgstr "" #. type: Plain text -#: en/git-pull.txt:110 +#: en/git-mailinfo.txt:58 msgid "" -"When true, rebase the current branch on top of the upstream branch after " -"fetching. If there is a remote-tracking branch corresponding to the upstream " -"branch and the upstream branch was rebased since last fetched, the rebase " -"uses that information to avoid rebasing non-local changes." +"The commit log message, author name and author email are taken from the e-" +"mail, and after minimally decoding MIME transfer encoding, re-coded in the " +"charset specified by i18n.commitencoding (defaulting to UTF-8) by " +"transliterating them. This used to be optional but now it is the default." msgstr "" #. type: Plain text -#: en/git-pull.txt:113 +#: en/git-mailinfo.txt:61 msgid "" -"When set to preserve, rebase with the `--preserve-merges` option passed to " -"`git rebase` so that locally created merge commits will not be flattened." +"Note that the patch is always used as-is without charset conversion, even " +"with this flag." msgstr "" #. type: Plain text -#: en/git-pull.txt:115 -msgid "When false, merge the current branch into the upstream branch." +#: en/git-mailinfo.txt:65 +msgid "" +"Similar to -u. But when re-coding, the charset specified here is used " +"instead of the one specified by i18n.commitencoding or UTF-8." msgstr "" #. type: Plain text -#: en/git-pull.txt:117 -msgid "When `interactive`, enable the interactive mode of rebase." +#: en/git-mailinfo.txt:68 +msgid "Disable all charset re-coding of the metadata." msgstr "" #. type: Plain text -#: en/git-pull.txt:121 +#: en/git-mailinfo.txt:73 msgid "" -"See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in " -"linkgit:git-config[1] if you want to make `git pull` always use `--rebase` " -"instead of merging." +"Copy the Message-ID header at the end of the commit message. This is useful " +"in order to associate commits with mailing list discussions." msgstr "" #. type: Plain text -#: en/git-pull.txt:127 +#: en/git-mailinfo.txt:82 msgid "" -"This is a potentially _dangerous_ mode of operation. It rewrites history, " -"which does not bode well when you published that history already. Do *not* " -"use this option unless you have read linkgit:git-rebase[1] carefully." +"Remove everything in body before a scissors line. A line that mainly " +"consists of scissors (either \">8\" or \"8<\") and perforation (dash \"-\") " +"marks is called a scissors line, and is used to request the reader to cut " +"the message at that line. If such a line appears in the body of the message " +"before the patch, everything before it (including the scissors line itself) " +"is ignored when this option is used." msgstr "" -#. type: Labeled list -#: en/git-pull.txt:128 en/git-svn.txt:245 -#, no-wrap -msgid "--no-rebase" +#. type: Plain text +#: en/git-mailinfo.txt:87 +msgid "" +"This is useful if you want to begin your message in a discussion thread with " +"comments and suggestions on the message you are responding to, and to " +"conclude it with a patch submission, separating the discussion and the " +"beginning of the proposed commit log message with a scissors line." msgstr "" #. type: Plain text -#: en/git-pull.txt:130 -msgid "Override earlier --rebase." +#: en/git-mailinfo.txt:89 +msgid "" +"This can be enabled by default with the configuration option mailinfo." +"scissors." msgstr "" -#. type: Labeled list -#: en/git-pull.txt:131 en/git-rebase.txt:442 -#, no-wrap -msgid "--autostash" +#. type: Plain text +#: en/git-mailinfo.txt:92 +msgid "" +"Ignore scissors lines. Useful for overriding mailinfo.scissors settings." msgstr "" #. type: Labeled list -#: en/git-pull.txt:132 en/git-rebase.txt:443 +#: en/git-mailinfo.txt:93 #, no-wrap -msgid "--no-autostash" +msgid "<msg>" msgstr "" #. type: Plain text -#: en/git-pull.txt:137 +#: en/git-mailinfo.txt:96 msgid "" -"Before starting rebase, stash local modifications away (see " -"linkgit:git-stash[1]) if needed, and apply the stash when " -"done. `--no-autostash` is useful to override the `rebase.autoStash` " -"configuration variable (see linkgit:git-config[1])." +"The commit log message extracted from e-mail, usually except the title line " +"which comes from e-mail Subject." +msgstr "" + +#. type: Labeled list +#: en/git-mailinfo.txt:97 +#, no-wrap +msgid "<patch>" msgstr "" #. type: Plain text -#: en/git-pull.txt:139 -msgid "This option is only valid when \"--rebase\" is used." +#: en/git-mailinfo.txt:99 +msgid "The patch extracted from e-mail." msgstr "" -#. type: Title ~ -#: en/git-pull.txt:141 +#. type: Title = +#: en/git-mailsplit.txt:2 #, no-wrap -msgid "Options related to fetching" +msgid "git-mailsplit(1)" msgstr "" -#. type: Title - -#: en/git-pull.txt:152 -#, no-wrap -msgid "DEFAULT BEHAVIOUR" +#. type: Plain text +#: en/git-mailsplit.txt:7 +msgid "git-mailsplit - Simple UNIX mbox splitter program" msgstr "" #. type: Plain text -#: en/git-pull.txt:159 +#: en/git-mailsplit.txt:13 +#, no-wrap msgid "" -"Often people use `git pull` without giving any parameter. Traditionally, " -"this has been equivalent to saying `git pull origin`. However, when " -"configuration `branch.<name>.remote` is present while on branch `<name>`, " -"that value is used instead of `origin`." +"'git mailsplit' [-b] [-f<nn>] [-d<prec>] [--keep-cr] [--mboxrd]\n" +"\t\t-o<directory> [--] [(<mbox>|<Maildir>)...]\n" msgstr "" #. type: Plain text -#: en/git-pull.txt:164 +#: en/git-mailsplit.txt:18 msgid "" -"In order to determine what URL to use to fetch from, the value of the " -"configuration `remote.<origin>.url` is consulted and if there is not any " -"such variable, the value on `URL: ` line in `$GIT_DIR/remotes/<origin>` file " -"is used." +"Splits a mbox file or a Maildir into a list of files: \"0001\" \"0002\" .. " +"in the specified directory so you can process them further from there." msgstr "" #. type: Plain text -#: en/git-pull.txt:173 +#: en/git-mailsplit.txt:21 msgid "" -"In order to determine what remote branches to fetch (and optionally store in " -"the remote-tracking branches) when the command is run without any refspec " -"parameters on the command line, values of the configuration variable " -"`remote.<origin>.fetch` are consulted, and if there aren't any, " -"`$GIT_DIR/remotes/<origin>` file is consulted and its `Pull: ` lines are " -"used. In addition to the refspec formats described in the OPTIONS section, " -"you can have a globbing refspec that looks like this:" +"Maildir splitting relies upon filenames being sorted to output patches in " +"the correct order." msgstr "" -#. type: delimited block - -#: en/git-pull.txt:176 +#. type: Labeled list +#: en/git-mailsplit.txt:24 #, no-wrap -msgid "refs/heads/*:refs/remotes/origin/*\n" +msgid "<mbox>" msgstr "" #. type: Plain text -#: en/git-pull.txt:183 +#: en/git-mailsplit.txt:27 msgid "" -"A globbing refspec must have a non-empty RHS (i.e. must store what were " -"fetched in remote-tracking branches), and its LHS and RHS must end with " -"`/*`. The above specifies that all remote branches are tracked using " -"remote-tracking branches in `refs/remotes/origin/` hierarchy under the same " -"name." +"Mbox file to split. If not given, the mbox is read from the standard input." msgstr "" -#. type: Plain text -#: en/git-pull.txt:187 -msgid "" -"The rule to determine which remote branch to merge after fetching is a bit " -"involved, in order not to break backward compatibility." +#. type: Labeled list +#: en/git-mailsplit.txt:28 +#, no-wrap +msgid "<Maildir>" msgstr "" #. type: Plain text -#: en/git-pull.txt:190 +#: en/git-mailsplit.txt:31 msgid "" -"If explicit refspecs were given on the command line of `git pull`, they are " -"all merged." +"Root of the Maildir to split. This directory should contain the cur, tmp and " +"new subdirectories." msgstr "" -#. type: Plain text -#: en/git-pull.txt:195 -msgid "" -"When no refspec was given on the command line, then `git pull` uses the " -"refspec from the configuration or `$GIT_DIR/remotes/<origin>`. In such " -"cases, the following rules apply:" +#. type: Labeled list +#: en/git-mailsplit.txt:32 +#, no-wrap +msgid "-o<directory>" msgstr "" #. type: Plain text -#: en/git-pull.txt:199 -msgid "" -"If `branch.<name>.merge` configuration for the current branch `<name>` " -"exists, that is the name of the branch at the remote site that is merged." +#: en/git-mailsplit.txt:34 +msgid "Directory in which to place the individual messages." msgstr "" #. type: Plain text -#: en/git-pull.txt:201 -msgid "If the refspec is a globbing one, nothing is merged." +#: en/git-mailsplit.txt:38 +msgid "" +"If any file doesn't begin with a From line, assume it is a single mail " +"message instead of signaling error." msgstr "" -#. type: Plain text -#: en/git-pull.txt:203 -msgid "Otherwise the remote branch of the first refspec is merged." +#. type: Labeled list +#: en/git-mailsplit.txt:39 +#, no-wrap +msgid "-d<prec>" msgstr "" #. type: Plain text -#: en/git-pull.txt:211 +#: en/git-mailsplit.txt:43 msgid "" -"Update the remote-tracking branches for the repository you cloned from, then " -"merge one of them into your current branch:" +"Instead of the default 4 digits with leading zeros, different precision can " +"be specified for the generated filenames." msgstr "" -#. type: delimited block - -#: en/git-pull.txt:214 +#. type: Labeled list +#: en/git-mailsplit.txt:44 #, no-wrap -msgid "$ git pull, git pull origin\n" +msgid "-f<nn>" msgstr "" #. type: Plain text -#: en/git-pull.txt:219 +#: en/git-mailsplit.txt:47 msgid "" -"Normally the branch merged in is the HEAD of the remote repository, but the " -"choice is determined by the branch.<name>.remote and branch.<name>.merge " -"options; see linkgit:git-config[1] for details." -msgstr "" - -#. type: Plain text -#: en/git-pull.txt:221 -msgid "Merge into the current branch the remote branch `next`:" +"Skip the first <nn> numbers, for example if -f3 is specified, start the " +"numbering with 0004." msgstr "" -#. type: delimited block - -#: en/git-pull.txt:224 +#. type: Labeled list +#: en/git-mailsplit.txt:48 #, no-wrap -msgid "$ git pull origin next\n" +msgid "--keep-cr" msgstr "" #. type: Plain text -#: en/git-pull.txt:229 -msgid "" -"This leaves a copy of `next` temporarily in FETCH_HEAD, but does not update " -"any remote-tracking branches. Using remote-tracking branches, the same can " -"be done by invoking fetch and merge:" +#: en/git-mailsplit.txt:50 +msgid "Do not remove `\\r` from lines ending with `\\r\\n`." msgstr "" -#. type: delimited block - -#: en/git-pull.txt:233 +#. type: Labeled list +#: en/git-mailsplit.txt:51 #, no-wrap -msgid "" -"$ git fetch origin\n" -"$ git merge origin/next\n" +msgid "--mboxrd" msgstr "" #. type: Plain text -#: en/git-pull.txt:238 +#: en/git-mailsplit.txt:54 msgid "" -"If you tried a pull which resulted in complex conflicts and would want to " -"start over, you can recover with 'git reset'." -msgstr "" - -#. type: Plain text -#: en/git-pull.txt:254 -msgid "linkgit:git-fetch[1], linkgit:git-merge[1], linkgit:git-config[1]" +"Input is of the \"mboxrd\" format and \"^>+From \" line escaping is reversed." msgstr "" #. type: Title = -#: en/git-push.txt:2 +#: en/git-merge-base.txt:2 #, no-wrap -msgid "git-push(1)" +msgid "git-merge-base(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:7 -msgid "git-push - Update remote refs along with associated objects" +#: en/git-merge-base.txt:7 +msgid "git-merge-base - Find as good common ancestors as possible for a merge" msgstr "" #. type: Plain text -#: en/git-push.txt:18 +#: en/git-merge-base.txt:17 #, no-wrap msgid "" -"'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | " -"--dry-run] [--receive-pack=<git-receive-pack>]\n" -"\t [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | " -"--verbose]\n" -"\t [-u | --set-upstream] [--push-option=<string>]\n" -"\t [--[no-]signed|--sign=(true|false|if-asked)]\n" -"\t [--force-with-lease[=<refname>[:<expect>]]]\n" -"\t [--no-verify] [<repository> [<refspec>...]]\n" +"'git merge-base' [-a|--all] <commit> <commit>...\n" +"'git merge-base' [-a|--all] --octopus <commit>...\n" +"'git merge-base' --is-ancestor <commit> <commit>\n" +"'git merge-base' --independent <commit>...\n" +"'git merge-base' --fork-point <ref> [<commit>]\n" msgstr "" #. type: Plain text -#: en/git-push.txt:24 +#: en/git-merge-base.txt:27 msgid "" -"Updates remote refs using local refs, while sending objects necessary to " -"complete the given refs." +"'git merge-base' finds best common ancestor(s) between two commits to use in " +"a three-way merge. One common ancestor is 'better' than another common " +"ancestor if the latter is an ancestor of the former. A common ancestor that " +"does not have any better common ancestor is a 'best common ancestor', i.e. a " +"'merge base'. Note that there can be more than one merge base for a pair of " +"commits." msgstr "" -#. type: Plain text -#: en/git-push.txt:28 -msgid "" -"You can make interesting things happen to a repository every time you push " -"into it, by setting up 'hooks' there. See documentation for " -"linkgit:git-receive-pack[1]." +#. type: Title - +#: en/git-merge-base.txt:29 +#, no-wrap +msgid "OPERATION MODES" msgstr "" #. type: Plain text -#: en/git-push.txt:33 +#: en/git-merge-base.txt:33 msgid "" -"When the command line does not specify where to push with the `<repository>` " -"argument, `branch.*.remote` configuration for the current branch is " -"consulted to determine where to push. If the configuration is missing, it " -"defaults to 'origin'." +"As the most common special case, specifying only two commits on the command " +"line means computing the merge base between the given two commits." msgstr "" #. type: Plain text -#: en/git-push.txt:39 +#: en/git-merge-base.txt:38 msgid "" -"When the command line does not specify what to push with `<refspec>...` " -"arguments or `--all`, `--mirror`, `--tags` options, the command finds the " -"default `<refspec>` by consulting `remote.*.push` configuration, and if it " -"is not found, honors `push.default` configuration to decide what to push " -"(See linkgit:git-config[1] for the meaning of `push.default`)." +"More generally, among the two commits to compute the merge base from, one is " +"specified by the first commit argument on the command line; the other commit " +"is a (possibly hypothetical) commit that is a merge across all the remaining " +"commits on the command line." msgstr "" #. type: Plain text -#: en/git-push.txt:46 +#: en/git-merge-base.txt:42 msgid "" -"When neither the command-line nor the configuration specify what to push, " -"the default behavior is used, which corresponds to the `simple` value for " -"`push.default`: the current branch is pushed to the corresponding upstream " -"branch, but as a safety measure, the push is aborted if the upstream branch " -"does not have the same name as the local one." +"As a consequence, the 'merge base' is not necessarily contained in each of " +"the commit arguments if more than two commits are specified. This is " +"different from linkgit:git-show-branch[1] when used with the `--merge-base` " +"option." msgstr "" -#. type: Title - -#: en/git-push.txt:49 +#. type: Labeled list +#: en/git-merge-base.txt:43 #, no-wrap -msgid "OPTIONS[[OPTIONS]]" +msgid "--octopus" msgstr "" #. type: Plain text -#: en/git-push.txt:55 +#: en/git-merge-base.txt:47 msgid "" -"The \"remote\" repository that is destination of a push operation. This " -"parameter can be either a URL (see the section <<URLS,GIT URLS>> below) or " -"the name of a remote (see the section <<REMOTES,REMOTES>> below)." +"Compute the best common ancestors of all supplied commits, in preparation " +"for an n-way merge. This mimics the behavior of 'git show-branch --merge-" +"base'." msgstr "" #. type: Labeled list -#: en/git-push.txt:56 +#: en/git-merge-base.txt:48 en/git-show-branch.txt:90 #, no-wrap -msgid "<refspec>..." +msgid "--independent" msgstr "" #. type: Plain text -#: en/git-push.txt:61 +#: en/git-merge-base.txt:54 msgid "" -"Specify what destination ref to update with what source object. The format " -"of a <refspec> parameter is an optional plus `+`, followed by the source " -"object <src>, followed by a colon `:`, followed by the destination ref " -"<dst>." +"Instead of printing merge bases, print a minimal subset of the supplied " +"commits with the same ancestors. In other words, among the commits given, " +"list those which cannot be reached from any other. This mimics the behavior " +"of 'git show-branch --independent'." msgstr "" -#. type: Plain text -#: en/git-push.txt:65 -msgid "" -"The <src> is often the name of the branch you would want to push, but it can " -"be any arbitrary \"SHA-1 expression\", such as `master~4` or `HEAD` (see " -"linkgit:gitrevisions[7])." +#. type: Labeled list +#: en/git-merge-base.txt:55 +#, no-wrap +msgid "--is-ancestor" msgstr "" #. type: Plain text -#: en/git-push.txt:75 +#: en/git-merge-base.txt:59 msgid "" -"The <dst> tells which ref on the remote side is updated with this " -"push. Arbitrary expressions cannot be used here, an actual ref must be " -"named. If `git push [<repository>]` without any `<refspec>` argument is set " -"to update some ref at the destination with `<src>` with " -"`remote.<repository>.push` configuration variable, `:<dst>` part can be " -"omitted--such a push will update a ref that `<src>` normally updates without " -"any `<refspec>` on the command line. Otherwise, missing `:<dst>` means to " -"update the same ref as the `<src>`." +"Check if the first <commit> is an ancestor of the second <commit>, and exit " +"with status 0 if true, or with status 1 if not. Errors are signaled by a " +"non-zero status that is not 1." +msgstr "" + +#. type: Labeled list +#: en/git-merge-base.txt:60 en/git-rebase.txt:353 +#, no-wrap +msgid "--fork-point" msgstr "" #. type: Plain text -#: en/git-push.txt:83 +#: en/git-merge-base.txt:68 msgid "" -"The object referenced by <src> is used to update the <dst> reference on the " -"remote side. By default this is only allowed if <dst> is not a tag " -"(annotated or lightweight), and then only if it can fast-forward <dst>. By " -"having the optional leading `+`, you can tell Git to update the <dst> ref " -"even if it is not allowed by default (e.g., it is not a fast-forward.) This " -"does *not* attempt to merge <src> into <dst>. See EXAMPLES below for " -"details." +"Find the point at which a branch (or any history that leads to <commit>) " +"forked from another branch (or any reference) <ref>. This does not just " +"look for the common ancestor of the two commits, but also takes into account " +"the reflog of <ref> to see if the history leading to <commit> forked from an " +"earlier incarnation of the branch <ref> (see discussion on this mode below)." msgstr "" #. type: Plain text -#: en/git-push.txt:85 -msgid "`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`." +#: en/git-merge-base.txt:74 +msgid "Output all merge bases for the commits, instead of just one." msgstr "" #. type: Plain text -#: en/git-push.txt:88 +#: en/git-merge-base.txt:80 msgid "" -"Pushing an empty <src> allows you to delete the <dst> ref from the remote " -"repository." +"Given two commits 'A' and 'B', `git merge-base A B` will output a commit " +"which is reachable from both 'A' and 'B' through the parent relationship." msgstr "" #. type: Plain text -#: en/git-push.txt:93 -msgid "" -"The special refspec `:` (or `+:` to allow non-fast-forward updates) directs " -"Git to push \"matching\" branches: for every branch that exists on the local " -"side, the remote side is updated if a branch of the same name already exists " -"on the remote side." +#: en/git-merge-base.txt:82 +msgid "For example, with this topology:" msgstr "" #. type: Plain text -#: en/git-push.txt:97 +#: en/git-merge-base.txt:86 +#, no-wrap msgid "" -"Push all branches (i.e. refs under `refs/heads/`); cannot be used with other " -"<refspec>." +"\t o---o---o---B\n" +"\t /\n" +"\t---o---1---o---o---o---A\n" msgstr "" -#. type: Labeled list -#: en/git-push.txt:98 en/fetch-options.txt:68 -#, no-wrap -msgid "--prune" +#. type: Plain text +#: en/git-merge-base.txt:88 +msgid "the merge base between 'A' and 'B' is '1'." msgstr "" #. type: Plain text -#: en/git-push.txt:105 +#: en/git-merge-base.txt:92 msgid "" -"Remove remote branches that don't have a local counterpart. For example a " -"remote branch `tmp` will be removed if a local branch with the same name " -"doesn't exist any more. This also respects refspecs, e.g. `git push --prune " -"remote refs/heads/*:refs/tmp/*` would make sure that remote `refs/tmp/foo` " -"will be removed if `refs/heads/foo` doesn't exist." +"Given three commits 'A', 'B' and 'C', `git merge-base A B C` will compute " +"the merge base between 'A' and a hypothetical commit 'M', which is a merge " +"between 'B' and 'C'. For example, with this topology:" msgstr "" #. type: Plain text -#: en/git-push.txt:116 +#: en/git-merge-base.txt:98 +#, no-wrap msgid "" -"Instead of naming each ref to push, specifies that all refs under `refs/` " -"(which includes but is not limited to `refs/heads/`, `refs/remotes/`, and " -"`refs/tags/`) be mirrored to the remote repository. Newly created local " -"refs will be pushed to the remote end, locally updated refs will be force " -"updated on the remote end, and deleted refs will be removed from the remote " -"end. This is the default if the configuration option " -"`remote.<remote>.mirror` is set." +"\t o---o---o---o---C\n" +"\t /\n" +"\t / o---o---o---B\n" +"\t / /\n" +"\t---2---1---o---o---o---A\n" msgstr "" #. type: Plain text -#: en/git-push.txt:125 +#: en/git-merge-base.txt:101 msgid "" -"Produce machine-readable output. The output status line for each ref will " -"be tab-separated and sent to stdout instead of stderr. The full symbolic " -"names of the refs will be given." +"the result of `git merge-base A B C` is '1'. This is because the equivalent " +"topology with a merge commit 'M' between 'B' and 'C' is:" msgstr "" #. type: Plain text -#: en/git-push.txt:129 +#: en/git-merge-base.txt:108 +#, no-wrap msgid "" -"All listed refs are deleted from the remote repository. This is the same as " -"prefixing all refs with a colon." +"\t o---o---o---o---o\n" +"\t / \\\n" +"\t / o---o---o---o---M\n" +"\t / /\n" +"\t---2---1---o---o---o---A\n" msgstr "" #. type: Plain text -#: en/git-push.txt:134 +#: en/git-merge-base.txt:112 msgid "" -"All refs under `refs/tags` are pushed, in addition to refspecs explicitly " -"listed on the command line." +"and the result of `git merge-base A M` is '1'. Commit '2' is also a common " +"ancestor between 'A' and 'M', but '1' is a better common ancestor, because " +"'2' is an ancestor of '1'. Hence, '2' is not a merge base." msgstr "" -#. type: Labeled list -#: en/git-push.txt:135 -#, no-wrap -msgid "--follow-tags" +#. type: Plain text +#: en/git-merge-base.txt:115 +msgid "" +"The result of `git merge-base --octopus A B C` is '2', because '2' is the " +"best common ancestor of all commits." msgstr "" #. type: Plain text -#: en/git-push.txt:142 +#: en/git-merge-base.txt:118 msgid "" -"Push all the refs that would be pushed without this option, and also push " -"annotated tags in `refs/tags` that are missing from the remote but are " -"pointing at commit-ish that are reachable from the refs being pushed. This " -"can also be specified with configuration variable `push.followTags`. For " -"more information, see `push.followTags` in linkgit:git-config[1]." +"When the history involves criss-cross merges, there can be more than one " +"'best' common ancestor for two commits. For example, with this topology:" msgstr "" -#. type: Labeled list -#: en/git-push.txt:143 en/git-send-pack.txt:73 +#. type: Plain text +#: en/git-merge-base.txt:124 #, no-wrap -msgid "--[no-]signed" +msgid "" +"\t---1---o---A\n" +"\t \\ /\n" +"\t X\n" +"\t / \\\n" +"\t---2---o---o---B\n" msgstr "" -#. type: Labeled list -#: en/git-push.txt:144 en/git-send-pack.txt:74 -#, no-wrap -msgid "--sign=(true|false|if-asked)" +#. type: Plain text +#: en/git-merge-base.txt:128 +msgid "" +"both '1' and '2' are merge-bases of A and B. Neither one is better than the " +"other (both are 'best' merge bases). When the `--all` option is not given, " +"it is unspecified which best one is output." msgstr "" #. type: Plain text -#: en/git-push.txt:153 en/git-send-pack.txt:83 +#: en/git-merge-base.txt:133 msgid "" -"GPG-sign the push request to update refs on the receiving side, to allow it " -"to be checked by the hooks and/or be logged. If `false` or `--no-signed`, " -"no signing will be attempted. If `true` or `--signed`, the push will fail " -"if the server does not support signed pushes. If set to `if-asked`, sign if " -"and only if the server supports signed pushes. The push will also fail if " -"the actual call to `gpg --sign` fails. See linkgit:git-receive-pack[1] for " -"the details on the receiving end." +"A common idiom to check \"fast-forward-ness\" between two commits A and B is " +"(or at least used to be) to compute the merge base between A and B, and " +"check if it is the same as A, in which case, A is an ancestor of B. You " +"will see this idiom used often in older scripts." msgstr "" -#. type: Labeled list -#: en/git-push.txt:154 +#. type: Plain text +#: en/git-merge-base.txt:139 #, no-wrap -msgid "--[no-]atomic" +msgid "" +"\tA=$(git rev-parse --verify A)\n" +"\tif test \"$A\" = \"$(git merge-base A B)\"\n" +"\tthen\n" +"\t\t... A is an ancestor of B ...\n" +"\tfi\n" +msgstr "" + +#. type: Plain text +#: en/git-merge-base.txt:141 +msgid "In modern git, you can say this in a more direct way:" msgstr "" #. type: Plain text -#: en/git-push.txt:158 +#: en/git-merge-base.txt:146 +#, no-wrap msgid "" -"Use an atomic transaction on the remote side if available. Either all refs " -"are updated, or on error, no refs are updated. If the server does not " -"support atomic pushes the push will fail." +"\tif git merge-base --is-ancestor A B\n" +"\tthen\n" +"\t\t... A is an ancestor of B ...\n" +"\tfi\n" msgstr "" -#. type: Labeled list -#: en/git-push.txt:160 +#. type: Plain text +#: en/git-merge-base.txt:148 +msgid "instead." +msgstr "" + +#. type: Title - +#: en/git-merge-base.txt:150 #, no-wrap -msgid "--push-option" +msgid "Discussion on fork-point mode" msgstr "" #. type: Plain text -#: en/git-push.txt:164 +#: en/git-merge-base.txt:156 msgid "" -"Transmit the given string to the server, which passes them to the " -"pre-receive as well as the post-receive hook. The given string must not " -"contain a NUL or LF character." +"After working on the `topic` branch created with `git checkout -b topic " +"origin/master`, the history of remote-tracking branch `origin/master` may " +"have been rewound and rebuilt, leading to a history of this shape:" msgstr "" -#. type: Labeled list -#: en/git-push.txt:165 en/git-send-pack.txt:28 +#. type: Plain text +#: en/git-merge-base.txt:164 #, no-wrap -msgid "--receive-pack=<git-receive-pack>" +msgid "" +"\t o---B2\n" +"\t /\n" +"\t---o---o---B1--o---o---o---B (origin/master)\n" +"\t \\\n" +"\t B0\n" +"\t \\\n" +"\t D0---D1---D (topic)\n" msgstr "" -#. type: Labeled list -#: en/git-push.txt:166 en/git-send-pack.txt:34 -#, no-wrap -msgid "--exec=<git-receive-pack>" +#. type: Plain text +#: en/git-merge-base.txt:170 +msgid "" +"where `origin/master` used to point at commits B0, B1, B2 and now it points " +"at B, and your `topic` branch was started on top of it back when `origin/" +"master` was at B0, and you built three commits, D0, D1, and D, on top of " +"it. Imagine that you now want to rebase the work you did on the topic on " +"top of the updated origin/master." msgstr "" #. type: Plain text -#: en/git-push.txt:171 en/git-send-pack.txt:33 +#: en/git-merge-base.txt:176 msgid "" -"Path to the 'git-receive-pack' program on the remote end. Sometimes useful " -"when pushing to a remote repository over ssh, and you do not have the " -"program in a directory on the default $PATH." +"In such a case, `git merge-base origin/master topic` would return the parent " +"of B0 in the above picture, but B0^..D is *not* the range of commits you " +"would want to replay on top of B (it includes B0, which is not what you " +"wrote; it is a commit the other side discarded when it moved its tip from B0 " +"to B1)." msgstr "" -#. type: Labeled list -#: en/git-push.txt:172 -#, no-wrap -msgid "--[no-]force-with-lease" +#. type: Plain text +#: en/git-merge-base.txt:184 +msgid "" +"`git merge-base --fork-point origin/master topic` is designed to help in " +"such a case. It takes not only B but also B0, B1, and B2 (i.e. old tips of " +"the remote-tracking branches your repository's reflog knows about) into " +"account to see on which commit your topic branch was built and finds B0, " +"allowing you to replay only the commits on your topic, excluding the commits " +"the other side later discarded." msgstr "" -#. type: Labeled list -#: en/git-push.txt:173 -#, no-wrap -msgid "--force-with-lease=<refname>" +#. type: Plain text +#: en/git-merge-base.txt:186 +msgid "Hence" msgstr "" -#. type: Labeled list -#: en/git-push.txt:174 +#. type: Plain text +#: en/git-merge-base.txt:188 #, no-wrap -msgid "--force-with-lease=<refname>:<expect>" +msgid " $ fork_point=$(git merge-base --fork-point origin/master topic)\n" msgstr "" #. type: Plain text -#: en/git-push.txt:177 -msgid "" -"Usually, \"git push\" refuses to update a remote ref that is not an ancestor " -"of the local ref used to overwrite it." +#: en/git-merge-base.txt:190 +msgid "will find B0, and" msgstr "" #. type: Plain text -#: en/git-push.txt:180 -msgid "" -"This option overrides this restriction if the current value of the remote " -"ref is the expected value. \"git push\" fails otherwise." +#: en/git-merge-base.txt:192 +#, no-wrap +msgid " $ git rebase --onto origin/master $fork_point topic\n" msgstr "" #. type: Plain text -#: en/git-push.txt:187 +#: en/git-merge-base.txt:195 msgid "" -"Imagine that you have to rebase what you have already published. You will " -"have to bypass the \"must fast-forward\" rule in order to replace the " -"history you originally published with the rebased history. If somebody else " -"built on top of your original history while you are rebasing, the tip of the " -"branch at the remote may advance with her commit, and blindly pushing with " -"`--force` will lose her work." +"will replay D0, D1 and D on top of B to create a new history of this shape:" msgstr "" #. type: Plain text -#: en/git-push.txt:194 +#: en/git-merge-base.txt:203 +#, no-wrap msgid "" -"This option allows you to say that you expect the history you are updating " -"is what you rebased and want to replace. If the remote ref still points at " -"the commit you specified, you can be sure that no other people did anything " -"to the ref. It is like taking a \"lease\" on the ref without explicitly " -"locking it, and the remote ref is updated only if the \"lease\" is still " -"valid." +"\t\t\t o---B2\n" +"\t\t\t/\n" +"\t---o---o---B1--o---o---o---B (origin/master)\n" +"\t\t\\ \\\n" +"\t\t B0 D0'--D1'--D' (topic - updated)\n" +"\t\t \\\n" +"\t\t D0---D1---D (topic - old)\n" msgstr "" #. type: Plain text -#: en/git-push.txt:199 +#: en/git-merge-base.txt:210 msgid "" -"`--force-with-lease` alone, without specifying the details, will protect all " -"remote refs that are going to be updated by requiring their current value to " -"be the same as the remote-tracking branch we have for them." +"A caveat is that older reflog entries in your repository may be expired by " +"`git gc`. If B0 no longer appears in the reflog of the remote-tracking " +"branch `origin/master`, the `--fork-point` mode obviously cannot find it and " +"fails, avoiding to give a random and useless result (such as the parent of " +"B0, like the same command without the `--fork-point` option gives)." msgstr "" #. type: Plain text -#: en/git-push.txt:204 +#: en/git-merge-base.txt:221 msgid "" -"`--force-with-lease=<refname>`, without specifying the expected value, will " -"protect the named ref (alone), if it is going to be updated, by requiring " -"its current value to be the same as the remote-tracking branch we have for " -"it." +"Also, the remote-tracking branch you use the `--fork-point` mode with must " +"be the one your topic forked from its tip. If you forked from an older " +"commit than the tip, this mode would not find the fork point (imagine in the " +"above sample history B0 did not exist, origin/master started at B1, moved to " +"B2 and then B, and you forked your topic at origin/master^ when origin/" +"master was B1; the shape of the history would be the same as above, without " +"B0, and the parent of B1 is what `git merge-base origin/master topic` " +"correctly finds, but the `--fork-point` mode will not, because it is not one " +"of the commits that used to be at the tip of origin/master)." +msgstr "" + +#. type: Title - +#: en/git-merge-base.txt:224 +#, no-wrap +msgid "See also" msgstr "" #. type: Plain text -#: en/git-push.txt:212 +#: en/git-merge-base.txt:228 msgid "" -"`--force-with-lease=<refname>:<expect>` will protect the named ref (alone), " -"if it is going to be updated, by requiring its current value to be the same " -"as the specified value `<expect>` (which is allowed to be different from the " -"remote-tracking branch we have for the refname, or we do not even have to " -"have such a remote-tracking branch when this form is used). If `<expect>` " -"is the empty string, then the named ref must not already exist." +"linkgit:git-rev-list[1], linkgit:git-show-branch[1], linkgit:git-merge[1]" +msgstr "" + +#. type: Title = +#: en/git-merge-file.txt:2 +#, no-wrap +msgid "git-merge-file(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:217 -msgid "" -"Note that all forms other than `--force-with-lease=<refname>:<expect>` that " -"specifies the expected current value of the ref explicitly are still " -"experimental and their semantics may change as we gain experience with this " -"feature." +#: en/git-merge-file.txt:7 +msgid "git-merge-file - Run a three-way file merge" msgstr "" #. type: Plain text -#: en/git-push.txt:220 +#: en/git-merge-file.txt:15 +#, no-wrap msgid "" -"\"--no-force-with-lease\" will cancel all the previous --force-with-lease on " -"the command line." +"'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]\n" +"\t[--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]\n" +"\t[--[no-]diff3] <current-file> <base-file> <other-file>\n" msgstr "" #. type: Plain text -#: en/git-push.txt:228 +#: en/git-merge-file.txt:25 msgid "" -"Usually, the command refuses to update a remote ref that is not an ancestor " -"of the local ref used to overwrite it. Also, when `--force-with-lease` " -"option is used, the command refuses to update a remote ref whose current " -"value does not match what is expected." +"'git merge-file' incorporates all changes that lead from the `<base-file>` " +"to `<other-file>` into `<current-file>`. The result ordinarily goes into " +"`<current-file>`. 'git merge-file' is useful for combining separate changes " +"to an original. Suppose `<base-file>` is the original, and both `<current-" +"file>` and `<other-file>` are modifications of `<base-file>`, then 'git " +"merge-file' combines both changes." msgstr "" #. type: Plain text -#: en/git-push.txt:231 +#: en/git-merge-file.txt:30 msgid "" -"This flag disables these checks, and can cause the remote repository to lose " -"commits; use it with care." +"A conflict occurs if both `<current-file>` and `<other-file>` have changes " +"in a common segment of lines. If a conflict is found, 'git merge-file' " +"normally outputs a warning and brackets the conflict with lines containing " +"<<<<<<< and >>>>>>> markers. A typical conflict will look like this:" msgstr "" #. type: Plain text -#: en/git-push.txt:240 +#: en/git-merge-file.txt:36 +#, no-wrap msgid "" -"Note that `--force` applies to all the refs that are pushed, hence using it " -"with `push.default` set to `matching` or with multiple push destinations " -"configured with `remote.*.push` may overwrite refs other than the current " -"branch (including local refs that are strictly behind their remote " -"counterpart). To force a push to only one branch, use a `+` in front of the " -"refspec to push (e.g `git push origin +master` to force a push to the " -"`master` branch). See the `<refspec>...` section above for details." +"\t<<<<<<< A\n" +"\tlines in file A\n" +"\t=======\n" +"\tlines in file B\n" +"\t>>>>>>> B\n" msgstr "" -#. type: Labeled list -#: en/git-push.txt:241 -#, no-wrap -msgid "--repo=<repository>" +#. type: Plain text +#: en/git-merge-file.txt:42 +msgid "" +"If there are conflicts, the user should edit the result and delete one of " +"the alternatives. When `--ours`, `--theirs`, or `--union` option is in " +"effect, however, these conflicts are resolved favouring lines from `<current-" +"file>`, lines from `<other-file>`, or lines from both respectively. The " +"length of the conflict markers can be given with the `--marker-size` option." msgstr "" #. type: Plain text -#: en/git-push.txt:244 +#: en/git-merge-file.txt:46 msgid "" -"This option is equivalent to the <repository> argument. If both are " -"specified, the command-line argument takes precedence." +"The exit value of this program is negative on error, and the number of " +"conflicts otherwise (truncated to 127 if there are more than that many " +"conflicts). If the merge was clean, the exit value is 0." msgstr "" #. type: Plain text -#: en/git-push.txt:251 +#: en/git-merge-file.txt:50 msgid "" -"For every branch that is up to date or successfully pushed, add upstream " -"(tracking) reference, used by argument-less linkgit:git-pull[1] and other " -"commands. For more information, see `branch.<name>.merge` in " -"linkgit:git-config[1]." +"'git merge-file' is designed to be a minimal clone of RCS 'merge'; that is, " +"it implements all of RCS 'merge''s functionality which is needed by linkgit:" +"git[1]." msgstr "" #. type: Labeled list -#: en/git-push.txt:252 +#: en/git-merge-file.txt:55 #, no-wrap -msgid "--[no-]thin" +msgid "-L <label>" msgstr "" #. type: Plain text -#: en/git-push.txt:257 +#: en/git-merge-file.txt:62 msgid "" -"These options are passed to linkgit:git-send-pack[1]. A thin transfer " -"significantly reduces the amount of sent data when the sender and receiver " -"share many of the same objects in common. The default is \\--thin." +"This option may be given up to three times, and specifies labels to be used " +"in place of the corresponding file names in conflict reports. That is, `git " +"merge-file -L x -L y -L z a b c` generates output that looks like it came " +"from files x, y and z instead of from files a, b and c." msgstr "" #. type: Plain text -#: en/git-push.txt:263 +#: en/git-merge-file.txt:66 msgid "" -"Suppress all output, including the listing of updated refs, unless an error " -"occurs. Progress is not reported to the standard error stream." +"Send results to standard output instead of overwriting `<current-file>`." msgstr "" -#. type: Labeled list -#: en/git-push.txt:274 en/fetch-options.txt:125 -#, no-wrap -msgid "--no-recurse-submodules" +#. type: Plain text +#: en/git-merge-file.txt:69 +msgid "Quiet; do not warn about conflicts." msgstr "" #. type: Labeled list -#: en/git-push.txt:275 +#: en/git-merge-file.txt:70 #, no-wrap -msgid "--recurse-submodules=check|on-demand|only|no" +msgid "--diff3" msgstr "" #. type: Plain text -#: en/git-push.txt:289 -msgid "" -"May be used to make sure all submodule commits used by the revisions to be " -"pushed are available on a remote-tracking branch. If 'check' is used Git " -"will verify that all submodule commits that changed in the revisions to be " -"pushed are available on at least one remote of the submodule. If any commits " -"are missing the push will be aborted and exit with non-zero status. If " -"'on-demand' is used all submodules that changed in the revisions to be " -"pushed will be pushed. If on-demand was not able to push all necessary " -"revisions it will also be aborted and exit with non-zero status. If 'only' " -"is used all submodules will be recursively pushed while the superproject is " -"left unpushed. A value of 'no' or using `--no-recurse-submodules` can be " -"used to override the push.recurseSubmodules configuration variable when no " -"submodule recursion is required." +#: en/git-merge-file.txt:72 +msgid "Show conflicts in \"diff3\" style." msgstr "" #. type: Labeled list -#: en/git-push.txt:290 +#: en/git-merge-file.txt:75 #, no-wrap -msgid "--[no-]verify" +msgid "--union" msgstr "" #. type: Plain text -#: en/git-push.txt:294 +#: en/git-merge-file.txt:78 msgid "" -"Toggle the pre-push hook (see linkgit:githooks[5]). The default is " -"--verify, giving the hook a chance to prevent the push. With --no-verify, " -"the hook is bypassed completely." -msgstr "" - -#. type: Labeled list -#: en/git-push.txt:295 en/fetch-options.txt:176 -#, no-wrap -msgid "-4" +"Instead of leaving conflicts in the file, resolve conflicts favouring our " +"(or their or both) side of the lines." msgstr "" #. type: Labeled list -#: en/git-push.txt:296 en/fetch-options.txt:177 +#: en/git-merge-file.txt:83 #, no-wrap -msgid "--ipv4" +msgid "`git merge-file README.my README README.upstream`" msgstr "" #. type: Plain text -#: en/git-push.txt:298 en/fetch-options.txt:179 -msgid "Use IPv4 addresses only, ignoring IPv6 addresses." +#: en/git-merge-file.txt:87 +msgid "" +"combines the changes of README.my and README.upstream since README, tries to " +"merge them and writes the result into README.my." msgstr "" #. type: Labeled list -#: en/git-push.txt:299 en/fetch-options.txt:180 +#: en/git-merge-file.txt:88 #, no-wrap -msgid "-6" +msgid "`git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345`" msgstr "" -#. type: Labeled list -#: en/git-push.txt:300 en/fetch-options.txt:181 +#. type: Plain text +#: en/git-merge-file.txt:92 +msgid "" +"merges tmp/a123 and tmp/c345 with the base tmp/b234, but uses labels `a` and " +"`c` instead of `tmp/a123` and `tmp/c345`." +msgstr "" + +#. type: Title = +#: en/git-merge-index.txt:2 #, no-wrap -msgid "--ipv6" +msgid "git-merge-index(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:302 en/fetch-options.txt:182 -msgid "Use IPv6 addresses only, ignoring IPv4 addresses." +#: en/git-merge-index.txt:7 +msgid "git-merge-index - Run a merge for files needing merging" msgstr "" #. type: Plain text -#: en/git-push.txt:311 -msgid "" -"The output of \"git push\" depends on the transport method used; this " -"section describes the output when pushing over the Git protocol (either " -"locally or via ssh)." +#: en/git-merge-index.txt:13 +#, no-wrap +msgid "'git merge-index' [-o] [-q] <merge-program> (-a | [--] <file>*)\n" msgstr "" #. type: Plain text -#: en/git-push.txt:314 +#: en/git-merge-index.txt:20 msgid "" -"The status of the push is output in tabular form, with each line " -"representing the status of a single ref. Each line is of the form:" -msgstr "" - -#. type: delimited block - -#: en/git-push.txt:317 -#, no-wrap -msgid " <flag> <summary> <from> -> <to> (<reason>)\n" +"This looks up the <file>(s) in the index and, if there are any merge " +"entries, passes the SHA-1 hash for those files as arguments 1, 2, 3 (empty " +"argument if no file), and <file> as argument 4. File modes for the three " +"files are passed as arguments 5, 6 and 7." msgstr "" #. type: Plain text -#: en/git-push.txt:320 -msgid "If --porcelain is used, then each line of the output is of the form:" +#: en/git-merge-index.txt:28 +msgid "Run merge against all files in the index that need merging." msgstr "" -#. type: delimited block - -#: en/git-push.txt:323 -#, no-wrap -msgid " <flag> \\t <from>:<to> \\t <summary> (<reason>)\n" +#. type: Plain text +#: en/git-merge-index.txt:34 +msgid "" +"Instead of stopping at the first failed merge, do all of them in one shot - " +"continue with merging even when previous merges returned errors, and only " +"return the error code after all the merges." msgstr "" #. type: Plain text -#: en/git-push.txt:327 +#: en/git-merge-index.txt:39 msgid "" -"The status of up-to-date refs is shown only if --porcelain or --verbose " -"option is used." +"Do not complain about a failed merge program (a merge program failure " +"usually indicates conflicts during the merge). This is for porcelains which " +"might want to emit custom messages." msgstr "" #. type: Plain text -#: en/git-push.txt:331 -msgid "for a successfully pushed fast-forward;" +#: en/git-merge-index.txt:43 +msgid "" +"If 'git merge-index' is called with multiple <file>s (or -a) then it " +"processes them in turn only stopping if merge returns a non-zero exit code." msgstr "" #. type: Plain text -#: en/git-push.txt:333 -msgid "for a successfully deleted ref;" +#: en/git-merge-index.txt:46 +msgid "" +"Typically this is run with a script calling Git's imitation of the 'merge' " +"command from the RCS package." msgstr "" #. type: Plain text -#: en/git-push.txt:334 -msgid "for a successfully pushed new ref;" +#: en/git-merge-index.txt:49 +msgid "" +"A sample script called 'git merge-one-file' is included in the distribution." msgstr "" #. type: Plain text -#: en/git-push.txt:335 -msgid "for a ref that was rejected or failed to push; and" +#: en/git-merge-index.txt:54 +msgid "" +"ALERT ALERT ALERT! The Git \"merge object order\" is different from the RCS " +"'merge' program merge object order. In the above ordering, the original is " +"first. But the argument order to the 3-way merge program 'merge' is to have " +"the original in the middle. Don't ask me why." msgstr "" #. type: Plain text -#: en/git-push.txt:336 -msgid "for a ref that was up to date and did not need pushing." +#: en/git-merge-index.txt:56 en/git-svn.txt:171 +msgid "Examples:" msgstr "" #. type: Plain text -#: en/git-push.txt:342 +#: en/git-merge-index.txt:62 +#, no-wrap msgid "" -"For a successfully pushed ref, the summary shows the old and new values of " -"the ref in a form suitable for using as an argument to `git log` (this is " -"`<old>..<new>` in most cases, and `<old>...<new>` for forced " -"non-fast-forward updates)." +" torvalds@ppc970:~/merge-test> git merge-index cat MM\n" +" This is MM from the original tree.\t\t\t# original\n" +" This is modified MM in the branch A.\t\t\t# merge1\n" +" This is modified MM in the branch B.\t\t\t# merge2\n" +" This is modified MM in the branch B.\t\t\t# current contents\n" msgstr "" #. type: Plain text -#: en/git-push.txt:344 -msgid "For a failed update, more details are given:" -msgstr "" - -#. type: Labeled list -#: en/git-push.txt:346 +#: en/git-merge-index.txt:71 #, no-wrap -msgid "rejected" +msgid "" +" torvalds@ppc970:~/merge-test> git merge-index cat AA MM\n" +" cat: : No such file or directory\n" +" This is added AA in the branch A.\n" +" This is added AA in the branch B.\n" +" This is added AA in the branch B.\n" +" fatal: merge program failed\n" msgstr "" #. type: Plain text -#: en/git-push.txt:349 +#: en/git-merge-index.txt:76 msgid "" -"Git did not try to send the ref at all, typically because it is not a " -"fast-forward and you did not force the update." +"where the latter example shows how 'git merge-index' will stop trying to " +"merge once anything has returned an error (i.e., `cat` returned an error for " +"the AA file, because it didn't exist in the original, and thus 'git merge-" +"index' didn't even try to merge the MM thing)." msgstr "" -#. type: Labeled list -#: en/git-push.txt:350 +#. type: Title = +#: en/git-merge-one-file.txt:2 #, no-wrap -msgid "remote rejected" +msgid "git-merge-one-file(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:358 +#: en/git-merge-one-file.txt:7 msgid "" -"The remote end refused the update. Usually caused by a hook on the remote " -"side, or because the remote repository has one of the following safety " -"options in effect: `receive.denyCurrentBranch` (for pushes to the checked " -"out branch), `receive.denyNonFastForwards` (for forced non-fast-forward " -"updates), `receive.denyDeletes` or `receive.denyDeleteCurrent`. See " -"linkgit:git-config[1]." +"git-merge-one-file - The standard helper program to use with git-merge-index" msgstr "" -#. type: Labeled list -#: en/git-push.txt:359 +#. type: Plain text +#: en/git-merge-one-file.txt:13 #, no-wrap -msgid "remote failure" +msgid "'git merge-one-file'\n" msgstr "" #. type: Plain text -#: en/git-push.txt:363 +#: en/git-merge-one-file.txt:18 msgid "" -"The remote end did not report the successful update of the ref, perhaps " -"because of a temporary error on the remote side, a break in the network " -"connection, or other transient error." +"This is the standard helper program to use with 'git merge-index' to resolve " +"a merge after the trivial merge done with 'git read-tree -m'." msgstr "" -#. type: Plain text -#: en/git-push.txt:369 -msgid "" -"The name of the local ref being pushed, minus its `refs/<type>/` prefix. In " -"the case of deletion, the name of the local ref is omitted." +#. type: Title = +#: en/git-mergetool--lib.txt:2 +#, no-wrap +msgid "git-mergetool{litdd}lib(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:373 -msgid "The name of the remote ref being updated, minus its `refs/<type>/` prefix." +#: en/git-mergetool--lib.txt:7 +msgid "git-mergetool--lib - Common Git merge tool shell scriptlets" msgstr "" #. type: Plain text -#: en/git-push.txt:378 -msgid "" -"A human-readable explanation. In the case of successfully pushed refs, no " -"explanation is needed. For a failed ref, the reason for failure is " -"described." -msgstr "" - -#. type: Title - -#: en/git-push.txt:380 +#: en/git-mergetool--lib.txt:12 #, no-wrap -msgid "Note about fast-forwards" +msgid "'TOOL_MODE=(diff|merge) . \"$(git --exec-path)/git-mergetool{litdd}lib\"'\n" msgstr "" #. type: Plain text -#: en/git-push.txt:385 +#: en/git-mergetool--lib.txt:19 en/git-sh-i18n.txt:19 en/git-sh-setup.txt:19 msgid "" -"When an update changes a branch (or more in general, a ref) that used to " -"point at commit A to point at another commit B, it is called a fast-forward " -"update if and only if B is a descendant of A." +"This is not a command the end user would want to run. Ever. This " +"documentation is meant for people who are studying the Porcelain-ish scripts " +"and/or are writing new ones." msgstr "" #. type: Plain text -#: en/git-push.txt:389 +#: en/git-mergetool--lib.txt:23 msgid "" -"In a fast-forward update from A to B, the set of commits that the original " -"commit A built on top of is a subset of the commits the new commit B builds " -"on top of. Hence, it does not lose any history." +"The 'git-mergetool{litdd}lib' scriptlet is designed to be sourced (using `." +"`) by other shell scripts to set up functions for working with Git merge " +"tools." msgstr "" #. type: Plain text -#: en/git-push.txt:394 +#: en/git-mergetool--lib.txt:27 msgid "" -"In contrast, a non-fast-forward update will lose history. For example, " -"suppose you and somebody else started at the same commit X, and you built a " -"history leading to commit B while the other person built a history leading " -"to commit A. The history looks like this:" +"Before sourcing 'git-mergetool{litdd}lib', your script must set `TOOL_MODE` " +"to define the operation mode for the functions listed below. 'diff' and " +"'merge' are valid values." msgstr "" -#. type: delimited block - -#: en/git-push.txt:400 +#. type: Title - +#: en/git-mergetool--lib.txt:29 en/git-sh-i18n.txt:28 en/git-sh-setup.txt:34 #, no-wrap -msgid "" -" B\n" -" /\n" -" ---X---A\n" +msgid "FUNCTIONS" +msgstr "" + +#. type: Labeled list +#: en/git-mergetool--lib.txt:30 +#, no-wrap +msgid "get_merge_tool" msgstr "" #. type: Plain text -#: en/git-push.txt:406 -msgid "" -"Further suppose that the other person already pushed changes leading to A " -"back to the original repository from which you two obtained the original " -"commit X." +#: en/git-mergetool--lib.txt:32 +msgid "returns a merge tool." msgstr "" -#. type: Plain text -#: en/git-push.txt:409 -msgid "" -"The push done by the other person updated the branch that used to point at " -"commit X to point at commit A. It is a fast-forward." +#. type: Labeled list +#: en/git-mergetool--lib.txt:33 +#, no-wrap +msgid "get_merge_tool_cmd" msgstr "" #. type: Plain text -#: en/git-push.txt:414 -msgid "" -"But if you try to push, you will attempt to update the branch (that now " -"points at A) with commit B. This does _not_ fast-forward. If you did so, " -"the changes introduced by commit A will be lost, because everybody will now " -"start building on top of B." +#: en/git-mergetool--lib.txt:35 +msgid "returns the custom command for a merge tool." msgstr "" -#. type: Plain text -#: en/git-push.txt:417 -msgid "" -"The command by default does not allow an update that is not a fast-forward " -"to prevent such loss of history." +#. type: Labeled list +#: en/git-mergetool--lib.txt:36 +#, no-wrap +msgid "get_merge_tool_path" msgstr "" #. type: Plain text -#: en/git-push.txt:422 -msgid "" -"If you do not want to lose your work (history from X to B) or the work by " -"the other person (history from X to A), you would need to first fetch the " -"history from the repository, create a history that contains changes done by " -"both parties, and push the result back." +#: en/git-mergetool--lib.txt:38 +msgid "returns the custom path for a merge tool." +msgstr "" + +#. type: Labeled list +#: en/git-mergetool--lib.txt:39 +#, no-wrap +msgid "run_merge_tool" msgstr "" #. type: Plain text -#: en/git-push.txt:426 +#: en/git-mergetool--lib.txt:44 msgid "" -"You can perform \"git pull\", resolve potential conflicts, and \"git push\" " -"the result. A \"git pull\" will create a merge commit C between commits A " -"and B." +"launches a merge tool given the tool name and a true/false flag to indicate " +"whether a merge base is present. '$MERGED', '$LOCAL', '$REMOTE', and " +"'$BASE' must be defined for use by the merge tool." msgstr "" -#. type: delimited block - -#: en/git-push.txt:432 +#. type: Title = +#: en/git-mergetool.txt:2 #, no-wrap -msgid "" -" B---C\n" -" / /\n" -" ---X---A\n" +msgid "git-mergetool(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:437 +#: en/git-mergetool.txt:7 msgid "" -"Updating A with the resulting merge commit will fast-forward and your push " -"will be accepted." +"git-mergetool - Run merge conflict resolution tools to resolve merge " +"conflicts" msgstr "" #. type: Plain text -#: en/git-push.txt:442 -msgid "" -"Alternatively, you can rebase your change between X and B on top of A, with " -"\"git pull --rebase\", and push the result back. The rebase will create a " -"new commit D that builds the change between X and B on top of A." +#: en/git-mergetool.txt:12 +#, no-wrap +msgid "'git mergetool' [--tool=<tool>] [-y | --[no-]prompt] [<file>...]\n" msgstr "" -#. type: delimited block - -#: en/git-push.txt:448 -#, no-wrap +#. type: Plain text +#: en/git-mergetool.txt:18 msgid "" -" B D\n" -" / /\n" -" ---X---A\n" +"Use `git mergetool` to run one of several merge utilities to resolve merge " +"conflicts. It is typically run after 'git merge'." msgstr "" #. type: Plain text -#: en/git-push.txt:453 +#: en/git-mergetool.txt:24 msgid "" -"Again, updating A with this commit will fast-forward and your push will be " -"accepted." +"If one or more <file> parameters are given, the merge tool program will be " +"run to resolve differences on each file (skipping those without conflicts). " +"Specifying a directory will include all unresolved files in that path. If " +"no <file> names are specified, 'git mergetool' will run the merge tool " +"program on every file with merge conflicts." msgstr "" #. type: Plain text -#: en/git-push.txt:464 +#: en/git-mergetool.txt:33 msgid "" -"There is another common situation where you may encounter non-fast-forward " -"rejection when you try to push, and it is possible even when you are pushing " -"into a repository nobody else pushes into. After you push commit A yourself " -"(in the first picture in this section), replace it with \"git commit " -"--amend\" to produce commit B, and you try to push it out, because forgot " -"that you have pushed A out already. In such a case, and only if you are " -"certain that nobody in the meantime fetched your earlier commit A (and " -"started building on top of it), you can run \"git push --force\" to " -"overwrite it. In other words, \"git push --force\" is a method reserved for " -"a case where you do mean to lose history." +"Use the merge resolution program specified by <tool>. Valid values include " +"emerge, gvimdiff, kdiff3, meld, vimdiff, and tortoisemerge. Run `git " +"mergetool --tool-help` for the list of valid <tool> settings." msgstr "" -#. type: Labeled list -#: en/git-push.txt:469 -#, no-wrap -msgid "`git push`" +#. type: Plain text +#: en/git-mergetool.txt:38 +msgid "" +"If a merge resolution program is not specified, 'git mergetool' will use the " +"configuration variable `merge.tool`. If the configuration variable `merge." +"tool` is not set, 'git mergetool' will pick a suitable default." msgstr "" #. type: Plain text -#: en/git-push.txt:473 +#: en/git-mergetool.txt:44 msgid "" -"Works like `git push <remote>`, where <remote> is the current branch's " -"remote (or `origin`, if no remote is configured for the current branch)." +"You can explicitly provide a full path to the tool by setting the " +"configuration variable `mergetool.<tool>.path`. For example, you can " +"configure the absolute path to kdiff3 by setting `mergetool.kdiff3.path`. " +"Otherwise, 'git mergetool' assumes the tool is available in PATH." msgstr "" -#. type: Labeled list -#: en/git-push.txt:474 -#, no-wrap -msgid "`git push origin`" +#. type: Plain text +#: en/git-mergetool.txt:49 +msgid "" +"Instead of running one of the known merge tool programs, 'git mergetool' can " +"be customized to run an alternative program by specifying the command line " +"to invoke in a configuration variable `mergetool.<tool>.cmd`." msgstr "" #. type: Plain text -#: en/git-push.txt:479 +#: en/git-mergetool.txt:60 msgid "" -"Without additional configuration, pushes the current branch to the " -"configured upstream (`remote.origin.merge` configuration variable) if it has " -"the same name as the current branch, and errors out without pushing " -"otherwise." +"When 'git mergetool' is invoked with this tool (either through the `-t` or " +"`--tool` option or the `merge.tool` configuration variable) the configured " +"command line will be invoked with `$BASE` set to the name of a temporary " +"file containing the common base for the merge, if available; `$LOCAL` set to " +"the name of a temporary file containing the contents of the file on the " +"current branch; `$REMOTE` set to the name of a temporary file containing the " +"contents of the file to be merged, and `$MERGED` set to the name of the file " +"to which the merge tool should write the result of the merge resolution." msgstr "" #. type: Plain text -#: en/git-push.txt:483 +#: en/git-mergetool.txt:66 msgid "" -"The default behavior of this command when no <refspec> is given can be " -"configured by setting the `push` option of the remote, or the `push.default` " -"configuration variable." +"If the custom merge tool correctly indicates the success of a merge " +"resolution with its exit code, then the configuration variable `mergetool." +"<tool>.trustExitCode` can be set to `true`. Otherwise, 'git mergetool' will " +"prompt the user to indicate the success of the resolution after the custom " +"tool has exited." msgstr "" #. type: Plain text -#: en/git-push.txt:488 -msgid "" -"For example, to default to pushing only the current branch to `origin` use " -"`git config remote.origin.push HEAD`. Any valid <refspec> (like the ones in " -"the examples below) can be configured as the default for `git push origin`." +#: en/git-mergetool.txt:69 +msgid "Print a list of merge tools that may be used with `--tool`." msgstr "" -#. type: Labeled list -#: en/git-push.txt:489 -#, no-wrap -msgid "`git push origin :`" +#. type: Plain text +#: en/git-mergetool.txt:77 +msgid "" +"Don't prompt before each invocation of the merge resolution program. This " +"is the default if the merge resolution program is explicitly specified with " +"the `--tool` option or with the `merge.tool` configuration variable." msgstr "" #. type: Plain text -#: en/git-push.txt:493 +#: en/git-mergetool.txt:81 msgid "" -"Push \"matching\" branches to `origin`. See <refspec> in the " -"<<OPTIONS,OPTIONS>> section above for a description of \"matching\" " -"branches." +"Prompt before each invocation of the merge resolution program to give the " +"user a chance to skip the path." msgstr "" #. type: Labeled list -#: en/git-push.txt:494 +#: en/git-mergetool.txt:83 #, no-wrap -msgid "`git push origin master`" +msgid "--gui" msgstr "" #. type: Plain text -#: en/git-push.txt:500 +#: en/git-mergetool.txt:87 msgid "" -"Find a ref that matches `master` in the source repository (most likely, it " -"would find `refs/heads/master`), and update the same ref " -"(e.g. `refs/heads/master`) in `origin` repository with it. If `master` did " -"not exist remotely, it would be created." +"When 'git-mergetool' is invoked with the `-g` or `--gui` option the default " +"merge tool will be read from the configured `merge.guitool` variable instead " +"of `merge.tool`." msgstr "" #. type: Labeled list -#: en/git-push.txt:501 +#: en/git-mergetool.txt:88 #, no-wrap -msgid "`git push origin HEAD`" +msgid "--no-gui" msgstr "" #. type: Plain text -#: en/git-push.txt:504 -msgid "A handy way to push the current branch to the same name on the remote." -msgstr "" - -#. type: Labeled list -#: en/git-push.txt:505 -#, no-wrap -msgid "`git push mothership master:satellite/master dev:satellite/dev`" +#: en/git-mergetool.txt:92 +msgid "" +"This overrides a previous `-g` or `--gui` setting and reads the default " +"merge tool will be read from the configured `merge.tool` variable." msgstr "" #. type: Plain text -#: en/git-push.txt:510 +#: en/git-mergetool.txt:99 msgid "" -"Use the source ref that matches `master` (e.g. `refs/heads/master`) to " -"update the ref that matches `satellite/master` (most probably " -"`refs/remotes/satellite/master`) in the `mothership` repository; do the same " -"for `dev` and `satellite/dev`." +"Process files in the order specified in the <orderfile>, which has one shell " +"glob pattern per line. This overrides the `diff.orderFile` configuration " +"variable (see linkgit:git-config[1]). To cancel `diff.orderFile`, use `-O/" +"dev/null`." +msgstr "" + +#. type: Title - +#: en/git-mergetool.txt:101 +#, no-wrap +msgid "TEMPORARY FILES" msgstr "" #. type: Plain text -#: en/git-push.txt:517 +#: en/git-mergetool.txt:105 msgid "" -"This is to emulate `git fetch` run on the `mothership` using `git push` that " -"is run in the opposite direction in order to integrate the work done on " -"`satellite`, and is often necessary when you can only make connection in one " -"way (i.e. satellite can ssh into mothership but mothership cannot initiate " -"connection to satellite because the latter is behind a firewall or does not " -"run sshd)." +"`git mergetool` creates `*.orig` backup files while resolving merges. These " +"are safe to remove once a file has been merged and its `git mergetool` " +"session has completed." msgstr "" #. type: Plain text -#: en/git-push.txt:522 +#: en/git-mergetool.txt:109 msgid "" -"After running this `git push` on the `satellite` machine, you would ssh into " -"the `mothership` and run `git merge` there to complete the emulation of `git " -"pull` that were run on `mothership` to pull changes made on `satellite`." +"Setting the `mergetool.keepBackup` configuration variable to `false` causes " +"`git mergetool` to automatically remove the backup as files are successfully " +"merged." msgstr "" -#. type: Labeled list -#: en/git-push.txt:523 +#. type: Title = +#: en/git-merge-tree.txt:2 #, no-wrap -msgid "`git push origin HEAD:master`" +msgid "git-merge-tree(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:527 -msgid "" -"Push the current branch to the remote ref matching `master` in the `origin` " -"repository. This form is convenient to push the current branch without " -"thinking about its local name." +#: en/git-merge-tree.txt:7 +msgid "git-merge-tree - Show three-way merge without touching index" msgstr "" -#. type: Labeled list -#: en/git-push.txt:528 +#. type: Plain text +#: en/git-merge-tree.txt:13 #, no-wrap -msgid "`git push origin master:refs/heads/experimental`" +msgid "'git merge-tree' <base-tree> <branch1> <branch2>\n" msgstr "" #. type: Plain text -#: en/git-push.txt:534 +#: en/git-merge-tree.txt:21 msgid "" -"Create the branch `experimental` in the `origin` repository by copying the " -"current `master` branch. This form is only needed to create a new branch or " -"tag in the remote repository when the local name and the remote name are " -"different; otherwise, the ref name on its own will work." -msgstr "" - -#. type: Labeled list -#: en/git-push.txt:535 -#, no-wrap -msgid "`git push origin :experimental`" +"Reads three tree-ish, and output trivial merge results and conflicting " +"stages to the standard output. This is similar to what three-way 'git read-" +"tree -m' does, but instead of storing the results in the index, the command " +"outputs the entries to the standard output." msgstr "" #. type: Plain text -#: en/git-push.txt:538 +#: en/git-merge-tree.txt:26 msgid "" -"Find a ref that matches `experimental` in the `origin` repository " -"(e.g. `refs/heads/experimental`), and delete it." +"This is meant to be used by higher level scripts to compute merge results " +"outside of the index, and stuff the results back into the index. For this " +"reason, the output from the command omits entries that match the <branch1> " +"tree." msgstr "" -#. type: Labeled list -#: en/git-push.txt:539 +#. type: Title = +#: en/git-merge.txt:2 #, no-wrap -msgid "`git push origin +dev:master`" +msgid "git-merge(1)" msgstr "" #. type: Plain text -#: en/git-push.txt:544 -msgid "" -"Update the origin repository's master branch with the dev branch, allowing " -"non-fast-forward updates. *This can leave unreferenced commits dangling in " -"the origin repository.* Consider the following situation, where a " -"fast-forward is not possible:" +#: en/git-merge.txt:7 +msgid "git-merge - Join two or more development histories together" msgstr "" -#. type: delimited block - -#: en/git-push.txt:549 +#. type: Plain text +#: en/git-merge.txt:18 #, no-wrap msgid "" -"\t o---o---o---A---B origin/master\n" -"\t\t \\\n" -"\t\t X---Y---Z dev\n" +"'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]\n" +"\t[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]\n" +"\t[--[no-]allow-unrelated-histories]\n" +"\t[--[no-]rerere-autoupdate] [-m <msg>] [-F <file>] [<commit>...]\n" +"'git merge' --abort\n" +"'git merge' --continue\n" msgstr "" #. type: Plain text -#: en/git-push.txt:552 -msgid "The above command would change the origin repository to" -msgstr "" - -#. type: delimited block - -#: en/git-push.txt:557 -#, no-wrap +#: en/git-merge.txt:26 msgid "" -"\t\t A---B (unnamed branch)\n" -"\t\t /\n" -"\t o---o---o---X---Y---Z master\n" +"Incorporates changes from the named commits (since the time their histories " +"diverged from the current branch) into the current branch. This command is " +"used by 'git pull' to incorporate changes from another repository and can be " +"used by hand to merge changes from one branch into another." msgstr "" #. type: Plain text -#: en/git-push.txt:562 +#: en/git-merge.txt:29 en/git-pull.txt:40 msgid "" -"Commits A and B would no longer belong to a branch with a symbolic name, and " -"so would be unreachable. As such, these commits would be removed by a `git " -"gc` command on the origin repository." +"Assume the following history exists and the current branch is \"`master`\":" msgstr "" -#. type: Title = -#: en/git-quiltimport.txt:2 +#. type: delimited block - +#: en/git-merge.txt:34 #, no-wrap -msgid "git-quiltimport(1)" +msgid "" +"\t A---B---C topic\n" +"\t /\n" +" D---E---F---G master\n" msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:7 -msgid "git-quiltimport - Applies a quilt patchset onto the current branch" +#: en/git-merge.txt:41 +msgid "" +"Then \"`git merge topic`\" will replay the changes made on the `topic` " +"branch since it diverged from `master` (i.e., `E`) until its current commit " +"(`C`) on top of `master`, and record the result in a new commit along with " +"the names of the two parent commits and a log message from the user " +"describing the changes." msgstr "" -#. type: Plain text -#: en/git-quiltimport.txt:14 +#. type: delimited block - +#: en/git-merge.txt:46 #, no-wrap msgid "" -"'git quiltimport' [--dry-run | -n] [--author <author>] [--patches <dir>]\n" -"\t\t[--series <file>]\n" +"\t A---B---C topic\n" +"\t / \\\n" +" D---E---F---G---H master\n" msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:21 +#: en/git-merge.txt:55 msgid "" -"Applies a quilt patchset onto the current Git branch, preserving the patch " -"boundaries, patch order, and patch descriptions present in the quilt " -"patchset." +"The second syntax (\"`git merge --abort`\") can only be run after the merge " +"has resulted in conflicts. 'git merge --abort' will abort the merge process " +"and try to reconstruct the pre-merge state. However, if there were " +"uncommitted changes when the merge started (and especially if those changes " +"were further modified after the merge was started), 'git merge --abort' will " +"in some cases be unable to reconstruct the original (pre-merge) changes. " +"Therefore:" msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:27 +#: en/git-merge.txt:59 +#, no-wrap msgid "" -"For each patch the code attempts to extract the author from the patch " -"description. If that fails it falls back to the author specified with " -"--author. If the --author flag was not given the patch description is " -"displayed and the user is asked to interactively enter the author of the " -"patch." +"*Warning*: Running 'git merge' with non-trivial uncommitted changes is\n" +"discouraged: while possible, it may leave you in a state that is hard to\n" +"back out of in the case of a conflict.\n" msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:30 +#: en/git-merge.txt:62 msgid "" -"If a subject is not found in the patch description the patch name is " -"preserved as the 1 line subject in the Git description." +"The third syntax (\"`git merge --continue`\") can only be run after the " +"merge has resulted in conflicts." msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:40 +#: en/git-merge.txt:70 msgid "" -"Walk through the patches in the series and warn if we cannot find all of the " -"necessary information to commit a patch. At the time of this writing only " -"missing author information is warned about." -msgstr "" - -#. type: Labeled list -#: en/git-quiltimport.txt:41 -#, no-wrap -msgid "--author Author Name <Author Email>" +"Set the commit message to be used for the merge commit (in case one is " +"created)." msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:44 +#: en/git-merge.txt:73 en/git-merge.txt:85 msgid "" -"The author name and email address to use when no author information can be " -"found in the patch description." -msgstr "" - -#. type: Labeled list -#: en/git-quiltimport.txt:45 -#, no-wrap -msgid "--patches <dir>" +"If `--log` is specified, a shortlog of the commits being merged will be " +"appended to the specified message." msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:47 -msgid "The directory to find the quilt patches." +#: en/git-merge.txt:77 +msgid "" +"The 'git fmt-merge-msg' command can be used to give a good default for " +"automated 'git merge' invocations. The automated message can include the " +"branch description." msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:51 +#: en/git-merge.txt:82 msgid "" -"The default for the patch directory is patches or the value of the " -"`$QUILT_PATCHES` environment variable." +"Read the commit message to be used for the merge commit (in case one is " +"created)." msgstr "" #. type: Labeled list -#: en/git-quiltimport.txt:52 +#: en/git-merge.txt:86 #, no-wrap -msgid "--series <file>" +msgid "--[no-]rerere-autoupdate" msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:54 -msgid "The quilt series file." +#: en/git-merge.txt:89 +msgid "" +"Allow the rerere mechanism to update the index with the result of auto-" +"conflict resolution if possible." msgstr "" #. type: Plain text -#: en/git-quiltimport.txt:58 +#: en/git-merge.txt:93 msgid "" -"The default for the series file is <patches>/series or the value of the " -"`$QUILT_SERIES` environment variable." -msgstr "" - -#. type: Title = -#: en/git-read-tree.txt:2 -#, no-wrap -msgid "git-read-tree(1)" +"Abort the current conflict resolution process, and try to reconstruct the " +"pre-merge state." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:7 -msgid "git-read-tree - Reads tree information into the index" +#: en/git-merge.txt:98 +msgid "" +"If there were uncommitted worktree changes present when the merge started, " +"'git merge --abort' will in some cases be unable to reconstruct these " +"changes. It is therefore recommended to always commit or stash your changes " +"before running 'git merge'." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:16 -#, no-wrap +#: en/git-merge.txt:101 msgid "" -"'git read-tree' [[-m [--trivial] [--aggressive] | --reset | " -"--prefix=<prefix>]\n" -"\t\t[-u [--exclude-per-directory=<gitignore>] | -i]]\n" -"\t\t[--index-output=<file>] [--no-sparse-checkout]\n" -"\t\t(--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])\n" +"'git merge --abort' is equivalent to 'git reset --merge' when `MERGE_HEAD` " +"is present." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:23 +#: en/git-merge.txt:106 msgid "" -"Reads the tree information given by <tree-ish> into the index, but does not " -"actually *update* any of the files it \"caches\". (see: " -"linkgit:git-checkout-index[1])" +"After a 'git merge' stops due to conflicts you can conclude the merge by " +"running 'git merge --continue' (see \"HOW TO RESOLVE CONFLICTS\" section " +"below)." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:28 +#: en/git-merge.txt:111 msgid "" -"Optionally, it can merge a tree into the index, perform a fast-forward " -"(i.e. 2-way) merge, or a 3-way merge, with the `-m` flag. When used with " -"`-m`, the `-u` flag causes it to also update the files in the work tree with " -"the result of the merge." +"Commits, usually other branch heads, to merge into our branch. Specifying " +"more than one commit will create a merge with more than two parents " +"(affectionately called an Octopus merge)." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:31 +#: en/git-merge.txt:115 msgid "" -"Trivial merges are done by 'git read-tree' itself. Only conflicting paths " -"will be in unmerged state when 'git read-tree' returns." +"If no commit is given from the command line, merge the remote-tracking " +"branches that the current branch is configured to use as its upstream. See " +"also the configuration section of this manual page." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:39 +#: en/git-merge.txt:119 msgid "" -"Perform a merge, not just a read. The command will refuse to run if your " -"index file has unmerged entries, indicating that you have not finished " -"previous merge you started." +"When `FETCH_HEAD` (and no other commit) is specified, the branches recorded " +"in the `.git/FETCH_HEAD` file by the previous invocation of `git fetch` for " +"merging are merged to the current branch." msgstr "" -#. type: Labeled list -#: en/git-read-tree.txt:40 +#. type: Title - +#: en/git-merge.txt:122 #, no-wrap -msgid "--reset" +msgid "PRE-MERGE CHECKS" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:43 -msgid "Same as -m, except that unmerged entries are discarded instead of failing." +#: en/git-merge.txt:130 +msgid "" +"Before applying outside changes, you should get your own work in good shape " +"and committed locally, so it will not be clobbered if there are conflicts. " +"See also linkgit:git-stash[1]. 'git pull' and 'git merge' will stop without " +"doing anything when local uncommitted changes overlap with files that 'git " +"pull'/'git merge' may need to update." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:47 +#: en/git-merge.txt:136 msgid "" -"After a successful merge, update the files in the work tree with the result " -"of the merge." +"To avoid recording unrelated changes in the merge commit, 'git pull' and " +"'git merge' will also abort if there are any changes registered in the index " +"relative to the `HEAD` commit. (Special narrow exceptions to this rule may " +"exist depending on which merge strategy is in use, but generally, the index " +"must match HEAD.)" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:56 +#: en/git-merge.txt:139 msgid "" -"Usually a merge requires the index file as well as the files in the working " -"tree to be up to date with the current head commit, in order not to lose " -"local changes. This flag disables the check with the working tree and is " -"meant to be used when creating a merge of trees that are not directly " -"related to the current working tree status into a temporary index file." +"If all named commits are already ancestors of `HEAD`, 'git merge' will exit " +"early with the message \"Already up to date.\"" +msgstr "" + +#. type: Title - +#: en/git-merge.txt:141 +#, no-wrap +msgid "FAST-FORWARD MERGE" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:61 +#: en/git-merge.txt:151 msgid "" -"Check if the command would error out, without updating the index or the " -"files in the working tree for real." +"Often the current branch head is an ancestor of the named commit. This is " +"the most common case especially when invoked from 'git pull': you are " +"tracking an upstream repository, you have committed no local changes, and " +"now you want to update to a newer upstream revision. In this case, a new " +"commit is not needed to store the combined history; instead, the `HEAD` " +"(along with the index) is updated to point at the named commit, without " +"creating an extra merge commit." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:64 -msgid "Show the progress of checking files out." +#: en/git-merge.txt:153 +msgid "This behavior can be suppressed with the `--no-ff` option." msgstr "" -#. type: Labeled list -#: en/git-read-tree.txt:65 +#. type: Title - +#: en/git-merge.txt:155 #, no-wrap -msgid "--trivial" +msgid "TRUE MERGE" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:70 +#: en/git-merge.txt:160 msgid "" -"Restrict three-way merge by 'git read-tree' to happen only if there is no " -"file-level merging required, instead of resolving merge for trivial cases " -"and leaving conflicting files unresolved in the index." +"Except in a fast-forward merge (see above), the branches to be merged must " +"be tied together by a merge commit that has both of them as its parents." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:77 +#: en/git-merge.txt:165 msgid "" -"Usually a three-way merge by 'git read-tree' resolves the merge for really " -"trivial cases and leaves other cases unresolved in the index, so that " -"porcelains can implement different merge policies. This flag makes the " -"command resolve a few more cases internally:" +"A merged version reconciling the changes from all branches to be merged is " +"committed, and your `HEAD`, index, and working tree are updated to it. It " +"is possible to have modifications in the working tree as long as they do not " +"overlap; the update will preserve them." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:80 +#: en/git-merge.txt:168 msgid "" -"when one side removes a path and the other side leaves the path unmodified. " -"The resolution is to remove that path." +"When it is not obvious how to reconcile the changes, the following happens:" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:81 -msgid "when both sides remove a path. The resolution is to remove that path." +#: en/git-merge.txt:170 +msgid "The `HEAD` pointer stays the same." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:83 -msgid "when both sides add a path identically. The resolution is to add that path." +#: en/git-merge.txt:171 +msgid "The `MERGE_HEAD` ref is set to point to the other branch head." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:90 +#: en/git-merge.txt:173 msgid "" -"Keep the current index contents, and read the contents of the named tree-ish " -"under the directory at `<prefix>`. The command will refuse to overwrite " -"entries that already existed in the original index file. Note that the " -"`<prefix>/` value must end with a slash." -msgstr "" - -#. type: Labeled list -#: en/git-read-tree.txt:91 -#, no-wrap -msgid "--exclude-per-directory=<gitignore>" +"Paths that merged cleanly are updated both in the index file and in your " +"working tree." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:105 +#: en/git-merge.txt:179 msgid "" -"When running the command with `-u` and `-m` options, the merge result may " -"need to overwrite paths that are not tracked in the current branch. The " -"command usually refuses to proceed with the merge to avoid losing such a " -"path. However this safety valve sometimes gets in the way. For example, it " -"often happens that the other branch added a file that used to be a generated " -"file in your branch, and the safety valve triggers when you try to switch to " -"that branch after you ran `make` but before running `make clean` to remove " -"the generated file. This option tells the command to read per-directory " -"exclude file (usually '.gitignore') and allows such an untracked but " -"explicitly ignored file to be overwritten." +"For conflicting paths, the index file records up to three versions: stage 1 " +"stores the version from the common ancestor, stage 2 from `HEAD`, and stage " +"3 from `MERGE_HEAD` (you can inspect the stages with `git ls-files -u`). " +"The working tree files contain the result of the \"merge\" program; i.e. 3-" +"way merge results with familiar conflict markers `<<<` `===` `>>>`." msgstr "" -#. type: Labeled list -#: en/git-read-tree.txt:106 -#, no-wrap -msgid "--index-output=<file>" +#. type: Plain text +#: en/git-merge.txt:183 +msgid "" +"No other changes are made. In particular, the local modifications you had " +"before you started merge will stay the same and the index entries for them " +"stay as they were, i.e. matching `HEAD`." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:117 +#: en/git-merge.txt:186 msgid "" -"Instead of writing the results out to `$GIT_INDEX_FILE`, write the resulting " -"index in the named file. While the command is operating, the original index " -"file is locked with the same mechanism as usual. The file must allow to be " -"rename(2)ed into from a temporary file that is created next to the usual " -"index file; typically this means it needs to be on the same filesystem as " -"the index file itself, and you need write permission to the directories the " -"index file and index output file are located in." +"If you tried a merge which resulted in complex conflicts and want to start " +"over, you can recover with `git merge --abort`." msgstr "" -#. type: Labeled list -#: en/git-read-tree.txt:118 +#. type: Title - +#: en/git-merge.txt:188 #, no-wrap -msgid "--no-sparse-checkout" +msgid "MERGING TAG" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:121 -msgid "Disable sparse checkout support even if `core.sparseCheckout` is true." -msgstr "" - -#. type: Labeled list -#: en/git-read-tree.txt:122 -#, no-wrap -msgid "--empty" +#: en/git-merge.txt:195 +msgid "" +"When merging an annotated (and possibly signed) tag, Git always creates a " +"merge commit even if a fast-forward merge is possible, and the commit " +"message template is prepared with the tag message. Additionally, if the tag " +"is signed, the signature check is reported as a comment in the message " +"template. See also linkgit:git-tag[1]." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:125 -msgid "Instead of reading tree object(s) into the index, just empty it." +#: en/git-merge.txt:199 +msgid "" +"When you want to just integrate with the work leading to the commit that " +"happens to be tagged, e.g. synchronizing with an upstream release point, you " +"may not want to make an unnecessary merge commit." msgstr "" -#. type: Labeled list -#: en/git-read-tree.txt:126 -#, no-wrap -msgid "<tree-ish#>" +#. type: Plain text +#: en/git-merge.txt:203 +msgid "" +"In such a case, you can \"unwrap\" the tag yourself before feeding it to " +"`git merge`, or pass `--ff-only` when you do not have any work on your own. " +"e.g." msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:128 -msgid "The id of the tree object(s) to be read/merged." +#. type: delimited block - +#: en/git-merge.txt:208 +#, no-wrap +msgid "" +"git fetch origin\n" +"git merge v1.2.3^0\n" +"git merge --ff-only v1.2.3\n" msgstr "" #. type: Title - -#: en/git-read-tree.txt:131 +#: en/git-merge.txt:212 #, no-wrap -msgid "Merging" +msgid "HOW CONFLICTS ARE PRESENTED" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:136 +#: en/git-merge.txt:221 msgid "" -"If `-m` is specified, 'git read-tree' can perform 3 kinds of merge, a single " -"tree merge if only 1 tree is given, a fast-forward merge with 2 trees, or a " -"3-way merge if 3 trees are provided." +"During a merge, the working tree files are updated to reflect the result of " +"the merge. Among the changes made to the common ancestor's version, non-" +"overlapping ones (that is, you changed an area of the file while the other " +"side left that area intact, or vice versa) are incorporated in the final " +"result verbatim. When both sides made changes to the same area, however, " +"Git cannot randomly pick one side over the other, and asks you to resolve it " +"by leaving what both sides did to that area." msgstr "" -#. type: Title ~ -#: en/git-read-tree.txt:139 +#. type: Plain text +#: en/git-merge.txt:224 +msgid "" +"By default, Git uses the same style as the one used by the \"merge\" program " +"from the RCS suite to present such a conflicted hunk, like this:" +msgstr "" + +#. type: delimited block - +#: en/git-merge.txt:235 #, no-wrap -msgid "Single Tree Merge" +msgid "" +"Here are lines that are either unchanged from the common\n" +"ancestor, or cleanly resolved because only one side changed.\n" +"<<<<<<< yours:sample.txt\n" +"Conflict resolution is hard;\n" +"let's go shopping.\n" +"=======\n" +"Git makes conflict resolution easy.\n" +">>>>>>> theirs:sample.txt\n" +"And here is another line that is cleanly resolved or unmodified.\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:145 +#: en/git-merge.txt:240 msgid "" -"If only 1 tree is specified, 'git read-tree' operates as if the user did not " -"specify `-m`, except that if the original index has an entry for a given " -"pathname, and the contents of the path match with the tree being read, the " -"stat info from the index is used. (In other words, the index's stat()s take " -"precedence over the merged tree's)." +"The area where a pair of conflicting changes happened is marked with markers " +"`<<<<<<<`, `=======`, and `>>>>>>>`. The part before the `=======` is " +"typically your side, and the part afterwards is typically their side." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:149 +#: en/git-merge.txt:246 msgid "" -"That means that if you do a `git read-tree -m <newtree>` followed by a `git " -"checkout-index -f -u -a`, the 'git checkout-index' only checks out the stuff " -"that really changed." +"The default format does not show what the original said in the conflicting " +"area. You cannot tell how many lines are deleted and replaced with Barbie's " +"remark on your side. The only thing you can tell is that your side wants to " +"say it is hard and you'd prefer to go shopping, while the other side wants " +"to claim it is easy." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:152 +#: en/git-merge.txt:250 msgid "" -"This is used to avoid unnecessary false hits when 'git diff-files' is run " -"after 'git read-tree'." +"An alternative style can be used by setting the \"merge.conflictStyle\" " +"configuration variable to \"diff3\". In \"diff3\" style, the above conflict " +"may look like this:" msgstr "" -#. type: Title ~ -#: en/git-read-tree.txt:155 +#. type: delimited block - +#: en/git-merge.txt:263 #, no-wrap -msgid "Two Tree Merge" +msgid "" +"Here are lines that are either unchanged from the common\n" +"ancestor, or cleanly resolved because only one side changed.\n" +"<<<<<<< yours:sample.txt\n" +"Conflict resolution is hard;\n" +"let's go shopping.\n" +"|||||||\n" +"Conflict resolution is hard.\n" +"=======\n" +"Git makes conflict resolution easy.\n" +">>>>>>> theirs:sample.txt\n" +"And here is another line that is cleanly resolved or unmodified.\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:161 +#: en/git-merge.txt:271 msgid "" -"Typically, this is invoked as `git read-tree -m $H $M`, where $H is the head " -"commit of the current repository, and $M is the head of a foreign tree, " -"which is simply ahead of $H (i.e. we are in a fast-forward situation)." +"In addition to the `<<<<<<<`, `=======`, and `>>>>>>>` markers, it uses " +"another `|||||||` marker that is followed by the original text. You can " +"tell that the original just stated a fact, and your side simply gave in to " +"that statement and gave up, while the other side tried to have a more " +"positive attitude. You can sometimes come up with a better resolution by " +"viewing the original." msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:164 -msgid "" -"When two trees are specified, the user is telling 'git read-tree' the " -"following:" +#. type: Title - +#: en/git-merge.txt:274 +#, no-wrap +msgid "HOW TO RESOLVE CONFLICTS" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:166 -msgid "The current index and work tree is derived from $H, but" +#: en/git-merge.txt:277 +msgid "After seeing a conflict, you can do two things:" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:167 -msgid "the user may have local changes in them since $H." +#: en/git-merge.txt:282 +msgid "" +"Decide not to merge. The only clean-ups you need are to reset the index " +"file to the `HEAD` commit to reverse 2. and to clean up working tree changes " +"made by 2. and 3.; `git merge --abort` can be used for this." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:169 -msgid "The user wants to fast-forward to $M." +#: en/git-merge.txt:289 +msgid "" +"Resolve the conflicts. Git will mark the conflicts in the working tree. " +"Edit the files into shape and 'git add' them to the index. Use 'git commit' " +"or 'git merge --continue' to seal the deal. The latter command checks " +"whether there is a (interrupted) merge in progress before calling 'git " +"commit'." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:175 -msgid "" -"In this case, the `git read-tree -m $H $M` command makes sure that no local " -"change is lost as the result of this \"merge\". Here are the \"carry " -"forward\" rules, where \"I\" denotes the index, \"clean\" means that index " -"and work tree coincide, and \"exists\"/\"nothing\" refer to the presence of " -"a path in the specified commit:" +#: en/git-merge.txt:291 +msgid "You can work through the conflict with a number of tools:" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:185 -#, no-wrap +#: en/git-merge.txt:294 msgid "" -"\tI H M Result\n" -" -------------------------------------------------------\n" -" 0 nothing nothing nothing (does not happen)\n" -" 1 nothing nothing exists use M\n" -" 2 nothing exists nothing remove path from index\n" -" 3 nothing exists exists, use M if \"initial " -"checkout\",\n" -"\t\t\t\t H == M keep index otherwise\n" -"\t\t\t\t exists, fail\n" -"\t\t\t\t H != M\n" +"Use a mergetool. `git mergetool` to launch a graphical mergetool which will " +"work you through the merge." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:190 -#, no-wrap +#: en/git-merge.txt:298 msgid "" -" clean I==H I==M\n" -" ------------------\n" -" 4 yes N/A N/A nothing nothing keep index\n" -" 5 no N/A N/A nothing nothing keep index\n" +"Look at the diffs. `git diff` will show a three-way diff, highlighting " +"changes from both the `HEAD` and `MERGE_HEAD` versions." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:195 -#, no-wrap +#: en/git-merge.txt:302 msgid "" -" 6 yes N/A yes nothing exists keep index\n" -" 7 no N/A yes nothing exists keep index\n" -" 8 yes N/A no nothing exists fail\n" -" 9 no N/A no nothing exists fail\n" +"Look at the diffs from each branch. `git log --merge -p <path>` will show " +"diffs first for the `HEAD` version and then the `MERGE_HEAD` version." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:200 -#, no-wrap +#: en/git-merge.txt:307 msgid "" -" 10 yes yes N/A exists nothing remove path from index\n" -" 11 no yes N/A exists nothing fail\n" -" 12 yes no N/A exists nothing fail\n" -" 13 no no N/A exists nothing fail\n" +"Look at the originals. `git show :1:filename` shows the common ancestor, " +"`git show :2:filename` shows the `HEAD` version, and `git show :3:filename` " +"shows the `MERGE_HEAD` version." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:205 -#, no-wrap +#: en/git-merge.txt:314 msgid "" -"\tclean (H==M)\n" -" ------\n" -" 14 yes exists exists keep index\n" -" 15 no exists exists keep index\n" +"Merge branches `fixes` and `enhancements` on top of the current branch, " +"making an octopus merge:" msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:214 +#. type: delimited block - +#: en/git-merge.txt:317 #, no-wrap -msgid "" -" clean I==H I==M (H!=M)\n" -" ------------------\n" -" 16 yes no no exists exists fail\n" -" 17 no no no exists exists fail\n" -" 18 yes no yes exists exists keep index\n" -" 19 no no yes exists exists keep index\n" -" 20 yes yes no exists exists use M\n" -" 21 no yes no exists exists fail\n" +msgid "$ git merge fixes enhancements\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:219 +#: en/git-merge.txt:321 msgid "" -"In all \"keep index\" cases, the index entry stays as in the original index " -"file. If the entry is not up to date, 'git read-tree' keeps the copy in the " -"work tree intact when operating under the -u flag." +"Merge branch `obsolete` into the current branch, using `ours` merge strategy:" msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:230 -msgid "" -"When this form of 'git read-tree' returns successfully, you can see which of " -"the \"local changes\" that you made were carried forward by running `git " -"diff-index --cached $M`. Note that this does not necessarily match what " -"`git diff-index --cached $H` would have produced before such a two tree " -"merge. This is because of cases 18 and 19 --- if you already had the " -"changes in $M (e.g. maybe you picked it up via e-mail in a patch form), `git " -"diff-index --cached $H` would have told you about the change before this " -"merge, but it would not show in `git diff-index --cached $M` output after " -"the two-tree merge." +#. type: delimited block - +#: en/git-merge.txt:324 +#, no-wrap +msgid "$ git merge -s ours obsolete\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:237 +#: en/git-merge.txt:328 msgid "" -"Case 3 is slightly tricky and needs explanation. The result from this rule " -"logically should be to remove the path if the user staged the removal of the " -"path and then switching to a new branch. That however will prevent the " -"initial checkout from happening, so the rule is modified to use M (new tree) " -"only when the content of the index is empty. Otherwise the removal of the " -"path is kept as long as $H and $M are the same." +"Merge branch `maint` into the current branch, but do not make a new commit " +"automatically:" msgstr "" -#. type: Title ~ -#: en/git-read-tree.txt:239 +#. type: delimited block - +#: en/git-merge.txt:331 #, no-wrap -msgid "3-Way Merge" +msgid "$ git merge --no-commit maint\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:242 +#: en/git-merge.txt:335 msgid "" -"Each \"index\" entry has two bits worth of \"stage\" state. stage 0 is the " -"normal one, and is the only one you'd see in any kind of normal use." +"This can be used when you want to include further changes to the merge, or " +"want to write your own merge commit message." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:245 +#: en/git-merge.txt:339 msgid "" -"However, when you do 'git read-tree' with three trees, the \"stage\" starts " -"out at 1." -msgstr "" - -#. type: Plain text -#: en/git-read-tree.txt:247 -msgid "This means that you can do" +"You should refrain from abusing this option to sneak substantial changes " +"into a merge commit. Small fixups like bumping release/version name would " +"be acceptable." msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:250 +#. type: Labeled list +#: en/git-merge.txt:347 #, no-wrap -msgid "$ git read-tree -m <tree1> <tree2> <tree3>\n" +msgid "branch.<name>.mergeOptions" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:258 +#: en/git-merge.txt:351 msgid "" -"and you will end up with an index with all of the <tree1> entries in " -"\"stage1\", all of the <tree2> entries in \"stage2\" and all of the <tree3> " -"entries in \"stage3\". When performing a merge of another branch into the " -"current branch, we use the common ancestor tree as <tree1>, the current " -"branch head as <tree2>, and the other branch head as <tree3>." +"Sets default options for merging into branch <name>. The syntax and " +"supported options are the same as those of 'git merge', but option values " +"containing whitespace characters are currently not supported." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:262 +#: en/git-merge.txt:360 msgid "" -"Furthermore, 'git read-tree' has special-case logic that says: if you see a " -"file that matches in all respects in the following states, it \"collapses\" " -"back to \"stage0\":" +"linkgit:git-fmt-merge-msg[1], linkgit:git-pull[1], linkgit:gitattributes[5], " +"linkgit:git-reset[1], linkgit:git-diff[1], linkgit:git-ls-files[1], linkgit:" +"git-add[1], linkgit:git-rm[1], linkgit:git-mergetool[1]" msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:266 -msgid "" -"stage 2 and 3 are the same; take one or the other (it makes no difference - " -"the same work has been done on our branch in stage 2 and their branch in " -"stage 3)" +#. type: Title = +#: en/git-mktag.txt:2 +#, no-wrap +msgid "git-mktag(1)" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:271 -msgid "" -"stage 1 and stage 2 are the same and stage 3 is different; take stage 3 (our " -"branch in stage 2 did not do anything since the ancestor in stage 1 while " -"their branch in stage 3 worked on it)" +#: en/git-mktag.txt:7 +msgid "git-mktag - Creates a tag object" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:274 -msgid "" -"stage 1 and stage 3 are the same and stage 2 is different take stage 2 (we " -"did something while they did nothing)" +#: en/git-mktag.txt:13 +#, no-wrap +msgid "'git mktag'\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:278 +#: en/git-mktag.txt:18 msgid "" -"The 'git write-tree' command refuses to write a nonsensical tree, and it " -"will complain about unmerged entries if it sees a single entry that is not " -"stage 0." +"Reads a tag contents on standard input and creates a tag object that can " +"also be used to sign other objects." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:284 -msgid "" -"OK, this all sounds like a collection of totally nonsensical rules, but it's " -"actually exactly what you want in order to do a fast merge. The different " -"stages represent the \"result tree\" (stage 0, aka \"merged\"), the original " -"tree (stage 1, aka \"orig\"), and the two trees you are trying to merge " -"(stage 2 and 3 respectively)." +#: en/git-mktag.txt:20 +msgid "The output is the new tag's <object> identifier." msgstr "" -#. type: Plain text -#: en/git-read-tree.txt:289 -msgid "" -"The order of stages 1, 2 and 3 (hence the order of three <tree-ish> " -"command-line arguments) are significant when you start a 3-way merge with an " -"index file that is already populated. Here is an outline of how the " -"algorithm works:" +#. type: Title - +#: en/git-mktag.txt:22 +#, no-wrap +msgid "Tag Format" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:292 +#: en/git-mktag.txt:25 msgid "" -"if a file exists in identical format in all three trees, it will " -"automatically collapse to \"merged\" state by 'git read-tree'." +"A tag signature file, to be fed to this command's standard input, has a very " +"simple fixed format: four lines of" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:297 +#: en/git-mktag.txt:30 +#, no-wrap msgid "" -"a file that has _any_ difference what-so-ever in the three trees will stay " -"as separate entries in the index. It's up to \"porcelain policy\" to " -"determine how to remove the non-0 stages, and insert a merged version." +" object <sha1>\n" +" type <typename>\n" +" tag <tagname>\n" +" tagger <tagger>\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:302 +#: en/git-mktag.txt:36 msgid "" -"the index file saves and restores with all this information, so you can " -"merge things incrementally, but as long as it has entries in stages 1/2/3 " -"(i.e., \"unmerged entries\") you can't write the result. So now the merge " -"algorithm ends up being really simple:" +"followed by some 'optional' free-form message (some tags created by older " +"Git may not have `tagger` line). The message, when exists, is separated by " +"a blank line from the header. The message part may contain a signature that " +"Git itself doesn't care about, but that can be verified with gpg." +msgstr "" + +#. type: Title = +#: en/git-mktree.txt:2 +#, no-wrap +msgid "git-mktree(1)" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:305 -msgid "" -"you walk the index in order, and ignore all entries of stage 0, since " -"they've already been done." +#: en/git-mktree.txt:7 +msgid "git-mktree - Build a tree-object from ls-tree formatted text" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:309 -msgid "" -"if you find a \"stage1\", but no matching \"stage2\" or \"stage3\", you know " -"it's been removed from both trees (it only existed in the original tree), " -"and you remove that entry." +#: en/git-mktree.txt:13 +#, no-wrap +msgid "'git mktree' [-z] [--missing] [--batch]\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:314 +#: en/git-mktree.txt:20 msgid "" -"if you find a matching \"stage2\" and \"stage3\" tree, you remove one of " -"them, and turn the other into a \"stage0\" entry. Remove any matching " -"\"stage1\" entry if it exists too. .. all the normal trivial rules .." +"Reads standard input in non-recursive `ls-tree` output format, and creates a " +"tree object. The order of the tree entries is normalized by mktree so pre-" +"sorting the input is not required. The object name of the tree object built " +"is written to the standard output." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:319 -msgid "" -"You would normally use 'git merge-index' with supplied 'git merge-one-file' " -"to do this last step. The script updates the files in the working tree as " -"it merges each path and at the end of a successful merge." +#: en/git-mktree.txt:25 +msgid "Read the NUL-terminated `ls-tree -z` output instead." +msgstr "" + +#. type: Labeled list +#: en/git-mktree.txt:26 +#, no-wrap +msgid "--missing" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:327 +#: en/git-mktree.txt:31 msgid "" -"When you start a 3-way merge with an index file that is already populated, " -"it is assumed that it represents the state of the files in your work tree, " -"and you can even have files with changes unrecorded in the index file. It " -"is further assumed that this state is \"derived\" from the stage 2 tree. " -"The 3-way merge refuses to run if it finds an entry in the original index " -"file that does not match stage 2." +"Allow missing objects. The default behaviour (without this option) is to " +"verify that each tree entry's sha1 identifies an existing object. This " +"option has no effect on the treatment of gitlink entries (aka \"submodules" +"\") which are always allowed to be missing." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:332 +#: en/git-mktree.txt:37 msgid "" -"This is done to prevent you from losing your work-in-progress changes, and " -"mixing your random changes in an unrelated merge commit. To illustrate, " -"suppose you start from what has been committed last to your repository:" +"Allow building of more than one tree object before exiting. Each tree is " +"separated by as single blank line. The final new-line is optional. Note - " +"if the `-z` option is used, lines are terminated with NUL." msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:336 +#. type: Title = +#: en/git-mv.txt:2 #, no-wrap -msgid "" -"$ JC=`git rev-parse --verify \"HEAD^0\"`\n" -"$ git checkout-index -f -u -a $JC\n" +msgid "git-mv(1)" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:341 -msgid "" -"You do random edits, without running 'git update-index'. And then you " -"notice that the tip of your \"upstream\" tree has advanced since you pulled " -"from him:" +#: en/git-mv.txt:7 +msgid "git-mv - Move or rename a file, a directory, or a symlink" msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:345 +#. type: Plain text +#: en/git-mv.txt:13 #, no-wrap -msgid "" -"$ git fetch git://.... linus\n" -"$ LT=`git rev-parse FETCH_HEAD`\n" +msgid "'git mv' <options>... <args>...\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:351 -msgid "" -"Your work tree is still based on your HEAD ($JC), but you have some edits " -"since. Three-way merge makes sure that you have not added or modified index " -"entries since $JC, and if you haven't, then does the right thing. So with " -"the following sequence:" +#: en/git-mv.txt:17 +msgid "Move or rename a file, directory or symlink." msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:357 +#. type: Plain text +#: en/git-mv.txt:20 #, no-wrap msgid "" -"$ git read-tree -m -u `git merge-base $JC $LT` $JC $LT\n" -"$ git merge-index git-merge-one-file -a\n" -"$ echo \"Merge with Linus\" | \\\n" -" git commit-tree `git write-tree` -p $JC -p $LT\n" +" git mv [-v] [-f] [-n] [-k] <source> <destination>\n" +" git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:362 +#: en/git-mv.txt:25 msgid "" -"what you would commit is a pure merge between $JC and $LT without your " -"work-in-progress changes, and your work tree would be updated to the result " -"of the merge." +"In the first form, it renames <source>, which must exist and be either a " +"file, symlink or directory, to <destination>. In the second form, the last " +"argument has to be an existing directory; the given sources will be moved " +"into this directory." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:366 +#: en/git-mv.txt:28 msgid "" -"However, if you have local changes in the working tree that would be " -"overwritten by this merge, 'git read-tree' will refuse to run to prevent " -"your changes from being lost." +"The index is updated after successful completion, but the change must still " +"be committed." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:376 -msgid "" -"In other words, there is no need to worry about what exists only in the " -"working tree. When you have local changes in a part of the project that is " -"not involved in the merge, your changes do not interfere with the merge, and " -"are kept intact. When they *do* interfere, the merge does not even start " -"('git read-tree' complains loudly and fails without modifying anything). In " -"such a case, you can simply continue doing what you were in the middle of " -"doing, and when your working tree is ready (i.e. you have finished your " -"work-in-progress), attempt the merge again." +#: en/git-mv.txt:34 +msgid "Force renaming or moving of a file even if the target exists" msgstr "" -#. type: Title - -#: en/git-read-tree.txt:379 -#, no-wrap -msgid "Sparse checkout" +#. type: Plain text +#: en/git-mv.txt:39 +msgid "" +"Skip move or rename actions which would lead to an error condition. An error " +"happens when a source is neither existing nor controlled by Git, or when it " +"would overwrite an existing file unless `-f` is given." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:384 -msgid "" -"\"Sparse checkout\" allows populating the working directory sparsely. It " -"uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell Git " -"whether a file in the working directory is worth looking at." +#: en/git-mv.txt:42 +msgid "Do nothing; only show what would happen" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:393 -msgid "" -"'git read-tree' and other merge-based commands ('git merge', 'git " -"checkout'...) can help maintaining the skip-worktree bitmap and working " -"directory update. `$GIT_DIR/info/sparse-checkout` is used to define the " -"skip-worktree reference bitmap. When 'git read-tree' needs to update the " -"working directory, it resets the skip-worktree bit in the index based on " -"this file, which uses the same syntax as .gitignore files. If an entry " -"matches a pattern in this file, skip-worktree will not be set on that " -"entry. Otherwise, skip-worktree will be set." +#: en/git-mv.txt:46 +msgid "Report the names of files as they are moved." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:397 +#: en/git-mv.txt:54 msgid "" -"Then it compares the new skip-worktree value with the previous one. If " -"skip-worktree turns from set to unset, it will add the corresponding file " -"back. If it turns from unset to set, that file will be removed." +"Moving a submodule using a gitfile (which means they were cloned with a Git " +"version 1.7.8 or newer) will update the gitfile and core.worktree setting to " +"make the submodule work in the new location. It also will attempt to update " +"the submodule.<name>.path setting in the linkgit:gitmodules[5] file and " +"stage that file (unless -n is used)." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:401 +#: en/git-mv.txt:66 msgid "" -"While `$GIT_DIR/info/sparse-checkout` is usually used to specify what files " -"are in, you can also specify what files are _not_ in, using negate " -"patterns. For example, to remove the file `unwanted`:" +"Each time a superproject update moves a populated submodule (e.g. when " +"switching between commits before and after the move) a stale submodule " +"checkout will remain in the old location and an empty directory will appear " +"in the new location. To populate the submodule again in the new location the " +"user will have to run \"git submodule update\" afterwards. Removing the old " +"directory is only safe when it uses a gitfile, as otherwise the history of " +"the submodule will be deleted too. Both steps will be obsolete when " +"recursive submodule update has been implemented." msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:405 +#. type: Title = +#: en/git-name-rev.txt:2 #, no-wrap -msgid "" -"/*\n" -"!unwanted\n" +msgid "git-name-rev(1)" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:413 -msgid "" -"Another tricky thing is fully repopulating the working directory when you no " -"longer want sparse checkout. You cannot just disable \"sparse checkout\" " -"because skip-worktree bits are still in the index and your working directory " -"is still sparsely populated. You should re-populate the working directory " -"with the `$GIT_DIR/info/sparse-checkout` file content as follows:" +#: en/git-name-rev.txt:7 +msgid "git-name-rev - Find symbolic names for given revs" msgstr "" -#. type: delimited block - -#: en/git-read-tree.txt:416 +#. type: Plain text +#: en/git-name-rev.txt:14 #, no-wrap -msgid "/*\n" +msgid "" +"'git name-rev' [--tags] [--refs=<pattern>]\n" +"\t ( --all | --stdin | <commit-ish>... )\n" msgstr "" #. type: Plain text -#: en/git-read-tree.txt:422 +#: en/git-name-rev.txt:19 msgid "" -"Then you can disable sparse checkout. Sparse checkout support in 'git " -"read-tree' and similar commands is disabled by default. You need to turn " -"`core.sparseCheckout` on in order to have sparse checkout support." +"Finds symbolic names suitable for human digestion for revisions given in any " +"format parsable by 'git rev-parse'." msgstr "" #. type: Plain text -#: en/git-read-tree.txt:428 -msgid "linkgit:git-write-tree[1]; linkgit:git-ls-files[1]; linkgit:gitignore[5]" +#: en/git-name-rev.txt:26 +msgid "Do not use branch names, but only tags to name the commits" msgstr "" -#. type: Title = -#: en/git-rebase.txt:2 +#. type: Labeled list +#: en/git-name-rev.txt:27 #, no-wrap -msgid "git-rebase(1)" +msgid "--refs=<pattern>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:7 -msgid "git-rebase - Reapply commits on top of another base tip" +#: en/git-name-rev.txt:32 +msgid "" +"Only use refs whose names match a given shell pattern. The pattern can be " +"one of branch name, tag name or fully qualified ref name. If given multiple " +"times, use refs whose names match any of the given shell patterns. Use `--no-" +"refs` to clear any previous ref patterns given." msgstr "" #. type: Plain text -#: en/git-rebase.txt:16 -#, no-wrap +#: en/git-name-rev.txt:41 msgid "" -"'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto " -"<newbase>]\n" -"\t[<upstream> [<branch>]]\n" -"'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto " -"<newbase>]\n" -"\t--root [<branch>]\n" -"'git rebase' --continue | --skip | --abort | --quit | --edit-todo\n" +"Do not use any ref whose name matches a given shell pattern. The pattern can " +"be one of branch name, tag name or fully qualified ref name. If given " +"multiple times, a ref will be excluded when it matches any of the given " +"patterns. When used together with --refs, a ref will be used as a match only " +"when it matches at least one --refs pattern and does not match any --exclude " +"patterns. Use `--no-exclude` to clear the list of exclude patterns." msgstr "" #. type: Plain text -#: en/git-rebase.txt:22 -msgid "" -"If <branch> is specified, 'git rebase' will perform an automatic `git " -"checkout <branch>` before doing anything else. Otherwise it remains on the " -"current branch." +#: en/git-name-rev.txt:44 +msgid "List all commits reachable from all refs" msgstr "" #. type: Plain text -#: en/git-rebase.txt:28 +#: en/git-name-rev.txt:50 msgid "" -"If <upstream> is not specified, the upstream configured in " -"branch.<name>.remote and branch.<name>.merge options will be used (see " -"linkgit:git-config[1] for details) and the `--fork-point` option is " -"assumed. If you are currently not on any branch or if the current branch " -"does not have a configured upstream, the rebase will abort." +"Transform stdin by substituting all the 40-character SHA-1 hexes (say $hex) " +"with \"$hex ($rev_name)\". When used with --name-only, substitute with " +"\"$rev_name\", omitting $hex altogether. Intended for the scripter's use." msgstr "" #. type: Plain text -#: en/git-rebase.txt:35 +#: en/git-name-rev.txt:56 msgid "" -"All changes made by commits in the current branch but that are not in " -"<upstream> are saved to a temporary area. This is the same set of commits " -"that would be shown by `git log <upstream>..HEAD`; or by `git log " -"'fork_point'..HEAD`, if `--fork-point` is active (see the description on " -"`--fork-point` below); or by `git log HEAD`, if the `--root` option is " -"specified." +"Instead of printing both the SHA-1 and the name, print only the name. If " +"given with --tags the usual tag prefix of \"tags/\" is also omitted from the " +"name, matching the output of `git-describe` more closely." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:40 -msgid "" -"The current branch is reset to <upstream>, or <newbase> if the --onto option " -"was supplied. This has the exact same effect as `git reset --hard " -"<upstream>` (or <newbase>). ORIG_HEAD is set to point at the tip of the " -"branch before the reset." +#. type: Labeled list +#: en/git-name-rev.txt:57 +#, no-wrap +msgid "--no-undefined" msgstr "" #. type: Plain text -#: en/git-rebase.txt:46 +#: en/git-name-rev.txt:60 msgid "" -"The commits that were previously saved into the temporary area are then " -"reapplied to the current branch, one by one, in order. Note that any commits " -"in HEAD which introduce the same textual changes as a commit in " -"HEAD..<upstream> are omitted (i.e., a patch already accepted upstream with a " -"different commit message or timestamp will be skipped)." +"Die with error code != 0 when a reference is undefined, instead of printing " +"`undefined`." msgstr "" #. type: Plain text -#: en/git-rebase.txt:53 +#: en/git-name-rev.txt:71 msgid "" -"It is possible that a merge failure will prevent this process from being " -"completely automatic. You will have to resolve any such merge failure and " -"run `git rebase --continue`. Another option is to bypass the commit that " -"caused the merge failure with `git rebase --skip`. To check out the " -"original <branch> and remove the .git/rebase-apply working files, use the " -"command `git rebase --abort` instead." +"Given a commit, find out where it is relative to the local refs. Say " +"somebody wrote you about that fantastic commit " +"33db5f4d9027a10e477ccf054b2c1ab94f74c85a. Of course, you look into the " +"commit, but that only tells you what happened, but not the context." msgstr "" #. type: Plain text -#: en/git-rebase.txt:55 -msgid "Assume the following history exists and the current branch is \"topic\":" +#: en/git-name-rev.txt:73 +msgid "Enter 'git name-rev':" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:60 +#: en/git-name-rev.txt:77 #, no-wrap msgid "" -" A---B---C topic\n" -" /\n" -" D---E---F---G master\n" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:63 -msgid "From this point, the result of either of the following commands:" +"% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a\n" +"33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:67 -#, no-wrap +#: en/git-name-rev.txt:80 msgid "" -" git rebase master\n" -" git rebase master topic\n" +"Now you are wiser, because you know that it happened 940 revisions before " +"v0.99." msgstr "" #. type: Plain text -#: en/git-rebase.txt:69 -msgid "would be:" +#: en/git-name-rev.txt:82 +msgid "Another nice thing you can do is:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:74 +#: en/git-name-rev.txt:85 #, no-wrap -msgid "" -" A'--B'--C' topic\n" -" /\n" -" D---E---F---G master\n" +msgid "% git log | git name-rev --stdin\n" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:79 +#. type: Title = +#: en/git-notes.txt:2 #, no-wrap -msgid "" -"*NOTE:* The latter form is just a short-hand of `git checkout topic`\n" -"followed by `git rebase master`. When rebase exits `topic` will\n" -"remain the checked-out branch.\n" +msgid "git-notes(1)" msgstr "" #. type: Plain text -#: en/git-rebase.txt:85 -msgid "" -"If the upstream branch already contains a change you have made (e.g., " -"because you mailed a patch which was applied upstream), then that commit " -"will be skipped. For example, running `git rebase master` on the following " -"history (in which `A'` and `A` introduce the same set of changes, but have " -"different committer information):" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:90 -#, no-wrap -msgid "" -" A---B---C topic\n" -" /\n" -" D---E---A'---F master\n" +#: en/git-notes.txt:7 +msgid "git-notes - Add or inspect object notes" msgstr "" #. type: Plain text -#: en/git-rebase.txt:93 -msgid "will result in:" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:98 +#: en/git-notes.txt:23 #, no-wrap msgid "" -" B'---C' topic\n" -" /\n" -" D---E---A'---F master\n" +"'git notes' [list [<object>]]\n" +"'git notes' add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]\n" +"'git notes' copy [-f] ( --stdin | <from-object> <to-object> )\n" +"'git notes' append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]\n" +"'git notes' edit [--allow-empty] [<object>]\n" +"'git notes' show [<object>]\n" +"'git notes' merge [-v | -q] [-s <strategy> ] <notes-ref>\n" +"'git notes' merge --commit [-v | -q]\n" +"'git notes' merge --abort [-v | -q]\n" +"'git notes' remove [--ignore-missing] [--stdin] [<object>...]\n" +"'git notes' prune [-n] [-v]\n" +"'git notes' get-ref\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:103 +#: en/git-notes.txt:29 msgid "" -"Here is how you would transplant a topic branch based on one branch to " -"another, to pretend that you forked the topic branch from the latter branch, " -"using `rebase --onto`." +"Adds, removes, or reads notes attached to objects, without touching the " +"objects themselves." msgstr "" #. type: Plain text -#: en/git-rebase.txt:107 -msgid "" -"First let's assume your 'topic' is based on branch 'next'. For example, a " -"feature developed in 'topic' depends on some functionality which is found in " -"'next'." -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:114 -#, no-wrap +#: en/git-notes.txt:34 msgid "" -" o---o---o---o---o master\n" -" \\\n" -" o---o---o---o---o next\n" -" \\\n" -" o---o---o topic\n" +"By default, notes are saved to and read from `refs/notes/commits`, but this " +"default can be overridden. See the OPTIONS, CONFIGURATION, and ENVIRONMENT " +"sections below. If this ref does not exist, it will be quietly created when " +"it is first needed to store a note." msgstr "" #. type: Plain text -#: en/git-rebase.txt:119 -msgid "" -"We want to make 'topic' forked from branch 'master'; for example, because " -"the functionality on which 'topic' depends was merged into the more stable " -"'master' branch. We want our tree to look like this:" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:126 -#, no-wrap +#: en/git-notes.txt:41 msgid "" -" o---o---o---o---o master\n" -" | \\\n" -" | o'--o'--o' topic\n" -" \\\n" -" o---o---o---o---o next\n" +"A typical use of notes is to supplement a commit message without changing " +"the commit itself. Notes can be shown by 'git log' along with the original " +"commit message. To distinguish these notes from the message stored in the " +"commit object, the notes are indented like the message, after an unindented " +"line saying \"Notes (<refname>):\" (or \"Notes:\" for `refs/notes/commits`)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:129 -msgid "We can get this using the following command:" +#: en/git-notes.txt:45 +msgid "" +"Notes can also be added to patches prepared with `git format-patch` by using " +"the `--notes` option. Such notes are added as a patch commentary after a " +"three dash separator line." msgstr "" #. type: Plain text -#: en/git-rebase.txt:131 -#, no-wrap -msgid " git rebase --onto master next topic\n" +#: en/git-notes.txt:48 +msgid "" +"To change which notes are shown by 'git log', see the \"notes.displayRef\" " +"configuration in linkgit:git-log[1]." msgstr "" #. type: Plain text -#: en/git-rebase.txt:135 +#: en/git-notes.txt:51 msgid "" -"Another example of --onto option is to rebase part of a branch. If we have " -"the following situation:" +"See the \"notes.rewrite.<command>\" configuration for a way to carry notes " +"across commands that rewrite commits." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:142 +#. type: Title - +#: en/git-notes.txt:54 #, no-wrap -msgid "" -" H---I---J topicB\n" -" /\n" -" E---F---G topicA\n" -" /\n" -" A---B---C---D master\n" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:145 en/git-rebase.txt:168 -msgid "then the command" +msgid "SUBCOMMANDS" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:147 +#. type: Labeled list +#: en/git-notes.txt:56 en/git-worktree.txt:81 #, no-wrap -msgid " git rebase --onto master topicA topicB\n" +msgid "list" msgstr "" #. type: Plain text -#: en/git-rebase.txt:149 -msgid "would result in:" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:156 -#, no-wrap +#: en/git-notes.txt:61 msgid "" -" H'--I'--J' topicB\n" -" /\n" -" | E---F---G topicA\n" -" |/\n" -" A---B---C---D master\n" +"List the notes object for a given object. If no object is given, show a list " +"of all note objects and the objects they annotate (in the format \"<note " +"object> <annotated object>\"). This is the default subcommand if no " +"subcommand is given." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:159 -msgid "This is useful when topicB does not depend on topicA." +#. type: Labeled list +#: en/git-notes.txt:62 +#, no-wrap +msgid "add" msgstr "" #. type: Plain text -#: en/git-rebase.txt:162 +#: en/git-notes.txt:69 msgid "" -"A range of commits could also be removed with rebase. If we have the " -"following situation:" +"Add notes for a given object (defaults to HEAD). Abort if the object already " +"has notes (use `-f` to overwrite existing notes). However, if you're using " +"`add` interactively (using an editor to supply the notes contents), then - " +"instead of aborting - the existing notes will be opened in the editor (like " +"the `edit` subcommand)." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:165 +#. type: Labeled list +#: en/git-notes.txt:70 #, no-wrap -msgid " E---F---G---H---I---J topicA\n" +msgid "copy" msgstr "" #. type: Plain text -#: en/git-rebase.txt:170 -#, no-wrap -msgid " git rebase --onto topicA~5 topicA~3 topicA\n" +#: en/git-notes.txt:76 +msgid "" +"Copy the notes for the first object onto the second object. Abort if the " +"second object already has notes, or if the first object has none (use -f to " +"overwrite existing notes to the second object). This subcommand is " +"equivalent to: `git notes add [-f] -C $(git notes list <from-object>) <to-" +"object>`" msgstr "" #. type: Plain text -#: en/git-rebase.txt:172 -msgid "would result in the removal of commits F and G:" +#: en/git-notes.txt:78 +msgid "In `--stdin` mode, take lines in the format" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:175 +#: en/git-notes.txt:81 #, no-wrap -msgid " E---H'---I'---J' topicA\n" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:180 -msgid "" -"This is useful if F and G were flawed in some way, or should not be part of " -"topicA. Note that the argument to --onto and the <upstream> parameter can " -"be any valid commit-ish." +msgid "<from-object> SP <to-object> [ SP <rest> ] LF\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:186 +#: en/git-notes.txt:86 msgid "" -"In case of conflict, 'git rebase' will stop at the first problematic commit " -"and leave conflict markers in the tree. You can use 'git diff' to locate " -"the markers (<<<<<<) and make edits to resolve the conflict. For each file " -"you edit, you need to tell Git that the conflict has been resolved, " -"typically this would be done with" +"on standard input, and copy the notes from each <from-object> to its " +"corresponding <to-object>. (The optional `<rest>` is ignored so that the " +"command can read the input given to the `post-rewrite` hook.)" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:189 +#. type: Labeled list +#: en/git-notes.txt:87 #, no-wrap -msgid " git add <filename>\n" +msgid "append" msgstr "" #. type: Plain text -#: en/git-rebase.txt:193 +#: en/git-notes.txt:90 msgid "" -"After resolving the conflict manually and updating the index with the " -"desired resolution, you can continue the rebasing process with" +"Append to the notes of an existing object (defaults to HEAD). Creates a new " +"notes object if needed." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:196 +#. type: Labeled list +#: en/git-notes.txt:91 #, no-wrap -msgid " git rebase --continue\n" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:199 -msgid "Alternatively, you can undo the 'git rebase' with" +msgid "edit" msgstr "" #. type: Plain text -#: en/git-rebase.txt:202 -#, no-wrap -msgid " git rebase --abort\n" +#: en/git-notes.txt:93 +msgid "Edit the notes for a given object (defaults to HEAD)." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:206 en/config.txt:2586 +#: en/git-notes.txt:94 #, no-wrap -msgid "rebase.stat" +msgid "show" msgstr "" #. type: Plain text -#: en/git-rebase.txt:209 en/config.txt:2589 -msgid "" -"Whether to show a diffstat of what changed upstream since the last " -"rebase. False by default." +#: en/git-notes.txt:96 +msgid "Show the notes for a given object (defaults to HEAD)." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:210 en/config.txt:2590 +#: en/git-notes.txt:97 en/git-submodule.txt:150 #, no-wrap -msgid "rebase.autoSquash" +msgid "merge" msgstr "" #. type: Plain text -#: en/git-rebase.txt:212 en/config.txt:2592 -msgid "If set to true enable `--autosquash` option by default." -msgstr "" - -#. type: Labeled list -#: en/git-rebase.txt:213 en/config.txt:2593 -#, no-wrap -msgid "rebase.autoStash" +#: en/git-notes.txt:102 +msgid "" +"Merge the given notes ref into the current notes ref. This will try to " +"merge the changes made by the given notes ref (called \"remote\") since the " +"merge-base (if any) into the current notes ref (called \"local\")." msgstr "" #. type: Plain text -#: en/git-rebase.txt:215 -msgid "If set to true enable `--autostash` option by default." +#: en/git-notes.txt:111 +msgid "" +"If conflicts arise and a strategy for automatically resolving conflicting " +"notes (see the \"NOTES MERGE STRATEGIES\" section) is not given, the \"manual" +"\" resolver is used. This resolver checks out the conflicting notes in a " +"special worktree (`.git/NOTES_MERGE_WORKTREE`), and instructs the user to " +"manually resolve the conflicts there. When done, the user can either " +"finalize the merge with 'git notes merge --commit', or abort the merge with " +"'git notes merge --abort'." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:216 en/config.txt:2601 +#: en/git-notes.txt:112 en/git-worktree.txt:105 #, no-wrap -msgid "rebase.missingCommitsCheck" +msgid "remove" msgstr "" #. type: Plain text -#: en/git-rebase.txt:221 +#: en/git-notes.txt:117 msgid "" -"If set to \"warn\", print warnings about removed commits in interactive " -"mode. If set to \"error\", print the warnings and stop the rebase. If set to " -"\"ignore\", no checking is done. \"ignore\" by default." +"Remove the notes for given objects (defaults to HEAD). When giving zero or " +"one object from the command line, this is equivalent to specifying an empty " +"note message to the `edit` subcommand." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:222 en/config.txt:2612 +#: en/git-notes.txt:118 en/git-worktree.txt:101 #, no-wrap -msgid "rebase.instructionFormat" +msgid "prune" msgstr "" #. type: Plain text -#: en/git-rebase.txt:224 -msgid "Custom commit list format to use during an `--interactive` rebase." +#: en/git-notes.txt:120 +msgid "Remove all notes for non-existing/unreachable objects." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:227 +#: en/git-notes.txt:121 #, no-wrap -msgid "--onto <newbase>" +msgid "get-ref" msgstr "" #. type: Plain text -#: en/git-rebase.txt:232 +#: en/git-notes.txt:124 msgid "" -"Starting point at which to create the new commits. If the --onto option is " -"not specified, the starting point is <upstream>. May be any valid commit, " -"and not just an existing branch name." +"Print the current notes ref. This provides an easy way to retrieve the " +"current notes ref (e.g. from scripts)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:236 +#: en/git-notes.txt:131 msgid "" -"As a special case, you may use \"A\\...B\" as a shortcut for the merge base " -"of A and B if there is exactly one merge base. You can leave out at most one " -"of A and B, in which case it defaults to HEAD." +"When adding notes to an object that already has notes, overwrite the " +"existing notes (instead of aborting)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:241 +#: en/git-notes.txt:139 msgid "" -"Upstream branch to compare against. May be any valid commit, not just an " -"existing branch name. Defaults to the configured upstream for the current " -"branch." +"Use the given note message (instead of prompting). If multiple `-m` options " +"are given, their values are concatenated as separate paragraphs. Lines " +"starting with `#` and empty lines other than a single line between " +"paragraphs will be stripped out." msgstr "" #. type: Plain text -#: en/git-rebase.txt:247 -msgid "Restart the rebasing process after having resolved a merge conflict." +#: en/git-notes.txt:146 +msgid "" +"Take the note message from the given file. Use '-' to read the note message " +"from the standard input. Lines starting with `#` and empty lines other than " +"a single line between paragraphs will be stripped out." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:254 -msgid "" -"Abort the rebase operation and reset HEAD to the original branch. If " -"<branch> was provided when the rebase operation was started, then HEAD will " -"be reset to <branch>. Otherwise HEAD will be reset to where it was when the " -"rebase operation was started." +#. type: Labeled list +#: en/git-notes.txt:147 +#, no-wrap +msgid "-C <object>" msgstr "" #. type: Labeled list -#: en/git-rebase.txt:255 en/sequencer.txt:6 +#: en/git-notes.txt:148 #, no-wrap -msgid "--quit" +msgid "--reuse-message=<object>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:259 +#: en/git-notes.txt:152 msgid "" -"Abort the rebase operation but HEAD is not reset back to the original " -"branch. The index and working tree are also left unchanged as a result." +"Take the given blob object (for\texample, another note) as the note message. " +"(Use `git notes copy <object>` instead to copy notes between objects.)" +msgstr "" + +#. type: Labeled list +#: en/git-notes.txt:153 +#, no-wrap +msgid "-c <object>" msgstr "" #. type: Labeled list -#: en/git-rebase.txt:260 +#: en/git-notes.txt:154 #, no-wrap -msgid "--keep-empty" +msgid "--reedit-message=<object>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:263 -msgid "Keep the commits that do not change anything from its parents in the result." +#: en/git-notes.txt:157 +msgid "" +"Like '-C', but with `-c` the editor is invoked, so that the user can further " +"edit the note message." msgstr "" #. type: Plain text -#: en/git-rebase.txt:266 -msgid "Restart the rebasing process by skipping the current patch." +#: en/git-notes.txt:161 +msgid "" +"Allow an empty note object to be stored. The default behavior is to " +"automatically remove empty notes." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:267 +#: en/git-notes.txt:162 #, no-wrap -msgid "--edit-todo" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:269 -msgid "Edit the todo list during an interactive rebase." +msgid "--ref <ref>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:275 +#: en/git-notes.txt:168 msgid "" -"Use merging strategies to rebase. When the recursive (default) merge " -"strategy is used, this allows rebase to be aware of renames on the upstream " -"side." +"Manipulate the notes tree in <ref>. This overrides `GIT_NOTES_REF` and the " +"\"core.notesRef\" configuration. The ref specifies the full refname when it " +"begins with `refs/notes/`; when it begins with `notes/`, `refs/` and " +"otherwise `refs/notes/` is prefixed to form a full name of the ref." msgstr "" #. type: Plain text -#: en/git-rebase.txt:281 +#: en/git-notes.txt:172 msgid "" -"Note that a rebase merge works by replaying each commit from the working " -"branch on top of the <upstream> branch. Because of this, when a merge " -"conflict happens, the side reported as 'ours' is the so-far rebased series, " -"starting with <upstream>, and 'theirs' is the working branch. In other " -"words, the sides are swapped." +"Do not consider it an error to request removing notes from an object that " +"does not have notes attached to it." msgstr "" #. type: Plain text -#: en/git-rebase.txt:287 +#: en/git-notes.txt:177 msgid "" -"Use the given merge strategy. If there is no `-s` option 'git " -"merge-recursive' is used instead. This implies --merge." +"Also read the object names to remove notes from the standard input (there is " +"no reason you cannot combine this with object names from the command line)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:292 +#: en/git-notes.txt:182 msgid "" -"Because 'git rebase' replays each commit from the working branch on top of " -"the <upstream> branch using the given strategy, using the 'ours' strategy " -"simply discards all patches from the <branch>, which makes little sense." +"Do not remove anything; just report the object names whose notes would be " +"removed." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:293 +#: en/git-notes.txt:183 en/git-rebase.txt:281 en/merge-options.txt:94 #, no-wrap -msgid "-X <strategy-option>" +msgid "-s <strategy>" +msgstr "" + +#. type: Plain text +#: en/git-notes.txt:191 +msgid "" +"When merging notes, resolve notes conflicts using the given strategy. The " +"following strategies are recognized: \"manual\" (default), \"ours\", \"theirs" +"\", \"union\" and \"cat_sort_uniq\". This option overrides the \"notes." +"mergeStrategy\" configuration setting. See the \"NOTES MERGE STRATEGIES\" " +"section below for more information on each notes merge strategy." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:294 +#: en/git-notes.txt:192 en/merge-options.txt:1 #, no-wrap -msgid "--strategy-option=<strategy-option>" +msgid "--commit" msgstr "" #. type: Plain text -#: en/git-rebase.txt:299 +#: en/git-notes.txt:200 msgid "" -"Pass the <strategy-option> through to the merge strategy. This implies " -"`--merge` and, if no strategy has been specified, `-s recursive`. Note the " -"reversal of 'ours' and 'theirs' as noted above for the `-m` option." +"Finalize an in-progress 'git notes merge'. Use this option when you have " +"resolved the conflicts that 'git notes merge' stored in .git/" +"NOTES_MERGE_WORKTREE. This amends the partial merge commit created by 'git " +"notes merge' (stored in .git/NOTES_MERGE_PARTIAL) by adding the notes in ." +"git/NOTES_MERGE_WORKTREE. The notes ref stored in the .git/NOTES_MERGE_REF " +"symref is updated to the resulting commit." msgstr "" #. type: Plain text -#: en/git-rebase.txt:309 -msgid "Be quiet. Implies --no-stat." +#: en/git-notes.txt:205 +msgid "" +"Abort/reset an in-progress 'git notes merge', i.e. a notes merge with " +"conflicts. This simply removes all files related to the notes merge." msgstr "" #. type: Plain text -#: en/git-rebase.txt:313 -msgid "Be verbose. Implies --stat." +#: en/git-notes.txt:209 +msgid "When merging notes, operate quietly." msgstr "" #. type: Plain text -#: en/git-rebase.txt:317 +#: en/git-notes.txt:215 msgid "" -"Show a diffstat of what changed upstream since the last rebase. The diffstat " -"is also controlled by the configuration option rebase.stat." -msgstr "" - -#. type: Labeled list -#: en/git-rebase.txt:319 en/diff-options.txt:17 en/merge-options.txt:57 -#, no-wrap -msgid "--no-stat" +"When merging notes, be more verbose. When pruning notes, report all object " +"names whose notes are removed." msgstr "" #. type: Plain text -#: en/git-rebase.txt:321 -msgid "Do not show a diffstat as part of the rebase process." +#: en/git-notes.txt:229 +msgid "" +"Commit notes are blobs containing extra information about an object (usually " +"information to supplement a commit's message). These blobs are taken from " +"notes refs. A notes ref is usually a branch which contains \"files\" whose " +"paths are the object names for the objects they describe, with some " +"directory separators included for performance reasons footnote:[Permitted " +"pathnames have the form 'ab'`/`'cd'`/`'ef'`/`'...'`/`'abcdef...': a sequence " +"of directory names of two hexadecimal digits each followed by a filename " +"with the rest of the object ID.]." msgstr "" #. type: Plain text -#: en/git-rebase.txt:324 -msgid "This option bypasses the pre-rebase hook. See also linkgit:githooks[5]." -msgstr "" - -#. type: Labeled list -#: en/git-rebase.txt:325 en/git-rev-parse.txt:98 en/git-show-ref.txt:59 en/git-tag.txt:80 -#, no-wrap -msgid "--verify" +#: en/git-notes.txt:236 +msgid "" +"Every notes change creates a new commit at the specified notes ref. You can " +"therefore inspect the history of the notes by invoking, e.g., `git log -p " +"notes/commits`. Currently the commit message only records which operation " +"triggered the update, and the commit authorship is determined according to " +"the usual rules (see linkgit:git-commit[1]). These details may change in " +"the future." msgstr "" #. type: Plain text -#: en/git-rebase.txt:328 +#: en/git-notes.txt:240 msgid "" -"Allows the pre-rebase hook to run, which is the default. This option can be " -"used to override --no-verify. See also linkgit:githooks[5]." +"It is also permitted for a notes ref to point directly to a tree object, in " +"which case the history of the notes can be read with `git log -p -g " +"<refname>`." msgstr "" -#. type: Labeled list -#: en/git-rebase.txt:336 +#. type: Title - +#: en/git-notes.txt:243 #, no-wrap -msgid "--force-rebase" +msgid "NOTES MERGE STRATEGIES" msgstr "" #. type: Plain text -#: en/git-rebase.txt:339 +#: en/git-notes.txt:252 msgid "" -"Force a rebase even if the current branch is up-to-date and the command " -"without `--force` would return without doing anything." +"The default notes merge strategy is \"manual\", which checks out conflicting " +"notes in a special work tree for resolving notes conflicts (`.git/" +"NOTES_MERGE_WORKTREE`), and instructs the user to resolve the conflicts in " +"that work tree. When done, the user can either finalize the merge with 'git " +"notes merge --commit', or abort the merge with 'git notes merge --abort'." msgstr "" #. type: Plain text -#: en/git-rebase.txt:345 +#: en/git-notes.txt:255 msgid "" -"You may find this (or --no-ff with an interactive rebase) helpful after " -"reverting a topic branch merge, as this option recreates the topic branch " -"with fresh commits so it can be remerged successfully without needing to " -"\"revert the reversion\" (see the " -"link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for " -"details)." +"Users may select an automated merge strategy from among the following using " +"either -s/--strategy option or configuring notes.mergeStrategy accordingly:" msgstr "" -#. type: Labeled list -#: en/git-rebase.txt:347 -#, no-wrap -msgid "--no-fork-point" +#. type: Plain text +#: en/git-notes.txt:258 +msgid "" +"\"ours\" automatically resolves conflicting notes in favor of the local " +"version (i.e. the current notes ref)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:351 +#: en/git-notes.txt:262 msgid "" -"Use reflog to find a better common ancestor between <upstream> and <branch> " -"when calculating which commits have been introduced by <branch>." +"\"theirs\" automatically resolves notes conflicts in favor of the remote " +"version (i.e. the given notes ref being merged into the current notes ref)." msgstr "" #. type: Plain text -#: en/git-rebase.txt:357 +#: en/git-notes.txt:265 msgid "" -"When --fork-point is active, 'fork_point' will be used instead of <upstream> " -"to calculate the set of commits to rebase, where 'fork_point' is the result " -"of `git merge-base --fork-point <upstream> <branch>` command (see " -"linkgit:git-merge-base[1]). If 'fork_point' ends up being empty, the " -"<upstream> will be used as a fallback." +"\"union\" automatically resolves notes conflicts by concatenating the local " +"and remote versions." msgstr "" #. type: Plain text -#: en/git-rebase.txt:360 +#: en/git-notes.txt:275 msgid "" -"If either <upstream> or --root is given on the command line, then the " -"default is `--no-fork-point`, otherwise the default is `--fork-point`." +"\"cat_sort_uniq\" is similar to \"union\", but in addition to concatenating " +"the local and remote versions, this strategy also sorts the resulting lines, " +"and removes duplicate lines from the result. This is equivalent to applying " +"the \"cat | sort | uniq\" shell pipeline to the local and remote versions. " +"This strategy is useful if the notes follow a line-based format where one " +"wants to avoid duplicated lines in the merge result. Note that if either " +"the local or remote version contain duplicate lines prior to the merge, " +"these will also be removed by this notes merge strategy." msgstr "" #. type: Plain text -#: en/git-rebase.txt:366 +#: en/git-notes.txt:282 msgid "" -"These flag are passed to the 'git apply' program (see linkgit:git-apply[1]) " -"that applies the patch. Incompatible with the --interactive option." +"You can use notes to add annotations with information that was not available " +"at the time a commit was written." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:372 +#. type: delimited block - +#: en/git-notes.txt:288 +#, no-wrap msgid "" -"These flags are passed to 'git am' to easily change the dates of the rebased " -"commits (see linkgit:git-am[1]). Incompatible with the --interactive " -"option." +"$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2\n" +"$ git show -s 72a144e\n" +"[...]\n" +" Signed-off-by: Junio C Hamano <gitster@pobox.com>\n" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:378 +#. type: delimited block - +#: en/git-notes.txt:291 +#, no-wrap msgid "" -"Make a list of the commits which are about to be rebased. Let the user edit " -"that list before rebasing. This mode can also be used to split commits (see " -"SPLITTING COMMITS below)." +"Notes:\n" +" Tested-by: Johannes Sixt <j6t@kdbg.org>\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:382 +#: en/git-notes.txt:296 msgid "" -"The commit list format can be changed by setting the configuration option " -"rebase.instructionFormat. A customized instruction format will " -"automatically have the long commit hash prepended to the format." +"In principle, a note is a regular Git blob, and any kind of (non-)format is " +"accepted. You can binary-safely create notes from arbitrary files using " +"'git hash-object':" msgstr "" -#. type: Labeled list -#: en/git-rebase.txt:384 en/git-svn.txt:642 +#. type: delimited block - +#: en/git-notes.txt:301 #, no-wrap -msgid "--preserve-merges" -msgstr "" - -#. type: Plain text -#: en/git-rebase.txt:388 msgid "" -"Recreate merge commits instead of flattening the history by replaying " -"commits a merge commit introduces. Merge conflict resolutions or manual " -"amendments to merge commits are not preserved." +"$ cc *.c\n" +"$ blob=$(git hash-object -w a.out)\n" +"$ git notes --ref=built add --allow-empty -C \"$blob\" HEAD\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:392 +#: en/git-notes.txt:308 msgid "" -"This uses the `--interactive` machinery internally, but combining it with " -"the `--interactive` option explicitly is generally not a good idea unless " -"you know what you are doing (see BUGS below)." +"(You cannot simply use `git notes --ref=built add -F a.out HEAD` because " +"that is not binary-safe.) Of course, it doesn't make much sense to display " +"non-text-format notes with 'git log', so if you use such notes, you'll " +"probably need to write some special-purpose tools to do something useful " +"with them." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:393 +#: en/git-notes.txt:313 #, no-wrap -msgid "-x <cmd>" +msgid "core.notesRef" +msgstr "" + +#. type: Plain text +#: en/git-notes.txt:318 +msgid "" +"Notes ref to read and manipulate instead of `refs/notes/commits`. Must be " +"an unabbreviated ref name. This setting can be overridden through the " +"environment and command line." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:394 +#: en/git-notes.txt:319 #, no-wrap -msgid "--exec <cmd>" +msgid "notes.mergeStrategy" msgstr "" #. type: Plain text -#: en/git-rebase.txt:398 +#: en/git-notes.txt:324 msgid "" -"Append \"exec <cmd>\" after each line creating a commit in the final " -"history. <cmd> will be interpreted as one or more shell commands." +"Which merge strategy to choose by default when resolving notes conflicts. " +"Must be one of `manual`, `ours`, `theirs`, `union`, or `cat_sort_uniq`. " +"Defaults to `manual`. See \"NOTES MERGE STRATEGIES\" section above for more " +"information on each strategy." msgstr "" #. type: Plain text -#: en/git-rebase.txt:401 -msgid "" -"You may execute several commands by either using one instance of `--exec` " -"with several commands:" +#: en/git-notes.txt:326 +msgid "This setting can be overridden by passing the `--strategy` option." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:403 +#. type: Labeled list +#: en/git-notes.txt:327 #, no-wrap -msgid "\tgit rebase -i --exec \"cmd1 && cmd2 && ...\"\n" +msgid "notes.<name>.mergeStrategy" msgstr "" #. type: Plain text -#: en/git-rebase.txt:405 -msgid "or by giving more than one `--exec`:" +#: en/git-notes.txt:332 +msgid "" +"Which merge strategy to choose when doing a notes merge into refs/notes/" +"<name>. This overrides the more general \"notes.mergeStrategy\". See the " +"\"NOTES MERGE STRATEGIES\" section above for more information on each " +"available strategy." msgstr "" #. type: Plain text -#: en/git-rebase.txt:407 +#: en/git-notes.txt:341 +msgid "" +"Which ref (or refs, if a glob or specified more than once), in addition to " +"the default set by `core.notesRef` or `GIT_NOTES_REF`, to read notes from " +"when showing commit messages with the 'git log' family of commands. This " +"setting can be overridden on the command line or by the " +"`GIT_NOTES_DISPLAY_REF` environment variable. See linkgit:git-log[1]." +msgstr "" + +#. type: Labeled list +#: en/git-notes.txt:342 #, no-wrap -msgid "\tgit rebase -i --exec \"cmd1\" --exec \"cmd2\" --exec ...\n" +msgid "notes.rewrite.<command>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:411 +#: en/git-notes.txt:347 msgid "" -"If `--autosquash` is used, \"exec\" lines will not be appended for the " -"intermediate commits, and will only appear at the end of each squash/fixup " -"series." +"When rewriting commits with <command> (currently `amend` or `rebase`), if " +"this variable is `false`, git will not copy notes from the original to the " +"rewritten commit. Defaults to `true`. See also \"`notes.rewriteRef`\" " +"below." msgstr "" #. type: Plain text -#: en/git-rebase.txt:414 +#: en/git-notes.txt:350 msgid "" -"This uses the `--interactive` machinery internally, but it can be run " -"without an explicit `--interactive`." +"This setting can be overridden by the `GIT_NOTES_REWRITE_REF` environment " +"variable." +msgstr "" + +#. type: Labeled list +#: en/git-notes.txt:351 +#, no-wrap +msgid "notes.rewriteMode" msgstr "" #. type: Plain text -#: en/git-rebase.txt:424 +#: en/git-notes.txt:356 msgid "" -"Rebase all commits reachable from <branch>, instead of limiting them with an " -"<upstream>. This allows you to rebase the root commit(s) on a branch. When " -"used with --onto, it will skip changes already contained in <newbase> " -"(instead of <upstream>) whereas without --onto it will operate on every " -"change. When used together with both --onto and --preserve-merges, 'all' " -"root commits will be rewritten to have <newbase> as parent instead." +"When copying notes during a rewrite, what to do if the target commit already " +"has a note. Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or " +"`ignore`. Defaults to `concatenate`." msgstr "" -#. type: Labeled list -#: en/git-rebase.txt:425 -#, no-wrap -msgid "--autosquash" +#. type: Plain text +#: en/git-notes.txt:359 +msgid "" +"This setting can be overridden with the `GIT_NOTES_REWRITE_MODE` environment " +"variable." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:426 +#: en/git-notes.txt:360 #, no-wrap -msgid "--no-autosquash" +msgid "notes.rewriteRef" msgstr "" #. type: Plain text -#: en/git-rebase.txt:435 +#: en/git-notes.txt:365 msgid "" -"When the commit log message begins with \"squash! ...\" (or \"fixup! ...\"), " -"and there is a commit whose title begins with the same ..., automatically " -"modify the todo list of rebase -i so that the commit marked for squashing " -"comes right after the commit to be modified, and change the action of the " -"moved commit from `pick` to `squash` (or `fixup`). Ignores subsequent " -"\"fixup! \" or \"squash! \" after the first, in case you referred to an " -"earlier fixup/squash with `git commit --fixup/--squash`." +"When copying notes during a rewrite, specifies the (fully qualified) ref " +"whose notes should be copied. May be a glob, in which case notes in all " +"matching refs will be copied. You may also specify this configuration " +"several times." msgstr "" #. type: Plain text -#: en/git-rebase.txt:437 -msgid "This option is only valid when the `--interactive` option is used." +#: en/git-notes.txt:368 +msgid "" +"Does not have a default value; you must configure this variable to enable " +"note rewriting." msgstr "" #. type: Plain text -#: en/git-rebase.txt:441 +#: en/git-notes.txt:370 msgid "" -"If the `--autosquash` option is enabled by default using the configuration " -"variable `rebase.autoSquash`, this option can be used to override and " -"disable this setting." +"Can be overridden with the `GIT_NOTES_REWRITE_REF` environment variable." +msgstr "" + +#. type: Labeled list +#: en/git-notes.txt:375 +#, no-wrap +msgid "`GIT_NOTES_REF`" msgstr "" #. type: Plain text -#: en/git-rebase.txt:449 +#: en/git-notes.txt:378 msgid "" -"Automatically create a temporary stash before the operation begins, and " -"apply it after the operation ends. This means that you can run rebase on a " -"dirty worktree. However, use with care: the final stash application after a " -"successful rebase might result in non-trivial conflicts." +"Which ref to manipulate notes from, instead of `refs/notes/commits`. This " +"overrides the `core.notesRef` setting." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:450 en/merge-options.txt:35 +#: en/git-notes.txt:379 #, no-wrap -msgid "--no-ff" +msgid "`GIT_NOTES_DISPLAY_REF`" msgstr "" #. type: Plain text -#: en/git-rebase.txt:454 +#: en/git-notes.txt:385 msgid "" -"With --interactive, cherry-pick all rebased commits instead of " -"fast-forwarding over the unchanged ones. This ensures that the entire " -"history of the rebased branch is composed of new commits." +"Colon-delimited list of refs or globs indicating which refs, in addition to " +"the default from `core.notesRef` or `GIT_NOTES_REF`, to read notes from when " +"showing commit messages. This overrides the `notes.displayRef` setting." msgstr "" #. type: Plain text -#: en/git-rebase.txt:456 -msgid "Without --interactive, this is a synonym for --force-rebase." +#: en/git-notes.txt:388 +msgid "" +"A warning will be issued for refs that do not exist, but a glob that does " +"not match any refs is silently ignored." +msgstr "" + +#. type: Labeled list +#: en/git-notes.txt:389 +#, no-wrap +msgid "`GIT_NOTES_REWRITE_MODE`" msgstr "" #. type: Plain text -#: en/git-rebase.txt:461 +#: en/git-notes.txt:394 msgid "" -"You may find this helpful after reverting a topic branch merge, as this " -"option recreates the topic branch with fresh commits so it can be remerged " -"successfully without needing to \"revert the reversion\" (see the " -"link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for " -"details)." +"When copying notes during a rewrite, what to do if the target commit already " +"has a note. Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or " +"`ignore`. This overrides the `core.rewriteMode` setting." msgstr "" -#. type: Title - -#: en/git-rebase.txt:465 en/git-symbolic-ref.txt:54 +#. type: Labeled list +#: en/git-notes.txt:395 #, no-wrap -msgid "NOTES" +msgid "`GIT_NOTES_REWRITE_REF`" msgstr "" #. type: Plain text -#: en/git-rebase.txt:470 +#: en/git-notes.txt:399 msgid "" -"You should understand the implications of using 'git rebase' on a repository " -"that you share. See also RECOVERING FROM UPSTREAM REBASE below." +"When rewriting commits, which notes to copy from the original to the " +"rewritten commit. Must be a colon-delimited list of refs or globs." msgstr "" #. type: Plain text -#: en/git-rebase.txt:475 +#: en/git-notes.txt:402 msgid "" -"When the git-rebase command is run, it will first execute a \"pre-rebase\" " -"hook if one exists. You can use this hook to do sanity checks and reject " -"the rebase if it isn't appropriate. Please see the template pre-rebase hook " -"script for an example." +"If not set in the environment, the list of notes to copy depends on the " +"`notes.rewrite.<command>` and `notes.rewriteRef` settings." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:477 -msgid "Upon completion, <branch> will be the current branch." +#. type: Title = +#: en/git-p4.txt:2 +#, no-wrap +msgid "git-p4(1)" msgstr "" -#. type: Title - -#: en/git-rebase.txt:479 -#, no-wrap -msgid "INTERACTIVE MODE" +#. type: Plain text +#: en/git-p4.txt:7 +msgid "git-p4 - Import from and submit to Perforce repositories" msgstr "" #. type: Plain text -#: en/git-rebase.txt:484 +#: en/git-p4.txt:16 +#, no-wrap msgid "" -"Rebasing interactively means that you have a chance to edit the commits " -"which are rebased. You can reorder the commits, and you can remove them " -"(weeding out bad or otherwise unwanted patches)." +"'git p4 clone' [<sync options>] [<clone options>] <p4 depot path>...\n" +"'git p4 sync' [<sync options>] [<p4 depot path>...]\n" +"'git p4 rebase'\n" +"'git p4 submit' [<submit options>] [<master branch name>]\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:486 -msgid "The interactive mode is meant for this type of workflow:" +#: en/git-p4.txt:22 +msgid "This command provides a way to interact with p4 repositories using Git." msgstr "" #. type: Plain text -#: en/git-rebase.txt:488 -msgid "have a wonderful idea" +#: en/git-p4.txt:30 +msgid "" +"Create a new Git repository from an existing p4 repository using 'git p4 " +"clone', giving it one or more p4 depot paths. Incorporate new commits from " +"p4 changes with 'git p4 sync'. The 'sync' command is also used to include " +"new branches from other p4 depot paths. Submit Git changes back to p4 using " +"'git p4 submit'. The command 'git p4 rebase' does a sync plus rebases the " +"current branch onto the updated p4 remote branch." msgstr "" #. type: Plain text -#: en/git-rebase.txt:489 -msgid "hack on the code" +#: en/git-p4.txt:35 +msgid "Clone a repository:" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:490 -msgid "prepare a series for submission" +#. type: delimited block - +#: en/git-p4.txt:38 en/git-p4.txt:71 +#, no-wrap +msgid "$ git p4 clone //depot/path/project\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:491 -msgid "submit" +#: en/git-p4.txt:41 +msgid "Do some work in the newly created Git repository:" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:493 -msgid "where point 2. consists of several instances of" +#. type: delimited block - +#: en/git-p4.txt:46 +#, no-wrap +msgid "" +"$ cd project\n" +"$ vi foo.h\n" +"$ git commit -a -m \"edited foo.h\"\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:495 -msgid "regular use" +#: en/git-p4.txt:50 +msgid "" +"Update the Git repository with recent changes from p4, rebasing your work on " +"top:" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:497 -msgid "finish something worthy of a commit" +#. type: delimited block - +#: en/git-p4.txt:53 en/git-p4.txt:130 +#, no-wrap +msgid "$ git p4 rebase\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:498 -msgid "commit" +#: en/git-p4.txt:56 +msgid "Submit your commits back to p4:" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:500 -msgid "independent fixup" +#. type: delimited block - +#: en/git-p4.txt:59 en/git-p4.txt:145 +#, no-wrap +msgid "$ git p4 submit\n" +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:66 +#, no-wrap +msgid "Clone" msgstr "" #. type: Plain text -#: en/git-rebase.txt:502 -msgid "realize that something does not work" +#: en/git-p4.txt:69 +msgid "" +"Generally, 'git p4 clone' is used to create a new Git directory from an " +"existing p4 repository:" msgstr "" #. type: Plain text -#: en/git-rebase.txt:503 -msgid "fix that" +#: en/git-p4.txt:73 +msgid "This:" msgstr "" #. type: Plain text -#: en/git-rebase.txt:504 -msgid "commit it" +#: en/git-p4.txt:75 +msgid "Creates an empty Git repository in a subdirectory called 'project'." msgstr "" #. type: Plain text -#: en/git-rebase.txt:510 +#: en/git-p4.txt:78 msgid "" -"Sometimes the thing fixed in b.2. cannot be amended to the not-quite perfect " -"commit it fixes, because that commit is buried deeply in a patch series. " -"That is exactly what interactive rebase is for: use it after plenty of " -"\"a\"s and \"b\"s, by rearranging and editing commits, and squashing " -"multiple commits into one." +"Imports the full contents of the head revision from the given p4 depot path " +"into a single commit in the Git branch 'refs/remotes/p4/master'." msgstr "" #. type: Plain text -#: en/git-rebase.txt:512 -msgid "Start it with the last commit you want to retain as-is:" +#: en/git-p4.txt:80 +msgid "Creates a local branch, 'master' from this remote and checks it out." msgstr "" #. type: Plain text -#: en/git-rebase.txt:514 +#: en/git-p4.txt:83 +msgid "" +"To reproduce the entire p4 history in Git, use the '@all' modifier on the " +"depot path:" +msgstr "" + +#. type: delimited block - +#: en/git-p4.txt:85 #, no-wrap -msgid "\tgit rebase -i <after-this-commit>\n" +msgid "$ git p4 clone //depot/path/project@all\n" +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:89 +#, no-wrap +msgid "Sync" msgstr "" #. type: Plain text -#: en/git-rebase.txt:519 +#: en/git-p4.txt:92 msgid "" -"An editor will be fired up with all the commits in your current branch " -"(ignoring merge commits), which come after the given commit. You can " -"reorder the commits in this list to your heart's content, and you can remove " -"them. The list looks more or less like this:" +"As development continues in the p4 repository, those changes can be included " +"in the Git repository using:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:524 +#: en/git-p4.txt:94 #, no-wrap -msgid "" -"pick deadbee The oneline of this commit\n" -"pick fa1afe1 The oneline of the next commit\n" -"...\n" +msgid "$ git p4 sync\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:529 -msgid "" -"The oneline descriptions are purely for your pleasure; 'git rebase' will not " -"look at them but at the commit names (\"deadbee\" and \"fa1afe1\" in this " -"example), so do not delete or edit the names." +#: en/git-p4.txt:96 +msgid "This command finds new changes in p4 and imports them as Git commits." msgstr "" #. type: Plain text -#: en/git-rebase.txt:534 +#: en/git-p4.txt:99 msgid "" -"By replacing the command \"pick\" with the command \"edit\", you can tell " -"'git rebase' to stop after applying that commit, so that you can edit the " -"files and/or the commit message, amend the commit, and continue rebasing." +"P4 repositories can be added to an existing Git repository using 'git p4 " +"sync' too:" msgstr "" -#. type: Plain text -#: en/git-rebase.txt:537 +#. type: delimited block - +#: en/git-p4.txt:104 +#, no-wrap msgid "" -"If you just want to edit the commit message for a commit, replace the " -"command \"pick\" with the command \"reword\"." +"$ mkdir repo-git\n" +"$ cd repo-git\n" +"$ git init\n" +"$ git p4 sync //path/in/your/perforce/depot\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:540 +#: en/git-p4.txt:109 msgid "" -"To drop a commit, replace the command \"pick\" with \"drop\", or just delete " -"the matching line." +"This imports the specified depot into 'refs/remotes/p4/master' in an " +"existing Git repository. The `--branch` option can be used to specify a " +"different branch to be used for the p4 content." msgstr "" #. type: Plain text -#: en/git-rebase.txt:548 +#: en/git-p4.txt:114 msgid "" -"If you want to fold two or more commits into one, replace the command " -"\"pick\" for the second and subsequent commits with \"squash\" or " -"\"fixup\". If the commits had different authors, the folded commit will be " -"attributed to the author of the first commit. The suggested commit message " -"for the folded commit is the concatenation of the commit messages of the " -"first commit and of those with the \"squash\" command, but omits the commit " -"messages of commits with the \"fixup\" command." +"If a Git repository includes branches 'refs/remotes/origin/p4', these will " +"be fetched and consulted first during a 'git p4 sync'. Since importing " +"directly from p4 is considerably slower than pulling changes from a Git " +"remote, this can be useful in a multi-developer environment." msgstr "" #. type: Plain text -#: en/git-rebase.txt:552 +#: en/git-p4.txt:119 msgid "" -"'git rebase' will stop when \"pick\" has been replaced with \"edit\" or when " -"a command fails due to merge errors. When you are done editing and/or " -"resolving conflicts you can continue with `git rebase --continue`." +"If there are multiple branches, doing 'git p4 sync' will automatically use " +"the \"BRANCH DETECTION\" algorithm to try to partition new changes into the " +"right branch. This can be overridden with the `--branch` option to specify " +"just a single branch to update." +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:122 +#, no-wrap +msgid "Rebase" msgstr "" #. type: Plain text -#: en/git-rebase.txt:556 +#: en/git-p4.txt:128 msgid "" -"For example, if you want to reorder the last 5 commits, such that what was " -"HEAD~4 becomes the new HEAD. To achieve that, you would call 'git rebase' " -"like this:" +"A common working pattern is to fetch the latest changes from the p4 depot " +"and merge them with local uncommitted changes. Often, the p4 repository is " +"the ultimate location for all code, thus a rebase workflow makes sense. " +"This command does 'git p4 sync' followed by 'git rebase' to move local " +"commits on top of updated p4 changes." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:559 +#. type: Title ~ +#: en/git-p4.txt:134 #, no-wrap -msgid "$ git rebase -i HEAD~5\n" +msgid "Submit" msgstr "" #. type: Plain text -#: en/git-rebase.txt:562 -msgid "And move the first patch to the end of the list." +#: en/git-p4.txt:140 +msgid "" +"Submitting changes from a Git repository back to the p4 repository requires " +"a separate p4 client workspace. This should be specified using the " +"`P4CLIENT` environment variable or the Git configuration variable 'git-p4." +"client'. The p4 client must exist, but the client root will be created and " +"populated if it does not already exist." msgstr "" #. type: Plain text -#: en/git-rebase.txt:564 -msgid "You might want to preserve merges, if you have a history like this:" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:571 -#, no-wrap +#: en/git-p4.txt:143 msgid "" -" X\n" -" \\\n" -" A---M---B\n" -" /\n" -"---o---O---P---Q\n" +"To submit all changes that are in the current Git branch but not in the 'p4/" +"master' branch, use:" msgstr "" #. type: Plain text -#: en/git-rebase.txt:575 -msgid "" -"Suppose you want to rebase the side branch starting at \"A\" to \"Q\". Make " -"sure that the current HEAD is \"B\", and call" +#: en/git-p4.txt:148 +msgid "To specify a branch other than the current one, use:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:578 +#: en/git-p4.txt:150 #, no-wrap -msgid "$ git rebase -i -p --onto Q O\n" +msgid "$ git p4 submit topicbranch\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:585 -msgid "" -"Reordering and editing commits usually creates untested intermediate steps. " -"You may want to check that your history editing did not break anything by " -"running a test, or at least recompiling at intermediate points in history by " -"using the \"exec\" command (shortcut \"x\"). You may do so by creating a " -"todo list like this one:" +#: en/git-p4.txt:153 +msgid "To specify a single commit or a range of commits, use:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:594 +#: en/git-p4.txt:156 #, no-wrap msgid "" -"pick deadbee Implement feature XXX\n" -"fixup f1a5c00 Fix to feature XXX\n" -"exec make\n" -"pick c0ffeee The oneline of the next commit\n" -"edit deadbab The oneline of the commit after\n" -"exec cd subdir; make test\n" -"...\n" +"$ git p4 submit --commit <sha1>\n" +"$ git p4 submit --commit <sha1..sha1>\n" msgstr "" #. type: Plain text -#: en/git-rebase.txt:599 +#: en/git-p4.txt:160 msgid "" -"The interactive rebase will stop when a command fails (i.e. exits with non-0 " -"status) to give you an opportunity to fix the problem. You can continue with " -"`git rebase --continue`." +"The upstream reference is generally 'refs/remotes/p4/master', but can be " +"overridden using the `--origin=` command-line option." msgstr "" #. type: Plain text -#: en/git-rebase.txt:604 +#: en/git-p4.txt:165 msgid "" -"The \"exec\" command launches the command in a shell (the one specified in " -"`$SHELL`, or the default shell if `$SHELL` is not set), so you can use shell " -"features (like \"cd\", \">\", \";\" ...). The command is run from the root " -"of the working tree." -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:607 -#, no-wrap -msgid "$ git rebase -i --exec \"make test\"\n" +"The p4 changes will be created as the user invoking 'git p4 submit'. The `--" +"preserve-user` option will cause ownership to be modified according to the " +"author of the Git commit. This option requires admin privileges in p4, " +"which can be granted using 'p4 protect'." msgstr "" #. type: Plain text -#: en/git-rebase.txt:611 +#: en/git-p4.txt:167 msgid "" -"This command lets you check that intermediate commits are compilable. The " -"todo list becomes like that:" +"To shelve changes instead of submitting, use `--shelve` and `--update-" +"shelve`:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:621 +#: en/git-p4.txt:171 #, no-wrap msgid "" -"pick 5928aea one\n" -"exec make test\n" -"pick 04d0fda two\n" -"exec make test\n" -"pick ba46169 three\n" -"exec make test\n" -"pick f4593f9 four\n" -"exec make test\n" +"$ git p4 submit --shelve\n" +"$ git p4 submit --update-shelve 1234 --update-shelve 2345\n" msgstr "" -#. type: Title - -#: en/git-rebase.txt:624 +#. type: Title ~ +#: en/git-p4.txt:175 #, no-wrap -msgid "SPLITTING COMMITS" +msgid "Unshelve" msgstr "" #. type: Plain text -#: en/git-rebase.txt:630 +#: en/git-p4.txt:178 msgid "" -"In interactive mode, you can mark commits with the action \"edit\". " -"However, this does not necessarily mean that 'git rebase' expects the result " -"of this edit to be exactly one commit. Indeed, you can undo the commit, or " -"you can add other commits. This can be used to split a commit into two:" +"Unshelving will take a shelved P4 changelist, and produce the equivalent git " +"commit in the branch refs/remotes/p4-unshelved/<changelist>." msgstr "" #. type: Plain text -#: en/git-rebase.txt:634 +#: en/git-p4.txt:182 msgid "" -"Start an interactive rebase with `git rebase -i <commit>^`, where <commit> " -"is the commit you want to split. In fact, any commit range will do, as long " -"as it contains that commit." +"The git commit is created relative to the current origin revision (HEAD by " +"default). A parent commit is created based on the origin, and then the " +"unshelve commit is created based on that." msgstr "" #. type: Plain text -#: en/git-rebase.txt:636 -msgid "Mark the commit you want to split with the action \"edit\"." +#: en/git-p4.txt:184 +msgid "The origin revision can be changed with the \"--origin\" option." msgstr "" #. type: Plain text -#: en/git-rebase.txt:640 +#: en/git-p4.txt:187 msgid "" -"When it comes to editing that commit, execute `git reset HEAD^`. The effect " -"is that the HEAD is rewound by one, and the index follows suit. However, " -"the working tree stays the same." +"If the target branch in refs/remotes/p4-unshelved already exists, the old " +"one will be renamed." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:644 +#. type: delimited block - +#: en/git-p4.txt:195 +#, no-wrap msgid "" -"Now add the changes to the index that you want to have in the first commit. " -"You can use `git add` (possibly interactively) or 'git gui' (or both) to do " -"that." +"$ git p4 sync\n" +"$ git p4 unshelve 12345\n" +"$ git show p4-unshelved/12345\n" +"<submit more changes via p4 to the same files>\n" +"$ git p4 unshelve 12345\n" +"<refuses to unshelve until git is in sync with p4 again>\n" +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:202 +#, no-wrap +msgid "General options" msgstr "" #. type: Plain text -#: en/git-rebase.txt:647 -msgid "" -"Commit the now-current index with whatever commit message is appropriate " -"now." +#: en/git-p4.txt:204 +msgid "All commands except clone accept these options." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:205 +#, no-wrap +msgid "--git-dir <dir>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:649 -msgid "Repeat the last two steps until your working tree is clean." +#: en/git-p4.txt:207 +msgid "Set the `GIT_DIR` environment variable. See linkgit:git[1]." msgstr "" #. type: Plain text -#: en/git-rebase.txt:651 -msgid "Continue the rebase with `git rebase --continue`." +#: en/git-p4.txt:211 +msgid "Provide more progress information." +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:213 +#, no-wrap +msgid "Sync options" msgstr "" #. type: Plain text -#: en/git-rebase.txt:656 +#: en/git-p4.txt:216 msgid "" -"If you are not absolutely sure that the intermediate revisions are " -"consistent (they compile, pass the testsuite, etc.) you should use 'git " -"stash' to stash away the not-yet-committed changes after each commit, test, " -"and amend the commit if fixes are necessary." +"These options can be used in the initial 'clone' as well as in subsequent " +"'sync' operations." msgstr "" -#. type: Title - -#: en/git-rebase.txt:659 +#. type: Labeled list +#: en/git-p4.txt:217 #, no-wrap -msgid "RECOVERING FROM UPSTREAM REBASE" +msgid "--branch <ref>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:666 +#: en/git-p4.txt:221 msgid "" -"Rebasing (or any other form of rewriting) a branch that others have based " -"work on is a bad idea: anyone downstream of it is forced to manually fix " -"their history. This section explains how to do the fix from the " -"downstream's point of view. The real fix, however, would be to avoid " -"rebasing the upstream in the first place." +"Import changes into <ref> instead of refs/remotes/p4/master. If <ref> " +"starts with refs/, it is used as is. Otherwise, if it does not start with " +"p4/, that prefix is added." msgstr "" #. type: Plain text -#: en/git-rebase.txt:671 +#: en/git-p4.txt:225 msgid "" -"To illustrate, suppose you are in a situation where someone develops a " -"'subsystem' branch, and you are working on a 'topic' that is dependent on " -"this 'subsystem'. You might end up with a history like the following:" +"By default a <ref> not starting with refs/ is treated as the name of a " +"remote-tracking branch (under refs/remotes/). This behavior can be modified " +"using the --import-local option." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:678 -#, no-wrap -msgid "" -" o---o---o---o---o---o---o---o---o master\n" -"\t \\\n" -"\t o---o---o---o---o subsystem\n" -"\t\t\t \\\n" -"\t\t\t *---*---* topic\n" +#. type: Plain text +#: en/git-p4.txt:227 +msgid "The default <ref> is \"master\"." msgstr "" #. type: Plain text -#: en/git-rebase.txt:681 -msgid "If 'subsystem' is rebased against 'master', the following happens:" +#: en/git-p4.txt:230 +msgid "" +"This example imports a new remote \"p4/proj2\" into an existing Git " +"repository:" msgstr "" #. type: delimited block - -#: en/git-rebase.txt:688 +#: en/git-p4.txt:234 #, no-wrap msgid "" -" o---o---o---o---o---o---o---o master\n" -"\t \\\t\t\t \\\n" -"\t o---o---o---o---o\t o'--o'--o'--o'--o' subsystem\n" -"\t\t\t \\\n" -"\t\t\t *---*---* topic\n" +" $ git init\n" +" $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2\n" +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:236 +#, no-wrap +msgid "--detect-branches" msgstr "" #. type: Plain text -#: en/git-rebase.txt:692 +#: en/git-p4.txt:239 msgid "" -"If you now continue development as usual, and eventually merge 'topic' to " -"'subsystem', the commits from 'subsystem' will remain duplicated forever:" +"Use the branch detection algorithm to find new paths in p4. It is " +"documented below in \"BRANCH DETECTION\"." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:699 +#. type: Labeled list +#: en/git-p4.txt:240 #, no-wrap -msgid "" -" o---o---o---o---o---o---o---o master\n" -"\t \\\t\t\t \\\n" -"\t o---o---o---o---o\t o'--o'--o'--o'--o'--M\t subsystem\n" -"\t\t\t \\\t\t\t /\n" -"\t\t\t *---*---*-..........-*--* topic\n" +msgid "--changesfile <file>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:706 +#: en/git-p4.txt:244 msgid "" -"Such duplicates are generally frowned upon because they clutter up history, " -"making it harder to follow. To clean things up, you need to transplant the " -"commits on 'topic' to the new 'subsystem' tip, i.e., rebase 'topic'. This " -"becomes a ripple effect: anyone downstream from 'topic' is forced to rebase " -"too, and so on!" +"Import exactly the p4 change numbers listed in 'file', one per line. " +"Normally, 'git p4' inspects the current p4 repository state and detects the " +"changes it should import." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:245 +#, no-wrap +msgid "--silent" msgstr "" #. type: Plain text -#: en/git-rebase.txt:708 -msgid "There are two kinds of fixes, discussed in the following subsections:" +#: en/git-p4.txt:247 +msgid "Do not print any progress information." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:709 +#: en/git-p4.txt:248 #, no-wrap -msgid "Easy case: The changes are literally the same." +msgid "--detect-labels" msgstr "" #. type: Plain text -#: en/git-rebase.txt:713 +#: en/git-p4.txt:252 msgid "" -"This happens if the 'subsystem' rebase was a simple rebase and had no " -"conflicts." +"Query p4 for labels associated with the depot paths, and add them as tags in " +"Git. Limited usefulness as only imports labels associated with new " +"changelists. Deprecated." msgstr "" #. type: Labeled list -#: en/git-rebase.txt:714 +#: en/git-p4.txt:253 en/git-p4.txt:389 #, no-wrap -msgid "Hard case: The changes are not the same." +msgid "--import-labels" msgstr "" #. type: Plain text -#: en/git-rebase.txt:720 -msgid "" -"This happens if the 'subsystem' rebase had conflicts, or used " -"`--interactive` to omit, edit, squash, or fixup commits; or if the upstream " -"used one of `commit --amend`, `reset`, or `filter-branch`." +#: en/git-p4.txt:255 +msgid "Import labels from p4 into Git." msgstr "" -#. type: Title ~ -#: en/git-rebase.txt:723 +#. type: Labeled list +#: en/git-p4.txt:256 #, no-wrap -msgid "The easy case" +msgid "--import-local" msgstr "" #. type: Plain text -#: en/git-rebase.txt:728 +#: en/git-p4.txt:263 msgid "" -"Only works if the changes (patch IDs based on the diff contents) on " -"'subsystem' are literally the same before and after the rebase 'subsystem' " -"did." +"By default, p4 branches are stored in 'refs/remotes/p4/', where they will be " +"treated as remote-tracking branches by linkgit:git-branch[1] and other " +"commands. This option instead puts p4 branches in 'refs/heads/p4/'. Note " +"that future sync operations must specify `--import-local` as well so that " +"they can find the p4 branches in refs/heads." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:264 +#, no-wrap +msgid "--max-changes <n>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:732 +#: en/git-p4.txt:270 msgid "" -"In that case, the fix is easy because 'git rebase' knows to skip changes " -"that are already present in the new upstream. So if you say (assuming " -"you're on 'topic')" +"Import at most 'n' changes, rather than the entire range of changes included " +"in the given revision specifier. A typical usage would be use '@all' as the " +"revision specifier, but then to use '--max-changes 1000' to import only the " +"last 1000 revisions rather than the entire revision history." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:734 +#. type: Labeled list +#: en/git-p4.txt:271 #, no-wrap -msgid " $ git rebase subsystem\n" +msgid "--changes-block-size <n>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:736 -msgid "you will end up with the fixed history" -msgstr "" - -#. type: delimited block - -#: en/git-rebase.txt:742 -#, no-wrap +#: en/git-p4.txt:279 msgid "" -" o---o---o---o---o---o---o---o master\n" -"\t\t\t\t \\\n" -"\t\t\t\t o'--o'--o'--o'--o' subsystem\n" -"\t\t\t\t\t\t \\\n" -"\t\t\t\t\t\t *---*---* topic\n" +"The internal block size to use when converting a revision specifier such as " +"'@all' into a list of specific change numbers. Instead of using a single " +"call to 'p4 changes' to find the full list of changes for the conversion, " +"there are a sequence of calls to 'p4 changes -m', each of which requests one " +"block of changes of the given size. The default block size is 500, which " +"should usually be suitable." msgstr "" -#. type: Title ~ -#: en/git-rebase.txt:746 +#. type: Labeled list +#: en/git-p4.txt:280 #, no-wrap -msgid "The hard case" +msgid "--keep-path" msgstr "" #. type: Plain text -#: en/git-rebase.txt:750 +#: en/git-p4.txt:287 msgid "" -"Things get more complicated if the 'subsystem' changes do not exactly " -"correspond to the ones before the rebase." +"The mapping of file names from the p4 depot path to Git, by default, " +"involves removing the entire depot path. With this option, the full p4 " +"depot path is retained in Git. For example, path '//depot/main/foo/bar.c', " +"when imported from '//depot/main/', becomes 'foo/bar.c'. With `--keep-" +"path`, the Git path is instead 'depot/main/foo/bar.c'." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:755 +#. type: Labeled list +#: en/git-p4.txt:288 #, no-wrap -msgid "" -"While an \"easy case recovery\" sometimes appears to be successful\n" -" even in the hard case, it may have unintended consequences. For\n" -" example, a commit that was removed via `git rebase\n" -" --interactive` will be **resurrected**!\n" +msgid "--use-client-spec" msgstr "" #. type: Plain text -#: en/git-rebase.txt:760 +#: en/git-p4.txt:291 msgid "" -"The idea is to manually tell 'git rebase' \"where the old 'subsystem' ended " -"and your 'topic' began\", that is, what the old merge-base between them " -"was. You will have to find a way to name the last commit of the old " -"'subsystem', for example:" +"Use a client spec to find the list of interesting files in p4. See the " +"\"CLIENT SPEC\" section below." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:764 -msgid "" -"With the 'subsystem' reflog: after 'git fetch', the old tip of 'subsystem' " -"is at `subsystem@{1}`. Subsequent fetches will increase the number. (See " -"linkgit:git-reflog[1].)" +#. type: Labeled list +#: en/git-p4.txt:292 +#, no-wrap +msgid "-/ <path>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:767 -msgid "" -"Relative to the tip of 'topic': knowing that your 'topic' has three commits, " -"the old tip of 'subsystem' must be `topic~3`." +#: en/git-p4.txt:294 +msgid "Exclude selected depot paths when cloning or syncing." +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:296 +#, no-wrap +msgid "Clone options" msgstr "" #. type: Plain text -#: en/git-rebase.txt:770 +#: en/git-p4.txt:299 msgid "" -"You can then transplant the old `subsystem..topic` to the new tip by saying " -"(for the reflog case, and assuming you are on 'topic' already):" +"These options can be used in an initial 'clone', along with the 'sync' " +"options described above." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:772 +#. type: Labeled list +#: en/git-p4.txt:300 #, no-wrap -msgid " $ git rebase --onto subsystem subsystem@{1}\n" +msgid "--destination <directory>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:777 +#: en/git-p4.txt:304 msgid "" -"The ripple effect of a \"hard case\" recovery is especially bad: 'everyone' " -"downstream from 'topic' will now have to perform a \"hard case\" recovery " -"too!" +"Where to create the Git repository. If not provided, the last component in " +"the p4 depot path is used to create a new directory." msgstr "" #. type: Plain text -#: en/git-rebase.txt:784 -msgid "" -"The todo list presented by `--preserve-merges --interactive` does not " -"represent the topology of the revision graph. Editing commits and rewording " -"their commit messages should work fine, but attempts to reorder commits tend " -"to produce counterintuitive results." +#: en/git-p4.txt:307 +msgid "Perform a bare clone. See linkgit:git-clone[1]." msgstr "" -#. type: Plain text -#: en/git-rebase.txt:786 -msgid "For example, an attempt to rearrange" +#. type: Title ~ +#: en/git-p4.txt:309 +#, no-wrap +msgid "Submit options" msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:788 -#, no-wrap -msgid "1 --- 2 --- 3 --- 4 --- 5\n" +#. type: Plain text +#: en/git-p4.txt:311 +msgid "These options can be used to modify 'git p4 submit' behavior." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:792 +#. type: Labeled list +#: en/git-p4.txt:312 #, no-wrap -msgid "1 --- 2 --- 4 --- 3 --- 5\n" +msgid "--origin <commit>" msgstr "" #. type: Plain text -#: en/git-rebase.txt:794 -msgid "by moving the \"pick 4\" line will result in the following history:" +#: en/git-p4.txt:316 +msgid "" +"Upstream location from which commits are identified to submit to p4. By " +"default, this is the most recent p4 commit reachable from `HEAD`." msgstr "" -#. type: delimited block - -#: en/git-rebase.txt:798 -#, no-wrap +#. type: Plain text +#: en/git-p4.txt:322 msgid "" -"\t3\n" -" /\n" -"1 --- 2 --- 4 --- 5\n" +"Detect renames. See linkgit:git-diff[1]. Renames will be represented in p4 " +"using explicit 'move' operations. There is no corresponding option to " +"detect copies, but there are variables for both moves and copies." msgstr "" -#. type: Title = -#: en/git-receive-pack.txt:2 +#. type: Labeled list +#: en/git-p4.txt:323 #, no-wrap -msgid "git-receive-pack(1)" +msgid "--preserve-user" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:7 -msgid "git-receive-pack - Receive what is pushed into the repository" +#: en/git-p4.txt:326 +msgid "" +"Re-author p4 changes before submitting to p4. This option requires p4 admin " +"privileges." msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:13 +#. type: Labeled list +#: en/git-p4.txt:327 #, no-wrap -msgid "'git-receive-pack' <directory>\n" +msgid "--export-labels" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:18 +#: en/git-p4.txt:330 msgid "" -"Invoked by 'git send-pack' and updates the repository with the information " -"fed from the remote end." +"Export tags from Git as p4 labels. Tags found in Git are applied to the " +"perforce working directory." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:23 +#: en/git-p4.txt:335 msgid "" -"This command is usually not invoked directly by the end user. The UI for " -"the protocol is on the 'git send-pack' side, and the program pair is meant " -"to be used to push updates to remote repository. For pull operations, see " -"linkgit:git-fetch-pack[1]." +"Show just what commits would be submitted to p4; do not change state in Git " +"or p4." msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:28 -msgid "" -"The command allows for creation and fast-forwarding of sha1 refs " -"(heads/tags) on the remote end (strictly speaking, it is the local end " -"'git-receive-pack' runs, but to the user who is sitting at the send-pack " -"end, it is updating the remote. Confused?)" +#. type: Labeled list +#: en/git-p4.txt:336 +#, no-wrap +msgid "--prepare-p4-only" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:31 +#: en/git-p4.txt:342 msgid "" -"There are other real-world examples of using update and post-update hooks " -"found in the Documentation/howto directory." +"Apply a commit to the p4 workspace, opening, adding and deleting files in p4 " +"as for a normal submit operation. Do not issue the final \"p4 submit\", but " +"instead print a message about how to submit manually or revert. This option " +"always stops after the first (oldest) commit. Git tags are not exported to " +"p4." msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:35 -msgid "" -"'git-receive-pack' honours the receive.denyNonFastForwards config option, " -"which tells it if updates to a ref should be denied if they are not " -"fast-forwards." +#. type: Labeled list +#: en/git-p4.txt:343 +#, no-wrap +msgid "--shelve" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:38 +#: en/git-p4.txt:347 msgid "" -"A number of other receive.* config options are available to tweak its " -"behavior, see linkgit:git-config[1]." -msgstr "" - -#. type: Plain text -#: en/git-receive-pack.txt:43 -msgid "The repository to sync into." +"Instead of submitting create a series of shelved changelists. After " +"creating each shelve, the relevant files are reverted/deleted. If you have " +"multiple commits pending multiple shelves will be created." msgstr "" -#. type: Title - -#: en/git-receive-pack.txt:45 +#. type: Labeled list +#: en/git-p4.txt:348 #, no-wrap -msgid "pre-receive Hook" +msgid "--update-shelve CHANGELIST" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:49 +#: en/git-p4.txt:351 msgid "" -"Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists and is " -"executable, it will be invoked once with no parameters. The standard input " -"of the hook will be one line per ref to be updated:" +"Update an existing shelved changelist with this commit. Implies --shelve. " +"Repeat for multiple shelved changelists." msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:51 en/git-receive-pack.txt:148 +#. type: Labeled list +#: en/git-p4.txt:352 #, no-wrap -msgid " sha1-old SP sha1-new SP refname LF\n" +msgid "--conflict=(ask|skip|quit)" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:58 +#: en/git-p4.txt:358 msgid "" -"The refname value is relative to $GIT_DIR; e.g. for the master head this is " -"\"refs/heads/master\". The two sha1 values before each refname are the " -"object names for the refname before and after the update. Refs to be " -"created will have sha1-old equal to 0\\{40}, while refs to be deleted will " -"have sha1-new equal to 0\\{40}, otherwise sha1-old and sha1-new should be " -"valid objects in the repository." +"Conflicts can occur when applying a commit to p4. When this happens, the " +"default behavior (\"ask\") is to prompt whether to skip this commit and " +"continue, or quit. This option can be used to bypass the prompt, causing " +"conflicting commits to be automatically skipped, or to quit trying to apply " +"commits, without prompting." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:359 +#, no-wrap +msgid "--branch <branch>" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:65 +#: en/git-p4.txt:363 msgid "" -"When accepting a signed push (see linkgit:git-push[1]), the signed push " -"certificate is stored in a blob and an environment variable `GIT_PUSH_CERT` " -"can be consulted for its object name. See the description of `post-receive` " -"hook for an example. In addition, the certificate is verified using GPG and " -"the result is exported with the following environment variables:" +"After submitting, sync this named branch instead of the default p4/master. " +"See the \"Sync options\" section above for more information." msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:66 +#: en/git-p4.txt:364 #, no-wrap -msgid "`GIT_PUSH_CERT_SIGNER`" +msgid "--commit <sha1>|<sha1..sha1>" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:69 +#: en/git-p4.txt:367 msgid "" -"The name and the e-mail address of the owner of the key that signed the push " -"certificate." +"Submit only the specified commit or range of commits, instead of the full " +"list of changes that are in the current Git branch." msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:70 +#: en/git-p4.txt:368 #, no-wrap -msgid "`GIT_PUSH_CERT_KEY`" +msgid "--disable-rebase" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:72 -msgid "The GPG key ID of the key that signed the push certificate." +#: en/git-p4.txt:371 +msgid "" +"Disable the automatic rebase after all commits have been successfully " +"submitted. Can also be set with git-p4.disableRebase." msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:73 +#: en/git-p4.txt:372 #, no-wrap -msgid "`GIT_PUSH_CERT_STATUS`" +msgid "--disable-p4sync" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:77 +#: en/git-p4.txt:376 msgid "" -"The status of GPG verification of the push certificate, using the same " -"mnemonic as used in `%G?` format of `git log` family of commands (see " -"linkgit:git-log[1])." +"Disable the automatic sync of p4/master from Perforce after commits have " +"been submitted. Implies --disable-rebase. Can also be set with git-p4." +"disableP4Sync. Sync with origin/master still goes ahead if possible." msgstr "" -#. type: Labeled list -#: en/git-receive-pack.txt:78 +#. type: Title ~ +#: en/git-p4.txt:378 #, no-wrap -msgid "`GIT_PUSH_CERT_NONCE`" +msgid "Hook for submit" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:84 +#: en/git-p4.txt:382 msgid "" -"The nonce string the process asked the signer to include in the push " -"certificate. If this does not match the value recorded on the \"nonce\" " -"header in the push certificate, it may indicate that the certificate is a " -"valid one that is being replayed from a separate \"git push\" session." +"The `p4-pre-submit` hook is executed if it exists and is executable. The " +"hook takes no parameters and nothing from standard input. Exiting with non-" +"zero status from this script prevents `git-p4 submit` from launching." msgstr "" -#. type: Labeled list -#: en/git-receive-pack.txt:85 -#, no-wrap -msgid "`GIT_PUSH_CERT_NONCE_STATUS`" +#. type: Plain text +#: en/git-p4.txt:384 +msgid "One usage scenario is to run unit tests in the hook." msgstr "" -#. type: Labeled list -#: en/git-receive-pack.txt:86 +#. type: Title ~ +#: en/git-p4.txt:386 #, no-wrap -msgid "`UNSOLICITED`" +msgid "Rebase options" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:89 -msgid "\"git push --signed\" sent a nonce when we did not ask it to send one." +#: en/git-p4.txt:388 +msgid "These options can be used to modify 'git p4 rebase' behavior." +msgstr "" + +#. type: Plain text +#: en/git-p4.txt:391 +msgid "Import p4 labels." +msgstr "" + +#. type: Title ~ +#: en/git-p4.txt:393 +#, no-wrap +msgid "Unshelve options" msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:89 +#: en/git-p4.txt:395 #, no-wrap -msgid "`MISSING`" +msgid "--origin" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:91 -msgid "\"git push --signed\" did not send any nonce header." +#: en/git-p4.txt:398 +msgid "" +"Sets the git refspec against which the shelved P4 changelist is compared. " +"Defaults to p4/master." msgstr "" -#. type: Labeled list -#: en/git-receive-pack.txt:91 +#. type: Title - +#: en/git-p4.txt:400 #, no-wrap -msgid "`BAD`" +msgid "DEPOT PATH SYNTAX" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:93 -msgid "\"git push --signed\" sent a bogus nonce." +#: en/git-p4.txt:404 +msgid "" +"The p4 depot path argument to 'git p4 sync' and 'git p4 clone' can be one or " +"more space-separated p4 depot paths, with an optional p4 revision specifier " +"on the end:" msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:93 +#: en/git-p4.txt:405 #, no-wrap -msgid "`OK`" +msgid "\"//depot/my/project\"" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:95 -msgid "\"git push --signed\" sent the nonce we asked it to send." +#: en/git-p4.txt:407 +msgid "Import one commit with all files in the '#head' change under that tree." msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:95 +#: en/git-p4.txt:408 #, no-wrap -msgid "`SLOP`" +msgid "\"//depot/my/project@all\"" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:99 -msgid "" -"\"git push --signed\" sent a nonce different from what we asked it to send " -"now, but in a previous session. See `GIT_PUSH_CERT_NONCE_SLOP` environment " -"variable." +#: en/git-p4.txt:410 +msgid "Import one commit for each change in the history of that depot path." msgstr "" #. type: Labeled list -#: en/git-receive-pack.txt:100 +#: en/git-p4.txt:411 #, no-wrap -msgid "`GIT_PUSH_CERT_NONCE_SLOP`" +msgid "\"//depot/my/project@1,6\"" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:108 -msgid "" -"\"git push --signed\" sent a nonce different from what we asked it to send " -"now, but in a different session whose starting time is different by this " -"many seconds from the current session. Only meaningful when " -"`GIT_PUSH_CERT_NONCE_STATUS` says `SLOP`. Also read about " -"`receive.certNonceSlop` variable in linkgit:git-config[1]." +#: en/git-p4.txt:413 +msgid "Import only changes 1 through 6." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:414 +#, no-wrap +msgid "\"//depot/proj1@all //depot/proj2@all\"" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:111 +#: en/git-p4.txt:423 msgid "" -"This hook is called before any refname is updated and before any " -"fast-forward checks are performed." +"Import all changes from both named depot paths into a single repository. " +"Only files below these directories are included. There is not a " +"subdirectory in Git for each \"proj1\" and \"proj2\". You must use the `--" +"destination` option when specifying more than one depot path. The revision " +"specifier must be specified identically on each depot path. If there are " +"files in the depot paths with the same name, the path with the most recently " +"updated version of the file is the one that appears in Git." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:116 -msgid "" -"If the pre-receive hook exits with a non-zero exit status no updates will be " -"performed, and the update, post-receive and post-update hooks will not be " -"invoked either. This can be useful to quickly bail out if the update is not " -"to be supported." +#: en/git-p4.txt:425 +msgid "See 'p4 help revisions' for the full syntax of p4 revision specifiers." msgstr "" #. type: Title - -#: en/git-receive-pack.txt:118 +#: en/git-p4.txt:428 #, no-wrap -msgid "update Hook" +msgid "CLIENT SPEC" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:121 +#: en/git-p4.txt:438 msgid "" -"Before each ref is updated, if $GIT_DIR/hooks/update file exists and is " -"executable, it is invoked once per ref, with three parameters:" +"The p4 client specification is maintained with the 'p4 client' command and " +"contains among other fields, a View that specifies how the depot is mapped " +"into the client repository. The 'clone' and 'sync' commands can consult the " +"client spec when given the `--use-client-spec` option or when the " +"useClientSpec variable is true. After 'git p4 clone', the useClientSpec " +"variable is automatically set in the repository configuration file. This " +"allows future 'git p4 submit' commands to work properly; the submit command " +"looks only at the variable and does not have a command-line option." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:123 -#, no-wrap -msgid " $GIT_DIR/hooks/update refname sha1-old sha1-new\n" +#: en/git-p4.txt:445 +msgid "" +"The full syntax for a p4 view is documented in 'p4 help views'. 'git p4' " +"knows only a subset of the view syntax. It understands multi-line mappings, " +"overlays with '+', exclusions with '-' and double-quotes around whitespace. " +"Of the possible wildcards, 'git p4' only handles '...', and only when it is " +"at the end of the path. 'git p4' will complain if it encounters an " +"unhandled wildcard." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:130 +#: en/git-p4.txt:450 msgid "" -"The refname parameter is relative to $GIT_DIR; e.g. for the master head this " -"is \"refs/heads/master\". The two sha1 arguments are the object names for " -"the refname before and after the update. Note that the hook is called " -"before the refname is updated, so either sha1-old is 0\\{40} (meaning there " -"is no such ref yet), or it should match what is recorded in refname." +"Bugs in the implementation of overlap mappings exist. If multiple depot " +"paths map through overlays to the same location in the repository, 'git p4' " +"can choose the wrong one. This is hard to solve without dedicating a client " +"spec just for 'git p4'." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:133 +#: en/git-p4.txt:455 msgid "" -"The hook should exit with non-zero status if it wants to disallow updating " -"the named ref. Otherwise it should exit with zero." -msgstr "" - -#. type: Plain text -#: en/git-receive-pack.txt:138 -msgid "" -"Successful execution (a zero exit status) of this hook does not ensure the " -"ref will actually be updated, it is only a prerequisite. As such it is not " -"a good idea to send notices (e.g. email) from this hook. Consider using the " -"post-receive hook instead." +"The name of the client can be given to 'git p4' in multiple ways. The " +"variable 'git-p4.client' takes precedence if it exists. Otherwise, normal " +"p4 mechanisms of determining the client are used: environment variable " +"`P4CLIENT`, a file referenced by `P4CONFIG`, or the local host name." msgstr "" #. type: Title - -#: en/git-receive-pack.txt:140 +#: en/git-p4.txt:458 #, no-wrap -msgid "post-receive Hook" +msgid "BRANCH DETECTION" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:146 +#: en/git-p4.txt:465 msgid "" -"After all refs were updated (or attempted to be updated), if any ref update " -"was successful, and if $GIT_DIR/hooks/post-receive file exists and is " -"executable, it will be invoked once with no parameters. The standard input " -"of the hook will be one line for each successfully updated ref:" +"P4 does not have the same concept of a branch as Git. Instead, p4 organizes " +"its content as a directory tree, where by convention different logical " +"branches are in different locations in the tree. The 'p4 branch' command is " +"used to maintain mappings between different areas in the tree, and indicate " +"related content. 'git p4' can use these mappings to determine branch " +"relationships." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:156 +#: en/git-p4.txt:470 msgid "" -"The refname value is relative to $GIT_DIR; e.g. for the master head this is " -"\"refs/heads/master\". The two sha1 values before each refname are the " -"object names for the refname before and after the update. Refs that were " -"created will have sha1-old equal to 0\\{40}, while refs that were deleted " -"will have sha1-new equal to 0\\{40}, otherwise sha1-old and sha1-new should " -"be valid objects in the repository." +"If you have a repository where all the branches of interest exist as " +"subdirectories of a single depot path, you can use `--detect-branches` when " +"cloning or syncing to have 'git p4' automatically find subdirectories in p4, " +"and to generate these as branches in Git." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:159 -msgid "" -"The `GIT_PUSH_CERT*` environment variables can be inspected, just as in " -"`pre-receive` hook, after accepting a signed push." +#: en/git-p4.txt:472 +msgid "For example, if the P4 repository structure is:" msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:165 +#. type: delimited block - +#: en/git-p4.txt:475 +#, no-wrap msgid "" -"Using this hook, it is easy to generate mails describing the updates to the " -"repository. This example script sends one mail message per ref listing the " -"commits pushed to the repository, and logs the push certificates of signed " -"pushes with good signatures to a logger service:" +"//depot/main/...\n" +"//depot/branch1/...\n" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:189 -#, no-wrap -msgid "" -"\t#!/bin/sh\n" -"\t# mail out commit update information.\n" -"\twhile read oval nval ref\n" -"\tdo\n" -"\t\tif expr \"$oval\" : '0*$' >/dev/null\n" -"\t\tthen\n" -"\t\t\techo \"Created a new ref, with the following commits:\"\n" -"\t\t\tgit rev-list --pretty \"$nval\"\n" -"\t\telse\n" -"\t\t\techo \"New commits:\"\n" -"\t\t\tgit rev-list --pretty \"$nval\" \"^$oval\"\n" -"\t\tfi |\n" -"\t\tmail -s \"Changes to ref $ref\" commit-list@mydomain\n" -"\tdone\n" -"\t# log signed push certificate, if any\n" -"\tif test -n \"${GIT_PUSH_CERT-}\" && test ${GIT_PUSH_CERT_STATUS} = G\n" -"\tthen\n" -"\t\t(\n" -"\t\t\techo expected nonce is ${GIT_PUSH_NONCE}\n" -"\t\t\tgit cat-file blob ${GIT_PUSH_CERT}\n" -"\t\t) | mail -s \"push certificate from $GIT_PUSH_CERT_SIGNER\" " -"push-log@mydomain\n" -"\tfi\n" -"\texit 0\n" +#: en/git-p4.txt:478 +msgid "And \"p4 branch -o branch1\" shows a View line that looks like:" msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:192 -msgid "" -"The exit code from this hook invocation is ignored, however a non-zero exit " -"code will generate an error message." +#. type: delimited block - +#: en/git-p4.txt:480 +#, no-wrap +msgid "//depot/main/... //depot/branch1/...\n" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:198 -msgid "" -"Note that it is possible for refname to not have sha1-new when this hook " -"runs. This can easily occur if another user modifies the ref after it was " -"updated by 'git-receive-pack', but before the hook was able to evaluate it. " -"It is recommended that hooks rely on sha1-new rather than the current value " -"of refname." +#: en/git-p4.txt:483 +msgid "Then this 'git p4 clone' command:" msgstr "" -#. type: Title - -#: en/git-receive-pack.txt:200 +#. type: delimited block - +#: en/git-p4.txt:485 #, no-wrap -msgid "post-update Hook" +msgid "git p4 clone --detect-branches //depot@all\n" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:205 +#: en/git-p4.txt:488 msgid "" -"After all other processing, if at least one ref was updated, and if " -"$GIT_DIR/hooks/post-update file exists and is executable, then post-update " -"will be called with the list of refs that have been updated. This can be " -"used to implement any repository wide cleanup tasks." +"produces a separate branch in 'refs/remotes/p4/' for //depot/main, called " +"'master', and one for //depot/branch1 called 'depot/branch1'." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:209 +#: en/git-p4.txt:498 msgid "" -"The exit code from this hook invocation is ignored; the only thing left for " -"'git-receive-pack' to do at that point is to exit itself anyway." +"However, it is not necessary to create branches in p4 to be able to use them " +"like branches. Because it is difficult to infer branch relationships " +"automatically, a Git configuration setting 'git-p4.branchList' can be used " +"to explicitly identify branch relationships. It is a list of \"source:" +"destination\" pairs, like a simple p4 branch specification, where the " +"\"source\" and \"destination\" are the path elements in the p4 repository. " +"The example above relied on the presence of the p4 branch. Without p4 " +"branches, the same result will occur with:" msgstr "" -#. type: Plain text -#: en/git-receive-pack.txt:212 +#. type: delimited block - +#: en/git-p4.txt:503 +#, no-wrap msgid "" -"This hook can be used, for example, to run `git update-server-info` if the " -"repository is packed and is served via a dumb transport." +"git init depot\n" +"cd depot\n" +"git config git-p4.branchList main:branch1\n" +"git p4 clone --detect-branches //depot@all .\n" msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:215 -#, no-wrap +#: en/git-p4.txt:512 msgid "" -"\t#!/bin/sh\n" -"\texec git update-server-info\n" +"The fast-import mechanism used by 'git p4' creates one pack file for each " +"invocation of 'git p4 sync'. Normally, Git garbage compression (linkgit:git-" +"gc[1]) automatically compresses these to fewer pack files, but explicit " +"invocation of 'git repack -adf' may improve performance." msgstr "" #. type: Plain text -#: en/git-receive-pack.txt:220 -msgid "linkgit:git-send-pack[1], linkgit:gitnamespaces[7]" +#: en/git-p4.txt:518 +msgid "" +"The following config settings can be used to modify 'git p4' behavior. They " +"all are in the 'git-p4' section." msgstr "" -#. type: Title = -#: en/git-reflog.txt:2 +#. type: Title ~ +#: en/git-p4.txt:520 #, no-wrap -msgid "git-reflog(1)" +msgid "General variables" msgstr "" -#. type: Plain text -#: en/git-reflog.txt:7 -msgid "git-reflog - Manage reflog information" +#. type: Labeled list +#: en/git-p4.txt:521 +#, no-wrap +msgid "git-p4.user" msgstr "" #. type: Plain text -#: en/git-reflog.txt:13 -#, no-wrap -msgid "'git reflog' <subcommand> <options>\n" +#: en/git-p4.txt:524 +msgid "" +"User specified as an option to all p4 commands, with '-u <user>'. The " +"environment variable `P4USER` can be used instead." msgstr "" -#. type: Plain text -#: en/git-reflog.txt:27 +#. type: Labeled list +#: en/git-p4.txt:525 #, no-wrap -msgid "" -"'git reflog' ['show'] [log-options] [<ref>]\n" -"'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>]\n" -"\t[--rewrite] [--updateref] [--stale-fix]\n" -"\t[--dry-run] [--verbose] [--all | <refs>...]\n" -"'git reflog delete' [--rewrite] [--updateref]\n" -"\t[--dry-run] [--verbose] ref@\\{specifier\\}...\n" -"'git reflog exists' <ref>\n" +msgid "git-p4.password" msgstr "" #. type: Plain text -#: en/git-reflog.txt:35 +#: en/git-p4.txt:529 msgid "" -"Reference logs, or \"reflogs\", record when the tips of branches and other " -"references were updated in the local repository. Reflogs are useful in " -"various Git commands, to specify the old value of a reference. For example, " -"`HEAD@{2}` means \"where HEAD used to be two moves ago\", " -"`master@{one.week.ago}` means \"where master used to point to one week ago " -"in this local repository\", and so on. See linkgit:gitrevisions[7] for more " -"details." +"Password specified as an option to all p4 commands, with '-P <password>'. " +"The environment variable `P4PASS` can be used instead." msgstr "" -#. type: Plain text -#: en/git-reflog.txt:37 -msgid "This command manages the information recorded in the reflogs." +#. type: Labeled list +#: en/git-p4.txt:530 +#, no-wrap +msgid "git-p4.port" msgstr "" #. type: Plain text -#: en/git-reflog.txt:44 +#: en/git-p4.txt:534 msgid "" -"The \"show\" subcommand (which is also the default, in the absence of any " -"subcommands) shows the log of the reference provided in the command-line (or " -"`HEAD`, by default). The reflog covers all recent actions, and in addition " -"the `HEAD` reflog records branch switching. `git reflog show` is an alias " -"for `git log -g --abbrev-commit --pretty=oneline`; see linkgit:git-log[1] " -"for more information." +"Port specified as an option to all p4 commands, with '-p <port>'. The " +"environment variable `P4PORT` can be used instead." msgstr "" -#. type: Plain text -#: en/git-reflog.txt:50 -msgid "" -"The \"expire\" subcommand prunes older reflog entries. Entries older than " -"`expire` time, or entries older than `expire-unreachable` time and not " -"reachable from the current tip, are removed from the reflog. This is " -"typically not used directly by end users -- instead, see linkgit:git-gc[1]." +#. type: Labeled list +#: en/git-p4.txt:535 +#, no-wrap +msgid "git-p4.host" msgstr "" #. type: Plain text -#: en/git-reflog.txt:55 +#: en/git-p4.txt:539 msgid "" -"The \"delete\" subcommand deletes single entries from the reflog. Its " -"argument must be an _exact_ entry (e.g. \"`git reflog delete " -"master@{2}`\"). This subcommand is also typically not used directly by end " -"users." +"Host specified as an option to all p4 commands, with '-h <host>'. The " +"environment variable `P4HOST` can be used instead." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:540 +#, no-wrap +msgid "git-p4.client" msgstr "" #. type: Plain text -#: en/git-reflog.txt:59 +#: en/git-p4.txt:543 msgid "" -"The \"exists\" subcommand checks whether a ref has a reflog. It exits with " -"zero status if the reflog exists, and non-zero status if it does not." +"Client specified as an option to all p4 commands, with '-c <client>', " +"including the client spec." msgstr "" -#. type: Title ~ -#: en/git-reflog.txt:64 +#. type: Labeled list +#: en/git-p4.txt:544 #, no-wrap -msgid "Options for `show`" +msgid "git-p4.retries" msgstr "" #. type: Plain text -#: en/git-reflog.txt:67 -msgid "`git reflog show` accepts any of the options accepted by `git log`." +#: en/git-p4.txt:549 +msgid "" +"Specifies the number of times to retry a p4 command (notably, 'p4 sync') if " +"the network times out. The default value is 3. Set the value to 0 to " +"disable retries or if your p4 version does not support retries (pre 2012.2)." msgstr "" #. type: Title ~ -#: en/git-reflog.txt:70 +#: en/git-p4.txt:551 #, no-wrap -msgid "Options for `expire`" -msgstr "" - -#. type: Plain text -#: en/git-reflog.txt:74 -msgid "Process the reflogs of all references." +msgid "Clone and sync variables" msgstr "" #. type: Labeled list -#: en/git-reflog.txt:75 +#: en/git-p4.txt:552 #, no-wrap -msgid "--expire=<time>" +msgid "git-p4.syncFromOrigin" msgstr "" #. type: Plain text -#: en/git-reflog.txt:82 +#: en/git-p4.txt:558 msgid "" -"Prune entries older than the specified time. If this option is not " -"specified, the expiration time is taken from the configuration setting " -"`gc.reflogExpire`, which in turn defaults to 90 days. `--expire=all` prunes " -"entries regardless of their age; `--expire=never` turns off pruning of " -"reachable entries (but see `--expire-unreachable`)." +"Because importing commits from other Git repositories is much faster than " +"importing them from p4, a mechanism exists to find p4 changes first in Git " +"remotes. If branches exist under 'refs/remote/origin/p4', those will be " +"fetched and used when syncing from p4. This variable can be set to 'false' " +"to disable this behavior." msgstr "" #. type: Labeled list -#: en/git-reflog.txt:83 +#: en/git-p4.txt:559 #, no-wrap -msgid "--expire-unreachable=<time>" +msgid "git-p4.branchUser" msgstr "" #. type: Plain text -#: en/git-reflog.txt:92 +#: en/git-p4.txt:564 msgid "" -"Prune entries older than `<time>` that are not reachable from the current " -"tip of the branch. If this option is not specified, the expiration time is " -"taken from the configuration setting `gc.reflogExpireUnreachable`, which in " -"turn defaults to 30 days. `--expire-unreachable=all` prunes unreachable " -"entries regardless of their age; `--expire-unreachable=never` turns off " -"early pruning of unreachable entries (but see `--expire`)." +"One phase in branch detection involves looking at p4 branches to find new " +"ones to import. By default, all branches are inspected. This option limits " +"the search to just those owned by the single user named in the variable." msgstr "" #. type: Labeled list -#: en/git-reflog.txt:93 +#: en/git-p4.txt:565 #, no-wrap -msgid "--updateref" +msgid "git-p4.branchList" msgstr "" #. type: Plain text -#: en/git-reflog.txt:97 +#: en/git-p4.txt:570 +msgid "" +"List of branches to be imported when branch detection is enabled. Each " +"entry should be a pair of branch names separated by a colon (:). This " +"example declares that both branchA and branchB were created from main:" +msgstr "" + +#. type: delimited block - +#: en/git-p4.txt:574 +#, no-wrap msgid "" -"Update the reference to the value of the top reflog entry (i.e. " -"<ref>@\\{0\\}) if the previous top entry was pruned. (This option is " -"ignored for symbolic references.)" +"git config git-p4.branchList main:branchA\n" +"git config --add git-p4.branchList main:branchB\n" msgstr "" #. type: Labeled list -#: en/git-reflog.txt:98 +#: en/git-p4.txt:576 #, no-wrap -msgid "--rewrite" +msgid "git-p4.ignoredP4Labels" msgstr "" #. type: Plain text -#: en/git-reflog.txt:102 +#: en/git-p4.txt:579 msgid "" -"If a reflog entry's predecessor is pruned, adjust its \"old\" SHA-1 to be " -"equal to the \"new\" SHA-1 field of the entry that now precedes it." +"List of p4 labels to ignore. This is built automatically as unimportable " +"labels are discovered." msgstr "" #. type: Labeled list -#: en/git-reflog.txt:103 +#: en/git-p4.txt:580 #, no-wrap -msgid "--stale-fix" +msgid "git-p4.importLabels" msgstr "" #. type: Plain text -#: en/git-reflog.txt:108 -msgid "" -"Prune any reflog entries that point to \"broken commits\". A broken commit " -"is a commit that is not reachable from any of the reference tips and that " -"refers, directly or indirectly, to a missing commit, tree, or blob object." +#: en/git-p4.txt:582 +msgid "Import p4 labels into git, as per --import-labels." +msgstr "" + +#. type: Labeled list +#: en/git-p4.txt:583 +#, no-wrap +msgid "git-p4.labelImportRegexp" msgstr "" #. type: Plain text -#: en/git-reflog.txt:113 +#: en/git-p4.txt:586 msgid "" -"This computation involves traversing all the reachable objects, i.e. it has " -"the same cost as 'git prune'. It is primarily intended to fix corruption " -"caused by garbage collecting using older versions of Git, which didn't " -"protect objects referred to by reflogs." +"Only p4 labels matching this regular expression will be imported. The " +"default value is '[a-zA-Z0-9_\\-.]+$'." msgstr "" -#. type: Plain text -#: en/git-reflog.txt:118 -msgid "Do not actually prune any entries; just show what would have been pruned." +#. type: Labeled list +#: en/git-p4.txt:587 +#, no-wrap +msgid "git-p4.useClientSpec" msgstr "" #. type: Plain text -#: en/git-reflog.txt:121 -msgid "Print extra information on screen." +#: en/git-p4.txt:592 +msgid "" +"Specify that the p4 client spec should be used to identify p4 depot paths of " +"interest. This is equivalent to specifying the option `--use-client-spec`. " +"See the \"CLIENT SPEC\" section above. This variable is a boolean, not the " +"name of a p4 client." msgstr "" -#. type: Title ~ -#: en/git-reflog.txt:124 +#. type: Labeled list +#: en/git-p4.txt:593 #, no-wrap -msgid "Options for `delete`" +msgid "git-p4.pathEncoding" msgstr "" #. type: Plain text -#: en/git-reflog.txt:129 +#: en/git-p4.txt:599 msgid "" -"`git reflog delete` accepts options `--updateref`, `--rewrite`, `-n`, " -"`--dry-run`, and `--verbose`, with the same meanings as when they are used " -"with `expire`." +"Perforce keeps the encoding of a path as given by the originating OS. Git " +"expects paths encoded as UTF-8. Use this config to tell git-p4 what encoding " +"Perforce had used for the paths. This encoding is used to transcode the " +"paths to UTF-8. As an example, Perforce on Windows often uses \"cp1252\" to " +"encode path names." msgstr "" -#. type: Title = -#: en/git-remote-ext.txt:2 +#. type: Labeled list +#: en/git-p4.txt:600 #, no-wrap -msgid "git-remote-ext(1)" +msgid "git-p4.largeFileSystem" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:7 -msgid "git-remote-ext - Bridge smart transport to external command." +#: en/git-p4.txt:606 +msgid "" +"Specify the system that is used for large (binary) files. Please note that " +"large file systems do not support the 'git p4 submit' command. Only Git LFS " +"is implemented right now (see https://git-lfs.github.com/ for more " +"information). Download and install the Git LFS command line extension to use " +"this option and configure it like this:" msgstr "" -#. type: Plain text -#: en/git-remote-ext.txt:12 +#. type: delimited block - +#: en/git-p4.txt:609 #, no-wrap -msgid "git remote add <nick> \"ext::<command>[ <arguments>...]\"\n" +msgid "git config git-p4.largeFileSystem GitLFS\n" msgstr "" -#. type: Plain text -#: en/git-remote-ext.txt:17 -msgid "" -"This remote helper uses the specified '<command>' to connect to a remote Git " -"server." +#. type: Labeled list +#: en/git-p4.txt:611 +#, no-wrap +msgid "git-p4.largeFileExtensions" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:23 +#: en/git-p4.txt:614 msgid "" -"Data written to stdin of the specified '<command>' is assumed to be sent to " -"a git:// server, git-upload-pack, git-receive-pack or git-upload-archive " -"(depending on situation), and data read from stdout of <command> is assumed " -"to be received from the same service." +"All files matching a file extension in the list will be processed by the " +"large file system. Do not prefix the extensions with '.'." msgstr "" -#. type: Plain text -#: en/git-remote-ext.txt:25 -msgid "Command and arguments are separated by an unescaped space." +#. type: Labeled list +#: en/git-p4.txt:615 +#, no-wrap +msgid "git-p4.largeFileThreshold" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:27 -msgid "The following sequences have a special meaning:" +#: en/git-p4.txt:619 +msgid "" +"All files with an uncompressed size exceeding the threshold will be " +"processed by the large file system. By default the threshold is defined in " +"bytes. Add the suffix k, m, or g to change the unit." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:28 +#: en/git-p4.txt:620 #, no-wrap -msgid "'% '" +msgid "git-p4.largeFileCompressedThreshold" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:30 -msgid "Literal space in command or argument." +#: en/git-p4.txt:625 +msgid "" +"All files with a compressed size exceeding the threshold will be processed " +"by the large file system. This option might slow down your clone/sync " +"process. By default the threshold is defined in bytes. Add the suffix k, m, " +"or g to change the unit." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:31 +#: en/git-p4.txt:626 #, no-wrap -msgid "'%%'" +msgid "git-p4.largeFilePush" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:33 -msgid "Literal percent sign." +#: en/git-p4.txt:629 +msgid "" +"Boolean variable which defines if large files are automatically pushed to a " +"server." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:34 +#: en/git-p4.txt:630 #, no-wrap -msgid "'%s'" +msgid "git-p4.keepEmptyCommits" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:37 +#: en/git-p4.txt:633 msgid "" -"Replaced with name (receive-pack, upload-pack, or upload-archive) of the " -"service Git wants to invoke." +"A changelist that contains only excluded files will be imported as an empty " +"commit if this boolean option is set to true." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:38 +#: en/git-p4.txt:634 #, no-wrap -msgid "'%S'" +msgid "git-p4.mapUser" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:42 +#: en/git-p4.txt:637 msgid "" -"Replaced with long name (git-receive-pack, git-upload-pack, or " -"git-upload-archive) of the service Git wants to invoke." +"Map a P4 user to a name and email address in Git. Use a string with the " +"following format to create a mapping:" msgstr "" -#. type: Labeled list -#: en/git-remote-ext.txt:43 +#. type: delimited block - +#: en/git-p4.txt:640 #, no-wrap -msgid "'%G' (must be the first characters in an argument)" +msgid "git config --add git-p4.mapUser \"p4user = First Last <mail@address.com>\"\n" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:49 +#: en/git-p4.txt:644 msgid "" -"This argument will not be passed to '<command>'. Instead, it will cause the " -"helper to start by sending git:// service requests to the remote side with " -"the service field set to an appropriate value and the repository field set " -"to rest of the argument. Default is not to send such a request." +"A mapping will override any user information from P4. Mappings for multiple " +"P4 user can be defined." msgstr "" -#. type: Plain text -#: en/git-remote-ext.txt:52 -msgid "This is useful if remote side is git:// server accessed over some tunnel." +#. type: Title ~ +#: en/git-p4.txt:646 +#, no-wrap +msgid "Submit variables" msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:53 +#: en/git-p4.txt:647 #, no-wrap -msgid "'%V' (must be first characters in argument)" +msgid "git-p4.detectRenames" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:57 +#: en/git-p4.txt:650 msgid "" -"This argument will not be passed to '<command>'. Instead it sets the vhost " -"field in the git:// service request (to rest of the argument). Default is " -"not to send vhost in such request (if sent)." +"Detect renames. See linkgit:git-diff[1]. This can be true, false, or a " +"score as expected by 'git diff -M'." msgstr "" -#. type: Title - -#: en/git-remote-ext.txt:59 +#. type: Labeled list +#: en/git-p4.txt:651 #, no-wrap -msgid "ENVIRONMENT VARIABLES:" +msgid "git-p4.detectCopies" +msgstr "" + +#. type: Plain text +#: en/git-p4.txt:654 +msgid "" +"Detect copies. See linkgit:git-diff[1]. This can be true, false, or a " +"score as expected by 'git diff -C'." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:61 en/git-remote-fd.txt:33 +#: en/git-p4.txt:655 #, no-wrap -msgid "GIT_TRANSLOOP_DEBUG" +msgid "git-p4.detectCopiesHarder" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:63 en/git-remote-fd.txt:35 -msgid "If set, prints debugging information about various reads/writes." +#: en/git-p4.txt:657 +msgid "Detect copies harder. See linkgit:git-diff[1]. A boolean." msgstr "" -#. type: Title - -#: en/git-remote-ext.txt:65 +#. type: Labeled list +#: en/git-p4.txt:658 #, no-wrap -msgid "ENVIRONMENT VARIABLES PASSED TO COMMAND:" +msgid "git-p4.preserveUser" +msgstr "" + +#. type: Plain text +#: en/git-p4.txt:661 +msgid "" +"On submit, re-author changes to reflect the Git author, regardless of who " +"invokes 'git p4 submit'." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:67 +#: en/git-p4.txt:662 #, no-wrap -msgid "GIT_EXT_SERVICE" +msgid "git-p4.allowMissingP4Users" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:70 +#: en/git-p4.txt:666 msgid "" -"Set to long name (git-upload-pack, etc...) of service helper needs to " -"invoke." +"When 'preserveUser' is true, 'git p4' normally dies if it cannot find an " +"author in the p4 user map. This setting submits the change regardless." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:71 +#: en/git-p4.txt:667 #, no-wrap -msgid "GIT_EXT_SERVICE_NOPREFIX" +msgid "git-p4.skipSubmitEdit" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:74 -msgid "Set to long name (upload-pack, etc...) of service helper needs to invoke." +#: en/git-p4.txt:671 +msgid "" +"The submit process invokes the editor before each p4 change is submitted. " +"If this setting is true, though, the editing step is skipped." msgstr "" -#. type: Title - -#: en/git-remote-ext.txt:77 +#. type: Labeled list +#: en/git-p4.txt:672 #, no-wrap -msgid "EXAMPLES:" +msgid "git-p4.skipSubmitEditCheck" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:82 +#: en/git-p4.txt:676 msgid "" -"This remote helper is transparently used by Git when you use commands such " -"as \"git fetch <URL>\", \"git clone <URL>\", , \"git push <URL>\" or \"git " -"remote add <nick> <URL>\", where <URL> begins with `ext::`. Examples:" +"After editing the p4 change message, 'git p4' makes sure that the " +"description really was changed by looking at the file modification time. " +"This option disables that test." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:83 +#: en/git-p4.txt:677 #, no-wrap -msgid "\"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S 'foo/repo'\"" +msgid "git-p4.allowSubmit" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:87 +#: en/git-p4.txt:683 msgid "" -"Like host.example:foo/repo, but use /home/foo/.ssh/somekey as keypair and " -"user as user on remote side. This avoids needing to edit .ssh/config." +"By default, any branch can be used as the source for a 'git p4 submit' " +"operation. This configuration variable, if set, permits only the named " +"branches to be used as submit sources. Branch names must be the short names " +"(no \"refs/heads/\"), and should be separated by commas (\",\"), with no " +"spaces." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:88 +#: en/git-p4.txt:684 #, no-wrap -msgid "\"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo\"" +msgid "git-p4.skipUserNameCheck" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:91 +#: en/git-p4.txt:688 msgid "" -"Represents repository with path /somerepo accessible over git protocol at " -"abstract namespace address /git-server." +"If the user running 'git p4 submit' does not exist in the p4 user map, 'git " +"p4' exits. This option can be used to force submission regardless." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:92 +#: en/git-p4.txt:689 #, no-wrap -msgid "\"ext::git-server-alias foo %G/repo\"" +msgid "git-p4.attemptRCSCleanup" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:98 +#: en/git-p4.txt:694 msgid "" -"Represents a repository with path /repo accessed using the helper program " -"\"git-server-alias foo\". The path to the repository and type of request " -"are not passed on the command line but as part of the protocol stream, as " -"usual with git:// protocol." +"If enabled, 'git p4 submit' will attempt to cleanup RCS keywords ($Header$, " +"etc). These would otherwise cause merge conflicts and prevent the submit " +"going ahead. This option should be considered experimental at present." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:99 +#: en/git-p4.txt:695 #, no-wrap -msgid "\"ext::git-server-alias foo %G/repo %Vfoo\"" +msgid "git-p4.exportLabels" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:105 -msgid "" -"Represents a repository with path /repo accessed using the helper program " -"\"git-server-alias foo\". The hostname for the remote server passed in the " -"protocol stream will be \"foo\" (this allows multiple virtual Git servers to " -"share a link-level address)." +#: en/git-p4.txt:697 +msgid "Export Git tags to p4 labels, as per --export-labels." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:106 +#: en/git-p4.txt:698 #, no-wrap -msgid "\"ext::git-server-alias foo %G/repo% with% spaces %Vfoo\"" +msgid "git-p4.labelExportRegexp" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:112 +#: en/git-p4.txt:701 msgid "" -"Represents a repository with path '/repo with spaces' accessed using the " -"helper program \"git-server-alias foo\". The hostname for the remote server " -"passed in the protocol stream will be \"foo\" (this allows multiple virtual " -"Git servers to share a link-level address)." +"Only p4 labels matching this regular expression will be exported. The " +"default value is '[a-zA-Z0-9_\\-.]+$'." msgstr "" #. type: Labeled list -#: en/git-remote-ext.txt:113 +#: en/git-p4.txt:702 #, no-wrap -msgid "\"ext::git-ssl foo.example /bar\"" +msgid "git-p4.conflict" msgstr "" #. type: Plain text -#: en/git-remote-ext.txt:118 +#: en/git-p4.txt:705 msgid "" -"Represents a repository accessed using the helper program \"git-ssl " -"foo.example /bar\". The type of request can be determined by the helper " -"using environment variables (see above)." +"Specify submit behavior when a conflict with p4 is found, as per --" +"conflict. The default behavior is 'ask'." msgstr "" -#. type: Plain text -#: en/git-remote-ext.txt:122 en/git-remote-fd.txt:56 en/git-remote-testgit.txt:27 -msgid "linkgit:gitremote-helpers[1]" -msgstr "" - -#. type: Title = -#: en/git-remote-fd.txt:2 +#. type: Labeled list +#: en/git-p4.txt:706 #, no-wrap -msgid "git-remote-fd(1)" +msgid "git-p4.disableRebase" msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:7 -msgid "git-remote-fd - Reflect smart transport stream back to caller" +#: en/git-p4.txt:708 +msgid "Do not rebase the tree against p4/master following a submit." msgstr "" -#. type: Plain text -#: en/git-remote-fd.txt:11 -msgid "\"fd::<infd>[,<outfd>][/<anything>]\" (as URL)" +#. type: Labeled list +#: en/git-p4.txt:709 +#, no-wrap +msgid "git-p4.disableP4Sync" msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:17 +#: en/git-p4.txt:711 msgid "" -"This helper uses specified file descriptors to connect to a remote Git " -"server. This is not meant for end users but for programs and scripts " -"calling git fetch, push or archive." +"Do not sync p4/master with Perforce following a submit. Implies git-p4." +"disableRebase." +msgstr "" + +#. type: Title - +#: en/git-p4.txt:713 +#, no-wrap +msgid "IMPLEMENTATION DETAILS" msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:23 -msgid "" -"If only <infd> is given, it is assumed to be a bidirectional socket " -"connected to remote Git server (git-upload-pack, git-receive-pack or " -"git-upload-archive). If both <infd> and <outfd> are given, they are assumed " -"to be pipes connected to a remote Git server (<infd> being the inbound pipe " -"and <outfd> being the outbound pipe." +#: en/git-p4.txt:715 +msgid "Changesets from p4 are imported using Git fast-import." msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:26 +#: en/git-p4.txt:717 msgid "" -"It is assumed that any handshaking procedures have already been completed " -"(such as sending service request for git://) before this helper is started." +"Cloning or syncing does not require a p4 client; file contents are collected " +"using 'p4 print'." msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:30 +#: en/git-p4.txt:720 msgid "" -"<anything> can be any string. It is ignored. It is meant for providing " -"information to user in the URL in case that URL is displayed in some " -"context." +"Submitting requires a p4 client, which is not in the same location as the " +"Git repository. Patches are applied, one at a time, to this p4 client and " +"submitted from there." msgstr "" -#. type: Title - -#: en/git-remote-fd.txt:32 -#, no-wrap -msgid "ENVIRONMENT VARIABLES" +#. type: Plain text +#: en/git-p4.txt:723 +msgid "" +"Each commit imported by 'git p4' has a line at the end of the log message " +"indicating the p4 depot location and change number. This line is used by " +"later 'git p4 sync' operations to know which p4 changes are new." msgstr "" -#. type: Labeled list -#: en/git-remote-fd.txt:38 +#. type: Title = +#: en/git-pack-objects.txt:2 #, no-wrap -msgid "`git fetch fd::17 master`" +msgid "git-pack-objects(1)" msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:41 -msgid "Fetch master, using file descriptor #17 to communicate with git-upload-pack." +#: en/git-pack-objects.txt:7 +msgid "git-pack-objects - Create a packed archive of objects" msgstr "" -#. type: Labeled list -#: en/git-remote-fd.txt:42 +#. type: Plain text +#: en/git-pack-objects.txt:18 #, no-wrap -msgid "`git fetch fd::17/foo master`" +msgid "" +"'git pack-objects' [-q | --progress | --all-progress] [--all-progress-implied]\n" +"\t[--no-reuse-delta] [--delta-base-offset] [--non-empty]\n" +"\t[--local] [--incremental] [--window=<n>] [--depth=<n>]\n" +"\t[--revs [--unpacked | --all]] [--keep-pack=<pack-name>]\n" +"\t[--stdout [--filter=<filter-spec>] | base-name]\n" +"\t[--shallow] [--keep-true-parents] [--sparse] < object-list\n" msgstr "" -#. type: Labeled list -#: en/git-remote-fd.txt:45 -#, no-wrap -msgid "`git push fd::7,8 master (as URL)`" +#. type: Plain text +#: en/git-pack-objects.txt:25 +msgid "" +"Reads list of objects from the standard input, and writes either one or more " +"packed archives with the specified base-name to disk, or a packed archive to " +"the standard output." msgstr "" #. type: Plain text -#: en/git-remote-fd.txt:49 +#: en/git-pack-objects.txt:31 msgid "" -"Push master, using file descriptor #7 to read data from git-receive-pack and " -"file descriptor #8 to write data to same service." +"A packed archive is an efficient way to transfer a set of objects between " +"two repositories as well as an access efficient archival format. In a " +"packed archive, an object is either stored as a compressed whole or as a " +"difference from some other object. The latter is often called a delta." msgstr "" -#. type: Labeled list -#: en/git-remote-fd.txt:50 -#, no-wrap -msgid "`git push fd::7,8/bar master`" +#. type: Plain text +#: en/git-pack-objects.txt:35 +msgid "" +"The packed archive format (.pack) is designed to be self-contained so that " +"it can be unpacked without any further information. Therefore, each object " +"that a delta depends upon must be present within the pack." msgstr "" -#. type: Title = -#: en/git-remote-testgit.txt:2 -#, no-wrap -msgid "git-remote-testgit(1)" +#. type: Plain text +#: en/git-pack-objects.txt:41 +msgid "" +"A pack index file (.idx) is generated for fast, random access to the objects " +"in the pack. Placing both the index file (.idx) and the packed archive (." +"pack) in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or any of the " +"directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) enables Git to read from " +"the pack archive." msgstr "" #. type: Plain text -#: en/git-remote-testgit.txt:7 -msgid "git-remote-testgit - Example remote-helper" +#: en/git-pack-objects.txt:47 +msgid "" +"The 'git unpack-objects' command can read the packed archive and expand the " +"objects contained in the pack into \"one-file one-object\" format; this is " +"typically done by the smart-pull commands when a pack is created on-the-fly " +"for efficient network transport by their peers." msgstr "" -#. type: Plain text -#: en/git-remote-testgit.txt:13 +#. type: Labeled list +#: en/git-pack-objects.txt:51 #, no-wrap -msgid "git clone testgit::<source-repo> [<destination>]\n" +msgid "base-name" msgstr "" #. type: Plain text -#: en/git-remote-testgit.txt:20 +#: en/git-pack-objects.txt:58 msgid "" -"This command is a simple remote-helper, that is used both as a testcase for " -"the remote-helper functionality, and as an example to show remote-helper " -"authors one possible implementation." +"Write into pairs of files (.pack and .idx), using <base-name> to determine " +"the name of the created file. When this option is used, the two files in a " +"pair are written in <base-name>-<SHA-1>.{pack,idx} files. <SHA-1> is a hash " +"based on the pack content and is written to the standard output of the " +"command." msgstr "" #. type: Plain text -#: en/git-remote-testgit.txt:23 +#: en/git-pack-objects.txt:62 msgid "" -"The best way to learn more is to read the comments and source code in " -"'git-remote-testgit'." +"Write the pack contents (what would have been written to .pack file) out to " +"the standard output." msgstr "" -#. type: Title = -#: en/git-remote.txt:2 +#. type: Labeled list +#: en/git-pack-objects.txt:63 #, no-wrap -msgid "git-remote(1)" +msgid "--revs" msgstr "" #. type: Plain text -#: en/git-remote.txt:7 -msgid "git-remote - Manage set of tracked repositories" +#: en/git-pack-objects.txt:71 +msgid "" +"Read the revision arguments from the standard input, instead of individual " +"object names. The revision arguments are processed the same way as 'git rev-" +"list' with the `--objects` flag uses its `commit` arguments to build the " +"list of objects it outputs. The objects on the resulting list are packed. " +"Besides revisions, `--not` or `--shallow <SHA-1>` lines are also accepted." msgstr "" -#. type: Plain text -#: en/git-remote.txt:25 +#. type: Labeled list +#: en/git-pack-objects.txt:72 en/rev-list-options.txt:707 #, no-wrap -msgid "" -"'git remote' [-v | --verbose]\n" -"'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] " -"[--mirror=<fetch|push>] <name> <url>\n" -"'git remote rename' <old> <new>\n" -"'git remote remove' <name>\n" -"'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)\n" -"'git remote set-branches' [--add] <name> <branch>...\n" -"'git remote get-url' [--push] [--all] <name>\n" -"'git remote set-url' [--push] <name> <newurl> [<oldurl>]\n" -"'git remote set-url --add' [--push] <name> <newurl>\n" -"'git remote set-url --delete' [--push] <name> <url>\n" -"'git remote' [-v | --verbose] 'show' [-n] <name>...\n" -"'git remote prune' [-n | --dry-run] <name>...\n" -"'git remote' [-v | --verbose] 'update' [-p | --prune] [(<group> | " -"<remote>)...]\n" +msgid "--unpacked" msgstr "" #. type: Plain text -#: en/git-remote.txt:30 -msgid "Manage the set of repositories (\"remotes\") whose branches you track." +#: en/git-pack-objects.txt:76 +msgid "" +"This implies `--revs`. When processing the list of revision arguments read " +"from the standard input, limit the objects packed to those that are not " +"already packed." msgstr "" #. type: Plain text -#: en/git-remote.txt:39 +#: en/git-pack-objects.txt:82 msgid "" -"Be a little more verbose and show remote url after name. NOTE: This must be " -"placed between `remote` and `subcommand`." +"This implies `--revs`. In addition to the list of revision arguments read " +"from the standard input, pretend as if all refs under `refs/` are specified " +"to be included." msgstr "" #. type: Plain text -#: en/git-remote.txt:46 +#: en/git-pack-objects.txt:87 msgid "" -"With no arguments, shows a list of existing remotes. Several subcommands " -"are available to perform operations on the remotes." +"Include unasked-for annotated tags if the object they reference was included " +"in the resulting packfile. This can be useful to send new tags to native " +"Git clients." msgstr "" #. type: Labeled list -#: en/git-remote.txt:47 +#: en/git-pack-objects.txt:88 en/git-repack.txt:89 #, no-wrap -msgid "'add'" +msgid "--window=<n>" msgstr "" #. type: Plain text -#: en/git-remote.txt:52 +#: en/git-pack-objects.txt:99 msgid "" -"Adds a remote named <name> for the repository at <url>. The command `git " -"fetch <name>` can then be used to create and update remote-tracking branches " -"<name>/<branch>." +"These two options affect how the objects contained in the pack are stored " +"using delta compression. The objects are first internally sorted by type, " +"size and optionally names and compared against the other objects within --" +"window to see if using delta compression saves space. --depth limits the " +"maximum delta depth; making it too deep affects the performance on the " +"unpacker side, because delta data needs to be applied that many times to get " +"to the necessary object." msgstr "" #. type: Plain text -#: en/git-remote.txt:55 +#: en/git-pack-objects.txt:102 en/git-repack.txt:101 msgid "" -"With `-f` option, `git fetch <name>` is run immediately after the remote " -"information is set up." +"The default value for --window is 10 and --depth is 50. The maximum depth is " +"4095." msgstr "" -#. type: Plain text -#: en/git-remote.txt:58 -msgid "" -"With `--tags` option, `git fetch <name>` imports every tag from the remote " -"repository." +#. type: Labeled list +#: en/git-pack-objects.txt:103 en/git-repack.txt:105 +#, no-wrap +msgid "--window-memory=<n>" msgstr "" #. type: Plain text -#: en/git-remote.txt:61 +#: en/git-pack-objects.txt:113 msgid "" -"With `--no-tags` option, `git fetch <name>` does not import tags from the " -"remote repository." +"This option provides an additional limit on top of `--window`; the window " +"size will dynamically scale down so as to not take up more than '<n>' bytes " +"in memory. This is useful in repositories with a mix of large and small " +"objects to not run out of memory with a large window, but still be able to " +"take advantage of the large window for the smaller objects. The size can be " +"suffixed with \"k\", \"m\", or \"g\". `--window-memory=0` makes memory " +"usage unlimited. The default is taken from the `pack.windowMemory` " +"configuration variable." msgstr "" #. type: Plain text -#: en/git-remote.txt:64 +#: en/git-pack-objects.txt:125 msgid "" -"By default, only tags on fetched branches are imported (see " -"linkgit:git-fetch[1])." +"In unusual scenarios, you may not be able to create files larger than a " +"certain size on your filesystem, and this option can be used to tell the " +"command to split the output packfile into multiple independent packfiles, " +"each not larger than the given size. The size can be suffixed with \"k\", \"m" +"\", or \"g\". The minimum size allowed is limited to 1 MiB. This option " +"prevents the creation of a bitmap index. The default is unlimited, unless " +"the config variable `pack.packSizeLimit` is set." msgstr "" -#. type: Plain text -#: en/git-remote.txt:70 -msgid "" -"With `-t <branch>` option, instead of the default glob refspec for the " -"remote to track all branches under the `refs/remotes/<name>/` namespace, a " -"refspec to track only `<branch>` is created. You can give more than one `-t " -"<branch>` to track multiple branches without grabbing all branches." +#. type: Labeled list +#: en/git-pack-objects.txt:126 +#, no-wrap +msgid "--honor-pack-keep" msgstr "" #. type: Plain text -#: en/git-remote.txt:73 +#: en/git-pack-objects.txt:130 msgid "" -"With `-m <master>` option, a symbolic-ref `refs/remotes/<name>/HEAD` is set " -"up to point at remote's `<master>` branch. See also the set-head command." +"This flag causes an object already in a local pack that has a .keep file to " +"be ignored, even if it would have otherwise been packed." msgstr "" -#. type: Plain text -#: en/git-remote.txt:79 -msgid "" -"When a fetch mirror is created with `--mirror=fetch`, the refs will not be " -"stored in the 'refs/remotes/' namespace, but rather everything in 'refs/' on " -"the remote will be directly mirrored into 'refs/' in the local " -"repository. This option only makes sense in bare repositories, because a " -"fetch would overwrite any local commits." +#. type: Labeled list +#: en/git-pack-objects.txt:131 en/git-repack.txt:143 +#, no-wrap +msgid "--keep-pack=<pack-name>" msgstr "" #. type: Plain text -#: en/git-remote.txt:82 +#: en/git-pack-objects.txt:137 msgid "" -"When a push mirror is created with `--mirror=push`, then `git push` will " -"always behave as if `--mirror` was passed." -msgstr "" - -#. type: Labeled list -#: en/git-remote.txt:83 -#, no-wrap -msgid "'rename'" +"This flag causes an object already in the given pack to be ignored, even if " +"it would have otherwise been packed. `<pack-name>` is the the pack file name " +"without leading directory (e.g. `pack-123.pack`). The option could be " +"specified multiple times to keep multiple packs." msgstr "" #. type: Plain text -#: en/git-remote.txt:87 +#: en/git-pack-objects.txt:141 msgid "" -"Rename the remote named <old> to <new>. All remote-tracking branches and " -"configuration settings for the remote are updated." +"This flag causes an object already in a pack to be ignored even if it would " +"have otherwise been packed." msgstr "" #. type: Plain text -#: en/git-remote.txt:91 +#: en/git-pack-objects.txt:146 msgid "" -"In case <old> and <new> are the same, and <old> is a file under " -"`$GIT_DIR/remotes` or `$GIT_DIR/branches`, the remote is converted to the " -"configuration file format." +"This flag causes an object that is borrowed from an alternate object store " +"to be ignored even if it would have otherwise been packed." msgstr "" #. type: Labeled list -#: en/git-remote.txt:92 +#: en/git-pack-objects.txt:147 #, no-wrap -msgid "'remove'" +msgid "--non-empty" +msgstr "" + +#. type: Plain text +#: en/git-pack-objects.txt:150 +msgid "Only create a packed archive if it would contain at least one object." msgstr "" #. type: Labeled list -#: en/git-remote.txt:93 +#: en/git-pack-objects.txt:157 #, no-wrap -msgid "'rm'" +msgid "--all-progress" msgstr "" #. type: Plain text -#: en/git-remote.txt:97 +#: en/git-pack-objects.txt:167 msgid "" -"Remove the remote named <name>. All remote-tracking branches and " -"configuration settings for the remote are removed." +"When --stdout is specified then progress report is displayed during the " +"object count and compression phases but inhibited during the write-out " +"phase. The reason is that in some cases the output stream is directly linked " +"to another command which may wish to display progress status of its own as " +"it processes incoming pack data. This flag is like --progress except that " +"it forces progress report for the write-out phase as well even if --stdout " +"is used." msgstr "" #. type: Labeled list -#: en/git-remote.txt:98 +#: en/git-pack-objects.txt:168 #, no-wrap -msgid "'set-head'" +msgid "--all-progress-implied" msgstr "" #. type: Plain text -#: en/git-remote.txt:107 +#: en/git-pack-objects.txt:172 msgid "" -"Sets or deletes the default branch (i.e. the target of the symbolic-ref " -"`refs/remotes/<name>/HEAD`) for the named remote. Having a default branch " -"for a remote is not required, but allows the name of the remote to be " -"specified in lieu of a specific branch. For example, if the default branch " -"for `origin` is set to `master`, then `origin` may be specified wherever you " -"would normally specify `origin/master`." +"This is used to imply --all-progress whenever progress display is " +"activated. Unlike --all-progress this flag doesn't actually force any " +"progress display by itself." msgstr "" #. type: Plain text -#: en/git-remote.txt:109 +#: en/git-pack-objects.txt:176 msgid "" -"With `-d` or `--delete`, the symbolic ref `refs/remotes/<name>/HEAD` is " -"deleted." +"This flag makes the command not to report its progress on the standard error " +"stream." msgstr "" -#. type: Plain text -#: en/git-remote.txt:116 -msgid "" -"With `-a` or `--auto`, the remote is queried to determine its `HEAD`, then " -"the symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., " -"if the remote `HEAD` is pointed at `next`, \"`git remote set-head origin " -"-a`\" will set the symbolic-ref `refs/remotes/origin/HEAD` to " -"`refs/remotes/origin/next`. This will only work if " -"`refs/remotes/origin/next` already exists; if not it must be fetched first." +#. type: Labeled list +#: en/git-pack-objects.txt:177 +#, no-wrap +msgid "--no-reuse-delta" msgstr "" #. type: Plain text -#: en/git-remote.txt:121 +#: en/git-pack-objects.txt:183 msgid "" -"Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` " -"explicitly. e.g., \"git remote set-head origin master\" will set the " -"symbolic-ref `refs/remotes/origin/HEAD` to " -"`refs/remotes/origin/master`. This will only work if " -"`refs/remotes/origin/master` already exists; if not it must be fetched " -"first." +"When creating a packed archive in a repository that has existing packs, the " +"command reuses existing deltas. This sometimes results in a slightly " +"suboptimal pack. This flag tells the command not to reuse existing deltas " +"but compute them from scratch." msgstr "" #. type: Labeled list -#: en/git-remote.txt:123 +#: en/git-pack-objects.txt:184 #, no-wrap -msgid "'set-branches'" +msgid "--no-reuse-object" msgstr "" #. type: Plain text -#: en/git-remote.txt:128 +#: en/git-pack-objects.txt:190 msgid "" -"Changes the list of branches tracked by the named remote. This can be used " -"to track a subset of the available remote branches after the initial setup " -"for a remote." +"This flag tells the command not to reuse existing object data at all, " +"including non deltified object, forcing recompression of everything. This " +"implies --no-reuse-delta. Useful only in the obscure case where wholesale " +"enforcement of a different compression level on the packed data is desired." msgstr "" -#. type: Plain text -#: en/git-remote.txt:131 -msgid "" -"The named branches will be interpreted as if specified with the `-t` option " -"on the 'git remote add' command line." +#. type: Labeled list +#: en/git-pack-objects.txt:191 +#, no-wrap +msgid "--compression=<n>" msgstr "" #. type: Plain text -#: en/git-remote.txt:134 +#: en/git-pack-objects.txt:198 msgid "" -"With `--add`, instead of replacing the list of currently tracked branches, " -"adds to that list." +"Specifies compression level for newly-compressed data in the generated " +"pack. If not specified, pack compression level is determined first by pack." +"compression, then by core.compression, and defaults to -1, the zlib default, " +"if neither is set. Add --no-reuse-object if you want to force a uniform " +"compression level on all data no matter the source." msgstr "" #. type: Labeled list -#: en/git-remote.txt:135 +#: en/git-pack-objects.txt:199 en/git-show-branch.txt:67 +#: en/rev-list-options.txt:342 en/rev-list-options.txt:475 #, no-wrap -msgid "'get-url'" +msgid "--sparse" msgstr "" #. type: Plain text -#: en/git-remote.txt:139 +#: en/git-pack-objects.txt:207 msgid "" -"Retrieves the URLs for a remote. Configurations for `insteadOf` and " -"`pushInsteadOf` are expanded here. By default, only the first URL is listed." +"Use the \"sparse\" algorithm to determine which objects to include in the " +"pack, when combined with the \"--revs\" option. This algorithm only walks " +"trees that appear in paths that introduce new objects. This can have " +"significant performance benefits when computing a pack to send a small " +"change. However, it is possible that extra objects are added to the pack-" +"file if the included commits contain certain types of direct renames." msgstr "" #. type: Plain text -#: en/git-remote.txt:141 -msgid "With `--push`, push URLs are queried rather than fetch URLs." +#: en/git-pack-objects.txt:212 +msgid "" +"Create a \"thin\" pack by omitting the common objects between a sender and a " +"receiver in order to reduce network transfer. This option only makes sense " +"in conjunction with --stdout." msgstr "" #. type: Plain text -#: en/git-remote.txt:143 -msgid "With `--all`, all URLs for the remote will be listed." +#: en/git-pack-objects.txt:217 +msgid "" +"Note: A thin pack violates the packed archive format by omitting required " +"objects and is thus unusable by Git without making it self-contained. Use " +"`git index-pack --fix-thin` (see linkgit:git-index-pack[1]) to restore the " +"self-contained property." msgstr "" #. type: Labeled list -#: en/git-remote.txt:144 +#: en/git-pack-objects.txt:218 #, no-wrap -msgid "'set-url'" +msgid "--shallow" msgstr "" #. type: Plain text -#: en/git-remote.txt:149 +#: en/git-pack-objects.txt:222 msgid "" -"Changes URLs for the remote. Sets first URL for remote <name> that matches " -"regex <oldurl> (first URL if no <oldurl> is given) to <newurl>. If <oldurl> " -"doesn't match any URL, an error occurs and nothing is changed." +"Optimize a pack that will be provided to a client with a shallow " +"repository. This option, combined with --thin, can result in a smaller pack " +"at the cost of speed." msgstr "" -#. type: Plain text -#: en/git-remote.txt:151 -msgid "With `--push`, push URLs are manipulated instead of fetch URLs." +#. type: Labeled list +#: en/git-pack-objects.txt:223 +#, no-wrap +msgid "--delta-base-offset" msgstr "" #. type: Plain text -#: en/git-remote.txt:153 -msgid "With `--add`, instead of changing existing URLs, new URL is added." +#: en/git-pack-objects.txt:233 +msgid "" +"A packed archive can express the base object of a delta as either a 20-byte " +"object name or as an offset in the stream, but ancient versions of Git don't " +"understand the latter. By default, 'git pack-objects' only uses the former " +"format for better compatibility. This option allows the command to use the " +"latter format for compactness. Depending on the average delta chain length, " +"this option typically shrinks the resulting packfile by 3-5 per-cent." msgstr "" #. type: Plain text -#: en/git-remote.txt:157 +#: en/git-pack-objects.txt:238 msgid "" -"With `--delete`, instead of changing existing URLs, all URLs matching regex " -"<url> are deleted for remote <name>. Trying to delete all non-push URLs is " -"an error." +"Note: Porcelain commands such as `git gc` (see linkgit:git-gc[1]), `git " +"repack` (see linkgit:git-repack[1]) pass this option by default in modern " +"Git when they put objects in your repository into pack files. So does `git " +"bundle` (see linkgit:git-bundle[1]) when it creates a bundle." msgstr "" #. type: Plain text -#: en/git-remote.txt:164 +#: en/git-pack-objects.txt:248 msgid "" -"Note that the push URL and the fetch URL, even though they can be set " -"differently, must still refer to the same place. What you pushed to the " -"push URL should be what you would see if you immediately fetched from the " -"fetch URL. If you are trying to fetch from one place (e.g. your upstream) " -"and push to another (e.g. your publishing repository), use two separate " -"remotes." +"Specifies the number of threads to spawn when searching for best delta " +"matches. This requires that pack-objects be compiled with pthreads " +"otherwise this option is ignored with a warning. This is meant to reduce " +"packing time on multiprocessor machines. The required amount of memory for " +"the delta search window is however multiplied by the number of threads. " +"Specifying 0 will cause Git to auto-detect the number of CPU's and set the " +"number of threads accordingly." msgstr "" #. type: Labeled list -#: en/git-remote.txt:166 +#: en/git-pack-objects.txt:254 #, no-wrap -msgid "'show'" -msgstr "" - -#. type: Plain text -#: en/git-remote.txt:169 -msgid "Gives some information about the remote <name>." +msgid "--keep-true-parents" msgstr "" #. type: Plain text -#: en/git-remote.txt:172 +#: en/git-pack-objects.txt:257 msgid "" -"With `-n` option, the remote heads are not queried first with `git ls-remote " -"<name>`; cached information is used instead." +"With this option, parents that are hidden by grafts are packed nevertheless." msgstr "" #. type: Labeled list -#: en/git-remote.txt:173 +#: en/git-pack-objects.txt:258 en/rev-list-options.txt:711 #, no-wrap -msgid "'prune'" +msgid "--filter=<filter-spec>" msgstr "" #. type: Plain text -#: en/git-remote.txt:179 +#: en/git-pack-objects.txt:262 msgid "" -"Deletes all stale remote-tracking branches under <name>. These stale " -"branches have already been removed from the remote repository referenced by " -"<name>, but are still locally available in \"remotes/<name>\"." +"Requires `--stdout`. Omits certain objects (usually blobs) from the " +"resulting packfile. See linkgit:git-rev-list[1] for valid `<filter-spec>` " +"forms." +msgstr "" + +#. type: Labeled list +#: en/git-pack-objects.txt:263 en/rev-list-options.txt:741 +#, no-wrap +msgid "--no-filter" msgstr "" #. type: Plain text -#: en/git-remote.txt:182 -msgid "" -"With `--dry-run` option, report what branches will be pruned, but do not " -"actually prune them." +#: en/git-pack-objects.txt:265 +msgid "Turns off any previous `--filter=` argument." msgstr "" #. type: Labeled list -#: en/git-remote.txt:183 +#: en/git-pack-objects.txt:266 en/rev-list-options.txt:748 #, no-wrap -msgid "'update'" +msgid "--missing=<missing-action>" msgstr "" #. type: Plain text -#: en/git-remote.txt:191 +#: en/git-pack-objects.txt:269 en/rev-list-options.txt:751 msgid "" -"Fetch updates for a named set of remotes in the repository as defined by " -"remotes.<group>. If a named group is not specified on the command line, the " -"configuration parameter remotes.default will be used; if remotes.default is " -"not defined, all remotes which do not have the configuration parameter " -"remote.<name>.skipDefaultUpdate set to true will be updated. (See " -"linkgit:git-config[1])." +"A debug option to help with future \"partial clone\" development. This " +"option specifies how missing objects are handled." msgstr "" #. type: Plain text -#: en/git-remote.txt:193 -msgid "With `--prune` option, prune all the remotes that are updated." +#: en/git-pack-objects.txt:272 +msgid "" +"The form '--missing=error' requests that pack-objects stop with an error if " +"a missing object is encountered. This is the default action." msgstr "" #. type: Plain text -#: en/git-remote.txt:201 +#: en/git-pack-objects.txt:276 en/rev-list-options.txt:758 msgid "" -"The remote configuration is achieved using the `remote.origin.url` and " -"`remote.origin.fetch` configuration variables. (See linkgit:git-config[1])." +"The form '--missing=allow-any' will allow object traversal to continue if a " +"missing object is encountered. Missing objects will silently be omitted " +"from the results." msgstr "" #. type: Plain text -#: en/git-remote.txt:206 -msgid "Add a new remote, fetch, and check out a branch from it" +#: en/git-pack-objects.txt:280 +msgid "" +"The form '--missing=allow-promisor' is like 'allow-any', but will only allow " +"object traversal to continue for EXPECTED promisor missing objects. " +"Unexpected missing object will raise an error." msgstr "" -#. type: delimited block - -#: en/git-remote.txt:231 +#. type: Labeled list +#: en/git-pack-objects.txt:281 en/rev-list-options.txt:766 #, no-wrap -msgid "" -"$ git remote\n" -"origin\n" -"$ git branch -r\n" -" origin/HEAD -> origin/master\n" -" origin/master\n" -"$ git remote add staging git://git.kernel.org/.../gregkh/staging.git\n" -"$ git remote\n" -"origin\n" -"staging\n" -"$ git fetch staging\n" -"...\n" -"From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n" -" * [new branch] master -> staging/master\n" -" * [new branch] staging-linus -> staging/staging-linus\n" -" * [new branch] staging-next -> staging/staging-next\n" -"$ git branch -r\n" -" origin/HEAD -> origin/master\n" -" origin/master\n" -" staging/master\n" -" staging/staging-linus\n" -" staging/staging-next\n" -"$ git checkout -b staging staging/master\n" -"...\n" +msgid "--exclude-promisor-objects" msgstr "" #. type: Plain text -#: en/git-remote.txt:234 -msgid "Imitate 'git clone' but track only selected branches" +#: en/git-pack-objects.txt:287 +msgid "" +"Omit objects that are known to be in the promisor remote. (This option has " +"the purpose of operating only on locally created objects, so that when we " +"repack, we still maintain a distinction between locally created objects " +"[without .promisor] and objects from the promisor remote [with .promisor].) " +"This is used with partial clone." msgstr "" -#. type: delimited block - -#: en/git-remote.txt:241 +#. type: Labeled list +#: en/git-pack-objects.txt:288 en/git-repack.txt:157 #, no-wrap +msgid "--keep-unreachable" +msgstr "" + +#. type: Plain text +#: en/git-pack-objects.txt:293 msgid "" -"$ mkdir project.git\n" -"$ cd project.git\n" -"$ git init\n" -"$ git remote add -f -t master -m master origin git://example.com/git.git/\n" -"$ git merge origin\n" +"Objects unreachable from the refs in packs named with --unpacked= option are " +"added to the resulting pack, in addition to the reachable objects that are " +"not in packs marked with *.keep files. This implies `--revs`." +msgstr "" + +#. type: Labeled list +#: en/git-pack-objects.txt:294 +#, no-wrap +msgid "--pack-loose-unreachable" msgstr "" #. type: Plain text -#: en/git-remote.txt:249 -msgid "linkgit:git-fetch[1] linkgit:git-branch[1] linkgit:git-config[1]" +#: en/git-pack-objects.txt:297 +msgid "" +"Pack unreachable loose objects (and their loose counterparts removed). This " +"implies `--revs`." msgstr "" -#. type: Title = -#: en/git-repack.txt:2 +#. type: Labeled list +#: en/git-pack-objects.txt:298 #, no-wrap -msgid "git-repack(1)" +msgid "--unpack-unreachable" msgstr "" #. type: Plain text -#: en/git-repack.txt:7 -msgid "git-repack - Pack unpacked objects in a repository" +#: en/git-pack-objects.txt:300 +msgid "Keep unreachable objects in loose form. This implies `--revs`." +msgstr "" + +#. type: Labeled list +#: en/git-pack-objects.txt:301 en/git-repack.txt:164 +#, no-wrap +msgid "--delta-islands" msgstr "" #. type: Plain text -#: en/git-repack.txt:13 +#: en/git-pack-objects.txt:304 +msgid "Restrict delta matches based on \"islands\". See DELTA ISLANDS below." +msgstr "" + +#. type: Title - +#: en/git-pack-objects.txt:307 #, no-wrap +msgid "DELTA ISLANDS" +msgstr "" + +#. type: Plain text +#: en/git-pack-objects.txt:319 msgid "" -"'git repack' [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [--window=<n>] " -"[--depth=<n>]\n" +"When possible, `pack-objects` tries to reuse existing on-disk deltas to " +"avoid having to search for new ones on the fly. This is an important " +"optimization for serving fetches, because it means the server can avoid " +"inflating most objects at all and just send the bytes directly from disk. " +"This optimization can't work when an object is stored as a delta against a " +"base which the receiver does not have (and which we are not already " +"sending). In that case the server \"breaks\" the delta and has to find a new " +"one, which has a high CPU cost. Therefore it's important for performance " +"that the set of objects in on-disk delta relationships match what a client " +"would fetch." msgstr "" #. type: Plain text -#: en/git-repack.txt:20 +#: en/git-pack-objects.txt:324 msgid "" -"This command is used to combine all objects that do not currently reside in " -"a \"pack\", into a pack. It can also be used to re-organize existing packs " -"into a single, more efficient pack." +"In a normal repository, this tends to work automatically. The objects are " +"mostly reachable from the branches and tags, and that's what clients fetch. " +"Any deltas we find on the server are likely to be between objects the client " +"has or will have." msgstr "" #. type: Plain text -#: en/git-repack.txt:39 +#: en/git-pack-objects.txt:334 msgid "" -"Instead of incrementally packing the unpacked objects, pack everything " -"referenced into a single pack. Especially useful when packing a repository " -"that is used for private development. Use with `-d`. This will clean up the " -"objects that `git prune` leaves behind, but `git fsck --full --dangling` " -"shows as dangling." +"But in some repository setups, you may have several related but separate " +"groups of ref tips, with clients tending to fetch those groups " +"independently. For example, imagine that you are hosting several \"forks\" " +"of a repository in a single shared object store, and letting clients view " +"them as separate repositories through `GIT_NAMESPACE` or separate repos " +"using the alternates mechanism. A naive repack may find that the optimal " +"delta for an object is against a base that is only found in another fork. " +"But when a client fetches, they will not have the base object, and we'll " +"have to find a new delta on the fly." msgstr "" #. type: Plain text -#: en/git-repack.txt:43 +#: en/git-pack-objects.txt:340 msgid "" -"Note that users fetching over dumb protocols will have to fetch the whole " -"new pack in order to get any contained object, no matter how many other " -"objects in that pack they already have locally." +"A similar situation may exist if you have many refs outside of `refs/heads/` " +"and `refs/tags/` that point to related objects (e.g., `refs/pull` or `refs/" +"changes` used by some hosting providers). By default, clients fetch only " +"heads and tags, and deltas against objects found only in those other groups " +"cannot be sent as-is." msgstr "" #. type: Plain text -#: en/git-repack.txt:54 +#: en/git-pack-objects.txt:348 msgid "" -"Same as `-a`, unless `-d` is used. Then any unreachable objects in a " -"previous pack become loose, unpacked objects, instead of being left in the " -"old pack. Unreachable objects are never intentionally added to a pack, even " -"when repacking. This option prevents unreachable objects from being " -"immediately deleted by way of being left in the old pack and then removed. " -"Instead, the loose unreachable objects will be pruned according to normal " -"expiry rules with the next 'git gc' invocation. See linkgit:git-gc[1]." +"Delta islands solve this problem by allowing you to group your refs into " +"distinct \"islands\". Pack-objects computes which objects are reachable from " +"which islands, and refuses to make a delta from an object `A` against a base " +"which is not present in all of `A`'s islands. This results in slightly " +"larger packs (because we miss some delta opportunities), but guarantees that " +"a fetch of one island will not have to recompute deltas on the fly due to " +"crossing island boundaries." msgstr "" #. type: Plain text -#: en/git-repack.txt:60 +#: en/git-pack-objects.txt:354 msgid "" -"After packing, if the newly created packs make some existing packs " -"redundant, remove the redundant packs. Also run 'git prune-packed' to " -"remove redundant loose object files." +"When repacking with delta islands the delta window tends to get clogged with " +"candidates that are forbidden by the config. Repacking with a big --window " +"helps (and doesn't take as long as it otherwise might because we can reject " +"some object pairs based on islands before doing any computation on the " +"content)." msgstr "" #. type: Plain text -#: en/git-repack.txt:64 +#: en/git-pack-objects.txt:358 +msgid "" +"Islands are configured via the `pack.island` option, which can be specified " +"multiple times. Each value is a left-anchored regular expressions matching " +"refnames. For example:" +msgstr "" + +#. type: delimited block - +#: en/git-pack-objects.txt:363 +#, no-wrap msgid "" -"Pass the `--local` option to 'git pack-objects'. See " -"linkgit:git-pack-objects[1]." +"[pack]\n" +"island = refs/heads/\n" +"island = refs/tags/\n" msgstr "" #. type: Plain text -#: en/git-repack.txt:68 +#: en/git-pack-objects.txt:370 msgid "" -"Pass the `--no-reuse-delta` option to `git-pack-objects`, see " -"linkgit:git-pack-objects[1]." +"puts heads and tags into an island (whose name is the empty string; see " +"below for more on naming). Any refs which do not match those regular " +"expressions (e.g., `refs/pull/123`) is not in any island. Any object which " +"is reachable only from `refs/pull/` (but not heads or tags) is therefore not " +"a candidate to be used as a base for `refs/heads/`." msgstr "" #. type: Plain text -#: en/git-repack.txt:72 +#: en/git-pack-objects.txt:378 msgid "" -"Pass the `--no-reuse-object` option to `git-pack-objects`, see " -"linkgit:git-pack-objects[1]." +"Refs are grouped into islands based on their \"names\", and two regexes that " +"produce the same name are considered to be in the same island. The names are " +"computed from the regexes by concatenating any capture groups from the " +"regex, with a '-' dash in between. (And if there are no capture groups, then " +"the name is the empty string, as in the above example.) This allows you to " +"create arbitrary numbers of islands. Only up to 14 such capture groups are " +"supported though." msgstr "" #. type: Plain text -#: en/git-repack.txt:76 -msgid "Pass the `-q` option to 'git pack-objects'. See linkgit:git-pack-objects[1]." +#: en/git-pack-objects.txt:382 +msgid "" +"For example, imagine you store the refs for each fork in `refs/virtual/ID`, " +"where `ID` is a numeric identifier. You might then configure:" +msgstr "" + +#. type: delimited block - +#: en/git-pack-objects.txt:388 +#, no-wrap +msgid "" +"[pack]\n" +"island = refs/virtual/([0-9]+)/heads/\n" +"island = refs/virtual/([0-9]+)/tags/\n" +"island = refs/virtual/([0-9]+)/(pull)/\n" msgstr "" #. type: Plain text -#: en/git-repack.txt:83 +#: en/git-pack-objects.txt:393 msgid "" -"Do not update the server information with 'git update-server-info'. This " -"option skips updating local catalog files needed to publish this repository " -"(or a direct copy of it) over HTTP or FTP. See " -"linkgit:git-update-server-info[1]." +"That puts the heads and tags for each fork in their own island (named " +"\"1234\" or similar), and the pull refs for each go into their own \"1234-" +"pull\"." msgstr "" #. type: Plain text -#: en/git-repack.txt:94 +#: en/git-pack-objects.txt:397 msgid "" -"These two options affect how the objects contained in the pack are stored " -"using delta compression. The objects are first internally sorted by type, " -"size and optionally names and compared against the other objects within " -"`--window` to see if using delta compression saves space. `--depth` limits " -"the maximum delta depth; making it too deep affects the performance on the " -"unpacker side, because delta data needs to be applied that many times to get " -"to the necessary object. The default value for --window is 10 and --depth " -"is 50." +"Note that we pick a single island for each regex to go into, using \"last " +"one wins\" ordering (which allows repo-specific config to take precedence " +"over user-wide config, and so forth)." msgstr "" #. type: Plain text -#: en/git-repack.txt:107 +#: en/git-pack-objects.txt:403 msgid "" -"This option provides an additional limit on top of `--window`; the window " -"size will dynamically scale down so as to not take up more than '<n>' bytes " -"in memory. This is useful in repositories with a mix of large and small " -"objects to not run out of memory with a large window, but still be able to " -"take advantage of the large window for the smaller objects. The size can be " -"suffixed with \"k\", \"m\", or \"g\". `--window-memory=0` makes memory " -"usage unlimited. The default is taken from the `pack.windowMemory` " -"configuration variable. Note that the actual memory usage will be the limit " -"multiplied by the number of threads used by linkgit:git-pack-objects[1]." +"linkgit:git-rev-list[1] linkgit:git-repack[1] linkgit:git-prune-packed[1]" msgstr "" -#. type: Labeled list -#: en/git-repack.txt:117 +#. type: Title = +#: en/git-pack-redundant.txt:2 #, no-wrap -msgid "--write-bitmap-index" +msgid "git-pack-redundant(1)" msgstr "" #. type: Plain text -#: en/git-repack.txt:123 -msgid "" -"Write a reachability bitmap index as part of the repack. This only makes " -"sense when used with `-a` or `-A`, as the bitmaps must be able to refer to " -"all reachable objects. This option overrides the setting of " -"`repack.writeBitmaps`. This option has no effect if multiple packfiles are " -"created." +#: en/git-pack-redundant.txt:7 +msgid "git-pack-redundant - Find redundant pack files" msgstr "" -#. type: Labeled list -#: en/git-repack.txt:124 +#. type: Plain text +#: en/git-pack-redundant.txt:13 #, no-wrap -msgid "--pack-kept-objects" +msgid "'git pack-redundant' [ --verbose ] [ --alt-odb ] < --all | .pack filename ... >\n" msgstr "" #. type: Plain text -#: en/git-repack.txt:132 +#: en/git-pack-redundant.txt:19 msgid "" -"Include objects in `.keep` files when repacking. Note that we still do not " -"delete `.keep` packs after `pack-objects` finishes. This means that we may " -"duplicate objects, but this makes the option safe to use when there are " -"concurrent pushes or fetches. This option is generally only useful if you " -"are writing bitmaps with `-b` or `repack.writeBitmaps`, as it ensures that " -"the bitmapped packfile has the necessary objects." +"This program computes which packs in your repository are redundant. The " +"output is suitable for piping to `xargs rm` if you are in the root of the " +"repository." msgstr "" -#. type: Labeled list -#: en/git-repack.txt:133 -#, no-wrap -msgid "--unpack-unreachable=<when>" +#. type: Plain text +#: en/git-pack-redundant.txt:24 +msgid "" +"'git pack-redundant' accepts a list of objects on standard input. Any " +"objects given will be ignored when checking which packs are required. This " +"makes the following command useful when wanting to remove packs which " +"contain unreachable objects." msgstr "" #. type: Plain text -#: en/git-repack.txt:138 +#: en/git-pack-redundant.txt:27 msgid "" -"When loosening unreachable objects, do not bother loosening any objects " -"older than `<when>`. This can be used to optimize out the write of any " -"objects that would be immediately pruned by a follow-up `git prune`." +"git fsck --full --unreachable | cut -d ' ' -f3 | \\ git pack-redundant --all " +"| xargs rm" +msgstr "" + +#. type: Plain text +#: en/git-pack-redundant.txt:34 +msgid "Processes all packs. Any filenames on the command line are ignored." msgstr "" #. type: Labeled list -#: en/git-repack.txt:140 +#: en/git-pack-redundant.txt:35 #, no-wrap -msgid "--keep-unreachable" +msgid "--alt-odb" msgstr "" #. type: Plain text -#: en/git-repack.txt:145 +#: en/git-pack-redundant.txt:38 msgid "" -"When used with `-ad`, any unreachable objects from existing packs will be " -"appended to the end of the packfile instead of being removed. In addition, " -"any unreachable loose objects will be packed (and their loose counterparts " -"removed)." +"Don't require objects present in packs from alternate object directories to " +"be present in local packs." msgstr "" #. type: Plain text -#: en/git-repack.txt:158 -msgid "" -"By default, the command passes `--delta-base-offset` option to 'git " -"pack-objects'; this typically results in slightly smaller packs, but the " -"generated packs are incompatible with versions of Git older than version " -"1.4.4. If you need to share your repository with such ancient Git versions, " -"either directly or via the dumb http protocol, then you need to set the " -"configuration variable `repack.UseDeltaBaseOffset` to \"false\" and " -"repack. Access from old Git versions over the native protocol is unaffected " -"by this option as the conversion is performed on the fly as needed in that " -"case." +#: en/git-pack-redundant.txt:41 +msgid "Outputs some statistics to stderr. Has a small performance penalty." msgstr "" #. type: Plain text -#: en/git-repack.txt:163 -msgid "linkgit:git-pack-objects[1] linkgit:git-prune-packed[1]" +#: en/git-pack-redundant.txt:47 +msgid "" +"linkgit:git-pack-objects[1] linkgit:git-repack[1] linkgit:git-prune-packed[1]" msgstr "" #. type: Title = -#: en/git-replace.txt:2 +#: en/git-pack-refs.txt:2 #, no-wrap -msgid "git-replace(1)" +msgid "git-pack-refs(1)" msgstr "" #. type: Plain text -#: en/git-replace.txt:7 -msgid "git-replace - Create, list, delete refs to replace objects" +#: en/git-pack-refs.txt:7 +msgid "git-pack-refs - Pack heads and tags for efficient repository access" msgstr "" #. type: Plain text -#: en/git-replace.txt:16 +#: en/git-pack-refs.txt:12 #, no-wrap -msgid "" -"'git replace' [-f] <object> <replacement>\n" -"'git replace' [-f] --edit <object>\n" -"'git replace' [-f] --graft <commit> [<parent>...]\n" -"'git replace' -d <object>...\n" -"'git replace' [--format=<format>] [-l [<pattern>]]\n" +msgid "'git pack-refs' [--all] [--no-prune]\n" msgstr "" #. type: Plain text -#: en/git-replace.txt:20 -msgid "Adds a 'replace' reference in `refs/replace/` namespace." +#: en/git-pack-refs.txt:24 +msgid "" +"Traditionally, tips of branches and tags (collectively known as 'refs') were " +"stored one file per ref in a (sub)directory under `$GIT_DIR/refs` " +"directory. While many branch tips tend to be updated often, most tags and " +"some branch tips are never updated. When a repository has hundreds or " +"thousands of tags, this one-file-per-ref format both wastes storage and " +"hurts performance." msgstr "" #. type: Plain text -#: en/git-replace.txt:24 +#: en/git-pack-refs.txt:31 msgid "" -"The name of the 'replace' reference is the SHA-1 of the object that is " -"replaced. The content of the 'replace' reference is the SHA-1 of the " -"replacement object." +"This command is used to solve the storage and performance problem by storing " +"the refs in a single file, `$GIT_DIR/packed-refs`. When a ref is missing " +"from the traditional `$GIT_DIR/refs` directory hierarchy, it is looked up in " +"this file and used if found." msgstr "" #. type: Plain text -#: en/git-replace.txt:27 +#: en/git-pack-refs.txt:34 msgid "" -"The replaced object and the replacement object must be of the same type. " -"This restriction can be bypassed using `-f`." +"Subsequent updates to branches always create new files under `$GIT_DIR/refs` " +"directory hierarchy." msgstr "" #. type: Plain text -#: en/git-replace.txt:29 -msgid "Unless `-f` is given, the 'replace' reference must not yet exist." +#: en/git-pack-refs.txt:43 +msgid "" +"A recommended practice to deal with a repository with too many refs is to " +"pack its refs with `--all` once, and occasionally run `git pack-refs`. Tags " +"are by definition stationary and are not expected to change. Branch heads " +"will be packed with the initial `pack-refs --all`, but only the currently " +"active branch heads will become unpacked, and the next `pack-refs` (without " +"`--all`) will leave them unpacked." msgstr "" #. type: Plain text -#: en/git-replace.txt:32 +#: en/git-pack-refs.txt:56 msgid "" -"There is no other restriction on the replaced and replacement objects. " -"Merge commits can be replaced by non-merge commits and vice versa." +"The command by default packs all tags and refs that are already packed, and " +"leaves other refs alone. This is because branches are expected to be " +"actively developed and packing their tips does not help performance. This " +"option causes branch tips to be packed as well. Useful for a repository " +"with many branches of historical interests." msgstr "" #. type: Plain text -#: en/git-replace.txt:36 +#: en/git-pack-refs.txt:61 msgid "" -"Replacement references will be used by default by all Git commands except " -"those doing reachability traversal (prune, pack transfer and fsck)." +"The command usually removes loose refs under `$GIT_DIR/refs` hierarchy after " +"packing them. This option tells it not to." msgstr "" #. type: Plain text -#: en/git-replace.txt:39 +#: en/git-pack-refs.txt:69 msgid "" -"It is possible to disable use of replacement references for any command " -"using the `--no-replace-objects` option just after 'git'." +"Older documentation written before the packed-refs mechanism was introduced " +"may still say things like \".git/refs/heads/<branch> file exists\" when it " +"means \"branch <branch> exists\"." +msgstr "" + +#. type: Title = +#: en/git-parse-remote.txt:2 +#, no-wrap +msgid "git-parse-remote(1)" msgstr "" #. type: Plain text -#: en/git-replace.txt:41 -msgid "For example if commit 'foo' has been replaced by commit 'bar':" +#: en/git-parse-remote.txt:7 +msgid "" +"git-parse-remote - Routines to help parsing remote repository access " +"parameters" msgstr "" -#. type: delimited block - -#: en/git-replace.txt:44 +#. type: Plain text +#: en/git-parse-remote.txt:13 #, no-wrap -msgid "$ git --no-replace-objects cat-file commit foo\n" +msgid "'. \"$(git --exec-path)/git-parse-remote\"'\n" msgstr "" #. type: Plain text -#: en/git-replace.txt:47 -msgid "shows information about commit 'foo', while:" +#: en/git-parse-remote.txt:20 +msgid "" +"This script is included in various scripts to supply routines to parse files " +"under $GIT_DIR/remotes/ and $GIT_DIR/branches/ and configuration variables " +"that are related to fetching, pulling and pushing." msgstr "" -#. type: delimited block - -#: en/git-replace.txt:50 +#. type: Title = +#: en/git-patch-id.txt:2 #, no-wrap -msgid "$ git cat-file commit foo\n" +msgid "git-patch-id(1)" msgstr "" #. type: Plain text -#: en/git-replace.txt:53 -msgid "shows information about commit 'bar'." +#: en/git-patch-id.txt:7 +msgid "git-patch-id - Compute unique ID for a patch" msgstr "" #. type: Plain text -#: en/git-replace.txt:56 -msgid "" -"The `GIT_NO_REPLACE_OBJECTS` environment variable can be set to achieve the " -"same effect as the `--no-replace-objects` option." +#: en/git-patch-id.txt:12 +#, no-wrap +msgid "'git patch-id' [--stable | --unstable]\n" msgstr "" #. type: Plain text -#: en/git-replace.txt:63 -msgid "" -"If an existing replace ref for the same object exists, it will be " -"overwritten (instead of failing)." +#: en/git-patch-id.txt:16 +msgid "Read a patch from the standard input and compute the patch ID for it." msgstr "" #. type: Plain text -#: en/git-replace.txt:67 -msgid "Delete existing replace refs for the given objects." +#: en/git-patch-id.txt:21 +msgid "" +"A \"patch ID\" is nothing but a sum of SHA-1 of the file diffs associated " +"with a patch, with whitespace and line numbers ignored. As such, it's " +"\"reasonably stable\", but at the same time also reasonably unique, i.e., " +"two patches that have the same \"patch ID\" are almost guaranteed to be the " +"same thing." msgstr "" -#. type: Labeled list -#: en/git-replace.txt:68 -#, no-wrap -msgid "--edit <object>" +#. type: Plain text +#: en/git-patch-id.txt:23 +msgid "IOW, you can use this thing to look for likely duplicate commits." msgstr "" #. type: Plain text -#: en/git-replace.txt:76 +#: en/git-patch-id.txt:29 msgid "" -"Edit an object's content interactively. The existing content for <object> is " -"pretty-printed into a temporary file, an editor is launched on the file, and " -"the result is parsed to create a new object of the same type as <object>. A " -"replacement ref is then created to replace <object> with the newly created " -"object. See linkgit:git-var[1] for details about how the editor will be " -"chosen." +"When dealing with 'git diff-tree' output, it takes advantage of the fact " +"that the patch is prefixed with the object name of the commit, and outputs " +"two 40-byte hexadecimal strings. The first string is the patch ID, and the " +"second string is the commit ID. This can be used to make a mapping from " +"patch ID to commit ID." msgstr "" #. type: Labeled list -#: en/git-replace.txt:77 en/git-verify-commit.txt:19 en/git-verify-tag.txt:19 en/diff-options.txt:45 +#: en/git-patch-id.txt:33 #, no-wrap -msgid "--raw" +msgid "--stable" msgstr "" #. type: Plain text -#: en/git-replace.txt:84 -msgid "" -"When editing, provide the raw object contents rather than pretty-printed " -"ones. Currently this only affects trees, which will be shown in their binary " -"form. This is harder to work with, but can help when repairing a tree that " -"is so corrupted it cannot be pretty-printed. Note that you may need to " -"configure your editor to cleanly read and write binary data." +#: en/git-patch-id.txt:35 +msgid "Use a \"stable\" sum of hashes as the patch ID. With this option:" msgstr "" -#. type: Labeled list -#: en/git-replace.txt:85 -#, no-wrap -msgid "--graft <commit> [<parent>...]" +#. type: Plain text +#: en/git-patch-id.txt:41 +msgid "" +"Reordering file diffs that make up a patch does not affect the ID. In " +"particular, two patches produced by comparing the same two trees with two " +"different settings for \"-O<orderfile>\" result in the same patch ID " +"signature, thereby allowing the computed result to be used as a key to index " +"some meta-information about the change between the two trees;" msgstr "" #. type: Plain text -#: en/git-replace.txt:93 +#: en/git-patch-id.txt:47 msgid "" -"Create a graft commit. A new commit is created with the same content as " -"<commit> except that its parents will be [<parent>...] instead of <commit>'s " -"parents. A replacement ref is then created to replace <commit> with the " -"newly created commit. See contrib/convert-grafts-to-replace-refs.sh for an " -"example script based on this option that can convert grafts to replace refs." +"Result is different from the value produced by git 1.9 and older or produced " +"when an \"unstable\" hash (see --unstable below) is configured - even when " +"used on a diff output taken without any use of \"-O<orderfile>\", thereby " +"making existing databases storing such \"unstable\" or historical patch-ids " +"unusable." msgstr "" -#. type: Labeled list -#: en/git-replace.txt:94 en/git-tag.txt:90 +#. type: Plain text +#: en/git-patch-id.txt:49 #, no-wrap -msgid "-l <pattern>" +msgid "This is the default if patchid.stable is set to true.\n" msgstr "" #. type: Labeled list -#: en/git-replace.txt:95 en/git-tag.txt:91 +#: en/git-patch-id.txt:50 #, no-wrap -msgid "--list <pattern>" +msgid "--unstable" msgstr "" #. type: Plain text -#: en/git-replace.txt:100 +#: en/git-patch-id.txt:56 msgid "" -"List replace refs for objects that match the given pattern (or all if no " -"pattern is given). Typing \"git replace\" without arguments, also lists all " -"replace refs." +"Use an \"unstable\" hash as the patch ID. With this option, the result " +"produced is compatible with the patch-id value produced by git 1.9 and " +"older. Users with pre-existing databases storing patch-ids produced by git " +"1.9 and older (who do not deal with reordered patches) may want to use this " +"option." msgstr "" -#. type: Labeled list -#: en/git-replace.txt:101 en/pretty-options.txt:2 +#. type: Plain text +#: en/git-patch-id.txt:58 +msgid "This is the default." +msgstr "" + +#. type: Title = +#: en/git-prune-packed.txt:2 #, no-wrap -msgid "--format=<format>" +msgid "git-prune-packed(1)" msgstr "" #. type: Plain text -#: en/git-replace.txt:105 -msgid "" -"When listing, use the specified <format>, which can be one of 'short', " -"'medium' and 'long'. When omitted, the format defaults to 'short'." +#: en/git-prune-packed.txt:7 +msgid "git-prune-packed - Remove extra objects that are already in pack files" msgstr "" -#. type: Title - -#: en/git-replace.txt:107 +#. type: Plain text +#: en/git-prune-packed.txt:13 #, no-wrap -msgid "FORMATS" +msgid "'git prune-packed' [-n|--dry-run] [-q|--quiet]\n" msgstr "" #. type: Plain text -#: en/git-replace.txt:110 -msgid "The following format are available:" +#: en/git-prune-packed.txt:19 +msgid "" +"This program searches the `$GIT_OBJECT_DIRECTORY` for all objects that " +"currently exist in a pack file as well as the independent object directories." msgstr "" #. type: Plain text -#: en/git-replace.txt:112 -msgid "'short':" +#: en/git-prune-packed.txt:21 +msgid "All such extra objects are removed." msgstr "" #. type: Plain text -#: en/git-replace.txt:113 -msgid "<replaced sha1>" +#: en/git-prune-packed.txt:24 en/git-repack.txt:24 +msgid "" +"A pack is a collection of objects, individually compressed, with delta " +"compression applied, stored in a single file, with an associated index file." msgstr "" #. type: Plain text -#: en/git-replace.txt:114 -msgid "'medium':" +#: en/git-prune-packed.txt:27 en/git-repack.txt:27 +msgid "" +"Packs are used to reduce the load on mirror systems, backup engines, disk " +"storage, etc." msgstr "" #. type: Plain text -#: en/git-replace.txt:115 -msgid "<replaced sha1> -> <replacement sha1>" +#: en/git-prune-packed.txt:35 +msgid "" +"Don't actually remove any objects, only show those that would have been " +"removed." msgstr "" #. type: Plain text -#: en/git-replace.txt:116 -msgid "'long':" +#: en/git-prune-packed.txt:39 +msgid "Squelch the progress indicator." msgstr "" #. type: Plain text -#: en/git-replace.txt:117 -msgid "<replaced sha1> (<replaced type>) -> <replacement sha1> (<replacement type>)" +#: en/git-prune-packed.txt:44 +msgid "linkgit:git-pack-objects[1] linkgit:git-repack[1]" msgstr "" -#. type: Title - -#: en/git-replace.txt:119 +#. type: Title = +#: en/git-prune.txt:2 #, no-wrap -msgid "CREATING REPLACEMENT OBJECTS" +msgid "git-prune(1)" msgstr "" #. type: Plain text -#: en/git-replace.txt:126 -msgid "" -"linkgit:git-filter-branch[1], linkgit:git-hash-object[1] and " -"linkgit:git-rebase[1], among other git commands, can be used to create " -"replacement objects from existing objects. The `--edit` option can also be " -"used with 'git replace' to create a replacement object by editing an " -"existing object." +#: en/git-prune.txt:7 +msgid "git-prune - Prune all unreachable objects from the object database" msgstr "" #. type: Plain text -#: en/git-replace.txt:132 -msgid "" -"If you want to replace many blobs, trees or commits that are part of a " -"string of commits, you may just want to create a replacement string of " -"commits and then only replace the commit at the tip of the target string of " -"commits with the commit at the tip of the replacement string of commits." +#: en/git-prune.txt:13 +#, no-wrap +msgid "'git prune' [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]\n" msgstr "" #. type: Plain text -#: en/git-replace.txt:139 +#: en/git-prune.txt:19 msgid "" -"Comparing blobs or trees that have been replaced with those that replace " -"them will not work properly. And using `git reset --hard` to go back to a " -"replaced commit will move the branch to the replacement commit instead of " -"the replaced commit." +"In most cases, users should run 'git gc', which calls 'git prune'. See the " +"section \"NOTES\", below." msgstr "" #. type: Plain text -#: en/git-replace.txt:142 +#: en/git-prune.txt:29 msgid "" -"There may be other problems when using 'git rev-list' related to pending " -"objects." +"This runs 'git fsck --unreachable' using all the refs available in `refs/`, " +"optionally with additional set of objects specified on the command line, and " +"prunes all unpacked objects unreachable from any of these head objects from " +"the object database. In addition, it prunes the unpacked objects that are " +"also found in packs by running 'git prune-packed'. It also removes entries " +"from .git/shallow that are not reachable by any ref." msgstr "" #. type: Plain text -#: en/git-replace.txt:153 +#: en/git-prune.txt:32 msgid "" -"linkgit:git-hash-object[1] linkgit:git-filter-branch[1] " -"linkgit:git-rebase[1] linkgit:git-tag[1] linkgit:git-branch[1] " -"linkgit:git-commit[1] linkgit:git-var[1] linkgit:git[1]" -msgstr "" - -#. type: Title = -#: en/git-request-pull.txt:2 -#, no-wrap -msgid "git-request-pull(1)" +"Note that unreachable, packed objects will remain. If this is not desired, " +"see linkgit:git-repack[1]." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:7 -msgid "git-request-pull - Generates a summary of pending changes" +#: en/git-prune.txt:40 +msgid "Do not remove anything; just report what it would remove." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:12 -#, no-wrap -msgid "'git request-pull' [-p] <start> <url> [<end>]\n" +#: en/git-prune.txt:44 +msgid "Report all removed objects." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:20 -msgid "" -"Generate a request asking your upstream project to pull changes into their " -"tree. The request, printed to the standard output, begins with the branch " -"description, summarizes the changes and indicates from where they can be " -"pulled." +#: en/git-prune.txt:47 +msgid "Show progress." msgstr "" -#. type: Plain text -#: en/git-request-pull.txt:25 -msgid "" -"The upstream project is expected to have the commit named by `<start>` and " -"the output asks it to integrate the changes you made since that commit, up " -"to the commit named by `<end>`, by visiting the repository named by `<url>`." +#. type: Labeled list +#: en/git-prune.txt:48 en/git-worktree.txt:192 +#, no-wrap +msgid "--expire <time>" msgstr "" #. type: Plain text -#: en/git-request-pull.txt:31 -msgid "Include patch text in the output." +#: en/git-prune.txt:50 +msgid "Only expire loose objects older than <time>." msgstr "" #. type: Labeled list -#: en/git-request-pull.txt:32 +#: en/git-prune.txt:54 #, no-wrap -msgid "<start>" +msgid "<head>..." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:35 +#: en/git-prune.txt:58 msgid "" -"Commit to start at. This names a commit that is already in the upstream " -"history." -msgstr "" - -#. type: Labeled list -#: en/git-request-pull.txt:36 -#, no-wrap -msgid "<url>" +"In addition to objects reachable from any of our references, keep objects " +"reachable from listed <head>s." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:38 -msgid "The repository URL to be pulled from." +#: en/git-prune.txt:65 +msgid "" +"To prune objects not used by your repository or another that borrows from " +"your repository via its `.git/objects/info/alternates`:" msgstr "" -#. type: Labeled list -#: en/git-request-pull.txt:39 +#. type: delimited block - +#: en/git-prune.txt:68 #, no-wrap -msgid "<end>" +msgid "$ git prune $(cd ../another && git rev-parse --all)\n" msgstr "" #. type: Plain text -#: en/git-request-pull.txt:42 +#: en/git-prune.txt:76 msgid "" -"Commit to end at (defaults to HEAD). This names the commit at the tip of " -"the history you are asking to be pulled." +"In most cases, users will not need to call 'git prune' directly, but should " +"instead call 'git gc', which handles pruning along with many other " +"housekeeping tasks." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:47 +#: en/git-prune.txt:79 msgid "" -"When the repository named by `<url>` has the commit at a tip of a ref that " -"is different from the ref you have locally, you can use the " -"`<local>:<remote>` syntax, to have its local name, a colon `:`, and its " -"remote name." +"For a description of which objects are considered for pruning, see 'git " +"fsck''s --unreachable option." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:56 -msgid "" -"Imagine that you built your work on your `master` branch on top of the " -"`v1.0` release, and want it to be integrated to the project. First you push " -"that change to your public repository for others to see:" +#: en/git-prune.txt:86 +msgid "linkgit:git-fsck[1], linkgit:git-gc[1], linkgit:git-reflog[1]" msgstr "" -#. type: Plain text -#: en/git-request-pull.txt:58 +#. type: Title = +#: en/git-pull.txt:2 #, no-wrap -msgid "\tgit push https://git.ko.xz/project master\n" +msgid "git-pull(1)" msgstr "" #. type: Plain text -#: en/git-request-pull.txt:60 -msgid "Then, you run this command:" +#: en/git-pull.txt:7 +msgid "" +"git-pull - Fetch from and integrate with another repository or a local branch" msgstr "" #. type: Plain text -#: en/git-request-pull.txt:62 +#: en/git-pull.txt:13 #, no-wrap -msgid "\tgit request-pull v1.0 https://git.ko.xz/project master\n" +msgid "'git pull' [<options>] [<repository> [<refspec>...]]\n" msgstr "" #. type: Plain text -#: en/git-request-pull.txt:66 +#: en/git-pull.txt:21 msgid "" -"which will produce a request to the upstream, summarizing the changes " -"between the `v1.0` release and your `master`, to pull it from your public " -"repository." +"Incorporates changes from a remote repository into the current branch. In " +"its default mode, `git pull` is shorthand for `git fetch` followed by `git " +"merge FETCH_HEAD`." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:69 +#: en/git-pull.txt:26 msgid "" -"If you pushed your change to a branch whose name is different from the one " -"you have locally, e.g." -msgstr "" - -#. type: Plain text -#: en/git-request-pull.txt:71 -#, no-wrap -msgid "\tgit push https://git.ko.xz/project master:for-linus\n" +"More precisely, 'git pull' runs 'git fetch' with the given parameters and " +"calls 'git merge' to merge the retrieved branch heads into the current " +"branch. With `--rebase`, it runs 'git rebase' instead of 'git merge'." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:73 -msgid "then you can ask that to be pulled with" +#: en/git-pull.txt:33 +msgid "" +"<repository> should be the name of a remote repository as passed to linkgit:" +"git-fetch[1]. <refspec> can name an arbitrary remote ref (for example, the " +"name of a tag) or even a collection of refs with corresponding remote-" +"tracking branches (e.g., refs/heads/{asterisk}:refs/remotes/origin/" +"{asterisk}), but usually it is the name of a branch in the remote repository." msgstr "" #. type: Plain text -#: en/git-request-pull.txt:75 -#, no-wrap -msgid "\tgit request-pull v1.0 https://git.ko.xz/project master:for-linus\n" +#: en/git-pull.txt:37 +msgid "" +"Default values for <repository> and <branch> are read from the \"remote\" " +"and \"merge\" configuration for the current branch as set by linkgit:git-" +"branch[1] `--track`." msgstr "" -#. type: Title = -#: en/git-rerere.txt:2 +#. type: delimited block - +#: en/git-pull.txt:47 #, no-wrap -msgid "git-rerere(1)" +msgid "" +"\t A---B---C master on origin\n" +"\t /\n" +" D---E---F---G master\n" +"\t^\n" +"\torigin/master in your repository\n" msgstr "" #. type: Plain text -#: en/git-rerere.txt:7 -msgid "git-rerere - Reuse recorded resolution of conflicted merges" +#: en/git-pull.txt:54 +msgid "" +"Then \"`git pull`\" will fetch and replay the changes from the remote " +"`master` branch since it diverged from the local `master` (i.e., `E`) until " +"its current commit (`C`) on top of `master` and record the result in a new " +"commit along with the names of the two parent commits and a log message from " +"the user describing the changes." msgstr "" -#. type: Plain text -#: en/git-rerere.txt:12 +#. type: delimited block - +#: en/git-pull.txt:59 #, no-wrap msgid "" -"'git rerere' ['clear'|'forget' " -"<pathspec>|'diff'|'remaining'|'status'|'gc']\n" +"\t A---B---C origin/master\n" +"\t / \\\n" +" D---E---F---G---H master\n" msgstr "" #. type: Plain text -#: en/git-rerere.txt:20 +#: en/git-pull.txt:63 msgid "" -"In a workflow employing relatively long lived topic branches, the developer " -"sometimes needs to resolve the same conflicts over and over again until the " -"topic branches are done (either merged to the \"release\" branch, or sent " -"out and accepted upstream)." +"See linkgit:git-merge[1] for details, including how conflicts are presented " +"and handled." msgstr "" #. type: Plain text -#: en/git-rerere.txt:25 +#: en/git-pull.txt:68 msgid "" -"This command assists the developer in this process by recording conflicted " -"automerge results and corresponding hand resolve results on the initial " -"manual merge, and applying previously recorded hand resolutions to their " -"corresponding automerge results." +"In Git 1.7.0 or later, to cancel a conflicting merge, use `git reset --" +"merge`. *Warning*: In older versions of Git, running 'git pull' with " +"uncommitted changes is discouraged: while possible, it leaves you in a state " +"that may be hard to back out of in the case of a conflict." msgstr "" #. type: Plain text -#: en/git-rerere.txt:29 +#: en/git-pull.txt:73 msgid "" -"You need to set the configuration variable rerere.enabled in order to enable " -"this command." +"If any of the remote changes overlap with local uncommitted changes, the " +"merge will be automatically canceled and the work tree untouched. It is " +"generally best to get any local changes in working order before pulling or " +"stash them away with linkgit:git-stash[1]." msgstr "" #. type: Plain text -#: en/git-rerere.txt:37 +#: en/git-pull.txt:82 msgid "" -"Normally, 'git rerere' is run without arguments or user-intervention. " -"However, it has several commands that allow it to interact with its working " -"state." -msgstr "" - -#. type: Labeled list -#: en/git-rerere.txt:38 -#, no-wrap -msgid "'clear'" +"This is passed to both underlying git-fetch to squelch reporting of during " +"transfer, and underlying git-merge to squelch output during merging." msgstr "" #. type: Plain text -#: en/git-rerere.txt:43 -msgid "" -"Reset the metadata used by rerere if a merge resolution is to be aborted. " -"Calling 'git am [--skip|--abort]' or 'git rebase [--skip|--abort]' will " -"automatically invoke this command." +#: en/git-pull.txt:86 +msgid "Pass --verbose to git-fetch and git-merge." msgstr "" #. type: Labeled list -#: en/git-rerere.txt:44 +#: en/git-pull.txt:87 #, no-wrap -msgid "'forget' <pathspec>" +msgid "--[no-]recurse-submodules[=yes|on-demand|no]" msgstr "" #. type: Plain text -#: en/git-rerere.txt:48 +#: en/git-pull.txt:91 msgid "" -"Reset the conflict resolutions which rerere has recorded for the current " -"conflict in <pathspec>." +"This option controls if new commits of all populated submodules should be " +"fetched and updated, too (see linkgit:git-config[1] and linkgit:" +"gitmodules[5])." msgstr "" -#. type: Labeled list -#: en/git-rerere.txt:49 -#, no-wrap -msgid "'diff'" +#. type: Plain text +#: en/git-pull.txt:93 +msgid "" +"If the checkout is done via rebase, local submodule commits are rebased as " +"well." msgstr "" #. type: Plain text -#: en/git-rerere.txt:55 +#: en/git-pull.txt:95 msgid "" -"Display diffs for the current state of the resolution. It is useful for " -"tracking what has changed while the user is resolving conflicts. Additional " -"arguments are passed directly to the system 'diff' command installed in " -"PATH." +"If the update is done via merge, the submodule conflicts are resolved and " +"checked out." +msgstr "" + +#. type: Title ~ +#: en/git-pull.txt:97 +#, no-wrap +msgid "Options related to merging" msgstr "" #. type: Labeled list -#: en/git-rerere.txt:56 +#: en/git-pull.txt:104 #, no-wrap -msgid "'status'" +msgid "--rebase[=false|true|merges|preserve|interactive]" msgstr "" #. type: Plain text -#: en/git-rerere.txt:59 -msgid "Print paths with conflicts whose merge resolution rerere will record." +#: en/git-pull.txt:110 +msgid "" +"When true, rebase the current branch on top of the upstream branch after " +"fetching. If there is a remote-tracking branch corresponding to the upstream " +"branch and the upstream branch was rebased since last fetched, the rebase " +"uses that information to avoid rebasing non-local changes." msgstr "" -#. type: Labeled list -#: en/git-rerere.txt:60 -#, no-wrap -msgid "'remaining'" +#. type: Plain text +#: en/git-pull.txt:114 +msgid "" +"When set to `merges`, rebase using `git rebase --rebase-merges` so that the " +"local merge commits are included in the rebase (see linkgit:git-rebase[1] " +"for details)." msgstr "" #. type: Plain text -#: en/git-rerere.txt:65 +#: en/git-pull.txt:117 msgid "" -"Print paths with conflicts that have not been autoresolved by rerere. This " -"includes paths whose resolutions cannot be tracked by rerere, such as " -"conflicting submodules." +"When set to preserve, rebase with the `--preserve-merges` option passed to " +"`git rebase` so that locally created merge commits will not be flattened." msgstr "" -#. type: Labeled list -#: en/git-rerere.txt:66 en/git-svn.txt:480 -#, no-wrap -msgid "'gc'" +#. type: Plain text +#: en/git-pull.txt:119 +msgid "When false, merge the current branch into the upstream branch." msgstr "" #. type: Plain text -#: en/git-rerere.txt:74 +#: en/git-pull.txt:121 +msgid "When `interactive`, enable the interactive mode of rebase." +msgstr "" + +#. type: Plain text +#: en/git-pull.txt:125 msgid "" -"Prune records of conflicted merges that occurred a long time ago. By " -"default, unresolved conflicts older than 15 days and resolved conflicts " -"older than 60 days are pruned. These defaults are controlled via the " -"`gc.rerereUnresolved` and `gc.rerereResolved` configuration variables " -"respectively." +"See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in " +"linkgit:git-config[1] if you want to make `git pull` always use `--rebase` " +"instead of merging." msgstr "" #. type: Plain text -#: en/git-rerere.txt:83 +#: en/git-pull.txt:131 msgid "" -"When your topic branch modifies an overlapping area that your master branch " -"(or upstream) touched since your topic branch forked from it, you may want " -"to test it with the latest master, even before your topic branch is ready to " -"be pushed upstream:" +"This is a potentially _dangerous_ mode of operation. It rewrites history, " +"which does not bode well when you published that history already. Do *not* " +"use this option unless you have read linkgit:git-rebase[1] carefully." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:88 +#. type: Labeled list +#: en/git-pull.txt:132 en/git-svn.txt:261 #, no-wrap -msgid "" -" o---*---o topic\n" -" /\n" -" o---o---o---*---o---o master\n" +msgid "--no-rebase" msgstr "" #. type: Plain text -#: en/git-rerere.txt:92 -msgid "" -"For such a test, you need to merge master and topic somehow. One way to do " -"it is to pull master into the topic branch:" +#: en/git-pull.txt:134 +msgid "Override earlier --rebase." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:96 +#. type: Labeled list +#: en/git-pull.txt:135 en/git-rebase.txt:496 #, no-wrap -msgid "" -"\t$ git checkout topic\n" -"\t$ git merge master\n" +msgid "--autostash" msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:100 +#. type: Labeled list +#: en/git-pull.txt:136 en/git-rebase.txt:497 #, no-wrap -msgid "" -" o---*---o---+ topic\n" -" / /\n" -" o---o---o---*---o---o master\n" +msgid "--no-autostash" msgstr "" #. type: Plain text -#: en/git-rerere.txt:106 +#: en/git-pull.txt:141 msgid "" -"The commits marked with `*` touch the same area in the same file; you need " -"to resolve the conflicts when creating the commit marked with `+`. Then you " -"can test the result to make sure your work-in-progress still works with what " -"is in the latest master." +"Before starting rebase, stash local modifications away (see linkgit:git-" +"stash[1]) if needed, and apply the stash entry when done. `--no-autostash` " +"is useful to override the `rebase.autoStash` configuration variable (see " +"linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/git-rerere.txt:114 -msgid "" -"After this test merge, there are two ways to continue your work on the " -"topic. The easiest is to build on top of the test merge commit `+`, and " -"when your work in the topic branch is finally ready, pull the topic branch " -"into master, and/or ask the upstream to pull from you. By that time, " -"however, the master or the upstream might have been advanced since the test " -"merge `+`, in which case the final commit graph would look like this:" +#: en/git-pull.txt:143 +msgid "This option is only valid when \"--rebase\" is used." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:121 +#. type: Title ~ +#: en/git-pull.txt:145 #, no-wrap -msgid "" -"\t$ git checkout topic\n" -"\t$ git merge master\n" -"\t$ ... work on both topic and master branches\n" -"\t$ git checkout master\n" -"\t$ git merge topic\n" +msgid "Options related to fetching" msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:125 +#. type: Title - +#: en/git-pull.txt:156 #, no-wrap -msgid "" -" o---*---o---+---o---o topic\n" -" / / \\\n" -" o---o---o---*---o---o---o---o---+ master\n" +msgid "DEFAULT BEHAVIOUR" msgstr "" #. type: Plain text -#: en/git-rerere.txt:133 +#: en/git-pull.txt:163 msgid "" -"When your topic branch is long-lived, however, your topic branch would end " -"up having many such \"Merge from master\" commits on it, which would " -"unnecessarily clutter the development history. Readers of the Linux kernel " -"mailing list may remember that Linus complained about such too frequent test " -"merges when a subsystem maintainer asked to pull from a branch full of " -"\"useless merges\"." +"Often people use `git pull` without giving any parameter. Traditionally, " +"this has been equivalent to saying `git pull origin`. However, when " +"configuration `branch.<name>.remote` is present while on branch `<name>`, " +"that value is used instead of `origin`." msgstr "" #. type: Plain text -#: en/git-rerere.txt:137 +#: en/git-pull.txt:168 msgid "" -"As an alternative, to keep the topic branch clean of test merges, you could " -"blow away the test merge, and keep building on top of the tip before the " -"test merge:" +"In order to determine what URL to use to fetch from, the value of the " +"configuration `remote.<origin>.url` is consulted and if there is not any " +"such variable, the value on the `URL:` line in `$GIT_DIR/remotes/<origin>` " +"is used." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:145 -#, no-wrap +#. type: Plain text +#: en/git-pull.txt:177 msgid "" -"\t$ git checkout topic\n" -"\t$ git merge master\n" -"\t$ git reset --hard HEAD^ ;# rewind the test merge\n" -"\t$ ... work on both topic and master branches\n" -"\t$ git checkout master\n" -"\t$ git merge topic\n" +"In order to determine what remote branches to fetch (and optionally store in " +"the remote-tracking branches) when the command is run without any refspec " +"parameters on the command line, values of the configuration variable `remote." +"<origin>.fetch` are consulted, and if there aren't any, `$GIT_DIR/remotes/" +"<origin>` is consulted and its `Pull:` lines are used. In addition to the " +"refspec formats described in the OPTIONS section, you can have a globbing " +"refspec that looks like this:" msgstr "" #. type: delimited block - -#: en/git-rerere.txt:149 +#: en/git-pull.txt:180 #, no-wrap -msgid "" -" o---*---o-------o---o topic\n" -" / \\\n" -" o---o---o---*---o---o---o---o---+ master\n" +msgid "refs/heads/*:refs/remotes/origin/*\n" msgstr "" #. type: Plain text -#: en/git-rerere.txt:159 +#: en/git-pull.txt:187 msgid "" -"This would leave only one merge commit when your topic branch is finally " -"ready and merged into the master branch. This merge would require you to " -"resolve the conflict, introduced by the commits marked with `*`. However, " -"this conflict is often the same conflict you resolved when you created the " -"test merge you blew away. 'git rerere' helps you resolve this final " -"conflicted merge using the information from your earlier hand resolve." +"A globbing refspec must have a non-empty RHS (i.e. must store what were " +"fetched in remote-tracking branches), and its LHS and RHS must end with `/" +"*`. The above specifies that all remote branches are tracked using remote-" +"tracking branches in `refs/remotes/origin/` hierarchy under the same name." msgstr "" #. type: Plain text -#: en/git-rerere.txt:167 +#: en/git-pull.txt:191 msgid "" -"Running the 'git rerere' command immediately after a conflicted automerge " -"records the conflicted working tree files, with the usual conflict markers " -"`<<<<<<<`, `=======`, and `>>>>>>>` in them. Later, after you are done " -"resolving the conflicts, running 'git rerere' again will record the resolved " -"state of these files. Suppose you did this when you created the test merge " -"of master into the topic branch." +"The rule to determine which remote branch to merge after fetching is a bit " +"involved, in order not to break backward compatibility." msgstr "" #. type: Plain text -#: en/git-rerere.txt:177 +#: en/git-pull.txt:194 msgid "" -"Next time, after seeing the same conflicted automerge, running 'git rerere' " -"will perform a three-way merge between the earlier conflicted automerge, the " -"earlier manual resolution, and the current conflicted automerge. If this " -"three-way merge resolves cleanly, the result is written out to your working " -"tree file, so you do not have to manually resolve it. Note that 'git " -"rerere' leaves the index file alone, so you still need to do the final " -"sanity checks with `git diff` (or `git diff -c`) and 'git add' when you are " -"satisfied." +"If explicit refspecs were given on the command line of `git pull`, they are " +"all merged." msgstr "" #. type: Plain text -#: en/git-rerere.txt:185 +#: en/git-pull.txt:199 msgid "" -"As a convenience measure, 'git merge' automatically invokes 'git rerere' " -"upon exiting with a failed automerge and 'git rerere' records the hand " -"resolve when it is a new conflict, or reuses the earlier hand resolve when " -"it is not. 'git commit' also invokes 'git rerere' when committing a merge " -"result. What this means is that you do not have to do anything special " -"yourself (besides enabling the rerere.enabled config variable)." +"When no refspec was given on the command line, then `git pull` uses the " +"refspec from the configuration or `$GIT_DIR/remotes/<origin>`. In such " +"cases, the following rules apply:" msgstr "" #. type: Plain text -#: en/git-rerere.txt:190 +#: en/git-pull.txt:203 msgid "" -"In our example, when you do the test merge, the manual resolution is " -"recorded, and it will be reused when you do the actual merge later with the " -"updated master and topic branch, as long as the recorded resolution is still " -"applicable." +"If `branch.<name>.merge` configuration for the current branch `<name>` " +"exists, that is the name of the branch at the remote site that is merged." msgstr "" #. type: Plain text -#: en/git-rerere.txt:194 -msgid "" -"The information 'git rerere' records is also used when running 'git " -"rebase'. After blowing away the test merge and continuing development on " -"the topic branch:" +#: en/git-pull.txt:205 +msgid "If the refspec is a globbing one, nothing is merged." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:199 -#, no-wrap -msgid "" -" o---*---o-------o---o topic\n" -" /\n" -" o---o---o---*---o---o---o---o master\n" +#. type: Plain text +#: en/git-pull.txt:207 +msgid "Otherwise the remote branch of the first refspec is merged." msgstr "" -#. type: delimited block - -#: en/git-rerere.txt:201 -#, no-wrap -msgid "\t$ git rebase master topic\n" +#. type: Plain text +#: en/git-pull.txt:215 +msgid "" +"Update the remote-tracking branches for the repository you cloned from, then " +"merge one of them into your current branch:" msgstr "" #. type: delimited block - -#: en/git-rerere.txt:205 +#: en/git-pull.txt:219 #, no-wrap msgid "" -"\t\t\t\t o---*---o-------o---o topic\n" -"\t\t\t\t /\n" -" o---o---o---*---o---o---o---o master\n" +"$ git pull\n" +"$ git pull origin\n" msgstr "" #. type: Plain text -#: en/git-rerere.txt:213 +#: en/git-pull.txt:224 msgid "" -"you could run `git rebase master topic`, to bring yourself up-to-date before " -"your topic is ready to be sent upstream. This would result in falling back " -"to a three-way merge, and it would conflict the same way as the test merge " -"you resolved earlier. 'git rerere' will be run by 'git rebase' to help you " -"resolve this conflict." +"Normally the branch merged in is the HEAD of the remote repository, but the " +"choice is determined by the branch.<name>.remote and branch.<name>.merge " +"options; see linkgit:git-config[1] for details." msgstr "" -#. type: Title = -#: en/git-reset.txt:2 +#. type: Plain text +#: en/git-pull.txt:226 +msgid "Merge into the current branch the remote branch `next`:" +msgstr "" + +#. type: delimited block - +#: en/git-pull.txt:229 #, no-wrap -msgid "git-reset(1)" +msgid "$ git pull origin next\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:7 -msgid "git-reset - Reset current HEAD to the specified state" +#: en/git-pull.txt:234 +msgid "" +"This leaves a copy of `next` temporarily in FETCH_HEAD, but does not update " +"any remote-tracking branches. Using remote-tracking branches, the same can " +"be done by invoking fetch and merge:" msgstr "" -#. type: Plain text -#: en/git-reset.txt:14 +#. type: delimited block - +#: en/git-pull.txt:238 #, no-wrap msgid "" -"'git reset' [-q] [<tree-ish>] [--] <paths>...\n" -"'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]\n" -"'git reset' [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] " -"[<commit>]\n" +"$ git fetch origin\n" +"$ git merge origin/next\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:21 +#: en/git-pull.txt:243 msgid "" -"In the first and second form, copy entries from <tree-ish> to the index. In " -"the third form, set the current branch head (HEAD) to <commit>, optionally " -"modifying index and working tree to match. The <tree-ish>/<commit> defaults " -"to HEAD in all forms." +"If you tried a pull which resulted in complex conflicts and would want to " +"start over, you can recover with 'git reset'." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:22 -#, no-wrap -msgid "'git reset' [-q] [<tree-ish>] [--] <paths>..." +#. type: Plain text +#: en/git-pull.txt:259 +msgid "linkgit:git-fetch[1], linkgit:git-merge[1], linkgit:git-config[1]" msgstr "" -#. type: Plain text -#: en/git-reset.txt:26 -msgid "" -"This form resets the index entries for all <paths> to their state at " -"<tree-ish>. (It does not affect the working tree or the current branch.)" +#. type: Title = +#: en/git-push.txt:2 +#, no-wrap +msgid "git-push(1)" msgstr "" #. type: Plain text -#: en/git-reset.txt:29 -msgid "This means that `git reset <paths>` is the opposite of `git add <paths>`." +#: en/git-push.txt:7 +msgid "git-push - Update remote refs along with associated objects" msgstr "" #. type: Plain text -#: en/git-reset.txt:36 +#: en/git-push.txt:18 +#, no-wrap msgid "" -"After running `git reset <paths>` to update the index entry, you can use " -"linkgit:git-checkout[1] to check the contents out of the index to the " -"working tree. Alternatively, using linkgit:git-checkout[1] and specifying a " -"commit, you can copy the contents of a path out of a commit to the index and " -"to the working tree in one go." +"'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]\n" +"\t [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]\n" +"\t [-u | --set-upstream] [-o <string> | --push-option=<string>]\n" +"\t [--[no-]signed|--signed=(true|false|if-asked)]\n" +"\t [--force-with-lease[=<refname>[:<expect>]]]\n" +"\t [--no-verify] [<repository> [<refspec>...]]\n" msgstr "" -#. type: Labeled list -#: en/git-reset.txt:37 -#, no-wrap -msgid "'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]" +#. type: Plain text +#: en/git-push.txt:24 +msgid "" +"Updates remote refs using local refs, while sending objects necessary to " +"complete the given refs." msgstr "" #. type: Plain text -#: en/git-reset.txt:41 +#: en/git-push.txt:28 msgid "" -"Interactively select hunks in the difference between the index and " -"<tree-ish> (defaults to HEAD). The chosen hunks are applied in reverse to " -"the index." +"You can make interesting things happen to a repository every time you push " +"into it, by setting up 'hooks' there. See documentation for linkgit:git-" +"receive-pack[1]." msgstr "" #. type: Plain text -#: en/git-reset.txt:45 +#: en/git-push.txt:33 msgid "" -"This means that `git reset -p` is the opposite of `git add -p`, i.e. you " -"can use it to selectively reset hunks. See the ``Interactive Mode'' section " -"of linkgit:git-add[1] to learn how to operate the `--patch` mode." +"When the command line does not specify where to push with the `<repository>` " +"argument, `branch.*.remote` configuration for the current branch is " +"consulted to determine where to push. If the configuration is missing, it " +"defaults to 'origin'." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:46 -#, no-wrap -msgid "'git reset' [<mode>] [<commit>]" +#. type: Plain text +#: en/git-push.txt:39 +msgid "" +"When the command line does not specify what to push with `<refspec>...` " +"arguments or `--all`, `--mirror`, `--tags` options, the command finds the " +"default `<refspec>` by consulting `remote.*.push` configuration, and if it " +"is not found, honors `push.default` configuration to decide what to push " +"(See linkgit:git-config[1] for the meaning of `push.default`)." msgstr "" #. type: Plain text -#: en/git-reset.txt:51 +#: en/git-push.txt:46 msgid "" -"This form resets the current branch head to <commit> and possibly updates " -"the index (resetting it to the tree of <commit>) and the working tree " -"depending on <mode>. If <mode> is omitted, defaults to \"--mixed\". The " -"<mode> must be one of the following:" +"When neither the command-line nor the configuration specify what to push, " +"the default behavior is used, which corresponds to the `simple` value for " +"`push.default`: the current branch is pushed to the corresponding upstream " +"branch, but as a safety measure, the push is aborted if the upstream branch " +"does not have the same name as the local one." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:53 +#. type: Title - +#: en/git-push.txt:49 #, no-wrap -msgid "--soft" +msgid "OPTIONS[[OPTIONS]]" msgstr "" #. type: Plain text -#: en/git-reset.txt:58 +#: en/git-push.txt:55 msgid "" -"Does not touch the index file or the working tree at all (but resets the " -"head to <commit>, just like all modes do). This leaves all your changed " -"files \"Changes to be committed\", as 'git status' would put it." +"The \"remote\" repository that is destination of a push operation. This " +"parameter can be either a URL (see the section <<URLS,GIT URLS>> below) or " +"the name of a remote (see the section <<REMOTES,REMOTES>> below)." msgstr "" #. type: Labeled list -#: en/git-reset.txt:59 +#: en/git-push.txt:56 #, no-wrap -msgid "--mixed" +msgid "<refspec>..." msgstr "" #. type: Plain text -#: en/git-reset.txt:63 +#: en/git-push.txt:61 msgid "" -"Resets the index but not the working tree (i.e., the changed files are " -"preserved but not marked for commit) and reports what has not been " -"updated. This is the default action." +"Specify what destination ref to update with what source object. The format " +"of a <refspec> parameter is an optional plus `+`, followed by the source " +"object <src>, followed by a colon `:`, followed by the destination ref <dst>." msgstr "" #. type: Plain text -#: en/git-reset.txt:66 +#: en/git-push.txt:65 msgid "" -"If `-N` is specified, removed paths are marked as intent-to-add (see " -"linkgit:git-add[1])." -msgstr "" - -#. type: Labeled list -#: en/git-reset.txt:67 -#, no-wrap -msgid "--hard" +"The <src> is often the name of the branch you would want to push, but it can " +"be any arbitrary \"SHA-1 expression\", such as `master~4` or `HEAD` (see " +"linkgit:gitrevisions[7])." msgstr "" #. type: Plain text -#: en/git-reset.txt:70 +#: en/git-push.txt:75 msgid "" -"Resets the index and working tree. Any changes to tracked files in the " -"working tree since <commit> are discarded." +"The <dst> tells which ref on the remote side is updated with this push. " +"Arbitrary expressions cannot be used here, an actual ref must be named. If " +"`git push [<repository>]` without any `<refspec>` argument is set to update " +"some ref at the destination with `<src>` with `remote.<repository>.push` " +"configuration variable, `:<dst>` part can be omitted--such a push will " +"update a ref that `<src>` normally updates without any `<refspec>` on the " +"command line. Otherwise, missing `:<dst>` means to update the same ref as " +"the `<src>`." msgstr "" #. type: Plain text -#: en/git-reset.txt:78 +#: en/git-push.txt:80 msgid "" -"Resets the index and updates the files in the working tree that are " -"different between <commit> and HEAD, but keeps those which are different " -"between the index and working tree (i.e. which have changes which have not " -"been added). If a file that is different between <commit> and the index has " -"unstaged changes, reset is aborted." +"If <dst> doesn't start with `refs/` (e.g. `refs/heads/master`) we will try " +"to infer where in `refs/*` on the destination <repository> it belongs based " +"on the the type of <src> being pushed and whether <dst> is ambiguous." msgstr "" #. type: Plain text -#: en/git-reset.txt:81 +#: en/git-push.txt:84 msgid "" -"In other words, --merge does something like a 'git read-tree -u -m " -"<commit>', but carries forward unmerged index entries." +"If <dst> unambiguously refers to a ref on the <repository> remote, then push " +"to that ref." msgstr "" #. type: Plain text -#: en/git-reset.txt:87 +#: en/git-push.txt:87 msgid "" -"Resets index entries and updates files in the working tree that are " -"different between <commit> and HEAD. If a file that is different between " -"<commit> and HEAD has local changes, reset is aborted." +"If <src> resolves to a ref starting with refs/heads/ or refs/tags/, then " +"prepend that to <dst>." msgstr "" #. type: Plain text -#: en/git-reset.txt:91 +#: en/git-push.txt:93 msgid "" -"If you want to undo a commit other than the latest on a branch, " -"linkgit:git-revert[1] is your friend." +"Other ambiguity resolutions might be added in the future, but for now any " +"other cases will error out with an error indicating what we tried, and " +"depending on the `advice.pushUnqualifiedRefname` configuration (see linkgit:" +"git-config[1]) suggest what refs/ namespace you may have wanted to push to." msgstr "" #. type: Plain text -#: en/git-reset.txt:99 -msgid "Be quiet, only report errors." -msgstr "" - -#. type: Labeled list -#: en/git-reset.txt:104 -#, no-wrap -msgid "Undo add" +#: en/git-push.txt:101 +msgid "" +"The object referenced by <src> is used to update the <dst> reference on the " +"remote side. Whether this is allowed depends on where in `refs/*` the <dst> " +"reference lives as described in detail below, in those sections \"update\" " +"means any modifications except deletes, which as noted after the next few " +"sections are treated differently." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:112 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:104 msgid "" -"$ edit <1>\n" -"$ git add frotz.c filfre.c\n" -"$ mailx <2>\n" -"$ git reset <3>\n" -"$ git pull git://info.example.com/ nitfol <4>\n" +"The `refs/heads/*` namespace will only accept commit objects, and updates " +"only if they can be fast-forwarded." msgstr "" #. type: Plain text -#: en/git-reset.txt:118 +#: en/git-push.txt:108 msgid "" -"You are happily working on something, and find the changes in these files " -"are in good order. You do not want to see them when you run \"git diff\", " -"because you plan to work on other files and changes with these files are " -"distracting." +"The `refs/tags/*` namespace will accept any kind of object (as commits, " +"trees and blobs can be tagged), and any updates to them will be rejected." msgstr "" #. type: Plain text -#: en/git-reset.txt:119 -msgid "Somebody asks you to pull, and the changes sounds worthy of merging." +#: en/git-push.txt:113 +msgid "" +"It's possible to push any type of object to any namespace outside of `refs/" +"{tags,heads}/*`. In the case of tags and commits, these will be treated as " +"if they were the commits inside `refs/heads/*` for the purposes of whether " +"the update is allowed." msgstr "" #. type: Plain text -#: en/git-reset.txt:124 +#: en/git-push.txt:122 msgid "" -"However, you already dirtied the index (i.e. your index does not match the " -"HEAD commit). But you know the pull you are going to make does not affect " -"frotz.c or filfre.c, so you revert the index changes for these two files. " -"Your changes in working tree remain there." +"I.e. a fast-forward of commits and tags outside `refs/{tags,heads}/*` is " +"allowed, even in cases where what's being fast-forwarded is not a commit, " +"but a tag object which happens to point to a new commit which is a fast-" +"forward of the commit the last tag (or commit) it's replacing. Replacing a " +"tag with an entirely different tag is also allowed, if it points to the same " +"commit, as well as pushing a peeled tag, i.e. pushing the commit that " +"existing tag object points to, or a new tag object which an existing commit " +"points to." msgstr "" #. type: Plain text -#: en/git-reset.txt:126 +#: en/git-push.txt:126 msgid "" -"Then you can pull and merge, leaving frotz.c and filfre.c changes still in " -"the working tree." +"Tree and blob objects outside of `refs/{tags,heads}/*` will be treated the " +"same way as if they were inside `refs/tags/*`, any update of them will be " +"rejected." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:127 -#, no-wrap -msgid "Undo a commit and redo" +#. type: Plain text +#: en/git-push.txt:135 +msgid "" +"All of the rules described above about what's not allowed as an update can " +"be overridden by adding an the optional leading `+` to a refspec (or using " +"`--force` command line option). The only exception to this is that no amount " +"of forcing will make the `refs/heads/*` namespace accept a non-commit " +"object. Hooks and configuration can also override or amend these rules, see " +"e.g. `receive.denyNonFastForwards` in linkgit:git-config[1] and `pre-" +"receive` and `update` in linkgit:githooks[5]." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:134 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:141 msgid "" -"$ git commit ...\n" -"$ git reset --soft HEAD^ <1>\n" -"$ edit <2>\n" -"$ git commit -a -c ORIG_HEAD <3>\n" +"Pushing an empty <src> allows you to delete the <dst> ref from the remote " +"repository. Deletions are always accepted without a leading `+` in the " +"refspec (or `--force`), except when forbidden by configuration or hooks. See " +"`receive.denyDeletes` in linkgit:git-config[1] and `pre-receive` and " +"`update` in linkgit:githooks[5]." msgstr "" #. type: Plain text -#: en/git-reset.txt:139 +#: en/git-push.txt:146 msgid "" -"This is most often done when you remembered what you just committed is " -"incomplete, or you misspelled your commit message, or both. Leaves working " -"tree as it was before \"reset\"." +"The special refspec `:` (or `+:` to allow non-fast-forward updates) directs " +"Git to push \"matching\" branches: for every branch that exists on the local " +"side, the remote side is updated if a branch of the same name already exists " +"on the remote side." msgstr "" #. type: Plain text -#: en/git-reset.txt:140 -msgid "Make corrections to working tree files." +#: en/git-push.txt:148 +msgid "`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`." msgstr "" #. type: Plain text -#: en/git-reset.txt:143 +#: en/git-push.txt:152 msgid "" -"\"reset\" copies the old head to .git/ORIG_HEAD; redo the commit by starting " -"with its log message. If you do not need to edit the message further, you " -"can give -C option instead." +"Push all branches (i.e. refs under `refs/heads/`); cannot be used with other " +"<refspec>." msgstr "" #. type: Plain text -#: en/git-reset.txt:145 -msgid "See also the --amend option to linkgit:git-commit[1]." -msgstr "" - -#. type: Labeled list -#: en/git-reset.txt:146 -#, no-wrap -msgid "Undo a commit, making it a topic branch" +#: en/git-push.txt:160 +msgid "" +"Remove remote branches that don't have a local counterpart. For example a " +"remote branch `tmp` will be removed if a local branch with the same name " +"doesn't exist any more. This also respects refspecs, e.g. `git push --prune " +"remote refs/heads/*:refs/tmp/*` would make sure that remote `refs/tmp/foo` " +"will be removed if `refs/heads/foo` doesn't exist." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:152 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:171 msgid "" -"$ git branch topic/wip <1>\n" -"$ git reset --hard HEAD~3 <2>\n" -"$ git checkout topic/wip <3>\n" +"Instead of naming each ref to push, specifies that all refs under `refs/` " +"(which includes but is not limited to `refs/heads/`, `refs/remotes/`, and " +"`refs/tags/`) be mirrored to the remote repository. Newly created local " +"refs will be pushed to the remote end, locally updated refs will be force " +"updated on the remote end, and deleted refs will be removed from the remote " +"end. This is the default if the configuration option `remote.<remote>." +"mirror` is set." msgstr "" #. type: Plain text -#: en/git-reset.txt:158 +#: en/git-push.txt:180 msgid "" -"You have made some commits, but realize they were premature to be in the " -"\"master\" branch. You want to continue polishing them in a topic branch, " -"so create \"topic/wip\" branch off of the current HEAD." +"Produce machine-readable output. The output status line for each ref will " +"be tab-separated and sent to stdout instead of stderr. The full symbolic " +"names of the refs will be given." msgstr "" #. type: Plain text -#: en/git-reset.txt:159 -msgid "Rewind the master branch to get rid of those three commits." +#: en/git-push.txt:185 +msgid "" +"All listed refs are deleted from the remote repository. This is the same as " +"prefixing all refs with a colon." msgstr "" #. type: Plain text -#: en/git-reset.txt:160 -msgid "Switch to \"topic/wip\" branch and keep working." +#: en/git-push.txt:190 +msgid "" +"All refs under `refs/tags` are pushed, in addition to refspecs explicitly " +"listed on the command line." msgstr "" #. type: Labeled list -#: en/git-reset.txt:161 +#: en/git-push.txt:191 #, no-wrap -msgid "Undo commits permanently" +msgid "--follow-tags" msgstr "" -#. type: delimited block - -#: en/git-reset.txt:166 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:198 msgid "" -"$ git commit ...\n" -"$ git reset --hard HEAD~3 <1>\n" -msgstr "" - -#. type: Plain text -#: en/git-reset.txt:173 -msgid "" -"The last three commits (HEAD, HEAD^, and HEAD~2) were bad and you do not " -"want to ever see them again. Do *not* do this if you have already given " -"these commits to somebody else. (See the \"RECOVERING FROM UPSTREAM " -"REBASE\" section in linkgit:git-rebase[1] for the implications of doing so.)" +"Push all the refs that would be pushed without this option, and also push " +"annotated tags in `refs/tags` that are missing from the remote but are " +"pointing at commit-ish that are reachable from the refs being pushed. This " +"can also be specified with configuration variable `push.followTags`. For " +"more information, see `push.followTags` in linkgit:git-config[1]." msgstr "" #. type: Labeled list -#: en/git-reset.txt:174 +#: en/git-push.txt:199 en/git-send-pack.txt:73 #, no-wrap -msgid "Undo a merge or pull" +msgid "--[no-]signed" msgstr "" -#. type: delimited block - -#: en/git-reset.txt:186 +#. type: Labeled list +#: en/git-push.txt:200 en/git-send-pack.txt:74 #, no-wrap -msgid "" -"$ git pull <1>\n" -"Auto-merging nitfol\n" -"CONFLICT (content): Merge conflict in nitfol\n" -"Automatic merge failed; fix conflicts and then commit the result.\n" -"$ git reset --hard <2>\n" -"$ git pull . topic/branch <3>\n" -"Updating from 41223... to 13134...\n" -"Fast-forward\n" -"$ git reset --hard ORIG_HEAD <4>\n" +msgid "--signed=(true|false|if-asked)" msgstr "" #. type: Plain text -#: en/git-reset.txt:191 +#: en/git-push.txt:209 en/git-send-pack.txt:83 msgid "" -"Try to update from the upstream resulted in a lot of conflicts; you were not " -"ready to spend a lot of time merging right now, so you decide to do that " -"later." +"GPG-sign the push request to update refs on the receiving side, to allow it " +"to be checked by the hooks and/or be logged. If `false` or `--no-signed`, " +"no signing will be attempted. If `true` or `--signed`, the push will fail " +"if the server does not support signed pushes. If set to `if-asked`, sign if " +"and only if the server supports signed pushes. The push will also fail if " +"the actual call to `gpg --sign` fails. See linkgit:git-receive-pack[1] for " +"the details on the receiving end." msgstr "" -#. type: Plain text -#: en/git-reset.txt:194 -msgid "" -"\"pull\" has not made merge commit, so \"git reset --hard\" which is a " -"synonym for \"git reset --hard HEAD\" clears the mess from the index file " -"and the working tree." +#. type: Labeled list +#: en/git-push.txt:210 +#, no-wrap +msgid "--[no-]atomic" msgstr "" #. type: Plain text -#: en/git-reset.txt:196 +#: en/git-push.txt:214 msgid "" -"Merge a topic branch into the current branch, which resulted in a " -"fast-forward." +"Use an atomic transaction on the remote side if available. Either all refs " +"are updated, or on error, no refs are updated. If the server does not " +"support atomic pushes the push will fail." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:216 +#, no-wrap +msgid "--push-option=<option>" msgstr "" #. type: Plain text -#: en/git-reset.txt:201 +#: en/git-push.txt:226 msgid "" -"But you decided that the topic branch is not ready for public consumption " -"yet. \"pull\" or \"merge\" always leaves the original tip of the current " -"branch in ORIG_HEAD, so resetting hard to it brings your index file and the " -"working tree back to that state, and resets the tip of the branch to that " -"commit." +"Transmit the given string to the server, which passes them to the pre-" +"receive as well as the post-receive hook. The given string must not contain " +"a NUL or LF character. When multiple `--push-option=<option>` are given, " +"they are all sent to the other side in the order listed on the command " +"line. When no `--push-option=<option>` is given from the command line, the " +"values of configuration variable `push.pushOption` are used instead." msgstr "" #. type: Labeled list -#: en/git-reset.txt:202 +#: en/git-push.txt:227 en/git-send-pack.txt:28 #, no-wrap -msgid "Undo a merge or pull inside a dirty working tree" +msgid "--receive-pack=<git-receive-pack>" msgstr "" -#. type: delimited block - -#: en/git-reset.txt:211 +#. type: Labeled list +#: en/git-push.txt:228 en/git-send-pack.txt:34 #, no-wrap -msgid "" -"$ git pull <1>\n" -"Auto-merging nitfol\n" -"Merge made by recursive.\n" -" nitfol | 20 +++++----\n" -" ...\n" -"$ git reset --merge ORIG_HEAD <2>\n" +msgid "--exec=<git-receive-pack>" msgstr "" #. type: Plain text -#: en/git-reset.txt:217 +#: en/git-push.txt:233 en/git-send-pack.txt:33 msgid "" -"Even if you may have local modifications in your working tree, you can " -"safely say \"git pull\" when you know that the change in the other branch " -"does not overlap with them." +"Path to the 'git-receive-pack' program on the remote end. Sometimes useful " +"when pushing to a remote repository over ssh, and you do not have the " +"program in a directory on the default $PATH." msgstr "" -#. type: Plain text -#: en/git-reset.txt:222 -msgid "" -"After inspecting the result of the merge, you may find that the change in " -"the other branch is unsatisfactory. Running \"git reset --hard ORIG_HEAD\" " -"will let you go back to where you were, but it will discard your local " -"changes, which you do not want. \"git reset --merge\" keeps your local " -"changes." +#. type: Labeled list +#: en/git-push.txt:234 +#, no-wrap +msgid "--[no-]force-with-lease" msgstr "" #. type: Labeled list -#: en/git-reset.txt:224 en/git-stash.txt:224 +#: en/git-push.txt:235 #, no-wrap -msgid "Interrupted workflow" +msgid "--force-with-lease=<refname>" +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:236 +#, no-wrap +msgid "--force-with-lease=<refname>:<expect>" msgstr "" #. type: Plain text -#: en/git-reset.txt:230 +#: en/git-push.txt:239 msgid "" -"Suppose you are interrupted by an urgent fix request while you are in the " -"middle of a large change. The files in your working tree are not in any " -"shape to be committed yet, but you need to get to the other branch for a " -"quick bugfix." +"Usually, \"git push\" refuses to update a remote ref that is not an ancestor " +"of the local ref used to overwrite it." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:241 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:242 msgid "" -"$ git checkout feature ;# you were working in \"feature\" branch and\n" -"$ work work work ;# got interrupted\n" -"$ git commit -a -m \"snapshot WIP\" <1>\n" -"$ git checkout master\n" -"$ fix fix fix\n" -"$ git commit ;# commit with real log\n" -"$ git checkout feature\n" -"$ git reset --soft HEAD^ ;# go back to WIP state <2>\n" -"$ git reset <3>\n" +"This option overrides this restriction if the current value of the remote " +"ref is the expected value. \"git push\" fails otherwise." msgstr "" #. type: Plain text -#: en/git-reset.txt:244 -msgid "This commit will get blown away so a throw-away log message is OK." +#: en/git-push.txt:249 +msgid "" +"Imagine that you have to rebase what you have already published. You will " +"have to bypass the \"must fast-forward\" rule in order to replace the " +"history you originally published with the rebased history. If somebody else " +"built on top of your original history while you are rebasing, the tip of the " +"branch at the remote may advance with her commit, and blindly pushing with " +"`--force` will lose her work." msgstr "" #. type: Plain text -#: en/git-reset.txt:246 +#: en/git-push.txt:256 msgid "" -"This removes the 'WIP' commit from the commit history, and sets your working " -"tree to the state just before you made that snapshot." +"This option allows you to say that you expect the history you are updating " +"is what you rebased and want to replace. If the remote ref still points at " +"the commit you specified, you can be sure that no other people did anything " +"to the ref. It is like taking a \"lease\" on the ref without explicitly " +"locking it, and the remote ref is updated only if the \"lease\" is still " +"valid." msgstr "" #. type: Plain text -#: en/git-reset.txt:249 +#: en/git-push.txt:261 msgid "" -"At this point the index file still has all the WIP changes you committed as " -"'snapshot WIP'. This updates the index to show your WIP files as " -"uncommitted." +"`--force-with-lease` alone, without specifying the details, will protect all " +"remote refs that are going to be updated by requiring their current value to " +"be the same as the remote-tracking branch we have for them." msgstr "" #. type: Plain text -#: en/git-reset.txt:251 -msgid "See also linkgit:git-stash[1]." +#: en/git-push.txt:266 +msgid "" +"`--force-with-lease=<refname>`, without specifying the expected value, will " +"protect the named ref (alone), if it is going to be updated, by requiring " +"its current value to be the same as the remote-tracking branch we have for " +"it." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:252 -#, no-wrap -msgid "Reset a single file in the index" +#. type: Plain text +#: en/git-push.txt:274 +msgid "" +"`--force-with-lease=<refname>:<expect>` will protect the named ref (alone), " +"if it is going to be updated, by requiring its current value to be the same " +"as the specified value `<expect>` (which is allowed to be different from the " +"remote-tracking branch we have for the refname, or we do not even have to " +"have such a remote-tracking branch when this form is used). If `<expect>` " +"is the empty string, then the named ref must not already exist." msgstr "" #. type: Plain text -#: en/git-reset.txt:257 +#: en/git-push.txt:279 msgid "" -"Suppose you have added a file to your index, but later decide you do not " -"want to add it to your commit. You can remove the file from the index while " -"keeping your changes with git reset." +"Note that all forms other than `--force-with-lease=<refname>:<expect>` that " +"specifies the expected current value of the ref explicitly are still " +"experimental and their semantics may change as we gain experience with this " +"feature." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:262 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:282 msgid "" -"$ git reset -- frotz.c <1>\n" -"$ git commit -m \"Commit files in index\" <2>\n" -"$ git add frotz.c <3>\n" +"\"--no-force-with-lease\" will cancel all the previous --force-with-lease on " +"the command line." msgstr "" #. type: Plain text -#: en/git-reset.txt:266 +#: en/git-push.txt:288 msgid "" -"This removes the file from the index while keeping it in the working " -"directory." +"A general note on safety: supplying this option without an expected value, i." +"e. as `--force-with-lease` or `--force-with-lease=<refname>` interacts very " +"badly with anything that implicitly runs `git fetch` on the remote to be " +"pushed to in the background, e.g. `git fetch origin` on your repository in a " +"cronjob." msgstr "" #. type: Plain text -#: en/git-reset.txt:267 -msgid "This commits all other changes in the index." +#: en/git-push.txt:295 +msgid "" +"The protection it offers over `--force` is ensuring that subsequent changes " +"your work wasn't based on aren't clobbered, but this is trivially defeated " +"if some background process is updating refs in the background. We don't have " +"anything except the remote tracking info to go by as a heuristic for refs " +"you're expected to have seen & are willing to clobber." msgstr "" #. type: Plain text -#: en/git-reset.txt:268 -msgid "Adds the file to the index again." +#: en/git-push.txt:299 +msgid "" +"If your editor or some other system is running `git fetch` in the background " +"for you a way to mitigate this is to simply set up another remote:" msgstr "" -#. type: Labeled list -#: en/git-reset.txt:269 +#. type: Plain text +#: en/git-push.txt:302 #, no-wrap -msgid "Keep changes in working tree while discarding some previous commits" +msgid "" +"\tgit remote add origin-push $(git config remote.origin.url)\n" +"\tgit fetch origin-push\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:276 +#: en/git-push.txt:305 msgid "" -"Suppose you are working on something and you commit it, and then you " -"continue working a bit more, but now you think that what you have in your " -"working tree should be in another branch that has nothing to do with what " -"you committed previously. You can start a new branch and reset it while " -"keeping the changes in your working tree." +"Now when the background process runs `git fetch origin` the references on " +"`origin-push` won't be updated, and thus commands like:" msgstr "" -#. type: delimited block - -#: en/git-reset.txt:285 +#. type: Plain text +#: en/git-push.txt:307 #, no-wrap +msgid "\tgit push --force-with-lease origin-push\n" +msgstr "" + +#. type: Plain text +#: en/git-push.txt:312 msgid "" -"$ git tag start\n" -"$ git checkout -b branch1\n" -"$ edit\n" -"$ git commit ... <1>\n" -"$ edit\n" -"$ git checkout -b branch2 <2>\n" -"$ git reset --keep start <3>\n" +"Will fail unless you manually run `git fetch origin-push`. This method is of " +"course entirely defeated by something that runs `git fetch --all`, in that " +"case you'd need to either disable it or do something more tedious like:" msgstr "" #. type: Plain text -#: en/git-reset.txt:288 -msgid "This commits your first edits in branch1." +#: en/git-push.txt:317 +#, no-wrap +msgid "" +"\tgit fetch # update 'master' from remote\n" +"\tgit tag base master # mark our base point\n" +"\tgit rebase -i master # rewrite some commits\n" +"\tgit push --force-with-lease=master:base master:master\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:292 +#: en/git-push.txt:323 msgid "" -"In the ideal world, you could have realized that the earlier commit did not " -"belong to the new topic when you created and switched to branch2 (i.e. \"git " -"checkout -b branch2 start\"), but nobody is perfect." +"I.e. create a `base` tag for versions of the upstream code that you've seen " +"and are willing to overwrite, then rewrite history, and finally force push " +"changes to `master` if the remote version is still at `base`, regardless of " +"what your local `remotes/origin/master` has been updated to in the " +"background." msgstr "" #. type: Plain text -#: en/git-reset.txt:294 +#: en/git-push.txt:331 msgid "" -"But you can use \"reset --keep\" to remove the unwanted commit after you " -"switched to \"branch2\"." +"Usually, the command refuses to update a remote ref that is not an ancestor " +"of the local ref used to overwrite it. Also, when `--force-with-lease` " +"option is used, the command refuses to update a remote ref whose current " +"value does not match what is expected." msgstr "" -#. type: Labeled list -#: en/git-reset.txt:295 -#, no-wrap -msgid "Split a commit apart into a sequence of commits" +#. type: Plain text +#: en/git-push.txt:334 +msgid "" +"This flag disables these checks, and can cause the remote repository to lose " +"commits; use it with care." msgstr "" #. type: Plain text -#: en/git-reset.txt:303 +#: en/git-push.txt:343 msgid "" -"Suppose that you have created lots of logically separate changes and " -"commited them together. Then, later you decide that it might be better to " -"have each logical chunk associated with its own commit. You can use git " -"reset to rewind history without changing the contents of your local files, " -"and then successively use `git add -p` to interactively select which hunks " -"to include into each commit, using `git commit -c` to pre-populate the " -"commit message." +"Note that `--force` applies to all the refs that are pushed, hence using it " +"with `push.default` set to `matching` or with multiple push destinations " +"configured with `remote.*.push` may overwrite refs other than the current " +"branch (including local refs that are strictly behind their remote " +"counterpart). To force a push to only one branch, use a `+` in front of the " +"refspec to push (e.g `git push origin +master` to force a push to the " +"`master` branch). See the `<refspec>...` section above for details." msgstr "" -#. type: delimited block - -#: en/git-reset.txt:313 +#. type: Labeled list +#: en/git-push.txt:344 #, no-wrap -msgid "" -"$ git reset -N HEAD^ <1>\n" -"$ git add -p <2>\n" -"$ git diff --cached <3>\n" -"$ git commit -c HEAD@{1} <4>\n" -"... <5>\n" -"$ git add ... <6>\n" -"$ git diff --cached <7>\n" -"$ git commit ... <8>\n" +msgid "--repo=<repository>" msgstr "" #. type: Plain text -#: en/git-reset.txt:319 +#: en/git-push.txt:347 msgid "" -"First, reset the history back one commit so that we remove the original " -"commit, but leave the working tree with all the changes. The -N ensures that " -"any new files added with HEAD are still marked so that git add -p will find " -"them." +"This option is equivalent to the <repository> argument. If both are " +"specified, the command-line argument takes precedence." msgstr "" #. type: Plain text -#: en/git-reset.txt:323 +#: en/git-push.txt:354 msgid "" -"Next, we interactively select diff hunks to add using the git add -p " -"facility. This will ask you about each diff hunk in sequence and you can use " -"simple commands such as \"yes, include this\", \"No don't include this\" or " -"even the very powerful \"edit\" facility." +"For every branch that is up to date or successfully pushed, add upstream " +"(tracking) reference, used by argument-less linkgit:git-pull[1] and other " +"commands. For more information, see `branch.<name>.merge` in linkgit:git-" +"config[1]." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:355 +#, no-wrap +msgid "--[no-]thin" msgstr "" #. type: Plain text -#: en/git-reset.txt:327 +#: en/git-push.txt:360 msgid "" -"Once satisfied with the hunks you want to include, you should verify what " -"has been prepared for the first commit by using git diff --cached. This " -"shows all the changes that have been moved into the index and are about to " -"be committed." +"These options are passed to linkgit:git-send-pack[1]. A thin transfer " +"significantly reduces the amount of sent data when the sender and receiver " +"share many of the same objects in common. The default is `--thin`." msgstr "" #. type: Plain text -#: en/git-reset.txt:333 +#: en/git-push.txt:366 msgid "" -"Next, commit the changes stored in the index. The -c option specifies to " -"pre-populate the commit message from the original message that you started " -"with in the first commit. This is helpful to avoid retyping it. The HEAD@{1} " -"is a special notation for the commit that HEAD used to be at prior to the " -"original reset commit (1 change ago). See linkgit:git-reflog[1] for more " -"details. You may also use any other valid commit reference." +"Suppress all output, including the listing of updated refs, unless an error " +"occurs. Progress is not reported to the standard error stream." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:378 +#, no-wrap +msgid "--recurse-submodules=check|on-demand|only|no" msgstr "" #. type: Plain text -#: en/git-reset.txt:335 +#: en/git-push.txt:392 msgid "" -"You can repeat steps 2-4 multiple times to break the original code into any " -"number of commits." +"May be used to make sure all submodule commits used by the revisions to be " +"pushed are available on a remote-tracking branch. If 'check' is used Git " +"will verify that all submodule commits that changed in the revisions to be " +"pushed are available on at least one remote of the submodule. If any commits " +"are missing the push will be aborted and exit with non-zero status. If 'on-" +"demand' is used all submodules that changed in the revisions to be pushed " +"will be pushed. If on-demand was not able to push all necessary revisions it " +"will also be aborted and exit with non-zero status. If 'only' is used all " +"submodules will be recursively pushed while the superproject is left " +"unpushed. A value of 'no' or using `--no-recurse-submodules` can be used to " +"override the push.recurseSubmodules configuration variable when no submodule " +"recursion is required." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:393 +#, no-wrap +msgid "--[no-]verify" msgstr "" #. type: Plain text -#: en/git-reset.txt:338 +#: en/git-push.txt:397 msgid "" -"Now you've split out many of the changes into their own commits, and might " -"no longer use the patch mode of git add, in order to select all remaining " -"uncommitted changes." +"Toggle the pre-push hook (see linkgit:githooks[5]). The default is --" +"verify, giving the hook a chance to prevent the push. With --no-verify, the " +"hook is bypassed completely." msgstr "" #. type: Plain text -#: en/git-reset.txt:341 +#: en/git-push.txt:414 msgid "" -"Once again, check to verify that you've included what you want to. You may " -"also wish to verify that git diff doesn't show any remaining changes to be " -"committed later." +"The output of \"git push\" depends on the transport method used; this " +"section describes the output when pushing over the Git protocol (either " +"locally or via ssh)." msgstr "" #. type: Plain text -#: en/git-reset.txt:342 -msgid "And finally create the final commit." +#: en/git-push.txt:417 +msgid "" +"The status of the push is output in tabular form, with each line " +"representing the status of a single ref. Each line is of the form:" +msgstr "" + +#. type: delimited block - +#: en/git-push.txt:420 +#, no-wrap +msgid " <flag> <summary> <from> -> <to> (<reason>)\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:348 -msgid "The tables below show what happens when running:" +#: en/git-push.txt:423 +msgid "If --porcelain is used, then each line of the output is of the form:" msgstr "" #. type: delimited block - -#: en/git-reset.txt:351 +#: en/git-push.txt:426 #, no-wrap -msgid "git reset --option target\n" +msgid " <flag> \\t <from>:<to> \\t <summary> (<reason>)\n" msgstr "" #. type: Plain text -#: en/git-reset.txt:355 +#: en/git-push.txt:430 msgid "" -"to reset the HEAD to another commit (`target`) with the different reset " -"options depending on the state of the files." +"The status of up-to-date refs is shown only if --porcelain or --verbose " +"option is used." msgstr "" #. type: Plain text -#: en/git-reset.txt:364 -msgid "" -"In these tables, A, B, C and D are some different states of a file. For " -"example, the first line of the first table means that if a file is in state " -"A in the working tree, in state B in the index, in state C in HEAD and in " -"state D in the target, then \"git reset --soft target\" will leave the file " -"in the working tree in state A and in the index in state B. It resets " -"(i.e. moves) the HEAD (i.e. the tip of the current branch, if you are on " -"one) to \"target\" (which has the file in state D)." +#: en/git-push.txt:434 +msgid "for a successfully pushed fast-forward;" msgstr "" #. type: Plain text -#: en/git-reset.txt:372 -#, no-wrap -msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" A B C D --soft A B D\n" -"\t\t\t\t--mixed A D D\n" -"\t\t\t\t--hard D D D\n" -"\t\t\t\t--merge (disallowed)\n" -"\t\t\t\t--keep (disallowed)\n" +#: en/git-push.txt:436 +msgid "for a successfully deleted ref;" msgstr "" #. type: Plain text -#: en/git-reset.txt:380 -#, no-wrap -msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" A B C C --soft A B C\n" -"\t\t\t\t--mixed A C C\n" -"\t\t\t\t--hard C C C\n" -"\t\t\t\t--merge (disallowed)\n" -"\t\t\t\t--keep A C C\n" +#: en/git-push.txt:437 +msgid "for a successfully pushed new ref;" msgstr "" #. type: Plain text -#: en/git-reset.txt:388 -#, no-wrap -msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" B B C D --soft B B D\n" -"\t\t\t\t--mixed B D D\n" -"\t\t\t\t--hard D D D\n" -"\t\t\t\t--merge D D D\n" -"\t\t\t\t--keep (disallowed)\n" +#: en/git-push.txt:438 +msgid "for a ref that was rejected or failed to push; and" msgstr "" #. type: Plain text -#: en/git-reset.txt:396 -#, no-wrap -msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" B B C C --soft B B C\n" -"\t\t\t\t--mixed B C C\n" -"\t\t\t\t--hard C C C\n" -"\t\t\t\t--merge C C C\n" -"\t\t\t\t--keep B C C\n" +#: en/git-push.txt:439 +msgid "for a ref that was up to date and did not need pushing." msgstr "" #. type: Plain text -#: en/git-reset.txt:404 -#, no-wrap +#: en/git-push.txt:445 msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" B C C D --soft B C D\n" -"\t\t\t\t--mixed B D D\n" -"\t\t\t\t--hard D D D\n" -"\t\t\t\t--merge (disallowed)\n" -"\t\t\t\t--keep (disallowed)\n" +"For a successfully pushed ref, the summary shows the old and new values of " +"the ref in a form suitable for using as an argument to `git log` (this is " +"`<old>..<new>` in most cases, and `<old>...<new>` for forced non-fast-" +"forward updates)." msgstr "" #. type: Plain text -#: en/git-reset.txt:412 +#: en/git-push.txt:447 +msgid "For a failed update, more details are given:" +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:449 #, no-wrap -msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" B C C C --soft B C C\n" -"\t\t\t\t--mixed B C C\n" -"\t\t\t\t--hard C C C\n" -"\t\t\t\t--merge B C C\n" -"\t\t\t\t--keep B C C\n" +msgid "rejected" msgstr "" #. type: Plain text -#: en/git-reset.txt:421 +#: en/git-push.txt:452 msgid "" -"\"reset --merge\" is meant to be used when resetting out of a conflicted " -"merge. Any mergy operation guarantees that the working tree file that is " -"involved in the merge does not have local change wrt the index before it " -"starts, and that it writes the result out to the working tree. So if we see " -"some difference between the index and the target and also between the index " -"and the working tree, then it means that we are not resetting out from a " -"state that a mergy operation left after failing with a conflict. That is why " -"we disallow --merge option in this case." +"Git did not try to send the ref at all, typically because it is not a fast-" +"forward and you did not force the update." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:453 +#, no-wrap +msgid "remote rejected" msgstr "" #. type: Plain text -#: en/git-reset.txt:430 +#: en/git-push.txt:461 msgid "" -"\"reset --keep\" is meant to be used when removing some of the last commits " -"in the current branch while keeping changes in the working tree. If there " -"could be conflicts between the changes in the commit we want to remove and " -"the changes in the working tree we want to keep, the reset is " -"disallowed. That's why it is disallowed if there are both changes between " -"the working tree and HEAD, and between HEAD and the target. To be safe, it " -"is also disallowed when there are unmerged entries." +"The remote end refused the update. Usually caused by a hook on the remote " +"side, or because the remote repository has one of the following safety " +"options in effect: `receive.denyCurrentBranch` (for pushes to the checked " +"out branch), `receive.denyNonFastForwards` (for forced non-fast-forward " +"updates), `receive.denyDeletes` or `receive.denyDeleteCurrent`. See linkgit:" +"git-config[1]." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:462 +#, no-wrap +msgid "remote failure" msgstr "" #. type: Plain text -#: en/git-reset.txt:433 -msgid "The following tables show what happens when there are unmerged entries:" +#: en/git-push.txt:466 +msgid "" +"The remote end did not report the successful update of the ref, perhaps " +"because of a temporary error on the remote side, a break in the network " +"connection, or other transient error." msgstr "" #. type: Plain text -#: en/git-reset.txt:441 -#, no-wrap +#: en/git-push.txt:472 msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" X U A B --soft (disallowed)\n" -"\t\t\t\t--mixed X B B\n" -"\t\t\t\t--hard B B B\n" -"\t\t\t\t--merge B B B\n" -"\t\t\t\t--keep (disallowed)\n" +"The name of the local ref being pushed, minus its `refs/<type>/` prefix. In " +"the case of deletion, the name of the local ref is omitted." msgstr "" #. type: Plain text -#: en/git-reset.txt:449 -#, no-wrap +#: en/git-push.txt:476 msgid "" -" working index HEAD target working index HEAD\n" -" ----------------------------------------------------\n" -" X U A A --soft (disallowed)\n" -"\t\t\t\t--mixed X A A\n" -"\t\t\t\t--hard A A A\n" -"\t\t\t\t--merge A A A\n" -"\t\t\t\t--keep (disallowed)\n" +"The name of the remote ref being updated, minus its `refs/<type>/` prefix." msgstr "" #. type: Plain text -#: en/git-reset.txt:451 -msgid "X means any state and U means an unmerged index." +#: en/git-push.txt:481 +msgid "" +"A human-readable explanation. In the case of successfully pushed refs, no " +"explanation is needed. For a failed ref, the reason for failure is described." msgstr "" -#. type: Title = -#: en/git-revert.txt:2 +#. type: Title - +#: en/git-push.txt:483 #, no-wrap -msgid "git-revert(1)" +msgid "NOTE ABOUT FAST-FORWARDS" msgstr "" #. type: Plain text -#: en/git-revert.txt:7 -msgid "git-revert - Revert some existing commits" +#: en/git-push.txt:488 +msgid "" +"When an update changes a branch (or more in general, a ref) that used to " +"point at commit A to point at another commit B, it is called a fast-forward " +"update if and only if B is a descendant of A." msgstr "" #. type: Plain text -#: en/git-revert.txt:15 -#, no-wrap +#: en/git-push.txt:492 msgid "" -"'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] " -"<commit>...\n" -"'git revert' --continue\n" -"'git revert' --quit\n" -"'git revert' --abort\n" +"In a fast-forward update from A to B, the set of commits that the original " +"commit A built on top of is a subset of the commits the new commit B builds " +"on top of. Hence, it does not lose any history." msgstr "" #. type: Plain text -#: en/git-revert.txt:23 +#: en/git-push.txt:497 msgid "" -"Given one or more existing commits, revert the changes that the related " -"patches introduce, and record some new commits that record them. This " -"requires your working tree to be clean (no modifications from the HEAD " -"commit)." +"In contrast, a non-fast-forward update will lose history. For example, " +"suppose you and somebody else started at the same commit X, and you built a " +"history leading to commit B while the other person built a history leading " +"to commit A. The history looks like this:" msgstr "" -#. type: Plain text -#: en/git-revert.txt:32 +#. type: delimited block - +#: en/git-push.txt:503 +#, no-wrap msgid "" -"Note: 'git revert' is used to record some new commits to reverse the effect " -"of some earlier commits (often only a faulty one). If you want to throw " -"away all uncommitted changes in your working directory, you should see " -"linkgit:git-reset[1], particularly the `--hard` option. If you want to " -"extract specific files as they were in another commit, you should see " -"linkgit:git-checkout[1], specifically the `git checkout <commit> -- " -"<filename>` syntax. Take care with these alternatives as both will discard " -"uncommitted changes in your working directory." +" B\n" +" /\n" +" ---X---A\n" msgstr "" #. type: Plain text -#: en/git-revert.txt:42 +#: en/git-push.txt:509 msgid "" -"Commits to revert. For a more complete list of ways to spell commit names, " -"see linkgit:gitrevisions[7]. Sets of commits can also be given but no " -"traversal is done by default, see linkgit:git-rev-list[1] and its " -"`--no-walk` option." +"Further suppose that the other person already pushed changes leading to A " +"back to the original repository from which you two obtained the original " +"commit X." msgstr "" #. type: Plain text -#: en/git-revert.txt:48 +#: en/git-push.txt:512 msgid "" -"With this option, 'git revert' will let you edit the commit message prior to " -"committing the revert. This is the default if you run the command from a " -"terminal." +"The push done by the other person updated the branch that used to point at " +"commit X to point at commit A. It is a fast-forward." msgstr "" #. type: Plain text -#: en/git-revert.txt:56 +#: en/git-push.txt:517 msgid "" -"Usually you cannot revert a merge because you do not know which side of the " -"merge should be considered the mainline. This option specifies the parent " -"number (starting from 1) of the mainline and allows revert to reverse the " -"change relative to the specified parent." +"But if you try to push, you will attempt to update the branch (that now " +"points at A) with commit B. This does _not_ fast-forward. If you did so, " +"the changes introduced by commit A will be lost, because everybody will now " +"start building on top of B." msgstr "" #. type: Plain text -#: en/git-revert.txt:61 +#: en/git-push.txt:520 msgid "" -"Reverting a merge commit declares that you will never want the tree changes " -"brought in by the merge. As a result, later merges will only bring in tree " -"changes introduced by commits that are not ancestors of the previously " -"reverted merge. This may or may not be what you want." +"The command by default does not allow an update that is not a fast-forward " +"to prevent such loss of history." msgstr "" #. type: Plain text -#: en/git-revert.txt:64 +#: en/git-push.txt:525 msgid "" -"See the link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] " -"for more details." +"If you do not want to lose your work (history from X to B) or the work by " +"the other person (history from X to A), you would need to first fetch the " +"history from the repository, create a history that contains changes done by " +"both parties, and push the result back." msgstr "" #. type: Plain text -#: en/git-revert.txt:68 -msgid "With this option, 'git revert' will not start the commit message editor." +#: en/git-push.txt:529 +msgid "" +"You can perform \"git pull\", resolve potential conflicts, and \"git push\" " +"the result. A \"git pull\" will create a merge commit C between commits A " +"and B." +msgstr "" + +#. type: delimited block - +#: en/git-push.txt:535 +#, no-wrap +msgid "" +" B---C\n" +" / /\n" +" ---X---A\n" msgstr "" #. type: Plain text -#: en/git-revert.txt:79 +#: en/git-push.txt:540 msgid "" -"Usually the command automatically creates some commits with commit log " -"messages stating which commits were reverted. This flag applies the changes " -"necessary to revert the named commits to your working tree and the index, " -"but does not make the commits. In addition, when this option is used, your " -"index does not have to match the HEAD commit. The revert is done against " -"the beginning state of your index." +"Updating A with the resulting merge commit will fast-forward and your push " +"will be accepted." msgstr "" #. type: Plain text -#: en/git-revert.txt:82 +#: en/git-push.txt:545 msgid "" -"This is useful when reverting more than one commits' effect to your index in " -"a row." +"Alternatively, you can rebase your change between X and B on top of A, with " +"\"git pull --rebase\", and push the result back. The rebase will create a " +"new commit D that builds the change between X and B on top of A." msgstr "" -#. type: Labeled list -#: en/git-revert.txt:110 +#. type: delimited block - +#: en/git-push.txt:551 #, no-wrap -msgid "`git revert HEAD~3`" +msgid "" +" B D\n" +" / /\n" +" ---X---A\n" msgstr "" #. type: Plain text -#: en/git-revert.txt:114 +#: en/git-push.txt:556 msgid "" -"Revert the changes specified by the fourth last commit in HEAD and create a " -"new commit with the reverted changes." +"Again, updating A with this commit will fast-forward and your push will be " +"accepted." +msgstr "" + +#. type: Plain text +#: en/git-push.txt:567 +msgid "" +"There is another common situation where you may encounter non-fast-forward " +"rejection when you try to push, and it is possible even when you are pushing " +"into a repository nobody else pushes into. After you push commit A yourself " +"(in the first picture in this section), replace it with \"git commit --amend" +"\" to produce commit B, and you try to push it out, because forgot that you " +"have pushed A out already. In such a case, and only if you are certain that " +"nobody in the meantime fetched your earlier commit A (and started building " +"on top of it), you can run \"git push --force\" to overwrite it. In other " +"words, \"git push --force\" is a method reserved for a case where you do " +"mean to lose history." msgstr "" #. type: Labeled list -#: en/git-revert.txt:115 +#: en/git-push.txt:572 #, no-wrap -msgid "`git revert -n master~5..master~2`" +msgid "`git push`" msgstr "" #. type: Plain text -#: en/git-revert.txt:122 +#: en/git-push.txt:576 msgid "" -"Revert the changes done by commits from the fifth last commit in master " -"(included) to the third last commit in master (included), but do not create " -"any commit with the reverted changes. The revert only modifies the working " -"tree and the index." +"Works like `git push <remote>`, where <remote> is the current branch's " +"remote (or `origin`, if no remote is configured for the current branch)." msgstr "" #. type: Labeled list -#: en/git-revert.txt:126 en/cmds-mainporcelain.txt:22 -#, no-wrap -msgid "linkgit:git-cherry-pick[1]" -msgstr "" - -#. type: Title = -#: en/git-rev-list.txt:2 +#: en/git-push.txt:577 #, no-wrap -msgid "git-rev-list(1)" +msgid "`git push origin`" msgstr "" #. type: Plain text -#: en/git-rev-list.txt:7 -msgid "git-rev-list - Lists commit objects in reverse chronological order" +#: en/git-push.txt:582 +msgid "" +"Without additional configuration, pushes the current branch to the " +"configured upstream (`remote.origin.merge` configuration variable) if it has " +"the same name as the current branch, and errors out without pushing " +"otherwise." msgstr "" #. type: Plain text -#: en/git-rev-list.txt:62 -#, no-wrap +#: en/git-push.txt:586 msgid "" -"'git rev-list' [ --max-count=<number> ]\n" -"\t [ --skip=<number> ]\n" -"\t [ --max-age=<timestamp> ]\n" -"\t [ --min-age=<timestamp> ]\n" -"\t [ --sparse ]\n" -"\t [ --merges ]\n" -"\t [ --no-merges ]\n" -"\t [ --min-parents=<number> ]\n" -"\t [ --no-min-parents ]\n" -"\t [ --max-parents=<number> ]\n" -"\t [ --no-max-parents ]\n" -"\t [ --first-parent ]\n" -"\t [ --remove-empty ]\n" -"\t [ --full-history ]\n" -"\t [ --not ]\n" -"\t [ --all ]\n" -"\t [ --branches[=<pattern>] ]\n" -"\t [ --tags[=<pattern>] ]\n" -"\t [ --remotes[=<pattern>] ]\n" -"\t [ --glob=<glob-pattern> ]\n" -"\t [ --ignore-missing ]\n" -"\t [ --stdin ]\n" -"\t [ --quiet ]\n" -"\t [ --topo-order ]\n" -"\t [ --parents ]\n" -"\t [ --timestamp ]\n" -"\t [ --left-right ]\n" -"\t [ --left-only ]\n" -"\t [ --right-only ]\n" -"\t [ --cherry-mark ]\n" -"\t [ --cherry-pick ]\n" -"\t [ --encoding=<encoding> ]\n" -"\t [ --(author|committer|grep)=<pattern> ]\n" -"\t [ --regexp-ignore-case | -i ]\n" -"\t [ --extended-regexp | -E ]\n" -"\t [ --fixed-strings | -F ]\n" -"\t [ --date=<format>]\n" -"\t [ [ --objects | --objects-edge | --objects-edge-aggressive ]\n" -"\t [ --unpacked ] ]\n" -"\t [ --pretty | --header ]\n" -"\t [ --bisect ]\n" -"\t [ --bisect-vars ]\n" -"\t [ --bisect-all ]\n" -"\t [ --merge ]\n" -"\t [ --reverse ]\n" -"\t [ --walk-reflogs ]\n" -"\t [ --no-walk ] [ --do-walk ]\n" -"\t [ --count ]\n" -"\t [ --use-bitmap-index ]\n" -"\t <commit>... [ \\-- <paths>... ]\n" +"The default behavior of this command when no <refspec> is given can be " +"configured by setting the `push` option of the remote, or the `push.default` " +"configuration variable." msgstr "" #. type: Plain text -#: en/git-rev-list.txt:70 +#: en/git-push.txt:591 msgid "" -"List commits that are reachable by following the `parent` links from the " -"given commit(s), but exclude commits that are reachable from the one(s) " -"given with a '{caret}' in front of them. The output is given in reverse " -"chronological order by default." +"For example, to default to pushing only the current branch to `origin` use " +"`git config remote.origin.push HEAD`. Any valid <refspec> (like the ones in " +"the examples below) can be configured as the default for `git push origin`." msgstr "" -#. type: Plain text -#: en/git-rev-list.txt:77 -msgid "" -"You can think of this as a set operation. Commits given on the command line " -"form a set of commits that are reachable from any of them, and then commits " -"reachable from any of the ones given with '{caret}' in front are subtracted " -"from that set. The remaining commits are what comes out in the command's " -"output. Various other options and paths parameters can be used to further " -"limit the result." +#. type: Labeled list +#: en/git-push.txt:592 +#, no-wrap +msgid "`git push origin :`" msgstr "" #. type: Plain text -#: en/git-rev-list.txt:79 -msgid "Thus, the following command:" +#: en/git-push.txt:596 +msgid "" +"Push \"matching\" branches to `origin`. See <refspec> in the <<OPTIONS," +"OPTIONS>> section above for a description of \"matching\" branches." msgstr "" -#. type: delimited block - -#: en/git-rev-list.txt:82 +#. type: Labeled list +#: en/git-push.txt:597 #, no-wrap -msgid "\t$ git rev-list foo bar ^baz\n" +msgid "`git push origin master`" msgstr "" #. type: Plain text -#: en/git-rev-list.txt:86 +#: en/git-push.txt:603 msgid "" -"means \"list all the commits which are reachable from 'foo' or 'bar', but " -"not from 'baz'\"." +"Find a ref that matches `master` in the source repository (most likely, it " +"would find `refs/heads/master`), and update the same ref (e.g. `refs/heads/" +"master`) in `origin` repository with it. If `master` did not exist " +"remotely, it would be created." +msgstr "" + +#. type: Labeled list +#: en/git-push.txt:604 +#, no-wrap +msgid "`git push origin HEAD`" msgstr "" #. type: Plain text -#: en/git-rev-list.txt:90 -msgid "" -"A special notation \"'<commit1>'..'<commit2>'\" can be used as a short-hand " -"for \"{caret}'<commit1>' '<commit2>'\". For example, either of the following " -"may be used interchangeably:" +#: en/git-push.txt:607 +msgid "A handy way to push the current branch to the same name on the remote." msgstr "" -#. type: delimited block - -#: en/git-rev-list.txt:94 +#. type: Labeled list +#: en/git-push.txt:608 #, no-wrap -msgid "" -"\t$ git rev-list origin..HEAD\n" -"\t$ git rev-list HEAD ^origin\n" +msgid "`git push mothership master:satellite/master dev:satellite/dev`" msgstr "" #. type: Plain text -#: en/git-rev-list.txt:99 +#: en/git-push.txt:613 msgid "" -"Another special notation is \"'<commit1>'...'<commit2>'\" which is useful " -"for merges. The resulting set of commits is the symmetric difference " -"between the two operands. The following two commands are equivalent:" +"Use the source ref that matches `master` (e.g. `refs/heads/master`) to " +"update the ref that matches `satellite/master` (most probably `refs/remotes/" +"satellite/master`) in the `mothership` repository; do the same for `dev` and " +"`satellite/dev`." msgstr "" -#. type: delimited block - -#: en/git-rev-list.txt:103 -#, no-wrap +#. type: Plain text +#: en/git-push.txt:616 msgid "" -"\t$ git rev-list A B --not $(git merge-base --all A B)\n" -"\t$ git rev-list A...B\n" +"See the section describing `<refspec>...` above for a discussion of the " +"matching semantics." msgstr "" #. type: Plain text -#: en/git-rev-list.txt:110 +#: en/git-push.txt:623 msgid "" -"'rev-list' is a very essential Git command, since it provides the ability to " -"build and traverse commit ancestry graphs. For this reason, it has a lot of " -"different options that enables it to be used by commands as different as " -"'git bisect' and 'git repack'." -msgstr "" - -#. type: Title = -#: en/git-rev-parse.txt:2 -#, no-wrap -msgid "git-rev-parse(1)" +"This is to emulate `git fetch` run on the `mothership` using `git push` that " +"is run in the opposite direction in order to integrate the work done on " +"`satellite`, and is often necessary when you can only make connection in one " +"way (i.e. satellite can ssh into mothership but mothership cannot initiate " +"connection to satellite because the latter is behind a firewall or does not " +"run sshd)." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:7 -msgid "git-rev-parse - Pick out and massage parameters" +#: en/git-push.txt:628 +msgid "" +"After running this `git push` on the `satellite` machine, you would ssh into " +"the `mothership` and run `git merge` there to complete the emulation of `git " +"pull` that were run on `mothership` to pull changes made on `satellite`." msgstr "" -#. type: Plain text -#: en/git-rev-parse.txt:13 +#. type: Labeled list +#: en/git-push.txt:629 #, no-wrap -msgid "'git rev-parse' [ --option ] <args>...\n" +msgid "`git push origin HEAD:master`" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:23 +#: en/git-push.txt:633 msgid "" -"Many Git porcelainish commands take mixture of flags (i.e. parameters that " -"begin with a dash '-') and parameters meant for the underlying 'git " -"rev-list' command they use internally and flags and parameters for the other " -"commands they use downstream of 'git rev-list'. This command is used to " -"distinguish between them." +"Push the current branch to the remote ref matching `master` in the `origin` " +"repository. This form is convenient to push the current branch without " +"thinking about its local name." msgstr "" -#. type: Title ~ -#: en/git-rev-parse.txt:29 +#. type: Labeled list +#: en/git-push.txt:634 #, no-wrap -msgid "Operation Modes" +msgid "`git push origin master:refs/heads/experimental`" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:32 -msgid "Each of these options must appear first on the command line." +#: en/git-push.txt:640 +msgid "" +"Create the branch `experimental` in the `origin` repository by copying the " +"current `master` branch. This form is only needed to create a new branch or " +"tag in the remote repository when the local name and the remote name are " +"different; otherwise, the ref name on its own will work." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:33 +#: en/git-push.txt:641 #, no-wrap -msgid "--parseopt" +msgid "`git push origin :experimental`" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:35 -msgid "Use 'git rev-parse' in option parsing mode (see PARSEOPT section below)." +#: en/git-push.txt:644 +msgid "" +"Find a ref that matches `experimental` in the `origin` repository (e.g. " +"`refs/heads/experimental`), and delete it." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:36 +#: en/git-push.txt:645 #, no-wrap -msgid "--sq-quote" +msgid "`git push origin +dev:master`" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:40 +#: en/git-push.txt:650 msgid "" -"Use 'git rev-parse' in shell quoting mode (see SQ-QUOTE section below). In " -"contrast to the `--sq` option below, this mode does only quoting. Nothing " -"else is done to command input." -msgstr "" - -#. type: Title ~ -#: en/git-rev-parse.txt:42 -#, no-wrap -msgid "Options for --parseopt" +"Update the origin repository's master branch with the dev branch, allowing " +"non-fast-forward updates. *This can leave unreferenced commits dangling in " +"the origin repository.* Consider the following situation, where a fast-" +"forward is not possible:" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:44 +#. type: delimited block - +#: en/git-push.txt:655 #, no-wrap -msgid "--keep-dashdash" +msgid "" +"\t o---o---o---A---B origin/master\n" +"\t\t \\\n" +"\t\t X---Y---Z dev\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:47 -msgid "" -"Only meaningful in `--parseopt` mode. Tells the option parser to echo out " -"the first `--` met instead of skipping it." +#: en/git-push.txt:658 +msgid "The above command would change the origin repository to" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:48 +#. type: delimited block - +#: en/git-push.txt:663 #, no-wrap -msgid "--stop-at-non-option" +msgid "" +"\t\t A---B (unnamed branch)\n" +"\t\t /\n" +"\t o---o---o---X---Y---Z master\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:52 +#: en/git-push.txt:668 msgid "" -"Only meaningful in `--parseopt` mode. Lets the option parser stop at the " -"first non-option argument. This can be used to parse sub-commands that take " -"options themselves." +"Commits A and B would no longer belong to a branch with a symbolic name, and " +"so would be unreachable. As such, these commits would be removed by a `git " +"gc` command on the origin repository." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:53 +#. type: Title = +#: en/git-quiltimport.txt:2 #, no-wrap -msgid "--stuck-long" +msgid "git-quiltimport(1)" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:56 -msgid "" -"Only meaningful in `--parseopt` mode. Output the options in their long form " -"if available, and with their arguments stuck." +#: en/git-quiltimport.txt:7 +msgid "git-quiltimport - Applies a quilt patchset onto the current branch" msgstr "" -#. type: Title ~ -#: en/git-rev-parse.txt:58 +#. type: Plain text +#: en/git-quiltimport.txt:14 #, no-wrap -msgid "Options for Filtering" +msgid "" +"'git quiltimport' [--dry-run | -n] [--author <author>] [--patches <dir>]\n" +"\t\t[--series <file>] [--keep-non-patch]\n" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:60 -#, no-wrap -msgid "--revs-only" +#. type: Plain text +#: en/git-quiltimport.txt:21 +msgid "" +"Applies a quilt patchset onto the current Git branch, preserving the patch " +"boundaries, patch order, and patch descriptions present in the quilt " +"patchset." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:63 -msgid "Do not output flags and parameters not meant for 'git rev-list' command." +#: en/git-quiltimport.txt:27 +msgid "" +"For each patch the code attempts to extract the author from the patch " +"description. If that fails it falls back to the author specified with --" +"author. If the --author flag was not given the patch description is " +"displayed and the user is asked to interactively enter the author of the " +"patch." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:64 -#, no-wrap -msgid "--no-revs" +#. type: Plain text +#: en/git-quiltimport.txt:30 +msgid "" +"If a subject is not found in the patch description the patch name is " +"preserved as the 1 line subject in the Git description." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:67 -msgid "Do not output flags and parameters meant for 'git rev-list' command." +#: en/git-quiltimport.txt:40 +msgid "" +"Walk through the patches in the series and warn if we cannot find all of the " +"necessary information to commit a patch. At the time of this writing only " +"missing author information is warned about." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:68 +#: en/git-quiltimport.txt:41 #, no-wrap -msgid "--flags" +msgid "--author Author Name <Author Email>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:70 -msgid "Do not output non-flag parameters." +#: en/git-quiltimport.txt:44 +msgid "" +"The author name and email address to use when no author information can be " +"found in the patch description." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:71 +#: en/git-quiltimport.txt:45 #, no-wrap -msgid "--no-flags" +msgid "--patches <dir>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:73 -msgid "Do not output flag parameters." +#: en/git-quiltimport.txt:47 +msgid "The directory to find the quilt patches." msgstr "" -#. type: Title ~ -#: en/git-rev-parse.txt:75 -#, no-wrap -msgid "Options for Output" +#. type: Plain text +#: en/git-quiltimport.txt:51 +msgid "" +"The default for the patch directory is patches or the value of the `" +"$QUILT_PATCHES` environment variable." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:77 +#: en/git-quiltimport.txt:52 #, no-wrap -msgid "--default <arg>" +msgid "--series <file>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:80 -msgid "If there is no parameter given by the user, use `<arg>` instead." +#: en/git-quiltimport.txt:54 +msgid "The quilt series file." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:81 +#. type: Plain text +#: en/git-quiltimport.txt:58 +msgid "" +"The default for the series file is <patches>/series or the value of the `" +"$QUILT_SERIES` environment variable." +msgstr "" + +#. type: Title = +#: en/git-read-tree.txt:2 #, no-wrap -msgid "--prefix <arg>" +msgid "git-read-tree(1)" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:86 -msgid "" -"Behave as if 'git rev-parse' was invoked from the `<arg>` subdirectory of " -"the working tree. Any relative filenames are resolved as if they are " -"prefixed by `<arg>` and will be printed in that form." +#: en/git-read-tree.txt:7 +msgid "git-read-tree - Reads tree information into the index" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:90 +#: en/git-read-tree.txt:16 +#, no-wrap msgid "" -"This can be used to convert arguments to a command run in a subdirectory so " -"that they can still be used after moving to the top-level of the " -"repository. For example:" +"'git read-tree' [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>]\n" +"\t\t[-u [--exclude-per-directory=<gitignore>] | -i]]\n" +"\t\t[--index-output=<file>] [--no-sparse-checkout]\n" +"\t\t(--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])\n" msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:96 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:23 msgid "" -"prefix=$(git rev-parse --show-prefix)\n" -"cd \"$(git rev-parse --show-toplevel)\"\n" -"# rev-parse provides the -- needed for 'set'\n" -"eval \"set $(git rev-parse --sq --prefix \"$prefix\" -- \"$@\")\"\n" +"Reads the tree information given by <tree-ish> into the index, but does not " +"actually *update* any of the files it \"caches\". (see: linkgit:git-checkout-" +"index[1])" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:103 +#: en/git-read-tree.txt:28 msgid "" -"Verify that exactly one parameter is provided, and that it can be turned " -"into a raw 20-byte SHA-1 that can be used to access the object database. If " -"so, emit it to the standard output; otherwise, error out." +"Optionally, it can merge a tree into the index, perform a fast-forward (i.e. " +"2-way) merge, or a 3-way merge, with the `-m` flag. When used with `-m`, " +"the `-u` flag causes it to also update the files in the work tree with the " +"result of the merge." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:112 +#: en/git-read-tree.txt:31 msgid "" -"If you want to make sure that the output actually names an object in your " -"object database and/or can be used as a specific type of object you require, " -"you can add the `^{type}` peeling operator to the parameter. For example, " -"`git rev-parse \"$VAR^{commit}\"` will make sure `$VAR` names an existing " -"object that is a commit-ish (i.e. a commit, or an annotated tag that points " -"at a commit). To make sure that `$VAR` names an existing object of any " -"type, `git rev-parse \"$VAR^{object}\"` can be used." +"Trivial merges are done by 'git read-tree' itself. Only conflicting paths " +"will be in unmerged state when 'git read-tree' returns." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:119 +#: en/git-read-tree.txt:39 msgid "" -"Only meaningful in `--verify` mode. Do not output an error message if the " -"first argument is not a valid object name; instead exit with non-zero status " -"silently. SHA-1s for valid object names are printed to stdout on success." +"Perform a merge, not just a read. The command will refuse to run if your " +"index file has unmerged entries, indicating that you have not finished " +"previous merge you started." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:120 +#: en/git-read-tree.txt:40 #, no-wrap -msgid "--sq" +msgid "--reset" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:128 +#: en/git-read-tree.txt:43 msgid "" -"Usually the output is made one line per flag and parameter. This option " -"makes output a single line, properly quoted for consumption by shell. " -"Useful when you expect your parameter to contain whitespaces and newlines " -"(e.g. when using pickaxe `-S` with 'git diff-{asterisk}'). In contrast to " -"the `--sq-quote` option, the command input is still interpreted as usual." +"Same as -m, except that unmerged entries are discarded instead of failing." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:133 +#: en/git-read-tree.txt:47 msgid "" -"When showing object names, prefix them with '{caret}' and strip '{caret}' " -"prefix from the object names that already have one." +"After a successful merge, update the files in the work tree with the result " +"of the merge." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:134 -#, no-wrap -msgid "--abbrev-ref[=(strict|loose)]" +#. type: Plain text +#: en/git-read-tree.txt:56 +msgid "" +"Usually a merge requires the index file as well as the files in the working " +"tree to be up to date with the current head commit, in order not to lose " +"local changes. This flag disables the check with the working tree and is " +"meant to be used when creating a merge of trees that are not directly " +"related to the current working tree status into a temporary index file." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:138 +#: en/git-read-tree.txt:61 msgid "" -"A non-ambiguous short name of the objects name. The option " -"core.warnAmbiguousRefs is used to select the strict abbreviation mode." +"Check if the command would error out, without updating the index or the " +"files in the working tree for real." +msgstr "" + +#. type: Plain text +#: en/git-read-tree.txt:64 +msgid "Show the progress of checking files out." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:140 +#: en/git-read-tree.txt:65 #, no-wrap -msgid "--short=number" +msgid "--trivial" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:144 +#: en/git-read-tree.txt:70 msgid "" -"Instead of outputting the full SHA-1 values of object names try to " -"abbreviate them to a shorter unique name. When no length is specified 7 is " -"used. The minimum length is 4." +"Restrict three-way merge by 'git read-tree' to happen only if there is no " +"file-level merging required, instead of resolving merge for trivial cases " +"and leaving conflicting files unresolved in the index." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:145 -#, no-wrap -msgid "--symbolic" +#. type: Plain text +#: en/git-read-tree.txt:77 +msgid "" +"Usually a three-way merge by 'git read-tree' resolves the merge for really " +"trivial cases and leaves other cases unresolved in the index, so that " +"porcelains can implement different merge policies. This flag makes the " +"command resolve a few more cases internally:" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:149 +#: en/git-read-tree.txt:80 msgid "" -"Usually the object names are output in SHA-1 form (with possible '{caret}' " -"prefix); this option makes them output in a form as close to the original " -"input as possible." +"when one side removes a path and the other side leaves the path unmodified. " +"The resolution is to remove that path." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:150 -#, no-wrap -msgid "--symbolic-full-name" +#. type: Plain text +#: en/git-read-tree.txt:81 +msgid "when both sides remove a path. The resolution is to remove that path." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:157 +#: en/git-read-tree.txt:83 msgid "" -"This is similar to --symbolic, but it omits input that are not refs " -"(i.e. branch or tag names; or more explicitly disambiguating " -"\"heads/master\" form, when you want to name the \"master\" branch when " -"there is an unfortunately named tag \"master\"), and show them as full " -"refnames (e.g. \"refs/heads/master\")." +"when both sides add a path identically. The resolution is to add that path." msgstr "" -#. type: Title ~ -#: en/git-rev-parse.txt:159 +#. type: Labeled list +#: en/git-read-tree.txt:84 en/git-svn.txt:75 #, no-wrap -msgid "Options for Objects" +msgid "--prefix=<prefix>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:163 -msgid "Show all refs found in `refs/`." +#: en/git-read-tree.txt:89 +msgid "" +"Keep the current index contents, and read the contents of the named tree-ish " +"under the directory at `<prefix>`. The command will refuse to overwrite " +"entries that already existed in the original index file." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:164 +#: en/git-read-tree.txt:90 #, no-wrap -msgid "--branches[=pattern]" +msgid "--exclude-per-directory=<gitignore>" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:165 -#, no-wrap -msgid "--tags[=pattern]" +#. type: Plain text +#: en/git-read-tree.txt:104 +msgid "" +"When running the command with `-u` and `-m` options, the merge result may " +"need to overwrite paths that are not tracked in the current branch. The " +"command usually refuses to proceed with the merge to avoid losing such a " +"path. However this safety valve sometimes gets in the way. For example, it " +"often happens that the other branch added a file that used to be a generated " +"file in your branch, and the safety valve triggers when you try to switch to " +"that branch after you ran `make` but before running `make clean` to remove " +"the generated file. This option tells the command to read per-directory " +"exclude file (usually '.gitignore') and allows such an untracked but " +"explicitly ignored file to be overwritten." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:166 +#: en/git-read-tree.txt:105 #, no-wrap -msgid "--remotes[=pattern]" +msgid "--index-output=<file>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:170 +#: en/git-read-tree.txt:116 msgid "" -"Show all branches, tags, or remote-tracking branches, respectively (i.e., " -"refs found in `refs/heads`, `refs/tags`, or `refs/remotes`, respectively)." +"Instead of writing the results out to `$GIT_INDEX_FILE`, write the resulting " +"index in the named file. While the command is operating, the original index " +"file is locked with the same mechanism as usual. The file must allow to be " +"rename(2)ed into from a temporary file that is created next to the usual " +"index file; typically this means it needs to be on the same filesystem as " +"the index file itself, and you need write permission to the directories the " +"index file and index output file are located in." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:174 +#: en/git-read-tree.txt:122 msgid "" -"If a `pattern` is given, only refs matching the given shell glob are shown. " -"If the pattern does not contain a globbing character (`?`, `*`, or `[`), it " -"is turned into a prefix match by appending `/*`." +"Using --recurse-submodules will update the content of all initialized " +"submodules according to the commit recorded in the superproject by calling " +"read-tree recursively, also setting the submodules HEAD to be detached at " +"that commit." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:175 +#: en/git-read-tree.txt:123 #, no-wrap -msgid "--glob=pattern" +msgid "--no-sparse-checkout" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:181 -msgid "" -"Show all refs matching the shell glob pattern `pattern`. If the pattern does " -"not start with `refs/`, this is automatically prepended. If the pattern " -"does not contain a globbing character (`?`, `*`, or `[`), it is turned into " -"a prefix match by appending `/*`." +#: en/git-read-tree.txt:126 +msgid "Disable sparse checkout support even if `core.sparseCheckout` is true." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:182 en/rev-list-options.txt:163 +#: en/git-read-tree.txt:127 #, no-wrap -msgid "--exclude=<glob-pattern>" -msgstr "" - -#. type: Plain text -#: en/git-rev-parse.txt:189 en/rev-list-options.txt:171 -msgid "" -"Do not include refs matching '<glob-pattern>' that the next `--all`, " -"`--branches`, `--tags`, `--remotes`, or `--glob` would otherwise " -"consider. Repetitions of this option accumulate exclusion patterns up to the " -"next `--all`, `--branches`, `--tags`, `--remotes`, or `--glob` option (other " -"options or arguments do not clear accumulated patterns)." +msgid "--empty" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:195 en/rev-list-options.txt:177 -msgid "" -"The patterns given should not begin with `refs/heads`, `refs/tags`, or " -"`refs/remotes` when applied to `--branches`, `--tags`, or `--remotes`, " -"respectively, and they must begin with `refs/` when applied to `--glob` or " -"`--all`. If a trailing '/{asterisk}' is intended, it must be given " -"explicitly." +#: en/git-read-tree.txt:130 +msgid "Instead of reading tree object(s) into the index, just empty it." msgstr "" #. type: Labeled list -#: en/git-rev-parse.txt:196 +#: en/git-read-tree.txt:131 #, no-wrap -msgid "--disambiguate=<prefix>" +msgid "<tree-ish#>" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:201 -msgid "" -"Show every object whose name begins with the given prefix. The <prefix> " -"must be at least 4 hexadecimal digits long to avoid listing each and every " -"object in the repository by mistake." -msgstr "" - -#. type: Title ~ -#: en/git-rev-parse.txt:203 -#, no-wrap -msgid "Options for Files" +#: en/git-read-tree.txt:133 +msgid "The id of the tree object(s) to be read/merged." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:205 +#. type: Title - +#: en/git-read-tree.txt:136 #, no-wrap -msgid "--local-env-vars" +msgid "MERGING" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:210 +#: en/git-read-tree.txt:141 msgid "" -"List the GIT_* environment variables that are local to the repository " -"(e.g. GIT_DIR or GIT_WORK_TREE, but not GIT_EDITOR). Only the names of the " -"variables are listed, not their value, even if they are set." +"If `-m` is specified, 'git read-tree' can perform 3 kinds of merge, a single " +"tree merge if only 1 tree is given, a fast-forward merge with 2 trees, or a " +"3-way merge if 3 or more trees are provided." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:211 +#. type: Title ~ +#: en/git-read-tree.txt:144 #, no-wrap -msgid "--git-dir" +msgid "Single Tree Merge" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:215 +#: en/git-read-tree.txt:150 msgid "" -"Show `$GIT_DIR` if defined. Otherwise show the path to the .git " -"directory. The path shown, when relative, is relative to the current working " -"directory." +"If only 1 tree is specified, 'git read-tree' operates as if the user did not " +"specify `-m`, except that if the original index has an entry for a given " +"pathname, and the contents of the path match with the tree being read, the " +"stat info from the index is used. (In other words, the index's stat()s take " +"precedence over the merged tree's)." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:219 +#: en/git-read-tree.txt:154 msgid "" -"If `$GIT_DIR` is not defined and the current directory is not detected to " -"lie in a Git repository or work tree print a message to stderr and exit with " -"nonzero status." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:220 -#, no-wrap -msgid "--absolute-git-dir" -msgstr "" - -#. type: Plain text -#: en/git-rev-parse.txt:223 -msgid "Like `--git-dir`, but its output is always the canonicalized absolute path." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:224 -#, no-wrap -msgid "--git-common-dir" +"That means that if you do a `git read-tree -m <newtree>` followed by a `git " +"checkout-index -f -u -a`, the 'git checkout-index' only checks out the stuff " +"that really changed." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:226 -msgid "Show `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`." +#: en/git-read-tree.txt:157 +msgid "" +"This is used to avoid unnecessary false hits when 'git diff-files' is run " +"after 'git read-tree'." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:227 +#. type: Title ~ +#: en/git-read-tree.txt:160 #, no-wrap -msgid "--is-inside-git-dir" +msgid "Two Tree Merge" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:230 +#: en/git-read-tree.txt:166 msgid "" -"When the current working directory is below the repository directory print " -"\"true\", otherwise \"false\"." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:231 -#, no-wrap -msgid "--is-inside-work-tree" +"Typically, this is invoked as `git read-tree -m $H $M`, where $H is the head " +"commit of the current repository, and $M is the head of a foreign tree, " +"which is simply ahead of $H (i.e. we are in a fast-forward situation)." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:234 +#: en/git-read-tree.txt:169 msgid "" -"When the current working directory is inside the work tree of the repository " -"print \"true\", otherwise \"false\"." +"When two trees are specified, the user is telling 'git read-tree' the " +"following:" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:235 -#, no-wrap -msgid "--is-bare-repository" +#. type: Plain text +#: en/git-read-tree.txt:171 +msgid "The current index and work tree is derived from $H, but" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:237 -msgid "When the repository is bare print \"true\", otherwise \"false\"." +#: en/git-read-tree.txt:172 +msgid "the user may have local changes in them since $H." msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:238 -#, no-wrap -msgid "--resolve-git-dir <path>" +#. type: Plain text +#: en/git-read-tree.txt:174 +msgid "The user wants to fast-forward to $M." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:243 +#: en/git-read-tree.txt:180 msgid "" -"Check if <path> is a valid repository or a gitfile that points at a valid " -"repository, and print the location of the repository. If <path> is a " -"gitfile then the resolved path to the real repository is printed." +"In this case, the `git read-tree -m $H $M` command makes sure that no local " +"change is lost as the result of this \"merge\". Here are the \"carry forward" +"\" rules, where \"I\" denotes the index, \"clean\" means that index and work " +"tree coincide, and \"exists\"/\"nothing\" refer to the presence of a path in " +"the specified commit:" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:244 +#. type: delimited block . +#: en/git-read-tree.txt:191 #, no-wrap -msgid "--git-path <path>" -msgstr "" - -#. type: Plain text -#: en/git-rev-parse.txt:250 msgid "" -"Resolve \"$GIT_DIR/<path>\" and takes other path relocation variables such " -"as $GIT_OBJECT_DIRECTORY, $GIT_INDEX_FILE... into account. For example, if " -"$GIT_OBJECT_DIRECTORY is set to /foo/bar then \"git rev-parse --git-path " -"objects/abc\" returns /foo/bar/abc." +"\tI H M Result\n" +" -------------------------------------------------------\n" +" 0 nothing nothing nothing (does not happen)\n" +" 1 nothing nothing exists use M\n" +" 2 nothing exists nothing remove path from index\n" +" 3 nothing exists exists, use M if \"initial checkout\",\n" +"\t\t\t\t H == M keep index otherwise\n" +"\t\t\t\t exists, fail\n" +"\t\t\t\t H != M\n" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:251 +#. type: delimited block . +#: en/git-read-tree.txt:196 #, no-wrap -msgid "--show-cdup" +msgid "" +" clean I==H I==M\n" +" ------------------\n" +" 4 yes N/A N/A nothing nothing keep index\n" +" 5 no N/A N/A nothing nothing keep index\n" msgstr "" -#. type: Plain text -#: en/git-rev-parse.txt:255 +#. type: delimited block . +#: en/git-read-tree.txt:201 +#, no-wrap msgid "" -"When the command is invoked from a subdirectory, show the path of the " -"top-level directory relative to the current directory (typically a sequence " -"of \"../\", or an empty string)." +" 6 yes N/A yes nothing exists keep index\n" +" 7 no N/A yes nothing exists keep index\n" +" 8 yes N/A no nothing exists fail\n" +" 9 no N/A no nothing exists fail\n" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:256 +#. type: delimited block . +#: en/git-read-tree.txt:206 #, no-wrap -msgid "--show-prefix" +msgid "" +" 10 yes yes N/A exists nothing remove path from index\n" +" 11 no yes N/A exists nothing fail\n" +" 12 yes no N/A exists nothing fail\n" +" 13 no no N/A exists nothing fail\n" msgstr "" -#. type: Plain text -#: en/git-rev-parse.txt:260 +#. type: delimited block . +#: en/git-read-tree.txt:211 +#, no-wrap msgid "" -"When the command is invoked from a subdirectory, show the path of the " -"current directory relative to the top-level directory." +"\tclean (H==M)\n" +" ------\n" +" 14 yes exists exists keep index\n" +" 15 no exists exists keep index\n" msgstr "" -#. type: Labeled list -#: en/git-rev-parse.txt:261 +#. type: delimited block . +#: en/git-read-tree.txt:220 #, no-wrap -msgid "--show-toplevel" +msgid "" +" clean I==H I==M (H!=M)\n" +" ------------------\n" +" 16 yes no no exists exists fail\n" +" 17 no no no exists exists fail\n" +" 18 yes no yes exists exists keep index\n" +" 19 no no yes exists exists keep index\n" +" 20 yes yes no exists exists use M\n" +" 21 no yes no exists exists fail\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:263 -msgid "Show the absolute path of the top-level directory." +#: en/git-read-tree.txt:226 +msgid "" +"In all \"keep index\" cases, the index entry stays as in the original index " +"file. If the entry is not up to date, 'git read-tree' keeps the copy in the " +"work tree intact when operating under the -u flag." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:269 -#, no-wrap +#: en/git-read-tree.txt:237 msgid "" -"--show-superproject-working-tree\n" -"\tShow the absolute path of the root of the superproject's\n" -"\tworking tree (if exists) that uses the current repository as\n" -"\tits submodule. Outputs nothing if the current repository is\n" -"\tnot used as a submodule by any project.\n" -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:270 -#, no-wrap -msgid "--shared-index-path" +"When this form of 'git read-tree' returns successfully, you can see which of " +"the \"local changes\" that you made were carried forward by running `git " +"diff-index --cached $M`. Note that this does not necessarily match what " +"`git diff-index --cached $H` would have produced before such a two tree " +"merge. This is because of cases 18 and 19 --- if you already had the " +"changes in $M (e.g. maybe you picked it up via e-mail in a patch form), `git " +"diff-index --cached $H` would have told you about the change before this " +"merge, but it would not show in `git diff-index --cached $M` output after " +"the two-tree merge." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:273 +#: en/git-read-tree.txt:244 msgid "" -"Show the path to the shared index file in split index mode, or empty if not " -"in split-index mode." +"Case 3 is slightly tricky and needs explanation. The result from this rule " +"logically should be to remove the path if the user staged the removal of the " +"path and then switching to a new branch. That however will prevent the " +"initial checkout from happening, so the rule is modified to use M (new tree) " +"only when the content of the index is empty. Otherwise the removal of the " +"path is kept as long as $H and $M are the same." msgstr "" #. type: Title ~ -#: en/git-rev-parse.txt:275 -#, no-wrap -msgid "Other Options" -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:277 +#: en/git-read-tree.txt:246 #, no-wrap -msgid "--since=datestring" -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:278 -#, no-wrap -msgid "--after=datestring" +msgid "3-Way Merge" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:281 +#: en/git-read-tree.txt:249 msgid "" -"Parse the date string, and output the corresponding --max-age= parameter for " -"'git rev-list'." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:282 -#, no-wrap -msgid "--until=datestring" -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:283 -#, no-wrap -msgid "--before=datestring" +"Each \"index\" entry has two bits worth of \"stage\" state. stage 0 is the " +"normal one, and is the only one you'd see in any kind of normal use." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:286 +#: en/git-read-tree.txt:252 msgid "" -"Parse the date string, and output the corresponding --min-age= parameter for " -"'git rev-list'." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:287 -#, no-wrap -msgid "<args>..." +"However, when you do 'git read-tree' with three trees, the \"stage\" starts " +"out at 1." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:289 -msgid "Flags and parameters to be parsed." +#: en/git-read-tree.txt:254 +msgid "This means that you can do" msgstr "" -#. type: Title - -#: en/git-rev-parse.txt:294 +#. type: delimited block - +#: en/git-read-tree.txt:257 #, no-wrap -msgid "PARSEOPT" +msgid "$ git read-tree -m <tree1> <tree2> <tree3>\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:299 +#: en/git-read-tree.txt:265 msgid "" -"In `--parseopt` mode, 'git rev-parse' helps massaging options to bring to " -"shell scripts the same facilities C builtins have. It works as an option " -"normalizer (e.g. splits single switches aggregate values), a bit like " -"`getopt(1)` does." +"and you will end up with an index with all of the <tree1> entries in " +"\"stage1\", all of the <tree2> entries in \"stage2\" and all of the <tree3> " +"entries in \"stage3\". When performing a merge of another branch into the " +"current branch, we use the common ancestor tree as <tree1>, the current " +"branch head as <tree2>, and the other branch head as <tree3>." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:304 +#: en/git-read-tree.txt:269 msgid "" -"It takes on the standard input the specification of the options to parse and " -"understand, and echoes on the standard output a string suitable for `sh(1)` " -"`eval` to replace the arguments with normalized ones. In case of error, it " -"outputs usage on the standard error stream, and exits with code 129." +"Furthermore, 'git read-tree' has special-case logic that says: if you see a " +"file that matches in all respects in the following states, it \"collapses\" " +"back to \"stage0\":" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:307 +#: en/git-read-tree.txt:273 msgid "" -"Note: Make sure you quote the result when passing it to `eval`. See below " -"for an example." +"stage 2 and 3 are the same; take one or the other (it makes no difference - " +"the same work has been done on our branch in stage 2 and their branch in " +"stage 3)" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:315 +#: en/git-read-tree.txt:278 msgid "" -"'git rev-parse --parseopt' input format is fully text based. It has two " -"parts, separated by a line that contains only `--`. The lines before the " -"separator (should be one or more) are used for the usage. The lines after " -"the separator describe the options." +"stage 1 and stage 2 are the same and stage 3 is different; take stage 3 (our " +"branch in stage 2 did not do anything since the ancestor in stage 1 while " +"their branch in stage 3 worked on it)" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:317 -msgid "Each line of options has this format:" -msgstr "" - -#. type: delimited block - -#: en/git-rev-parse.txt:320 -#, no-wrap -msgid "<opt-spec><flags>*<arg-hint>? SP+ help LF\n" -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:322 -#, no-wrap -msgid "`<opt-spec>`" +#: en/git-read-tree.txt:281 +msgid "" +"stage 1 and stage 3 are the same and stage 2 is different take stage 2 (we " +"did something while they did nothing)" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:327 +#: en/git-read-tree.txt:285 msgid "" -"its format is the short option character, then the long option name " -"separated by a comma. Both parts are not required, though at least one is " -"necessary. May not contain any of the `<flags>` characters. `h,help`, " -"`dry-run` and `f` are examples of correct `<opt-spec>`." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:328 -#, no-wrap -msgid "`<flags>`" +"The 'git write-tree' command refuses to write a nonsensical tree, and it " +"will complain about unmerged entries if it sees a single entry that is not " +"stage 0." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:330 -msgid "`<flags>` are of `*`, `=`, `?` or `!`." +#: en/git-read-tree.txt:291 +msgid "" +"OK, this all sounds like a collection of totally nonsensical rules, but it's " +"actually exactly what you want in order to do a fast merge. The different " +"stages represent the \"result tree\" (stage 0, aka \"merged\"), the original " +"tree (stage 1, aka \"orig\"), and the two trees you are trying to merge " +"(stage 2 and 3 respectively)." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:331 -msgid "Use `=` if the option takes an argument." +#: en/git-read-tree.txt:296 +msgid "" +"The order of stages 1, 2 and 3 (hence the order of three <tree-ish> command-" +"line arguments) are significant when you start a 3-way merge with an index " +"file that is already populated. Here is an outline of how the algorithm " +"works:" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:335 +#: en/git-read-tree.txt:299 msgid "" -"Use `?` to mean that the option takes an optional argument. You probably " -"want to use the `--stuck-long` mode to be able to unambiguously parse the " -"optional argument." +"if a file exists in identical format in all three trees, it will " +"automatically collapse to \"merged\" state by 'git read-tree'." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:339 +#: en/git-read-tree.txt:304 msgid "" -"Use `*` to mean that this option should not be listed in the usage generated " -"for the `-h` argument. It's shown for `--help-all` as documented in " -"linkgit:gitcli[7]." +"a file that has _any_ difference what-so-ever in the three trees will stay " +"as separate entries in the index. It's up to \"porcelain policy\" to " +"determine how to remove the non-0 stages, and insert a merged version." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:341 -msgid "Use `!` to not make the corresponding negated long option available." -msgstr "" - -#. type: Labeled list -#: en/git-rev-parse.txt:342 -#, no-wrap -msgid "`<arg-hint>`" +#: en/git-read-tree.txt:309 +msgid "" +"the index file saves and restores with all this information, so you can " +"merge things incrementally, but as long as it has entries in stages 1/2/3 (i." +"e., \"unmerged entries\") you can't write the result. So now the merge " +"algorithm ends up being really simple:" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:347 +#: en/git-read-tree.txt:312 msgid "" -"`<arg-hint>`, if specified, is used as a name of the argument in the help " -"output, for options that take arguments. `<arg-hint>` is terminated by the " -"first whitespace. It is customary to use a dash to separate words in a " -"multi-word argument hint." +"you walk the index in order, and ignore all entries of stage 0, since " +"they've already been done." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:350 +#: en/git-read-tree.txt:316 msgid "" -"The remainder of the line, after stripping the spaces, is used as the help " -"associated to the option." +"if you find a \"stage1\", but no matching \"stage2\" or \"stage3\", you know " +"it's been removed from both trees (it only existed in the original tree), " +"and you remove that entry." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:354 +#: en/git-read-tree.txt:321 msgid "" -"Blank lines are ignored, and lines that don't match this specification are " -"used as option group headers (start the line with a space to create such " -"lines on purpose)." -msgstr "" - -#. type: Title ~ -#: en/git-rev-parse.txt:356 en/git-rev-parse.txt:412 en/config.txt:147 -#, no-wrap -msgid "Example" +"if you find a matching \"stage2\" and \"stage3\" tree, you remove one of " +"them, and turn the other into a \"stage0\" entry. Remove any matching " +"\"stage1\" entry if it exists too. .. all the normal trivial rules .." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:361 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:326 msgid "" -"OPTS_SPEC=\"\\\n" -"some-command [options] <args>...\n" +"You would normally use 'git merge-index' with supplied 'git merge-one-file' " +"to do this last step. The script updates the files in the working tree as " +"it merges each path and at the end of a successful merge." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:363 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:334 msgid "" -"some-command does foo and bar!\n" -"--\n" +"When you start a 3-way merge with an index file that is already populated, " +"it is assumed that it represents the state of the files in your work tree, " +"and you can even have files with changes unrecorded in the index file. It " +"is further assumed that this state is \"derived\" from the stage 2 tree. " +"The 3-way merge refuses to run if it finds an entry in the original index " +"file that does not match stage 2." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:365 -#, no-wrap -msgid "h,help show the help\n" +#. type: Plain text +#: en/git-read-tree.txt:339 +msgid "" +"This is done to prevent you from losing your work-in-progress changes, and " +"mixing your random changes in an unrelated merge commit. To illustrate, " +"suppose you start from what has been committed last to your repository:" msgstr "" #. type: delimited block - -#: en/git-rev-parse.txt:370 +#: en/git-read-tree.txt:343 #, no-wrap msgid "" -"foo some nifty option --foo\n" -"bar= some cool option --bar with an argument\n" -"baz=arg another cool option --baz with a named argument\n" -"qux?path qux may take a path argument but has meaning by itself\n" +"$ JC=`git rev-parse --verify \"HEAD^0\"`\n" +"$ git checkout-index -f -u -a $JC\n" msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:373 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:348 msgid "" -" An option group Header\n" -"C? option C with an optional argument\"\n" +"You do random edits, without running 'git update-index'. And then you " +"notice that the tip of your \"upstream\" tree has advanced since you pulled " +"from him:" msgstr "" #. type: delimited block - -#: en/git-rev-parse.txt:375 +#: en/git-read-tree.txt:352 #, no-wrap msgid "" -"eval \"$(echo \"$OPTS_SPEC\" | git rev-parse --parseopt -- \"$@\" || echo " -"exit $?)\"\n" -msgstr "" - -#. type: Title ~ -#: en/git-rev-parse.txt:379 -#, no-wrap -msgid "Usage text" +"$ git fetch git://.... linus\n" +"$ LT=`git rev-parse FETCH_HEAD`\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:383 +#: en/git-read-tree.txt:358 msgid "" -"When `\"$@\"` is `-h` or `--help` in the above example, the following usage " -"text would be shown:" +"Your work tree is still based on your HEAD ($JC), but you have some edits " +"since. Three-way merge makes sure that you have not added or modified index " +"entries since $JC, and if you haven't, then does the right thing. So with " +"the following sequence:" msgstr "" #. type: delimited block - -#: en/git-rev-parse.txt:386 +#: en/git-read-tree.txt:364 #, no-wrap -msgid "usage: some-command [options] <args>...\n" +msgid "" +"$ git read-tree -m -u `git merge-base $JC $LT` $JC $LT\n" +"$ git merge-index git-merge-one-file -a\n" +"$ echo \"Merge with Linus\" | \\\n" +" git commit-tree `git write-tree` -p $JC -p $LT\n" msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:388 -#, no-wrap -msgid " some-command does foo and bar!\n" +#. type: Plain text +#: en/git-read-tree.txt:369 +msgid "" +"what you would commit is a pure merge between $JC and $LT without your work-" +"in-progress changes, and your work tree would be updated to the result of " +"the merge." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:394 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:373 msgid "" -" -h, --help show the help\n" -" --foo some nifty option --foo\n" -" --bar ... some cool option --bar with an argument\n" -" --baz <arg> another cool option --baz with a named argument\n" -" --qux[=<path>] qux may take a path argument but has meaning by " -"itself\n" +"However, if you have local changes in the working tree that would be " +"overwritten by this merge, 'git read-tree' will refuse to run to prevent " +"your changes from being lost." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:397 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:383 msgid "" -"An option group Header\n" -" -C[...] option C with an optional argument\n" +"In other words, there is no need to worry about what exists only in the " +"working tree. When you have local changes in a part of the project that is " +"not involved in the merge, your changes do not interfere with the merge, and " +"are kept intact. When they *do* interfere, the merge does not even start " +"('git read-tree' complains loudly and fails without modifying anything). In " +"such a case, you can simply continue doing what you were in the middle of " +"doing, and when your working tree is ready (i.e. you have finished your work-" +"in-progress), attempt the merge again." msgstr "" #. type: Title - -#: en/git-rev-parse.txt:400 +#: en/git-read-tree.txt:386 #, no-wrap -msgid "SQ-QUOTE" +msgid "SPARSE CHECKOUT" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:406 +#: en/git-read-tree.txt:391 msgid "" -"In `--sq-quote` mode, 'git rev-parse' echoes on the standard output a single " -"line suitable for `sh(1)` `eval`. This line is made by normalizing the " -"arguments following `--sq-quote`. Nothing other than quoting the arguments " -"is done." +"\"Sparse checkout\" allows populating the working directory sparsely. It " +"uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell Git " +"whether a file in the working directory is worth looking at." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:410 +#: en/git-read-tree.txt:400 msgid "" -"If you want command input to still be interpreted as usual by 'git " -"rev-parse' before the output is shell quoted, see the `--sq` option." +"'git read-tree' and other merge-based commands ('git merge', 'git " +"checkout'...) can help maintaining the skip-worktree bitmap and working " +"directory update. `$GIT_DIR/info/sparse-checkout` is used to define the skip-" +"worktree reference bitmap. When 'git read-tree' needs to update the working " +"directory, it resets the skip-worktree bit in the index based on this file, " +"which uses the same syntax as .gitignore files. If an entry matches a " +"pattern in this file, skip-worktree will not be set on that entry. " +"Otherwise, skip-worktree will be set." msgstr "" -#. type: delimited block - -#: en/git-rev-parse.txt:422 -#, no-wrap +#. type: Plain text +#: en/git-read-tree.txt:404 msgid "" -"$ cat >your-git-script.sh <<\\EOF\n" -"#!/bin/sh\n" -"args=$(git rev-parse --sq-quote \"$@\") # quote user-supplied arguments\n" -"command=\"git frotz -n24 $args\" # and use it inside a " -"handcrafted\n" -"\t\t\t\t\t# command line\n" -"eval \"$command\"\n" -"EOF\n" -msgstr "" - -#. type: delimited block - -#: en/git-rev-parse.txt:424 -#, no-wrap -msgid "$ sh your-git-script.sh \"a b'c\"\n" +"Then it compares the new skip-worktree value with the previous one. If skip-" +"worktree turns from set to unset, it will add the corresponding file back. " +"If it turns from unset to set, that file will be removed." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:430 -msgid "Print the object name of the current commit:" +#: en/git-read-tree.txt:408 +msgid "" +"While `$GIT_DIR/info/sparse-checkout` is usually used to specify what files " +"are in, you can also specify what files are _not_ in, using negate patterns. " +"For example, to remove the file `unwanted`:" msgstr "" #. type: delimited block - -#: en/git-rev-parse.txt:433 +#: en/git-read-tree.txt:412 #, no-wrap -msgid "$ git rev-parse --verify HEAD\n" +msgid "" +"/*\n" +"!unwanted\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:436 -msgid "Print the commit object name from the revision in the $REV shell variable:" +#: en/git-read-tree.txt:420 +msgid "" +"Another tricky thing is fully repopulating the working directory when you no " +"longer want sparse checkout. You cannot just disable \"sparse checkout\" " +"because skip-worktree bits are still in the index and your working directory " +"is still sparsely populated. You should re-populate the working directory " +"with the `$GIT_DIR/info/sparse-checkout` file content as follows:" msgstr "" #. type: delimited block - -#: en/git-rev-parse.txt:439 +#: en/git-read-tree.txt:423 #, no-wrap -msgid "$ git rev-parse --verify $REV^{commit}\n" -msgstr "" - -#. type: Plain text -#: en/git-rev-parse.txt:442 -msgid "This will error out if $REV is empty or not a valid revision." +msgid "/*\n" msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:444 -msgid "Similar to above:" -msgstr "" - -#. type: delimited block - -#: en/git-rev-parse.txt:447 -#, no-wrap -msgid "$ git rev-parse --default master --verify $REV\n" +#: en/git-read-tree.txt:429 +msgid "" +"Then you can disable sparse checkout. Sparse checkout support in 'git read-" +"tree' and similar commands is disabled by default. You need to turn `core." +"sparseCheckout` on in order to have sparse checkout support." msgstr "" #. type: Plain text -#: en/git-rev-parse.txt:450 -msgid "but if $REV is empty, the commit object name from master will be printed." +#: en/git-read-tree.txt:435 +msgid "" +"linkgit:git-write-tree[1]; linkgit:git-ls-files[1]; linkgit:gitignore[5]" msgstr "" #. type: Title = -#: en/git-rm.txt:2 +#: en/git-rebase.txt:2 #, no-wrap -msgid "git-rm(1)" +msgid "git-rebase(1)" msgstr "" #. type: Plain text -#: en/git-rm.txt:7 -msgid "git-rm - Remove files from the working tree and from the index" +#: en/git-rebase.txt:7 +msgid "git-rebase - Reapply commits on top of another base tip" msgstr "" #. type: Plain text -#: en/git-rm.txt:12 +#: en/git-rebase.txt:16 #, no-wrap msgid "" -"'git rm' [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] " -"[--] <file>...\n" +"'git rebase' [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]\n" +"\t[<upstream> [<branch>]]\n" +"'git rebase' [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]\n" +"\t--root [<branch>]\n" +"'git rebase' --continue | --skip | --abort | --quit | --edit-todo | --show-current-patch\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:25 +#: en/git-rebase.txt:22 msgid "" -"Remove files from the index, or from the working tree and the index. `git " -"rm` will not remove a file from just your working directory. (There is no " -"option to remove a file only from the working tree and yet keep it in the " -"index; use `/bin/rm` if you want to do that.) The files being removed have " -"to be identical to the tip of the branch, and no updates to their contents " -"can be staged in the index, though that default behavior can be overridden " -"with the `-f` option. When `--cached` is given, the staged content has to " -"match either the tip of the branch or the file on disk, allowing the file to " -"be removed from just the index." +"If <branch> is specified, 'git rebase' will perform an automatic `git " +"checkout <branch>` before doing anything else. Otherwise it remains on the " +"current branch." msgstr "" #. type: Plain text -#: en/git-rm.txt:38 +#: en/git-rebase.txt:28 msgid "" -"Files to remove. Fileglobs (e.g. `*.c`) can be given to remove all matching " -"files. If you want Git to expand file glob characters, you may need to " -"shell-escape them. A leading directory name (e.g. `dir` to remove " -"`dir/file1` and `dir/file2`) can be given to remove all files in the " -"directory, and recursively all sub-directories, but this requires the `-r` " -"option to be explicitly given." +"If <upstream> is not specified, the upstream configured in branch.<name>." +"remote and branch.<name>.merge options will be used (see linkgit:git-" +"config[1] for details) and the `--fork-point` option is assumed. If you are " +"currently not on any branch or if the current branch does not have a " +"configured upstream, the rebase will abort." msgstr "" #. type: Plain text -#: en/git-rm.txt:42 -msgid "Override the up-to-date check." +#: en/git-rebase.txt:35 +msgid "" +"All changes made by commits in the current branch but that are not in " +"<upstream> are saved to a temporary area. This is the same set of commits " +"that would be shown by `git log <upstream>..HEAD`; or by `git log " +"'fork_point'..HEAD`, if `--fork-point` is active (see the description on `--" +"fork-point` below); or by `git log HEAD`, if the `--root` option is " +"specified." msgstr "" #. type: Plain text -#: en/git-rm.txt:48 +#: en/git-rebase.txt:40 msgid "" -"Don't actually remove any file(s). Instead, just show if they exist in the " -"index and would otherwise be removed by the command." +"The current branch is reset to <upstream>, or <newbase> if the --onto option " +"was supplied. This has the exact same effect as `git reset --hard " +"<upstream>` (or <newbase>). ORIG_HEAD is set to point at the tip of the " +"branch before the reset." msgstr "" #. type: Plain text -#: en/git-rm.txt:52 -msgid "Allow recursive removal when a leading directory name is given." +#: en/git-rebase.txt:46 +msgid "" +"The commits that were previously saved into the temporary area are then " +"reapplied to the current branch, one by one, in order. Note that any commits " +"in HEAD which introduce the same textual changes as a commit in HEAD.." +"<upstream> are omitted (i.e., a patch already accepted upstream with a " +"different commit message or timestamp will be skipped)." msgstr "" #. type: Plain text -#: en/git-rm.txt:62 +#: en/git-rebase.txt:53 msgid "" -"Use this option to unstage and remove paths only from the index. Working " -"tree files, whether modified or not, will be left alone." +"It is possible that a merge failure will prevent this process from being " +"completely automatic. You will have to resolve any such merge failure and " +"run `git rebase --continue`. Another option is to bypass the commit that " +"caused the merge failure with `git rebase --skip`. To check out the " +"original <branch> and remove the .git/rebase-apply working files, use the " +"command `git rebase --abort` instead." msgstr "" -#. type: Labeled list -#: en/git-rm.txt:63 +#. type: Plain text +#: en/git-rebase.txt:55 +msgid "" +"Assume the following history exists and the current branch is \"topic\":" +msgstr "" + +#. type: delimited block - +#: en/git-rebase.txt:60 #, no-wrap -msgid "--ignore-unmatch" +msgid "" +" A---B---C topic\n" +" /\n" +" D---E---F---G master\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:65 -msgid "Exit with a zero status even if no files matched." +#: en/git-rebase.txt:63 +msgid "From this point, the result of either of the following commands:" msgstr "" #. type: Plain text -#: en/git-rm.txt:70 +#: en/git-rebase.txt:67 +#, no-wrap msgid "" -"`git rm` normally outputs one line (in the form of an `rm` command) for " -"each file removed. This option suppresses that output." +" git rebase master\n" +" git rebase master topic\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:79 -msgid "" -"The <file> list given to the command can be exact pathnames, file glob " -"patterns, or leading directory names. The command removes only the paths " -"that are known to Git. Giving the name of a file that you have not told Git " -"about does not remove that file." +#: en/git-rebase.txt:69 +msgid "would be:" msgstr "" -#. type: Plain text -#: en/git-rm.txt:84 +#. type: delimited block - +#: en/git-rebase.txt:74 +#, no-wrap msgid "" -"File globbing matches across directory boundaries. Thus, given two " -"directories `d` and `d2`, there is a difference between using `git rm 'd*'` " -"and `git rm 'd/*'`, as the former will also remove all of directory `d2`." +" A'--B'--C' topic\n" +" /\n" +" D---E---F---G master\n" msgstr "" -#. type: Title - -#: en/git-rm.txt:86 +#. type: Plain text +#: en/git-rebase.txt:79 #, no-wrap -msgid "REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM" +msgid "" +"*NOTE:* The latter form is just a short-hand of `git checkout topic`\n" +"followed by `git rebase master`. When rebase exits `topic` will\n" +"remain the checked-out branch.\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:91 +#: en/git-rebase.txt:85 msgid "" -"There is no option for `git rm` to remove from the index only the paths that " -"have disappeared from the filesystem. However, depending on the use case, " -"there are several ways that can be done." +"If the upstream branch already contains a change you have made (e.g., " +"because you mailed a patch which was applied upstream), then that commit " +"will be skipped. For example, running `git rebase master` on the following " +"history (in which `A'` and `A` introduce the same set of changes, but have " +"different committer information):" msgstr "" -#. type: Title ~ -#: en/git-rm.txt:93 +#. type: delimited block - +#: en/git-rebase.txt:90 #, no-wrap -msgid "Using ``git commit -a''" +msgid "" +" A---B---C topic\n" +" /\n" +" D---E---A'---F master\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:100 -msgid "" -"If you intend that your next commit should record all modifications of " -"tracked files in the working tree and record all removals of files that have " -"been removed from the working tree with `rm` (as opposed to `git rm`), use " -"`git commit -a`, as it will automatically notice and record all removals. " -"You can also have a similar effect without committing by using `git add -u`." +#: en/git-rebase.txt:93 +msgid "will result in:" msgstr "" -#. type: Title ~ -#: en/git-rm.txt:102 +#. type: delimited block - +#: en/git-rebase.txt:98 #, no-wrap -msgid "Using ``git add -A''" +msgid "" +" B'---C' topic\n" +" /\n" +" D---E---A'---F master\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:106 +#: en/git-rebase.txt:103 msgid "" -"When accepting a new code drop for a vendor branch, you probably want to " -"record both the removal of paths and additions of new paths as well as " -"modifications of existing paths." +"Here is how you would transplant a topic branch based on one branch to " +"another, to pretend that you forked the topic branch from the latter branch, " +"using `rebase --onto`." msgstr "" #. type: Plain text -#: en/git-rm.txt:109 +#: en/git-rebase.txt:107 msgid "" -"Typically you would first remove all tracked files from the working tree " -"using this command:" +"First let's assume your 'topic' is based on branch 'next'. For example, a " +"feature developed in 'topic' depends on some functionality which is found in " +"'next'." msgstr "" #. type: delimited block - -#: en/git-rm.txt:112 +#: en/git-rebase.txt:114 #, no-wrap -msgid "git ls-files -z | xargs -0 rm -f\n" -msgstr "" - -#. type: Plain text -#: en/git-rm.txt:116 msgid "" -"and then untar the new code in the working tree. Alternately you could " -"'rsync' the changes into the working tree." +" o---o---o---o---o master\n" +" \\\n" +" o---o---o---o---o next\n" +" \\\n" +" o---o---o topic\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:119 +#: en/git-rebase.txt:119 msgid "" -"After that, the easiest way to record all removals, additions, and " -"modifications in the working tree is:" +"We want to make 'topic' forked from branch 'master'; for example, because " +"the functionality on which 'topic' depends was merged into the more stable " +"'master' branch. We want our tree to look like this:" msgstr "" #. type: delimited block - -#: en/git-rm.txt:122 +#: en/git-rebase.txt:126 #, no-wrap -msgid "git add -A\n" +msgid "" +" o---o---o---o---o master\n" +" | \\\n" +" | o'--o'--o' topic\n" +" \\\n" +" o---o---o---o---o next\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:125 -msgid "See linkgit:git-add[1]." +#: en/git-rebase.txt:129 +msgid "We can get this using the following command:" msgstr "" -#. type: Title ~ -#: en/git-rm.txt:127 +#. type: Plain text +#: en/git-rebase.txt:131 #, no-wrap -msgid "Other ways" +msgid " git rebase --onto master next topic\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:132 +#: en/git-rebase.txt:135 msgid "" -"If all you really want to do is to remove from the index the files that are " -"no longer present in the working tree (perhaps because your working tree is " -"dirty so that you cannot use `git commit -a`), use the following command:" +"Another example of --onto option is to rebase part of a branch. If we have " +"the following situation:" msgstr "" #. type: delimited block - -#: en/git-rm.txt:135 +#: en/git-rebase.txt:142 #, no-wrap -msgid "git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached\n" -msgstr "" - -#. type: Plain text -#: en/git-rm.txt:147 msgid "" -"Only submodules using a gitfile (which means they were cloned with a Git " -"version 1.7.8 or newer) will be removed from the work tree, as their " -"repository lives inside the .git directory of the superproject. If a " -"submodule (or one of those nested inside it) still uses a .git directory, " -"`git rm` will fail - no matter if forced or not - to protect the submodule's " -"history. If it exists the submodule.<name> section in the " -"linkgit:gitmodules[5] file will also be removed and that file will be staged " -"(unless --cached or -n are used)." +" H---I---J topicB\n" +" /\n" +" E---F---G topicA\n" +" /\n" +" A---B---C---D master\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:153 -msgid "" -"A submodule is considered up-to-date when the HEAD is the same as recorded " -"in the index, no tracked files are modified and no untracked files that " -"aren't ignored are present in the submodules work tree. Ignored files are " -"deemed expendable and won't stop a submodule's work tree from being removed." +#: en/git-rebase.txt:145 en/git-rebase.txt:168 +msgid "then the command" msgstr "" #. type: Plain text -#: en/git-rm.txt:157 -msgid "" -"If you only want to remove the local checkout of a submodule from your work " -"tree without committing the removal, use linkgit:git-submodule[1] `deinit` " -"instead." -msgstr "" - -#. type: Labeled list -#: en/git-rm.txt:160 +#: en/git-rebase.txt:147 #, no-wrap -msgid "`git rm Documentation/\\*.txt`" -msgstr "" - -#. type: Plain text -#: en/git-rm.txt:163 -msgid "" -"Removes all `*.txt` files from the index that are under the `Documentation` " -"directory and any of its subdirectories." +msgid " git rebase --onto master topicA topicB\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:167 -msgid "" -"Note that the asterisk `*` is quoted from the shell in this example; this " -"lets Git, and not the shell, expand the pathnames of files and " -"subdirectories under the `Documentation/` directory." +#: en/git-rebase.txt:149 +msgid "would result in:" msgstr "" -#. type: Labeled list -#: en/git-rm.txt:168 +#. type: delimited block - +#: en/git-rebase.txt:156 #, no-wrap -msgid "`git rm -f git-*.sh`" +msgid "" +" H'--I'--J' topicB\n" +" /\n" +" | E---F---G topicA\n" +" |/\n" +" A---B---C---D master\n" msgstr "" #. type: Plain text -#: en/git-rm.txt:172 -msgid "" -"Because this example lets the shell expand the asterisk (i.e. you are " -"listing the files explicitly), it does not remove `subdir/git-foo.sh`." +#: en/git-rebase.txt:159 +msgid "This is useful when topicB does not depend on topicA." msgstr "" #. type: Plain text -#: en/git-rm.txt:181 +#: en/git-rebase.txt:162 msgid "" -"Each time a superproject update removes a populated submodule (e.g. when " -"switching between commits before and after the removal) a stale submodule " -"checkout will remain in the old location. Removing the old directory is only " -"safe when it uses a gitfile, as otherwise the history of the submodule will " -"be deleted too. This step will be obsolete when recursive submodule update " -"has been implemented." +"A range of commits could also be removed with rebase. If we have the " +"following situation:" msgstr "" -#. type: Labeled list -#: en/git-rm.txt:185 en/cmds-mainporcelain.txt:1 +#. type: delimited block - +#: en/git-rebase.txt:165 #, no-wrap -msgid "linkgit:git-add[1]" +msgid " E---F---G---H---I---J topicA\n" msgstr "" -#. type: Title = -#: en/git-send-email.txt:2 +#. type: Plain text +#: en/git-rebase.txt:170 #, no-wrap -msgid "git-send-email(1)" +msgid " git rebase --onto topicA~5 topicA~3 topicA\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:7 -msgid "git-send-email - Send a collection of patches as emails" +#: en/git-rebase.txt:172 +msgid "would result in the removal of commits F and G:" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:14 +#. type: delimited block - +#: en/git-rebase.txt:175 #, no-wrap -msgid "" -"'git send-email' [options] <file|directory|rev-list options>...\n" -"'git send-email' --dump-aliases\n" +msgid " E---H'---I'---J' topicA\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:23 +#: en/git-rebase.txt:180 msgid "" -"Takes the patches given on the command line and emails them out. Patches " -"can be specified as files, directories (which will send all files in the " -"directory), or directly as a revision list. In the last case, any format " -"accepted by linkgit:git-format-patch[1] can be passed to git send-email." +"This is useful if F and G were flawed in some way, or should not be part of " +"topicA. Note that the argument to --onto and the <upstream> parameter can " +"be any valid commit-ish." msgstr "" #. type: Plain text -#: en/git-send-email.txt:27 +#: en/git-rebase.txt:186 msgid "" -"The header of the email is configurable via command-line options. If not " -"specified on the command line, the user will be prompted with a ReadLine " -"enabled interface to provide the necessary information." -msgstr "" - -#. type: Plain text -#: en/git-send-email.txt:29 -msgid "There are two formats accepted for patch files:" +"In case of conflict, 'git rebase' will stop at the first problematic commit " +"and leave conflict markers in the tree. You can use 'git diff' to locate " +"the markers (<<<<<<) and make edits to resolve the conflict. For each file " +"you edit, you need to tell Git that the conflict has been resolved, " +"typically this would be done with" msgstr "" #. type: Plain text -#: en/git-send-email.txt:31 -msgid "mbox format files" +#: en/git-rebase.txt:189 +#, no-wrap +msgid " git add <filename>\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:34 +#: en/git-rebase.txt:193 msgid "" -"This is what linkgit:git-format-patch[1] generates. Most headers and MIME " -"formatting are ignored." +"After resolving the conflict manually and updating the index with the " +"desired resolution, you can continue the rebasing process with" msgstr "" #. type: Plain text -#: en/git-send-email.txt:37 -msgid "" -"The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl' " -"script" +#: en/git-rebase.txt:196 +#, no-wrap +msgid " git rebase --continue\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:40 -msgid "" -"This format expects the first line of the file to contain the \"Cc:\" value " -"and the \"Subject:\" of the message as the second line." +#: en/git-rebase.txt:199 +msgid "Alternatively, you can undo the 'git rebase' with" msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:46 +#. type: Plain text +#: en/git-rebase.txt:202 #, no-wrap -msgid "Composing" +msgid " git rebase --abort\n" msgstr "" #. type: Labeled list -#: en/git-send-email.txt:48 en/git-tag.txt:60 +#: en/git-rebase.txt:210 #, no-wrap -msgid "--annotate" +msgid "--onto <newbase>" msgstr "" #. type: Plain text -#: en/git-send-email.txt:52 +#: en/git-rebase.txt:215 msgid "" -"Review and edit each patch you're about to send. Default is the value of " -"`sendemail.annotate`. See the CONFIGURATION section for " -"`sendemail.multiEdit`." +"Starting point at which to create the new commits. If the --onto option is " +"not specified, the starting point is <upstream>. May be any valid commit, " +"and not just an existing branch name." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:53 -#, no-wrap -msgid "--bcc=<address>,..." +#. type: Plain text +#: en/git-rebase.txt:219 +msgid "" +"As a special case, you may use \"A\\...B\" as a shortcut for the merge base " +"of A and B if there is exactly one merge base. You can leave out at most one " +"of A and B, in which case it defaults to HEAD." msgstr "" #. type: Plain text -#: en/git-send-email.txt:56 +#: en/git-rebase.txt:224 msgid "" -"Specify a \"Bcc:\" value for each email. Default is the value of " -"`sendemail.bcc`." +"Upstream branch to compare against. May be any valid commit, not just an " +"existing branch name. Defaults to the configured upstream for the current " +"branch." msgstr "" #. type: Plain text -#: en/git-send-email.txt:58 en/git-send-email.txt:64 en/git-send-email.txt:121 -msgid "This option may be specified multiple times." +#: en/git-rebase.txt:230 +msgid "Restart the rebasing process after having resolved a merge conflict." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:59 -#, no-wrap -msgid "--cc=<address>,..." +#. type: Plain text +#: en/git-rebase.txt:237 +msgid "" +"Abort the rebase operation and reset HEAD to the original branch. If " +"<branch> was provided when the rebase operation was started, then HEAD will " +"be reset to <branch>. Otherwise HEAD will be reset to where it was when the " +"rebase operation was started." msgstr "" #. type: Plain text -#: en/git-send-email.txt:62 +#: en/git-rebase.txt:242 msgid "" -"Specify a starting \"Cc:\" value for each email. Default is the value of " -"`sendemail.cc`." +"Abort the rebase operation but HEAD is not reset back to the original " +"branch. The index and working tree are also left unchanged as a result." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:65 +#. type: Plain text +#: en/git-rebase.txt:243 en/git-rebase.txt:532 #, no-wrap -msgid "--compose" +msgid "--keep-empty" msgstr "" #. type: Plain text -#: en/git-send-email.txt:68 +#: en/git-rebase.txt:246 msgid "" -"Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) to edit an " -"introductory message for the patch series." +"Keep the commits that do not change anything from its parents in the result." msgstr "" #. type: Plain text -#: en/git-send-email.txt:74 -msgid "" -"When `--compose` is used, git send-email will use the From, Subject, and " -"In-Reply-To headers specified in the message. If the body of the message " -"(what you type after the headers and a blank line) only contains blank (or " -"Git: prefixed) lines, the summary won't be sent, but From, Subject, and " -"In-Reply-To headers will be used unless they are removed." +#: en/git-rebase.txt:248 en/git-rebase.txt:255 en/git-rebase.txt:280 +#: en/git-rebase.txt:293 en/git-rebase.txt:302 en/git-rebase.txt:339 +#: en/git-rebase.txt:374 en/git-rebase.txt:381 en/git-rebase.txt:388 +#: en/git-rebase.txt:400 en/git-rebase.txt:439 en/git-rebase.txt:464 +#: en/git-rebase.txt:476 en/git-rebase.txt:495 +msgid "See also INCOMPATIBLE OPTIONS below." msgstr "" #. type: Plain text -#: en/git-send-email.txt:76 -msgid "Missing From or In-Reply-To headers will be prompted for." +#: en/git-rebase.txt:253 +msgid "" +"By default, rebasing commits with an empty message will fail. This option " +"overrides that behavior, allowing commits with empty messages to be rebased." msgstr "" #. type: Plain text -#: en/git-send-email.txt:78 -msgid "See the CONFIGURATION section for `sendemail.multiEdit`." +#: en/git-rebase.txt:258 +msgid "Restart the rebasing process by skipping the current patch." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:79 +#. type: Plain text +#: en/git-rebase.txt:259 en/git-rebase.txt:534 #, no-wrap -msgid "--from=<address>" +msgid "--edit-todo" msgstr "" #. type: Plain text -#: en/git-send-email.txt:86 -msgid "" -"Specify the sender of the emails. If not specified on the command line, the " -"value of the `sendemail.from` configuration option is used. If neither the " -"command-line option nor `sendemail.from` are set, then the user will be " -"prompted for the value. The default for the prompt will be the value of " -"GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not set, as returned by " -"\"git var -l\"." +#: en/git-rebase.txt:261 +msgid "Edit the todo list during an interactive rebase." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:87 -#, no-wrap -msgid "--in-reply-to=<identifier>" +#. type: Plain text +#: en/git-rebase.txt:266 +msgid "" +"Show the current patch in an interactive rebase or when rebase is stopped " +"because of conflicts. This is the equivalent of `git show REBASE_HEAD`." msgstr "" #. type: Plain text -#: en/git-send-email.txt:93 +#: en/git-rebase.txt:272 msgid "" -"Make the first mail (or all the mails with `--no-thread`) appear as a reply " -"to the given Message-Id, which avoids breaking threads to provide a new " -"patch series. The second and subsequent emails will be sent as replies " -"according to the `--[no-]chain-reply-to` setting." +"Use merging strategies to rebase. When the recursive (default) merge " +"strategy is used, this allows rebase to be aware of renames on the upstream " +"side." msgstr "" #. type: Plain text -#: en/git-send-email.txt:97 +#: en/git-rebase.txt:278 msgid "" -"So for example when `--thread` and `--no-chain-reply-to` are specified, the " -"second and subsequent patches will be replies to the first one like in the " -"illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:" +"Note that a rebase merge works by replaying each commit from the working " +"branch on top of the <upstream> branch. Because of this, when a merge " +"conflict happens, the side reported as 'ours' is the so-far rebased series, " +"starting with <upstream>, and 'theirs' is the working branch. In other " +"words, the sides are swapped." msgstr "" #. type: Plain text -#: en/git-send-email.txt:105 -#, no-wrap +#: en/git-rebase.txt:286 msgid "" -" [PATCH 0/2] Here is what I did...\n" -" [PATCH 1/2] Clean up and tests\n" -" [PATCH 2/2] Implementation\n" -" [PATCH v2 0/3] Here is a reroll\n" -" [PATCH v2 1/3] Clean up\n" -" [PATCH v2 2/3] New tests\n" -" [PATCH v2 3/3] Implementation\n" +"Use the given merge strategy. If there is no `-s` option 'git merge-" +"recursive' is used instead. This implies --merge." msgstr "" #. type: Plain text -#: en/git-send-email.txt:108 +#: en/git-rebase.txt:291 msgid "" -"Only necessary if --compose is also set. If --compose is not set, this will " -"be prompted for." +"Because 'git rebase' replays each commit from the working branch on top of " +"the <upstream> branch using the given strategy, using the 'ours' strategy " +"simply empties all patches from the <branch>, which makes little sense." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:109 +#: en/git-rebase.txt:294 #, no-wrap -msgid "--subject=<string>" -msgstr "" - -#. type: Plain text -#: en/git-send-email.txt:113 -msgid "" -"Specify the initial subject of the email thread. Only necessary if " -"--compose is also set. If --compose is not set, this will be prompted for." +msgid "-X <strategy-option>" msgstr "" #. type: Labeled list -#: en/git-send-email.txt:114 +#: en/git-rebase.txt:295 #, no-wrap -msgid "--to=<address>,..." +msgid "--strategy-option=<strategy-option>" msgstr "" #. type: Plain text -#: en/git-send-email.txt:119 +#: en/git-rebase.txt:300 msgid "" -"Specify the primary recipient of the emails generated. Generally, this will " -"be the upstream maintainer of the project involved. Default is the value of " -"the `sendemail.to` configuration value; if that is unspecified, and --to-cmd " -"is not specified, this will be prompted for." +"Pass the <strategy-option> through to the merge strategy. This implies `--" +"merge` and, if no strategy has been specified, `-s recursive`. Note the " +"reversal of 'ours' and 'theirs' as noted above for the `-m` option." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:122 -#, no-wrap -msgid "--8bit-encoding=<encoding>" +#. type: Plain text +#: en/git-rebase.txt:312 +msgid "Be quiet. Implies --no-stat." msgstr "" #. type: Plain text -#: en/git-send-email.txt:128 -msgid "" -"When encountering a non-ASCII message or subject that does not declare its " -"encoding, add headers/quoting to indicate it is encoded in <encoding>. " -"Default is the value of the 'sendemail.assume8bitEncoding'; if that is " -"unspecified, this will be prompted for if any non-ASCII files are " -"encountered." +#: en/git-rebase.txt:316 +msgid "Be verbose. Implies --stat." msgstr "" #. type: Plain text -#: en/git-send-email.txt:130 -msgid "Note that no attempts whatsoever are made to validate the encoding." +#: en/git-rebase.txt:320 +msgid "" +"Show a diffstat of what changed upstream since the last rebase. The diffstat " +"is also controlled by the configuration option rebase.stat." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:131 -#, no-wrap -msgid "--compose-encoding=<encoding>" +#. type: Plain text +#: en/git-rebase.txt:324 +msgid "Do not show a diffstat as part of the rebase process." msgstr "" #. type: Plain text -#: en/git-send-email.txt:134 +#: en/git-rebase.txt:327 msgid "" -"Specify encoding of compose message. Default is the value of the " -"'sendemail.composeencoding'; if that is unspecified, UTF-8 is assumed." +"This option bypasses the pre-rebase hook. See also linkgit:githooks[5]." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:135 +#: en/git-rebase.txt:328 en/git-rev-parse.txt:98 en/git-show-ref.txt:59 +#: en/git-tag.txt:81 #, no-wrap -msgid "--transfer-encoding=(7bit|8bit|quoted-printable|base64)" +msgid "--verify" msgstr "" #. type: Plain text -#: en/git-send-email.txt:144 +#: en/git-rebase.txt:331 msgid "" -"Specify the transfer encoding to be used to send the message over SMTP. " -"7bit will fail upon encountering a non-ASCII message. quoted-printable can " -"be useful when the repository contains files that contain carriage returns, " -"but makes the raw patch email file (as saved from a MUA) much harder to " -"inspect manually. base64 is even more fool proof, but also even more " -"opaque. Default is the value of the `sendemail.transferEncoding` " -"configuration value; if that is unspecified, git will use 8bit and not add a " -"Content-Transfer-Encoding header." +"Allows the pre-rebase hook to run, which is the default. This option can be " +"used to override --no-verify. See also linkgit:githooks[5]." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:145 +#: en/git-rebase.txt:340 en/merge-options.txt:35 #, no-wrap -msgid "--xmailer" +msgid "--no-ff" msgstr "" #. type: Labeled list -#: en/git-send-email.txt:146 +#: en/git-rebase.txt:341 #, no-wrap -msgid "--no-xmailer" +msgid "--force-rebase" msgstr "" #. type: Plain text -#: en/git-send-email.txt:150 +#: en/git-rebase.txt:346 msgid "" -"Add (or prevent adding) the \"X-Mailer:\" header. By default, the header is " -"added, but it can be turned off by setting the `sendemail.xmailer` " -"configuration variable to `false`." +"Individually replay all rebased commits instead of fast-forwarding over the " +"unchanged ones. This ensures that the entire history of the rebased branch " +"is composed of new commits." msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:152 -#, no-wrap -msgid "Sending" +#. type: Plain text +#: en/git-rebase.txt:352 +msgid "" +"You may find this helpful after reverting a topic branch merge, as this " +"option recreates the topic branch with fresh commits so it can be remerged " +"successfully without needing to \"revert the reversion\" (see the link:howto/" +"revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for details)." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:154 +#: en/git-rebase.txt:354 #, no-wrap -msgid "--envelope-sender=<address>" +msgid "--no-fork-point" msgstr "" #. type: Plain text -#: en/git-send-email.txt:162 +#: en/git-rebase.txt:358 msgid "" -"Specify the envelope sender used to send the emails. This is useful if your " -"default address is not the address that is subscribed to a list. In order to " -"use the 'From' address, set the value to \"auto\". If you use the sendmail " -"binary, you must have suitable privileges for the -f parameter. Default is " -"the value of the `sendemail.envelopeSender` configuration variable; if that " -"is unspecified, choosing the envelope sender is left to your MTA." +"Use reflog to find a better common ancestor between <upstream> and <branch> " +"when calculating which commits have been introduced by <branch>." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:163 -#, no-wrap -msgid "--smtp-encryption=<encryption>" +#. type: Plain text +#: en/git-rebase.txt:364 +msgid "" +"When --fork-point is active, 'fork_point' will be used instead of <upstream> " +"to calculate the set of commits to rebase, where 'fork_point' is the result " +"of `git merge-base --fork-point <upstream> <branch>` command (see linkgit:" +"git-merge-base[1]). If 'fork_point' ends up being empty, the <upstream> " +"will be used as a fallback." msgstr "" #. type: Plain text -#: en/git-send-email.txt:167 +#: en/git-rebase.txt:367 msgid "" -"Specify the encryption to use, either 'ssl' or 'tls'. Any other value " -"reverts to plain SMTP. Default is the value of `sendemail.smtpEncryption`." +"If either <upstream> or --root is given on the command line, then the " +"default is `--no-fork-point`, otherwise the default is `--fork-point`." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:168 -#, no-wrap -msgid "--smtp-domain=<FQDN>" +#. type: Plain text +#: en/git-rebase.txt:372 +msgid "" +"These flag are passed to the 'git apply' program (see linkgit:git-apply[1]) " +"that applies the patch." msgstr "" #. type: Plain text -#: en/git-send-email.txt:174 +#: en/git-rebase.txt:379 msgid "" -"Specifies the Fully Qualified Domain Name (FQDN) used in the HELO/EHLO " -"command to the SMTP server. Some servers require the FQDN to match your IP " -"address. If not set, git send-email attempts to determine your FQDN " -"automatically. Default is the value of `sendemail.smtpDomain`." -msgstr "" - -#. type: Labeled list -#: en/git-send-email.txt:175 -#, no-wrap -msgid "--smtp-auth=<mechanisms>" +"These flags are passed to 'git am' to easily change the dates of the rebased " +"commits (see linkgit:git-am[1])." msgstr "" #. type: Plain text -#: en/git-send-email.txt:178 +#: en/git-rebase.txt:386 msgid "" -"Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting " -"forces using only the listed mechanisms. Example:" +"Add a Signed-off-by: trailer to all the rebased commits. Note that if `--" +"interactive` is given then only commits marked to be picked, edited or " +"reworded will have the trailer added." msgstr "" -#. type: delimited block - -#: en/git-send-email.txt:181 -#, no-wrap -msgid "$ git send-email --smtp-auth=\"PLAIN LOGIN GSSAPI\" ...\n" +#. type: Plain text +#: en/git-rebase.txt:394 +msgid "" +"Make a list of the commits which are about to be rebased. Let the user edit " +"that list before rebasing. This mode can also be used to split commits (see " +"SPLITTING COMMITS below)." msgstr "" #. type: Plain text -#: en/git-send-email.txt:187 +#: en/git-rebase.txt:398 msgid "" -"If at least one of the specified mechanisms matches the ones advertised by " -"the SMTP server and if it is supported by the utilized SASL library, the " -"mechanism is used for authentication. If neither 'sendemail.smtpAuth' nor " -"`--smtp-auth` is specified, all mechanisms supported by the SASL library can " -"be used." +"The commit list format can be changed by setting the configuration option " +"rebase.instructionFormat. A customized instruction format will " +"automatically have the long commit hash prepended to the format." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:188 +#: en/git-rebase.txt:402 #, no-wrap -msgid "--smtp-pass[=<password>]" +msgid "--rebase-merges[=(rebase-cousins|no-rebase-cousins)]" msgstr "" #. type: Plain text -#: en/git-send-email.txt:193 +#: en/git-rebase.txt:410 msgid "" -"Password for SMTP-AUTH. The argument is optional: If no argument is " -"specified, then the empty string is used as the password. Default is the " -"value of `sendemail.smtpPass`, however `--smtp-pass` always overrides this " -"value." +"By default, a rebase will simply drop merge commits from the todo list, and " +"put the rebased commits into a single, linear branch. With `--rebase-" +"merges`, the rebase will instead try to preserve the branching structure " +"within the commits that are to be rebased, by recreating the merge commits. " +"Any resolved merge conflicts or manual amendments in these merge commits " +"will have to be resolved/re-applied manually." msgstr "" #. type: Plain text -#: en/git-send-email.txt:199 +#: en/git-rebase.txt:417 msgid "" -"Furthermore, passwords need not be specified in configuration files or on " -"the command line. If a username has been specified (with `--smtp-user` or a " -"`sendemail.smtpUser`), but no password has been specified (with " -"`--smtp-pass` or `sendemail.smtpPass`), then a password is obtained using " -"'git-credential'." -msgstr "" - -#. type: Labeled list -#: en/git-send-email.txt:200 -#, no-wrap -msgid "--smtp-server=<host>" +"By default, or when `no-rebase-cousins` was specified, commits which do not " +"have `<upstream>` as direct ancestor will keep their original branch point, " +"i.e. commits that would be excluded by gitlink:git-log[1]'s `--ancestry-" +"path` option will keep their original ancestry by default. If the `rebase-" +"cousins` mode is turned on, such commits are instead rebased onto " +"`<upstream>` (or `<onto>`, if specified)." msgstr "" #. type: Plain text -#: en/git-send-email.txt:209 +#: en/git-rebase.txt:421 msgid "" -"If set, specifies the outgoing SMTP server to use (e.g. `smtp.example.com` " -"or a raw IP address). Alternatively it can specify a full pathname of a " -"sendmail-like program instead; the program must support the `-i` option. " -"Default value can be specified by the `sendemail.smtpServer` configuration " -"option; the built-in default is `/usr/sbin/sendmail` or `/usr/lib/sendmail` " -"if such program is available, or `localhost` otherwise." +"The `--rebase-merges` mode is similar in spirit to `--preserve-merges`, but " +"in contrast to that option works well in interactive rebases: commits can be " +"reordered, inserted and dropped at will." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:210 -#, no-wrap -msgid "--smtp-server-port=<port>" +#. type: Plain text +#: en/git-rebase.txt:425 +msgid "" +"It is currently only possible to recreate the merge commits using the " +"`recursive` merge strategy; Different merge strategies can be used only via " +"explicit `exec git merge -s <strategy> [...]` commands." msgstr "" #. type: Plain text -#: en/git-send-email.txt:217 -msgid "" -"Specifies a port different from the default port (SMTP servers typically " -"listen to smtp port 25, but may also listen to submission port 587, or the " -"common SSL smtp port 465); symbolic port names (e.g. \"submission\" instead " -"of 587) are also accepted. The port can also be set with the " -"`sendemail.smtpServerPort` configuration variable." +#: en/git-rebase.txt:427 +msgid "See also REBASING MERGES and INCOMPATIBLE OPTIONS below." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:218 +#: en/git-rebase.txt:429 en/git-rebase.txt:529 en/git-svn.txt:680 #, no-wrap -msgid "--smtp-server-option=<option>" +msgid "--preserve-merges" msgstr "" #. type: Plain text -#: en/git-send-email.txt:222 +#: en/git-rebase.txt:433 msgid "" -"If set, specifies the outgoing SMTP server option to use. Default value can " -"be specified by the `sendemail.smtpServerOption` configuration option." +"Recreate merge commits instead of flattening the history by replaying " +"commits a merge commit introduces. Merge conflict resolutions or manual " +"amendments to merge commits are not preserved." msgstr "" #. type: Plain text -#: en/git-send-email.txt:226 +#: en/git-rebase.txt:437 msgid "" -"The --smtp-server-option option must be repeated for each option you want to " -"pass to the server. Likewise, different lines in the configuration files " -"must be used for each option." +"This uses the `--interactive` machinery internally, but combining it with " +"the `--interactive` option explicitly is generally not a good idea unless " +"you know what you are doing (see BUGS below)." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:227 +#: en/git-rebase.txt:440 #, no-wrap -msgid "--smtp-ssl" +msgid "-x <cmd>" +msgstr "" + +#. type: Labeled list +#: en/git-rebase.txt:441 +#, no-wrap +msgid "--exec <cmd>" msgstr "" #. type: Plain text -#: en/git-send-email.txt:229 -msgid "Legacy alias for '--smtp-encryption ssl'." +#: en/git-rebase.txt:446 +msgid "" +"Append \"exec <cmd>\" after each line creating a commit in the final " +"history. <cmd> will be interpreted as one or more shell commands. Any " +"command that fails will interrupt the rebase, with exit code 1." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:230 +#. type: Plain text +#: en/git-rebase.txt:449 +msgid "" +"You may execute several commands by either using one instance of `--exec` " +"with several commands:" +msgstr "" + +#. type: Plain text +#: en/git-rebase.txt:451 #, no-wrap -msgid "--smtp-ssl-cert-path" +msgid "\tgit rebase -i --exec \"cmd1 && cmd2 && ...\"\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:240 -msgid "" -"Path to a store of trusted CA certificates for SMTP SSL/TLS certificate " -"validation (either a directory that has been processed by 'c_rehash', or a " -"single file containing one or more PEM format certificates concatenated " -"together: see verify(1) -CAfile and -CApath for more information on " -"these). Set it to an empty string to disable certificate " -"verification. Defaults to the value of the `sendemail.smtpsslcertpath` " -"configuration variable, if set, or the backing SSL library's compiled-in " -"default otherwise (which should be the best choice on most platforms)." +#: en/git-rebase.txt:453 +msgid "or by giving more than one `--exec`:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:241 +#. type: Plain text +#: en/git-rebase.txt:455 #, no-wrap -msgid "--smtp-user=<user>" +msgid "\tgit rebase -i --exec \"cmd1\" --exec \"cmd2\" --exec ...\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:245 +#: en/git-rebase.txt:459 msgid "" -"Username for SMTP-AUTH. Default is the value of `sendemail.smtpUser`; if a " -"username is not specified (with `--smtp-user` or `sendemail.smtpUser`), then " -"authentication is not attempted." +"If `--autosquash` is used, \"exec\" lines will not be appended for the " +"intermediate commits, and will only appear at the end of each squash/fixup " +"series." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:246 -#, no-wrap -msgid "--smtp-debug=0|1" +#. type: Plain text +#: en/git-rebase.txt:462 +msgid "" +"This uses the `--interactive` machinery internally, but it can be run " +"without an explicit `--interactive`." msgstr "" #. type: Plain text -#: en/git-send-email.txt:250 +#: en/git-rebase.txt:474 msgid "" -"Enable (1) or disable (0) debug output. If enabled, SMTP commands and " -"replies will be printed. Useful to debug TLS connection and authentication " -"problems." +"Rebase all commits reachable from <branch>, instead of limiting them with an " +"<upstream>. This allows you to rebase the root commit(s) on a branch. When " +"used with --onto, it will skip changes already contained in <newbase> " +"(instead of <upstream>) whereas without --onto it will operate on every " +"change. When used together with both --onto and --preserve-merges, 'all' " +"root commits will be rewritten to have <newbase> as parent instead." msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:252 +#. type: Plain text +#: en/git-rebase.txt:477 en/git-rebase.txt:533 #, no-wrap -msgid "Automating" +msgid "--autosquash" msgstr "" #. type: Labeled list -#: en/git-send-email.txt:254 +#: en/git-rebase.txt:478 #, no-wrap -msgid "--to-cmd=<command>" +msgid "--no-autosquash" msgstr "" #. type: Plain text -#: en/git-send-email.txt:259 +#: en/git-rebase.txt:489 msgid "" -"Specify a command to execute once per patch file which should generate patch " -"file specific \"To:\" entries. Output of this command must be single email " -"address per line. Default is the value of 'sendemail.tocmd' configuration " -"value." +"When the commit log message begins with \"squash! ...\" (or \"fixup! ...\"), " +"and there is already a commit in the todo list that matches the same `...`, " +"automatically modify the todo list of rebase -i so that the commit marked " +"for squashing comes right after the commit to be modified, and change the " +"action of the moved commit from `pick` to `squash` (or `fixup`). A commit " +"matches the `...` if the commit subject matches, or if the `...` refers to " +"the commit's hash. As a fall-back, partial matches of the commit subject " +"work, too. The recommended way to create fixup/squash commits is by using " +"the `--fixup`/`--squash` options of linkgit:git-commit[1]." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:260 -#, no-wrap -msgid "--cc-cmd=<command>" +#. type: Plain text +#: en/git-rebase.txt:493 +msgid "" +"If the `--autosquash` option is enabled by default using the configuration " +"variable `rebase.autoSquash`, this option can be used to override and " +"disable this setting." msgstr "" #. type: Plain text -#: en/git-send-email.txt:265 +#: en/git-rebase.txt:503 msgid "" -"Specify a command to execute once per patch file which should generate patch " -"file specific \"Cc:\" entries. Output of this command must be single email " -"address per line. Default is the value of `sendemail.ccCmd` configuration " -"value." +"Automatically create a temporary stash entry before the operation begins, " +"and apply it after the operation ends. This means that you can run rebase " +"on a dirty worktree. However, use with care: the final stash application " +"after a successful rebase might result in non-trivial conflicts." msgstr "" #. type: Labeled list -#: en/git-send-email.txt:266 +#: en/git-rebase.txt:504 #, no-wrap -msgid "--[no-]chain-reply-to" -msgstr "" - -#. type: Plain text -#: en/git-send-email.txt:273 -msgid "" -"If this is set, each email will be sent as a reply to the previous email " -"sent. If disabled with \"--no-chain-reply-to\", all emails after the first " -"will be sent as replies to the first email sent. When using this, it is " -"recommended that the first file given be an overview of the entire patch " -"series. Disabled by default, but the `sendemail.chainReplyTo` configuration " -"variable can be used to enable it." +msgid "--reschedule-failed-exec" msgstr "" #. type: Labeled list -#: en/git-send-email.txt:274 +#: en/git-rebase.txt:505 #, no-wrap -msgid "--identity=<identity>" +msgid "--no-reschedule-failed-exec" msgstr "" #. type: Plain text -#: en/git-send-email.txt:279 en/config.txt:2869 +#: en/git-rebase.txt:508 msgid "" -"A configuration identity. When given, causes values in the " -"'sendemail.<identity>' subsection to take precedence over values in the " -"'sendemail' section. The default identity is the value of " -"`sendemail.identity`." +"Automatically reschedule `exec` commands that failed. This only makes sense " +"in interactive mode (or when an `--exec` option was provided)." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:280 +#. type: Title - +#: en/git-rebase.txt:510 #, no-wrap -msgid "--[no-]signed-off-by-cc" +msgid "INCOMPATIBLE OPTIONS" msgstr "" #. type: Plain text -#: en/git-send-email.txt:284 -msgid "" -"If this is set, add emails found in Signed-off-by: or Cc: lines to the cc " -"list. Default is the value of `sendemail.signedoffbycc` configuration value; " -"if that is unspecified, default to --signed-off-by-cc." +#: en/git-rebase.txt:513 +msgid "The following options:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:285 -#, no-wrap -msgid "--[no-]cc-cover" +#. type: Plain text +#: en/git-rebase.txt:517 +msgid "--whitespace" msgstr "" #. type: Plain text -#: en/git-send-email.txt:290 -msgid "" -"If this is set, emails found in Cc: headers in the first patch of the series " -"(typically the cover letter) are added to the cc list for each email " -"set. Default is the value of 'sendemail.cccover' configuration value; if " -"that is unspecified, default to --no-cc-cover." +#: en/git-rebase.txt:521 +msgid "are incompatible with the following options:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:291 -#, no-wrap -msgid "--[no-]to-cover" +#. type: Plain text +#: en/git-rebase.txt:524 +msgid "--strategy" msgstr "" #. type: Plain text -#: en/git-send-email.txt:296 -msgid "" -"If this is set, emails found in To: headers in the first patch of the series " -"(typically the cover letter) are added to the to list for each email " -"set. Default is the value of 'sendemail.tocover' configuration value; if " -"that is unspecified, default to --no-to-cover." +#: en/git-rebase.txt:525 +msgid "--strategy-option" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:297 -#, no-wrap -msgid "--suppress-cc=<category>" +#. type: Plain text +#: en/git-rebase.txt:527 +msgid "--[no-]autosquash" msgstr "" #. type: Plain text -#: en/git-send-email.txt:300 -msgid "Specify an additional category of recipients to suppress the auto-cc of:" +#: en/git-rebase.txt:528 +msgid "--rebase-merges" msgstr "" #. type: Plain text -#: en/git-send-email.txt:303 -msgid "'author' will avoid including the patch author" +#: en/git-rebase.txt:531 +msgid "--exec" msgstr "" #. type: Plain text -#: en/git-send-email.txt:304 -msgid "'self' will avoid including the sender" +#: en/git-rebase.txt:535 +msgid "--root when used in combination with --onto" msgstr "" #. type: Plain text -#: en/git-send-email.txt:306 -msgid "" -"'cc' will avoid including anyone mentioned in Cc lines in the patch header " -"except for self (use 'self' for that)." +#: en/git-rebase.txt:537 +msgid "In addition, the following pairs of options are incompatible:" msgstr "" #. type: Plain text -#: en/git-send-email.txt:308 -msgid "" -"'bodycc' will avoid including anyone mentioned in Cc lines in the patch body " -"(commit message) except for self (use 'self' for that)." +#: en/git-rebase.txt:539 +msgid "--preserve-merges and --interactive" msgstr "" #. type: Plain text -#: en/git-send-email.txt:309 -msgid "'sob' will avoid including anyone mentioned in Signed-off-by lines except" +#: en/git-rebase.txt:540 +msgid "--preserve-merges and --signoff" msgstr "" #. type: Plain text -#: en/git-send-email.txt:310 -msgid "for self (use 'self' for that)." +#: en/git-rebase.txt:541 +msgid "--preserve-merges and --rebase-merges" msgstr "" #. type: Plain text -#: en/git-send-email.txt:311 -msgid "'cccmd' will avoid running the --cc-cmd." +#: en/git-rebase.txt:542 +msgid "--rebase-merges and --strategy" msgstr "" #. type: Plain text -#: en/git-send-email.txt:312 -msgid "'body' is equivalent to 'sob' + 'bodycc'" +#: en/git-rebase.txt:543 +msgid "--rebase-merges and --strategy-option" msgstr "" #. type: Plain text -#: en/git-send-email.txt:313 -msgid "'all' will suppress all auto cc values." +#: en/git-rebase.txt:545 +msgid "BEHAVIORAL DIFFERENCES" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:318 -msgid "" -"Default is the value of `sendemail.suppresscc` configuration value; if that " -"is unspecified, default to 'self' if --suppress-from is specified, as well " -"as 'body' if --no-signed-off-cc is specified." +#. type: delimited block - +#: en/git-rebase.txt:548 +#, no-wrap +msgid "There are some subtle differences how the backends behave.\n" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:319 +#. type: delimited block - +#: en/git-rebase.txt:551 #, no-wrap -msgid "--[no-]suppress-from" +msgid "" +"Empty commits\n" +"~~~~~~~~~~~~~\n" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:323 +#. type: delimited block - +#: en/git-rebase.txt:556 +#, no-wrap msgid "" -"If this is set, do not add the From: address to the cc: list. Default is " -"the value of `sendemail.suppressFrom` configuration value; if that is " -"unspecified, default to --no-suppress-from." +"The am backend drops any \"empty\" commits, regardless of whether the\n" +"commit started empty (had no changes relative to its parent to\n" +"start with) or ended empty (all changes were already applied\n" +"upstream in other commits).\n" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:324 +#. type: delimited block - +#: en/git-rebase.txt:558 #, no-wrap -msgid "--[no-]thread" +msgid "The merge backend does the same.\n" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:330 +#. type: delimited block - +#: en/git-rebase.txt:563 +#, no-wrap msgid "" -"If this is set, the In-Reply-To and References headers will be added to each " -"email sent. Whether each mail refers to the previous email (`deep` " -"threading per 'git format-patch' wording) or to the first email (`shallow` " -"threading) is governed by \"--[no-]chain-reply-to\"." +"The interactive backend drops commits by default that\n" +"started empty and halts if it hits a commit that ended up empty.\n" +"The `--keep-empty` option exists for the interactive backend to allow\n" +"it to keep commits that started empty.\n" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:335 +#. type: delimited block - +#: en/git-rebase.txt:566 +#, no-wrap msgid "" -"If disabled with \"--no-thread\", those headers will not be added (unless " -"specified with --in-reply-to). Default is the value of the " -"`sendemail.thread` configuration value; if that is unspecified, default to " -"--thread." +"Directory rename detection\n" +"~~~~~~~~~~~~~~~~~~~~~~~~~~\n" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:341 +#. type: delimited block - +#: en/git-rebase.txt:570 +#, no-wrap msgid "" -"It is up to the user to ensure that no In-Reply-To header already exists " -"when 'git send-email' is asked to add it (especially note that 'git " -"format-patch' can be configured to do the threading itself). Failure to do " -"so may not produce the expected result in the recipient's MUA." +"Directory rename heuristics are enabled in the merge and interactive\n" +"backends. Due to the lack of accurate tree information, directory\n" +"rename detection is disabled in the am backend.\n" msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:344 +#. type: delimited block - +#: en/git-rebase.txt:572 #, no-wrap -msgid "Administering" +msgid "include::merge-strategies.txt[]\n" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:346 +#. type: delimited block - +#: en/git-rebase.txt:574 #, no-wrap -msgid "--confirm=<mode>" +msgid "NOTES\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:348 -msgid "Confirm just before sending:" +#: en/git-rebase.txt:579 +msgid "" +"You should understand the implications of using 'git rebase' on a repository " +"that you share. See also RECOVERING FROM UPSTREAM REBASE below." msgstr "" #. type: Plain text -#: en/git-send-email.txt:351 -msgid "'always' will always confirm before sending" +#: en/git-rebase.txt:584 +msgid "" +"When the git-rebase command is run, it will first execute a \"pre-rebase\" " +"hook if one exists. You can use this hook to do sanity checks and reject " +"the rebase if it isn't appropriate. Please see the template pre-rebase hook " +"script for an example." msgstr "" #. type: Plain text -#: en/git-send-email.txt:352 -msgid "'never' will never confirm before sending" +#: en/git-rebase.txt:586 +msgid "Upon completion, <branch> will be the current branch." msgstr "" #. type: Plain text -#: en/git-send-email.txt:354 +#: en/git-rebase.txt:593 msgid "" -"'cc' will confirm before sending when send-email has automatically added " -"addresses from the patch to the Cc list" +"Rebasing interactively means that you have a chance to edit the commits " +"which are rebased. You can reorder the commits, and you can remove them " +"(weeding out bad or otherwise unwanted patches)." msgstr "" #. type: Plain text -#: en/git-send-email.txt:355 -msgid "" -"'compose' will confirm before sending the first message when using " -"--compose." +#: en/git-rebase.txt:595 +msgid "The interactive mode is meant for this type of workflow:" msgstr "" #. type: Plain text -#: en/git-send-email.txt:356 -msgid "'auto' is equivalent to 'cc' + 'compose'" +#: en/git-rebase.txt:597 +msgid "have a wonderful idea" msgstr "" #. type: Plain text -#: en/git-send-email.txt:361 -msgid "" -"Default is the value of `sendemail.confirm` configuration value; if that is " -"unspecified, default to 'auto' unless any of the suppress options have been " -"specified, in which case default to 'compose'." +#: en/git-rebase.txt:598 +msgid "hack on the code" msgstr "" #. type: Plain text -#: en/git-send-email.txt:364 -msgid "Do everything except actually send the emails." -msgstr "" - -#. type: Labeled list -#: en/git-send-email.txt:365 -#, no-wrap -msgid "--[no-]format-patch" +#: en/git-rebase.txt:599 +msgid "prepare a series for submission" msgstr "" #. type: Plain text -#: en/git-send-email.txt:370 -msgid "" -"When an argument may be understood either as a reference or as a file name, " -"choose to understand it as a format-patch argument (`--format-patch`) or as " -"a file name (`--no-format-patch`). By default, when such a conflict occurs, " -"git send-email will fail." +#: en/git-rebase.txt:600 +msgid "submit" msgstr "" #. type: Plain text -#: en/git-send-email.txt:374 -msgid "" -"Make git-send-email less verbose. One line per email should be all that is " -"output." +#: en/git-rebase.txt:602 +msgid "where point 2. consists of several instances of" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:375 -#, no-wrap -msgid "--[no-]validate" +#. type: Plain text +#: en/git-rebase.txt:604 +msgid "regular use" msgstr "" #. type: Plain text -#: en/git-send-email.txt:378 -msgid "" -"Perform sanity checks on patches. Currently, validation means the " -"following:" +#: en/git-rebase.txt:606 +msgid "finish something worthy of a commit" msgstr "" #. type: Plain text -#: en/git-send-email.txt:381 -msgid "Warn of patches that contain lines longer than 998 characters; this" +#: en/git-rebase.txt:607 +msgid "commit" msgstr "" #. type: Plain text -#: en/git-send-email.txt:382 -#, no-wrap -msgid "is due to SMTP limits as described by http://www.ietf.org/rfc/rfc2821.txt.\n" +#: en/git-rebase.txt:609 +msgid "independent fixup" msgstr "" #. type: Plain text -#: en/git-send-email.txt:386 -msgid "" -"Default is the value of `sendemail.validate`; if this is not set, default to " -"`--validate`." +#: en/git-rebase.txt:611 +msgid "realize that something does not work" msgstr "" #. type: Plain text -#: en/git-send-email.txt:389 -msgid "Send emails even if safety checks would prevent it." +#: en/git-rebase.txt:612 +msgid "fix that" msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:392 -#, no-wrap -msgid "Information" +#. type: Plain text +#: en/git-rebase.txt:613 +msgid "commit it" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:394 -#, no-wrap -msgid "--dump-aliases" +#. type: Plain text +#: en/git-rebase.txt:619 +msgid "" +"Sometimes the thing fixed in b.2. cannot be amended to the not-quite perfect " +"commit it fixes, because that commit is buried deeply in a patch series. " +"That is exactly what interactive rebase is for: use it after plenty of \"a" +"\"s and \"b\"s, by rearranging and editing commits, and squashing multiple " +"commits into one." msgstr "" #. type: Plain text -#: en/git-send-email.txt:399 -msgid "" -"Instead of the normal operation, dump the shorthand alias names from the " -"configured alias file(s), one per line in alphabetical order. Note, this " -"only includes the alias name and not its expanded email addresses. See " -"'sendemail.aliasesfile' for more information about aliases." +#: en/git-rebase.txt:621 +msgid "Start it with the last commit you want to retain as-is:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:404 en/config.txt:2887 +#. type: Plain text +#: en/git-rebase.txt:623 #, no-wrap -msgid "sendemail.aliasesFile" +msgid "\tgit rebase -i <after-this-commit>\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:407 +#: en/git-rebase.txt:628 msgid "" -"To avoid typing long email addresses, point this to one or more email " -"aliases files. You must also supply `sendemail.aliasFileType`." +"An editor will be fired up with all the commits in your current branch " +"(ignoring merge commits), which come after the given commit. You can " +"reorder the commits in this list to your heart's content, and you can remove " +"them. The list looks more or less like this:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:408 en/config.txt:2888 +#. type: delimited block - +#: en/git-rebase.txt:633 #, no-wrap -msgid "sendemail.aliasFileType" +msgid "" +"pick deadbee The oneline of this commit\n" +"pick fa1afe1 The oneline of the next commit\n" +"...\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:411 +#: en/git-rebase.txt:638 msgid "" -"Format of the file(s) specified in sendemail.aliasesFile. Must be one of " -"'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'." +"The oneline descriptions are purely for your pleasure; 'git rebase' will not " +"look at them but at the commit names (\"deadbee\" and \"fa1afe1\" in this " +"example), so do not delete or edit the names." msgstr "" #. type: Plain text -#: en/git-send-email.txt:416 +#: en/git-rebase.txt:643 msgid "" -"What an alias file in each format looks like can be found in the " -"documentation of the email program of the same name. The differences and " -"limitations from the standard formats are described below:" +"By replacing the command \"pick\" with the command \"edit\", you can tell " +"'git rebase' to stop after applying that commit, so that you can edit the " +"files and/or the commit message, amend the commit, and continue rebasing." msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:418 -#, no-wrap -msgid "sendmail" +#. type: Plain text +#: en/git-rebase.txt:646 +msgid "" +"To interrupt the rebase (just like an \"edit\" command would do, but without " +"cherry-picking any commit first), use the \"break\" command." msgstr "" #. type: Plain text -#: en/git-send-email.txt:420 -msgid "Quoted aliases and quoted addresses are not supported: lines that" +#: en/git-rebase.txt:649 +msgid "" +"If you just want to edit the commit message for a commit, replace the " +"command \"pick\" with the command \"reword\"." msgstr "" #. type: Plain text -#: en/git-send-email.txt:421 -msgid "contain a `\"` symbol are ignored." +#: en/git-rebase.txt:652 +msgid "" +"To drop a commit, replace the command \"pick\" with \"drop\", or just delete " +"the matching line." msgstr "" #. type: Plain text -#: en/git-send-email.txt:422 -msgid "Redirection to a file (`/path/name`) or pipe (`|command`) is not" +#: en/git-rebase.txt:660 +msgid "" +"If you want to fold two or more commits into one, replace the command \"pick" +"\" for the second and subsequent commits with \"squash\" or \"fixup\". If " +"the commits had different authors, the folded commit will be attributed to " +"the author of the first commit. The suggested commit message for the folded " +"commit is the concatenation of the commit messages of the first commit and " +"of those with the \"squash\" command, but omits the commit messages of " +"commits with the \"fixup\" command." msgstr "" #. type: Plain text -#: en/git-send-email.txt:423 -msgid "supported." +#: en/git-rebase.txt:664 +msgid "" +"'git rebase' will stop when \"pick\" has been replaced with \"edit\" or when " +"a command fails due to merge errors. When you are done editing and/or " +"resolving conflicts you can continue with `git rebase --continue`." msgstr "" #. type: Plain text -#: en/git-send-email.txt:424 -msgid "File inclusion (`:include: /path/name`) is not supported." +#: en/git-rebase.txt:668 +msgid "" +"For example, if you want to reorder the last 5 commits, such that what was " +"HEAD~4 becomes the new HEAD. To achieve that, you would call 'git rebase' " +"like this:" +msgstr "" + +#. type: delimited block - +#: en/git-rebase.txt:671 +#, no-wrap +msgid "$ git rebase -i HEAD~5\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:425 -msgid "Warnings are printed on the standard error output for any" +#: en/git-rebase.txt:674 +msgid "And move the first patch to the end of the list." msgstr "" #. type: Plain text -#: en/git-send-email.txt:427 -msgid "" -"explicitly unsupported constructs, and any other lines that are not " -"recognized by the parser." +#: en/git-rebase.txt:676 +msgid "You might want to preserve merges, if you have a history like this:" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:429 en/config.txt:2897 +#. type: delimited block - +#: en/git-rebase.txt:683 #, no-wrap -msgid "sendemail.multiEdit" +msgid "" +" X\n" +" \\\n" +" A---M---B\n" +" /\n" +"---o---O---P---Q\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:434 +#: en/git-rebase.txt:687 msgid "" -"If true (default), a single editor instance will be spawned to edit files " -"you have to edit (patches when `--annotate` is used, and the summary when " -"`--compose` is used). If false, files will be edited one after the other, " -"spawning a new editor each time." +"Suppose you want to rebase the side branch starting at \"A\" to \"Q\". Make " +"sure that the current HEAD is \"B\", and call" msgstr "" -#. type: Labeled list -#: en/git-send-email.txt:435 en/config.txt:2894 +#. type: delimited block - +#: en/git-rebase.txt:690 #, no-wrap -msgid "sendemail.confirm" +msgid "$ git rebase -i -p --onto Q O\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:439 +#: en/git-rebase.txt:697 msgid "" -"Sets the default for whether to confirm before sending. Must be one of " -"'always', 'never', 'cc', 'compose', or 'auto'. See `--confirm` in the " -"previous section for the meaning of these values." +"Reordering and editing commits usually creates untested intermediate steps. " +"You may want to check that your history editing did not break anything by " +"running a test, or at least recompiling at intermediate points in history by " +"using the \"exec\" command (shortcut \"x\"). You may do so by creating a " +"todo list like this one:" msgstr "" -#. type: Title ~ -#: en/git-send-email.txt:443 +#. type: delimited block - +#: en/git-rebase.txt:706 #, no-wrap -msgid "Use gmail as the smtp server" -msgstr "" - -#. type: Plain text -#: en/git-send-email.txt:446 msgid "" -"To use 'git send-email' to send your patches through the GMail SMTP server, " -"edit ~/.gitconfig to specify your account settings:" +"pick deadbee Implement feature XXX\n" +"fixup f1a5c00 Fix to feature XXX\n" +"exec make\n" +"pick c0ffeee The oneline of the next commit\n" +"edit deadbab The oneline of the commit after\n" +"exec cd subdir; make test\n" +"...\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:452 -#, no-wrap +#: en/git-rebase.txt:711 msgid "" -"\t[sendemail]\n" -"\t\tsmtpEncryption = tls\n" -"\t\tsmtpServer = smtp.gmail.com\n" -"\t\tsmtpUser = yourname@gmail.com\n" -"\t\tsmtpServerPort = 587\n" +"The interactive rebase will stop when a command fails (i.e. exits with non-0 " +"status) to give you an opportunity to fix the problem. You can continue with " +"`git rebase --continue`." msgstr "" #. type: Plain text -#: en/git-send-email.txt:458 +#: en/git-rebase.txt:716 msgid "" -"If you have multifactor authentication setup on your gmail account, you will " -"need to generate an app-specific password for use with 'git " -"send-email'. Visit " -"https://security.google.com/settings/security/apppasswords to setup an " -"app-specific password. Once setup, you can store it with the credentials " -"helper:" +"The \"exec\" command launches the command in a shell (the one specified in `" +"$SHELL`, or the default shell if `$SHELL` is not set), so you can use shell " +"features (like \"cd\", \">\", \";\" ...). The command is run from the root " +"of the working tree." msgstr "" -#. type: Plain text -#: en/git-send-email.txt:464 +#. type: delimited block - +#: en/git-rebase.txt:719 #, no-wrap -msgid "" -"\t$ git credential fill\n" -"\tprotocol=smtp\n" -"\thost=smtp.gmail.com\n" -"\tusername=youname@gmail.com\n" -"\tpassword=app-password\n" +msgid "$ git rebase -i --exec \"make test\"\n" msgstr "" #. type: Plain text -#: en/git-send-email.txt:468 +#: en/git-rebase.txt:723 msgid "" -"Once your commits are ready to be sent to the mailing list, run the " -"following commands:" +"This command lets you check that intermediate commits are compilable. The " +"todo list becomes like that:" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:472 +#. type: delimited block - +#: en/git-rebase.txt:733 #, no-wrap msgid "" -"\t$ git format-patch --cover-letter -M origin/master -o outgoing/\n" -"\t$ edit outgoing/0000-*\n" -"\t$ git send-email outgoing/*\n" +"pick 5928aea one\n" +"exec make test\n" +"pick 04d0fda two\n" +"exec make test\n" +"pick ba46169 three\n" +"exec make test\n" +"pick f4593f9 four\n" +"exec make test\n" msgstr "" -#. type: Plain text -#: en/git-send-email.txt:475 +#. type: Title - +#: en/git-rebase.txt:736 #, no-wrap -msgid "" -"Note: the following perl modules are required\n" -" Net::SMTP::SSL, MIME::Base64 and Authen::SASL\n" +msgid "SPLITTING COMMITS" msgstr "" #. type: Plain text -#: en/git-send-email.txt:479 -msgid "linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5)" +#: en/git-rebase.txt:742 +msgid "" +"In interactive mode, you can mark commits with the action \"edit\". " +"However, this does not necessarily mean that 'git rebase' expects the result " +"of this edit to be exactly one commit. Indeed, you can undo the commit, or " +"you can add other commits. This can be used to split a commit into two:" msgstr "" -#. type: Title = -#: en/git-send-pack.txt:2 -#, no-wrap -msgid "git-send-pack(1)" +#. type: Plain text +#: en/git-rebase.txt:746 +msgid "" +"Start an interactive rebase with `git rebase -i <commit>^`, where <commit> " +"is the commit you want to split. In fact, any commit range will do, as long " +"as it contains that commit." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:7 -msgid "git-send-pack - Push objects over Git protocol to another repository" +#: en/git-rebase.txt:748 +msgid "Mark the commit you want to split with the action \"edit\"." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:16 -#, no-wrap +#: en/git-rebase.txt:752 msgid "" -"'git send-pack' [--all] [--dry-run] [--force] " -"[--receive-pack=<git-receive-pack>]\n" -"\t\t[--verbose] [--thin] [--atomic]\n" -"\t\t[--[no-]signed|--sign=(true|false|if-asked)]\n" -"\t\t[<host>:]<directory> [<ref>...]\n" +"When it comes to editing that commit, execute `git reset HEAD^`. The effect " +"is that the HEAD is rewound by one, and the index follows suit. However, " +"the working tree stays the same." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:21 +#: en/git-rebase.txt:756 msgid "" -"Usually you would want to use 'git push', which is a higher-level wrapper of " -"this command, instead. See linkgit:git-push[1]." +"Now add the changes to the index that you want to have in the first commit. " +"You can use `git add` (possibly interactively) or 'git gui' (or both) to do " +"that." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:24 +#: en/git-rebase.txt:759 msgid "" -"Invokes 'git-receive-pack' on a possibly remote repository, and updates it " -"from the current repository, sending named refs." +"Commit the now-current index with whatever commit message is appropriate now." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:36 -msgid "Same as --receive-pack=<git-receive-pack>." +#: en/git-rebase.txt:761 +msgid "Repeat the last two steps until your working tree is clean." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:40 -msgid "" -"Instead of explicitly specifying which refs to update, update all heads that " -"locally exist." +#: en/git-rebase.txt:763 +msgid "Continue the rebase with `git rebase --continue`." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:67 +#: en/git-rebase.txt:768 msgid "" -"Send a \"thin\" pack, which records objects in deltified form based on " -"objects not included in the pack to reduce network traffic." +"If you are not absolutely sure that the intermediate revisions are " +"consistent (they compile, pass the testsuite, etc.) you should use 'git " +"stash' to stash away the not-yet-committed changes after each commit, test, " +"and amend the commit if fixes are necessary." msgstr "" -#. type: Labeled list -#: en/git-send-pack.txt:68 +#. type: Title - +#: en/git-rebase.txt:771 #, no-wrap -msgid "--atomic" +msgid "RECOVERING FROM UPSTREAM REBASE" msgstr "" #. type: Plain text -#: en/git-send-pack.txt:72 +#: en/git-rebase.txt:778 msgid "" -"Use an atomic transaction for updating the refs. If any of the refs fails to " -"update then the entire push will fail without changing any refs." -msgstr "" - -#. type: Labeled list -#: en/git-send-pack.txt:84 -#, no-wrap -msgid "<host>" +"Rebasing (or any other form of rewriting) a branch that others have based " +"work on is a bad idea: anyone downstream of it is forced to manually fix " +"their history. This section explains how to do the fix from the " +"downstream's point of view. The real fix, however, would be to avoid " +"rebasing the upstream in the first place." msgstr "" #. type: Plain text -#: en/git-send-pack.txt:88 +#: en/git-rebase.txt:783 msgid "" -"A remote host to house the repository. When this part is specified, " -"'git-receive-pack' is invoked via ssh." +"To illustrate, suppose you are in a situation where someone develops a " +"'subsystem' branch, and you are working on a 'topic' that is dependent on " +"this 'subsystem'. You might end up with a history like the following:" msgstr "" -#. type: Plain text -#: en/git-send-pack.txt:91 -msgid "The repository to update." +#. type: delimited block - +#: en/git-rebase.txt:790 +#, no-wrap +msgid "" +" o---o---o---o---o---o---o---o master\n" +"\t \\\n" +"\t o---o---o---o---o subsystem\n" +"\t\t\t \\\n" +"\t\t\t *---*---* topic\n" msgstr "" #. type: Plain text -#: en/git-send-pack.txt:101 -msgid "There are three ways to specify which refs to update on the remote end." +#: en/git-rebase.txt:793 +msgid "If 'subsystem' is rebased against 'master', the following happens:" msgstr "" -#. type: Plain text -#: en/git-send-pack.txt:105 +#. type: delimited block - +#: en/git-rebase.txt:800 +#, no-wrap msgid "" -"With `--all` flag, all refs that exist locally are transferred to the remote " -"side. You cannot specify any '<ref>' if you use this flag." +" o---o---o---o---o---o---o---o master\n" +"\t \\\t\t\t \\\n" +"\t o---o---o---o---o\t o'--o'--o'--o'--o' subsystem\n" +"\t\t\t \\\n" +"\t\t\t *---*---* topic\n" msgstr "" #. type: Plain text -#: en/git-send-pack.txt:108 +#: en/git-rebase.txt:804 msgid "" -"Without `--all` and without any '<ref>', the heads that exist both on the " -"local side and on the remote side are updated." +"If you now continue development as usual, and eventually merge 'topic' to " +"'subsystem', the commits from 'subsystem' will remain duplicated forever:" msgstr "" -#. type: Plain text -#: en/git-send-pack.txt:114 +#. type: delimited block - +#: en/git-rebase.txt:811 +#, no-wrap msgid "" -"When one or more '<ref>' are specified explicitly (whether on the command " -"line or via `--stdin`), it can be either a single pattern, or a pair of such " -"pattern separated by a colon \":\" (this means that a ref name cannot have a " -"colon in it). A single pattern '<name>' is just a shorthand for " -"'<name>:<name>'." +" o---o---o---o---o---o---o---o master\n" +"\t \\\t\t\t \\\n" +"\t o---o---o---o---o\t o'--o'--o'--o'--o'--M\t subsystem\n" +"\t\t\t \\\t\t\t /\n" +"\t\t\t *---*---*-..........-*--* topic\n" msgstr "" #. type: Plain text -#: en/git-send-pack.txt:122 +#: en/git-rebase.txt:818 msgid "" -"Each pattern pair consists of the source side (before the colon) and the " -"destination side (after the colon). The ref to be pushed is determined by " -"finding a match that matches the source side, and where it is pushed is " -"determined by using the destination side. The rules used to match a ref are " -"the same rules used by 'git rev-parse' to resolve a symbolic ref name. See " -"linkgit:git-rev-parse[1]." +"Such duplicates are generally frowned upon because they clutter up history, " +"making it harder to follow. To clean things up, you need to transplant the " +"commits on 'topic' to the new 'subsystem' tip, i.e., rebase 'topic'. This " +"becomes a ripple effect: anyone downstream from 'topic' is forced to rebase " +"too, and so on!" msgstr "" #. type: Plain text -#: en/git-send-pack.txt:127 -msgid "It is an error if <dst> matches more than one remote refs." +#: en/git-rebase.txt:820 +msgid "There are two kinds of fixes, discussed in the following subsections:" msgstr "" -#. type: Title = -#: en/git-shell.txt:2 +#. type: Labeled list +#: en/git-rebase.txt:821 #, no-wrap -msgid "git-shell(1)" +msgid "Easy case: The changes are literally the same." msgstr "" #. type: Plain text -#: en/git-shell.txt:7 -msgid "git-shell - Restricted login shell for Git-only SSH access" +#: en/git-rebase.txt:825 +msgid "" +"This happens if the 'subsystem' rebase was a simple rebase and had no " +"conflicts." msgstr "" -#. type: Plain text -#: en/git-shell.txt:15 +#. type: Labeled list +#: en/git-rebase.txt:826 #, no-wrap -msgid "" -"'chsh' -s $(command -v git-shell) <user>\n" -"'git clone' <user>`@localhost:/path/to/repo.git`\n" -"'ssh' <user>`@localhost`\n" +msgid "Hard case: The changes are not the same." msgstr "" #. type: Plain text -#: en/git-shell.txt:23 +#: en/git-rebase.txt:832 msgid "" -"This is a login shell for SSH accounts to provide restricted Git access. It " -"permits execution only of server-side Git commands implementing the " -"pull/push functionality, plus custom commands present in a subdirectory " -"named `git-shell-commands` in the user's home directory." -msgstr "" - -#. type: Plain text -#: en/git-shell.txt:28 -msgid "'git shell' accepts the following commands after the `-c` option:" -msgstr "" - -#. type: Labeled list -#: en/git-shell.txt:29 -#, no-wrap -msgid "'git receive-pack <argument>'" +"This happens if the 'subsystem' rebase had conflicts, or used `--" +"interactive` to omit, edit, squash, or fixup commits; or if the upstream " +"used one of `commit --amend`, `reset`, or `filter-branch`." msgstr "" -#. type: Labeled list -#: en/git-shell.txt:30 +#. type: Title ~ +#: en/git-rebase.txt:835 #, no-wrap -msgid "'git upload-pack <argument>'" +msgid "The easy case" msgstr "" -#. type: Labeled list -#: en/git-shell.txt:31 -#, no-wrap -msgid "'git upload-archive <argument>'" +#. type: Plain text +#: en/git-rebase.txt:840 +msgid "" +"Only works if the changes (patch IDs based on the diff contents) on " +"'subsystem' are literally the same before and after the rebase 'subsystem' " +"did." msgstr "" #. type: Plain text -#: en/git-shell.txt:35 +#: en/git-rebase.txt:844 msgid "" -"Call the corresponding server-side command to support the client's 'git " -"push', 'git fetch', or 'git archive --remote' request." +"In that case, the fix is easy because 'git rebase' knows to skip changes " +"that are already present in the new upstream. So if you say (assuming " +"you're on 'topic')" msgstr "" -#. type: Labeled list -#: en/git-shell.txt:35 +#. type: delimited block - +#: en/git-rebase.txt:846 #, no-wrap -msgid "'cvs server'" +msgid " $ git rebase subsystem\n" msgstr "" #. type: Plain text -#: en/git-shell.txt:37 -msgid "Imitate a CVS server. See linkgit:git-cvsserver[1]." +#: en/git-rebase.txt:848 +msgid "you will end up with the fixed history" msgstr "" -#. type: Plain text -#: en/git-shell.txt:42 +#. type: delimited block - +#: en/git-rebase.txt:854 +#, no-wrap msgid "" -"If a `~/git-shell-commands` directory is present, 'git shell' will also " -"handle other, custom commands by running \"`git-shell-commands/<command> " -"<arguments>`\" from the user's home directory." +" o---o---o---o---o---o---o---o master\n" +"\t\t\t\t \\\n" +"\t\t\t\t o'--o'--o'--o'--o' subsystem\n" +"\t\t\t\t\t\t \\\n" +"\t\t\t\t\t\t *---*---* topic\n" msgstr "" -#. type: Title - -#: en/git-shell.txt:44 +#. type: Title ~ +#: en/git-rebase.txt:858 #, no-wrap -msgid "INTERACTIVE USE" +msgid "The hard case" msgstr "" #. type: Plain text -#: en/git-shell.txt:48 +#: en/git-rebase.txt:862 msgid "" -"By default, the commands above can be executed only with the `-c` option; " -"the shell is not interactive." +"Things get more complicated if the 'subsystem' changes do not exactly " +"correspond to the ones before the rebase." msgstr "" #. type: Plain text -#: en/git-shell.txt:56 +#: en/git-rebase.txt:867 +#, no-wrap msgid "" -"If a `~/git-shell-commands` directory is present, 'git shell' can also be " -"run interactively (with no arguments). If a `help` command is present in " -"the `git-shell-commands` directory, it is run to provide the user with an " -"overview of allowed actions. Then a \"git> \" prompt is presented at which " -"one can enter any of the commands from the `git-shell-commands` directory, " -"or `exit` to close the connection." +"While an \"easy case recovery\" sometimes appears to be successful\n" +" even in the hard case, it may have unintended consequences. For\n" +" example, a commit that was removed via `git rebase\n" +" --interactive` will be **resurrected**!\n" msgstr "" #. type: Plain text -#: en/git-shell.txt:61 +#: en/git-rebase.txt:872 msgid "" -"Generally this mode is used as an administrative interface to allow users to " -"list repositories they have access to, create, delete, or rename " -"repositories, or change repository descriptions and permissions." +"The idea is to manually tell 'git rebase' \"where the old 'subsystem' ended " +"and your 'topic' began\", that is, what the old merge-base between them " +"was. You will have to find a way to name the last commit of the old " +"'subsystem', for example:" msgstr "" #. type: Plain text -#: en/git-shell.txt:64 +#: en/git-rebase.txt:876 msgid "" -"If a `no-interactive-login` command exists, then it is run and the " -"interactive shell is aborted." +"With the 'subsystem' reflog: after 'git fetch', the old tip of 'subsystem' " +"is at `subsystem@{1}`. Subsequent fetches will increase the number. (See " +"linkgit:git-reflog[1].)" msgstr "" #. type: Plain text -#: en/git-shell.txt:69 -msgid "To disable interactive logins, displaying a greeting instead:" -msgstr "" - -#. type: delimited block - -#: en/git-shell.txt:80 -#, no-wrap +#: en/git-rebase.txt:879 msgid "" -"$ chsh -s /usr/bin/git-shell\n" -"$ mkdir $HOME/git-shell-commands\n" -"$ cat >$HOME/git-shell-commands/no-interactive-login <<\\EOF\n" -"#!/bin/sh\n" -"printf '%s\\n' \"Hi $USER! You've successfully authenticated, but I do " -"not\"\n" -"printf '%s\\n' \"provide interactive shell access.\"\n" -"exit 128\n" -"EOF\n" -"$ chmod +x $HOME/git-shell-commands/no-interactive-login\n" +"Relative to the tip of 'topic': knowing that your 'topic' has three commits, " +"the old tip of 'subsystem' must be `topic~3`." msgstr "" #. type: Plain text -#: en/git-shell.txt:87 -msgid "ssh(1), linkgit:git-daemon[1], contrib/git-shell-commands/README" +#: en/git-rebase.txt:882 +msgid "" +"You can then transplant the old `subsystem..topic` to the new tip by saying " +"(for the reflog case, and assuming you are on 'topic' already):" msgstr "" -#. type: Title = -#: en/git-sh-i18n--envsubst.txt:2 +#. type: delimited block - +#: en/git-rebase.txt:884 #, no-wrap -msgid "git-sh-i18n{litdd}envsubst(1)" +msgid " $ git rebase --onto subsystem subsystem@{1}\n" msgstr "" #. type: Plain text -#: en/git-sh-i18n--envsubst.txt:7 -msgid "git-sh-i18n--envsubst - Git's own envsubst(1) for i18n fallbacks" +#: en/git-rebase.txt:889 +msgid "" +"The ripple effect of a \"hard case\" recovery is especially bad: 'everyone' " +"downstream from 'topic' will now have to perform a \"hard case\" recovery " +"too!" msgstr "" -#. type: Plain text -#: en/git-sh-i18n--envsubst.txt:17 +#. type: Title - +#: en/git-rebase.txt:891 #, no-wrap -msgid "" -"eval_gettext () {\n" -"\tprintf \"%s\" \"$1\" | (\n" -"\t\texport PATH $('git sh-i18n{litdd}envsubst' --variables \"$1\");\n" -"\t\t'git sh-i18n{litdd}envsubst' \"$1\"\n" -"\t)\n" -"}\n" +msgid "REBASING MERGES" msgstr "" #. type: Plain text -#: en/git-sh-i18n--envsubst.txt:24 +#: en/git-rebase.txt:899 msgid "" -"This is not a command the end user would want to run. Ever. This " -"documentation is meant for people who are studying the plumbing scripts " -"and/or are writing new ones." +"The interactive rebase command was originally designed to handle individual " +"patch series. As such, it makes sense to exclude merge commits from the todo " +"list, as the developer may have merged the then-current `master` while " +"working on the branch, only to rebase all the commits onto `master` " +"eventually (skipping the merge commits)." msgstr "" #. type: Plain text -#: en/git-sh-i18n--envsubst.txt:29 +#: en/git-rebase.txt:903 msgid "" -"'git sh-i18n{litdd}envsubst' is Git's stripped-down copy of the GNU " -"`envsubst(1)` program that comes with the GNU gettext package. It's used " -"internally by linkgit:git-sh-i18n[1] to interpolate the variables passed to " -"the `eval_gettext` function." +"However, there are legitimate reasons why a developer may want to recreate " +"merge commits: to keep the branch structure (or \"commit topology\") when " +"working on multiple, inter-related branches." msgstr "" #. type: Plain text -#: en/git-sh-i18n--envsubst.txt:33 +#: en/git-rebase.txt:908 msgid "" -"No promises are made about the interface, or that this program won't " -"disappear without warning in the next version of Git. Don't use it." +"In the following example, the developer works on a topic branch that " +"refactors the way buttons are defined, and on another topic branch that uses " +"that refactoring to implement a \"Report a bug\" button. The output of `git " +"log --graph --format=%s -5` may look like this:" msgstr "" -#. type: Title = -#: en/git-sh-i18n.txt:2 +#. type: delimited block - +#: en/git-rebase.txt:918 #, no-wrap -msgid "git-sh-i18n(1)" -msgstr "" - -#. type: Plain text -#: en/git-sh-i18n.txt:7 -msgid "git-sh-i18n - Git's i18n setup code for shell scripts" +msgid "" +"* Merge branch 'report-a-bug'\n" +"|\\\n" +"| * Add the feedback button\n" +"* | Merge branch 'refactor-button'\n" +"|\\ \\\n" +"| |/\n" +"| * Use the Button class for all buttons\n" +"| * Extract a generic Button class from the DownloadButton one\n" msgstr "" #. type: Plain text -#: en/git-sh-i18n.txt:12 -#, no-wrap -msgid "'. \"$(git --exec-path)/git-sh-i18n\"'\n" +#: en/git-rebase.txt:925 +msgid "" +"The developer might want to rebase those commits to a newer `master` while " +"keeping the branch topology, for example when the first topic branch is " +"expected to be integrated into `master` much earlier than the second one, " +"say, to resolve merge conflicts with changes to the DownloadButton class " +"that made it into `master`." msgstr "" #. type: Plain text -#: en/git-sh-i18n.txt:26 +#: en/git-rebase.txt:928 msgid "" -"The 'git sh-i18n scriptlet is designed to be sourced (using `.`) by Git's " -"porcelain programs implemented in shell script. It provides wrappers for the " -"GNU `gettext` and `eval_gettext` functions accessible through the " -"`gettext.sh` script, and provides pass-through fallbacks on systems without " -"GNU gettext." +"This rebase can be performed using the `--rebase-merges` option. It will " +"generate a todo list looking like this:" msgstr "" -#. type: Labeled list -#: en/git-sh-i18n.txt:30 +#. type: delimited block - +#: en/git-rebase.txt:931 en/git-rebase.txt:1008 #, no-wrap -msgid "gettext" +msgid "label onto\n" msgstr "" -#. type: Plain text -#: en/git-sh-i18n.txt:34 +#. type: delimited block - +#: en/git-rebase.txt:937 +#, no-wrap msgid "" -"Currently a dummy fall-through function implemented as a wrapper around " -"`printf(1)`. Will be replaced by a real gettext implementation in a later " -"version." +"# Branch: refactor-button\n" +"reset onto\n" +"pick 123456 Extract a generic Button class from the DownloadButton one\n" +"pick 654321 Use the Button class for all buttons\n" +"label refactor-button\n" msgstr "" -#. type: Labeled list -#: en/git-sh-i18n.txt:35 +#. type: delimited block - +#: en/git-rebase.txt:942 #, no-wrap -msgid "eval_gettext" -msgstr "" - -#. type: Plain text -#: en/git-sh-i18n.txt:40 msgid "" -"Currently a dummy fall-through function implemented as a wrapper around " -"`printf(1)` with variables expanded by the " -"linkgit:git-sh-i18n{litdd}envsubst[1] helper. Will be replaced by a real " -"gettext implementation in a later version." +"# Branch: report-a-bug\n" +"reset refactor-button # Use the Button class for all buttons\n" +"pick abcdef Add the feedback button\n" +"label report-a-bug\n" msgstr "" -#. type: Title = -#: en/git-shortlog.txt:2 +#. type: delimited block - +#: en/git-rebase.txt:946 #, no-wrap -msgid "git-shortlog(1)" +msgid "" +"reset onto\n" +"merge -C a1b2c3 refactor-button # Merge 'refactor-button'\n" +"merge -C 6f5e4d report-a-bug # Merge 'report-a-bug'\n" msgstr "" #. type: Plain text -#: en/git-shortlog.txt:7 -msgid "git-shortlog - Summarize 'git log' output" +#: en/git-rebase.txt:950 +msgid "" +"In contrast to a regular interactive rebase, there are `label`, `reset` and " +"`merge` commands in addition to `pick` ones." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:13 -#, no-wrap +#: en/git-rebase.txt:958 msgid "" -"git log --pretty=short | 'git shortlog' [<options>]\n" -"'git shortlog' [<options>] [<revision range>] [[\\--] <path>...]\n" +"The `label` command associates a label with the current HEAD when that " +"command is executed. These labels are created as worktree-local refs (`refs/" +"rewritten/<label>`) that will be deleted when the rebase finishes. That way, " +"rebase operations in multiple worktrees linked to the same repository do not " +"interfere with one another. If the `label` command fails, it is rescheduled " +"immediately, with a helpful message how to proceed." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:18 +#: en/git-rebase.txt:965 msgid "" -"Summarizes 'git log' output in a format suitable for inclusion in release " -"announcements. Each commit will be grouped by author and title." +"The `reset` command resets the HEAD, index and worktree to the specified " +"revision. It is similar to an `exec git reset --hard <label>`, but refuses " +"to overwrite untracked files. If the `reset` command fails, it is " +"rescheduled immediately, with a helpful message how to edit the todo list " +"(this typically happens when a `reset` command was inserted into the todo " +"list manually and contains a typo)." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:20 -msgid "Additionally, \"[PATCH]\" will be stripped from the commit description." +#: en/git-rebase.txt:971 +msgid "" +"The `merge` command will merge the specified revision(s) into whatever is " +"HEAD at that time. With `-C <original-commit>`, the commit message of the " +"specified merge commit will be used. When the `-C` is changed to a lower-" +"case `-c`, the message will be opened in an editor after a successful merge " +"so that the user can edit the message." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:25 +#: en/git-rebase.txt:974 msgid "" -"If no revisions are passed on the command line and either standard input is " -"not a terminal or there is no current branch, 'git shortlog' will output a " -"summary of the log read from standard input, without reference to the " -"current repository." +"If a `merge` command fails for any reason other than merge conflicts (i.e. " +"when the merge operation did not even start), it is rescheduled immediately." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:33 +#: en/git-rebase.txt:981 msgid "" -"Sort output according to the number of commits per author instead of author " -"alphabetic order." +"At this time, the `merge` command will *always* use the `recursive` merge " +"strategy for regular merges, and `octopus` for octopus merges, with no way " +"to choose a different one. To work around this, an `exec` command can be " +"used to call `git merge` explicitly, using the fact that the labels are " +"worktree-local refs (the ref `refs/rewritten/onto` would correspond to the " +"label `onto`, for example)." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:37 -msgid "Suppress commit description and provide a commit count summary only." -msgstr "" - -#. type: Labeled list -#: en/git-shortlog.txt:39 -#, no-wrap -msgid "--email" +#: en/git-rebase.txt:985 +msgid "" +"Note: the first command (`label onto`) labels the revision onto which the " +"commits are rebased; The name `onto` is just a convention, as a nod to the " +"`--onto` option." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:41 -msgid "Show the email address of each author." +#: en/git-rebase.txt:992 +msgid "" +"It is also possible to introduce completely new merge commits from scratch " +"by adding a command of the form `merge <merge-head>`. This form will " +"generate a tentative commit message and always open an editor to let the " +"user edit it. This can be useful e.g. when a topic branch turns out to " +"address more than a single concern and wants to be split into two or even " +"more topic branches. Consider this todo list:" msgstr "" -#. type: Labeled list -#: en/git-shortlog.txt:42 +#. type: delimited block - +#: en/git-rebase.txt:999 #, no-wrap -msgid "--format[=<format>]" -msgstr "" - -#. type: Plain text -#: en/git-shortlog.txt:47 msgid "" -"Instead of the commit subject, use some other information to describe each " -"commit. '<format>' can be any string accepted by the `--format` option of " -"'git log', such as '* [%h] %s'. (See the \"PRETTY FORMATS\" section of " -"linkgit:git-log[1].)" +"pick 192837 Switch from GNU Makefiles to CMake\n" +"pick 5a6c7e Document the switch to CMake\n" +"pick 918273 Fix detection of OpenSSL in CMake\n" +"pick afbecd http: add support for TLS v1.3\n" +"pick fdbaec Fix detection of cURL in CMake on Windows\n" msgstr "" #. type: Plain text -#: en/git-shortlog.txt:49 -msgid "Each pretty-printed commit will be rewrapped before it is shown." +#: en/git-rebase.txt:1005 +msgid "" +"The one commit in this list that is not related to CMake may very well have " +"been motivated by working on fixing all those bugs introduced by switching " +"to CMake, but it addresses a different concern. To split this branch into " +"two topic branches, the todo list could be edited like this:" msgstr "" -#. type: Labeled list -#: en/git-shortlog.txt:51 +#. type: delimited block - +#: en/git-rebase.txt:1011 #, no-wrap -msgid "--committer" +msgid "" +"pick afbecd http: add support for TLS v1.3\n" +"label tlsv1.3\n" msgstr "" -#. type: Plain text -#: en/git-shortlog.txt:53 -msgid "Collect and show committer identities instead of authors." +#. type: delimited block - +#: en/git-rebase.txt:1018 +#, no-wrap +msgid "" +"reset onto\n" +"pick 192837 Switch from GNU Makefiles to CMake\n" +"pick 918273 Fix detection of OpenSSL in CMake\n" +"pick fdbaec Fix detection of cURL in CMake on Windows\n" +"pick 5a6c7e Document the switch to CMake\n" +"label cmake\n" msgstr "" -#. type: Labeled list -#: en/git-shortlog.txt:54 +#. type: delimited block - +#: en/git-rebase.txt:1022 #, no-wrap -msgid "-w[<width>[,<indent1>[,<indent2>]]]" +msgid "" +"reset onto\n" +"merge tlsv1.3\n" +"merge cmake\n" msgstr "" #. type: Plain text -#: en/git-shortlog.txt:59 +#: en/git-rebase.txt:1031 msgid "" -"Linewrap the output by wrapping each line at `width`. The first line of " -"each entry is indented by `indent1` spaces, and the second and subsequent " -"lines are indented by `indent2` spaces. `width`, `indent1`, and `indent2` " -"default to 76, 6 and 9 respectively." +"The todo list presented by `--preserve-merges --interactive` does not " +"represent the topology of the revision graph. Editing commits and rewording " +"their commit messages should work fine, but attempts to reorder commits tend " +"to produce counterintuitive results. Use `--rebase-merges` in such scenarios " +"instead." msgstr "" #. type: Plain text -#: en/git-shortlog.txt:62 -msgid "" -"If width is `0` (zero) then indent the lines of the output without wrapping " -"them." +#: en/git-rebase.txt:1033 +msgid "For example, an attempt to rearrange" msgstr "" -#. type: Plain text -#: en/git-shortlog.txt:71 -msgid "" -"Show only commits in the specified revision range. When no <revision range> " -"is specified, it defaults to `HEAD` (i.e. the whole history leading to the " -"current commit). `origin..HEAD` specifies all the commits reachable from " -"the current commit (i.e. `HEAD`), but not from `origin`. For a complete list " -"of ways to spell <revision range>, see the \"Specifying Ranges\" section of " -"linkgit:gitrevisions[7]." +#. type: delimited block - +#: en/git-rebase.txt:1035 +#, no-wrap +msgid "1 --- 2 --- 3 --- 4 --- 5\n" msgstr "" -#. type: Plain text -#: en/git-shortlog.txt:75 +#. type: delimited block - +#: en/git-rebase.txt:1039 #, no-wrap -msgid "" -"[\\--] <path>...::\n" -"\tConsider only commits that are enough to explain how the files\n" -"\tthat match the specified paths came to be.\n" +msgid "1 --- 2 --- 4 --- 3 --- 5\n" msgstr "" #. type: Plain text -#: en/git-shortlog.txt:78 -msgid "" -"Paths may need to be prefixed with \"\\-- \" to separate them from options " -"or the revision range, when confusion arises." +#: en/git-rebase.txt:1041 +msgid "by moving the \"pick 4\" line will result in the following history:" msgstr "" -#. type: Plain text -#: en/git-shortlog.txt:85 +#. type: delimited block - +#: en/git-rebase.txt:1045 +#, no-wrap msgid "" -"The `.mailmap` feature is used to coalesce together commits by the same " -"person in the shortlog, where their name and/or email address was spelled " -"differently." +"\t3\n" +" /\n" +"1 --- 2 --- 4 --- 5\n" msgstr "" #. type: Title = -#: en/git-show-branch.txt:2 +#: en/git-receive-pack.txt:2 #, no-wrap -msgid "git-show-branch(1)" +msgid "git-receive-pack(1)" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:7 -msgid "git-show-branch - Show branches and their commits" +#: en/git-receive-pack.txt:7 +msgid "git-receive-pack - Receive what is pushed into the repository" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:17 +#: en/git-receive-pack.txt:13 #, no-wrap -msgid "" -"'git show-branch' [-a|--all] [-r|--remotes] [--topo-order | --date-order]\n" -"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" -"\t\t[--more=<n> | --list | --independent | --merge-base]\n" -"\t\t[--no-name | --sha1-name] [--topics]\n" -"\t\t[(<rev> | <glob>)...]\n" -"'git show-branch' (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]\n" +msgid "'git-receive-pack' <directory>\n" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:24 +#: en/git-receive-pack.txt:18 msgid "" -"Shows the commit ancestry graph starting from the commits named with <rev>s " -"or <globs>s (or all refs under refs/heads and/or refs/tags) semi-visually." +"Invoked by 'git send-pack' and updates the repository with the information " +"fed from the remote end." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:26 -msgid "It cannot show more than 29 branches and commits at a time." +#: en/git-receive-pack.txt:23 +msgid "" +"This command is usually not invoked directly by the end user. The UI for " +"the protocol is on the 'git send-pack' side, and the program pair is meant " +"to be used to push updates to remote repository. For pull operations, see " +"linkgit:git-fetch-pack[1]." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:29 +#: en/git-receive-pack.txt:28 msgid "" -"It uses `showbranch.default` multi-valued configuration items if no <rev> or " -"<glob> is given on the command line." -msgstr "" - -#. type: Labeled list -#: en/git-show-branch.txt:33 -#, no-wrap -msgid "<rev>" +"The command allows for creation and fast-forwarding of sha1 refs (heads/" +"tags) on the remote end (strictly speaking, it is the local end 'git-receive-" +"pack' runs, but to the user who is sitting at the send-pack end, it is " +"updating the remote. Confused?)" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:36 +#: en/git-receive-pack.txt:31 msgid "" -"Arbitrary extended SHA-1 expression (see linkgit:gitrevisions[7]) that " -"typically names a branch head or a tag." -msgstr "" - -#. type: Labeled list -#: en/git-show-branch.txt:37 -#, no-wrap -msgid "<glob>" +"There are other real-world examples of using update and post-update hooks " +"found in the Documentation/howto directory." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:42 +#: en/git-receive-pack.txt:35 msgid "" -"A glob pattern that matches branch or tag names under refs/. For example, " -"if you have many topic branches under refs/heads/topic, giving `topic/*` " -"would show all of them." +"'git-receive-pack' honours the receive.denyNonFastForwards config option, " +"which tells it if updates to a ref should be denied if they are not fast-" +"forwards." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:46 -msgid "Show the remote-tracking branches." +#: en/git-receive-pack.txt:38 +msgid "" +"A number of other receive.* config options are available to tweak its " +"behavior, see linkgit:git-config[1]." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:50 -msgid "Show both remote-tracking branches and local branches." +#: en/git-receive-pack.txt:43 +msgid "The repository to sync into." msgstr "" -#. type: Labeled list -#: en/git-show-branch.txt:51 +#. type: Title - +#: en/git-receive-pack.txt:45 #, no-wrap -msgid "--current" +msgid "PRE-RECEIVE HOOK" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:55 +#: en/git-receive-pack.txt:49 msgid "" -"With this option, the command includes the current branch to the list of " -"revs to be shown when it is not given on the command line." +"Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists and is " +"executable, it will be invoked once with no parameters. The standard input " +"of the hook will be one line per ref to be updated:" msgstr "" -#. type: Labeled list -#: en/git-show-branch.txt:56 en/rev-list-options.txt:635 +#. type: Plain text +#: en/git-receive-pack.txt:51 en/git-receive-pack.txt:150 #, no-wrap -msgid "--topo-order" +msgid " sha1-old SP sha1-new SP refname LF\n" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:61 +#: en/git-receive-pack.txt:58 msgid "" -"By default, the branches and their commits are shown in reverse " -"chronological order. This option makes them appear in topological order " -"(i.e., descendant commits are shown before their parents)." +"The refname value is relative to $GIT_DIR; e.g. for the master head this is " +"\"refs/heads/master\". The two sha1 values before each refname are the " +"object names for the refname before and after the update. Refs to be " +"created will have sha1-old equal to 0\\{40}, while refs to be deleted will " +"have sha1-new equal to 0\\{40}, otherwise sha1-old and sha1-new should be " +"valid objects in the repository." +msgstr "" + +#. type: Plain text +#: en/git-receive-pack.txt:65 +msgid "" +"When accepting a signed push (see linkgit:git-push[1]), the signed push " +"certificate is stored in a blob and an environment variable `GIT_PUSH_CERT` " +"can be consulted for its object name. See the description of `post-receive` " +"hook for an example. In addition, the certificate is verified using GPG and " +"the result is exported with the following environment variables:" msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:62 en/rev-list-options.txt:627 +#: en/git-receive-pack.txt:66 #, no-wrap -msgid "--date-order" +msgid "`GIT_PUSH_CERT_SIGNER`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:66 +#: en/git-receive-pack.txt:69 msgid "" -"This option is similar to `--topo-order` in the sense that no parent comes " -"before all of its children, but otherwise commits are ordered according to " -"their commit date." +"The name and the e-mail address of the owner of the key that signed the push " +"certificate." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:67 en/rev-list-options.txt:333 en/rev-list-options.txt:466 +#: en/git-receive-pack.txt:70 #, no-wrap -msgid "--sparse" +msgid "`GIT_PUSH_CERT_KEY`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:71 -msgid "" -"By default, the output omits merges that are reachable from only one tip " -"being shown. This option makes them visible." +#: en/git-receive-pack.txt:72 +msgid "The GPG key ID of the key that signed the push certificate." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:72 +#: en/git-receive-pack.txt:73 #, no-wrap -msgid "--more=<n>" +msgid "`GIT_PUSH_CERT_STATUS`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:79 +#: en/git-receive-pack.txt:77 msgid "" -"Usually the command stops output upon showing the commit that is the common " -"ancestor of all the branches. This flag tells the command to go <n> more " -"common commits beyond that. When <n> is negative, display only the " -"<reference>s given, without showing the commit ancestry tree." +"The status of GPG verification of the push certificate, using the same " +"mnemonic as used in `%G?` format of `git log` family of commands (see " +"linkgit:git-log[1])." +msgstr "" + +#. type: Labeled list +#: en/git-receive-pack.txt:78 +#, no-wrap +msgid "`GIT_PUSH_CERT_NONCE`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:82 -msgid "Synonym to `--more=-1`" +#: en/git-receive-pack.txt:84 +msgid "" +"The nonce string the process asked the signer to include in the push " +"certificate. If this does not match the value recorded on the \"nonce\" " +"header in the push certificate, it may indicate that the certificate is a " +"valid one that is being replayed from a separate \"git push\" session." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:83 +#: en/git-receive-pack.txt:85 #, no-wrap -msgid "--merge-base" +msgid "`GIT_PUSH_CERT_NONCE_STATUS`" +msgstr "" + +#. type: Labeled list +#: en/git-receive-pack.txt:86 +#, no-wrap +msgid "`UNSOLICITED`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:89 -msgid "" -"Instead of showing the commit list, determine possible merge bases for the " -"specified commits. All merge bases will be contained in all specified " -"commits. This is different from how linkgit:git-merge-base[1] handles the " -"case of three or more commits." +#: en/git-receive-pack.txt:89 +msgid "\"git push --signed\" sent a nonce when we did not ask it to send one." +msgstr "" + +#. type: Labeled list +#: en/git-receive-pack.txt:89 +#, no-wrap +msgid "`MISSING`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:93 -msgid "" -"Among the <reference>s given, display only the ones that cannot be reached " -"from any other <reference>." +#: en/git-receive-pack.txt:91 +msgid "\"git push --signed\" did not send any nonce header." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:94 +#: en/git-receive-pack.txt:91 #, no-wrap -msgid "--no-name" +msgid "`BAD`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:96 -msgid "Do not show naming strings for each commit." +#: en/git-receive-pack.txt:93 +msgid "\"git push --signed\" sent a bogus nonce." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:97 +#: en/git-receive-pack.txt:93 #, no-wrap -msgid "--sha1-name" +msgid "`OK`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:102 -msgid "" -"Instead of naming the commits using the path to reach them from heads " -"(e.g. \"master~2\" to mean the grandparent of \"master\"), name them with " -"the unique prefix of their object names." +#: en/git-receive-pack.txt:95 +msgid "\"git push --signed\" sent the nonce we asked it to send." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:103 +#: en/git-receive-pack.txt:95 #, no-wrap -msgid "--topics" +msgid "`SLOP`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:110 +#: en/git-receive-pack.txt:99 msgid "" -"Shows only commits that are NOT on the first branch given. This helps track " -"topic branches by hiding any commit that is already in the main line of " -"development. When given \"git show-branch --topics master topic1 topic2\", " -"this will show the revisions given by \"git rev-list {caret}master topic1 " -"topic2\"" +"\"git push --signed\" sent a nonce different from what we asked it to send " +"now, but in a previous session. See `GIT_PUSH_CERT_NONCE_SLOP` environment " +"variable." msgstr "" #. type: Labeled list -#: en/git-show-branch.txt:112 +#: en/git-receive-pack.txt:100 #, no-wrap -msgid "--reflog[=<n>[,<base>]] [<ref>]" +msgid "`GIT_PUSH_CERT_NONCE_SLOP`" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:118 +#: en/git-receive-pack.txt:108 msgid "" -"Shows <n> most recent ref-log entries for the given ref. If <base> is " -"given, <n> entries going back from that entry. <base> can be specified as " -"count or date. When no explicit <ref> parameter is given, it defaults to " -"the current branch (or `HEAD` if it is detached)." +"\"git push --signed\" sent a nonce different from what we asked it to send " +"now, but in a different session whose starting time is different by this " +"many seconds from the current session. Only meaningful when " +"`GIT_PUSH_CERT_NONCE_STATUS` says `SLOP`. Also read about `receive." +"certNonceSlop` variable in linkgit:git-config[1]." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:123 +#: en/git-receive-pack.txt:111 msgid "" -"Color the status sign (one of these: `*` `!` `+` `-`) of each commit " -"corresponding to the branch it's in. The value must be always (the " -"default), never, or auto." +"This hook is called before any refname is updated and before any fast-" +"forward checks are performed." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:128 +#: en/git-receive-pack.txt:116 msgid "" -"Turn off colored output, even when the configuration file gives the default " -"to color output. Same as `--color=never`." +"If the pre-receive hook exits with a non-zero exit status no updates will be " +"performed, and the update, post-receive and post-update hooks will not be " +"invoked either. This can be useful to quickly bail out if the update is not " +"to be supported." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:131 -msgid "" -"Note that --more, --list, --independent and --merge-base options are " -"mutually exclusive." +#: en/git-receive-pack.txt:118 +msgid "See the notes on the quarantine environment below." +msgstr "" + +#. type: Title - +#: en/git-receive-pack.txt:120 +#, no-wrap +msgid "UPDATE HOOK" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:139 +#: en/git-receive-pack.txt:123 msgid "" -"Given N <references>, the first N lines are the one-line description from " -"their commit message. The branch head that is pointed at by $GIT_DIR/HEAD " -"is prefixed with an asterisk `*` character while other heads are prefixed " -"with a `!` character." +"Before each ref is updated, if $GIT_DIR/hooks/update file exists and is " +"executable, it is invoked once per ref, with three parameters:" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:146 +#: en/git-receive-pack.txt:125 +#, no-wrap +msgid " $GIT_DIR/hooks/update refname sha1-old sha1-new\n" +msgstr "" + +#. type: Plain text +#: en/git-receive-pack.txt:132 msgid "" -"Following these N lines, one-line log for each commit is displayed, indented " -"N places. If a commit is on the I-th branch, the I-th indentation character " -"shows a `+` sign; otherwise it shows a space. Merge commits are denoted by " -"a `-` sign. Each commit shows a short name that can be used as an extended " -"SHA-1 to name that commit." +"The refname parameter is relative to $GIT_DIR; e.g. for the master head this " +"is \"refs/heads/master\". The two sha1 arguments are the object names for " +"the refname before and after the update. Note that the hook is called " +"before the refname is updated, so either sha1-old is 0\\{40} (meaning there " +"is no such ref yet), or it should match what is recorded in refname." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:149 +#: en/git-receive-pack.txt:135 msgid "" -"The following example shows three branches, \"master\", \"fixes\" and " -"\"mhf\":" +"The hook should exit with non-zero status if it wants to disallow updating " +"the named ref. Otherwise it should exit with zero." msgstr "" -#. type: delimited block - -#: en/git-show-branch.txt:155 -#, no-wrap +#. type: Plain text +#: en/git-receive-pack.txt:140 msgid "" -"$ git show-branch master fixes mhf\n" -"* [master] Add 'git show-branch'.\n" -" ! [fixes] Introduce \"reset type\" flag to \"git reset\"\n" -" ! [mhf] Allow \"+remote:local\" refspec to cause --force when fetching.\n" -"---\n" +"Successful execution (a zero exit status) of this hook does not ensure the " +"ref will actually be updated, it is only a prerequisite. As such it is not " +"a good idea to send notices (e.g. email) from this hook. Consider using the " +"post-receive hook instead." msgstr "" -#. type: delimited block - -#: en/git-show-branch.txt:167 +#. type: Title - +#: en/git-receive-pack.txt:142 #, no-wrap -msgid "" -" + [mhf] Allow \"+remote:local\" refspec to cause --force when fetching.\n" -" + [mhf~1] Use git-octopus when pulling more than one heads.\n" -" + [fixes] Introduce \"reset type\" flag to \"git reset\"\n" -" + [mhf~2] \"git fetch --force\".\n" -" + [mhf~3] Use .git/remote/origin, not .git/branches/origin.\n" -" + [mhf~4] Make \"git pull\" and \"git fetch\" default to origin\n" -" + [mhf~5] Infamous 'octopus merge'\n" -" + [mhf~6] Retire git-parse-remote.\n" -" + [mhf~7] Multi-head fetch.\n" -" + [mhf~8] Start adding the $GIT_DIR/remotes/ support.\n" -"*++ [master] Add 'git show-branch'.\n" +msgid "POST-RECEIVE HOOK" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:174 +#: en/git-receive-pack.txt:148 msgid "" -"These three branches all forked from a common commit, [master], whose commit " -"message is \"Add {apostrophe}git show-branch{apostrophe}\". The \"fixes\" " -"branch adds one commit \"Introduce \"reset type\" flag to \"git " -"reset\"\". The \"mhf\" branch adds many other commits. The current branch " -"is \"master\"." +"After all refs were updated (or attempted to be updated), if any ref update " +"was successful, and if $GIT_DIR/hooks/post-receive file exists and is " +"executable, it will be invoked once with no parameters. The standard input " +"of the hook will be one line for each successfully updated ref:" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:182 +#: en/git-receive-pack.txt:158 msgid "" -"If you keep your primary branches immediately under `refs/heads`, and topic " -"branches in subdirectories of it, having the following in the configuration " -"file may help:" +"The refname value is relative to $GIT_DIR; e.g. for the master head this is " +"\"refs/heads/master\". The two sha1 values before each refname are the " +"object names for the refname before and after the update. Refs that were " +"created will have sha1-old equal to 0\\{40}, while refs that were deleted " +"will have sha1-new equal to 0\\{40}, otherwise sha1-old and sha1-new should " +"be valid objects in the repository." msgstr "" -#. type: delimited block - -#: en/git-show-branch.txt:187 -#, no-wrap +#. type: Plain text +#: en/git-receive-pack.txt:161 msgid "" -"[showbranch]\n" -"\tdefault = --topo-order\n" -"\tdefault = heads/*\n" +"The `GIT_PUSH_CERT*` environment variables can be inspected, just as in `pre-" +"receive` hook, after accepting a signed push." msgstr "" #. type: Plain text -#: en/git-show-branch.txt:193 +#: en/git-receive-pack.txt:167 msgid "" -"With this, `git show-branch` without extra parameters would show only the " -"primary branches. In addition, if you happen to be on your topic branch, it " -"is shown as well." +"Using this hook, it is easy to generate mails describing the updates to the " +"repository. This example script sends one mail message per ref listing the " +"commits pushed to the repository, and logs the push certificates of signed " +"pushes with good signatures to a logger service:" msgstr "" -#. type: delimited block - -#: en/git-show-branch.txt:196 +#. type: Plain text +#: en/git-receive-pack.txt:191 #, no-wrap -msgid "$ git show-branch --reflog=\"10,1 hour ago\" --list master\n" +msgid "" +"\t#!/bin/sh\n" +"\t# mail out commit update information.\n" +"\twhile read oval nval ref\n" +"\tdo\n" +"\t\tif expr \"$oval\" : '0*$' >/dev/null\n" +"\t\tthen\n" +"\t\t\techo \"Created a new ref, with the following commits:\"\n" +"\t\t\tgit rev-list --pretty \"$nval\"\n" +"\t\telse\n" +"\t\t\techo \"New commits:\"\n" +"\t\t\tgit rev-list --pretty \"$nval\" \"^$oval\"\n" +"\t\tfi |\n" +"\t\tmail -s \"Changes to ref $ref\" commit-list@mydomain\n" +"\tdone\n" +"\t# log signed push certificate, if any\n" +"\tif test -n \"${GIT_PUSH_CERT-}\" && test ${GIT_PUSH_CERT_STATUS} = G\n" +"\tthen\n" +"\t\t(\n" +"\t\t\techo expected nonce is ${GIT_PUSH_NONCE}\n" +"\t\t\tgit cat-file blob ${GIT_PUSH_CERT}\n" +"\t\t) | mail -s \"push certificate from $GIT_PUSH_CERT_SIGNER\" push-log@mydomain\n" +"\tfi\n" +"\texit 0\n" msgstr "" #. type: Plain text -#: en/git-show-branch.txt:201 +#: en/git-receive-pack.txt:194 msgid "" -"shows 10 reflog entries going back from the tip as of 1 hour ago. Without " -"`--list`, the output also shows how these tips are topologically related " -"with each other." +"The exit code from this hook invocation is ignored, however a non-zero exit " +"code will generate an error message." msgstr "" -#. type: Title = -#: en/git-show-index.txt:2 +#. type: Plain text +#: en/git-receive-pack.txt:200 +msgid "" +"Note that it is possible for refname to not have sha1-new when this hook " +"runs. This can easily occur if another user modifies the ref after it was " +"updated by 'git-receive-pack', but before the hook was able to evaluate it. " +"It is recommended that hooks rely on sha1-new rather than the current value " +"of refname." +msgstr "" + +#. type: Title - +#: en/git-receive-pack.txt:202 #, no-wrap -msgid "git-show-index(1)" +msgid "POST-UPDATE HOOK" msgstr "" #. type: Plain text -#: en/git-show-index.txt:7 -msgid "git-show-index - Show packed archive index" +#: en/git-receive-pack.txt:207 +msgid "" +"After all other processing, if at least one ref was updated, and if $GIT_DIR/" +"hooks/post-update file exists and is executable, then post-update will be " +"called with the list of refs that have been updated. This can be used to " +"implement any repository wide cleanup tasks." msgstr "" #. type: Plain text -#: en/git-show-index.txt:13 -#, no-wrap -msgid "'git show-index'\n" +#: en/git-receive-pack.txt:211 +msgid "" +"The exit code from this hook invocation is ignored; the only thing left for " +"'git-receive-pack' to do at that point is to exit itself anyway." msgstr "" #. type: Plain text -#: en/git-show-index.txt:20 +#: en/git-receive-pack.txt:214 msgid "" -"Read the idx file for a Git packfile created with 'git pack-objects' command " -"from the standard input, and dump its contents." +"This hook can be used, for example, to run `git update-server-info` if the " +"repository is packed and is served via a dumb transport." msgstr "" #. type: Plain text -#: en/git-show-index.txt:24 +#: en/git-receive-pack.txt:217 +#, no-wrap msgid "" -"The information it outputs is subset of what you can get from 'git " -"verify-pack -v'; this command only shows the packfile offset and SHA-1 of " -"each object." +"\t#!/bin/sh\n" +"\texec git update-server-info\n" msgstr "" -#. type: Title = -#: en/git-show-ref.txt:2 +#. type: Title - +#: en/git-receive-pack.txt:220 #, no-wrap -msgid "git-show-ref(1)" +msgid "QUARANTINE ENVIRONMENT" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:7 -msgid "git-show-ref - List references in a local repository" +#: en/git-receive-pack.txt:227 +msgid "" +"When `receive-pack` takes in objects, they are placed into a temporary " +"\"quarantine\" directory within the `$GIT_DIR/objects` directory and " +"migrated into the main object store only after the `pre-receive` hook has " +"completed. If the push fails before then, the temporary directory is removed " +"entirely." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:15 -#, no-wrap -msgid "" -"'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]\n" -"\t [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]\n" -"\t [--heads] [--] [<pattern>...]\n" -"'git show-ref' --exclude-existing[=<pattern>]\n" +#: en/git-receive-pack.txt:229 +msgid "This has a few user-visible effects and caveats:" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:23 +#: en/git-receive-pack.txt:235 msgid "" -"Displays references available in a local repository along with the " -"associated commit IDs. Results can be filtered using a pattern and tags can " -"be dereferenced into object IDs. Additionally, it can be used to test " -"whether a particular ref exists." +"Pushes which fail due to problems with the incoming pack, missing objects, " +"or due to the `pre-receive` hook will not leave any on-disk data. This is " +"usually helpful to prevent repeated failed pushes from filling up your disk, " +"but can make debugging more challenging." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:25 -msgid "By default, shows the tags, heads, and remote refs." +#: en/git-receive-pack.txt:238 +msgid "" +"Any objects created by the `pre-receive` hook will be created in the " +"quarantine directory (and migrated only if it succeeds)." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:29 +#: en/git-receive-pack.txt:244 msgid "" -"The --exclude-existing form is a filter that does the inverse. It reads refs " -"from stdin, one ref per line, and shows those that don't exist in the local " -"repository." +"The `pre-receive` hook MUST NOT update any refs to point to quarantined " +"objects. Other programs accessing the repository will not be able to see the " +"objects (and if the pre-receive hook fails, those refs would become " +"corrupted). For safety, any ref updates from within `pre-receive` are " +"automatically rejected." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:32 -msgid "" -"Use of this utility is encouraged in favor of directly accessing files under " -"the `.git` directory." +#: en/git-receive-pack.txt:249 +msgid "linkgit:git-send-pack[1], linkgit:gitnamespaces[7]" msgstr "" -#. type: Labeled list -#: en/git-show-ref.txt:36 +#. type: Title = +#: en/git-reflog.txt:2 #, no-wrap -msgid "--head" +msgid "git-reflog(1)" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:39 -msgid "Show the HEAD reference, even if it would normally be filtered out." +#: en/git-reflog.txt:7 +msgid "git-reflog - Manage reflog information" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:46 -msgid "" -"Limit to \"refs/heads\" and \"refs/tags\", respectively. These options are " -"not mutually exclusive; when given both, references stored in \"refs/heads\" " -"and \"refs/tags\" are displayed." +#: en/git-reflog.txt:13 +#, no-wrap +msgid "'git reflog' <subcommand> <options>\n" msgstr "" -#. type: Labeled list -#: en/git-show-ref.txt:48 +#. type: Plain text +#: en/git-reflog.txt:27 #, no-wrap -msgid "--dereference" +msgid "" +"'git reflog' ['show'] [log-options] [<ref>]\n" +"'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>]\n" +"\t[--rewrite] [--updateref] [--stale-fix]\n" +"\t[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]\n" +"'git reflog delete' [--rewrite] [--updateref]\n" +"\t[--dry-run | -n] [--verbose] ref@\\{specifier\\}...\n" +"'git reflog exists' <ref>\n" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:52 +#: en/git-reflog.txt:35 msgid "" -"Dereference tags into object IDs as well. They will be shown with " -"\"{caret}{}\" appended." +"Reference logs, or \"reflogs\", record when the tips of branches and other " +"references were updated in the local repository. Reflogs are useful in " +"various Git commands, to specify the old value of a reference. For example, " +"`HEAD@{2}` means \"where HEAD used to be two moves ago\", `master@{one.week." +"ago}` means \"where master used to point to one week ago in this local " +"repository\", and so on. See linkgit:gitrevisions[7] for more details." msgstr "" -#. type: Labeled list -#: en/git-show-ref.txt:54 -#, no-wrap -msgid "--hash[=<n>]" +#. type: Plain text +#: en/git-reflog.txt:37 +msgid "This command manages the information recorded in the reflogs." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:58 +#: en/git-reflog.txt:44 msgid "" -"Only show the SHA-1 hash, not the reference name. When combined with " -"--dereference the dereferenced tag will still be shown after the SHA-1." +"The \"show\" subcommand (which is also the default, in the absence of any " +"subcommands) shows the log of the reference provided in the command-line (or " +"`HEAD`, by default). The reflog covers all recent actions, and in addition " +"the `HEAD` reflog records branch switching. `git reflog show` is an alias " +"for `git log -g --abbrev-commit --pretty=oneline`; see linkgit:git-log[1] " +"for more information." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:64 +#: en/git-reflog.txt:50 msgid "" -"Enable stricter reference checking by requiring an exact ref path. Aside " -"from returning an error code of 1, it will also print an error message if " -"`--quiet` was not specified." +"The \"expire\" subcommand prunes older reflog entries. Entries older than " +"`expire` time, or entries older than `expire-unreachable` time and not " +"reachable from the current tip, are removed from the reflog. This is " +"typically not used directly by end users -- instead, see linkgit:git-gc[1]." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:69 +#: en/git-reflog.txt:55 msgid "" -"Abbreviate the object name. When using `--hash`, you do not have to say " -"`--hash --abbrev`; `--hash=n` would do." +"The \"delete\" subcommand deletes single entries from the reflog. Its " +"argument must be an _exact_ entry (e.g. \"`git reflog delete master@{2}`\"). " +"This subcommand is also typically not used directly by end users." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:75 +#: en/git-reflog.txt:59 msgid "" -"Do not print any results to stdout. When combined with `--verify` this can " -"be used to silently check if a reference exists." +"The \"exists\" subcommand checks whether a ref has a reflog. It exits with " +"zero status if the reflog exists, and non-zero status if it does not." msgstr "" -#. type: Labeled list -#: en/git-show-ref.txt:76 +#. type: Title ~ +#: en/git-reflog.txt:64 #, no-wrap -msgid "--exclude-existing[=<pattern>]" +msgid "Options for `show`" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:81 -msgid "" -"Make 'git show-ref' act as a filter that reads refs from stdin of the form " -"\"`^(?:<anything>\\s)?<refname>(?:\\^{})?$`\" and performs the following " -"actions on each:" +#: en/git-reflog.txt:67 +msgid "`git reflog show` accepts any of the options accepted by `git log`." msgstr "" -#. type: Plain text -#: en/git-show-ref.txt:82 -msgid "strip \"{caret}{}\" at the end of line if any;" +#. type: Title ~ +#: en/git-reflog.txt:70 +#, no-wrap +msgid "Options for `expire`" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:83 -msgid "ignore if pattern is provided and does not head-match refname;" +#: en/git-reflog.txt:74 +msgid "Process the reflogs of all references." msgstr "" -#. type: Plain text -#: en/git-show-ref.txt:84 -msgid "warn if refname is not a well-formed refname and skip;" +#. type: Labeled list +#: en/git-reflog.txt:75 en/rev-list-options.txt:185 +#, no-wrap +msgid "--single-worktree" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:85 -msgid "ignore if refname is a ref that exists in the local repository;" +#: en/git-reflog.txt:79 +msgid "" +"By default when `--all` is specified, reflogs from all working trees are " +"processed. This option limits the processing to reflogs from the current " +"working tree only." msgstr "" -#. type: Plain text -#: en/git-show-ref.txt:86 -msgid "otherwise output the line." +#. type: Labeled list +#: en/git-reflog.txt:80 +#, no-wrap +msgid "--expire=<time>" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:95 +#: en/git-reflog.txt:87 msgid "" -"Show references matching one or more patterns. Patterns are matched from the " -"end of the full name, and only complete parts are matched, e.g. 'master' " -"matches 'refs/heads/master', 'refs/remotes/origin/master', " -"'refs/tags/jedi/master' but not 'refs/heads/mymaster' or " -"'refs/remotes/master/jedi'." -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:100 -msgid "The output is in the format: '<SHA-1 ID>' '<space>' '<reference name>'." +"Prune entries older than the specified time. If this option is not " +"specified, the expiration time is taken from the configuration setting `gc." +"reflogExpire`, which in turn defaults to 90 days. `--expire=all` prunes " +"entries regardless of their age; `--expire=never` turns off pruning of " +"reachable entries (but see `--expire-unreachable`)." msgstr "" -#. type: delimited block - -#: en/git-show-ref.txt:111 +#. type: Labeled list +#: en/git-reflog.txt:88 #, no-wrap -msgid "" -"$ git show-ref --head --dereference\n" -"832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD\n" -"832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master\n" -"832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin\n" -"3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c\n" -"6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}\n" -"055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4\n" -"423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}\n" -"...\n" +msgid "--expire-unreachable=<time>" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:114 -msgid "When using --hash (and not --dereference) the output format is: '<SHA-1 ID>'" +#: en/git-reflog.txt:97 +msgid "" +"Prune entries older than `<time>` that are not reachable from the current " +"tip of the branch. If this option is not specified, the expiration time is " +"taken from the configuration setting `gc.reflogExpireUnreachable`, which in " +"turn defaults to 30 days. `--expire-unreachable=all` prunes unreachable " +"entries regardless of their age; `--expire-unreachable=never` turns off " +"early pruning of unreachable entries (but see `--expire`)." msgstr "" -#. type: delimited block - -#: en/git-show-ref.txt:121 +#. type: Labeled list +#: en/git-reflog.txt:98 #, no-wrap -msgid "" -"$ git show-ref --heads --hash\n" -"2e3ba0114a1f52b47df29743d6915d056be13278\n" -"185008ae97960c8d551adcd9e23565194651b5d1\n" -"03adf42c988195b50e1a1935ba5fcbc39b2b029b\n" -"...\n" +msgid "--updateref" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:129 +#: en/git-reflog.txt:102 msgid "" -"To show all references called \"master\", whether tags or heads or anything " -"else, and regardless of how deep in the reference naming hierarchy they are, " -"use:" +"Update the reference to the value of the top reflog entry (i.e. <ref>@" +"\\{0\\}) if the previous top entry was pruned. (This option is ignored for " +"symbolic references.)" msgstr "" -#. type: delimited block - -#: en/git-show-ref.txt:132 +#. type: Labeled list +#: en/git-reflog.txt:103 #, no-wrap -msgid "\tgit show-ref master\n" +msgid "--rewrite" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:136 +#: en/git-reflog.txt:107 msgid "" -"This will show \"refs/heads/master\" but also " -"\"refs/remote/other-repo/master\", if such references exists." -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:138 -msgid "When using the `--verify` flag, the command requires an exact path:" +"If a reflog entry's predecessor is pruned, adjust its \"old\" SHA-1 to be " +"equal to the \"new\" SHA-1 field of the entry that now precedes it." msgstr "" -#. type: delimited block - -#: en/git-show-ref.txt:141 +#. type: Labeled list +#: en/git-reflog.txt:108 #, no-wrap -msgid "\tgit show-ref --verify refs/heads/master\n" +msgid "--stale-fix" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:144 -msgid "will only match the exact branch called \"master\"." -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:147 -msgid "" -"If nothing matches, 'git show-ref' will return an error code of 1, and in " -"the case of verification, it will show an error message." -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:150 -msgid "" -"For scripting, you can ask it to be quiet with the \"--quiet\" flag, which " -"allows you to do things like" -msgstr "" - -#. type: delimited block - -#: en/git-show-ref.txt:154 -#, no-wrap +#: en/git-reflog.txt:113 msgid "" -"\tgit show-ref --quiet --verify -- \"refs/heads/$headname\" ||\n" -"\t\techo \"$headname is not a valid branch\"\n" +"Prune any reflog entries that point to \"broken commits\". A broken commit " +"is a commit that is not reachable from any of the reference tips and that " +"refers, directly or indirectly, to a missing commit, tree, or blob object." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:159 +#: en/git-reflog.txt:118 msgid "" -"to check whether a particular branch exists or not (notice how we don't " -"actually want to show any results, and we want to use the full refname for " -"it in order to not trigger the problem with ambiguous partial matches)." +"This computation involves traversing all the reachable objects, i.e. it has " +"the same cost as 'git prune'. It is primarily intended to fix corruption " +"caused by garbage collecting using older versions of Git, which didn't " +"protect objects referred to by reflogs." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:163 +#: en/git-reflog.txt:123 msgid "" -"To show only tags, or only proper branch heads, use \"--tags\" and/or " -"\"--heads\" respectively (using both means that it shows tags and heads, but " -"not other random references under the refs/ subdirectory)." +"Do not actually prune any entries; just show what would have been pruned." msgstr "" #. type: Plain text -#: en/git-show-ref.txt:166 -msgid "" -"To do automatic tag object dereferencing, use the \"-d\" or " -"\"--dereference\" flag, so you can do" +#: en/git-reflog.txt:126 +msgid "Print extra information on screen." msgstr "" -#. type: delimited block - -#: en/git-show-ref.txt:169 +#. type: Title ~ +#: en/git-reflog.txt:129 #, no-wrap -msgid "\tgit show-ref --tags --dereference\n" -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:172 -msgid "to get a listing of all tags together with what they dereference." -msgstr "" - -#. type: Plain text -#: en/git-show-ref.txt:176 -msgid "`.git/refs/*`, `.git/packed-refs`" +msgid "Options for `delete`" msgstr "" #. type: Plain text -#: en/git-show-ref.txt:183 +#: en/git-reflog.txt:134 msgid "" -"linkgit:git-for-each-ref[1], linkgit:git-ls-remote[1], " -"linkgit:git-update-ref[1], linkgit:gitrepository-layout[5]" +"`git reflog delete` accepts options `--updateref`, `--rewrite`, `-n`, `--dry-" +"run`, and `--verbose`, with the same meanings as when they are used with " +"`expire`." msgstr "" #. type: Title = -#: en/git-show.txt:2 +#: en/git-remote-ext.txt:2 #, no-wrap -msgid "git-show(1)" +msgid "git-remote-ext(1)" msgstr "" #. type: Plain text -#: en/git-show.txt:7 -msgid "git-show - Show various types of objects" +#: en/git-remote-ext.txt:7 +msgid "git-remote-ext - Bridge smart transport to external command." msgstr "" #. type: Plain text -#: en/git-show.txt:13 +#: en/git-remote-ext.txt:12 #, no-wrap -msgid "'git show' [options] <object>...\n" -msgstr "" - -#. type: Plain text -#: en/git-show.txt:17 -msgid "Shows one or more objects (blobs, trees, tags and commits)." +msgid "git remote add <nick> \"ext::<command>[ <arguments>...]\"\n" msgstr "" #. type: Plain text -#: en/git-show.txt:21 +#: en/git-remote-ext.txt:17 msgid "" -"For commits it shows the log message and textual diff. It also presents the " -"merge commit in a special format as produced by 'git diff-tree --cc'." +"This remote helper uses the specified '<command>' to connect to a remote Git " +"server." msgstr "" #. type: Plain text -#: en/git-show.txt:23 -msgid "For tags, it shows the tag message and the referenced objects." +#: en/git-remote-ext.txt:23 +msgid "" +"Data written to stdin of the specified '<command>' is assumed to be sent to " +"a git:// server, git-upload-pack, git-receive-pack or git-upload-archive " +"(depending on situation), and data read from stdout of <command> is assumed " +"to be received from the same service." msgstr "" #. type: Plain text -#: en/git-show.txt:26 -msgid "" -"For trees, it shows the names (equivalent to 'git ls-tree' with " -"--name-only)." +#: en/git-remote-ext.txt:25 +msgid "Command and arguments are separated by an unescaped space." msgstr "" #. type: Plain text -#: en/git-show.txt:28 -msgid "For plain blobs, it shows the plain contents." +#: en/git-remote-ext.txt:27 +msgid "The following sequences have a special meaning:" msgstr "" -#. type: Plain text -#: en/git-show.txt:31 -msgid "" -"The command takes options applicable to the 'git diff-tree' command to " -"control how the changes the commit introduces are shown." +#. type: Labeled list +#: en/git-remote-ext.txt:28 +#, no-wrap +msgid "'% '" msgstr "" #. type: Plain text -#: en/git-show.txt:33 -msgid "This manual page describes only the most frequently used options." +#: en/git-remote-ext.txt:30 +msgid "Literal space in command or argument." msgstr "" #. type: Labeled list -#: en/git-show.txt:37 +#: en/git-remote-ext.txt:31 #, no-wrap -msgid "<object>..." +msgid "'%%'" msgstr "" #. type: Plain text -#: en/git-show.txt:41 -msgid "" -"The names of objects to show. For a more complete list of ways to spell " -"object names, see \"SPECIFYING REVISIONS\" section in " -"linkgit:gitrevisions[7]." +#: en/git-remote-ext.txt:33 +msgid "Literal percent sign." msgstr "" #. type: Labeled list -#: en/git-show.txt:60 +#: en/git-remote-ext.txt:34 #, no-wrap -msgid "`git show v1.0.0`" +msgid "'%s'" msgstr "" #. type: Plain text -#: en/git-show.txt:63 -msgid "Shows the tag `v1.0.0`, along with the object the tags points at." +#: en/git-remote-ext.txt:37 +msgid "" +"Replaced with name (receive-pack, upload-pack, or upload-archive) of the " +"service Git wants to invoke." msgstr "" #. type: Labeled list -#: en/git-show.txt:64 +#: en/git-remote-ext.txt:38 #, no-wrap -msgid "`git show v1.0.0^{tree}`" +msgid "'%S'" msgstr "" #. type: Plain text -#: en/git-show.txt:66 -msgid "Shows the tree pointed to by the tag `v1.0.0`." +#: en/git-remote-ext.txt:42 +msgid "" +"Replaced with long name (git-receive-pack, git-upload-pack, or git-upload-" +"archive) of the service Git wants to invoke." msgstr "" #. type: Labeled list -#: en/git-show.txt:67 +#: en/git-remote-ext.txt:43 #, no-wrap -msgid "`git show -s --format=%s v1.0.0^{commit}`" +msgid "'%G' (must be the first characters in an argument)" msgstr "" #. type: Plain text -#: en/git-show.txt:70 -msgid "Shows the subject of the commit pointed to by the tag `v1.0.0`." +#: en/git-remote-ext.txt:49 +msgid "" +"This argument will not be passed to '<command>'. Instead, it will cause the " +"helper to start by sending git:// service requests to the remote side with " +"the service field set to an appropriate value and the repository field set " +"to rest of the argument. Default is not to send such a request." +msgstr "" + +#. type: Plain text +#: en/git-remote-ext.txt:52 +msgid "" +"This is useful if remote side is git:// server accessed over some tunnel." msgstr "" #. type: Labeled list -#: en/git-show.txt:71 +#: en/git-remote-ext.txt:53 #, no-wrap -msgid "`git show next~10:Documentation/README`" +msgid "'%V' (must be first characters in argument)" msgstr "" #. type: Plain text -#: en/git-show.txt:75 +#: en/git-remote-ext.txt:57 msgid "" -"Shows the contents of the file `Documentation/README` as they were current " -"in the 10th last commit of the branch `next`." +"This argument will not be passed to '<command>'. Instead it sets the vhost " +"field in the git:// service request (to rest of the argument). Default is " +"not to send vhost in such request (if sent)." +msgstr "" + +#. type: Title - +#: en/git-remote-ext.txt:59 en/git-remote-fd.txt:32 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" msgstr "" #. type: Labeled list -#: en/git-show.txt:76 +#: en/git-remote-ext.txt:61 en/git-remote-fd.txt:33 #, no-wrap -msgid "`git show master:Makefile master:t/Makefile`" +msgid "GIT_TRANSLOOP_DEBUG" msgstr "" #. type: Plain text -#: en/git-show.txt:79 -msgid "" -"Concatenates the contents of said Makefiles in the head of the branch " -"`master`." +#: en/git-remote-ext.txt:63 en/git-remote-fd.txt:35 +msgid "If set, prints debugging information about various reads/writes." msgstr "" -#. type: Title = -#: en/git-sh-setup.txt:2 +#. type: Title - +#: en/git-remote-ext.txt:65 #, no-wrap -msgid "git-sh-setup(1)" +msgid "ENVIRONMENT VARIABLES PASSED TO COMMAND" msgstr "" -#. type: Plain text -#: en/git-sh-setup.txt:7 -msgid "git-sh-setup - Common Git shell script setup code" +#. type: Labeled list +#: en/git-remote-ext.txt:67 +#, no-wrap +msgid "GIT_EXT_SERVICE" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:12 +#: en/git-remote-ext.txt:70 +msgid "" +"Set to long name (git-upload-pack, etc...) of service helper needs to invoke." +msgstr "" + +#. type: Labeled list +#: en/git-remote-ext.txt:71 #, no-wrap -msgid "'. \"$(git --exec-path)/git-sh-setup\"'\n" +msgid "GIT_EXT_SERVICE_NOPREFIX" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:23 +#: en/git-remote-ext.txt:74 msgid "" -"The 'git sh-setup' scriptlet is designed to be sourced (using `.`) by other " -"shell scripts to set up some variables pointing at the normal Git " -"directories and a few helper shell functions." +"Set to long name (upload-pack, etc...) of service helper needs to invoke." msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:29 +#: en/git-remote-ext.txt:82 msgid "" -"Before sourcing it, your script should set up a few variables; `USAGE` (and " -"`LONG_USAGE`, if any) is used to define message given by `usage()` shell " -"function. `SUBDIRECTORY_OK` can be set if the script can run from a " -"subdirectory of the working tree (some commands do not)." +"This remote helper is transparently used by Git when you use commands such " +"as \"git fetch <URL>\", \"git clone <URL>\", , \"git push <URL>\" or \"git " +"remote add <nick> <URL>\", where <URL> begins with `ext::`. Examples:" +msgstr "" + +#. type: Labeled list +#: en/git-remote-ext.txt:83 +#, no-wrap +msgid "\"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S 'foo/repo'\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:32 +#: en/git-remote-ext.txt:87 msgid "" -"The scriptlet sets `GIT_DIR` and `GIT_OBJECT_DIRECTORY` shell variables, but " -"does *not* export them to the environment." +"Like host.example:foo/repo, but use /home/foo/.ssh/somekey as keypair and " +"user as user on remote side. This avoids needing to edit .ssh/config." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:36 +#: en/git-remote-ext.txt:88 #, no-wrap -msgid "die" +msgid "\"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:39 -msgid "exit after emitting the supplied error message to the standard error stream." +#: en/git-remote-ext.txt:91 +msgid "" +"Represents repository with path /somerepo accessible over git protocol at " +"abstract namespace address /git-server." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:40 +#: en/git-remote-ext.txt:92 #, no-wrap -msgid "usage" +msgid "\"ext::git-server-alias foo %G/repo\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:42 -msgid "die with the usage message." +#: en/git-remote-ext.txt:98 +msgid "" +"Represents a repository with path /repo accessed using the helper program " +"\"git-server-alias foo\". The path to the repository and type of request " +"are not passed on the command line but as part of the protocol stream, as " +"usual with git:// protocol." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:43 +#: en/git-remote-ext.txt:99 #, no-wrap -msgid "set_reflog_action" +msgid "\"ext::git-server-alias foo %G/repo %Vfoo\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:49 +#: en/git-remote-ext.txt:105 msgid "" -"Set `GIT_REFLOG_ACTION` environment to a given string (typically the name of " -"the program) unless it is already set. Whenever the script runs a `git` " -"command that updates refs, a reflog entry is created using the value of this " -"string to leave the record of what command updated the ref." +"Represents a repository with path /repo accessed using the helper program " +"\"git-server-alias foo\". The hostname for the remote server passed in the " +"protocol stream will be \"foo\" (this allows multiple virtual Git servers to " +"share a link-level address)." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:50 +#: en/git-remote-ext.txt:106 #, no-wrap -msgid "git_editor" +msgid "\"ext::git-server-alias foo %G/repo% with% spaces %Vfoo\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:54 +#: en/git-remote-ext.txt:112 msgid "" -"runs an editor of user's choice (GIT_EDITOR, core.editor, VISUAL or EDITOR) " -"on a given file, but error out if no editor is specified and the terminal is " -"dumb." +"Represents a repository with path '/repo with spaces' accessed using the " +"helper program \"git-server-alias foo\". The hostname for the remote server " +"passed in the protocol stream will be \"foo\" (this allows multiple virtual " +"Git servers to share a link-level address)." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:55 +#: en/git-remote-ext.txt:113 #, no-wrap -msgid "is_bare_repository" +msgid "\"ext::git-ssl foo.example /bar\"" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:59 +#: en/git-remote-ext.txt:118 msgid "" -"outputs `true` or `false` to the standard output stream to indicate if the " -"repository is a bare repository (i.e. without an associated working tree)." +"Represents a repository accessed using the helper program \"git-ssl foo." +"example /bar\". The type of request can be determined by the helper using " +"environment variables (see above)." msgstr "" -#. type: Labeled list -#: en/git-sh-setup.txt:60 +#. type: Plain text +#: en/git-remote-ext.txt:122 en/git-remote-fd.txt:56 +#: en/git-remote-testgit.txt:27 +msgid "linkgit:gitremote-helpers[1]" +msgstr "" + +#. type: Title = +#: en/git-remote-fd.txt:2 #, no-wrap -msgid "cd_to_toplevel" +msgid "git-remote-fd(1)" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:62 -msgid "runs chdir to the toplevel of the working tree." +#: en/git-remote-fd.txt:7 +msgid "git-remote-fd - Reflect smart transport stream back to caller" msgstr "" -#. type: Labeled list -#: en/git-sh-setup.txt:63 -#, no-wrap -msgid "require_work_tree" +#. type: Plain text +#: en/git-remote-fd.txt:11 +msgid "\"fd::<infd>[,<outfd>][/<anything>]\" (as URL)" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:66 +#: en/git-remote-fd.txt:17 msgid "" -"checks if the current directory is within the working tree of the " -"repository, and otherwise dies." +"This helper uses specified file descriptors to connect to a remote Git " +"server. This is not meant for end users but for programs and scripts " +"calling git fetch, push or archive." msgstr "" -#. type: Labeled list -#: en/git-sh-setup.txt:67 -#, no-wrap -msgid "require_work_tree_exists" +#. type: Plain text +#: en/git-remote-fd.txt:23 +msgid "" +"If only <infd> is given, it is assumed to be a bidirectional socket " +"connected to remote Git server (git-upload-pack, git-receive-pack or git-" +"upload-archive). If both <infd> and <outfd> are given, they are assumed to " +"be pipes connected to a remote Git server (<infd> being the inbound pipe and " +"<outfd> being the outbound pipe." msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:72 +#: en/git-remote-fd.txt:26 msgid "" -"checks if the working tree associated with the repository exists, and " -"otherwise dies. Often done before calling cd_to_toplevel, which is " -"impossible to do if there is no working tree." +"It is assumed that any handshaking procedures have already been completed " +"(such as sending service request for git://) before this helper is started." +msgstr "" + +#. type: Plain text +#: en/git-remote-fd.txt:30 +msgid "" +"<anything> can be any string. It is ignored. It is meant for providing " +"information to user in the URL in case that URL is displayed in some context." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:73 +#: en/git-remote-fd.txt:38 #, no-wrap -msgid "require_clean_work_tree <action> [<hint>]" +msgid "`git fetch fd::17 master`" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:78 +#: en/git-remote-fd.txt:41 msgid "" -"checks that the working tree and index associated with the repository have " -"no uncommitted changes to tracked files. Otherwise it emits an error " -"message of the form `Cannot <action>: <reason>. <hint>`, and dies. Example:" +"Fetch master, using file descriptor #17 to communicate with git-upload-pack." msgstr "" -#. type: delimited block - -#: en/git-sh-setup.txt:81 +#. type: Labeled list +#: en/git-remote-fd.txt:42 #, no-wrap -msgid "require_clean_work_tree rebase \"Please commit or stash them.\"\n" +msgid "`git fetch fd::17/foo master`" msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:83 +#: en/git-remote-fd.txt:45 #, no-wrap -msgid "get_author_ident_from_commit" +msgid "`git push fd::7,8 master (as URL)`" msgstr "" #. type: Plain text -#: en/git-sh-setup.txt:86 +#: en/git-remote-fd.txt:49 msgid "" -"outputs code for use with eval to set the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL " -"and GIT_AUTHOR_DATE variables for a given commit." +"Push master, using file descriptor #7 to read data from git-receive-pack and " +"file descriptor #8 to write data to same service." msgstr "" #. type: Labeled list -#: en/git-sh-setup.txt:87 +#: en/git-remote-fd.txt:50 #, no-wrap -msgid "create_virtual_base" -msgstr "" - -#. type: Plain text -#: en/git-sh-setup.txt:92 -msgid "" -"modifies the first file so only lines in common with the second file " -"remain. If there is insufficient common material, then the first file is " -"left empty. The result is suitable as a virtual base input for a 3-way " -"merge." +msgid "`git push fd::7,8/bar master`" msgstr "" #. type: Title = -#: en/git-stage.txt:2 +#: en/git-remote-testgit.txt:2 #, no-wrap -msgid "git-stage(1)" +msgid "git-remote-testgit(1)" msgstr "" #. type: Plain text -#: en/git-stage.txt:7 -msgid "git-stage - Add file contents to the staging area" +#: en/git-remote-testgit.txt:7 +msgid "git-remote-testgit - Example remote-helper" msgstr "" #. type: Plain text -#: en/git-stage.txt:13 +#: en/git-remote-testgit.txt:13 #, no-wrap -msgid "'git stage' args...\n" +msgid "git clone testgit::<source-repo> [<destination>]\n" msgstr "" #. type: Plain text -#: en/git-stage.txt:20 +#: en/git-remote-testgit.txt:20 msgid "" -"This is a synonym for linkgit:git-add[1]. Please refer to the documentation " -"of that command." +"This command is a simple remote-helper, that is used both as a testcase for " +"the remote-helper functionality, and as an example to show remote-helper " +"authors one possible implementation." +msgstr "" + +#. type: Plain text +#: en/git-remote-testgit.txt:23 +msgid "" +"The best way to learn more is to read the comments and source code in 'git-" +"remote-testgit'." msgstr "" #. type: Title = -#: en/git-stash.txt:2 +#: en/git-remote.txt:2 #, no-wrap -msgid "git-stash(1)" +msgid "git-remote(1)" msgstr "" #. type: Plain text -#: en/git-stash.txt:7 -msgid "git-stash - Stash the changes in a dirty working directory away" +#: en/git-remote.txt:7 +msgid "git-remote - Manage set of tracked repositories" msgstr "" #. type: Plain text -#: en/git-stash.txt:24 +#: en/git-remote.txt:25 #, no-wrap msgid "" -"'git stash' list [<options>]\n" -"'git stash' show [<stash>]\n" -"'git stash' drop [-q|--quiet] [<stash>]\n" -"'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]\n" -"'git stash' branch <branchname> [<stash>]\n" -"'git stash' save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n" -"\t [-u|--include-untracked] [-a|--all] [<message>]\n" -"'git stash' [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n" -"\t [-u|--include-untracked] [-a|--all] [-m|--message <message>]]\n" -"\t [--] [<pathspec>...]]\n" -"'git stash' clear\n" -"'git stash' create [<message>]\n" -"'git stash' store [-m|--message <message>] [-q|--quiet] <commit>\n" +"'git remote' [-v | --verbose]\n" +"'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>\n" +"'git remote rename' <old> <new>\n" +"'git remote remove' <name>\n" +"'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)\n" +"'git remote set-branches' [--add] <name> <branch>...\n" +"'git remote get-url' [--push] [--all] <name>\n" +"'git remote set-url' [--push] <name> <newurl> [<oldurl>]\n" +"'git remote set-url --add' [--push] <name> <newurl>\n" +"'git remote set-url --delete' [--push] <name> <url>\n" +"'git remote' [-v | --verbose] 'show' [-n] <name>...\n" +"'git remote prune' [-n | --dry-run] <name>...\n" +"'git remote' [-v | --verbose] 'update' [-p | --prune] [(<group> | <remote>)...]\n" msgstr "" #. type: Plain text -#: en/git-stash.txt:32 -msgid "" -"Use `git stash` when you want to record the current state of the working " -"directory and the index, but want to go back to a clean working directory. " -"The command saves your local modifications away and reverts the working " -"directory to match the `HEAD` commit." +#: en/git-remote.txt:30 +msgid "Manage the set of repositories (\"remotes\") whose branches you track." msgstr "" #. type: Plain text -#: en/git-stash.txt:40 +#: en/git-remote.txt:39 msgid "" -"The modifications stashed away by this command can be listed with `git stash " -"list`, inspected with `git stash show`, and restored (potentially on top of " -"a different commit) with `git stash apply`. Calling `git stash` without any " -"arguments is equivalent to `git stash save`. A stash is by default listed " -"as \"WIP on 'branchname' ...\", but you can give a more descriptive message " -"on the command line when you create one." +"Be a little more verbose and show remote url after name. NOTE: This must be " +"placed between `remote` and `subcommand`." msgstr "" #. type: Plain text -#: en/git-stash.txt:47 +#: en/git-remote.txt:46 msgid "" -"The latest stash you created is stored in `refs/stash`; older stashes are " -"found in the reflog of this reference and can be named using the usual " -"reflog syntax (e.g. `stash@{0}` is the most recently created stash, " -"`stash@{1}` is the one before it, `stash@{2.hours.ago}` is also " -"possible). Stashes may also be referenced by specifying just the stash index " -"(e.g. the integer `n` is equivalent to `stash@{n}`)." +"With no arguments, shows a list of existing remotes. Several subcommands " +"are available to perform operations on the remotes." msgstr "" #. type: Labeled list -#: en/git-stash.txt:51 +#: en/git-remote.txt:47 #, no-wrap +msgid "'add'" +msgstr "" + +#. type: Plain text +#: en/git-remote.txt:52 msgid "" -"save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] " -"[-q|--quiet] [<message>]" +"Adds a remote named <name> for the repository at <url>. The command `git " +"fetch <name>` can then be used to create and update remote-tracking branches " +"<name>/<branch>." msgstr "" -#. type: Labeled list -#: en/git-stash.txt:52 -#, no-wrap +#. type: Plain text +#: en/git-remote.txt:55 msgid "" -"push [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] " -"[-q|--quiet] [-m|--message <message>] [--] [<pathspec>...]" +"With `-f` option, `git fetch <name>` is run immediately after the remote " +"information is set up." msgstr "" #. type: Plain text -#: en/git-stash.txt:58 +#: en/git-remote.txt:58 msgid "" -"Save your local modifications to a new 'stash' and roll them back to HEAD " -"(in the working tree and in the index). The <message> part is optional and " -"gives the description along with the stashed state." +"With `--tags` option, `git fetch <name>` imports every tag from the remote " +"repository." msgstr "" #. type: Plain text -#: en/git-stash.txt:64 +#: en/git-remote.txt:61 msgid "" -"For quickly making a snapshot, you can omit \"push\". In this mode, " -"non-option arguments are not allowed to prevent a misspelled subcommand from " -"making an unwanted stash. The two exceptions to this are `stash -p` which " -"acts as alias for `stash push -p` and pathspecs, which are allowed after a " -"double hyphen `--` for disambiguation." +"With `--no-tags` option, `git fetch <name>` does not import tags from the " +"remote repository." msgstr "" #. type: Plain text -#: en/git-stash.txt:70 +#: en/git-remote.txt:64 msgid "" -"When pathspec is given to 'git stash push', the new stash records the " -"modified states only for the files that match the pathspec. The index " -"entries and working tree files are then rolled back to the state in HEAD " -"only for these files, too, leaving files that do not match the pathspec " -"intact." +"By default, only tags on fetched branches are imported (see linkgit:git-" +"fetch[1])." msgstr "" #. type: Plain text -#: en/git-stash.txt:73 +#: en/git-remote.txt:70 msgid "" -"If the `--keep-index` option is used, all changes already added to the index " -"are left intact." +"With `-t <branch>` option, instead of the default glob refspec for the " +"remote to track all branches under the `refs/remotes/<name>/` namespace, a " +"refspec to track only `<branch>` is created. You can give more than one `-t " +"<branch>` to track multiple branches without grabbing all branches." msgstr "" #. type: Plain text -#: en/git-stash.txt:78 +#: en/git-remote.txt:73 msgid "" -"If the `--include-untracked` option is used, all untracked files are also " -"stashed and then cleaned up with `git clean`, leaving the working directory " -"in a very clean state. If the `--all` option is used instead then the " -"ignored files are stashed and cleaned in addition to the untracked files." +"With `-m <master>` option, a symbolic-ref `refs/remotes/<name>/HEAD` is set " +"up to point at remote's `<master>` branch. See also the set-head command." msgstr "" #. type: Plain text -#: en/git-stash.txt:86 +#: en/git-remote.txt:79 msgid "" -"With `--patch`, you can interactively select hunks from the diff between " -"HEAD and the working tree to be stashed. The stash entry is constructed " -"such that its index state is the same as the index state of your repository, " -"and its worktree contains only the changes you selected interactively. The " -"selected changes are then rolled back from your worktree. See the " -"``Interactive Mode'' section of linkgit:git-add[1] to learn how to operate " -"the `--patch` mode." +"When a fetch mirror is created with `--mirror=fetch`, the refs will not be " +"stored in the 'refs/remotes/' namespace, but rather everything in 'refs/' on " +"the remote will be directly mirrored into 'refs/' in the local repository. " +"This option only makes sense in bare repositories, because a fetch would " +"overwrite any local commits." msgstr "" #. type: Plain text -#: en/git-stash.txt:89 +#: en/git-remote.txt:82 msgid "" -"The `--patch` option implies `--keep-index`. You can use `--no-keep-index` " -"to override this." +"When a push mirror is created with `--mirror=push`, then `git push` will " +"always behave as if `--mirror` was passed." msgstr "" #. type: Labeled list -#: en/git-stash.txt:90 +#: en/git-remote.txt:83 #, no-wrap -msgid "list [<options>]" +msgid "'rename'" msgstr "" #. type: Plain text -#: en/git-stash.txt:97 +#: en/git-remote.txt:87 msgid "" -"List the stashes that you currently have. Each 'stash' is listed with its " -"name (e.g. `stash@{0}` is the latest stash, `stash@{1}` is the one before, " -"etc.), the name of the branch that was current when the stash was made, and " -"a short description of the commit the stash was based on." +"Rename the remote named <old> to <new>. All remote-tracking branches and " +"configuration settings for the remote are updated." msgstr "" -#. type: delimited block - -#: en/git-stash.txt:101 -#, no-wrap +#. type: Plain text +#: en/git-remote.txt:91 msgid "" -"stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation\n" -"stash@{1}: On master: 9cc0589... Add git-stash\n" +"In case <old> and <new> are the same, and <old> is a file under `$GIT_DIR/" +"remotes` or `$GIT_DIR/branches`, the remote is converted to the " +"configuration file format." msgstr "" -#. type: Plain text -#: en/git-stash.txt:105 -msgid "" -"The command takes options applicable to the 'git log' command to control " -"what is shown and how. See linkgit:git-log[1]." +#. type: Labeled list +#: en/git-remote.txt:92 +#, no-wrap +msgid "'remove'" msgstr "" #. type: Labeled list -#: en/git-stash.txt:106 +#: en/git-remote.txt:93 #, no-wrap -msgid "show [<stash>]" +msgid "'rm'" msgstr "" #. type: Plain text -#: en/git-stash.txt:115 +#: en/git-remote.txt:97 msgid "" -"Show the changes recorded in the stash as a diff between the stashed state " -"and its original parent. When no `<stash>` is given, shows the latest " -"one. By default, the command shows the diffstat, but it will accept any " -"format known to 'git diff' (e.g., `git stash show -p stash@{1}` to view the " -"second most recent stash in patch form). You can use stash.showStat and/or " -"stash.showPatch config variables to change the default behavior." +"Remove the remote named <name>. All remote-tracking branches and " +"configuration settings for the remote are removed." msgstr "" #. type: Labeled list -#: en/git-stash.txt:116 +#: en/git-remote.txt:98 #, no-wrap -msgid "pop [--index] [-q|--quiet] [<stash>]" +msgid "'set-head'" msgstr "" #. type: Plain text -#: en/git-stash.txt:122 +#: en/git-remote.txt:107 msgid "" -"Remove a single stashed state from the stash list and apply it on top of the " -"current working tree state, i.e., do the inverse operation of `git stash " -"save`. The working directory must match the index." +"Sets or deletes the default branch (i.e. the target of the symbolic-ref " +"`refs/remotes/<name>/HEAD`) for the named remote. Having a default branch " +"for a remote is not required, but allows the name of the remote to be " +"specified in lieu of a specific branch. For example, if the default branch " +"for `origin` is set to `master`, then `origin` may be specified wherever you " +"would normally specify `origin/master`." msgstr "" #. type: Plain text -#: en/git-stash.txt:126 +#: en/git-remote.txt:109 msgid "" -"Applying the state can fail with conflicts; in this case, it is not removed " -"from the stash list. You need to resolve the conflicts by hand and call `git " -"stash drop` manually afterwards." +"With `-d` or `--delete`, the symbolic ref `refs/remotes/<name>/HEAD` is " +"deleted." msgstr "" #. type: Plain text -#: en/git-stash.txt:131 +#: en/git-remote.txt:116 msgid "" -"If the `--index` option is used, then tries to reinstate not only the " -"working tree's changes, but also the index's ones. However, this can fail, " -"when you have conflicts (which are stored in the index, where you therefore " -"can no longer apply the changes as they were originally)." +"With `-a` or `--auto`, the remote is queried to determine its `HEAD`, then " +"the symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., " +"if the remote `HEAD` is pointed at `next`, \"`git remote set-head origin -a`" +"\" will set the symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/" +"origin/next`. This will only work if `refs/remotes/origin/next` already " +"exists; if not it must be fetched first." msgstr "" #. type: Plain text -#: en/git-stash.txt:134 +#: en/git-remote.txt:121 msgid "" -"When no `<stash>` is given, `stash@{0}` is assumed, otherwise `<stash>` must " -"be a reference of the form `stash@{<revision>}`." +"Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` " +"explicitly. e.g., \"git remote set-head origin master\" will set the " +"symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/origin/master`. " +"This will only work if `refs/remotes/origin/master` already exists; if not " +"it must be fetched first." msgstr "" #. type: Labeled list -#: en/git-stash.txt:135 +#: en/git-remote.txt:123 #, no-wrap -msgid "apply [--index] [-q|--quiet] [<stash>]" +msgid "'set-branches'" msgstr "" #. type: Plain text -#: en/git-stash.txt:140 +#: en/git-remote.txt:128 msgid "" -"Like `pop`, but do not remove the state from the stash list. Unlike `pop`, " -"`<stash>` may be any commit that looks like a commit created by `stash save` " -"or `stash create`." -msgstr "" - -#. type: Labeled list -#: en/git-stash.txt:141 -#, no-wrap -msgid "branch <branchname> [<stash>]" +"Changes the list of branches tracked by the named remote. This can be used " +"to track a subset of the available remote branches after the initial setup " +"for a remote." msgstr "" #. type: Plain text -#: en/git-stash.txt:149 +#: en/git-remote.txt:131 msgid "" -"Creates and checks out a new branch named `<branchname>` starting from the " -"commit at which the `<stash>` was originally created, applies the changes " -"recorded in `<stash>` to the new working tree and index. If that succeeds, " -"and `<stash>` is a reference of the form `stash@{<revision>}`, it then drops " -"the `<stash>`. When no `<stash>` is given, applies the latest one." +"The named branches will be interpreted as if specified with the `-t` option " +"on the 'git remote add' command line." msgstr "" #. type: Plain text -#: en/git-stash.txt:155 +#: en/git-remote.txt:134 msgid "" -"This is useful if the branch on which you ran `git stash save` has changed " -"enough that `git stash apply` fails due to conflicts. Since the stash is " -"applied on top of the commit that was HEAD at the time `git stash` was run, " -"it restores the originally stashed state with no conflicts." +"With `--add`, instead of replacing the list of currently tracked branches, " +"adds to that list." msgstr "" #. type: Labeled list -#: en/git-stash.txt:156 +#: en/git-remote.txt:135 #, no-wrap -msgid "clear" +msgid "'get-url'" msgstr "" #. type: Plain text -#: en/git-stash.txt:160 +#: en/git-remote.txt:139 msgid "" -"Remove all the stashed states. Note that those states will then be subject " -"to pruning, and may be impossible to recover (see 'Examples' below for a " -"possible strategy)." +"Retrieves the URLs for a remote. Configurations for `insteadOf` and " +"`pushInsteadOf` are expanded here. By default, only the first URL is listed." msgstr "" -#. type: Labeled list -#: en/git-stash.txt:161 -#, no-wrap -msgid "drop [-q|--quiet] [<stash>]" +#. type: Plain text +#: en/git-remote.txt:141 +msgid "With `--push`, push URLs are queried rather than fetch URLs." msgstr "" #. type: Plain text -#: en/git-stash.txt:167 -msgid "" -"Remove a single stashed state from the stash list. When no `<stash>` is " -"given, it removes the latest one. i.e. `stash@{0}`, otherwise `<stash>` must " -"be a valid stash log reference of the form `stash@{<revision>}`." +#: en/git-remote.txt:143 +msgid "With `--all`, all URLs for the remote will be listed." msgstr "" #. type: Labeled list -#: en/git-stash.txt:168 en/git-update-ref.txt:100 +#: en/git-remote.txt:144 #, no-wrap -msgid "create" +msgid "'set-url'" msgstr "" #. type: Plain text -#: en/git-stash.txt:174 +#: en/git-remote.txt:149 msgid "" -"Create a stash (which is a regular commit object) and return its object " -"name, without storing it anywhere in the ref namespace. This is intended to " -"be useful for scripts. It is probably not the command you want to use; see " -"\"save\" above." -msgstr "" - -#. type: Labeled list -#: en/git-stash.txt:175 -#, no-wrap -msgid "store" +"Changes URLs for the remote. Sets first URL for remote <name> that matches " +"regex <oldurl> (first URL if no <oldurl> is given) to <newurl>. If <oldurl> " +"doesn't match any URL, an error occurs and nothing is changed." msgstr "" #. type: Plain text -#: en/git-stash.txt:181 -msgid "" -"Store a given stash created via 'git stash create' (which is a dangling " -"merge commit) in the stash ref, updating the stash reflog. This is intended " -"to be useful for scripts. It is probably not the command you want to use; " -"see \"save\" above." +#: en/git-remote.txt:151 +msgid "With `--push`, push URLs are manipulated instead of fetch URLs." msgstr "" #. type: Plain text -#: en/git-stash.txt:190 -msgid "" -"A stash is represented as a commit whose tree records the state of the " -"working directory, and its first parent is the commit at `HEAD` when the " -"stash was created. The tree of the second parent records the state of the " -"index when the stash is made, and it is made a child of the `HEAD` commit. " -"The ancestry graph looks like this:" +#: en/git-remote.txt:153 +msgid "With `--add`, instead of changing existing URLs, new URL is added." msgstr "" #. type: Plain text -#: en/git-stash.txt:194 -#, no-wrap +#: en/git-remote.txt:157 msgid "" -" .----W\n" -" / /\n" -" -----H----I\n" +"With `--delete`, instead of changing existing URLs, all URLs matching regex " +"<url> are deleted for remote <name>. Trying to delete all non-push URLs is " +"an error." msgstr "" #. type: Plain text -#: en/git-stash.txt:198 +#: en/git-remote.txt:164 msgid "" -"where `H` is the `HEAD` commit, `I` is a commit that records the state of " -"the index, and `W` is a commit that records the state of the working tree." +"Note that the push URL and the fetch URL, even though they can be set " +"differently, must still refer to the same place. What you pushed to the " +"push URL should be what you would see if you immediately fetched from the " +"fetch URL. If you are trying to fetch from one place (e.g. your upstream) " +"and push to another (e.g. your publishing repository), use two separate " +"remotes." msgstr "" #. type: Labeled list -#: en/git-stash.txt:203 +#: en/git-remote.txt:166 #, no-wrap -msgid "Pulling into a dirty tree" +msgid "'show'" msgstr "" #. type: Plain text -#: en/git-stash.txt:209 -msgid "" -"When you are in the middle of something, you learn that there are upstream " -"changes that are possibly relevant to what you are doing. When your local " -"changes do not conflict with the changes in the upstream, a simple `git " -"pull` will let you move forward." +#: en/git-remote.txt:169 +msgid "Gives some information about the remote <name>." msgstr "" #. type: Plain text -#: en/git-stash.txt:214 +#: en/git-remote.txt:172 msgid "" -"However, there are cases in which your local changes do conflict with the " -"upstream changes, and `git pull` refuses to overwrite your changes. In such " -"a case, you can stash your changes away, perform a pull, and then unstash, " -"like this:" +"With `-n` option, the remote heads are not queried first with `git ls-remote " +"<name>`; cached information is used instead." msgstr "" -#. type: delimited block - -#: en/git-stash.txt:222 +#. type: Labeled list +#: en/git-remote.txt:173 #, no-wrap -msgid "" -"$ git pull\n" -" ...\n" -"file foobar not up to date, cannot merge.\n" -"$ git stash\n" -"$ git pull\n" -"$ git stash pop\n" +msgid "'prune'" msgstr "" #. type: Plain text -#: en/git-stash.txt:230 +#: en/git-remote.txt:180 msgid "" -"When you are in the middle of something, your boss comes in and demands that " -"you fix something immediately. Traditionally, you would make a commit to a " -"temporary branch to store your changes away, and return to your original " -"branch to make the emergency fix, like this:" +"Deletes stale references associated with <name>. By default, stale remote-" +"tracking branches under <name> are deleted, but depending on global " +"configuration and the configuration of the remote we might even prune local " +"tags that haven't been pushed there. Equivalent to `git fetch --prune " +"<name>`, except that no new references will be fetched." msgstr "" -#. type: delimited block - -#: en/git-stash.txt:241 -#, no-wrap +#. type: Plain text +#: en/git-remote.txt:183 msgid "" -"# ... hack hack hack ...\n" -"$ git checkout -b my_wip\n" -"$ git commit -a -m \"WIP\"\n" -"$ git checkout master\n" -"$ edit emergency fix\n" -"$ git commit -a -m \"Fix in a hurry\"\n" -"$ git checkout my_wip\n" -"$ git reset --soft HEAD^\n" -"# ... continue hacking ...\n" +"See the PRUNING section of linkgit:git-fetch[1] for what it'll prune " +"depending on various configuration." msgstr "" #. type: Plain text -#: en/git-stash.txt:244 -msgid "You can use 'git stash' to simplify the above, like this:" -msgstr "" - -#. type: delimited block - -#: en/git-stash.txt:252 -#, no-wrap +#: en/git-remote.txt:186 msgid "" -"# ... hack hack hack ...\n" -"$ git stash\n" -"$ edit emergency fix\n" -"$ git commit -a -m \"Fix in a hurry\"\n" -"$ git stash pop\n" -"# ... continue hacking ...\n" +"With `--dry-run` option, report what branches will be pruned, but do not " +"actually prune them." msgstr "" #. type: Labeled list -#: en/git-stash.txt:254 +#: en/git-remote.txt:187 #, no-wrap -msgid "Testing partial commits" +msgid "'update'" msgstr "" #. type: Plain text -#: en/git-stash.txt:259 +#: en/git-remote.txt:195 msgid "" -"You can use `git stash save --keep-index` when you want to make two or more " -"commits out of the changes in the work tree, and you want to test each " -"change before committing:" +"Fetch updates for remotes or remote groups in the repository as defined by " +"remotes.<group>. If neither group nor remote is specified on the command " +"line, the configuration parameter remotes.default will be used; if remotes." +"default is not defined, all remotes which do not have the configuration " +"parameter remote.<name>.skipDefaultUpdate set to true will be updated. (See " +"linkgit:git-config[1])." msgstr "" -#. type: delimited block - -#: en/git-stash.txt:270 -#, no-wrap +#. type: Plain text +#: en/git-remote.txt:197 msgid "" -"# ... hack hack hack ...\n" -"$ git add --patch foo # add just first part to the index\n" -"$ git stash save --keep-index # save all other changes to the stash\n" -"$ edit/build/test first part\n" -"$ git commit -m 'First part' # commit fully tested change\n" -"$ git stash pop # prepare to work on all other changes\n" -"# ... repeat above five steps until one commit remains ...\n" -"$ edit/build/test remaining parts\n" -"$ git commit foo -m 'Remaining parts'\n" +"With `--prune` option, run pruning against all the remotes that are updated." msgstr "" -#. type: Labeled list -#: en/git-stash.txt:272 -#, no-wrap -msgid "Recovering stashes that were cleared/dropped erroneously" +#. type: Plain text +#: en/git-remote.txt:205 +msgid "" +"The remote configuration is achieved using the `remote.origin.url` and " +"`remote.origin.fetch` configuration variables. (See linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/git-stash.txt:278 -msgid "" -"If you mistakenly drop or clear stashes, they cannot be recovered through " -"the normal safety mechanisms. However, you can try the following " -"incantation to get a list of stashes that are still in your repository, but " -"not reachable any more:" +#: en/git-remote.txt:210 +msgid "Add a new remote, fetch, and check out a branch from it" msgstr "" #. type: delimited block - -#: en/git-stash.txt:283 +#: en/git-remote.txt:235 #, no-wrap msgid "" -"git fsck --unreachable |\n" -"grep commit | cut -d\\ -f3 |\n" -"xargs git log --merges --no-walk --grep=WIP\n" +"$ git remote\n" +"origin\n" +"$ git branch -r\n" +" origin/HEAD -> origin/master\n" +" origin/master\n" +"$ git remote add staging git://git.kernel.org/.../gregkh/staging.git\n" +"$ git remote\n" +"origin\n" +"staging\n" +"$ git fetch staging\n" +"...\n" +"From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n" +" * [new branch] master -> staging/master\n" +" * [new branch] staging-linus -> staging/staging-linus\n" +" * [new branch] staging-next -> staging/staging-next\n" +"$ git branch -r\n" +" origin/HEAD -> origin/master\n" +" origin/master\n" +" staging/master\n" +" staging/staging-linus\n" +" staging/staging-next\n" +"$ git checkout -b staging staging/master\n" +"...\n" msgstr "" #. type: Plain text -#: en/git-stash.txt:292 -msgid "" -"linkgit:git-checkout[1], linkgit:git-commit[1], linkgit:git-reflog[1], " -"linkgit:git-reset[1]" +#: en/git-remote.txt:238 +msgid "Imitate 'git clone' but track only selected branches" msgstr "" -#. type: Title = -#: en/git-status.txt:2 +#. type: delimited block - +#: en/git-remote.txt:245 #, no-wrap -msgid "git-status(1)" +msgid "" +"$ mkdir project.git\n" +"$ cd project.git\n" +"$ git init\n" +"$ git remote add -f -t master -m master origin git://example.com/git.git/\n" +"$ git merge origin\n" msgstr "" #. type: Plain text -#: en/git-status.txt:7 -msgid "git-status - Show the working tree status" +#: en/git-remote.txt:253 +msgid "linkgit:git-fetch[1] linkgit:git-branch[1] linkgit:git-config[1]" msgstr "" -#. type: Plain text -#: en/git-status.txt:13 +#. type: Title = +#: en/git-repack.txt:2 #, no-wrap -msgid "'git status' [<options>...] [--] [<pathspec>...]\n" +msgid "git-repack(1)" msgstr "" #. type: Plain text -#: en/git-status.txt:23 -msgid "" -"Displays paths that have differences between the index file and the current " -"HEAD commit, paths that have differences between the working tree and the " -"index file, and paths in the working tree that are not tracked by Git (and " -"are not ignored by linkgit:gitignore[5]). The first are what you _would_ " -"commit by running `git commit`; the second and third are what you _could_ " -"commit by running 'git add' before running `git commit`." +#: en/git-repack.txt:7 +msgid "git-repack - Pack unpacked objects in a repository" msgstr "" #. type: Plain text -#: en/git-status.txt:30 -msgid "Give the output in the short-format." -msgstr "" - -#. type: Labeled list -#: en/git-status.txt:35 +#: en/git-repack.txt:13 #, no-wrap -msgid "--porcelain[=<version>]" +msgid "'git repack' [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [--window=<n>] [--depth=<n>] [--threads=<n>] [--keep-pack=<pack-name>]\n" msgstr "" #. type: Plain text -#: en/git-status.txt:40 +#: en/git-repack.txt:20 msgid "" -"Give the output in an easy-to-parse format for scripts. This is similar to " -"the short output, but will remain stable across Git versions and regardless " -"of user configuration. See below for details." +"This command is used to combine all objects that do not currently reside in " +"a \"pack\", into a pack. It can also be used to re-organize existing packs " +"into a single, more efficient pack." msgstr "" #. type: Plain text -#: en/git-status.txt:43 +#: en/git-repack.txt:39 msgid "" -"The version parameter is used to specify the format version. This is " -"optional and defaults to the original version 'v1' format." +"Instead of incrementally packing the unpacked objects, pack everything " +"referenced into a single pack. Especially useful when packing a repository " +"that is used for private development. Use with `-d`. This will clean up the " +"objects that `git prune` leaves behind, but `git fsck --full --dangling` " +"shows as dangling." msgstr "" #. type: Plain text -#: en/git-status.txt:46 -msgid "Give the output in the long-format. This is the default." +#: en/git-repack.txt:43 +msgid "" +"Note that users fetching over dumb protocols will have to fetch the whole " +"new pack in order to get any contained object, no matter how many other " +"objects in that pack they already have locally." msgstr "" #. type: Plain text -#: en/git-status.txt:54 +#: en/git-repack.txt:48 msgid "" -"In addition to the names of files that have been changed, also show the " -"textual changes that are staged to be committed (i.e., like the output of " -"`git diff --cached`). If `-v` is specified twice, then also show the changes " -"in the working tree that have not yet been staged (i.e., like the output of " -"`git diff`)." +"Promisor packfiles are repacked separately: if there are packfiles that have " +"an associated \".promisor\" file, these packfiles will be repacked into " +"another separate pack, and an empty \".promisor\" file corresponding to the " +"new separate pack will be written." msgstr "" #. type: Plain text -#: en/git-status.txt:62 +#: en/git-repack.txt:59 msgid "" -"The mode parameter is used to specify the handling of untracked files. It " -"is optional: it defaults to 'all', and if specified, it must be stuck to the " -"option (e.g. `-uno`, but not `-u no`)." +"Same as `-a`, unless `-d` is used. Then any unreachable objects in a " +"previous pack become loose, unpacked objects, instead of being left in the " +"old pack. Unreachable objects are never intentionally added to a pack, even " +"when repacking. This option prevents unreachable objects from being " +"immediately deleted by way of being left in the old pack and then removed. " +"Instead, the loose unreachable objects will be pruned according to normal " +"expiry rules with the next 'git gc' invocation. See linkgit:git-gc[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:66 -#, no-wrap -msgid "'no' - Show no untracked files.\n" +#: en/git-repack.txt:65 +msgid "" +"After packing, if the newly created packs make some existing packs " +"redundant, remove the redundant packs. Also run 'git prune-packed' to " +"remove redundant loose object files." msgstr "" #. type: Plain text -#: en/git-status.txt:67 -#, no-wrap -msgid "'normal' - Shows untracked files and directories.\n" +#: en/git-repack.txt:69 +msgid "" +"Pass the `--local` option to 'git pack-objects'. See linkgit:git-pack-" +"objects[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:78 +#: en/git-repack.txt:73 msgid "" -"When `-u` option is not used, untracked files and directories are shown " -"(i.e. the same as specifying `normal`), to help you avoid forgetting to add " -"newly created files. Because it takes extra work to find untracked files in " -"the filesystem, this mode may take some time in a large working tree. " -"Consider enabling untracked cache and split index if supported (see `git " -"update-index --untracked-cache` and `git update-index --split-index`), " -"Otherwise you can use `no` to have `git status` return more quickly without " -"showing untracked files." +"Pass the `--no-reuse-delta` option to `git-pack-objects`, see linkgit:git-" +"pack-objects[1]." msgstr "" -#. type: Labeled list -#: en/git-status.txt:82 en/diff-options.txt:581 -#, no-wrap -msgid "--ignore-submodules[=<when>]" +#. type: Plain text +#: en/git-repack.txt:77 +msgid "" +"Pass the `--no-reuse-object` option to `git-pack-objects`, see linkgit:git-" +"pack-objects[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:96 +#: en/git-repack.txt:81 msgid "" -"Ignore changes to submodules when looking for changes. <when> can be either " -"\"none\", \"untracked\", \"dirty\" or \"all\", which is the default. Using " -"\"none\" will consider the submodule modified when it either contains " -"untracked or modified files or its HEAD differs from the commit recorded in " -"the superproject and can be used to override any settings of the 'ignore' " -"option in linkgit:git-config[1] or linkgit:gitmodules[5]. When \"untracked\" " -"is used submodules are not considered dirty when they only contain untracked " -"content (but they are still scanned for modified content). Using \"dirty\" " -"ignores all changes to the work tree of submodules, only changes to the " -"commits stored in the superproject are shown (this was the behavior before " -"1.7.0). Using \"all\" hides all changes to submodules (and suppresses the " -"output of submodule summaries when the config option " -"`status.submoduleSummary` is set)." +"Pass the `-q` option to 'git pack-objects'. See linkgit:git-pack-objects[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:99 -msgid "Show ignored files as well." +#: en/git-repack.txt:88 +msgid "" +"Do not update the server information with 'git update-server-info'. This " +"option skips updating local catalog files needed to publish this repository " +"(or a direct copy of it) over HTTP or FTP. See linkgit:git-update-server-" +"info[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:103 +#: en/git-repack.txt:98 msgid "" -"Terminate entries with NUL, instead of LF. This implies the " -"`--porcelain=v1` output format if no other format is given." +"These two options affect how the objects contained in the pack are stored " +"using delta compression. The objects are first internally sorted by type, " +"size and optionally names and compared against the other objects within `--" +"window` to see if using delta compression saves space. `--depth` limits the " +"maximum delta depth; making it too deep affects the performance on the " +"unpacker side, because delta data needs to be applied that many times to get " +"to the necessary object." msgstr "" #. type: Plain text -#: en/git-status.txt:110 -msgid "" -"Display untracked files in columns. See configuration variable column.status " -"for option syntax.`--column` and `--no-column` without options are " -"equivalent to 'always' and 'never' respectively." +#: en/git-repack.txt:104 +msgid "This option is passed through to `git pack-objects`." msgstr "" #. type: Plain text -#: en/git-status.txt:119 +#: en/git-repack.txt:117 msgid "" -"The output from this command is designed to be used as a commit template " -"comment. The default, long format, is designed to be human readable, " -"verbose and descriptive. Its contents and format are subject to change at " -"any time." +"This option provides an additional limit on top of `--window`; the window " +"size will dynamically scale down so as to not take up more than '<n>' bytes " +"in memory. This is useful in repositories with a mix of large and small " +"objects to not run out of memory with a large window, but still be able to " +"take advantage of the large window for the smaller objects. The size can be " +"suffixed with \"k\", \"m\", or \"g\". `--window-memory=0` makes memory " +"usage unlimited. The default is taken from the `pack.windowMemory` " +"configuration variable. Note that the actual memory usage will be the limit " +"multiplied by the number of threads used by linkgit:git-pack-objects[1]." msgstr "" #. type: Plain text -#: en/git-status.txt:124 +#: en/git-repack.txt:125 msgid "" -"The paths mentioned in the output, unlike many other Git commands, are made " -"relative to the current directory if you are working in a subdirectory (this " -"is on purpose, to help cutting and pasting). See the status.relativePaths " -"config option below." +"Maximum size of each output pack file. The size can be suffixed with \"k\", " +"\"m\", or \"g\". The minimum size allowed is limited to 1 MiB. If " +"specified, multiple packfiles may be created, which also prevents the " +"creation of a bitmap index. The default is unlimited, unless the config " +"variable `pack.packSizeLimit` is set." msgstr "" -#. type: Title ~ -#: en/git-status.txt:126 +#. type: Labeled list +#: en/git-repack.txt:127 #, no-wrap -msgid "Short Format" +msgid "--write-bitmap-index" msgstr "" #. type: Plain text -#: en/git-status.txt:129 -msgid "In the short-format, the status of each path is shown as" +#: en/git-repack.txt:133 +msgid "" +"Write a reachability bitmap index as part of the repack. This only makes " +"sense when used with `-a` or `-A`, as the bitmaps must be able to refer to " +"all reachable objects. This option overrides the setting of `repack." +"writeBitmaps`. This option has no effect if multiple packfiles are created." msgstr "" -#. type: Plain text -#: en/git-status.txt:131 +#. type: Labeled list +#: en/git-repack.txt:134 #, no-wrap -msgid "\tXY PATH1 -> PATH2\n" +msgid "--pack-kept-objects" msgstr "" #. type: Plain text -#: en/git-status.txt:136 +#: en/git-repack.txt:142 msgid "" -"where `PATH1` is the path in the `HEAD`, and the \" `-> PATH2`\" part is " -"shown only when `PATH1` corresponds to a different path in the " -"index/worktree (i.e. the file is renamed). The `XY` is a two-letter status " -"code." +"Include objects in `.keep` files when repacking. Note that we still do not " +"delete `.keep` packs after `pack-objects` finishes. This means that we may " +"duplicate objects, but this makes the option safe to use when there are " +"concurrent pushes or fetches. This option is generally only useful if you " +"are writing bitmaps with `-b` or `repack.writeBitmaps`, as it ensures that " +"the bitmapped packfile has the necessary objects." msgstr "" #. type: Plain text -#: en/git-status.txt:142 +#: en/git-repack.txt:149 msgid "" -"The fields (including the `->`) are separated from each other by a single " -"space. If a filename contains whitespace or other nonprintable characters, " -"that field will be quoted in the manner of a C string literal: surrounded by " -"ASCII double quote (34) characters, and with interior special characters " -"backslash-escaped." +"Exclude the given pack from repacking. This is the equivalent of having `." +"keep` file on the pack. `<pack-name>` is the the pack file name without " +"leading directory (e.g. `pack-123.pack`). The option could be specified " +"multiple times to keep multiple packs." +msgstr "" + +#. type: Labeled list +#: en/git-repack.txt:150 +#, no-wrap +msgid "--unpack-unreachable=<when>" msgstr "" #. type: Plain text -#: en/git-status.txt:148 +#: en/git-repack.txt:155 msgid "" -"For paths with merge conflicts, `X` and `Y` show the modification states of " -"each side of the merge. For paths that do not have merge conflicts, `X` " -"shows the status of the index, and `Y` shows the status of the work tree. " -"For untracked paths, `XY` are `??`. Other status codes can be interpreted " -"as follows:" +"When loosening unreachable objects, do not bother loosening any objects " +"older than `<when>`. This can be used to optimize out the write of any " +"objects that would be immediately pruned by a follow-up `git prune`." msgstr "" #. type: Plain text -#: en/git-status.txt:150 -msgid "' ' = unmodified" +#: en/git-repack.txt:162 +msgid "" +"When used with `-ad`, any unreachable objects from existing packs will be " +"appended to the end of the packfile instead of being removed. In addition, " +"any unreachable loose objects will be packed (and their loose counterparts " +"removed)." msgstr "" #. type: Plain text -#: en/git-status.txt:151 -msgid "'M' = modified" +#: en/git-repack.txt:167 +msgid "" +"Pass the `--delta-islands` option to `git-pack-objects`, see linkgit:git-" +"pack-objects[1]." msgstr "" -#. type: Plain text -#: en/git-status.txt:152 -msgid "'A' = added" +#. type: Title - +#: en/git-repack.txt:169 +#, no-wrap +msgid "Configuration" msgstr "" #. type: Plain text -#: en/git-status.txt:153 -msgid "'D' = deleted" +#: en/git-repack.txt:180 +msgid "" +"By default, the command passes `--delta-base-offset` option to 'git pack-" +"objects'; this typically results in slightly smaller packs, but the " +"generated packs are incompatible with versions of Git older than version " +"1.4.4. If you need to share your repository with such ancient Git versions, " +"either directly or via the dumb http protocol, then you need to set the " +"configuration variable `repack.UseDeltaBaseOffset` to \"false\" and repack. " +"Access from old Git versions over the native protocol is unaffected by this " +"option as the conversion is performed on the fly as needed in that case." msgstr "" #. type: Plain text -#: en/git-status.txt:154 -msgid "'R' = renamed" +#: en/git-repack.txt:185 +msgid "linkgit:git-pack-objects[1] linkgit:git-prune-packed[1]" msgstr "" -#. type: Plain text -#: en/git-status.txt:155 -msgid "'C' = copied" +#. type: Title = +#: en/git-replace.txt:2 +#, no-wrap +msgid "git-replace(1)" msgstr "" #. type: Plain text -#: en/git-status.txt:156 -msgid "'U' = updated but unmerged" +#: en/git-replace.txt:7 +msgid "git-replace - Create, list, delete refs to replace objects" msgstr "" #. type: Plain text -#: en/git-status.txt:159 +#: en/git-replace.txt:17 +#, no-wrap msgid "" -"Ignored files are not listed, unless `--ignored` option is in effect, in " -"which case `XY` are `!!`." +"'git replace' [-f] <object> <replacement>\n" +"'git replace' [-f] --edit <object>\n" +"'git replace' [-f] --graft <commit> [<parent>...]\n" +"'git replace' [-f] --convert-graft-file\n" +"'git replace' -d <object>...\n" +"'git replace' [--format=<format>] [-l [<pattern>]]\n" msgstr "" #. type: Plain text -#: en/git-status.txt:183 -#, no-wrap -msgid "" -" X Y Meaning\n" -" -------------------------------------------------\n" -" [MD] not updated\n" -" M [ MD] updated in index\n" -" A [ MD] added to index\n" -" D [ M] deleted from index\n" -" R [ MD] renamed in index\n" -" C [ MD] copied in index\n" -" [MARC] index and work tree matches\n" -" [ MARC] M work tree changed since index\n" -" [ MARC] D deleted in work tree\n" -" -------------------------------------------------\n" -" D D unmerged, both deleted\n" -" A U unmerged, added by us\n" -" U D unmerged, deleted by them\n" -" U A unmerged, added by them\n" -" D U unmerged, deleted by us\n" -" A A unmerged, both added\n" -" U U unmerged, both modified\n" -" -------------------------------------------------\n" -" ? ? untracked\n" -" ! ! ignored\n" -" -------------------------------------------------\n" +#: en/git-replace.txt:21 +msgid "Adds a 'replace' reference in `refs/replace/` namespace." msgstr "" #. type: Plain text -#: en/git-status.txt:185 -msgid "If -b is used the short-format status is preceded by a line" +#: en/git-replace.txt:25 +msgid "" +"The name of the 'replace' reference is the SHA-1 of the object that is " +"replaced. The content of the 'replace' reference is the SHA-1 of the " +"replacement object." msgstr "" #. type: Plain text -#: en/git-status.txt:187 -#, no-wrap -msgid " ## branchname tracking info\n" +#: en/git-replace.txt:28 +msgid "" +"The replaced object and the replacement object must be of the same type. " +"This restriction can be bypassed using `-f`." msgstr "" -#. type: Title ~ -#: en/git-status.txt:189 -#, no-wrap -msgid "Porcelain Format Version 1" +#. type: Plain text +#: en/git-replace.txt:30 +msgid "Unless `-f` is given, the 'replace' reference must not yet exist." msgstr "" #. type: Plain text -#: en/git-status.txt:196 +#: en/git-replace.txt:33 msgid "" -"Version 1 porcelain format is similar to the short format, but is guaranteed " -"not to change in a backwards-incompatible way between Git versions or based " -"on user configuration. This makes it ideal for parsing by scripts. The " -"description of the short format above also describes the porcelain format, " -"with a few exceptions:" +"There is no other restriction on the replaced and replacement objects. " +"Merge commits can be replaced by non-merge commits and vice versa." msgstr "" #. type: Plain text -#: en/git-status.txt:199 +#: en/git-replace.txt:37 msgid "" -"The user's color.status configuration is not respected; color will always be " -"off." +"Replacement references will be used by default by all Git commands except " +"those doing reachability traversal (prune, pack transfer and fsck)." msgstr "" #. type: Plain text -#: en/git-status.txt:202 +#: en/git-replace.txt:40 msgid "" -"The user's status.relativePaths configuration is not respected; paths shown " -"will always be relative to the repository root." +"It is possible to disable use of replacement references for any command " +"using the `--no-replace-objects` option just after 'git'." msgstr "" #. type: Plain text -#: en/git-status.txt:212 -msgid "" -"There is also an alternate -z format recommended for machine parsing. In " -"that format, the status field is the same, but some other things change. " -"First, the '\\->' is omitted from rename entries and the field order is " -"reversed (e.g 'from \\-> to' becomes 'to from'). Second, a NUL (ASCII 0) " -"follows each filename, replacing space as a field separator and the " -"terminating newline (but a space still separates the status field from the " -"first filename). Third, filenames containing special characters are not " -"specially formatted; no quoting or backslash-escaping is performed." +#: en/git-replace.txt:42 +msgid "For example if commit 'foo' has been replaced by commit 'bar':" msgstr "" -#. type: Title ~ -#: en/git-status.txt:214 +#. type: delimited block - +#: en/git-replace.txt:45 #, no-wrap -msgid "Porcelain Format Version 2" +msgid "$ git --no-replace-objects cat-file commit foo\n" msgstr "" #. type: Plain text -#: en/git-status.txt:219 -msgid "" -"Version 2 format adds more detailed information about the state of the " -"worktree and changed items. Version 2 also defines an extensible set of " -"easy to parse optional headers." +#: en/git-replace.txt:48 +msgid "shows information about commit 'foo', while:" msgstr "" -#. type: Plain text -#: en/git-status.txt:223 -msgid "" -"Header lines start with \"#\" and are added in response to specific command " -"line arguments. Parsers should ignore headers they don't recognize." +#. type: delimited block - +#: en/git-replace.txt:51 +#, no-wrap +msgid "$ git cat-file commit foo\n" msgstr "" #. type: Plain text -#: en/git-status.txt:225 -msgid "### Branch Headers" +#: en/git-replace.txt:54 +msgid "shows information about commit 'bar'." msgstr "" #. type: Plain text -#: en/git-status.txt:228 +#: en/git-replace.txt:57 msgid "" -"If `--branch` is given, a series of header lines are printed with " -"information about the current branch." +"The `GIT_NO_REPLACE_OBJECTS` environment variable can be set to achieve the " +"same effect as the `--no-replace-objects` option." msgstr "" #. type: Plain text -#: en/git-status.txt:237 -#, no-wrap +#: en/git-replace.txt:64 msgid "" -" Line Notes\n" -" ------------------------------------------------------------\n" -" # branch.oid <commit> | (initial) Current commit.\n" -" # branch.head <branch> | (detached) Current branch.\n" -" # branch.upstream <upstream_branch> If upstream is set.\n" -" # branch.ab +<ahead> -<behind> If upstream is set and\n" -"\t\t\t\t\t the commit is present.\n" -" ------------------------------------------------------------\n" +"If an existing replace ref for the same object exists, it will be " +"overwritten (instead of failing)." msgstr "" #. type: Plain text -#: en/git-status.txt:239 -msgid "### Changed Tracked Entries" +#: en/git-replace.txt:68 +msgid "Delete existing replace refs for the given objects." +msgstr "" + +#. type: Labeled list +#: en/git-replace.txt:69 +#, no-wrap +msgid "--edit <object>" msgstr "" #. type: Plain text -#: en/git-status.txt:245 +#: en/git-replace.txt:77 msgid "" -"Following the headers, a series of lines are printed for tracked entries. " -"One of three different line formats may be used to describe an entry " -"depending on the type of change. Tracked entries are printed in an " -"undefined order; parsers should allow for a mixture of the 3 line types in " -"any order." +"Edit an object's content interactively. The existing content for <object> is " +"pretty-printed into a temporary file, an editor is launched on the file, and " +"the result is parsed to create a new object of the same type as <object>. A " +"replacement ref is then created to replace <object> with the newly created " +"object. See linkgit:git-var[1] for details about how the editor will be " +"chosen." msgstr "" #. type: Plain text -#: en/git-status.txt:247 -msgid "Ordinary changed entries have the following format:" +#: en/git-replace.txt:85 +msgid "" +"When editing, provide the raw object contents rather than pretty-printed " +"ones. Currently this only affects trees, which will be shown in their binary " +"form. This is harder to work with, but can help when repairing a tree that " +"is so corrupted it cannot be pretty-printed. Note that you may need to " +"configure your editor to cleanly read and write binary data." msgstr "" -#. type: Plain text -#: en/git-status.txt:249 +#. type: Labeled list +#: en/git-replace.txt:86 #, no-wrap -msgid " 1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path>\n" +msgid "--graft <commit> [<parent>...]" msgstr "" #. type: Plain text -#: en/git-status.txt:251 -msgid "Renamed or copied entries have the following format:" +#: en/git-replace.txt:93 +msgid "" +"Create a graft commit. A new commit is created with the same content as " +"<commit> except that its parents will be [<parent>...] instead of <commit>'s " +"parents. A replacement ref is then created to replace <commit> with the " +"newly created commit. Use `--convert-graft-file` to convert a `$GIT_DIR/info/" +"grafts` file and use replace refs instead." msgstr "" -#. type: Plain text -#: en/git-status.txt:253 +#. type: Labeled list +#: en/git-replace.txt:94 #, no-wrap -msgid " 2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath>\n" +msgid "--convert-graft-file" msgstr "" #. type: Plain text -#: en/git-status.txt:283 -#, no-wrap -msgid "" -" Field Meaning\n" -" --------------------------------------------------------\n" -" <XY> A 2 character field containing the staged and\n" -"\t\tunstaged XY values described in the short format,\n" -"\t\twith unchanged indicated by a \".\" rather than\n" -"\t\ta space.\n" -" <sub> A 4 character field describing the submodule state.\n" -"\t\t\"N...\" when the entry is not a submodule.\n" -"\t\t\"S<c><m><u>\" when the entry is a submodule.\n" -"\t\t<c> is \"C\" if the commit changed; otherwise \".\".\n" -"\t\t<m> is \"M\" if it has tracked changes; otherwise \".\".\n" -"\t\t<u> is \"U\" if there are untracked changes; otherwise \".\".\n" -" <mH> The octal file mode in HEAD.\n" -" <mI> The octal file mode in the index.\n" -" <mW> The octal file mode in the worktree.\n" -" <hH> The object name in HEAD.\n" -" <hI> The object name in the index.\n" -" <X><score> The rename or copy score (denoting the percentage\n" -"\t\tof similarity between the source and target of the\n" -"\t\tmove or copy). For example \"R100\" or \"C75\".\n" -" <path> The pathname. In a renamed/copied entry, this\n" -"\t\tis the path in the index and in the working tree.\n" -" <sep> When the `-z` option is used, the 2 pathnames are " -"separated\n" -"\t\twith a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09)\n" -"\t\tbyte separates them.\n" -" <origPath> The pathname in the commit at HEAD. This is only\n" -"\t\tpresent in a renamed/copied entry, and tells\n" -"\t\twhere the renamed/copied contents came from.\n" -" --------------------------------------------------------\n" -msgstr "" - -#. type: Plain text -#: en/git-status.txt:286 +#: en/git-replace.txt:98 msgid "" -"Unmerged entries have the following format; the first character is a \"u\" " -"to distinguish from ordinary changed entries." +"Creates graft commits for all entries in `$GIT_DIR/info/grafts` and deletes " +"that file upon success. The purpose is to help users with transitioning off " +"of the now-deprecated graft file." msgstr "" -#. type: Plain text -#: en/git-status.txt:288 +#. type: Labeled list +#: en/git-replace.txt:99 #, no-wrap -msgid " u <xy> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path>\n" +msgid "-l <pattern>" msgstr "" -#. type: Plain text -#: en/git-status.txt:304 +#. type: Labeled list +#: en/git-replace.txt:100 #, no-wrap -msgid "" -" Field Meaning\n" -" --------------------------------------------------------\n" -" <XY> A 2 character field describing the conflict type\n" -"\t\tas described in the short format.\n" -" <sub> A 4 character field describing the submodule state\n" -"\t\tas described above.\n" -" <m1> The octal file mode in stage 1.\n" -" <m2> The octal file mode in stage 2.\n" -" <m3> The octal file mode in stage 3.\n" -" <mW> The octal file mode in the worktree.\n" -" <h1> The object name in stage 1.\n" -" <h2> The object name in stage 2.\n" -" <h3> The object name in stage 3.\n" -" <path> The pathname.\n" -" --------------------------------------------------------\n" +msgid "--list <pattern>" msgstr "" #. type: Plain text -#: en/git-status.txt:306 -msgid "### Other Items" +#: en/git-replace.txt:105 +msgid "" +"List replace refs for objects that match the given pattern (or all if no " +"pattern is given). Typing \"git replace\" without arguments, also lists all " +"replace refs." msgstr "" #. type: Plain text -#: en/git-status.txt:310 +#: en/git-replace.txt:110 msgid "" -"Following the tracked entries (and if requested), a series of lines will be " -"printed for untracked and then ignored items found in the worktree." +"When listing, use the specified <format>, which can be one of 'short', " +"'medium' and 'long'. When omitted, the format defaults to 'short'." msgstr "" -#. type: Plain text -#: en/git-status.txt:312 -msgid "Untracked items have the following format:" +#. type: Title - +#: en/git-replace.txt:112 +#, no-wrap +msgid "FORMATS" msgstr "" #. type: Plain text -#: en/git-status.txt:314 -#, no-wrap -msgid " ? <path>\n" +#: en/git-replace.txt:115 +msgid "The following format are available:" msgstr "" #. type: Plain text -#: en/git-status.txt:316 -msgid "Ignored items have the following format:" +#: en/git-replace.txt:117 +msgid "'short':" msgstr "" #. type: Plain text -#: en/git-status.txt:318 -#, no-wrap -msgid " ! <path>\n" +#: en/git-replace.txt:118 +msgid "<replaced sha1>" msgstr "" #. type: Plain text -#: en/git-status.txt:320 -msgid "### Pathname Format Notes and -z" +#: en/git-replace.txt:119 +msgid "'medium':" msgstr "" #. type: Plain text -#: en/git-status.txt:324 -msgid "" -"When the `-z` option is given, pathnames are printed as is and without any " -"quoting and lines are terminated with a NUL (ASCII 0x00) byte." +#: en/git-replace.txt:120 +msgid "<replaced sha1> -> <replacement sha1>" msgstr "" #. type: Plain text -#: en/git-status.txt:328 -msgid "" -"Without the `-z` option, pathnames with \"unusual\" characters are quoted as " -"explained for the configuration variable `core.quotePath` (see " -"linkgit:git-config[1])." +#: en/git-replace.txt:121 +msgid "'long':" msgstr "" #. type: Plain text -#: en/git-status.txt:337 +#: en/git-replace.txt:122 msgid "" -"The command honors `color.status` (or `status.color` -- they mean the same " -"thing and the latter is kept for backward compatibility) and " -"`color.status.<slot>` configuration variables to colorize its output." +"<replaced sha1> (<replaced type>) -> <replacement sha1> (<replacement type>)" msgstr "" -#. type: Plain text -#: en/git-status.txt:341 -msgid "" -"If the config variable `status.relativePaths` is set to false, then all " -"paths shown are relative to the repository root, not to the current " -"directory." +#. type: Title - +#: en/git-replace.txt:124 +#, no-wrap +msgid "CREATING REPLACEMENT OBJECTS" msgstr "" #. type: Plain text -#: en/git-status.txt:352 +#: en/git-replace.txt:131 msgid "" -"If `status.submoduleSummary` is set to a non zero number or true (identical " -"to -1 or an unlimited number), the submodule summary will be enabled for the " -"long format and a summary of commits for modified submodules will be shown " -"(see --summary-limit option of linkgit:git-submodule[1]). Please note that " -"the summary output from the status command will be suppressed for all " -"submodules when `diff.ignoreSubmodules` is set to 'all' or only for those " -"submodules where `submodule.<name>.ignore=all`. To also view the summary for " -"ignored submodules you can either use the --ignore-submodules=dirty command " -"line option or the 'git submodule summary' command, which shows a similar " -"output but does not honor these settings." -msgstr "" - -#. type: Title = -#: en/git-stripspace.txt:2 -#, no-wrap -msgid "git-stripspace(1)" +"linkgit:git-filter-branch[1], linkgit:git-hash-object[1] and linkgit:git-" +"rebase[1], among other git commands, can be used to create replacement " +"objects from existing objects. The `--edit` option can also be used with " +"'git replace' to create a replacement object by editing an existing object." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:7 -msgid "git-stripspace - Remove unnecessary whitespace" +#: en/git-replace.txt:137 +msgid "" +"If you want to replace many blobs, trees or commits that are part of a " +"string of commits, you may just want to create a replacement string of " +"commits and then only replace the commit at the tip of the target string of " +"commits with the commit at the tip of the replacement string of commits." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:14 -#, no-wrap +#: en/git-replace.txt:144 msgid "" -"'git stripspace' [-s | --strip-comments]\n" -"'git stripspace' [-c | --comment-lines]\n" +"Comparing blobs or trees that have been replaced with those that replace " +"them will not work properly. And using `git reset --hard` to go back to a " +"replaced commit will move the branch to the replacement commit instead of " +"the replaced commit." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:21 +#: en/git-replace.txt:147 msgid "" -"Read text, such as commit messages, notes, tags and branch descriptions, " -"from the standard input and clean it in the manner used by Git." +"There may be other problems when using 'git rev-list' related to pending " +"objects." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:23 -msgid "With no arguments, this will:" +#: en/git-replace.txt:158 +msgid "" +"linkgit:git-hash-object[1] linkgit:git-filter-branch[1] linkgit:git-" +"rebase[1] linkgit:git-tag[1] linkgit:git-branch[1] linkgit:git-commit[1] " +"linkgit:git-var[1] linkgit:git[1]" msgstr "" -#. type: Plain text -#: en/git-stripspace.txt:25 -msgid "remove trailing whitespace from all lines" +#. type: Title = +#: en/git-request-pull.txt:2 +#, no-wrap +msgid "git-request-pull(1)" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:26 -msgid "collapse multiple consecutive empty lines into one empty line" +#: en/git-request-pull.txt:7 +msgid "git-request-pull - Generates a summary of pending changes" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:27 -msgid "remove empty lines from the beginning and end of the input" +#: en/git-request-pull.txt:12 +#, no-wrap +msgid "'git request-pull' [-p] <start> <url> [<end>]\n" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:28 -msgid "add a missing '\\n' to the last line if necessary." +#: en/git-request-pull.txt:20 +msgid "" +"Generate a request asking your upstream project to pull changes into their " +"tree. The request, printed to the standard output, begins with the branch " +"description, summarizes the changes and indicates from where they can be " +"pulled." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:31 +#: en/git-request-pull.txt:25 msgid "" -"In the case where the input consists entirely of whitespace characters, no " -"output will be produced." +"The upstream project is expected to have the commit named by `<start>` and " +"the output asks it to integrate the changes you made since that commit, up " +"to the commit named by `<end>`, by visiting the repository named by `<url>`." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:35 -#, no-wrap -msgid "" -"*NOTE*: This is intended for cleaning metadata, prefer the " -"`--whitespace=fix`\n" -"mode of linkgit:git-apply[1] for correcting whitespace of patches or files " -"in\n" -"the repository.\n" +#: en/git-request-pull.txt:31 +msgid "Include patch text in the output." msgstr "" #. type: Labeled list -#: en/git-stripspace.txt:39 +#: en/git-request-pull.txt:32 #, no-wrap -msgid "--strip-comments" +msgid "<start>" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:41 -msgid "Skip and remove all lines starting with comment character (default '#')." +#: en/git-request-pull.txt:35 +msgid "" +"Commit to start at. This names a commit that is already in the upstream " +"history." msgstr "" #. type: Labeled list -#: en/git-stripspace.txt:43 +#: en/git-request-pull.txt:36 #, no-wrap -msgid "--comment-lines" -msgstr "" - -#. type: Plain text -#: en/git-stripspace.txt:47 -msgid "" -"Prepend comment character and blank to each line. Lines will automatically " -"be terminated with a newline. On empty lines, only the comment character " -"will be prepended." +msgid "<url>" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:52 -msgid "Given the following noisy input with '$' indicating the end of a line:" +#: en/git-request-pull.txt:38 +msgid "The repository URL to be pulled from." msgstr "" -#. type: delimited block - -#: en/git-stripspace.txt:65 +#. type: Labeled list +#: en/git-request-pull.txt:39 #, no-wrap -msgid "" -"|A brief introduction $\n" -"| $\n" -"|$\n" -"|A new paragraph$\n" -"|# with a commented-out line $\n" -"|explaining lots of stuff.$\n" -"|$\n" -"|# An old paragraph, also commented-out. $\n" -"| $\n" -"|The end.$\n" -"| $\n" +msgid "<end>" msgstr "" #. type: Plain text -#: en/git-stripspace.txt:68 -msgid "Use 'git stripspace' with no arguments to obtain:" -msgstr "" - -#. type: delimited block - -#: en/git-stripspace.txt:79 -#, no-wrap +#: en/git-request-pull.txt:42 msgid "" -"|A brief introduction$\n" -"|$\n" -"|A new paragraph$\n" -"|# with a commented-out line$\n" -"|explaining lots of stuff.$\n" -"|$\n" -"|# An old paragraph, also commented-out.$\n" -"|$\n" -"|The end.$\n" +"Commit to end at (defaults to HEAD). This names the commit at the tip of " +"the history you are asking to be pulled." msgstr "" #. type: Plain text -#: en/git-stripspace.txt:82 -msgid "Use 'git stripspace --strip-comments' to obtain:" +#: en/git-request-pull.txt:47 +msgid "" +"When the repository named by `<url>` has the commit at a tip of a ref that " +"is different from the ref you have locally, you can use the `<local>:" +"<remote>` syntax, to have its local name, a colon `:`, and its remote name." msgstr "" -#. type: delimited block - -#: en/git-stripspace.txt:90 -#, no-wrap +#. type: Plain text +#: en/git-request-pull.txt:56 msgid "" -"|A brief introduction$\n" -"|$\n" -"|A new paragraph$\n" -"|explaining lots of stuff.$\n" -"|$\n" -"|The end.$\n" +"Imagine that you built your work on your `master` branch on top of the " +"`v1.0` release, and want it to be integrated to the project. First you push " +"that change to your public repository for others to see:" msgstr "" -#. type: Title = -#: en/git-submodule.txt:2 +#. type: Plain text +#: en/git-request-pull.txt:58 #, no-wrap -msgid "git-submodule(1)" +msgid "\tgit push https://git.ko.xz/project master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:7 -msgid "git-submodule - Initialize, update or inspect submodules" +#: en/git-request-pull.txt:60 +msgid "Then, you run this command:" msgstr "" #. type: Plain text -#: en/git-submodule.txt:21 +#: en/git-request-pull.txt:62 #, no-wrap -msgid "" -"'git submodule' [--quiet] add [<options>] [--] <repository> [<path>]\n" -"'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]\n" -"'git submodule' [--quiet] init [--] [<path>...]\n" -"'git submodule' [--quiet] deinit [-f|--force] (--all|[--] <path>...)\n" -"'git submodule' [--quiet] update [<options>] [--] [<path>...]\n" -"'git submodule' [--quiet] summary [<options>] [--] [<path>...]\n" -"'git submodule' [--quiet] foreach [--recursive] <command>\n" -"'git submodule' [--quiet] sync [--recursive] [--] [<path>...]\n" -"'git submodule' [--quiet] absorbgitdirs [--] [<path>...]\n" +msgid "\tgit request-pull v1.0 https://git.ko.xz/project master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:26 -msgid "Inspects, updates and manages submodules." +#: en/git-request-pull.txt:66 +msgid "" +"which will produce a request to the upstream, summarizing the changes " +"between the `v1.0` release and your `master`, to pull it from your public " +"repository." msgstr "" #. type: Plain text -#: en/git-submodule.txt:31 +#: en/git-request-pull.txt:69 msgid "" -"A submodule allows you to keep another Git repository in a subdirectory of " -"your repository. The other repository has its own history, which does not " -"interfere with the history of the current repository. This can be used to " -"have external dependencies such as third party libraries for example." +"If you pushed your change to a branch whose name is different from the one " +"you have locally, e.g." msgstr "" #. type: Plain text -#: en/git-submodule.txt:36 -msgid "" -"When cloning or pulling a repository containing submodules however, these " -"will not be checked out by default; the 'init' and 'update' subcommands will " -"maintain submodules checked out and at appropriate revision in your working " -"tree." +#: en/git-request-pull.txt:71 +#, no-wrap +msgid "\tgit push https://git.ko.xz/project master:for-linus\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:45 -msgid "" -"Submodules are composed from a so-called `gitlink` tree entry in the main " -"repository that refers to a particular commit object within the inner " -"repository that is completely separate. A record in the `.gitmodules` (see " -"linkgit:gitmodules[5]) file at the root of the source tree assigns a logical " -"name to the submodule and describes the default URL the submodule shall be " -"cloned from. The logical name can be used for overriding this URL within " -"your local repository configuration (see 'submodule init')." +#: en/git-request-pull.txt:73 +msgid "then you can ask that to be pulled with" msgstr "" #. type: Plain text -#: en/git-submodule.txt:58 -msgid "" -"Submodules are not to be confused with remotes, which are other repositories " -"of the same project; submodules are meant for different projects you would " -"like to make part of your source tree, while the history of the two projects " -"still stays completely independent and you cannot modify the contents of the " -"submodule from within the main project. If you want to merge the project " -"histories and want to treat the aggregated whole as a single project from " -"then on, you may want to add a remote for the other project and use the " -"'subtree' merge strategy, instead of treating the other project as a " -"submodule. Directories that come from both projects can be cloned and " -"checked out as a whole if you choose to go that route." +#: en/git-request-pull.txt:75 +#, no-wrap +msgid "\tgit request-pull v1.0 https://git.ko.xz/project master:for-linus\n" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:61 +#. type: Title = +#: en/git-rerere.txt:2 #, no-wrap -msgid "" -"add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] " -"[--depth <depth>] [--] <repository> [<path>]" +msgid "git-rerere(1)" msgstr "" #. type: Plain text -#: en/git-submodule.txt:65 -msgid "" -"Add the given repository as a submodule at the given path to the changeset " -"to be committed next to the current project: the current project is termed " -"the \"superproject\"." +#: en/git-rerere.txt:7 +msgid "git-rerere - Reuse recorded resolution of conflicted merges" msgstr "" #. type: Plain text -#: en/git-submodule.txt:73 -msgid "" -"This requires at least one argument: <repository>. The optional argument " -"<path> is the relative location for the cloned submodule to exist in the " -"superproject. If <path> is not given, the \"humanish\" part of the source " -"repository is used (\"repo\" for \"/path/to/repo.git\" and \"foo\" for " -"\"host.xz:foo/.git\"). The <path> is also used as the submodule's logical " -"name in its configuration entries unless `--name` is used to specify a " -"logical name." +#: en/git-rerere.txt:12 +#, no-wrap +msgid "'git rerere' ['clear'|'forget' <pathspec>|'diff'|'remaining'|'status'|'gc']\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:82 +#: en/git-rerere.txt:20 msgid "" -"<repository> is the URL of the new submodule's origin repository. This may " -"be either an absolute URL, or (if it begins with ./ or ../), the location " -"relative to the superproject's default remote repository (Please note that " -"to specify a repository 'foo.git' which is located right next to a " -"superproject 'bar.git', you'll have to use '../foo.git' instead of " -"'./foo.git' - as one might expect when following the rules for relative URLs " -"- because the evaluation of relative URLs in Git is identical to that of " -"relative directories)." +"In a workflow employing relatively long lived topic branches, the developer " +"sometimes needs to resolve the same conflicts over and over again until the " +"topic branches are done (either merged to the \"release\" branch, or sent " +"out and accepted upstream)." msgstr "" #. type: Plain text -#: en/git-submodule.txt:89 +#: en/git-rerere.txt:25 msgid "" -"The default remote is the remote of the remote tracking branch of the " -"current branch. If no such remote tracking branch exists or the HEAD is " -"detached, \"origin\" is assumed to be the default remote. If the " -"superproject doesn't have a default remote configured the superproject is " -"its own authoritative upstream and the current working directory is used " -"instead." +"This command assists the developer in this process by recording conflicted " +"automerge results and corresponding hand resolve results on the initial " +"manual merge, and applying previously recorded hand resolutions to their " +"corresponding automerge results." msgstr "" #. type: Plain text -#: en/git-submodule.txt:97 +#: en/git-rerere.txt:29 msgid "" -"<path> is the relative location for the cloned submodule to exist in the " -"superproject. If <path> does not exist, then the submodule is created by " -"cloning from the named URL. If <path> does exist and is already a valid Git " -"repository, then this is added to the changeset without cloning. This second " -"form is provided to ease creating a new submodule from scratch, and presumes " -"the user will later push the submodule to the given URL." +"You need to set the configuration variable rerere.enabled in order to enable " +"this command." msgstr "" #. type: Plain text -#: en/git-submodule.txt:105 +#: en/git-rerere.txt:37 msgid "" -"In either case, the given URL is recorded into .gitmodules for use by " -"subsequent users cloning the superproject. If the URL is given relative to " -"the superproject's repository, the presumption is the superproject and " -"submodule repositories will be kept together in the same relative location, " -"and only the superproject's URL needs to be provided: git-submodule will " -"correctly locate the submodule using the relative URL in .gitmodules." +"Normally, 'git rerere' is run without arguments or user-intervention. " +"However, it has several commands that allow it to interact with its working " +"state." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:106 +#: en/git-rerere.txt:38 #, no-wrap -msgid "status [--cached] [--recursive] [--] [<path>...]" +msgid "'clear'" msgstr "" #. type: Plain text -#: en/git-submodule.txt:114 +#: en/git-rerere.txt:43 msgid "" -"Show the status of the submodules. This will print the SHA-1 of the " -"currently checked out commit for each submodule, along with the submodule " -"path and the output of 'git describe' for the SHA-1. Each SHA-1 will be " -"prefixed with `-` if the submodule is not initialized, `+` if the currently " -"checked out submodule commit does not match the SHA-1 found in the index of " -"the containing repository and `U` if the submodule has merge conflicts." +"Reset the metadata used by rerere if a merge resolution is to be aborted. " +"Calling 'git am [--skip|--abort]' or 'git rebase [--skip|--abort]' will " +"automatically invoke this command." msgstr "" -#. type: Plain text -#: en/git-submodule.txt:117 -msgid "" -"If `--recursive` is specified, this command will recurse into nested " -"submodules, and show their status as well." +#. type: Labeled list +#: en/git-rerere.txt:44 +#, no-wrap +msgid "'forget' <pathspec>" msgstr "" #. type: Plain text -#: en/git-submodule.txt:122 +#: en/git-rerere.txt:48 msgid "" -"If you are only interested in changes of the currently initialized " -"submodules with respect to the commit recorded in the index or the HEAD, " -"linkgit:git-status[1] and linkgit:git-diff[1] will provide that information " -"too (and can also report changes to a submodule's work tree)." +"Reset the conflict resolutions which rerere has recorded for the current " +"conflict in <pathspec>." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:123 +#: en/git-rerere.txt:49 #, no-wrap -msgid "init [--] [<path>...]" -msgstr "" - -#. type: Plain text -#: en/git-submodule.txt:130 -msgid "" -"Initialize the submodules recorded in the index (which were added and " -"committed elsewhere) by setting `submodule.$name.url` in .git/config. It " -"uses the same setting from .gitmodules as a template. If the URL is " -"relative, it will be resolved using the default remote. If there is no " -"default remote, the current repository will be assumed to be upstream." +msgid "'diff'" msgstr "" #. type: Plain text -#: en/git-submodule.txt:133 +#: en/git-rerere.txt:55 msgid "" -"Optional <path> arguments limit which submodules will be initialized. If no " -"path is specified, all submodules are initialized." +"Display diffs for the current state of the resolution. It is useful for " +"tracking what has changed while the user is resolving conflicts. Additional " +"arguments are passed directly to the system 'diff' command installed in PATH." msgstr "" -#. type: Plain text -#: en/git-submodule.txt:141 -msgid "" -"When present, it will also copy the value of `submodule.$name.update`. This " -"command does not alter existing information in .git/config. You can then " -"customize the submodule clone URLs in .git/config for your local setup and " -"proceed to `git submodule update`; you can also just use `git submodule " -"update --init` without the explicit 'init' step if you do not intend to " -"customize any submodule locations." +#. type: Labeled list +#: en/git-rerere.txt:56 +#, no-wrap +msgid "'status'" msgstr "" #. type: Plain text -#: en/git-submodule.txt:143 -msgid "See the add subcommand for the defintion of default remote." +#: en/git-rerere.txt:59 +msgid "Print paths with conflicts whose merge resolution rerere will record." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:144 +#: en/git-rerere.txt:60 #, no-wrap -msgid "deinit [-f|--force] (--all|[--] <path>...)" +msgid "'remaining'" msgstr "" #. type: Plain text -#: en/git-submodule.txt:153 +#: en/git-rerere.txt:65 msgid "" -"Unregister the given submodules, i.e. remove the whole `submodule.$name` " -"section from .git/config together with their work tree. Further calls to " -"`git submodule update`, `git submodule foreach` and `git submodule sync` " -"will skip any unregistered submodules until they are initialized again, so " -"use this command if you don't want to have a local checkout of the submodule " -"in your working tree anymore. If you really want to remove a submodule from " -"the repository and commit that use linkgit:git-rm[1] instead." +"Print paths with conflicts that have not been autoresolved by rerere. This " +"includes paths whose resolutions cannot be tracked by rerere, such as " +"conflicting submodules." +msgstr "" + +#. type: Labeled list +#: en/git-rerere.txt:66 en/git-svn.txt:511 +#, no-wrap +msgid "'gc'" msgstr "" #. type: Plain text -#: en/git-submodule.txt:156 +#: en/git-rerere.txt:74 msgid "" -"When the command is run without pathspec, it errors out, instead of " -"deinit-ing everything, to prevent mistakes." +"Prune records of conflicted merges that occurred a long time ago. By " +"default, unresolved conflicts older than 15 days and resolved conflicts " +"older than 60 days are pruned. These defaults are controlled via the `gc." +"rerereUnresolved` and `gc.rerereResolved` configuration variables " +"respectively." msgstr "" #. type: Plain text -#: en/git-submodule.txt:159 +#: en/git-rerere.txt:83 msgid "" -"If `--force` is specified, the submodule's working tree will be removed even " -"if it contains local modifications." +"When your topic branch modifies an overlapping area that your master branch " +"(or upstream) touched since your topic branch forked from it, you may want " +"to test it with the latest master, even before your topic branch is ready to " +"be pushed upstream:" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:160 +#. type: delimited block - +#: en/git-rerere.txt:88 #, no-wrap msgid "" -"update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] " -"[-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] " -"[--depth <depth>] [--recursive] [--jobs <n>] [--] [<path>...]" +" o---*---o topic\n" +" /\n" +" o---o---o---*---o---o master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:171 +#: en/git-rerere.txt:92 msgid "" -"Update the registered submodules to match what the superproject expects by " -"cloning missing submodules and updating the working tree of the " -"submodules. The \"updating\" can be done in several ways depending on " -"command line options and the value of `submodule.<name>.update` " -"configuration variable. The command line option takes precedence over the " -"configuration variable. if neither is given, a checkout is performed. " -"update procedures supported both from the command line as well as setting " -"`submodule.<name>.update`:" +"For such a test, you need to merge master and topic somehow. One way to do " +"it is to pull master into the topic branch:" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:172 +#. type: delimited block - +#: en/git-rerere.txt:96 #, no-wrap -msgid "checkout" +msgid "" +"\t$ git checkout topic\n" +"\t$ git merge master\n" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:173 -msgid "the commit recorded in the superproject will be" +#. type: delimited block - +#: en/git-rerere.txt:100 +#, no-wrap +msgid "" +" o---*---o---+ topic\n" +" / /\n" +" o---o---o---*---o---o master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:174 -#, no-wrap -msgid "checked out in the submodule on a detached HEAD.\n" +#: en/git-rerere.txt:106 +msgid "" +"The commits marked with `*` touch the same area in the same file; you need " +"to resolve the conflicts when creating the commit marked with `+`. Then you " +"can test the result to make sure your work-in-progress still works with what " +"is in the latest master." msgstr "" #. type: Plain text -#: en/git-submodule.txt:179 +#: en/git-rerere.txt:114 msgid "" -"If `--force` is specified, the submodule will be checked out (using `git " -"checkout --force` if appropriate), even if the commit specified in the index " -"of the containing repository already matches the commit checked out in the " -"submodule." +"After this test merge, there are two ways to continue your work on the " +"topic. The easiest is to build on top of the test merge commit `+`, and " +"when your work in the topic branch is finally ready, pull the topic branch " +"into master, and/or ask the upstream to pull from you. By that time, " +"however, the master or the upstream might have been advanced since the test " +"merge `+`, in which case the final commit graph would look like this:" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:180 +#. type: delimited block - +#: en/git-rerere.txt:121 #, no-wrap -msgid "rebase" +msgid "" +"\t$ git checkout topic\n" +"\t$ git merge master\n" +"\t$ ... work on both topic and master branches\n" +"\t$ git checkout master\n" +"\t$ git merge topic\n" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:181 -msgid "the current branch of the submodule will be rebased" +#. type: delimited block - +#: en/git-rerere.txt:125 +#, no-wrap +msgid "" +" o---*---o---+---o---o topic\n" +" / / \\\n" +" o---o---o---*---o---o---o---o---+ master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:182 -#, no-wrap -msgid "onto the commit recorded in the superproject.\n" +#: en/git-rerere.txt:133 +msgid "" +"When your topic branch is long-lived, however, your topic branch would end " +"up having many such \"Merge from master\" commits on it, which would " +"unnecessarily clutter the development history. Readers of the Linux kernel " +"mailing list may remember that Linus complained about such too frequent test " +"merges when a subsystem maintainer asked to pull from a branch full of " +"\"useless merges\"." msgstr "" #. type: Plain text -#: en/git-submodule.txt:184 -msgid "the commit recorded in the superproject will be merged" +#: en/git-rerere.txt:137 +msgid "" +"As an alternative, to keep the topic branch clean of test merges, you could " +"blow away the test merge, and keep building on top of the tip before the " +"test merge:" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:185 +#. type: delimited block - +#: en/git-rerere.txt:145 #, no-wrap -msgid "into the current branch in the submodule.\n" -msgstr "" - -#. type: Plain text -#: en/git-submodule.txt:188 msgid "" -"The following procedures are only available via the " -"`submodule.<name>.update` configuration variable:" +"\t$ git checkout topic\n" +"\t$ git merge master\n" +"\t$ git reset --hard HEAD^ ;# rewind the test merge\n" +"\t$ ... work on both topic and master branches\n" +"\t$ git checkout master\n" +"\t$ git merge topic\n" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:189 +#. type: delimited block - +#: en/git-rerere.txt:149 #, no-wrap -msgid "custom command" -msgstr "" - -#. type: Plain text -#: en/git-submodule.txt:190 -msgid "arbitrary shell command that takes a single" +msgid "" +" o---*---o-------o---o topic\n" +" / \\\n" +" o---o---o---*---o---o---o---o---+ master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:194 -#, no-wrap +#: en/git-rerere.txt:159 msgid "" -"argument (the sha1 of the commit recorded in the\n" -"superproject) is executed. When `submodule.<name>.update`\n" -"is set to '!command', the remainder after the exclamation mark\n" -"is the custom command.\n" -msgstr "" - -#. type: Labeled list -#: en/git-submodule.txt:195 en/diff-options.txt:254 -#, no-wrap -msgid "none" +"This would leave only one merge commit when your topic branch is finally " +"ready and merged into the master branch. This merge would require you to " +"resolve the conflict, introduced by the commits marked with `*`. However, " +"this conflict is often the same conflict you resolved when you created the " +"test merge you blew away. 'git rerere' helps you resolve this final " +"conflicted merge using the information from your earlier hand resolve." msgstr "" #. type: Plain text -#: en/git-submodule.txt:196 -msgid "the submodule is not updated." +#: en/git-rerere.txt:167 +msgid "" +"Running the 'git rerere' command immediately after a conflicted automerge " +"records the conflicted working tree files, with the usual conflict markers " +"`<<<<<<<`, `=======`, and `>>>>>>>` in them. Later, after you are done " +"resolving the conflicts, running 'git rerere' again will record the resolved " +"state of these files. Suppose you did this when you created the test merge " +"of master into the topic branch." msgstr "" #. type: Plain text -#: en/git-submodule.txt:200 +#: en/git-rerere.txt:177 msgid "" -"If the submodule is not yet initialized, and you just want to use the " -"setting as stored in .gitmodules, you can automatically initialize the " -"submodule with the `--init` option." +"Next time, after seeing the same conflicted automerge, running 'git rerere' " +"will perform a three-way merge between the earlier conflicted automerge, the " +"earlier manual resolution, and the current conflicted automerge. If this " +"three-way merge resolves cleanly, the result is written out to your working " +"tree file, so you do not have to manually resolve it. Note that 'git " +"rerere' leaves the index file alone, so you still need to do the final " +"sanity checks with `git diff` (or `git diff -c`) and 'git add' when you are " +"satisfied." msgstr "" #. type: Plain text -#: en/git-submodule.txt:203 +#: en/git-rerere.txt:185 msgid "" -"If `--recursive` is specified, this command will recurse into the registered " -"submodules, and update any nested submodules within." +"As a convenience measure, 'git merge' automatically invokes 'git rerere' " +"upon exiting with a failed automerge and 'git rerere' records the hand " +"resolve when it is a new conflict, or reuses the earlier hand resolve when " +"it is not. 'git commit' also invokes 'git rerere' when committing a merge " +"result. What this means is that you do not have to do anything special " +"yourself (besides enabling the rerere.enabled config variable)." msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:204 -#, no-wrap +#. type: Plain text +#: en/git-rerere.txt:190 msgid "" -"summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] " -"[<path>...]" +"In our example, when you do the test merge, the manual resolution is " +"recorded, and it will be reused when you do the actual merge later with the " +"updated master and topic branch, as long as the recorded resolution is still " +"applicable." msgstr "" #. type: Plain text -#: en/git-submodule.txt:213 +#: en/git-rerere.txt:194 msgid "" -"Show commit summary between the given commit (defaults to HEAD) and working " -"tree/index. For a submodule in question, a series of commits in the " -"submodule between the given super project commit and the index or working " -"tree (switched by `--cached`) are shown. If the option `--files` is given, " -"show the series of commits in the submodule between the index of the super " -"project and the working tree of the submodule (this option doesn't allow to " -"use the `--cached` option or to provide an explicit commit)." +"The information 'git rerere' records is also used when running 'git " +"rebase'. After blowing away the test merge and continuing development on " +"the topic branch:" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:216 +#. type: delimited block - +#: en/git-rerere.txt:199 +#, no-wrap msgid "" -"Using the `--submodule=log` option with linkgit:git-diff[1] will provide " -"that information too." +" o---*---o-------o---o topic\n" +" /\n" +" o---o---o---*---o---o---o---o master\n" msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:217 +#. type: delimited block - +#: en/git-rerere.txt:201 #, no-wrap -msgid "foreach [--recursive] <command>" +msgid "\t$ git rebase master topic\n" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:233 +#. type: delimited block - +#: en/git-rerere.txt:205 +#, no-wrap msgid "" -"Evaluates an arbitrary shell command in each checked out submodule. The " -"command has access to the variables $name, $path, $sha1 and $toplevel: $name " -"is the name of the relevant submodule section in .gitmodules, $path is the " -"name of the submodule directory relative to the superproject, $sha1 is the " -"commit as recorded in the superproject, and $toplevel is the absolute path " -"to the top-level of the superproject. Any submodules defined in the " -"superproject but not checked out are ignored by this command. Unless given " -"`--quiet`, foreach prints the name of each submodule before evaluating the " -"command. If `--recursive` is given, submodules are traversed recursively " -"(i.e. the given shell command is evaluated in nested submodules as well). " -"A non-zero return from the command in any submodule causes the processing to " -"terminate. This can be overridden by adding '|| :' to the end of the " -"command." +"\t\t\t\t o---*---o-------o---o topic\n" +"\t\t\t\t /\n" +" o---o---o---*---o---o---o---o master\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:236 +#: en/git-rerere.txt:213 msgid "" -"As an example, the command below will show the path and currently checked " -"out commit for each submodule:" +"you could run `git rebase master topic`, to bring yourself up to date before " +"your topic is ready to be sent upstream. This would result in falling back " +"to a three-way merge, and it would conflict the same way as the test merge " +"you resolved earlier. 'git rerere' will be run by 'git rebase' to help you " +"resolve this conflict." msgstr "" -#. type: delimited block - -#: en/git-submodule.txt:239 -#, no-wrap -msgid "git submodule foreach 'echo $path `git rev-parse HEAD`'\n" +#. type: Plain text +#: en/git-rerere.txt:219 +msgid "" +"[NOTE] 'git rerere' relies on the conflict markers in the file to detect the " +"conflict. If the file already contains lines that look the same as lines " +"with conflict markers, 'git rerere' may fail to record a conflict " +"resolution. To work around this, the `conflict-marker-size` setting in " +"linkgit:gitattributes[5] can be used." msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:241 +#. type: Title = +#: en/git-reset.txt:2 #, no-wrap -msgid "sync [--recursive] [--] [<path>...]" +msgid "git-reset(1)" msgstr "" #. type: Plain text -#: en/git-submodule.txt:248 -msgid "" -"Synchronizes submodules' remote URL configuration setting to the value " -"specified in .gitmodules. It will only affect those submodules which already " -"have a URL entry in .git/config (that is the case when they are initialized " -"or freshly added). This is useful when submodule URLs change upstream and " -"you need to update your local repositories accordingly." +#: en/git-reset.txt:7 +msgid "git-reset - Reset current HEAD to the specified state" msgstr "" #. type: Plain text -#: en/git-submodule.txt:251 +#: en/git-reset.txt:14 +#, no-wrap msgid "" -"\"git submodule sync\" synchronizes all submodules while \"git submodule " -"sync \\-- A\" synchronizes submodule \"A\" only." +"'git reset' [-q] [<tree-ish>] [--] <paths>...\n" +"'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]\n" +"'git reset' [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:254 +#: en/git-reset.txt:21 msgid "" -"If `--recursive` is specified, this command will recurse into the registered " -"submodules, and sync any nested submodules within." +"In the first and second form, copy entries from `<tree-ish>` to the index. " +"In the third form, set the current branch head (`HEAD`) to `<commit>`, " +"optionally modifying index and working tree to match. The `<tree-ish>`/" +"`<commit>` defaults to `HEAD` in all forms." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:255 +#: en/git-reset.txt:22 #, no-wrap -msgid "absorbgitdirs" +msgid "'git reset' [-q] [<tree-ish>] [--] <paths>..." msgstr "" #. type: Plain text -#: en/git-submodule.txt:262 +#: en/git-reset.txt:26 msgid "" -"If a git directory of a submodule is inside the submodule, move the git " -"directory of the submodule into its superprojects `$GIT_DIR/modules` path " -"and then connect the git directory and its working directory by setting the " -"`core.worktree` and adding a .git file pointing to the git directory " -"embedded in the superprojects git directory." +"This form resets the index entries for all `<paths>` to their state at " +"`<tree-ish>`. (It does not affect the working tree or the current branch.)" msgstr "" #. type: Plain text -#: en/git-submodule.txt:266 +#: en/git-reset.txt:29 msgid "" -"A repository that was cloned independently and later added as a submodule or " -"old setups have the submodules git directory inside the submodule instead of " -"embedded into the superprojects git directory." +"This means that `git reset <paths>` is the opposite of `git add <paths>`." msgstr "" #. type: Plain text -#: en/git-submodule.txt:268 -msgid "This command is recursive by default." +#: en/git-reset.txt:36 +msgid "" +"After running `git reset <paths>` to update the index entry, you can use " +"linkgit:git-checkout[1] to check the contents out of the index to the " +"working tree. Alternatively, using linkgit:git-checkout[1] and specifying a " +"commit, you can copy the contents of a path out of a commit to the index and " +"to the working tree in one go." msgstr "" -#. type: Plain text -#: en/git-submodule.txt:274 -msgid "Only print error messages." +#. type: Labeled list +#: en/git-reset.txt:37 +#, no-wrap +msgid "'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]" msgstr "" #. type: Plain text -#: en/git-submodule.txt:278 +#: en/git-reset.txt:41 msgid "" -"This option is only valid for the deinit command. Unregister all submodules " -"in the working tree." +"Interactively select hunks in the difference between the index and `<tree-" +"ish>` (defaults to `HEAD`). The chosen hunks are applied in reverse to the " +"index." msgstr "" #. type: Plain text -#: en/git-submodule.txt:286 +#: en/git-reset.txt:45 msgid "" -"Branch of repository to add as submodule. The name of the branch is " -"recorded as `submodule.<name>.branch` in `.gitmodules` for `update " -"--remote`. A special value of `.` is used to indicate that the name of the " -"branch in the submodule should be the same name as the current branch in the " -"current repository." +"This means that `git reset -p` is the opposite of `git add -p`, i.e. you " +"can use it to selectively reset hunks. See the ``Interactive Mode'' section " +"of linkgit:git-add[1] to learn how to operate the `--patch` mode." msgstr "" -#. type: Plain text -#: en/git-submodule.txt:299 -msgid "" -"This option is only valid for add, deinit and update commands. When running " -"add, allow adding an otherwise ignored submodule path. When running deinit " -"the submodule working trees will be removed even if they contain local " -"changes. When running update (only effective with the checkout procedure), " -"throw away local changes in submodules when switching to a different commit; " -"and always run a checkout operation in the submodule, even if the commit " -"listed in the index of the containing repository matches the commit checked " -"out in the submodule." +#. type: Labeled list +#: en/git-reset.txt:46 +#, no-wrap +msgid "'git reset' [<mode>] [<commit>]" msgstr "" #. type: Plain text -#: en/git-submodule.txt:304 +#: en/git-reset.txt:51 msgid "" -"This option is only valid for status and summary commands. These commands " -"typically use the commit found in the submodule HEAD, but with this option, " -"the commit stored in the index is used instead." +"This form resets the current branch head to `<commit>` and possibly updates " +"the index (resetting it to the tree of `<commit>`) and the working tree " +"depending on `<mode>`. If `<mode>` is omitted, defaults to `--mixed`. The " +"`<mode>` must be one of the following:" msgstr "" #. type: Labeled list -#: en/git-submodule.txt:305 +#: en/git-reset.txt:53 #, no-wrap -msgid "--files" +msgid "--soft" msgstr "" #. type: Plain text -#: en/git-submodule.txt:309 +#: en/git-reset.txt:58 msgid "" -"This option is only valid for the summary command. This command compares the " -"commit in the index with that in the submodule HEAD when this option is " -"used." +"Does not touch the index file or the working tree at all (but resets the " +"head to `<commit>`, just like all modes do). This leaves all your changed " +"files \"Changes to be committed\", as `git status` would put it." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:311 +#: en/git-reset.txt:59 #, no-wrap -msgid "--summary-limit" +msgid "--mixed" msgstr "" #. type: Plain text -#: en/git-submodule.txt:317 +#: en/git-reset.txt:63 msgid "" -"This option is only valid for the summary command. Limit the summary size " -"(number of commits shown in total). Giving 0 will disable the summary; a " -"negative number means unlimited (the default). This limit only applies to " -"modified submodules. The size is always limited to 1 for " -"added/deleted/typechanged submodules." +"Resets the index but not the working tree (i.e., the changed files are " +"preserved but not marked for commit) and reports what has not been updated. " +"This is the default action." +msgstr "" + +#. type: Plain text +#: en/git-reset.txt:66 +msgid "" +"If `-N` is specified, removed paths are marked as intent-to-add (see linkgit:" +"git-add[1])." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:318 +#: en/git-reset.txt:67 #, no-wrap -msgid "--remote" +msgid "--hard" msgstr "" #. type: Plain text -#: en/git-submodule.txt:327 +#: en/git-reset.txt:70 msgid "" -"This option is only valid for the update command. Instead of using the " -"superproject's recorded SHA-1 to update the submodule, use the status of the " -"submodule's remote-tracking branch. The remote used is branch's remote " -"(`branch.<name>.remote`), defaulting to `origin`. The remote branch used " -"defaults to `master`, but the branch name may be overridden by setting the " -"`submodule.<name>.branch` option in either `.gitmodules` or `.git/config` " -"(with `.git/config` taking precedence)." +"Resets the index and working tree. Any changes to tracked files in the " +"working tree since `<commit>` are discarded." msgstr "" #. type: Plain text -#: en/git-submodule.txt:333 +#: en/git-reset.txt:78 msgid "" -"This works for any of the supported update procedures (`--checkout`, " -"`--rebase`, etc.). The only change is the source of the target SHA-1. For " -"example, `submodule update --remote --merge` will merge upstream submodule " -"changes into the submodules, while `submodule update --merge` will merge " -"superproject gitlink changes into the submodules." +"Resets the index and updates the files in the working tree that are " +"different between `<commit>` and `HEAD`, but keeps those which are different " +"between the index and working tree (i.e. which have changes which have not " +"been added). If a file that is different between `<commit>` and the index " +"has unstaged changes, reset is aborted." msgstr "" #. type: Plain text -#: en/git-submodule.txt:338 +#: en/git-reset.txt:81 msgid "" -"In order to ensure a current tracking branch state, `update --remote` " -"fetches the submodule's remote repository before calculating the SHA-1. If " -"you don't want to fetch, you should use `submodule update --remote " -"--no-fetch`." +"In other words, `--merge` does something like a `git read-tree -u -m " +"<commit>`, but carries forward unmerged index entries." msgstr "" #. type: Plain text -#: en/git-submodule.txt:348 +#: en/git-reset.txt:87 msgid "" -"Use this option to integrate changes from the upstream subproject with your " -"submodule's current HEAD. Alternatively, you can run `git pull` from the " -"submodule, which is equivalent except for the remote branch name: `update " -"--remote` uses the default upstream repository and " -"`submodule.<name>.branch`, while `git pull` uses the submodule's " -"`branch.<name>.merge`. Prefer `submodule.<name>.branch` if you want to " -"distribute the default upstream branch with the superproject and " -"`branch.<name>.merge` if you want a more native feel while working in the " -"submodule itself." +"Resets index entries and updates files in the working tree that are " +"different between `<commit>` and `HEAD`. If a file that is different " +"between `<commit>` and `HEAD` has local changes, reset is aborted." +msgstr "" + +#. type: Plain text +#: en/git-reset.txt:91 +msgid "" +"If you want to undo a commit other than the latest on a branch, linkgit:git-" +"revert[1] is your friend." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:350 +#: en/git-reset.txt:98 #, no-wrap -msgid "--no-fetch" +msgid "--no-quiet" msgstr "" #. type: Plain text -#: en/git-submodule.txt:353 +#: en/git-reset.txt:102 msgid "" -"This option is only valid for the update command. Don't fetch new objects " -"from the remote site." +"Be quiet, only report errors. The default behavior is set by the `reset." +"quiet` config option. `--quiet` and `--no-quiet` will override the default " +"behavior." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:354 +#: en/git-reset.txt:107 #, no-wrap -msgid "--checkout" +msgid "Undo add" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:362 +#. type: delimited block - +#: en/git-reset.txt:115 +#, no-wrap msgid "" -"This option is only valid for the update command. Checkout the commit " -"recorded in the superproject on a detached HEAD in the submodule. This is " -"the default behavior, the main use of this option is to override " -"`submodule.$name.update` when set to a value other than `checkout`. If the " -"key `submodule.$name.update` is either not explicitly set or set to " -"`checkout`, this option is implicit." +"$ edit <1>\n" +"$ git add frotz.c filfre.c\n" +"$ mailx <2>\n" +"$ git reset <3>\n" +"$ git pull git://info.example.com/ nitfol <4>\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:372 +#: en/git-reset.txt:121 msgid "" -"This option is only valid for the update command. Merge the commit recorded " -"in the superproject into the current branch of the submodule. If this option " -"is given, the submodule's HEAD will not be detached. If a merge failure " -"prevents this process, you will have to resolve the resulting conflicts " -"within the submodule with the usual conflict resolution tools. If the key " -"`submodule.$name.update` is set to `merge`, this option is implicit." +"You are happily working on something, and find the changes in these files " +"are in good order. You do not want to see them when you run `git diff`, " +"because you plan to work on other files and changes with these files are " +"distracting." msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:373 -#, no-wrap -msgid "--rebase" +#. type: Plain text +#: en/git-reset.txt:122 +msgid "Somebody asks you to pull, and the changes sound worthy of merging." msgstr "" #. type: Plain text -#: en/git-submodule.txt:381 +#: en/git-reset.txt:127 msgid "" -"This option is only valid for the update command. Rebase the current branch " -"onto the commit recorded in the superproject. If this option is given, the " -"submodule's HEAD will not be detached. If a merge failure prevents this " -"process, you will have to resolve these failures with " -"linkgit:git-rebase[1]. If the key `submodule.$name.update` is set to " -"`rebase`, this option is implicit." +"However, you already dirtied the index (i.e. your index does not match the " +"`HEAD` commit). But you know the pull you are going to make does not affect " +"`frotz.c` or `filfre.c`, so you revert the index changes for these two " +"files. Your changes in working tree remain there." +msgstr "" + +#. type: Plain text +#: en/git-reset.txt:129 +msgid "" +"Then you can pull and merge, leaving `frotz.c` and `filfre.c` changes still " +"in the working tree." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:382 +#: en/git-reset.txt:130 #, no-wrap -msgid "--init" +msgid "Undo a commit and redo" +msgstr "" + +#. type: delimited block - +#: en/git-reset.txt:137 +#, no-wrap +msgid "" +"$ git commit ...\n" +"$ git reset --soft HEAD^ <1>\n" +"$ edit <2>\n" +"$ git commit -a -c ORIG_HEAD <3>\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:386 +#: en/git-reset.txt:142 msgid "" -"This option is only valid for the update command. Initialize all submodules " -"for which \"git submodule init\" has not been called so far before updating." +"This is most often done when you remembered what you just committed is " +"incomplete, or you misspelled your commit message, or both. Leaves working " +"tree as it was before \"reset\"." msgstr "" -#. type: Labeled list -#: en/git-submodule.txt:387 -#, no-wrap -msgid "--name" +#. type: Plain text +#: en/git-reset.txt:143 +msgid "Make corrections to working tree files." msgstr "" #. type: Plain text -#: en/git-submodule.txt:391 +#: en/git-reset.txt:146 msgid "" -"This option is only valid for the add command. It sets the submodule's name " -"to the given string instead of defaulting to its path. The name must be " -"valid as a directory name and may not end with a '/'." +"\"reset\" copies the old head to `.git/ORIG_HEAD`; redo the commit by " +"starting with its log message. If you do not need to edit the message " +"further, you can give `-C` option instead." +msgstr "" + +#. type: Plain text +#: en/git-reset.txt:148 +msgid "See also the `--amend` option to linkgit:git-commit[1]." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:392 +#: en/git-reset.txt:149 #, no-wrap -msgid "--reference <repository>" +msgid "Undo a commit, making it a topic branch" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:396 +#. type: delimited block - +#: en/git-reset.txt:155 +#, no-wrap msgid "" -"This option is only valid for add and update commands. These commands " -"sometimes need to clone a remote repository. In this case, this option will " -"be passed to the linkgit:git-clone[1] command." +"$ git branch topic/wip <1>\n" +"$ git reset --hard HEAD~3 <2>\n" +"$ git checkout topic/wip <3>\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:399 -#, no-wrap +#: en/git-reset.txt:161 msgid "" -"*NOTE*: Do *not* use this option unless you have read the note\n" -"for linkgit:git-clone[1]'s `--reference` and `--shared` options carefully.\n" +"You have made some commits, but realize they were premature to be in the " +"`master` branch. You want to continue polishing them in a topic branch, so " +"create `topic/wip` branch off of the current `HEAD`." msgstr "" #. type: Plain text -#: en/git-submodule.txt:405 -msgid "" -"This option is only valid for foreach, update, status and sync commands. " -"Traverse submodules recursively. The operation is performed not only in the " -"submodules of the current repo, but also in any nested submodules inside " -"those submodules (and so on)." +#: en/git-reset.txt:162 +msgid "Rewind the master branch to get rid of those three commits." +msgstr "" + +#. type: Plain text +#: en/git-reset.txt:163 +msgid "Switch to `topic/wip` branch and keep working." msgstr "" #. type: Labeled list -#: en/git-submodule.txt:406 +#: en/git-reset.txt:164 #, no-wrap -msgid "--depth" +msgid "Undo commits permanently" +msgstr "" + +#. type: delimited block - +#: en/git-reset.txt:169 +#, no-wrap +msgid "" +"$ git commit ...\n" +"$ git reset --hard HEAD~3 <1>\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:410 +#: en/git-reset.txt:176 msgid "" -"This option is valid for add and update commands. Create a 'shallow' clone " -"with a history truncated to the specified number of revisions. See " -"linkgit:git-clone[1]" +"The last three commits (`HEAD`, `HEAD^`, and `HEAD~2`) were bad and you do " +"not want to ever see them again. Do *not* do this if you have already given " +"these commits to somebody else. (See the \"RECOVERING FROM UPSTREAM REBASE" +"\" section in linkgit:git-rebase[1] for the implications of doing so.)" msgstr "" #. type: Labeled list -#: en/git-submodule.txt:411 +#: en/git-reset.txt:177 #, no-wrap -msgid "--[no-]recommend-shallow" +msgid "Undo a merge or pull" msgstr "" -#. type: Plain text -#: en/git-submodule.txt:416 +#. type: delimited block - +#: en/git-reset.txt:189 +#, no-wrap msgid "" -"This option is only valid for the update command. The initial clone of a " -"submodule will use the recommended `submodule.<name>.shallow` as provided by " -"the .gitmodules file by default. To ignore the suggestions use " -"`--no-recommend-shallow`." +"$ git pull <1>\n" +"Auto-merging nitfol\n" +"CONFLICT (content): Merge conflict in nitfol\n" +"Automatic merge failed; fix conflicts and then commit the result.\n" +"$ git reset --hard <2>\n" +"$ git pull . topic/branch <3>\n" +"Updating from 41223... to 13134...\n" +"Fast-forward\n" +"$ git reset --hard ORIG_HEAD <4>\n" msgstr "" #. type: Plain text -#: en/git-submodule.txt:422 +#: en/git-reset.txt:194 msgid "" -"This option is only valid for the update command. Clone new submodules in " -"parallel with as many jobs. Defaults to the `submodule.fetchJobs` option." +"Try to update from the upstream resulted in a lot of conflicts; you were not " +"ready to spend a lot of time merging right now, so you decide to do that " +"later." msgstr "" #. type: Plain text -#: en/git-submodule.txt:427 +#: en/git-reset.txt:197 msgid "" -"Paths to submodule(s). When specified this will restrict the command to only " -"operate on the submodules found at the specified paths. (This argument is " -"required with add)." +"\"pull\" has not made merge commit, so `git reset --hard` which is a synonym " +"for `git reset --hard HEAD` clears the mess from the index file and the " +"working tree." msgstr "" #. type: Plain text -#: en/git-submodule.txt:435 +#: en/git-reset.txt:199 msgid "" -"When initializing submodules, a .gitmodules file in the top-level directory " -"of the containing repository is used to find the url of each submodule. " -"This file should be formatted in the same way as `$GIT_DIR/config`. The key " -"to each submodule url is \"submodule.$name.url\". See linkgit:gitmodules[5] " -"for details." -msgstr "" - -#. type: Title = -#: en/git-svn.txt:2 -#, no-wrap -msgid "git-svn(1)" +"Merge a topic branch into the current branch, which resulted in a fast-" +"forward." msgstr "" #. type: Plain text -#: en/git-svn.txt:7 -msgid "git-svn - Bidirectional operation between a Subversion repository and Git" +#: en/git-reset.txt:204 +msgid "" +"But you decided that the topic branch is not ready for public consumption " +"yet. \"pull\" or \"merge\" always leaves the original tip of the current " +"branch in `ORIG_HEAD`, so resetting hard to it brings your index file and " +"the working tree back to that state, and resets the tip of the branch to " +"that commit." msgstr "" -#. type: Plain text -#: en/git-svn.txt:12 +#. type: Labeled list +#: en/git-reset.txt:205 #, no-wrap -msgid "'git svn' <command> [options] [arguments]\n" +msgid "Undo a merge or pull inside a dirty working tree" msgstr "" -#. type: Plain text -#: en/git-svn.txt:18 +#. type: delimited block - +#: en/git-reset.txt:214 +#, no-wrap msgid "" -"'git svn' is a simple conduit for changesets between Subversion and Git. It " -"provides a bidirectional flow of changes between a Subversion and a Git " -"repository." +"$ git pull <1>\n" +"Auto-merging nitfol\n" +"Merge made by recursive.\n" +" nitfol | 20 +++++----\n" +" ...\n" +"$ git reset --merge ORIG_HEAD <2>\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:23 +#: en/git-reset.txt:220 msgid "" -"'git svn' can track a standard Subversion repository, following the common " -"\"trunk/branches/tags\" layout, with the --stdlayout option. It can also " -"follow branches and tags in any layout with the -T/-t/-b options (see " -"options to 'init' below, and also the 'clone' command)." +"Even if you may have local modifications in your working tree, you can " +"safely say `git pull` when you know that the change in the other branch does " +"not overlap with them." msgstr "" #. type: Plain text -#: en/git-svn.txt:27 +#: en/git-reset.txt:225 msgid "" -"Once tracking a Subversion repository (with any of the above methods), the " -"Git repository can be updated from Subversion by the 'fetch' command and " -"Subversion updated from Git by the 'dcommit' command." +"After inspecting the result of the merge, you may find that the change in " +"the other branch is unsatisfactory. Running `git reset --hard ORIG_HEAD` " +"will let you go back to where you were, but it will discard your local " +"changes, which you do not want. `git reset --merge` keeps your local " +"changes." msgstr "" #. type: Labeled list -#: en/git-svn.txt:31 +#: en/git-reset.txt:227 en/git-stash.txt:229 #, no-wrap -msgid "'init'" +msgid "Interrupted workflow" msgstr "" #. type: Plain text -#: en/git-svn.txt:39 +#: en/git-reset.txt:233 msgid "" -"Initializes an empty Git repository with additional metadata directories for " -"'git svn'. The Subversion URL may be specified as a command-line argument, " -"or as full URL arguments to -T/-t/-b. Optionally, the target directory to " -"operate on can be specified as a second argument. Normally this command " -"initializes the current directory." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:40 -#, no-wrap -msgid "-T<trunk_subdir>" +"Suppose you are interrupted by an urgent fix request while you are in the " +"middle of a large change. The files in your working tree are not in any " +"shape to be committed yet, but you need to get to the other branch for a " +"quick bugfix." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:41 +#. type: delimited block - +#: en/git-reset.txt:244 #, no-wrap -msgid "--trunk=<trunk_subdir>" +msgid "" +"$ git checkout feature ;# you were working in \"feature\" branch and\n" +"$ work work work ;# got interrupted\n" +"$ git commit -a -m \"snapshot WIP\" <1>\n" +"$ git checkout master\n" +"$ fix fix fix\n" +"$ git commit ;# commit with real log\n" +"$ git checkout feature\n" +"$ git reset --soft HEAD^ ;# go back to WIP state <2>\n" +"$ git reset <3>\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:42 -#, no-wrap -msgid "-t<tags_subdir>" +#. type: Plain text +#: en/git-reset.txt:247 +msgid "This commit will get blown away so a throw-away log message is OK." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:43 -#, no-wrap -msgid "--tags=<tags_subdir>" +#. type: Plain text +#: en/git-reset.txt:249 +msgid "" +"This removes the 'WIP' commit from the commit history, and sets your working " +"tree to the state just before you made that snapshot." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:44 -#, no-wrap -msgid "-b<branches_subdir>" +#. type: Plain text +#: en/git-reset.txt:252 +msgid "" +"At this point the index file still has all the WIP changes you committed as " +"'snapshot WIP'. This updates the index to show your WIP files as " +"uncommitted." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:45 -#, no-wrap -msgid "--branches=<branches_subdir>" +#. type: Plain text +#: en/git-reset.txt:254 +msgid "See also linkgit:git-stash[1]." msgstr "" #. type: Labeled list -#: en/git-svn.txt:47 +#: en/git-reset.txt:255 #, no-wrap -msgid "--stdlayout" +msgid "Reset a single file in the index" msgstr "" #. type: Plain text -#: en/git-svn.txt:58 +#: en/git-reset.txt:260 msgid "" -"These are optional command-line options for init. Each of these flags can " -"point to a relative repository path (--tags=project/tags) or a full url " -"(--tags=https://foo.org/project/tags). You can specify more than one --tags " -"and/or --branches options, in case your Subversion repository places tags or " -"branches under multiple paths. The option --stdlayout is a shorthand way of " -"setting trunk,tags,branches as the relative paths, which is the Subversion " -"default. If any of the other options are given as well, they take " -"precedence." +"Suppose you have added a file to your index, but later decide you do not " +"want to add it to your commit. You can remove the file from the index while " +"keeping your changes with git reset." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:58 +#. type: delimited block - +#: en/git-reset.txt:265 #, no-wrap -msgid "--no-metadata" +msgid "" +"$ git reset -- frotz.c <1>\n" +"$ git commit -m \"Commit files in index\" <2>\n" +"$ git add frotz.c <3>\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:62 +#: en/git-reset.txt:269 msgid "" -"Set the 'noMetadata' option in the [svn-remote] config. This option is not " -"recommended, please read the 'svn.noMetadata' section of this manpage before " -"using this option." +"This removes the file from the index while keeping it in the working " +"directory." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:62 -#, no-wrap -msgid "--use-svm-props" +#. type: Plain text +#: en/git-reset.txt:270 +msgid "This commits all other changes in the index." msgstr "" #. type: Plain text -#: en/git-svn.txt:64 -msgid "Set the 'useSvmProps' option in the [svn-remote] config." +#: en/git-reset.txt:271 +msgid "Adds the file to the index again." msgstr "" #. type: Labeled list -#: en/git-svn.txt:64 +#: en/git-reset.txt:272 #, no-wrap -msgid "--use-svnsync-props" +msgid "Keep changes in working tree while discarding some previous commits" msgstr "" #. type: Plain text -#: en/git-svn.txt:66 -msgid "Set the 'useSvnsyncProps' option in the [svn-remote] config." +#: en/git-reset.txt:279 +msgid "" +"Suppose you are working on something and you commit it, and then you " +"continue working a bit more, but now you think that what you have in your " +"working tree should be in another branch that has nothing to do with what " +"you committed previously. You can start a new branch and reset it while " +"keeping the changes in your working tree." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:66 +#. type: delimited block - +#: en/git-reset.txt:288 #, no-wrap -msgid "--rewrite-root=<URL>" +msgid "" +"$ git tag start\n" +"$ git checkout -b branch1\n" +"$ edit\n" +"$ git commit ... <1>\n" +"$ edit\n" +"$ git checkout -b branch2 <2>\n" +"$ git reset --keep start <3>\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:68 -msgid "Set the 'rewriteRoot' option in the [svn-remote] config." +#: en/git-reset.txt:291 +msgid "This commits your first edits in `branch1`." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:68 -#, no-wrap -msgid "--rewrite-uuid=<UUID>" +#. type: Plain text +#: en/git-reset.txt:295 +msgid "" +"In the ideal world, you could have realized that the earlier commit did not " +"belong to the new topic when you created and switched to `branch2` (i.e. " +"`git checkout -b branch2 start`), but nobody is perfect." msgstr "" #. type: Plain text -#: en/git-svn.txt:70 -msgid "Set the 'rewriteUUID' option in the [svn-remote] config." +#: en/git-reset.txt:297 +msgid "" +"But you can use `reset --keep` to remove the unwanted commit after you " +"switched to `branch2`." msgstr "" #. type: Labeled list -#: en/git-svn.txt:70 +#: en/git-reset.txt:298 #, no-wrap -msgid "--username=<user>" +msgid "Split a commit apart into a sequence of commits" msgstr "" #. type: Plain text -#: en/git-svn.txt:75 +#: en/git-reset.txt:306 msgid "" -"For transports that SVN handles authentication for (http, https, and plain " -"svn), specify the username. For other transports (e.g. `svn+ssh://`), you " -"must include the username in the URL, " -"e.g. `svn+ssh://foo@svn.bar.com/project`" +"Suppose that you have created lots of logically separate changes and " +"committed them together. Then, later you decide that it might be better to " +"have each logical chunk associated with its own commit. You can use git " +"reset to rewind history without changing the contents of your local files, " +"and then successively use `git add -p` to interactively select which hunks " +"to include into each commit, using `git commit -c` to pre-populate the " +"commit message." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:75 +#. type: delimited block - +#: en/git-reset.txt:316 #, no-wrap -msgid "--prefix=<prefix>" +msgid "" +"$ git reset -N HEAD^ <1>\n" +"$ git add -p <2>\n" +"$ git diff --cached <3>\n" +"$ git commit -c HEAD@{1} <4>\n" +"... <5>\n" +"$ git add ... <6>\n" +"$ git diff --cached <7>\n" +"$ git commit ... <8>\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:90 +#: en/git-reset.txt:322 msgid "" -"This allows one to specify a prefix which is prepended to the names of " -"remotes if trunk/branches/tags are specified. The prefix does not " -"automatically include a trailing slash, so be sure you include one in the " -"argument if that is what you want. If --branches/-b is specified, the " -"prefix must include a trailing slash. Setting a prefix (with a trailing " -"slash) is strongly encouraged in any case, as your SVN-tracking refs will " -"then be located at \"refs/remotes/$prefix/*\", which is compatible with " -"Git's own remote-tracking ref layout (refs/remotes/$remote/*). Setting a " -"prefix is also useful if you wish to track multiple projects that share a " -"common repository. By default, the prefix is set to 'origin/'." +"First, reset the history back one commit so that we remove the original " +"commit, but leave the working tree with all the changes. The -N ensures that " +"any new files added with `HEAD` are still marked so that `git add -p` will " +"find them." msgstr "" #. type: Plain text -#: en/git-svn.txt:97 +#: en/git-reset.txt:326 msgid "" -"Before Git v2.0, the default prefix was \"\" (no prefix). This meant that " -"SVN-tracking refs were put at \"refs/remotes/*\", which is incompatible with " -"how Git's own remote-tracking refs are organized. If you still want the old " -"default, you can get it by passing `--prefix \"\"` on the command line " -"(`--prefix=\"\"` may not work if your Perl's Getopt::Long is < v2.37)." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:98 en/git-svn.txt:141 -#, no-wrap -msgid "--ignore-paths=<regex>" +"Next, we interactively select diff hunks to add using the `git add -p` " +"facility. This will ask you about each diff hunk in sequence and you can use " +"simple commands such as \"yes, include this\", \"No don't include this\" or " +"even the very powerful \"edit\" facility." msgstr "" #. type: Plain text -#: en/git-svn.txt:102 +#: en/git-reset.txt:330 msgid "" -"When passed to 'init' or 'clone' this regular expression will be preserved " -"as a config key. See 'fetch' for a description of `--ignore-paths`." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:102 en/git-svn.txt:170 -#, no-wrap -msgid "--include-paths=<regex>" +"Once satisfied with the hunks you want to include, you should verify what " +"has been prepared for the first commit by using `git diff --cached`. This " +"shows all the changes that have been moved into the index and are about to " +"be committed." msgstr "" #. type: Plain text -#: en/git-svn.txt:106 +#: en/git-reset.txt:337 msgid "" -"When passed to 'init' or 'clone' this regular expression will be preserved " -"as a config key. See 'fetch' for a description of `--include-paths`." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:106 -#, no-wrap -msgid "--no-minimize-url" +"Next, commit the changes stored in the index. The `-c` option specifies to " +"pre-populate the commit message from the original message that you started " +"with in the first commit. This is helpful to avoid retyping it. The `HEAD@{1}" +"` is a special notation for the commit that `HEAD` used to be at prior to " +"the original reset commit (1 change ago). See linkgit:git-reflog[1] for " +"more details. You may also use any other valid commit reference." msgstr "" #. type: Plain text -#: en/git-svn.txt:117 +#: en/git-reset.txt:339 msgid "" -"When tracking multiple directories (using --stdlayout, --branches, or --tags " -"options), git svn will attempt to connect to the root (or highest allowed " -"level) of the Subversion repository. This default allows better tracking of " -"history if entire projects are moved within a repository, but may cause " -"issues on repositories where read access restrictions are in place. Passing " -"`--no-minimize-url` will allow git svn to accept URLs as-is without " -"attempting to connect to a higher level directory. This option is off by " -"default when only one URL/branch is tracked (it would do little good)." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:118 -#, no-wrap -msgid "'fetch'" +"You can repeat steps 2-4 multiple times to break the original code into any " +"number of commits." msgstr "" #. type: Plain text -#: en/git-svn.txt:123 +#: en/git-reset.txt:342 msgid "" -"Fetch unfetched revisions from the Subversion remote we are tracking. The " -"name of the [svn-remote \"...\"] section in the $GIT_DIR/config file may be " -"specified as an optional command-line argument." +"Now you've split out many of the changes into their own commits, and might " +"no longer use the patch mode of `git add`, in order to select all remaining " +"uncommitted changes." msgstr "" #. type: Plain text -#: en/git-svn.txt:126 en/git-svn.txt:227 +#: en/git-reset.txt:345 msgid "" -"This automatically updates the rev_map if needed (see " -"'$GIT_DIR/svn/\\*\\*/.rev_map.*' in the FILES section below for details)." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:127 -#, no-wrap -msgid "--localtime" +"Once again, check to verify that you've included what you want to. You may " +"also wish to verify that git diff doesn't show any remaining changes to be " +"committed later." msgstr "" #. type: Plain text -#: en/git-svn.txt:131 -msgid "" -"Store Git commit times in the local time zone instead of UTC. This makes " -"'git log' (even without --date=local) show the same times that `svn log` " -"would in the local time zone." +#: en/git-reset.txt:346 +msgid "And finally create the final commit." msgstr "" #. type: Plain text -#: en/git-svn.txt:137 -msgid "" -"This doesn't interfere with interoperating with the Subversion repository " -"you cloned from, but if you wish for your local Git repository to be able to " -"interoperate with someone else's local Git repository, either don't use this " -"option or you should both use it in the same local time zone." +#: en/git-reset.txt:352 +msgid "The tables below show what happens when running:" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:138 en/git-svn.txt:505 +#. type: delimited block - +#: en/git-reset.txt:355 #, no-wrap -msgid "--parent" +msgid "git reset --option target\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:140 -msgid "Fetch only from the SVN parent of the current HEAD." +#: en/git-reset.txt:359 +msgid "" +"to reset the `HEAD` to another commit (`target`) with the different reset " +"options depending on the state of the files." msgstr "" #. type: Plain text -#: en/git-svn.txt:147 +#: en/git-reset.txt:368 msgid "" -"This allows one to specify a Perl regular expression that will cause " -"skipping of all matching paths from checkout from SVN. The `--ignore-paths` " -"option should match for every 'fetch' (including automatic fetches due to " -"'clone', 'dcommit', 'rebase', etc) on a given repository." +"In these tables, `A`, `B`, `C` and `D` are some different states of a file. " +"For example, the first line of the first table means that if a file is in " +"state `A` in the working tree, in state `B` in the index, in state `C` in " +"`HEAD` and in state `D` in the target, then `git reset --soft target` will " +"leave the file in the working tree in state `A` and in the index in state " +"`B`. It resets (i.e. moves) the `HEAD` (i.e. the tip of the current branch, " +"if you are on one) to `target` (which has the file in state `D`)." msgstr "" -#. type: Plain text -#: en/git-svn.txt:150 +#. type: delimited block . +#: en/git-reset.txt:377 #, no-wrap -msgid "config key: svn-remote.<name>.ignore-paths\n" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" A B C D --soft A B D\n" +"\t\t\t --mixed A D D\n" +"\t\t\t --hard D D D\n" +"\t\t\t --merge (disallowed)\n" +"\t\t\t --keep (disallowed)\n" msgstr "" -#. type: Plain text -#: en/git-svn.txt:153 +#. type: delimited block . +#: en/git-reset.txt:387 +#, no-wrap msgid "" -"If the ignore-paths configuration key is set, and the command-line option is " -"also given, both regular expressions will be used." +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" A B C C --soft A B C\n" +"\t\t\t --mixed A C C\n" +"\t\t\t --hard C C C\n" +"\t\t\t --merge (disallowed)\n" +"\t\t\t --keep A C C\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:157 +#. type: delimited block . +#: en/git-reset.txt:397 #, no-wrap -msgid "Skip \"doc*\" directory for every fetch" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" B B C D --soft B B D\n" +"\t\t\t --mixed B D D\n" +"\t\t\t --hard D D D\n" +"\t\t\t --merge D D D\n" +"\t\t\t --keep (disallowed)\n" msgstr "" -#. type: delimited block - -#: en/git-svn.txt:161 +#. type: delimited block . +#: en/git-reset.txt:407 #, no-wrap -msgid "--ignore-paths=\"^doc\"\n" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" B B C C --soft B B C\n" +"\t\t\t --mixed B C C\n" +"\t\t\t --hard C C C\n" +"\t\t\t --merge C C C\n" +"\t\t\t --keep B C C\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:163 +#. type: delimited block . +#: en/git-reset.txt:417 #, no-wrap -msgid "Skip \"branches\" and \"tags\" of first level directories" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" B C C D --soft B C D\n" +"\t\t\t --mixed B D D\n" +"\t\t\t --hard D D D\n" +"\t\t\t --merge (disallowed)\n" +"\t\t\t --keep (disallowed)\n" msgstr "" -#. type: delimited block - -#: en/git-svn.txt:167 +#. type: delimited block . +#: en/git-reset.txt:427 #, no-wrap -msgid "--ignore-paths=\"^[^/]+/(?:branches|tags)\"\n" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" B C C C --soft B C C\n" +"\t\t\t --mixed B C C\n" +"\t\t\t --hard C C C\n" +"\t\t\t --merge B C C\n" +"\t\t\t --keep B C C\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:177 +#: en/git-reset.txt:437 msgid "" -"This allows one to specify a Perl regular expression that will cause the " -"inclusion of only matching paths from checkout from SVN. The " -"`--include-paths` option should match for every 'fetch' (including automatic " -"fetches due to 'clone', 'dcommit', 'rebase', etc) on a given " -"repository. `--ignore-paths` takes precedence over `--include-paths`." +"`reset --merge` is meant to be used when resetting out of a conflicted " +"merge. Any mergy operation guarantees that the working tree file that is " +"involved in the merge does not have local change wrt the index before it " +"starts, and that it writes the result out to the working tree. So if we see " +"some difference between the index and the target and also between the index " +"and the working tree, then it means that we are not resetting out from a " +"state that a mergy operation left after failing with a conflict. That is why " +"we disallow `--merge` option in this case." msgstr "" #. type: Plain text -#: en/git-svn.txt:180 -#, no-wrap -msgid "config key: svn-remote.<name>.include-paths\n" +#: en/git-reset.txt:446 +msgid "" +"`reset --keep` is meant to be used when removing some of the last commits in " +"the current branch while keeping changes in the working tree. If there could " +"be conflicts between the changes in the commit we want to remove and the " +"changes in the working tree we want to keep, the reset is disallowed. That's " +"why it is disallowed if there are both changes between the working tree and " +"`HEAD`, and between `HEAD` and the target. To be safe, it is also disallowed " +"when there are unmerged entries." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:181 -#, no-wrap -msgid "--log-window-size=<n>" +#. type: Plain text +#: en/git-reset.txt:449 +msgid "The following tables show what happens when there are unmerged entries:" msgstr "" -#. type: Plain text -#: en/git-svn.txt:187 +#. type: delimited block . +#: en/git-reset.txt:458 +#, no-wrap msgid "" -"Fetch <n> log entries per request when scanning Subversion history. The " -"default is 100. For very large Subversion repositories, larger values may be " -"needed for 'clone'/'fetch' to complete in reasonable time. But overly large " -"values may lead to higher memory usage and request timeouts." +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" X U A B --soft (disallowed)\n" +"\t\t\t --mixed X B B\n" +"\t\t\t --hard B B B\n" +"\t\t\t --merge B B B\n" +"\t\t\t --keep (disallowed)\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:188 +#. type: delimited block . +#: en/git-reset.txt:468 #, no-wrap -msgid "'clone'" +msgid "" +"working index HEAD target working index HEAD\n" +"----------------------------------------------------\n" +" X U A A --soft (disallowed)\n" +"\t\t\t --mixed X A A\n" +"\t\t\t --hard A A A\n" +"\t\t\t --merge A A A\n" +"\t\t\t --keep (disallowed)\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:198 -msgid "" -"Runs 'init' and 'fetch'. It will automatically create a directory based on " -"the basename of the URL passed to it; or if a second argument is passed; it " -"will create a directory and work within that. It accepts all arguments that " -"the 'init' and 'fetch' commands accept; with the exception of `--fetch-all` " -"and `--parent`. After a repository is cloned, the 'fetch' command will be " -"able to update revisions without affecting the working tree; and the " -"'rebase' command will be able to update the working tree with the latest " -"changes." +#: en/git-reset.txt:471 +msgid "`X` means any state and `U` means an unmerged index." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:199 +#. type: Title = +#: en/git-revert.txt:2 #, no-wrap -msgid "--preserve-empty-dirs" +msgid "git-revert(1)" msgstr "" #. type: Plain text -#: en/git-svn.txt:205 -msgid "" -"Create a placeholder file in the local Git repository for each empty " -"directory fetched from Subversion. This includes directories that become " -"empty by removing all entries in the Subversion repository (but not the " -"directory itself). The placeholder files are also tracked and removed when " -"no longer necessary." +#: en/git-revert.txt:7 +msgid "git-revert - Revert some existing commits" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:206 +#. type: Plain text +#: en/git-revert.txt:15 #, no-wrap -msgid "--placeholder-filename=<filename>" +msgid "" +"'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] <commit>...\n" +"'git revert' --continue\n" +"'git revert' --quit\n" +"'git revert' --abort\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:209 +#: en/git-revert.txt:23 msgid "" -"Set the name of placeholder files created by --preserve-empty-dirs. " -"Default: \".gitignore\"" +"Given one or more existing commits, revert the changes that the related " +"patches introduce, and record some new commits that record them. This " +"requires your working tree to be clean (no modifications from the HEAD " +"commit)." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:210 -#, no-wrap -msgid "'rebase'" +#. type: Plain text +#: en/git-revert.txt:32 +msgid "" +"Note: 'git revert' is used to record some new commits to reverse the effect " +"of some earlier commits (often only a faulty one). If you want to throw " +"away all uncommitted changes in your working directory, you should see " +"linkgit:git-reset[1], particularly the `--hard` option. If you want to " +"extract specific files as they were in another commit, you should see " +"linkgit:git-checkout[1], specifically the `git checkout <commit> -- " +"<filename>` syntax. Take care with these alternatives as both will discard " +"uncommitted changes in your working directory." msgstr "" #. type: Plain text -#: en/git-svn.txt:213 +#: en/git-revert.txt:42 msgid "" -"This fetches revisions from the SVN parent of the current HEAD and rebases " -"the current (uncommitted to SVN) work against it." +"Commits to revert. For a more complete list of ways to spell commit names, " +"see linkgit:gitrevisions[7]. Sets of commits can also be given but no " +"traversal is done by default, see linkgit:git-rev-list[1] and its `--no-" +"walk` option." msgstr "" #. type: Plain text -#: en/git-svn.txt:217 +#: en/git-revert.txt:48 msgid "" -"This works similarly to `svn update` or 'git pull' except that it preserves " -"linear history with 'git rebase' instead of 'git merge' for ease of " -"dcommitting with 'git svn'." +"With this option, 'git revert' will let you edit the commit message prior to " +"committing the revert. This is the default if you run the command from a " +"terminal." msgstr "" #. type: Plain text -#: en/git-svn.txt:221 +#: en/git-revert.txt:56 msgid "" -"This accepts all options that 'git svn fetch' and 'git rebase' accept. " -"However, `--fetch-all` only fetches from the current [svn-remote], and not " -"all [svn-remote] definitions." +"Usually you cannot revert a merge because you do not know which side of the " +"merge should be considered the mainline. This option specifies the parent " +"number (starting from 1) of the mainline and allows revert to reverse the " +"change relative to the specified parent." msgstr "" #. type: Plain text -#: en/git-svn.txt:224 +#: en/git-revert.txt:61 msgid "" -"Like 'git rebase'; this requires that the working tree be clean and have no " -"uncommitted changes." +"Reverting a merge commit declares that you will never want the tree changes " +"brought in by the merge. As a result, later merges will only bring in tree " +"changes introduced by commits that are not ancestors of the previously " +"reverted merge. This may or may not be what you want." msgstr "" #. type: Plain text -#: en/git-svn.txt:232 +#: en/git-revert.txt:64 msgid "" -"Do not fetch remotely; only run 'git rebase' against the last fetched commit " -"from the upstream SVN." +"See the link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] " +"for more details." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:233 -#, no-wrap -msgid "'dcommit'" +#. type: Plain text +#: en/git-revert.txt:68 +msgid "" +"With this option, 'git revert' will not start the commit message editor." msgstr "" #. type: Plain text -#: en/git-svn.txt:238 +#: en/git-revert.txt:79 msgid "" -"Commit each diff from the current branch directly to the SVN repository, and " -"then rebase or reset (depending on whether or not there is a diff between " -"SVN and head). This will create a revision in SVN for each commit in Git." +"Usually the command automatically creates some commits with commit log " +"messages stating which commits were reverted. This flag applies the changes " +"necessary to revert the named commits to your working tree and the index, " +"but does not make the commits. In addition, when this option is used, your " +"index does not have to match the HEAD commit. The revert is done against " +"the beginning state of your index." msgstr "" #. type: Plain text -#: en/git-svn.txt:242 +#: en/git-revert.txt:82 msgid "" -"When an optional Git branch name (or a Git commit object name) is specified " -"as an argument, the subcommand works on the specified branch, not on the " -"current branch." +"This is useful when reverting more than one commits' effect to your index in " +"a row." msgstr "" -#. type: Plain text -#: en/git-svn.txt:244 -msgid "Use of 'dcommit' is preferred to 'set-tree' (below)." +#. type: Labeled list +#: en/git-revert.txt:110 +#, no-wrap +msgid "`git revert HEAD~3`" msgstr "" #. type: Plain text -#: en/git-svn.txt:247 -msgid "After committing, do not rebase or reset." +#: en/git-revert.txt:114 +msgid "" +"Revert the changes specified by the fourth last commit in HEAD and create a " +"new commit with the reverted changes." msgstr "" #. type: Labeled list -#: en/git-svn.txt:247 +#: en/git-revert.txt:115 #, no-wrap -msgid "--commit-url <URL>" +msgid "`git revert -n master~5..master~2`" msgstr "" #. type: Plain text -#: en/git-svn.txt:253 +#: en/git-revert.txt:122 msgid "" -"Commit to this SVN URL (the full path). This is intended to allow existing " -"'git svn' repositories created with one transport method (e.g. `svn://` or " -"`http://` for anonymous read) to be reused if a user is later given access " -"to an alternate transport method (e.g. `svn+ssh://` or `https://`) for " -"commit." +"Revert the changes done by commits from the fifth last commit in master " +"(included) to the third last commit in master (included), but do not create " +"any commit with the reverted changes. The revert only modifies the working " +"tree and the index." msgstr "" -#. type: Plain text -#: en/git-svn.txt:257 +#. type: Title = +#: en/git-rev-list.txt:2 #, no-wrap -msgid "" -"config key: svn-remote.<name>.commiturl\n" -"config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl " -"options)\n" +msgid "git-rev-list(1)" msgstr "" #. type: Plain text -#: en/git-svn.txt:261 -msgid "" -"Note that the SVN URL of the commiturl config key includes the SVN branch. " -"If you rather want to set the commit URL for an entire SVN repository use " -"svn-remote.<name>.pushurl instead." +#: en/git-rev-list.txt:7 +msgid "git-rev-list - Lists commit objects in reverse chronological order" msgstr "" #. type: Plain text -#: en/git-svn.txt:264 +#: en/git-rev-list.txt:64 +#, no-wrap msgid "" -"Using this option for any other purpose (don't ask) is very strongly " -"discouraged." +"'git rev-list' [ --max-count=<number> ]\n" +"\t [ --skip=<number> ]\n" +"\t [ --max-age=<timestamp> ]\n" +"\t [ --min-age=<timestamp> ]\n" +"\t [ --sparse ]\n" +"\t [ --merges ]\n" +"\t [ --no-merges ]\n" +"\t [ --min-parents=<number> ]\n" +"\t [ --no-min-parents ]\n" +"\t [ --max-parents=<number> ]\n" +"\t [ --no-max-parents ]\n" +"\t [ --first-parent ]\n" +"\t [ --remove-empty ]\n" +"\t [ --full-history ]\n" +"\t [ --not ]\n" +"\t [ --all ]\n" +"\t [ --branches[=<pattern>] ]\n" +"\t [ --tags[=<pattern>] ]\n" +"\t [ --remotes[=<pattern>] ]\n" +"\t [ --glob=<glob-pattern> ]\n" +"\t [ --ignore-missing ]\n" +"\t [ --stdin ]\n" +"\t [ --quiet ]\n" +"\t [ --topo-order ]\n" +"\t [ --parents ]\n" +"\t [ --timestamp ]\n" +"\t [ --left-right ]\n" +"\t [ --left-only ]\n" +"\t [ --right-only ]\n" +"\t [ --cherry-mark ]\n" +"\t [ --cherry-pick ]\n" +"\t [ --encoding=<encoding> ]\n" +"\t [ --(author|committer|grep)=<pattern> ]\n" +"\t [ --regexp-ignore-case | -i ]\n" +"\t [ --extended-regexp | -E ]\n" +"\t [ --fixed-strings | -F ]\n" +"\t [ --date=<format>]\n" +"\t [ [ --objects | --objects-edge | --objects-edge-aggressive ]\n" +"\t [ --unpacked ]\n" +"\t [ --filter=<filter-spec> [ --filter-print-omitted ] ] ]\n" +"\t [ --missing=<missing-action> ]\n" +"\t [ --pretty | --header ]\n" +"\t [ --bisect ]\n" +"\t [ --bisect-vars ]\n" +"\t [ --bisect-all ]\n" +"\t [ --merge ]\n" +"\t [ --reverse ]\n" +"\t [ --walk-reflogs ]\n" +"\t [ --no-walk ] [ --do-walk ]\n" +"\t [ --count ]\n" +"\t [ --use-bitmap-index ]\n" +"\t <commit>... [ \\-- <paths>... ]\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:265 -#, no-wrap -msgid "--mergeinfo=<mergeinfo>" +#. type: Plain text +#: en/git-rev-list.txt:72 +msgid "" +"List commits that are reachable by following the `parent` links from the " +"given commit(s), but exclude commits that are reachable from the one(s) " +"given with a '{caret}' in front of them. The output is given in reverse " +"chronological order by default." msgstr "" #. type: Plain text -#: en/git-svn.txt:272 +#: en/git-rev-list.txt:79 msgid "" -"Add the given merge information during the dcommit " -"(e.g. `--mergeinfo=\"/branches/foo:1-10\"`). All svn server versions can " -"store this information (as a property), and svn clients starting from " -"version 1.5 can make use of it. To specify merge information from multiple " -"branches, use a single space character between the branches " -"(`--mergeinfo=\"/branches/foo:1-10 /branches/bar:3,5-6,8\"`)" +"You can think of this as a set operation. Commits given on the command line " +"form a set of commits that are reachable from any of them, and then commits " +"reachable from any of the ones given with '{caret}' in front are subtracted " +"from that set. The remaining commits are what comes out in the command's " +"output. Various other options and paths parameters can be used to further " +"limit the result." msgstr "" #. type: Plain text -#: en/git-svn.txt:275 +#: en/git-rev-list.txt:81 +msgid "Thus, the following command:" +msgstr "" + +#. type: delimited block - +#: en/git-rev-list.txt:84 #, no-wrap -msgid "config key: svn.pushmergeinfo\n" +msgid "\t$ git rev-list foo bar ^baz\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:280 +#: en/git-rev-list.txt:88 msgid "" -"This option will cause git-svn to attempt to automatically populate the " -"svn:mergeinfo property in the SVN repository when possible. Currently, this " -"can only be done when dcommitting non-fast-forward merges where all parents " -"but the first have already been pushed into SVN." +"means \"list all the commits which are reachable from 'foo' or 'bar', but " +"not from 'baz'\"." msgstr "" #. type: Plain text -#: en/git-svn.txt:285 +#: en/git-rev-list.txt:92 msgid "" -"Ask the user to confirm that a patch set should actually be sent to SVN. " -"For each patch, one may answer \"yes\" (accept this patch), \"no\" (discard " -"this patch), \"all\" (accept all patches), or \"quit\"." +"A special notation \"'<commit1>'..'<commit2>'\" can be used as a short-hand " +"for \"{caret}'<commit1>' '<commit2>'\". For example, either of the following " +"may be used interchangeably:" +msgstr "" + +#. type: delimited block - +#: en/git-rev-list.txt:96 +#, no-wrap +msgid "" +"\t$ git rev-list origin..HEAD\n" +"\t$ git rev-list HEAD ^origin\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:288 +#: en/git-rev-list.txt:101 msgid "" -"'git svn dcommit' returns immediately if answer is \"no\" or \"quit\", " -"without committing anything to SVN." +"Another special notation is \"'<commit1>'...'<commit2>'\" which is useful " +"for merges. The resulting set of commits is the symmetric difference " +"between the two operands. The following two commands are equivalent:" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:289 +#. type: delimited block - +#: en/git-rev-list.txt:105 #, no-wrap -msgid "'branch'" +msgid "" +"\t$ git rev-list A B --not $(git merge-base --all A B)\n" +"\t$ git rev-list A...B\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:291 -msgid "Create a branch in the SVN repository." +#: en/git-rev-list.txt:112 +msgid "" +"'rev-list' is a very essential Git command, since it provides the ability to " +"build and traverse commit ancestry graphs. For this reason, it has a lot of " +"different options that enables it to be used by commands as different as " +"'git bisect' and 'git repack'." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:293 +#. type: Title = +#: en/git-rev-parse.txt:2 #, no-wrap -msgid "--message" +msgid "git-rev-parse(1)" msgstr "" #. type: Plain text -#: en/git-svn.txt:295 -msgid "Allows to specify the commit message." +#: en/git-rev-parse.txt:7 +msgid "git-rev-parse - Pick out and massage parameters" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:297 +#. type: Plain text +#: en/git-rev-parse.txt:13 #, no-wrap -msgid "--tag" +msgid "'git rev-parse' [<options>] <args>...\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:300 +#: en/git-rev-parse.txt:23 msgid "" -"Create a tag by using the tags_subdir instead of the branches_subdir " -"specified during git svn init." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:301 -#, no-wrap -msgid "-d<path>" +"Many Git porcelainish commands take mixture of flags (i.e. parameters that " +"begin with a dash '-') and parameters meant for the underlying 'git rev-" +"list' command they use internally and flags and parameters for the other " +"commands they use downstream of 'git rev-list'. This command is used to " +"distinguish between them." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:302 +#. type: Title ~ +#: en/git-rev-parse.txt:29 #, no-wrap -msgid "--destination=<path>" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:310 -msgid "" -"If more than one --branches (or --tags) option was given to the 'init' or " -"'clone' command, you must provide the location of the branch (or tag) you " -"wish to create in the SVN repository. <path> specifies which path to use to " -"create the branch or tag and should match the pattern on the left-hand side " -"of one of the configured branches or tags refspecs. You can see these " -"refspecs with the commands" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:313 -msgid "" -"git config --get-all svn-remote.<name>.branches git config --get-all " -"svn-remote.<name>.tags" +msgid "Operation Modes" msgstr "" #. type: Plain text -#: en/git-svn.txt:316 -msgid "" -"where <name> is the name of the SVN repository as specified by the -R option " -"to 'init' (or \"svn\" by default)." +#: en/git-rev-parse.txt:32 +msgid "Each of these options must appear first on the command line." msgstr "" #. type: Labeled list -#: en/git-svn.txt:317 +#: en/git-rev-parse.txt:33 #, no-wrap -msgid "--username" +msgid "--parseopt" msgstr "" #. type: Plain text -#: en/git-svn.txt:320 +#: en/git-rev-parse.txt:35 msgid "" -"Specify the SVN username to perform the commit as. This option overrides " -"the 'username' configuration property." +"Use 'git rev-parse' in option parsing mode (see PARSEOPT section below)." msgstr "" #. type: Labeled list -#: en/git-svn.txt:321 +#: en/git-rev-parse.txt:36 #, no-wrap -msgid "--commit-url" +msgid "--sq-quote" msgstr "" #. type: Plain text -#: en/git-svn.txt:326 +#: en/git-rev-parse.txt:40 msgid "" -"Use the specified URL to connect to the destination Subversion repository. " -"This is useful in cases where the source SVN repository is read-only. This " -"option overrides configuration property 'commiturl'." +"Use 'git rev-parse' in shell quoting mode (see SQ-QUOTE section below). In " +"contrast to the `--sq` option below, this mode does only quoting. Nothing " +"else is done to command input." msgstr "" -#. type: Plain text -#: en/git-svn.txt:328 -msgid "git config --get-all svn-remote.<name>.commiturl" +#. type: Title ~ +#: en/git-rev-parse.txt:42 +#, no-wrap +msgid "Options for --parseopt" msgstr "" #. type: Labeled list -#: en/git-svn.txt:330 en/rev-list-options.txt:786 +#: en/git-rev-parse.txt:44 #, no-wrap -msgid "--parents" +msgid "--keep-dashdash" msgstr "" #. type: Plain text -#: en/git-svn.txt:334 +#: en/git-rev-parse.txt:47 msgid "" -"Create parent folders. This parameter is equivalent to the parameter " -"--parents on svn cp commands and is useful for non-standard repository " -"layouts." +"Only meaningful in `--parseopt` mode. Tells the option parser to echo out " +"the first `--` met instead of skipping it." msgstr "" #. type: Labeled list -#: en/git-svn.txt:335 +#: en/git-rev-parse.txt:48 #, no-wrap -msgid "'tag'" +msgid "--stop-at-non-option" msgstr "" #. type: Plain text -#: en/git-svn.txt:338 -msgid "Create a tag in the SVN repository. This is a shorthand for 'branch -t'." +#: en/git-rev-parse.txt:52 +msgid "" +"Only meaningful in `--parseopt` mode. Lets the option parser stop at the " +"first non-option argument. This can be used to parse sub-commands that take " +"options themselves." msgstr "" #. type: Labeled list -#: en/git-svn.txt:339 +#: en/git-rev-parse.txt:53 #, no-wrap -msgid "'log'" +msgid "--stuck-long" msgstr "" #. type: Plain text -#: en/git-svn.txt:342 +#: en/git-rev-parse.txt:56 msgid "" -"This should make it easy to look up svn log messages when svn users refer to " -"-r/--revision numbers." -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:344 -msgid "The following features from `svn log' are supported:" +"Only meaningful in `--parseopt` mode. Output the options in their long form " +"if available, and with their arguments stuck." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:346 +#. type: Title ~ +#: en/git-rev-parse.txt:58 #, no-wrap -msgid "-r <n>[:<n>]" +msgid "Options for Filtering" msgstr "" #. type: Labeled list -#: en/git-svn.txt:347 +#: en/git-rev-parse.txt:60 #, no-wrap -msgid "--revision=<n>[:<n>]" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:350 -msgid "is supported, non-numeric args are not: HEAD, NEXT, BASE, PREV, etc ..." +msgid "--revs-only" msgstr "" #. type: Plain text -#: en/git-svn.txt:354 +#: en/git-rev-parse.txt:63 msgid "" -"it's not completely compatible with the --verbose output in svn log, but " -"reasonably close." +"Do not output flags and parameters not meant for 'git rev-list' command." msgstr "" #. type: Labeled list -#: en/git-svn.txt:354 +#: en/git-rev-parse.txt:64 #, no-wrap -msgid "--limit=<n>" +msgid "--no-revs" msgstr "" #. type: Plain text -#: en/git-svn.txt:357 -msgid "is NOT the same as --max-count, doesn't count merged/excluded commits" +#: en/git-rev-parse.txt:67 +msgid "Do not output flags and parameters meant for 'git rev-list' command." msgstr "" -#. type: Plain text -#: en/git-svn.txt:359 -msgid "supported" +#. type: Labeled list +#: en/git-rev-parse.txt:68 +#, no-wrap +msgid "--flags" msgstr "" #. type: Plain text -#: en/git-svn.txt:362 -msgid "New features:" +#: en/git-rev-parse.txt:70 +msgid "Do not output non-flag parameters." msgstr "" #. type: Labeled list -#: en/git-svn.txt:364 +#: en/git-rev-parse.txt:71 #, no-wrap -msgid "--show-commit" +msgid "--no-flags" msgstr "" #. type: Plain text -#: en/git-svn.txt:366 -msgid "shows the Git commit sha1, as well" +#: en/git-rev-parse.txt:73 +msgid "Do not output flag parameters." +msgstr "" + +#. type: Title ~ +#: en/git-rev-parse.txt:75 +#, no-wrap +msgid "Options for Output" msgstr "" #. type: Labeled list -#: en/git-svn.txt:366 en/pretty-options.txt:31 +#: en/git-rev-parse.txt:77 #, no-wrap -msgid "--oneline" +msgid "--default <arg>" msgstr "" #. type: Plain text -#: en/git-svn.txt:368 -msgid "our version of --pretty=oneline" +#: en/git-rev-parse.txt:80 +msgid "If there is no parameter given by the user, use `<arg>` instead." +msgstr "" + +#. type: Labeled list +#: en/git-rev-parse.txt:81 +#, no-wrap +msgid "--prefix <arg>" msgstr "" #. type: Plain text -#: en/git-svn.txt:373 +#: en/git-rev-parse.txt:86 msgid "" -"SVN itself only stores times in UTC and nothing else. The regular svn client " -"converts the UTC time to the local time (or based on the TZ= " -"environment). This command has the same behaviour." +"Behave as if 'git rev-parse' was invoked from the `<arg>` subdirectory of " +"the working tree. Any relative filenames are resolved as if they are " +"prefixed by `<arg>` and will be printed in that form." msgstr "" #. type: Plain text -#: en/git-svn.txt:375 -msgid "Any other arguments are passed directly to 'git log'" +#: en/git-rev-parse.txt:90 +msgid "" +"This can be used to convert arguments to a command run in a subdirectory so " +"that they can still be used after moving to the top-level of the " +"repository. For example:" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:376 +#. type: delimited block - +#: en/git-rev-parse.txt:96 #, no-wrap -msgid "'blame'" +msgid "" +"prefix=$(git rev-parse --show-prefix)\n" +"cd \"$(git rev-parse --show-toplevel)\"\n" +"# rev-parse provides the -- needed for 'set'\n" +"eval \"set $(git rev-parse --sq --prefix \"$prefix\" -- \"$@\")\"\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:383 +#: en/git-rev-parse.txt:103 msgid "" -"Show what revision and author last modified each line of a file. The output " -"of this mode is format-compatible with the output of `svn blame' by " -"default. Like the SVN blame command, local uncommitted changes in the " -"working tree are ignored; the version of the file in the HEAD revision is " -"annotated. Unknown arguments are passed directly to 'git blame'." +"Verify that exactly one parameter is provided, and that it can be turned " +"into a raw 20-byte SHA-1 that can be used to access the object database. If " +"so, emit it to the standard output; otherwise, error out." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:384 -#, no-wrap -msgid "--git-format" +#. type: Plain text +#: en/git-rev-parse.txt:112 +msgid "" +"If you want to make sure that the output actually names an object in your " +"object database and/or can be used as a specific type of object you require, " +"you can add the `^{type}` peeling operator to the parameter. For example, " +"`git rev-parse \"$VAR^{commit}\"` will make sure `$VAR` names an existing " +"object that is a commit-ish (i.e. a commit, or an annotated tag that points " +"at a commit). To make sure that `$VAR` names an existing object of any " +"type, `git rev-parse \"$VAR^{object}\"` can be used." msgstr "" #. type: Plain text -#: en/git-svn.txt:389 +#: en/git-rev-parse.txt:119 msgid "" -"Produce output in the same format as 'git blame', but with SVN revision " -"numbers instead of Git commit hashes. In this mode, changes that haven't " -"been committed to SVN (including local working-copy edits) are shown as " -"revision 0." +"Only meaningful in `--verify` mode. Do not output an error message if the " +"first argument is not a valid object name; instead exit with non-zero status " +"silently. SHA-1s for valid object names are printed to stdout on success." msgstr "" #. type: Labeled list -#: en/git-svn.txt:390 +#: en/git-rev-parse.txt:120 #, no-wrap -msgid "'find-rev'" +msgid "--sq" msgstr "" #. type: Plain text -#: en/git-svn.txt:395 +#: en/git-rev-parse.txt:128 msgid "" -"When given an SVN revision number of the form 'rN', returns the " -"corresponding Git commit hash (this can optionally be followed by a tree-ish " -"to specify which branch should be searched). When given a tree-ish, returns " -"the corresponding SVN revision number." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:396 -#, no-wrap -msgid "-B" +"Usually the output is made one line per flag and parameter. This option " +"makes output a single line, properly quoted for consumption by shell. " +"Useful when you expect your parameter to contain whitespaces and newlines (e." +"g. when using pickaxe `-S` with 'git diff-{asterisk}'). In contrast to the " +"`--sq-quote` option, the command input is still interpreted as usual." msgstr "" #. type: Labeled list -#: en/git-svn.txt:397 +#: en/git-rev-parse.txt:129 #, no-wrap -msgid "--before" +msgid "--short[=length]" msgstr "" #. type: Plain text -#: en/git-svn.txt:401 +#: en/git-rev-parse.txt:134 msgid "" -"Don't require an exact match if given an SVN revision, instead find the " -"commit corresponding to the state of the SVN repository (on the current " -"branch) at the specified revision." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:403 -#, no-wrap -msgid "--after" +"Same as `--verify` but shortens the object name to a unique prefix with at " +"least `length` characters. The minimum length is 4, the default is the " +"effective value of the `core.abbrev` configuration variable (see linkgit:git-" +"config[1])." msgstr "" #. type: Plain text -#: en/git-svn.txt:407 +#: en/git-rev-parse.txt:139 msgid "" -"Don't require an exact match if given an SVN revision; if there is not an " -"exact match return the closest match searching forward in the history." +"When showing object names, prefix them with '{caret}' and strip '{caret}' " +"prefix from the object names that already have one." msgstr "" #. type: Labeled list -#: en/git-svn.txt:408 +#: en/git-rev-parse.txt:140 #, no-wrap -msgid "'set-tree'" +msgid "--abbrev-ref[=(strict|loose)]" msgstr "" #. type: Plain text -#: en/git-svn.txt:416 +#: en/git-rev-parse.txt:144 msgid "" -"You should consider using 'dcommit' instead of this command. Commit " -"specified commit or tree objects to SVN. This relies on your imported fetch " -"data being up-to-date. This makes absolutely no attempts to do patching " -"when committing to SVN, it simply overwrites files with those specified in " -"the tree or commit. All merging is assumed to have taken place " -"independently of 'git svn' functions." +"A non-ambiguous short name of the objects name. The option core." +"warnAmbiguousRefs is used to select the strict abbreviation mode." msgstr "" #. type: Labeled list -#: en/git-svn.txt:417 +#: en/git-rev-parse.txt:145 #, no-wrap -msgid "'create-ignore'" +msgid "--symbolic" msgstr "" #. type: Plain text -#: en/git-svn.txt:422 +#: en/git-rev-parse.txt:149 msgid "" -"Recursively finds the svn:ignore property on directories and creates " -"matching .gitignore files. The resulting files are staged to be committed, " -"but are not committed. Use -r/--revision to refer to a specific revision." +"Usually the object names are output in SHA-1 form (with possible '{caret}' " +"prefix); this option makes them output in a form as close to the original " +"input as possible." msgstr "" #. type: Labeled list -#: en/git-svn.txt:423 +#: en/git-rev-parse.txt:150 #, no-wrap -msgid "'show-ignore'" +msgid "--symbolic-full-name" msgstr "" #. type: Plain text -#: en/git-svn.txt:427 +#: en/git-rev-parse.txt:157 msgid "" -"Recursively finds and lists the svn:ignore property on directories. The " -"output is suitable for appending to the $GIT_DIR/info/exclude file." +"This is similar to --symbolic, but it omits input that are not refs (i.e. " +"branch or tag names; or more explicitly disambiguating \"heads/master\" " +"form, when you want to name the \"master\" branch when there is an " +"unfortunately named tag \"master\"), and show them as full refnames (e.g. " +"\"refs/heads/master\")." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:428 +#. type: Title ~ +#: en/git-rev-parse.txt:159 #, no-wrap -msgid "'mkdirs'" +msgid "Options for Objects" msgstr "" #. type: Plain text -#: en/git-svn.txt:436 -msgid "" -"Attempts to recreate empty directories that core Git cannot track based on " -"information in $GIT_DIR/svn/<refname>/unhandled.log files. Empty " -"directories are automatically recreated when using \"git svn clone\" and " -"\"git svn rebase\", so \"mkdirs\" is intended for use after commands like " -"\"git checkout\" or \"git reset\". (See the svn-remote.<name>.automkdirs " -"config file option for more information.)" +#: en/git-rev-parse.txt:163 +msgid "Show all refs found in `refs/`." msgstr "" #. type: Labeled list -#: en/git-svn.txt:437 +#: en/git-rev-parse.txt:164 #, no-wrap -msgid "'commit-diff'" +msgid "--branches[=pattern]" msgstr "" -#. type: Plain text -#: en/git-svn.txt:446 -msgid "" -"Commits the diff of two tree-ish arguments from the command-line. This " -"command does not rely on being inside an `git svn init`-ed repository. This " -"command takes three arguments, (a) the original tree to diff against, (b) " -"the new tree result, (c) the URL of the target Subversion repository. The " -"final argument (URL) may be omitted if you are working from a 'git " -"svn'-aware repository (that has been `init`-ed with 'git svn'). The " -"-r<revision> option is required for this." +#. type: Labeled list +#: en/git-rev-parse.txt:165 +#, no-wrap +msgid "--tags[=pattern]" msgstr "" #. type: Labeled list -#: en/git-svn.txt:447 +#: en/git-rev-parse.txt:166 #, no-wrap -msgid "'info'" +msgid "--remotes[=pattern]" msgstr "" #. type: Plain text -#: en/git-svn.txt:452 +#: en/git-rev-parse.txt:170 msgid "" -"Shows information about a file or directory similar to what `svn info' " -"provides. Does not currently support a -r/--revision argument. Use the " -"--url option to output only the value of the 'URL:' field." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:453 -#, no-wrap -msgid "'proplist'" +"Show all branches, tags, or remote-tracking branches, respectively (i.e., " +"refs found in `refs/heads`, `refs/tags`, or `refs/remotes`, respectively)." msgstr "" #. type: Plain text -#: en/git-svn.txt:457 +#: en/git-rev-parse.txt:174 msgid "" -"Lists the properties stored in the Subversion repository about a given file " -"or directory. Use -r/--revision to refer to a specific Subversion revision." +"If a `pattern` is given, only refs matching the given shell glob are shown. " +"If the pattern does not contain a globbing character (`?`, `*`, or `[`), it " +"is turned into a prefix match by appending `/*`." msgstr "" #. type: Labeled list -#: en/git-svn.txt:458 +#: en/git-rev-parse.txt:175 #, no-wrap -msgid "'propget'" +msgid "--glob=pattern" msgstr "" #. type: Plain text -#: en/git-svn.txt:461 +#: en/git-rev-parse.txt:181 msgid "" -"Gets the Subversion property given as the first argument, for a file. A " -"specific revision can be specified with -r/--revision." +"Show all refs matching the shell glob pattern `pattern`. If the pattern does " +"not start with `refs/`, this is automatically prepended. If the pattern " +"does not contain a globbing character (`?`, `*`, or `[`), it is turned into " +"a prefix match by appending `/*`." msgstr "" #. type: Labeled list -#: en/git-svn.txt:462 +#: en/git-rev-parse.txt:182 en/rev-list-options.txt:166 #, no-wrap -msgid "'propset'" +msgid "--exclude=<glob-pattern>" msgstr "" #. type: Plain text -#: en/git-svn.txt:466 +#: en/git-rev-parse.txt:189 en/rev-list-options.txt:174 msgid "" -"Sets the Subversion property given as the first argument, to the value given " -"as the second argument for the file given as the third argument." +"Do not include refs matching '<glob-pattern>' that the next `--all`, `--" +"branches`, `--tags`, `--remotes`, or `--glob` would otherwise consider. " +"Repetitions of this option accumulate exclusion patterns up to the next `--" +"all`, `--branches`, `--tags`, `--remotes`, or `--glob` option (other options " +"or arguments do not clear accumulated patterns)." msgstr "" #. type: Plain text -#: en/git-svn.txt:468 en/git-svn.txt:508 en/diff-format.txt:76 en/diff-format.txt:101 -#, no-wrap -msgid "Example:" +#: en/git-rev-parse.txt:195 en/rev-list-options.txt:180 +msgid "" +"The patterns given should not begin with `refs/heads`, `refs/tags`, or `refs/" +"remotes` when applied to `--branches`, `--tags`, or `--remotes`, " +"respectively, and they must begin with `refs/` when applied to `--glob` or " +"`--all`. If a trailing '/{asterisk}' is intended, it must be given " +"explicitly." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:471 +#. type: Labeled list +#: en/git-rev-parse.txt:196 #, no-wrap -msgid "git svn propset svn:keywords \"FreeBSD=%H\" devel/py-tipper/Makefile\n" +msgid "--disambiguate=<prefix>" msgstr "" #. type: Plain text -#: en/git-svn.txt:475 +#: en/git-rev-parse.txt:201 msgid "" -"This will set the property 'svn:keywords' to 'FreeBSD=%H' for the file " -"'devel/py-tipper/Makefile'." +"Show every object whose name begins with the given prefix. The <prefix> " +"must be at least 4 hexadecimal digits long to avoid listing each and every " +"object in the repository by mistake." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:476 +#. type: Title ~ +#: en/git-rev-parse.txt:203 #, no-wrap -msgid "'show-externals'" +msgid "Options for Files" msgstr "" -#. type: Plain text -#: en/git-svn.txt:479 -msgid "" -"Shows the Subversion externals. Use -r/--revision to specify a specific " -"revision." +#. type: Labeled list +#: en/git-rev-parse.txt:205 +#, no-wrap +msgid "--local-env-vars" msgstr "" #. type: Plain text -#: en/git-svn.txt:483 +#: en/git-rev-parse.txt:210 msgid "" -"Compress $GIT_DIR/svn/<refname>/unhandled.log files and remove " -"$GIT_DIR/svn/<refname>/index files." +"List the GIT_* environment variables that are local to the repository (e.g. " +"GIT_DIR or GIT_WORK_TREE, but not GIT_EDITOR). Only the names of the " +"variables are listed, not their value, even if they are set." msgstr "" #. type: Labeled list -#: en/git-svn.txt:484 +#: en/git-rev-parse.txt:211 #, no-wrap -msgid "'reset'" +msgid "--git-dir" msgstr "" #. type: Plain text -#: en/git-svn.txt:494 +#: en/git-rev-parse.txt:215 msgid "" -"Undoes the effects of 'fetch' back to the specified revision. This allows " -"you to re-'fetch' an SVN revision. Normally the contents of an SVN revision " -"should never change and 'reset' should not be necessary. However, if SVN " -"permissions change, or if you alter your --ignore-paths option, a 'fetch' " -"may fail with \"not found in commit\" (file not previously visible) or " -"\"checksum mismatch\" (missed a modification). If the problem file cannot " -"be ignored forever (with --ignore-paths) the only way to repair the repo is " -"to use 'reset'." +"Show `$GIT_DIR` if defined. Otherwise show the path to the .git directory. " +"The path shown, when relative, is relative to the current working directory." msgstr "" #. type: Plain text -#: en/git-svn.txt:499 +#: en/git-rev-parse.txt:219 msgid "" -"Only the rev_map and refs/remotes/git-svn are changed (see " -"'$GIT_DIR/svn/\\*\\*/.rev_map.*' in the FILES section below for details). " -"Follow 'reset' with a 'fetch' and then 'git reset' or 'git rebase' to move " -"local branches onto the new tree." -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:500 -#, no-wrap -msgid "-r <n>" +"If `$GIT_DIR` is not defined and the current directory is not detected to " +"lie in a Git repository or work tree print a message to stderr and exit with " +"nonzero status." msgstr "" #. type: Labeled list -#: en/git-svn.txt:501 +#: en/git-rev-parse.txt:220 #, no-wrap -msgid "--revision=<n>" +msgid "--absolute-git-dir" msgstr "" #. type: Plain text -#: en/git-svn.txt:504 +#: en/git-rev-parse.txt:223 msgid "" -"Specify the most recent revision to keep. All later revisions are " -"discarded." +"Like `--git-dir`, but its output is always the canonicalized absolute path." msgstr "" -#. type: Plain text -#: en/git-svn.txt:508 -msgid "Discard the specified revision as well, keeping the nearest parent instead." +#. type: Labeled list +#: en/git-rev-parse.txt:224 +#, no-wrap +msgid "--git-common-dir" msgstr "" #. type: Plain text -#: en/git-svn.txt:510 -msgid "Assume you have local changes in \"master\", but you need to refetch \"r2\"." +#: en/git-rev-parse.txt:226 +msgid "Show `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:515 +#. type: Labeled list +#: en/git-rev-parse.txt:227 #, no-wrap -msgid "" -" r1---r2---r3 remotes/git-svn\n" -" \\\n" -" A---B master\n" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:519 -msgid "" -"Fix the ignore-paths or SVN permissions problem that caused \"r2\" to be " -"incomplete in the first place. Then:" +msgid "--is-inside-git-dir" msgstr "" #. type: Plain text -#: en/git-svn.txt:523 -#, no-wrap +#: en/git-rev-parse.txt:230 msgid "" -"git svn reset -r2 -p\n" -"git svn fetch\n" +"When the current working directory is below the repository directory print " +"\"true\", otherwise \"false\"." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:528 +#. type: Labeled list +#: en/git-rev-parse.txt:231 #, no-wrap -msgid "" -" r1---r2'--r3' remotes/git-svn\n" -" \\\n" -" r2---r3---A---B master\n" +msgid "--is-inside-work-tree" msgstr "" #. type: Plain text -#: en/git-svn.txt:533 +#: en/git-rev-parse.txt:234 msgid "" -"Then fixup \"master\" with 'git rebase'. Do NOT use 'git merge' or your " -"history will not be compatible with a future 'dcommit'!" +"When the current working directory is inside the work tree of the repository " +"print \"true\", otherwise \"false\"." msgstr "" -#. type: Plain text -#: en/git-svn.txt:536 +#. type: Labeled list +#: en/git-rev-parse.txt:235 #, no-wrap -msgid "git rebase --onto remotes/git-svn A^ master\n" +msgid "--is-bare-repository" msgstr "" -#. type: delimited block - -#: en/git-svn.txt:541 -#, no-wrap -msgid "" -" r1---r2'--r3' remotes/git-svn\n" -" \\\n" -" A'--B' master\n" +#. type: Plain text +#: en/git-rev-parse.txt:237 +msgid "When the repository is bare print \"true\", otherwise \"false\"." msgstr "" #. type: Labeled list -#: en/git-svn.txt:546 +#: en/git-rev-parse.txt:238 #, no-wrap -msgid "--shared[=(false|true|umask|group|all|world|everybody)]" +msgid "--is-shallow-repository" msgstr "" #. type: Plain text -#: en/git-svn.txt:550 -msgid "Only used with the 'init' command. These are passed directly to 'git init'." +#: en/git-rev-parse.txt:240 +msgid "When the repository is shallow print \"true\", otherwise \"false\"." msgstr "" #. type: Labeled list -#: en/git-svn.txt:551 +#: en/git-rev-parse.txt:241 #, no-wrap -msgid "-r <arg>" +msgid "--resolve-git-dir <path>" +msgstr "" + +#. type: Plain text +#: en/git-rev-parse.txt:246 +msgid "" +"Check if <path> is a valid repository or a gitfile that points at a valid " +"repository, and print the location of the repository. If <path> is a " +"gitfile then the resolved path to the real repository is printed." msgstr "" #. type: Labeled list -#: en/git-svn.txt:552 +#: en/git-rev-parse.txt:247 #, no-wrap -msgid "--revision <arg>" +msgid "--git-path <path>" msgstr "" #. type: Plain text -#: en/git-svn.txt:554 -msgid "Used with the 'fetch' command." +#: en/git-rev-parse.txt:253 +msgid "" +"Resolve \"$GIT_DIR/<path>\" and takes other path relocation variables such " +"as $GIT_OBJECT_DIRECTORY, $GIT_INDEX_FILE... into account. For example, if " +"$GIT_OBJECT_DIRECTORY is set to /foo/bar then \"git rev-parse --git-path " +"objects/abc\" returns /foo/bar/abc." msgstr "" -#. type: Plain text -#: en/git-svn.txt:558 -msgid "" -"This allows revision ranges for partial/cauterized history to be supported. " -"$NUMBER, $NUMBER1:$NUMBER2 (numeric ranges), $NUMBER:HEAD, and BASE:$NUMBER " -"are all supported." +#. type: Labeled list +#: en/git-rev-parse.txt:254 +#, no-wrap +msgid "--show-cdup" msgstr "" #. type: Plain text -#: en/git-svn.txt:562 +#: en/git-rev-parse.txt:258 msgid "" -"This can allow you to make partial mirrors when running fetch; but is " -"generally not recommended because history will be skipped and lost." +"When the command is invoked from a subdirectory, show the path of the top-" +"level directory relative to the current directory (typically a sequence of " +"\"../\", or an empty string)." msgstr "" #. type: Labeled list -#: en/git-svn.txt:563 +#: en/git-rev-parse.txt:259 #, no-wrap -msgid "-" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:566 -msgid "Only used with the 'set-tree' command." +msgid "--show-prefix" msgstr "" #. type: Plain text -#: en/git-svn.txt:570 +#: en/git-rev-parse.txt:263 msgid "" -"Read a list of commits from stdin and commit them in reverse order. Only " -"the leading sha1 is read from each line, so 'git rev-list --pretty=oneline' " -"output can be used." +"When the command is invoked from a subdirectory, show the path of the " +"current directory relative to the top-level directory." msgstr "" #. type: Labeled list -#: en/git-svn.txt:571 +#: en/git-rev-parse.txt:264 #, no-wrap -msgid "--rmdir" +msgid "--show-toplevel" msgstr "" #. type: Plain text -#: en/git-svn.txt:573 en/git-svn.txt:586 en/git-svn.txt:597 -msgid "Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands." +#: en/git-rev-parse.txt:266 +msgid "Show the absolute path of the top-level directory." +msgstr "" + +#. type: Labeled list +#: en/git-rev-parse.txt:267 +#, no-wrap +msgid "--show-superproject-working-tree" msgstr "" #. type: Plain text -#: en/git-svn.txt:579 +#: en/git-rev-parse.txt:272 msgid "" -"Remove directories from the SVN tree if there are no files left behind. SVN " -"can version empty directories, and they are not removed by default if there " -"are no files left in them. Git cannot version empty directories. Enabling " -"this flag will make the commit to SVN act like Git." +"Show the absolute path of the root of the superproject's working tree (if " +"exists) that uses the current repository as its submodule. Outputs nothing " +"if the current repository is not used as a submodule by any project." msgstr "" -#. type: Plain text -#: en/git-svn.txt:582 +#. type: Labeled list +#: en/git-rev-parse.txt:273 #, no-wrap -msgid "config key: svn.rmdir\n" +msgid "--shared-index-path" msgstr "" #. type: Plain text -#: en/git-svn.txt:590 +#: en/git-rev-parse.txt:276 msgid "" -"Edit the commit message before committing to SVN. This is off by default " -"for objects that are commits, and forced on when committing tree objects." +"Show the path to the shared index file in split index mode, or empty if not " +"in split-index mode." msgstr "" -#. type: Plain text -#: en/git-svn.txt:593 +#. type: Title ~ +#: en/git-rev-parse.txt:278 #, no-wrap -msgid "config key: svn.edit\n" +msgid "Other Options" msgstr "" #. type: Labeled list -#: en/git-svn.txt:594 en/diff-options.txt:402 +#: en/git-rev-parse.txt:280 #, no-wrap -msgid "-l<num>" +msgid "--since=datestring" msgstr "" #. type: Labeled list -#: en/git-svn.txt:595 en/diff-options.txt:380 +#: en/git-rev-parse.txt:281 #, no-wrap -msgid "--find-copies-harder" +msgid "--after=datestring" msgstr "" #. type: Plain text -#: en/git-svn.txt:600 +#: en/git-rev-parse.txt:284 msgid "" -"They are both passed directly to 'git diff-tree'; see " -"linkgit:git-diff-tree[1] for more information." +"Parse the date string, and output the corresponding --max-age= parameter for " +"'git rev-list'." msgstr "" -#. type: Plain text -#: en/git-svn.txt:604 +#. type: Labeled list +#: en/git-rev-parse.txt:285 #, no-wrap -msgid "" -"config key: svn.l\n" -"config key: svn.findcopiesharder\n" +msgid "--until=datestring" msgstr "" #. type: Labeled list -#: en/git-svn.txt:605 +#: en/git-rev-parse.txt:286 #, no-wrap -msgid "-A<filename>" +msgid "--before=datestring" +msgstr "" + +#. type: Plain text +#: en/git-rev-parse.txt:289 +msgid "" +"Parse the date string, and output the corresponding --min-age= parameter for " +"'git rev-list'." msgstr "" #. type: Labeled list -#: en/git-svn.txt:606 +#: en/git-rev-parse.txt:290 #, no-wrap -msgid "--authors-file=<filename>" +msgid "<args>..." msgstr "" #. type: Plain text -#: en/git-svn.txt:608 -msgid "Syntax is compatible with the file used by 'git cvsimport':" +#: en/git-rev-parse.txt:292 +msgid "Flags and parameters to be parsed." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:611 +#. type: Title - +#: en/git-rev-parse.txt:297 #, no-wrap -msgid "\tloginname = Joe User <user@example.com>\n" +msgid "PARSEOPT" msgstr "" #. type: Plain text -#: en/git-svn.txt:618 +#: en/git-rev-parse.txt:302 msgid "" -"If this option is specified and 'git svn' encounters an SVN committer name " -"that does not exist in the authors-file, 'git svn' will abort operation. The " -"user will then have to add the appropriate entry. Re-running the previous " -"'git svn' command after the authors-file is modified should continue " -"operation." +"In `--parseopt` mode, 'git rev-parse' helps massaging options to bring to " +"shell scripts the same facilities C builtins have. It works as an option " +"normalizer (e.g. splits single switches aggregate values), a bit like " +"`getopt(1)` does." msgstr "" #. type: Plain text -#: en/git-svn.txt:621 -#, no-wrap -msgid "config key: svn.authorsfile\n" +#: en/git-rev-parse.txt:307 +msgid "" +"It takes on the standard input the specification of the options to parse and " +"understand, and echoes on the standard output a string suitable for `sh(1)` " +"`eval` to replace the arguments with normalized ones. In case of error, it " +"outputs usage on the standard error stream, and exits with code 129." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:622 +#. type: Plain text +#: en/git-rev-parse.txt:310 +msgid "" +"Note: Make sure you quote the result when passing it to `eval`. See below " +"for an example." +msgstr "" + +#. type: Title ~ +#: en/git-rev-parse.txt:312 #, no-wrap -msgid "--authors-prog=<filename>" +msgid "Input Format" msgstr "" #. type: Plain text -#: en/git-svn.txt:628 +#: en/git-rev-parse.txt:318 msgid "" -"If this option is specified, for each SVN committer name that does not exist " -"in the authors file, the given file is executed with the committer name as " -"the first argument. The program is expected to return a single line of the " -"form \"Name <email>\", which will be treated as if included in the authors " -"file." +"'git rev-parse --parseopt' input format is fully text based. It has two " +"parts, separated by a line that contains only `--`. The lines before the " +"separator (should be one or more) are used for the usage. The lines after " +"the separator describe the options." msgstr "" #. type: Plain text -#: en/git-svn.txt:631 -#, no-wrap -msgid "config key: svn.authorsProg\n" +#: en/git-rev-parse.txt:320 +msgid "Each line of options has this format:" msgstr "" -#. type: Plain text -#: en/git-svn.txt:636 -msgid "" -"Make 'git svn' less verbose. Specify a second time to make it even less " -"verbose." +#. type: delimited block - +#: en/git-rev-parse.txt:323 +#, no-wrap +msgid "<opt-spec><flags>*<arg-hint>? SP+ help LF\n" msgstr "" #. type: Labeled list -#: en/git-svn.txt:639 +#: en/git-rev-parse.txt:325 #, no-wrap -msgid "-s<strategy>" +msgid "`<opt-spec>`" msgstr "" #. type: Plain text -#: en/git-svn.txt:644 -msgid "These are only used with the 'dcommit' and 'rebase' commands." +#: en/git-rev-parse.txt:330 +msgid "" +"its format is the short option character, then the long option name " +"separated by a comma. Both parts are not required, though at least one is " +"necessary. May not contain any of the `<flags>` characters. `h,help`, `dry-" +"run` and `f` are examples of correct `<opt-spec>`." +msgstr "" + +#. type: Labeled list +#: en/git-rev-parse.txt:331 +#, no-wrap +msgid "`<flags>`" msgstr "" #. type: Plain text -#: en/git-svn.txt:647 -msgid "" -"Passed directly to 'git rebase' when using 'dcommit' if a 'git reset' cannot " -"be used (see 'dcommit')." +#: en/git-rev-parse.txt:333 +msgid "`<flags>` are of `*`, `=`, `?` or `!`." msgstr "" #. type: Plain text -#: en/git-svn.txt:652 -msgid "This can be used with the 'dcommit', 'rebase', 'branch' and 'tag' commands." +#: en/git-rev-parse.txt:334 +msgid "Use `=` if the option takes an argument." msgstr "" #. type: Plain text -#: en/git-svn.txt:655 +#: en/git-rev-parse.txt:338 msgid "" -"For 'dcommit', print out the series of Git arguments that would show which " -"diffs would be committed to SVN." +"Use `?` to mean that the option takes an optional argument. You probably " +"want to use the `--stuck-long` mode to be able to unambiguously parse the " +"optional argument." msgstr "" #. type: Plain text -#: en/git-svn.txt:659 +#: en/git-rev-parse.txt:342 msgid "" -"For 'rebase', display the local branch associated with the upstream svn " -"repository associated with the current branch and the URL of svn repository " -"that will be fetched from." +"Use `*` to mean that this option should not be listed in the usage generated " +"for the `-h` argument. It's shown for `--help-all` as documented in linkgit:" +"gitcli[7]." msgstr "" #. type: Plain text -#: en/git-svn.txt:662 -msgid "" -"For 'branch' and 'tag', display the urls that will be used for copying when " -"creating the branch or tag." +#: en/git-rev-parse.txt:344 +msgid "Use `!` to not make the corresponding negated long option available." msgstr "" #. type: Labeled list -#: en/git-svn.txt:663 +#: en/git-rev-parse.txt:345 #, no-wrap -msgid "--use-log-author" +msgid "`<arg-hint>`" msgstr "" #. type: Plain text -#: en/git-svn.txt:667 +#: en/git-rev-parse.txt:350 msgid "" -"When retrieving svn commits into Git (as part of 'fetch', 'rebase', or " -"'dcommit' operations), look for the first `From:` or `Signed-off-by:` line " -"in the log message and use that as the author string." +"`<arg-hint>`, if specified, is used as a name of the argument in the help " +"output, for options that take arguments. `<arg-hint>` is terminated by the " +"first whitespace. It is customary to use a dash to separate words in a " +"multi-word argument hint." msgstr "" #. type: Plain text -#: en/git-svn.txt:670 -#, no-wrap -msgid "config key: svn.useLogAuthor\n" -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:671 -#, no-wrap -msgid "--add-author-from" +#: en/git-rev-parse.txt:353 +msgid "" +"The remainder of the line, after stripping the spaces, is used as the help " +"associated to the option." msgstr "" #. type: Plain text -#: en/git-svn.txt:677 +#: en/git-rev-parse.txt:357 msgid "" -"When committing to svn from Git (as part of 'commit-diff', 'set-tree' or " -"'dcommit' operations), if the existing log message doesn't already have a " -"`From:` or `Signed-off-by:` line, append a `From:` line based on the Git " -"commit's author string. If you use this, then `--use-log-author` will " -"retrieve a valid author string for all commits." +"Blank lines are ignored, and lines that don't match this specification are " +"used as option group headers (start the line with a space to create such " +"lines on purpose)." msgstr "" -#. type: Plain text -#: en/git-svn.txt:680 +#. type: delimited block - +#: en/git-rev-parse.txt:364 #, no-wrap -msgid "config key: svn.addAuthorFrom\n" +msgid "" +"OPTS_SPEC=\"\\\n" +"some-command [<options>] <args>...\n" msgstr "" -#. type: Title - -#: en/git-svn.txt:682 +#. type: delimited block - +#: en/git-rev-parse.txt:366 #, no-wrap -msgid "ADVANCED OPTIONS" +msgid "" +"some-command does foo and bar!\n" +"--\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:684 +#. type: delimited block - +#: en/git-rev-parse.txt:368 #, no-wrap -msgid "-i<GIT_SVN_ID>" +msgid "h,help show the help\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:685 +#. type: delimited block - +#: en/git-rev-parse.txt:373 #, no-wrap -msgid "--id <GIT_SVN_ID>" -msgstr "" - -#. type: Plain text -#: en/git-svn.txt:690 msgid "" -"This sets GIT_SVN_ID (instead of using the environment). This allows the " -"user to override the default refname to fetch from when tracking a single " -"URL. The 'log' and 'dcommit' commands no longer require this switch as an " -"argument." +"foo some nifty option --foo\n" +"bar= some cool option --bar with an argument\n" +"baz=arg another cool option --baz with a named argument\n" +"qux?path qux may take a path argument but has meaning by itself\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:691 +#. type: delimited block - +#: en/git-rev-parse.txt:376 #, no-wrap -msgid "-R<remote name>" +msgid "" +" An option group Header\n" +"C? option C with an optional argument\"\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:692 +#. type: delimited block - +#: en/git-rev-parse.txt:378 #, no-wrap -msgid "--svn-remote <remote name>" +msgid "eval \"$(echo \"$OPTS_SPEC\" | git rev-parse --parseopt -- \"$@\" || echo exit $?)\"\n" msgstr "" -#. type: Plain text -#: en/git-svn.txt:696 -msgid "" -"Specify the [svn-remote \"<remote name>\"] section to use, this allows SVN " -"multiple repositories to be tracked. Default: \"svn\"" -msgstr "" - -#. type: Labeled list -#: en/git-svn.txt:697 +#. type: Title ~ +#: en/git-rev-parse.txt:382 #, no-wrap -msgid "--follow-parent" +msgid "Usage text" msgstr "" #. type: Plain text -#: en/git-svn.txt:712 +#: en/git-rev-parse.txt:386 msgid "" -"This option is only relevant if we are tracking branches (using one of the " -"repository layout options --trunk, --tags, --branches, --stdlayout). For " -"each tracked branch, try to find out where its revision was copied from, and " -"set a suitable parent in the first Git commit for the branch. This is " -"especially helpful when we're tracking a directory that has been moved " -"around within the repository. If this feature is disabled, the branches " -"created by 'git svn' will all be linear and not share any history, meaning " -"that there will be no information on where branches were branched off or " -"merged. However, following long/convoluted histories can take a long time, " -"so disabling this feature may speed up the cloning process. This feature is " -"enabled by default, use --no-follow-parent to disable it." +"When `\"$@\"` is `-h` or `--help` in the above example, the following usage " +"text would be shown:" msgstr "" -#. type: Plain text -#: en/git-svn.txt:715 +#. type: delimited block - +#: en/git-rev-parse.txt:389 #, no-wrap -msgid "config key: svn.followparent\n" +msgid "usage: some-command [<options>] <args>...\n" msgstr "" -#. type: Title - -#: en/git-svn.txt:717 +#. type: delimited block - +#: en/git-rev-parse.txt:391 #, no-wrap -msgid "CONFIG FILE-ONLY OPTIONS" +msgid " some-command does foo and bar!\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:719 +#. type: delimited block - +#: en/git-rev-parse.txt:397 #, no-wrap -msgid "svn.noMetadata" +msgid "" +" -h, --help show the help\n" +" --foo some nifty option --foo\n" +" --bar ... some cool option --bar with an argument\n" +" --baz <arg> another cool option --baz with a named argument\n" +" --qux[=<path>] qux may take a path argument but has meaning by itself\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:720 +#. type: delimited block - +#: en/git-rev-parse.txt:400 #, no-wrap -msgid "svn-remote.<name>.noMetadata" +msgid "" +"An option group Header\n" +" -C[...] option C with an optional argument\n" msgstr "" -#. type: Plain text -#: en/git-svn.txt:722 -msgid "This gets rid of the 'git-svn-id:' lines at the end of every commit." +#. type: Title - +#: en/git-rev-parse.txt:403 +#, no-wrap +msgid "SQ-QUOTE" msgstr "" #. type: Plain text -#: en/git-svn.txt:727 +#: en/git-rev-parse.txt:409 msgid "" -"This option can only be used for one-shot imports as 'git svn' will not be " -"able to fetch again without metadata. Additionally, if you lose your " -"'$GIT_DIR/svn/\\*\\*/.rev_map.*' files, 'git svn' will not be able to " -"rebuild them." +"In `--sq-quote` mode, 'git rev-parse' echoes on the standard output a single " +"line suitable for `sh(1)` `eval`. This line is made by normalizing the " +"arguments following `--sq-quote`. Nothing other than quoting the arguments " +"is done." msgstr "" #. type: Plain text -#: en/git-svn.txt:731 +#: en/git-rev-parse.txt:413 msgid "" -"The 'git svn log' command will not work on repositories using this, either. " -"Using this conflicts with the 'useSvmProps' option for (hopefully) obvious " -"reasons." +"If you want command input to still be interpreted as usual by 'git rev-" +"parse' before the output is shell quoted, see the `--sq` option." msgstr "" -#. type: Plain text -#: en/git-svn.txt:739 +#. type: delimited block - +#: en/git-rev-parse.txt:425 +#, no-wrap msgid "" -"This option is NOT recommended as it makes it difficult to track down old " -"references to SVN revision numbers in existing documentation, bug reports " -"and archives. If you plan to eventually migrate from SVN to Git and are " -"certain about dropping SVN history, consider linkgit:git-filter-branch[1] " -"instead. filter-branch also allows reformatting of metadata for " -"ease-of-reading and rewriting authorship info for non-\"svn.authorsFile\" " -"users." +"$ cat >your-git-script.sh <<\\EOF\n" +"#!/bin/sh\n" +"args=$(git rev-parse --sq-quote \"$@\") # quote user-supplied arguments\n" +"command=\"git frotz -n24 $args\" # and use it inside a handcrafted\n" +"\t\t\t\t\t# command line\n" +"eval \"$command\"\n" +"EOF\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:740 +#. type: delimited block - +#: en/git-rev-parse.txt:427 #, no-wrap -msgid "svn.useSvmProps" +msgid "$ sh your-git-script.sh \"a b'c\"\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:741 -#, no-wrap -msgid "svn-remote.<name>.useSvmProps" +#. type: Plain text +#: en/git-rev-parse.txt:433 +msgid "Print the object name of the current commit:" msgstr "" -#. type: Plain text -#: en/git-svn.txt:744 -msgid "" -"This allows 'git svn' to re-map repository URLs and UUIDs from mirrors " -"created using SVN::Mirror (or svk) for metadata." +#. type: delimited block - +#: en/git-rev-parse.txt:436 +#, no-wrap +msgid "$ git rev-parse --verify HEAD\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:752 +#: en/git-rev-parse.txt:439 msgid "" -"If an SVN revision has a property, \"svm:headrev\", it is likely that the " -"revision was created by SVN::Mirror (also used by SVK). The property " -"contains a repository UUID and a revision. We want to make it look like we " -"are mirroring the original URL, so introduce a helper function that returns " -"the original identity URL and UUID, and use it when generating metadata in " -"commit messages." +"Print the commit object name from the revision in the $REV shell variable:" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:753 +#. type: delimited block - +#: en/git-rev-parse.txt:442 #, no-wrap -msgid "svn.useSvnsyncProps" +msgid "$ git rev-parse --verify $REV^{commit}\n" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:754 -#, no-wrap -msgid "svn-remote.<name>.useSvnsyncprops" +#. type: Plain text +#: en/git-rev-parse.txt:445 +msgid "This will error out if $REV is empty or not a valid revision." msgstr "" #. type: Plain text -#: en/git-svn.txt:758 -msgid "" -"Similar to the useSvmProps option; this is for users of the svnsync(1) " -"command distributed with SVN 1.4.x and later." +#: en/git-rev-parse.txt:447 +msgid "Similar to above:" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:759 +#. type: delimited block - +#: en/git-rev-parse.txt:450 #, no-wrap -msgid "svn-remote.<name>.rewriteRoot" +msgid "$ git rev-parse --default master --verify $REV\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:765 +#: en/git-rev-parse.txt:453 msgid "" -"This allows users to create repositories from alternate URLs. For example, " -"an administrator could run 'git svn' on the server locally (accessing via " -"file://) but wish to distribute the repository with a public http:// or " -"svn:// URL in the metadata so users of it will see the public URL." +"but if $REV is empty, the commit object name from master will be printed." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:766 +#. type: Title = +#: en/git-rm.txt:2 #, no-wrap -msgid "svn-remote.<name>.rewriteUUID" +msgid "git-rm(1)" msgstr "" #. type: Plain text -#: en/git-svn.txt:771 -msgid "" -"Similar to the useSvmProps option; this is for users who need to remap the " -"UUID manually. This may be useful in situations where the original UUID is " -"not available via either useSvmProps or useSvnsyncProps." +#: en/git-rm.txt:7 +msgid "git-rm - Remove files from the working tree and from the index" msgstr "" -#. type: Labeled list -#: en/git-svn.txt:772 +#. type: Plain text +#: en/git-rm.txt:12 #, no-wrap -msgid "svn-remote.<name>.pushurl" +msgid "'git rm' [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>...\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:781 +#: en/git-rm.txt:25 msgid "" -"Similar to Git's `remote.<name>.pushurl`, this key is designed to be used in " -"cases where 'url' points to an SVN repository via a read-only transport, to " -"provide an alternate read/write transport. It is assumed that both keys " -"point to the same repository. Unlike 'commiturl', 'pushurl' is a base " -"path. If either 'commiturl' or 'pushurl' could be used, 'commiturl' takes " -"precedence." +"Remove files from the index, or from the working tree and the index. `git " +"rm` will not remove a file from just your working directory. (There is no " +"option to remove a file only from the working tree and yet keep it in the " +"index; use `/bin/rm` if you want to do that.) The files being removed have " +"to be identical to the tip of the branch, and no updates to their contents " +"can be staged in the index, though that default behavior can be overridden " +"with the `-f` option. When `--cached` is given, the staged content has to " +"match either the tip of the branch or the file on disk, allowing the file to " +"be removed from just the index." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:782 -#, no-wrap -msgid "svn.brokenSymlinkWorkaround" +#. type: Plain text +#: en/git-rm.txt:38 +msgid "" +"Files to remove. Fileglobs (e.g. `*.c`) can be given to remove all matching " +"files. If you want Git to expand file glob characters, you may need to " +"shell-escape them. A leading directory name (e.g. `dir` to remove `dir/" +"file1` and `dir/file2`) can be given to remove all files in the directory, " +"and recursively all sub-directories, but this requires the `-r` option to be " +"explicitly given." msgstr "" #. type: Plain text -#: en/git-svn.txt:790 +#: en/git-rm.txt:42 +msgid "Override the up-to-date check." +msgstr "" + +#. type: Plain text +#: en/git-rm.txt:48 msgid "" -"This disables potentially expensive checks to workaround broken symlinks " -"checked into SVN by broken clients. Set this option to \"false\" if you " -"track a SVN repository with many empty blobs that are not symlinks. This " -"option may be changed while 'git svn' is running and take effect on the next " -"revision fetched. If unset, 'git svn' assumes this option to be \"true\"." +"Don't actually remove any file(s). Instead, just show if they exist in the " +"index and would otherwise be removed by the command." msgstr "" -#. type: Labeled list -#: en/git-svn.txt:791 -#, no-wrap -msgid "svn.pathnameencoding" +#. type: Plain text +#: en/git-rm.txt:52 +msgid "Allow recursive removal when a leading directory name is given." msgstr "" #. type: Plain text -#: en/git-svn.txt:796 +#: en/git-rm.txt:62 msgid "" -"This instructs git svn to recode pathnames to a given encoding. It can be " -"used by windows users and by those who work in non-utf8 locales to avoid " -"corrupted file names with non-ASCII characters. Valid encodings are the " -"ones supported by Perl's Encode module." +"Use this option to unstage and remove paths only from the index. Working " +"tree files, whether modified or not, will be left alone." msgstr "" #. type: Labeled list -#: en/git-svn.txt:797 +#: en/git-rm.txt:63 #, no-wrap -msgid "svn-remote.<name>.automkdirs" +msgid "--ignore-unmatch" msgstr "" #. type: Plain text -#: en/git-svn.txt:804 +#: en/git-rm.txt:65 +msgid "Exit with a zero status even if no files matched." +msgstr "" + +#. type: Plain text +#: en/git-rm.txt:70 msgid "" -"Normally, the \"git svn clone\" and \"git svn rebase\" commands attempt to " -"recreate empty directories that are in the Subversion repository. If this " -"option is set to \"false\", then empty directories will only be created if " -"the \"git svn mkdirs\" command is run explicitly. If unset, 'git svn' " -"assumes this option to be \"true\"." +"`git rm` normally outputs one line (in the form of an `rm` command) for " +"each file removed. This option suppresses that output." msgstr "" #. type: Plain text -#: en/git-svn.txt:809 +#: en/git-rm.txt:79 msgid "" -"Since the noMetadata, rewriteRoot, rewriteUUID, useSvnsyncProps and " -"useSvmProps options all affect the metadata generated and used by 'git svn'; " -"they *must* be set in the configuration file before any history is imported " -"and these settings should never be changed once they are set." +"The <file> list given to the command can be exact pathnames, file glob " +"patterns, or leading directory names. The command removes only the paths " +"that are known to Git. Giving the name of a file that you have not told Git " +"about does not remove that file." msgstr "" #. type: Plain text -#: en/git-svn.txt:813 +#: en/git-rm.txt:84 msgid "" -"Additionally, only one of these options can be used per svn-remote section " -"because they affect the 'git-svn-id:' metadata line, except for rewriteRoot " -"and rewriteUUID which can be used together." +"File globbing matches across directory boundaries. Thus, given two " +"directories `d` and `d2`, there is a difference between using `git rm 'd*'` " +"and `git rm 'd/*'`, as the former will also remove all of directory `d2`." msgstr "" #. type: Title - -#: en/git-svn.txt:816 +#: en/git-rm.txt:86 #, no-wrap -msgid "BASIC EXAMPLES" +msgid "REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM" msgstr "" #. type: Plain text -#: en/git-svn.txt:820 +#: en/git-rm.txt:91 msgid "" -"Tracking and contributing to the trunk of a Subversion-managed project " -"(ignoring tags and branches):" +"There is no option for `git rm` to remove from the index only the paths that " +"have disappeared from the filesystem. However, depending on the use case, " +"there are several ways that can be done." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:838 +#. type: Title ~ +#: en/git-rm.txt:93 #, no-wrap -msgid "" -"# Clone a repo (like git clone):\n" -"\tgit svn clone http://svn.example.com/project/trunk\n" -"# Enter the newly cloned directory:\n" -"\tcd trunk\n" -"# You should be on master branch, double-check with 'git branch'\n" -"\tgit branch\n" -"# Do some work and commit locally to Git:\n" -"\tgit commit ...\n" -"# Something is committed to SVN, rebase your local changes against the\n" -"# latest changes in SVN:\n" -"\tgit svn rebase\n" -"# Now commit your changes (that were committed previously using Git) to " -"SVN,\n" -"# as well as automatically updating your working HEAD:\n" -"\tgit svn dcommit\n" -"# Append svn:ignore settings to the default Git exclude file:\n" -"\tgit svn show-ignore >> .git/info/exclude\n" +msgid "Using ``git commit -a''" msgstr "" #. type: Plain text -#: en/git-svn.txt:842 +#: en/git-rm.txt:100 msgid "" -"Tracking and contributing to an entire Subversion-managed project (complete " -"with a trunk, tags and branches):" +"If you intend that your next commit should record all modifications of " +"tracked files in the working tree and record all removals of files that have " +"been removed from the working tree with `rm` (as opposed to `git rm`), use " +"`git commit -a`, as it will automatically notice and record all removals. " +"You can also have a similar effect without committing by using `git add -u`." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:857 +#. type: Title ~ +#: en/git-rm.txt:102 #, no-wrap -msgid "" -"# Clone a repo with standard SVN directory layout (like git clone):\n" -"\tgit svn clone http://svn.example.com/project --stdlayout --prefix svn/\n" -"# Or, if the repo uses a non-standard directory layout:\n" -"\tgit svn clone http://svn.example.com/project -T tr -b branch -t tag " -"--prefix svn/\n" -"# View all branches and tags you have cloned:\n" -"\tgit branch -r\n" -"# Create a new branch in SVN\n" -"\tgit svn branch waldo\n" -"# Reset your master to trunk (or any other branch, replacing 'trunk'\n" -"# with the appropriate name):\n" -"\tgit reset --hard svn/trunk\n" -"# You may only dcommit to one branch/tag/trunk at a time. The usage\n" -"# of dcommit/rebase/show-ignore should be the same as above.\n" +msgid "Using ``git add -A''" msgstr "" #. type: Plain text -#: en/git-svn.txt:865 +#: en/git-rm.txt:106 msgid "" -"The initial 'git svn clone' can be quite time-consuming (especially for " -"large Subversion repositories). If multiple people (or one person with " -"multiple machines) want to use 'git svn' to interact with the same " -"Subversion repository, you can do the initial 'git svn clone' to a " -"repository on a server and have each person clone that repository with 'git " -"clone':" +"When accepting a new code drop for a vendor branch, you probably want to " +"record both the removal of paths and additions of new paths as well as " +"modifications of existing paths." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:886 -#, no-wrap +#. type: Plain text +#: en/git-rm.txt:109 msgid "" -"# Do the initial import on a server\n" -"\tssh server \"cd /pub && git svn clone http://svn.example.com/project " -"[options...]\"\n" -"# Clone locally - make sure the refs/remotes/ space matches the server\n" -"\tmkdir project\n" -"\tcd project\n" -"\tgit init\n" -"\tgit remote add origin server:/pub/project\n" -"\tgit config --replace-all remote.origin.fetch " -"'+refs/remotes/*:refs/remotes/*'\n" -"\tgit fetch\n" -"# Prevent fetch/pull from remote Git server in the future,\n" -"# we only want to use git svn for future updates\n" -"\tgit config --remove-section remote.origin\n" -"# Create a local branch from one of the branches just fetched\n" -"\tgit checkout -b master FETCH_HEAD\n" -"# Initialize 'git svn' locally (be sure to use the same URL and\n" -"# --stdlayout/-T/-b/-t/--prefix options as were used on server)\n" -"\tgit svn init http://svn.example.com/project [options...]\n" -"# Pull the latest changes from Subversion\n" -"\tgit svn rebase\n" +"Typically you would first remove all tracked files from the working tree " +"using this command:" msgstr "" -#. type: Title - -#: en/git-svn.txt:889 +#. type: delimited block - +#: en/git-rm.txt:112 #, no-wrap -msgid "REBASE VS. PULL/MERGE" +msgid "git ls-files -z | xargs -0 rm -f\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:895 +#: en/git-rm.txt:116 msgid "" -"Prefer to use 'git svn rebase' or 'git rebase', rather than 'git pull' or " -"'git merge' to synchronize unintegrated commits with a 'git svn' " -"branch. Doing so will keep the history of unintegrated commits linear with " -"respect to the upstream SVN repository and allow the use of the preferred " -"'git svn dcommit' subcommand to push unintegrated commits back into SVN." +"and then untar the new code in the working tree. Alternately you could " +"'rsync' the changes into the working tree." msgstr "" #. type: Plain text -#: en/git-svn.txt:903 +#: en/git-rm.txt:119 msgid "" -"Originally, 'git svn' recommended that developers pulled or merged from the " -"'git svn' branch. This was because the author favored `git svn set-tree B` " -"to commit a single head rather than the `git svn set-tree A..B` notation to " -"commit multiple commits. Use of 'git pull' or 'git merge' with `git svn " -"set-tree A..B` will cause non-linear history to be flattened when committing " -"into SVN and this can lead to merge commits unexpectedly reversing previous " -"commits in SVN." +"After that, the easiest way to record all removals, additions, and " +"modifications in the working tree is:" msgstr "" -#. type: Title - -#: en/git-svn.txt:905 +#. type: delimited block - +#: en/git-rm.txt:122 #, no-wrap -msgid "MERGE TRACKING" +msgid "git add -A\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:912 -msgid "" -"While 'git svn' can track copy history (including branches and tags) for " -"repositories adopting a standard layout, it cannot yet represent merge " -"history that happened inside git back upstream to SVN users. Therefore it " -"is advised that users keep history as linear as possible inside Git to ease " -"compatibility with SVN (see the CAVEATS section below)." +#: en/git-rm.txt:125 +msgid "See linkgit:git-add[1]." msgstr "" -#. type: Title - -#: en/git-svn.txt:914 +#. type: Title ~ +#: en/git-rm.txt:127 #, no-wrap -msgid "HANDLING OF SVN BRANCHES" +msgid "Other ways" msgstr "" #. type: Plain text -#: en/git-svn.txt:922 +#: en/git-rm.txt:132 msgid "" -"If 'git svn' is configured to fetch branches (and --follow-branches is in " -"effect), it sometimes creates multiple Git branches for one SVN branch, " -"where the additional branches have names of the form 'branchname@nnn' (with " -"nnn an SVN revision number). These additional branches are created if 'git " -"svn' cannot find a parent commit for the first commit in an SVN branch, to " -"connect the branch to the history of the other branches." +"If all you really want to do is to remove from the index the files that are " +"no longer present in the working tree (perhaps because your working tree is " +"dirty so that you cannot use `git commit -a`), use the following command:" msgstr "" -#. type: Plain text -#: en/git-svn.txt:938 -msgid "" -"Normally, the first commit in an SVN branch consists of a copy " -"operation. 'git svn' will read this commit to get the SVN revision the " -"branch was created from. It will then try to find the Git commit that " -"corresponds to this SVN revision, and use that as the parent of the " -"branch. However, it is possible that there is no suitable Git commit to " -"serve as parent. This will happen, among other reasons, if the SVN branch " -"is a copy of a revision that was not fetched by 'git svn' (e.g. because it " -"is an old revision that was skipped with `--revision`), or if in SVN a " -"directory was copied that is not tracked by 'git svn' (such as a branch that " -"is not tracked at all, or a subdirectory of a tracked branch). In these " -"cases, 'git svn' will still create a Git branch, but instead of using an " -"existing Git commit as the parent of the branch, it will read the SVN " -"history of the directory the branch was copied from and create appropriate " -"Git commits. This is indicated by the message \"Initializing parent: " -"<branchname>\"." +#. type: delimited block - +#: en/git-rm.txt:135 +#, no-wrap +msgid "git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:945 +#: en/git-rm.txt:148 msgid "" -"Additionally, it will create a special branch named " -"'<branchname>@<SVN-Revision>', where <SVN-Revision> is the SVN revision " -"number the branch was copied from. This branch will point to the newly " -"created parent commit of the branch. If in SVN the branch was deleted and " -"later recreated from a different version, there will be multiple such " -"branches with an '@'." +"Only submodules using a gitfile (which means they were cloned with a Git " +"version 1.7.8 or newer) will be removed from the work tree, as their " +"repository lives inside the .git directory of the superproject. If a " +"submodule (or one of those nested inside it) still uses a .git directory, " +"`git rm` will move the submodules git directory into the superprojects git " +"directory to protect the submodule's history. If it exists the submodule." +"<name> section in the linkgit:gitmodules[5] file will also be removed and " +"that file will be staged (unless --cached or -n are used)." msgstr "" #. type: Plain text -#: en/git-svn.txt:948 +#: en/git-rm.txt:154 msgid "" -"Note that this may mean that multiple Git commits are created for a single " -"SVN revision." +"A submodule is considered up to date when the HEAD is the same as recorded " +"in the index, no tracked files are modified and no untracked files that " +"aren't ignored are present in the submodules work tree. Ignored files are " +"deemed expendable and won't stop a submodule's work tree from being removed." msgstr "" #. type: Plain text -#: en/git-svn.txt:958 +#: en/git-rm.txt:158 msgid "" -"An example: in an SVN repository with a standard trunk/tags/branches layout, " -"a directory trunk/sub is created in r.100. In r.200, trunk/sub is branched " -"by copying it to branches/. 'git svn clone -s' will then create a branch " -"'sub'. It will also create new Git commits for r.100 through r.199 and use " -"these as the history of branch 'sub'. Thus there will be two Git commits for " -"each revision from r.100 to r.199 (one containing trunk/, one containing " -"trunk/sub/). Finally, it will create a branch 'sub@200' pointing to the new " -"parent commit of branch 'sub' (i.e. the commit for r.200 and trunk/sub/)." +"If you only want to remove the local checkout of a submodule from your work " +"tree without committing the removal, use linkgit:git-submodule[1] `deinit` " +"instead. Also see linkgit:gitsubmodules[7] for details on submodule removal." msgstr "" -#. type: Plain text -#: en/git-svn.txt:968 -msgid "" -"For the sake of simplicity and interoperating with Subversion, it is " -"recommended that all 'git svn' users clone, fetch and dcommit directly from " -"the SVN server, and avoid all 'git clone'/'pull'/'merge'/'push' operations " -"between Git repositories and branches. The recommended method of exchanging " -"code between Git branches and users is 'git format-patch' and 'git am', or " -"just 'dcommit'ing to the SVN repository." +#. type: Labeled list +#: en/git-rm.txt:161 +#, no-wrap +msgid "`git rm Documentation/\\*.txt`" msgstr "" #. type: Plain text -#: en/git-svn.txt:974 +#: en/git-rm.txt:164 msgid "" -"Running 'git merge' or 'git pull' is NOT recommended on a branch you plan to " -"'dcommit' from because Subversion users cannot see any merges you've made. " -"Furthermore, if you merge or pull from a Git branch that is a mirror of an " -"SVN branch, 'dcommit' may commit to the wrong branch." +"Removes all `*.txt` files from the index that are under the `Documentation` " +"directory and any of its subdirectories." msgstr "" #. type: Plain text -#: en/git-svn.txt:977 +#: en/git-rm.txt:168 msgid "" -"If you do merge, note the following rule: 'git svn dcommit' will attempt to " -"commit on top of the SVN commit named in" +"Note that the asterisk `*` is quoted from the shell in this example; this " +"lets Git, and not the shell, expand the pathnames of files and " +"subdirectories under the `Documentation/` directory." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:979 +#. type: Labeled list +#: en/git-rm.txt:169 #, no-wrap -msgid "git log --grep=^git-svn-id: --first-parent -1\n" +msgid "`git rm -f git-*.sh`" msgstr "" #. type: Plain text -#: en/git-svn.txt:984 +#: en/git-rm.txt:173 msgid "" -"You 'must' therefore ensure that the most recent commit of the branch you " -"want to dcommit to is the 'first' parent of the merge. Chaos will ensue " -"otherwise, especially if the first parent is an older commit on the same SVN " -"branch." +"Because this example lets the shell expand the asterisk (i.e. you are " +"listing the files explicitly), it does not remove `subdir/git-foo.sh`." msgstr "" #. type: Plain text -#: en/git-svn.txt:989 +#: en/git-rm.txt:182 msgid "" -"'git clone' does not clone branches under the refs/remotes/ hierarchy or any " -"'git svn' metadata, or config. So repositories created and managed with " -"using 'git svn' should use 'rsync' for cloning, if cloning is to be done at " -"all." +"Each time a superproject update removes a populated submodule (e.g. when " +"switching between commits before and after the removal) a stale submodule " +"checkout will remain in the old location. Removing the old directory is only " +"safe when it uses a gitfile, as otherwise the history of the submodule will " +"be deleted too. This step will be obsolete when recursive submodule update " +"has been implemented." +msgstr "" + +#. type: Title = +#: en/git-send-email.txt:2 +#, no-wrap +msgid "git-send-email(1)" msgstr "" #. type: Plain text -#: en/git-svn.txt:994 -msgid "" -"Since 'dcommit' uses rebase internally, any Git branches you 'git push' to " -"before 'dcommit' on will require forcing an overwrite of the existing ref on " -"the remote repository. This is generally considered bad practice, see the " -"linkgit:git-push[1] documentation for details." +#: en/git-send-email.txt:7 +msgid "git-send-email - Send a collection of patches as emails" msgstr "" #. type: Plain text -#: en/git-svn.txt:999 +#: en/git-send-email.txt:14 +#, no-wrap msgid "" -"Do not use the --amend option of linkgit:git-commit[1] on a change you've " -"already dcommitted. It is considered bad practice to --amend commits you've " -"already pushed to a remote repository for other users, and dcommit with SVN " -"is analogous to that." +"'git send-email' [<options>] <file|directory|rev-list options>...\n" +"'git send-email' --dump-aliases\n" msgstr "" #. type: Plain text -#: en/git-svn.txt:1014 +#: en/git-send-email.txt:23 msgid "" -"When cloning an SVN repository, if none of the options for describing the " -"repository layout is used (--trunk, --tags, --branches, --stdlayout), 'git " -"svn clone' will create a Git repository with completely linear history, " -"where branches and tags appear as separate directories in the working copy. " -"While this is the easiest way to get a copy of a complete repository, for " -"projects with many branches it will lead to a working copy many times larger " -"than just the trunk. Thus for projects using the standard directory " -"structure (trunk/branches/tags), it is recommended to clone with option " -"`--stdlayout`. If the project uses a non-standard structure, and/or if " -"branches and tags are not required, it is easiest to only clone one " -"directory (typically trunk), without giving any repository layout options. " -"If the full history with branches and tags is required, the options " -"`--trunk` / `--branches` / `--tags` must be used." +"Takes the patches given on the command line and emails them out. Patches " +"can be specified as files, directories (which will send all files in the " +"directory), or directly as a revision list. In the last case, any format " +"accepted by linkgit:git-format-patch[1] can be passed to git send-email." msgstr "" #. type: Plain text -#: en/git-svn.txt:1021 +#: en/git-send-email.txt:27 msgid "" -"When using multiple --branches or --tags, 'git svn' does not automatically " -"handle name collisions (for example, if two branches from different paths " -"have the same name, or if a branch and a tag have the same name). In these " -"cases, use 'init' to set up your Git repository then, before your first " -"'fetch', edit the $GIT_DIR/config file so that the branches and tags are " -"associated with different name spaces. For example:" +"The header of the email is configurable via command-line options. If not " +"specified on the command line, the user will be prompted with a ReadLine " +"enabled interface to provide the necessary information." msgstr "" #. type: Plain text -#: en/git-svn.txt:1024 -#, no-wrap -msgid "" -"\tbranches = stable/*:refs/remotes/svn/stable/*\n" -"\tbranches = debug/*:refs/remotes/svn/debug/*\n" +#: en/git-send-email.txt:29 +msgid "There are two formats accepted for patch files:" msgstr "" #. type: Plain text -#: en/git-svn.txt:1030 -msgid "" -"We ignore all SVN properties except svn:executable. Any unhandled " -"properties are logged to $GIT_DIR/svn/<refname>/unhandled.log" +#: en/git-send-email.txt:31 +msgid "mbox format files" msgstr "" #. type: Plain text -#: en/git-svn.txt:1037 +#: en/git-send-email.txt:34 msgid "" -"Renamed and copied directories are not detected by Git and hence not tracked " -"when committing to SVN. I do not plan on adding support for this as it's " -"quite difficult and time-consuming to get working for all the possible " -"corner cases (Git doesn't do it, either). Committing renamed and copied " -"files is fully supported if they're similar enough for Git to detect them." +"This is what linkgit:git-format-patch[1] generates. Most headers and MIME " +"formatting are ignored." msgstr "" #. type: Plain text -#: en/git-svn.txt:1043 +#: en/git-send-email.txt:37 msgid "" -"In SVN, it is possible (though discouraged) to commit changes to a tag " -"(because a tag is just a directory copy, thus technically the same as a " -"branch). When cloning an SVN repository, 'git svn' cannot know if such a " -"commit to a tag will happen in the future. Thus it acts conservatively and " -"imports all SVN tags as branches, prefixing the tag name with 'tags/'." +"The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl' " +"script" msgstr "" #. type: Plain text -#: en/git-svn.txt:1054 +#: en/git-send-email.txt:40 msgid "" -"'git svn' stores [svn-remote] configuration information in the repository " -"$GIT_DIR/config file. It is similar the core Git [remote] sections except " -"'fetch' keys do not accept glob arguments; but they are instead handled by " -"the 'branches' and 'tags' keys. Since some SVN repositories are oddly " -"configured with multiple projects glob expansions such those listed below " -"are allowed:" +"This format expects the first line of the file to contain the \"Cc:\" value " +"and the \"Subject:\" of the message as the second line." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:1063 +#. type: Title ~ +#: en/git-send-email.txt:46 #, no-wrap -msgid "" -"[svn-remote \"project-a\"]\n" -"\turl = http://server.org/svn\n" -"\tfetch = trunk/project-a:refs/remotes/project-a/trunk\n" -"\tbranches = branches/*/project-a:refs/remotes/project-a/branches/*\n" -"\tbranches = branches/release_*:refs/remotes/project-a/branches/release_*\n" -"\tbranches = branches/re*se:refs/remotes/project-a/branches/*\n" -"\ttags = tags/*/project-a:refs/remotes/project-a/tags/*\n" +msgid "Composing" msgstr "" -#. type: Plain text -#: en/git-svn.txt:1071 +#. type: Labeled list +#: en/git-send-email.txt:48 en/git-tag.txt:61 #, no-wrap -msgid "" -"Keep in mind that the '\\*' (asterisk) wildcard of the local ref\n" -"(right of the ':') *must* be the farthest right path component;\n" -"however the remote wildcard may be anywhere as long as it's an\n" -"independent path component (surrounded by '/' or EOL). This\n" -"type of configuration is not automatically created by 'init' and\n" -"should be manually entered with a text-editor or using 'git config'.\n" +msgid "--annotate" msgstr "" #. type: Plain text -#: en/git-svn.txt:1073 -msgid "Also note that only one asterisk is allowed per word. For example:" +#: en/git-send-email.txt:52 +msgid "" +"Review and edit each patch you're about to send. Default is the value of " +"`sendemail.annotate`. See the CONFIGURATION section for `sendemail." +"multiEdit`." msgstr "" -#. type: Plain text -#: en/git-svn.txt:1075 +#. type: Labeled list +#: en/git-send-email.txt:53 #, no-wrap -msgid "\tbranches = branches/re*se:refs/remotes/project-a/branches/*\n" +msgid "--bcc=<address>,..." msgstr "" #. type: Plain text -#: en/git-svn.txt:1077 -msgid "will match branches 'release', 'rese', 're123se', however" +#: en/git-send-email.txt:56 +msgid "" +"Specify a \"Bcc:\" value for each email. Default is the value of `sendemail." +"bcc`." msgstr "" #. type: Plain text -#: en/git-svn.txt:1079 -#, no-wrap -msgid "\tbranches = branches/re*s*e:refs/remotes/project-a/branches/*\n" +#: en/git-send-email.txt:58 en/git-send-email.txt:64 en/git-send-email.txt:126 +msgid "This option may be specified multiple times." msgstr "" -#. type: Plain text -#: en/git-svn.txt:1081 -msgid "will produce an error." +#. type: Labeled list +#: en/git-send-email.txt:59 +#, no-wrap +msgid "--cc=<address>,..." msgstr "" #. type: Plain text -#: en/git-svn.txt:1084 +#: en/git-send-email.txt:62 msgid "" -"It is also possible to fetch a subset of branches or tags by using a " -"comma-separated list of names within braces. For example:" +"Specify a starting \"Cc:\" value for each email. Default is the value of " +"`sendemail.cc`." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:1091 +#. type: Labeled list +#: en/git-send-email.txt:65 #, no-wrap -msgid "" -"[svn-remote \"huge-project\"]\n" -"\turl = http://server.org/svn\n" -"\tfetch = trunk/src:refs/remotes/trunk\n" -"\tbranches = branches/{red,green}/src:refs/remotes/project-a/branches/*\n" -"\ttags = tags/{1.0,2.0}/src:refs/remotes/project-a/tags/*\n" +msgid "--compose" msgstr "" #. type: Plain text -#: en/git-svn.txt:1094 -msgid "Multiple fetch, branches, and tags keys are supported:" -msgstr "" - -#. type: delimited block - -#: en/git-svn.txt:1103 -#, no-wrap +#: en/git-send-email.txt:68 msgid "" -"[svn-remote \"messy-repo\"]\n" -"\turl = http://server.org/svn\n" -"\tfetch = trunk/project-a:refs/remotes/project-a/trunk\n" -"\tfetch = " -"branches/demos/june-project-a-demo:refs/remotes/project-a/demos/june-demo\n" -"\tbranches = branches/server/*:refs/remotes/project-a/branches/*\n" -"\tbranches = branches/demos/2011/*:refs/remotes/project-a/2011-demos/*\n" -"\ttags = tags/server/*:refs/remotes/project-a/tags/*\n" +"Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) to edit an " +"introductory message for the patch series." msgstr "" #. type: Plain text -#: en/git-svn.txt:1107 +#: en/git-send-email.txt:74 msgid "" -"Creating a branch in such a configuration requires disambiguating which " -"location to use using the -d or --destination flag:" +"When `--compose` is used, git send-email will use the From, Subject, and In-" +"Reply-To headers specified in the message. If the body of the message (what " +"you type after the headers and a blank line) only contains blank (or Git: " +"prefixed) lines, the summary won't be sent, but From, Subject, and In-Reply-" +"To headers will be used unless they are removed." msgstr "" -#. type: delimited block - -#: en/git-svn.txt:1110 -#, no-wrap -msgid "$ git svn branch -d branches/server release-2-3-0\n" +#. type: Plain text +#: en/git-send-email.txt:76 +msgid "Missing From or In-Reply-To headers will be prompted for." msgstr "" #. type: Plain text -#: en/git-svn.txt:1116 -msgid "" -"Note that git-svn keeps track of the highest revision in which a branch or " -"tag has appeared. If the subset of branches or tags is changed after " -"fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove (or " -"reset) branches-maxRev and/or tags-maxRev as appropriate." +#: en/git-send-email.txt:78 +msgid "See the CONFIGURATION section for `sendemail.multiEdit`." msgstr "" -#. type: Plain text -#: en/git-svn.txt:1125 +#. type: Labeled list +#: en/git-send-email.txt:79 #, no-wrap -msgid "" -"$GIT_DIR/svn/\\*\\*/.rev_map.*::\n" -"\tMapping between Subversion revision numbers and Git commit\n" -"\tnames. In a repository where the noMetadata option is not set,\n" -"\tthis can be rebuilt from the git-svn-id: lines that are at the\n" -"\tend of every commit (see the 'svn.noMetadata' section above for\n" -"\tdetails).\n" +msgid "--from=<address>" msgstr "" #. type: Plain text -#: en/git-svn.txt:1129 +#: en/git-send-email.txt:86 msgid "" -"'git svn fetch' and 'git svn rebase' automatically update the rev_map if it " -"is missing or not up to date. 'git svn reset' automatically rewinds it." +"Specify the sender of the emails. If not specified on the command line, the " +"value of the `sendemail.from` configuration option is used. If neither the " +"command-line option nor `sendemail.from` are set, then the user will be " +"prompted for the value. The default for the prompt will be the value of " +"GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not set, as returned by " +"\"git var -l\"." msgstr "" #. type: Labeled list -#: en/git-svn.txt:1133 en/cmds-mainporcelain.txt:79 -#, no-wrap -msgid "linkgit:git-rebase[1]" -msgstr "" - -#. type: Title = -#: en/git-symbolic-ref.txt:2 +#: en/git-send-email.txt:87 #, no-wrap -msgid "git-symbolic-ref(1)" +msgid "--reply-to=<address>" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:7 -msgid "git-symbolic-ref - Read, modify and delete symbolic refs" +#: en/git-send-email.txt:91 +msgid "" +"Specify the address where replies from recipients should go to. Use this if " +"replies to messages should go to another address than what is specified with " +"the --from parameter." msgstr "" -#. type: Plain text -#: en/git-symbolic-ref.txt:14 +#. type: Labeled list +#: en/git-send-email.txt:92 #, no-wrap -msgid "" -"'git symbolic-ref' [-m <reason>] <name> <ref>\n" -"'git symbolic-ref' [-q] [--short] <name>\n" -"'git symbolic-ref' --delete [-q] <name>\n" +msgid "--in-reply-to=<identifier>" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:21 +#: en/git-send-email.txt:98 msgid "" -"Given one argument, reads which branch head the given symbolic ref refers to " -"and outputs its path, relative to the `.git/` directory. Typically you " -"would give `HEAD` as the <name> argument to see which branch your working " -"tree is on." +"Make the first mail (or all the mails with `--no-thread`) appear as a reply " +"to the given Message-Id, which avoids breaking threads to provide a new " +"patch series. The second and subsequent emails will be sent as replies " +"according to the `--[no-]chain-reply-to` setting." msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:24 +#: en/git-send-email.txt:102 msgid "" -"Given two arguments, creates or updates a symbolic ref <name> to point at " -"the given branch <ref>." +"So for example when `--thread` and `--no-chain-reply-to` are specified, the " +"second and subsequent patches will be replies to the first one like in the " +"illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:27 -msgid "Given `--delete` and an additional argument, deletes the given symbolic ref." +#: en/git-send-email.txt:110 +#, no-wrap +msgid "" +" [PATCH 0/2] Here is what I did...\n" +" [PATCH 1/2] Clean up and tests\n" +" [PATCH 2/2] Implementation\n" +" [PATCH v2 0/3] Here is a reroll\n" +" [PATCH v2 1/3] Clean up\n" +" [PATCH v2 2/3] New tests\n" +" [PATCH v2 3/3] Implementation\n" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:31 +#: en/git-send-email.txt:113 msgid "" -"A symbolic ref is a regular file that stores a string that begins with `ref: " -"refs/`. For example, your `.git/HEAD` is a regular file whose contents is " -"`ref: refs/heads/master`." +"Only necessary if --compose is also set. If --compose is not set, this will " +"be prompted for." msgstr "" -#. type: Plain text -#: en/git-symbolic-ref.txt:38 -msgid "Delete the symbolic ref <name>." +#. type: Labeled list +#: en/git-send-email.txt:114 +#, no-wrap +msgid "--subject=<string>" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:44 +#: en/git-send-email.txt:118 msgid "" -"Do not issue an error message if the <name> is not a symbolic ref but a " -"detached HEAD; instead exit with non-zero status silently." +"Specify the initial subject of the email thread. Only necessary if --" +"compose is also set. If --compose is not set, this will be prompted for." msgstr "" -#. type: Plain text -#: en/git-symbolic-ref.txt:48 -msgid "" -"When showing the value of <name> as a symbolic ref, try to shorten the " -"value, e.g. from `refs/heads/master` to `master`." +#. type: Labeled list +#: en/git-send-email.txt:119 +#, no-wrap +msgid "--to=<address>,..." msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:52 +#: en/git-send-email.txt:124 msgid "" -"Update the reflog for <name> with <reason>. This is valid only when " -"creating or updating a symbolic ref." +"Specify the primary recipient of the emails generated. Generally, this will " +"be the upstream maintainer of the project involved. Default is the value of " +"the `sendemail.to` configuration value; if that is unspecified, and --to-cmd " +"is not specified, this will be prompted for." msgstr "" -#. type: Plain text -#: en/git-symbolic-ref.txt:62 -msgid "" -"In the past, `.git/HEAD` was a symbolic link pointing at " -"`refs/heads/master`. When we wanted to switch to another branch, we did `ln " -"-sf refs/heads/newbranch .git/HEAD`, and when we wanted to find out which " -"branch we are on, we did `readlink .git/HEAD`. But symbolic links are not " -"entirely portable, so they are now deprecated and symbolic refs (as " -"described above) are used by default." +#. type: Labeled list +#: en/git-send-email.txt:127 +#, no-wrap +msgid "--8bit-encoding=<encoding>" msgstr "" #. type: Plain text -#: en/git-symbolic-ref.txt:66 +#: en/git-send-email.txt:133 msgid "" -"'git symbolic-ref' will exit with status 0 if the contents of the symbolic " -"ref were printed correctly, with status 1 if the requested name is not a " -"symbolic ref, or 128 if another error occurs." -msgstr "" - -#. type: Title = -#: en/git-tag.txt:2 -#, no-wrap -msgid "git-tag(1)" +"When encountering a non-ASCII message or subject that does not declare its " +"encoding, add headers/quoting to indicate it is encoded in <encoding>. " +"Default is the value of the 'sendemail.assume8bitEncoding'; if that is " +"unspecified, this will be prompted for if any non-ASCII files are " +"encountered." msgstr "" #. type: Plain text -#: en/git-tag.txt:7 -msgid "git-tag - Create, list, delete or verify a tag object signed with GPG" +#: en/git-send-email.txt:135 +msgid "Note that no attempts whatsoever are made to validate the encoding." msgstr "" -#. type: Plain text -#: en/git-tag.txt:19 +#. type: Labeled list +#: en/git-send-email.txt:136 #, no-wrap -msgid "" -"'git tag' [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>]\n" -"\t<tagname> [<commit> | <object>]\n" -"'git tag' -d <tagname>...\n" -"'git tag' [-n[<num>]] -l [--contains <commit>] [--points-at <object>]\n" -"\t[--column[=<options>] | --no-column] [--create-reflog] [--sort=<key>]\n" -"\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]\n" -"'git tag' -v [--format=<format>] <tagname>...\n" +msgid "--compose-encoding=<encoding>" msgstr "" #. type: Plain text -#: en/git-tag.txt:25 +#: en/git-send-email.txt:139 msgid "" -"Add a tag reference in `refs/tags/`, unless `-d/-l/-v` is given to delete, " -"list or verify tags." -msgstr "" - -#. type: Plain text -#: en/git-tag.txt:27 -msgid "Unless `-f` is given, the named tag must not yet exist." +"Specify encoding of compose message. Default is the value of the 'sendemail." +"composeencoding'; if that is unspecified, UTF-8 is assumed." msgstr "" -#. type: Plain text -#: en/git-tag.txt:32 -msgid "" -"If one of `-a`, `-s`, or `-u <keyid>` is passed, the command creates a 'tag' " -"object, and requires a tag message. Unless `-m <msg>` or `-F <file>` is " -"given, an editor is started for the user to type in the tag message." +#. type: Labeled list +#: en/git-send-email.txt:140 +#, no-wrap +msgid "--transfer-encoding=(7bit|8bit|quoted-printable|base64|auto)" msgstr "" #. type: Plain text -#: en/git-tag.txt:35 +#: en/git-send-email.txt:148 msgid "" -"If `-m <msg>` or `-F <file>` is given and `-a`, `-s`, and `-u <keyid>` are " -"absent, `-a` is implied." +"Specify the transfer encoding to be used to send the message over SMTP. " +"7bit will fail upon encountering a non-ASCII message. quoted-printable can " +"be useful when the repository contains files that contain carriage returns, " +"but makes the raw patch email file (as saved from a MUA) much harder to " +"inspect manually. base64 is even more fool proof, but also even more " +"opaque. auto will use 8bit when possible, and quoted-printable otherwise." msgstr "" #. type: Plain text -#: en/git-tag.txt:38 +#: en/git-send-email.txt:151 msgid "" -"Otherwise just a tag reference for the SHA-1 object name of the commit " -"object is created (i.e. a lightweight tag)." +"Default is the value of the `sendemail.transferEncoding` configuration " +"value; if that is unspecified, default to `auto`." msgstr "" -#. type: Plain text -#: en/git-tag.txt:44 -msgid "" -"A GnuPG signed tag object will be created when `-s` or `-u <keyid>` is " -"used. When `-u <keyid>` is not used, the committer identity for the current " -"user is used to find the GnuPG key for signing. \tThe configuration variable " -"`gpg.program` is used to specify custom GnuPG binary." +#. type: Labeled list +#: en/git-send-email.txt:152 +#, no-wrap +msgid "--xmailer" msgstr "" -#. type: Plain text -#: en/git-tag.txt:50 -msgid "" -"Tag objects (created with `-a`, `-s`, or `-u`) are called \"annotated\" " -"tags; they contain a creation date, the tagger name and e-mail, a tagging " -"message, and an optional GnuPG signature. Whereas a \"lightweight\" tag is " -"simply a name for an object (usually a commit object)." +#. type: Labeled list +#: en/git-send-email.txt:153 +#, no-wrap +msgid "--no-xmailer" msgstr "" #. type: Plain text -#: en/git-tag.txt:55 +#: en/git-send-email.txt:157 msgid "" -"Annotated tags are meant for release while lightweight tags are meant for " -"private or temporary object labels. For this reason, some git commands for " -"naming objects (like `git describe`) will ignore lightweight tags by " -"default." +"Add (or prevent adding) the \"X-Mailer:\" header. By default, the header is " +"added, but it can be turned off by setting the `sendemail.xmailer` " +"configuration variable to `false`." msgstr "" -#. type: Plain text -#: en/git-tag.txt:62 -msgid "Make an unsigned, annotated tag object" +#. type: Title ~ +#: en/git-send-email.txt:159 +#, no-wrap +msgid "Sending" msgstr "" #. type: Labeled list -#: en/git-tag.txt:64 +#: en/git-send-email.txt:161 #, no-wrap -msgid "--sign" +msgid "--envelope-sender=<address>" msgstr "" #. type: Plain text -#: en/git-tag.txt:66 -msgid "Make a GPG-signed tag, using the default e-mail address's key." +#: en/git-send-email.txt:169 +msgid "" +"Specify the envelope sender used to send the emails. This is useful if your " +"default address is not the address that is subscribed to a list. In order to " +"use the 'From' address, set the value to \"auto\". If you use the sendmail " +"binary, you must have suitable privileges for the -f parameter. Default is " +"the value of the `sendemail.envelopeSender` configuration variable; if that " +"is unspecified, choosing the envelope sender is left to your MTA." msgstr "" #. type: Labeled list -#: en/git-tag.txt:67 +#: en/git-send-email.txt:170 #, no-wrap -msgid "-u <keyid>" +msgid "--smtp-encryption=<encryption>" +msgstr "" + +#. type: Plain text +#: en/git-send-email.txt:174 +msgid "" +"Specify the encryption to use, either 'ssl' or 'tls'. Any other value " +"reverts to plain SMTP. Default is the value of `sendemail.smtpEncryption`." msgstr "" #. type: Labeled list -#: en/git-tag.txt:68 +#: en/git-send-email.txt:175 #, no-wrap -msgid "--local-user=<keyid>" +msgid "--smtp-domain=<FQDN>" msgstr "" #. type: Plain text -#: en/git-tag.txt:70 -msgid "Make a GPG-signed tag, using the given key." +#: en/git-send-email.txt:181 +msgid "" +"Specifies the Fully Qualified Domain Name (FQDN) used in the HELO/EHLO " +"command to the SMTP server. Some servers require the FQDN to match your IP " +"address. If not set, git send-email attempts to determine your FQDN " +"automatically. Default is the value of `sendemail.smtpDomain`." msgstr "" -#. type: Plain text -#: en/git-tag.txt:74 -msgid "Replace an existing tag with the given name (instead of failing)" +#. type: Labeled list +#: en/git-send-email.txt:182 +#, no-wrap +msgid "--smtp-auth=<mechanisms>" msgstr "" #. type: Plain text -#: en/git-tag.txt:78 -msgid "Delete existing tags with the given names." +#: en/git-send-email.txt:185 +msgid "" +"Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting " +"forces using only the listed mechanisms. Example:" +msgstr "" + +#. type: delimited block - +#: en/git-send-email.txt:188 +#, no-wrap +msgid "$ git send-email --smtp-auth=\"PLAIN LOGIN GSSAPI\" ...\n" msgstr "" #. type: Plain text -#: en/git-tag.txt:82 -msgid "Verify the GPG signature of the given tag names." +#: en/git-send-email.txt:196 +msgid "" +"If at least one of the specified mechanisms matches the ones advertised by " +"the SMTP server and if it is supported by the utilized SASL library, the " +"mechanism is used for authentication. If neither 'sendemail.smtpAuth' nor `--" +"smtp-auth` is specified, all mechanisms supported by the SASL library can be " +"used. The special value 'none' maybe specified to completely disable " +"authentication independently of `--smtp-user`" msgstr "" #. type: Labeled list -#: en/git-tag.txt:83 +#: en/git-send-email.txt:197 #, no-wrap -msgid "-n<num>" +msgid "--smtp-pass[=<password>]" msgstr "" #. type: Plain text -#: en/git-tag.txt:89 +#: en/git-send-email.txt:202 msgid "" -"<num> specifies how many lines from the annotation, if any, are printed when " -"using -l. The default is not to print any annotation lines. If no number " -"is given to `-n`, only the first line is printed. If the tag is not " -"annotated, the commit message is displayed instead." +"Password for SMTP-AUTH. The argument is optional: If no argument is " +"specified, then the empty string is used as the password. Default is the " +"value of `sendemail.smtpPass`, however `--smtp-pass` always overrides this " +"value." msgstr "" #. type: Plain text -#: en/git-tag.txt:97 +#: en/git-send-email.txt:208 msgid "" -"List tags with names that match the given pattern (or all if no pattern is " -"given). Running \"git tag\" without arguments also lists all tags. The " -"pattern is a shell wildcard (i.e., matched using fnmatch(3)). Multiple " -"patterns may be given; if any of them matches, the tag is shown." +"Furthermore, passwords need not be specified in configuration files or on " +"the command line. If a username has been specified (with `--smtp-user` or a " +"`sendemail.smtpUser`), but no password has been specified (with `--smtp-" +"pass` or `sendemail.smtpPass`), then a password is obtained using 'git-" +"credential'." msgstr "" -#. type: Plain text -#: en/git-tag.txt:110 -msgid "" -"Sort based on the key given. Prefix `-` to sort in descending order of the " -"value. You may use the --sort=<key> option multiple times, in which case the " -"last key becomes the primary key. Also supports \"version:refname\" or " -"\"v:refname\" (tag names are treated as versions). The \"version:refname\" " -"sort order can also be affected by the \"versionsort.suffix\" configuration " -"variable. The keys supported are the same as those in `git for-each-ref`. " -"Sort order defaults to the value configured for the `tag.sort` variable if " -"it exists, or lexicographic order otherwise. See linkgit:git-config[1]." +#. type: Labeled list +#: en/git-send-email.txt:209 +#, no-wrap +msgid "--no-smtp-auth" msgstr "" #. type: Plain text -#: en/git-tag.txt:114 -msgid "Sorting and filtering tags are case insensitive." +#: en/git-send-email.txt:211 +msgid "Disable SMTP authentication. Short hand for `--smtp-auth=none`" +msgstr "" + +#. type: Labeled list +#: en/git-send-email.txt:212 +#, no-wrap +msgid "--smtp-server=<host>" msgstr "" #. type: Plain text -#: en/git-tag.txt:120 +#: en/git-send-email.txt:221 msgid "" -"Display tag listing in columns. See configuration variable column.tag for " -"option syntax.`--column` and `--no-column` without options are equivalent to " -"'always' and 'never' respectively." +"If set, specifies the outgoing SMTP server to use (e.g. `smtp.example.com` " +"or a raw IP address). Alternatively it can specify a full pathname of a " +"sendmail-like program instead; the program must support the `-i` option. " +"Default value can be specified by the `sendemail.smtpServer` configuration " +"option; the built-in default is to search for `sendmail` in `/usr/sbin`, `/" +"usr/lib` and $PATH if such program is available, falling back to `localhost` " +"otherwise." msgstr "" -#. type: Plain text -#: en/git-tag.txt:122 -msgid "This option is only applicable when listing tags without annotation lines." +#. type: Labeled list +#: en/git-send-email.txt:222 +#, no-wrap +msgid "--smtp-server-port=<port>" msgstr "" #. type: Plain text -#: en/git-tag.txt:126 -msgid "Only list tags which contain the specified commit (HEAD if not specified)." +#: en/git-send-email.txt:229 +msgid "" +"Specifies a port different from the default port (SMTP servers typically " +"listen to smtp port 25, but may also listen to submission port 587, or the " +"common SSL smtp port 465); symbolic port names (e.g. \"submission\" instead " +"of 587) are also accepted. The port can also be set with the `sendemail." +"smtpServerPort` configuration variable." msgstr "" -#. type: Plain text -#: en/git-tag.txt:129 -msgid "Only list tags of the given object." +#. type: Labeled list +#: en/git-send-email.txt:230 +#, no-wrap +msgid "--smtp-server-option=<option>" msgstr "" #. type: Plain text -#: en/git-tag.txt:137 +#: en/git-send-email.txt:234 msgid "" -"Use the given tag message (instead of prompting). If multiple `-m` options " -"are given, their values are concatenated as separate paragraphs. Implies " -"`-a` if none of `-a`, `-s`, or `-u <keyid>` is given." +"If set, specifies the outgoing SMTP server option to use. Default value can " +"be specified by the `sendemail.smtpServerOption` configuration option." msgstr "" #. type: Plain text -#: en/git-tag.txt:144 +#: en/git-send-email.txt:238 msgid "" -"Take the tag message from the given file. Use '-' to read the message from " -"the standard input. Implies `-a` if none of `-a`, `-s`, or `-u <keyid>` is " -"given." +"The --smtp-server-option option must be repeated for each option you want to " +"pass to the server. Likewise, different lines in the configuration files " +"must be used for each option." msgstr "" -#. type: Plain text -#: en/git-tag.txt:151 -msgid "" -"This option sets how the tag message is cleaned up. The '<mode>' can be one " -"of 'verbatim', 'whitespace' and 'strip'. The 'strip' mode is default. The " -"'verbatim' mode does not change message at all, 'whitespace' removes just " -"leading/trailing whitespace lines and 'strip' removes both whitespace and " -"commentary." +#. type: Labeled list +#: en/git-send-email.txt:239 +#, no-wrap +msgid "--smtp-ssl" msgstr "" #. type: Plain text -#: en/git-tag.txt:158 -msgid "" -"Create a reflog for the tag. To globally enable reflogs for tags, see " -"`core.logAllRefUpdates` in linkgit:git-config[1]. The negated form " -"`--no-create-reflog` only overrides an earlier `--create-reflog`, but " -"currently does not negate the setting of `core.logallrefupdates`." +#: en/git-send-email.txt:241 +msgid "Legacy alias for '--smtp-encryption ssl'." msgstr "" #. type: Labeled list -#: en/git-tag.txt:159 +#: en/git-send-email.txt:242 #, no-wrap -msgid "<tagname>" +msgid "--smtp-ssl-cert-path" msgstr "" #. type: Plain text -#: en/git-tag.txt:164 +#: en/git-send-email.txt:252 msgid "" -"The name of the tag to create, delete, or describe. The new tag name must " -"pass all checks defined by linkgit:git-check-ref-format[1]. Some of these " -"checks may restrict the characters allowed in a tag name." +"Path to a store of trusted CA certificates for SMTP SSL/TLS certificate " +"validation (either a directory that has been processed by 'c_rehash', or a " +"single file containing one or more PEM format certificates concatenated " +"together: see verify(1) -CAfile and -CApath for more information on these). " +"Set it to an empty string to disable certificate verification. Defaults to " +"the value of the `sendemail.smtpsslcertpath` configuration variable, if set, " +"or the backing SSL library's compiled-in default otherwise (which should be " +"the best choice on most platforms)." msgstr "" -#. type: Plain text -#: en/git-tag.txt:169 -msgid "" -"The object that the new tag will refer to, usually a commit. Defaults to " -"HEAD." +#. type: Labeled list +#: en/git-send-email.txt:253 +#, no-wrap +msgid "--smtp-user=<user>" msgstr "" #. type: Plain text -#: en/git-tag.txt:175 +#: en/git-send-email.txt:257 msgid "" -"A string that interpolates `%(fieldname)` from the object pointed at by a " -"ref being shown. The format is the same as that of " -"linkgit:git-for-each-ref[1]. When unspecified, defaults to " -"`%(refname:strip=2)`." +"Username for SMTP-AUTH. Default is the value of `sendemail.smtpUser`; if a " +"username is not specified (with `--smtp-user` or `sendemail.smtpUser`), then " +"authentication is not attempted." msgstr "" #. type: Labeled list -#: en/git-tag.txt:176 +#: en/git-send-email.txt:258 #, no-wrap -msgid "--[no-]merged [<commit>]" +msgid "--smtp-debug=0|1" msgstr "" #. type: Plain text -#: en/git-tag.txt:180 +#: en/git-send-email.txt:262 msgid "" -"Only list tags whose tips are reachable, or not reachable if `--no-merged` " -"is used, from the specified commit (`HEAD` if not specified)." +"Enable (1) or disable (0) debug output. If enabled, SMTP commands and " +"replies will be printed. Useful to debug TLS connection and authentication " +"problems." +msgstr "" + +#. type: Labeled list +#: en/git-send-email.txt:263 +#, no-wrap +msgid "--batch-size=<num>" msgstr "" #. type: Plain text -#: en/git-tag.txt:187 +#: en/git-send-email.txt:272 msgid "" -"By default, 'git tag' in sign-with-default mode (-s) will use your committer " -"identity (of the form `Your Name <your@email.address>`) to find a key. If " -"you want to use a different default key, you can specify it in the " -"repository configuration as follows:" +"Some email servers (e.g. smtp.163.com) limit the number emails to be sent " +"per session (connection) and this will lead to a failure when sending many " +"messages. With this option, send-email will disconnect after sending $<num> " +"messages and wait for a few seconds (see --relogin-delay) and reconnect, to " +"work around such a limit. You may want to use some form of credential " +"helper to avoid having to retype your password every time this happens. " +"Defaults to the `sendemail.smtpBatchSize` configuration variable." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:191 +#. type: Labeled list +#: en/git-send-email.txt:273 #, no-wrap +msgid "--relogin-delay=<int>" +msgstr "" + +#. type: Plain text +#: en/git-send-email.txt:277 msgid "" -"[user]\n" -" signingKey = <gpg-keyid>\n" +"Waiting $<int> seconds before reconnecting to SMTP server. Used together " +"with --batch-size option. Defaults to the `sendemail.smtpReloginDelay` " +"configuration variable." msgstr "" #. type: Title ~ -#: en/git-tag.txt:198 +#: en/git-send-email.txt:279 #, no-wrap -msgid "On Re-tagging" +msgid "Automating" msgstr "" -#. type: Plain text -#: en/git-tag.txt:202 -msgid "What should you do when you tag a wrong commit and you would want to re-tag?" +#. type: Labeled list +#: en/git-send-email.txt:281 +#, no-wrap +msgid "--to-cmd=<command>" msgstr "" #. type: Plain text -#: en/git-tag.txt:205 +#: en/git-send-email.txt:286 msgid "" -"If you never pushed anything out, just re-tag it. Use \"-f\" to replace the " -"old one. And you're done." +"Specify a command to execute once per patch file which should generate patch " +"file specific \"To:\" entries. Output of this command must be single email " +"address per line. Default is the value of 'sendemail.tocmd' configuration " +"value." msgstr "" -#. type: Plain text -#: en/git-tag.txt:209 -msgid "" -"But if you have pushed things out (or others could just read your repository " -"directly), then others will have already seen the old tag. In that case you " -"can do one of two things:" +#. type: Labeled list +#: en/git-send-email.txt:287 +#, no-wrap +msgid "--cc-cmd=<command>" msgstr "" #. type: Plain text -#: en/git-tag.txt:216 +#: en/git-send-email.txt:292 msgid "" -"The sane thing. Just admit you screwed up, and use a different name. Others " -"have already seen one tag-name, and if you keep the same name, you may be in " -"the situation that two people both have \"version X\", but they actually " -"have 'different' \"X\"'s. So just call it \"X.1\" and be done with it." +"Specify a command to execute once per patch file which should generate patch " +"file specific \"Cc:\" entries. Output of this command must be single email " +"address per line. Default is the value of `sendemail.ccCmd` configuration " +"value." msgstr "" -#. type: Plain text -#: en/git-tag.txt:221 -msgid "" -"The insane thing. You really want to call the new version \"X\" too, 'even " -"though' others have already seen the old one. So just use 'git tag -f' " -"again, as if you hadn't already published the old one." +#. type: Labeled list +#: en/git-send-email.txt:293 +#, no-wrap +msgid "--[no-]chain-reply-to" msgstr "" #. type: Plain text -#: en/git-tag.txt:226 +#: en/git-send-email.txt:300 msgid "" -"However, Git does *not* (and it should not) change tags behind users " -"back. So if somebody already got the old tag, doing a 'git pull' on your " -"tree shouldn't just make them overwrite the old one." +"If this is set, each email will be sent as a reply to the previous email " +"sent. If disabled with \"--no-chain-reply-to\", all emails after the first " +"will be sent as replies to the first email sent. When using this, it is " +"recommended that the first file given be an overview of the entire patch " +"series. Disabled by default, but the `sendemail.chainReplyTo` configuration " +"variable can be used to enable it." +msgstr "" + +#. type: Labeled list +#: en/git-send-email.txt:301 +#, no-wrap +msgid "--identity=<identity>" msgstr "" #. type: Plain text -#: en/git-tag.txt:233 +#: en/git-send-email.txt:306 msgid "" -"If somebody got a release tag from you, you cannot just change the tag for " -"them by updating your own one. This is a big security issue, in that people " -"MUST be able to trust their tag-names. If you really want to do the insane " -"thing, you need to just fess up to it, and tell people that you messed " -"up. You can do that by making a very public announcement saying:" +"A configuration identity. When given, causes values in the 'sendemail." +"<identity>' subsection to take precedence over values in the 'sendemail' " +"section. The default identity is the value of `sendemail.identity`." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:237 +#. type: Labeled list +#: en/git-send-email.txt:307 #, no-wrap -msgid "" -"Ok, I messed up, and I pushed out an earlier version tagged as X. I\n" -"then fixed something, and retagged the *fixed* tree as X again.\n" +msgid "--[no-]signed-off-by-cc" msgstr "" -#. type: delimited block - -#: en/git-tag.txt:240 -#, no-wrap +#. type: Plain text +#: en/git-send-email.txt:311 msgid "" -"If you got the wrong tag, and want the new one, please delete\n" -"the old one and fetch the new one by doing:\n" +"If this is set, add emails found in Signed-off-by: or Cc: lines to the cc " +"list. Default is the value of `sendemail.signedoffbycc` configuration value; " +"if that is unspecified, default to --signed-off-by-cc." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:243 +#. type: Labeled list +#: en/git-send-email.txt:312 #, no-wrap +msgid "--[no-]cc-cover" +msgstr "" + +#. type: Plain text +#: en/git-send-email.txt:317 msgid "" -"\tgit tag -d X\n" -"\tgit fetch origin tag X\n" +"If this is set, emails found in Cc: headers in the first patch of the series " +"(typically the cover letter) are added to the cc list for each email set. " +"Default is the value of 'sendemail.cccover' configuration value; if that is " +"unspecified, default to --no-cc-cover." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:245 +#. type: Labeled list +#: en/git-send-email.txt:318 #, no-wrap -msgid "to get my updated tag.\n" +msgid "--[no-]to-cover" msgstr "" -#. type: delimited block - -#: en/git-tag.txt:247 -#, no-wrap -msgid "You can test which tag you have by doing\n" +#. type: Plain text +#: en/git-send-email.txt:323 +msgid "" +"If this is set, emails found in To: headers in the first patch of the series " +"(typically the cover letter) are added to the to list for each email set. " +"Default is the value of 'sendemail.tocover' configuration value; if that is " +"unspecified, default to --no-to-cover." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:249 +#. type: Labeled list +#: en/git-send-email.txt:324 #, no-wrap -msgid "\tgit rev-parse X\n" +msgid "--suppress-cc=<category>" msgstr "" -#. type: delimited block - -#: en/git-tag.txt:251 -#, no-wrap -msgid "which should return 0123456789abcdef.. if you have the new version.\n" +#. type: Plain text +#: en/git-send-email.txt:327 +msgid "" +"Specify an additional category of recipients to suppress the auto-cc of:" msgstr "" -#. type: delimited block - -#: en/git-tag.txt:253 -#, no-wrap -msgid "Sorry for the inconvenience.\n" +#. type: Plain text +#: en/git-send-email.txt:330 +msgid "'author' will avoid including the patch author." msgstr "" #. type: Plain text -#: en/git-tag.txt:258 -msgid "" -"Does this seem a bit complicated? It *should* be. There is no way that it " -"would be correct to just \"fix\" it automatically. People need to know that " -"their tags might have been changed." +#: en/git-send-email.txt:331 +msgid "'self' will avoid including the sender." msgstr "" -#. type: Title ~ -#: en/git-tag.txt:261 -#, no-wrap -msgid "On Automatic following" +#. type: Plain text +#: en/git-send-email.txt:333 +msgid "" +"'cc' will avoid including anyone mentioned in Cc lines in the patch header " +"except for self (use 'self' for that)." msgstr "" #. type: Plain text -#: en/git-tag.txt:266 +#: en/git-send-email.txt:335 msgid "" -"If you are following somebody else's tree, you are most likely using " -"remote-tracking branches (eg. `refs/remotes/origin/master`). You usually " -"want the tags from the other end." +"'bodycc' will avoid including anyone mentioned in Cc lines in the patch body " +"(commit message) except for self (use 'self' for that)." msgstr "" #. type: Plain text -#: en/git-tag.txt:273 +#: en/git-send-email.txt:337 msgid "" -"On the other hand, if you are fetching because you would want a one-shot " -"merge from somebody else, you typically do not want to get tags from there. " -"This happens more often for people near the toplevel but not limited to " -"them. Mere mortals when pulling from each other do not necessarily want to " -"automatically get private anchor point tags from the other person." +"'sob' will avoid including anyone mentioned in Signed-off-by lines except " +"for self (use 'self' for that)." msgstr "" #. type: Plain text -#: en/git-tag.txt:278 +#: en/git-send-email.txt:340 msgid "" -"Often, \"please pull\" messages on the mailing list just provide two pieces " -"of information: a repo URL and a branch name; this is designed to be easily " -"cut&pasted at the end of a 'git fetch' command line:" +"'misc-by' will avoid including anyone mentioned in Acked-by, Reviewed-by, " +"Tested-by and other \"-by\" lines in the patch body, except Signed-off-by " +"(use 'sob' for that)." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:281 -#, no-wrap -msgid "Linus, please pull from\n" +#. type: Plain text +#: en/git-send-email.txt:341 +msgid "'cccmd' will avoid running the --cc-cmd." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:283 -#, no-wrap -msgid "\tgit://git..../proj.git master\n" +#. type: Plain text +#: en/git-send-email.txt:342 +msgid "'body' is equivalent to 'sob' + 'bodycc' + 'misc-by'." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:285 -#, no-wrap -msgid "to get the following updates...\n" +#. type: Plain text +#: en/git-send-email.txt:343 +msgid "'all' will suppress all auto cc values." msgstr "" #. type: Plain text -#: en/git-tag.txt:288 -msgid "becomes:" +#: en/git-send-email.txt:348 +msgid "" +"Default is the value of `sendemail.suppresscc` configuration value; if that " +"is unspecified, default to 'self' if --suppress-from is specified, as well " +"as 'body' if --no-signed-off-cc is specified." msgstr "" -#. type: delimited block - -#: en/git-tag.txt:291 +#. type: Labeled list +#: en/git-send-email.txt:349 #, no-wrap -msgid "$ git pull git://git..../proj.git master\n" +msgid "--[no-]suppress-from" msgstr "" #. type: Plain text -#: en/git-tag.txt:295 +#: en/git-send-email.txt:353 msgid "" -"In such a case, you do not want to automatically follow the other person's " -"tags." +"If this is set, do not add the From: address to the cc: list. Default is " +"the value of `sendemail.suppressFrom` configuration value; if that is " +"unspecified, default to --no-suppress-from." +msgstr "" + +#. type: Labeled list +#: en/git-send-email.txt:354 +#, no-wrap +msgid "--[no-]thread" msgstr "" #. type: Plain text -#: en/git-tag.txt:303 +#: en/git-send-email.txt:360 msgid "" -"One important aspect of Git is its distributed nature, which largely means " -"there is no inherent \"upstream\" or \"downstream\" in the system. On the " -"face of it, the above example might seem to indicate that the tag namespace " -"is owned by the upper echelon of people and that tags only flow downwards, " -"but that is not the case. It only shows that the usage pattern determines " -"who are interested in whose tags." +"If this is set, the In-Reply-To and References headers will be added to each " +"email sent. Whether each mail refers to the previous email (`deep` " +"threading per 'git format-patch' wording) or to the first email (`shallow` " +"threading) is governed by \"--[no-]chain-reply-to\"." msgstr "" #. type: Plain text -#: en/git-tag.txt:315 +#: en/git-send-email.txt:365 msgid "" -"A one-shot pull is a sign that a commit history is now crossing the boundary " -"between one circle of people (e.g. \"people who are primarily interested in " -"the networking part of the kernel\") who may have their own set of tags " -"(e.g. \"this is the third release candidate from the networking group to be " -"proposed for general consumption with 2.6.21 release\") to another circle of " -"people (e.g. \"people who integrate various subsystem improvements\"). The " -"latter are usually not interested in the detailed tags used internally in " -"the former group (that is what \"internal\" means). That is why it is " -"desirable not to follow tags automatically in this case." +"If disabled with \"--no-thread\", those headers will not be added (unless " +"specified with --in-reply-to). Default is the value of the `sendemail." +"thread` configuration value; if that is unspecified, default to --thread." msgstr "" #. type: Plain text -#: en/git-tag.txt:321 +#: en/git-send-email.txt:371 msgid "" -"It may well be that among networking people, they may want to exchange the " -"tags internal to their group, but in that workflow they are most likely " -"tracking each other's progress by having remote-tracking branches. Again, " -"the heuristic to automatically follow such tags is a good thing." +"It is up to the user to ensure that no In-Reply-To header already exists " +"when 'git send-email' is asked to add it (especially note that 'git format-" +"patch' can be configured to do the threading itself). Failure to do so may " +"not produce the expected result in the recipient's MUA." msgstr "" #. type: Title ~ -#: en/git-tag.txt:324 +#: en/git-send-email.txt:374 #, no-wrap -msgid "On Backdating Tags" +msgid "Administering" msgstr "" -#. type: Plain text -#: en/git-tag.txt:331 -msgid "" -"If you have imported some changes from another VCS and would like to add " -"tags for major releases of your work, it is useful to be able to specify the " -"date to embed inside of the tag object; such data in the tag object affects, " -"for example, the ordering of tags in the gitweb interface." +#. type: Labeled list +#: en/git-send-email.txt:376 +#, no-wrap +msgid "--confirm=<mode>" msgstr "" #. type: Plain text -#: en/git-tag.txt:335 -msgid "" -"To set the date used in future tag objects, set the environment variable " -"GIT_COMMITTER_DATE (see the later discussion of possible values; the most " -"common form is \"YYYY-MM-DD HH:MM\")." +#: en/git-send-email.txt:378 +msgid "Confirm just before sending:" msgstr "" -#. type: delimited block - -#: en/git-tag.txt:340 -#, no-wrap -msgid "$ GIT_COMMITTER_DATE=\"2006-10-02 10:31\" git tag -s v1.0.1\n" +#. type: Plain text +#: en/git-send-email.txt:381 +msgid "'always' will always confirm before sending" msgstr "" #. type: Plain text -#: en/git-tag.txt:348 -msgid "linkgit:git-check-ref-format[1]. linkgit:git-config[1]." +#: en/git-send-email.txt:382 +msgid "'never' will never confirm before sending" msgstr "" -#. type: Title = -#: en/git-unpack-file.txt:2 -#, no-wrap -msgid "git-unpack-file(1)" +#. type: Plain text +#: en/git-send-email.txt:384 +msgid "" +"'cc' will confirm before sending when send-email has automatically added " +"addresses from the patch to the Cc list" msgstr "" #. type: Plain text -#: en/git-unpack-file.txt:7 -msgid "git-unpack-file - Creates a temporary file with a blob's contents" +#: en/git-send-email.txt:385 +msgid "" +"'compose' will confirm before sending the first message when using --compose." msgstr "" #. type: Plain text -#: en/git-unpack-file.txt:14 -#, no-wrap -msgid "'git unpack-file' <blob>\n" +#: en/git-send-email.txt:386 +msgid "'auto' is equivalent to 'cc' + 'compose'" msgstr "" #. type: Plain text -#: en/git-unpack-file.txt:20 -#, no-wrap +#: en/git-send-email.txt:391 msgid "" -"Creates a file holding the contents of the blob specified by sha1. It\n" -"returns the name of the temporary file in the following format:\n" -"\t.merge_file_XXXXX\n" +"Default is the value of `sendemail.confirm` configuration value; if that is " +"unspecified, default to 'auto' unless any of the suppress options have been " +"specified, in which case default to 'compose'." msgstr "" #. type: Plain text -#: en/git-unpack-file.txt:25 -msgid "Must be a blob id" +#: en/git-send-email.txt:394 +msgid "Do everything except actually send the emails." msgstr "" -#. type: Title = -#: en/git-unpack-objects.txt:2 +#. type: Labeled list +#: en/git-send-email.txt:395 #, no-wrap -msgid "git-unpack-objects(1)" +msgid "--[no-]format-patch" msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:7 -msgid "git-unpack-objects - Unpack objects from a packed archive" +#: en/git-send-email.txt:400 +msgid "" +"When an argument may be understood either as a reference or as a file name, " +"choose to understand it as a format-patch argument (`--format-patch`) or as " +"a file name (`--no-format-patch`). By default, when such a conflict occurs, " +"git send-email will fail." msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:13 -#, no-wrap -msgid "'git unpack-objects' [-n] [-q] [-r] [--strict]\n" +#: en/git-send-email.txt:404 +msgid "" +"Make git-send-email less verbose. One line per email should be all that is " +"output." msgstr "" -#. type: Plain text -#: en/git-unpack-objects.txt:20 -msgid "" -"Read a packed archive (.pack) from the standard input, expanding the objects " -"contained within and writing them into the repository in \"loose\" (one " -"object per file) format." +#. type: Labeled list +#: en/git-send-email.txt:405 +#, no-wrap +msgid "--[no-]validate" msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:24 +#: en/git-send-email.txt:408 msgid "" -"Objects that already exist in the repository will *not* be unpacked from the " -"packfile. Therefore, nothing will be unpacked if you use this command on a " -"packfile that exists within the target repository." +"Perform sanity checks on patches. Currently, validation means the following:" msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:27 +#: en/git-send-email.txt:411 msgid "" -"See linkgit:git-repack[1] for options to generate new packs and replace " -"existing ones." +"Invoke the sendemail-validate hook if present (see linkgit:githooks[5])." msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:32 -msgid "Dry run. Check the pack file without actually unpacking" +#: en/git-send-email.txt:412 +msgid "Warn of patches that contain lines longer than" msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:33 -msgid "the objects." +#: en/git-send-email.txt:416 +#, no-wrap +msgid "" +"998 characters unless a suitable transfer encoding\n" +"('auto', 'base64', or 'quoted-printable') is used;\n" +"this is due to SMTP limits as described by\n" +"http://www.ietf.org/rfc/rfc5322.txt.\n" msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:37 -msgid "The command usually shows percentage progress. This flag suppresses it." +#: en/git-send-email.txt:420 +msgid "" +"Default is the value of `sendemail.validate`; if this is not set, default to " +"`--validate`." msgstr "" #. type: Plain text -#: en/git-unpack-objects.txt:43 -msgid "" -"When unpacking a corrupt packfile, the command dies at the first " -"corruption. This flag tells it to keep going and make the best effort to " -"recover as many objects as possible." +#: en/git-send-email.txt:423 +msgid "Send emails even if safety checks would prevent it." msgstr "" -#. type: Plain text -#: en/git-unpack-objects.txt:46 -msgid "Don't write objects with broken content or links." +#. type: Title ~ +#: en/git-send-email.txt:426 +#, no-wrap +msgid "Information" msgstr "" -#. type: Title = -#: en/git-update-index.txt:2 +#. type: Labeled list +#: en/git-send-email.txt:428 #, no-wrap -msgid "git-update-index(1)" +msgid "--dump-aliases" msgstr "" #. type: Plain text -#: en/git-update-index.txt:7 -msgid "git-update-index - Register file contents in the working tree to the index" +#: en/git-send-email.txt:433 +msgid "" +"Instead of the normal operation, dump the shorthand alias names from the " +"configured alias file(s), one per line in alphabetical order. Note, this " +"only includes the alias name and not its expanded email addresses. See " +"'sendemail.aliasesfile' for more information about aliases." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:27 +#. type: Labeled list +#: en/git-send-email.txt:438 #, no-wrap -msgid "" -"'git update-index'\n" -"\t [--add] [--remove | --force-remove] [--replace]\n" -"\t [--refresh] [-q] [--unmerged] [--ignore-missing]\n" -"\t [(--cacheinfo <mode>,<object>,<file>)...]\n" -"\t [--chmod=(+|-)x]\n" -"\t [--[no-]assume-unchanged]\n" -"\t [--[no-]skip-worktree]\n" -"\t [--ignore-submodules]\n" -"\t [--[no-]split-index]\n" -"\t [--[no-|test-|force-]untracked-cache]\n" -"\t [--really-refresh] [--unresolve] [--again | -g]\n" -"\t [--info-only] [--index-info]\n" -"\t [-z] [--stdin] [--index-version <n>]\n" -"\t [--verbose]\n" -"\t [--] [<file>...]\n" +msgid "sendemail.aliasesFile" msgstr "" #. type: Plain text -#: en/git-update-index.txt:33 +#: en/git-send-email.txt:441 msgid "" -"Modifies the index or directory cache. Each file mentioned is updated into " -"the index and any 'unmerged' or 'needs updating' state is cleared." +"To avoid typing long email addresses, point this to one or more email " +"aliases files. You must also supply `sendemail.aliasFileType`." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:36 -msgid "" -"See also linkgit:git-add[1] for a more user-friendly way to do some of the " -"most common operations on the index." +#. type: Labeled list +#: en/git-send-email.txt:442 +#, no-wrap +msgid "sendemail.aliasFileType" msgstr "" #. type: Plain text -#: en/git-update-index.txt:39 +#: en/git-send-email.txt:445 msgid "" -"The way 'git update-index' handles files it is told about can be modified " -"using the various options:" +"Format of the file(s) specified in sendemail.aliasesFile. Must be one of " +"'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'." msgstr "" #. type: Plain text -#: en/git-update-index.txt:46 +#: en/git-send-email.txt:450 msgid "" -"If a specified file isn't in the index already then it's added. Default " -"behaviour is to ignore new files." +"What an alias file in each format looks like can be found in the " +"documentation of the email program of the same name. The differences and " +"limitations from the standard formats are described below:" msgstr "" #. type: Labeled list -#: en/git-update-index.txt:47 +#: en/git-send-email.txt:452 #, no-wrap -msgid "--remove" +msgid "sendmail" msgstr "" #. type: Plain text -#: en/git-update-index.txt:51 -msgid "" -"If a specified file is in the index but is missing then it's removed. " -"Default behavior is to ignore removed file." +#: en/git-send-email.txt:454 +msgid "Quoted aliases and quoted addresses are not supported: lines that" msgstr "" #. type: Plain text -#: en/git-update-index.txt:55 -msgid "" -"Looks at the current index and checks to see if merges or updates are needed " -"by checking stat() information." +#: en/git-send-email.txt:455 +msgid "contain a `\"` symbol are ignored." msgstr "" #. type: Plain text -#: en/git-update-index.txt:59 -msgid "" -"Quiet. If --refresh finds that the index needs an update, the default " -"behavior is to error out. This option makes" +#: en/git-send-email.txt:456 +msgid "Redirection to a file (`/path/name`) or pipe (`|command`) is not" msgstr "" #. type: Plain text -#: en/git-update-index.txt:60 -msgid "'git update-index' continue anyway." -msgstr "" - -#. type: Labeled list -#: en/git-update-index.txt:61 -#, no-wrap -msgid "--ignore-submodules" +#: en/git-send-email.txt:457 +msgid "supported." msgstr "" #. type: Plain text -#: en/git-update-index.txt:64 -msgid "" -"Do not try to update submodules. This option is only respected when passed " -"before --refresh." +#: en/git-send-email.txt:458 +msgid "File inclusion (`:include: /path/name`) is not supported." msgstr "" #. type: Plain text -#: en/git-update-index.txt:67 -msgid "If --refresh finds unmerged changes in the index, the default" +#: en/git-send-email.txt:459 +msgid "Warnings are printed on the standard error output for any" msgstr "" #. type: Plain text -#: en/git-update-index.txt:68 -msgid "behavior is to error out. This option makes 'git update-index'" +#: en/git-send-email.txt:461 +msgid "" +"explicitly unsupported constructs, and any other lines that are not " +"recognized by the parser." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:69 +#. type: Labeled list +#: en/git-send-email.txt:463 #, no-wrap -msgid "continue anyway.\n" +msgid "sendemail.multiEdit" msgstr "" #. type: Plain text -#: en/git-update-index.txt:72 -msgid "Ignores missing files during a --refresh" -msgstr "" - -#. type: Labeled list -#: en/git-update-index.txt:73 -#, no-wrap -msgid "--cacheinfo <mode>,<object>,<path>" +#: en/git-send-email.txt:468 +msgid "" +"If true (default), a single editor instance will be spawned to edit files " +"you have to edit (patches when `--annotate` is used, and the summary when `--" +"compose` is used). If false, files will be edited one after the other, " +"spawning a new editor each time." msgstr "" #. type: Labeled list -#: en/git-update-index.txt:74 +#: en/git-send-email.txt:469 #, no-wrap -msgid "--cacheinfo <mode> <object> <path>" +msgid "sendemail.confirm" msgstr "" #. type: Plain text -#: en/git-update-index.txt:79 +#: en/git-send-email.txt:473 msgid "" -"Directly insert the specified info into the index. For backward " -"compatibility, you can also give these three arguments as three separate " -"parameters, but new users are encouraged to use a single-parameter form." +"Sets the default for whether to confirm before sending. Must be one of " +"'always', 'never', 'cc', 'compose', or 'auto'. See `--confirm` in the " +"previous section for the meaning of these values." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:80 +#. type: Title ~ +#: en/git-send-email.txt:477 #, no-wrap -msgid "--index-info" +msgid "Use gmail as the smtp server" msgstr "" #. type: Plain text -#: en/git-update-index.txt:82 -msgid "Read index information from stdin." +#: en/git-send-email.txt:480 +msgid "" +"To use 'git send-email' to send your patches through the GMail SMTP server, " +"edit ~/.gitconfig to specify your account settings:" msgstr "" #. type: Plain text -#: en/git-update-index.txt:85 -msgid "Set the execute permissions on the updated files." -msgstr "" - -#. type: Labeled list -#: en/git-update-index.txt:86 +#: en/git-send-email.txt:486 #, no-wrap -msgid "--[no-]assume-unchanged" +msgid "" +"\t[sendemail]\n" +"\t\tsmtpEncryption = tls\n" +"\t\tsmtpServer = smtp.gmail.com\n" +"\t\tsmtpUser = yourname@gmail.com\n" +"\t\tsmtpServerPort = 587\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:98 +#: en/git-send-email.txt:490 msgid "" -"When this flag is specified, the object names recorded for the paths are not " -"updated. Instead, this option sets/unsets the \"assume unchanged\" bit for " -"the paths. When the \"assume unchanged\" bit is on, the user promises not " -"to change the file and allows Git to assume that the working tree file " -"matches what is recorded in the index. If you want to change the working " -"tree file, you need to unset the bit to tell Git. This is sometimes helpful " -"when working with a big project on a filesystem that has very slow lstat(2) " -"system call (e.g. cifs)." +"If you have multifactor authentication setup on your gmail account, you will " +"need to generate an app-specific password for use with 'git send-email'. " +"Visit https://security.google.com/settings/security/apppasswords to create " +"it." msgstr "" #. type: Plain text -#: en/git-update-index.txt:103 +#: en/git-send-email.txt:493 msgid "" -"Git will fail (gracefully) in case it needs to modify this file in the index " -"e.g. when merging in a commit; thus, in case the assumed-untracked file is " -"changed upstream, you will need to handle the situation manually." +"Once your commits are ready to be sent to the mailing list, run the " +"following commands:" msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:104 +#. type: Plain text +#: en/git-send-email.txt:497 #, no-wrap -msgid "--really-refresh" +msgid "" +"\t$ git format-patch --cover-letter -M origin/master -o outgoing/\n" +"\t$ edit outgoing/0000-*\n" +"\t$ git send-email outgoing/*\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:107 +#: en/git-send-email.txt:502 msgid "" -"Like `--refresh`, but checks stat information unconditionally, without " -"regard to the \"assume unchanged\" setting." +"The first time you run it, you will be prompted for your credentials. Enter " +"the app-specific or your regular password as appropriate. If you have " +"credential helper configured (see linkgit:git-credential[1]), the password " +"will be saved in the credential store so you won't have to type it the next " +"time." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:108 +#. type: Plain text +#: en/git-send-email.txt:505 #, no-wrap -msgid "--[no-]skip-worktree" +msgid "" +"Note: the following perl modules are required\n" +" Net::SMTP::SSL, MIME::Base64 and Authen::SASL\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:113 -msgid "" -"When one of these flags is specified, the object name recorded for the paths " -"are not updated. Instead, these options set and unset the \"skip-worktree\" " -"bit for the paths. See section \"Skip-worktree bit\" below for more " -"information." +#: en/git-send-email.txt:509 +msgid "linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5)" msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:115 +#. type: Title = +#: en/git-send-pack.txt:2 #, no-wrap -msgid "--again" +msgid "git-send-pack(1)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:118 -msgid "" -"Runs 'git update-index' itself on the paths whose index entries are " -"different from those from the `HEAD` commit." +#: en/git-send-pack.txt:7 +msgid "git-send-pack - Push objects over Git protocol to another repository" msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:119 +#. type: Plain text +#: en/git-send-pack.txt:16 #, no-wrap -msgid "--unresolve" +msgid "" +"'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>]\n" +"\t\t[--verbose] [--thin] [--atomic]\n" +"\t\t[--[no-]signed|--signed=(true|false|if-asked)]\n" +"\t\t[<host>:]<directory> [<ref>...]\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:122 +#: en/git-send-pack.txt:21 msgid "" -"Restores the 'unmerged' or 'needs updating' state of a file during a merge " -"if it was cleared by accident." +"Usually you would want to use 'git push', which is a higher-level wrapper of " +"this command, instead. See linkgit:git-push[1]." +msgstr "" + +#. type: Plain text +#: en/git-send-pack.txt:24 +msgid "" +"Invokes 'git-receive-pack' on a possibly remote repository, and updates it " +"from the current repository, sending named refs." +msgstr "" + +#. type: Plain text +#: en/git-send-pack.txt:36 +msgid "Same as --receive-pack=<git-receive-pack>." +msgstr "" + +#. type: Plain text +#: en/git-send-pack.txt:40 +msgid "" +"Instead of explicitly specifying which refs to update, update all heads that " +"locally exist." +msgstr "" + +#. type: Plain text +#: en/git-send-pack.txt:67 +msgid "" +"Send a \"thin\" pack, which records objects in deltified form based on " +"objects not included in the pack to reduce network traffic." msgstr "" #. type: Labeled list -#: en/git-update-index.txt:123 +#: en/git-send-pack.txt:68 #, no-wrap -msgid "--info-only" +msgid "--atomic" msgstr "" #. type: Plain text -#: en/git-update-index.txt:127 +#: en/git-send-pack.txt:72 msgid "" -"Do not create objects in the object database for all <file> arguments that " -"follow this flag; just insert their object IDs into the index." +"Use an atomic transaction for updating the refs. If any of the refs fails to " +"update then the entire push will fail without changing any refs." msgstr "" #. type: Labeled list -#: en/git-update-index.txt:128 +#: en/git-send-pack.txt:84 #, no-wrap -msgid "--force-remove" +msgid "--push-option=<string>" msgstr "" #. type: Plain text -#: en/git-update-index.txt:131 +#: en/git-send-pack.txt:89 msgid "" -"Remove the file from the index even when the working directory still has " -"such a file. (Implies --remove.)" +"Pass the specified string as a push option for consumption by hooks on the " +"server side. If the server doesn't support push options, error out. See " +"linkgit:git-push[1] and linkgit:githooks[5] for details." msgstr "" #. type: Labeled list -#: en/git-update-index.txt:132 +#: en/git-send-pack.txt:90 #, no-wrap -msgid "--replace" +msgid "<host>" msgstr "" #. type: Plain text -#: en/git-update-index.txt:139 +#: en/git-send-pack.txt:94 msgid "" -"By default, when a file `path` exists in the index, 'git update-index' " -"refuses an attempt to add `path/file`. Similarly if a file `path/file` " -"exists, a file `path` cannot be added. With --replace flag, existing " -"entries that conflict with the entry being added are automatically removed " -"with warning messages." +"A remote host to house the repository. When this part is specified, 'git-" +"receive-pack' is invoked via ssh." msgstr "" #. type: Plain text -#: en/git-update-index.txt:147 -msgid "Report what is being added and removed from index." +#: en/git-send-pack.txt:97 +msgid "The repository to update." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:148 -#, no-wrap -msgid "--index-version <n>" +#. type: Plain text +#: en/git-send-pack.txt:107 +msgid "There are three ways to specify which refs to update on the remote end." msgstr "" #. type: Plain text -#: en/git-update-index.txt:153 +#: en/git-send-pack.txt:111 msgid "" -"Write the resulting index out in the named on-disk format version. " -"Supported versions are 2, 3 and 4. The current default version is 2 or 3, " -"depending on whether extra features are used, such as `git add -N`." +"With `--all` flag, all refs that exist locally are transferred to the remote " +"side. You cannot specify any '<ref>' if you use this flag." msgstr "" #. type: Plain text -#: en/git-update-index.txt:159 +#: en/git-send-pack.txt:114 msgid "" -"Version 4 performs a simple pathname compression that reduces index size by " -"30%-50% on large repositories, which results in faster load time. Version 4 " -"is relatively young (first released in in 1.8.0 in October 2012). Other Git " -"implementations such as JGit and libgit2 may not support it yet." +"Without `--all` and without any '<ref>', the heads that exist both on the " +"local side and on the remote side are updated." msgstr "" #. type: Plain text -#: en/git-update-index.txt:163 +#: en/git-send-pack.txt:120 msgid "" -"Only meaningful with `--stdin` or `--index-info`; paths are separated with " -"NUL character instead of LF." +"When one or more '<ref>' are specified explicitly (whether on the command " +"line or via `--stdin`), it can be either a single pattern, or a pair of such " +"pattern separated by a colon \":\" (this means that a ref name cannot have a " +"colon in it). A single pattern '<name>' is just a shorthand for '<name>:" +"<name>'." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:164 -#, no-wrap -msgid "--split-index" +#. type: Plain text +#: en/git-send-pack.txt:128 +msgid "" +"Each pattern pair consists of the source side (before the colon) and the " +"destination side (after the colon). The ref to be pushed is determined by " +"finding a match that matches the source side, and where it is pushed is " +"determined by using the destination side. The rules used to match a ref are " +"the same rules used by 'git rev-parse' to resolve a symbolic ref name. See " +"linkgit:git-rev-parse[1]." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:165 +#. type: Plain text +#: en/git-send-pack.txt:133 +msgid "It is an error if <dst> matches more than one remote refs." +msgstr "" + +#. type: Title = +#: en/git-shell.txt:2 #, no-wrap -msgid "--no-split-index" +msgid "git-shell(1)" +msgstr "" + +#. type: Plain text +#: en/git-shell.txt:7 +msgid "git-shell - Restricted login shell for Git-only SSH access" msgstr "" #. type: Plain text -#: en/git-update-index.txt:170 +#: en/git-shell.txt:15 +#, no-wrap msgid "" -"Enable or disable split index mode. If split-index mode is already enabled " -"and `--split-index` is given again, all changes in $GIT_DIR/index are pushed " -"back to the shared index file." +"'chsh' -s $(command -v git-shell) <user>\n" +"'git clone' <user>`@localhost:/path/to/repo.git`\n" +"'ssh' <user>`@localhost`\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:176 +#: en/git-shell.txt:23 msgid "" -"These options take effect whatever the value of the `core.splitIndex` " -"configuration variable (see linkgit:git-config[1]). But a warning is emitted " -"when the change goes against the configured value, as the configured value " -"will take effect next time the index is read and this will remove the " -"intended effect of the option." +"This is a login shell for SSH accounts to provide restricted Git access. It " +"permits execution only of server-side Git commands implementing the pull/" +"push functionality, plus custom commands present in a subdirectory named " +"`git-shell-commands` in the user's home directory." msgstr "" -#. type: Labeled list -#: en/git-update-index.txt:177 -#, no-wrap -msgid "--untracked-cache" +#. type: Plain text +#: en/git-shell.txt:28 +msgid "'git shell' accepts the following commands after the `-c` option:" msgstr "" #. type: Labeled list -#: en/git-update-index.txt:178 +#: en/git-shell.txt:29 #, no-wrap -msgid "--no-untracked-cache" -msgstr "" - -#. type: Plain text -#: en/git-update-index.txt:181 -msgid "" -"Enable or disable untracked cache feature. Please use " -"`--test-untracked-cache` before enabling it." +msgid "'git receive-pack <argument>'" msgstr "" -#. type: Plain text -#: en/git-update-index.txt:187 -msgid "" -"These options take effect whatever the value of the `core.untrackedCache` " -"configuration variable (see linkgit:git-config[1]). But a warning is emitted " -"when the change goes against the configured value, as the configured value " -"will take effect next time the index is read and this will remove the " -"intended effect of the option." +#. type: Labeled list +#: en/git-shell.txt:30 +#, no-wrap +msgid "'git upload-pack <argument>'" msgstr "" #. type: Labeled list -#: en/git-update-index.txt:188 +#: en/git-shell.txt:31 #, no-wrap -msgid "--test-untracked-cache" +msgid "'git upload-archive <argument>'" msgstr "" #. type: Plain text -#: en/git-update-index.txt:197 +#: en/git-shell.txt:35 msgid "" -"Only perform tests on the working directory to make sure untracked cache can " -"be used. You have to manually enable untracked cache using " -"`--untracked-cache` or `--force-untracked-cache` or the " -"`core.untrackedCache` configuration variable afterwards if you really want " -"to use it. If a test fails the exit code is 1 and a message explains what is " -"not working as needed, otherwise the exit code is 0 and OK is printed." +"Call the corresponding server-side command to support the client's 'git " +"push', 'git fetch', or 'git archive --remote' request." msgstr "" #. type: Labeled list -#: en/git-update-index.txt:198 +#: en/git-shell.txt:35 #, no-wrap -msgid "--force-untracked-cache" +msgid "'cvs server'" msgstr "" #. type: Plain text -#: en/git-update-index.txt:203 -msgid "" -"Same as `--untracked-cache`. Provided for backwards compatibility with older " -"versions of Git where `--untracked-cache` used to imply " -"`--test-untracked-cache` but this option would enable the extension " -"unconditionally." +#: en/git-shell.txt:37 +msgid "Imitate a CVS server. See linkgit:git-cvsserver[1]." msgstr "" #. type: Plain text -#: en/git-update-index.txt:213 +#: en/git-shell.txt:42 msgid "" -"Files to act on. Note that files beginning with '.' are discarded. This " -"includes `./file` and `dir/./file`. If you don't want this, then use cleaner " -"names. The same applies to directories ending '/' and paths with '//'" +"If a `~/git-shell-commands` directory is present, 'git shell' will also " +"handle other, custom commands by running \"`git-shell-commands/<command> " +"<arguments>`\" from the user's home directory." msgstr "" #. type: Title - -#: en/git-update-index.txt:215 +#: en/git-shell.txt:44 #, no-wrap -msgid "Using --refresh" +msgid "INTERACTIVE USE" msgstr "" #. type: Plain text -#: en/git-update-index.txt:221 +#: en/git-shell.txt:48 msgid "" -"`--refresh` does not calculate a new sha1 file or bring the index up-to-date " -"for mode/content changes. But what it *does* do is to \"re-match\" the stat " -"information of a file with the index, so that you can refresh the index for " -"a file that hasn't been changed but where the stat entry is out of date." +"By default, the commands above can be executed only with the `-c` option; " +"the shell is not interactive." msgstr "" #. type: Plain text -#: en/git-update-index.txt:224 +#: en/git-shell.txt:56 msgid "" -"For example, you'd want to do this after doing a 'git read-tree', to link up " -"the stat index details with the proper files." +"If a `~/git-shell-commands` directory is present, 'git shell' can also be " +"run interactively (with no arguments). If a `help` command is present in " +"the `git-shell-commands` directory, it is run to provide the user with an " +"overview of allowed actions. Then a \"git> \" prompt is presented at which " +"one can enter any of the commands from the `git-shell-commands` directory, " +"or `exit` to close the connection." msgstr "" -#. type: Title - -#: en/git-update-index.txt:226 -#, no-wrap -msgid "Using --cacheinfo or --info-only" +#. type: Plain text +#: en/git-shell.txt:61 +msgid "" +"Generally this mode is used as an administrative interface to allow users to " +"list repositories they have access to, create, delete, or rename " +"repositories, or change repository descriptions and permissions." msgstr "" #. type: Plain text -#: en/git-update-index.txt:230 +#: en/git-shell.txt:64 msgid "" -"`--cacheinfo` is used to register a file that is not in the current working " -"directory. This is useful for minimum-checkout merging." +"If a `no-interactive-login` command exists, then it is run and the " +"interactive shell is aborted." msgstr "" #. type: Plain text -#: en/git-update-index.txt:232 -msgid "To pretend you have a file with mode and sha1 at path, say:" +#: en/git-shell.txt:69 +msgid "To disable interactive logins, displaying a greeting instead:" msgstr "" #. type: delimited block - -#: en/git-update-index.txt:235 +#: en/git-shell.txt:80 #, no-wrap -msgid "$ git update-index --cacheinfo <mode>,<sha1>,<path>\n" -msgstr "" - -#. type: Plain text -#: en/git-update-index.txt:239 msgid "" -"`--info-only` is used to register files without placing them in the object " -"database. This is useful for status-only repositories." +"$ chsh -s /usr/bin/git-shell\n" +"$ mkdir $HOME/git-shell-commands\n" +"$ cat >$HOME/git-shell-commands/no-interactive-login <<\\EOF\n" +"#!/bin/sh\n" +"printf '%s\\n' \"Hi $USER! You've successfully authenticated, but I do not\"\n" +"printf '%s\\n' \"provide interactive shell access.\"\n" +"exit 128\n" +"EOF\n" +"$ chmod +x $HOME/git-shell-commands/no-interactive-login\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:245 +#: en/git-shell.txt:85 msgid "" -"Both `--cacheinfo` and `--info-only` behave similarly: the index is updated " -"but the object database isn't. `--cacheinfo` is useful when the object is " -"in the database but the file isn't available locally. `--info-only` is " -"useful when the file is available, but you do not wish to update the object " -"database." +"To enable git-cvsserver access (which should generally have the `no-" +"interactive-login` example above as a prerequisite, as creating the git-" +"shell-commands directory allows interactive logins):" msgstr "" -#. type: Title - -#: en/git-update-index.txt:248 +#. type: delimited block - +#: en/git-shell.txt:96 #, no-wrap -msgid "Using --index-info" +msgid "" +"$ cat >$HOME/git-shell-commands/cvs <<\\EOF\n" +"if ! test $# = 1 && test \"$1\" = \"server\"\n" +"then\n" +"\techo >&2 \"git-cvsserver only handles \\\"server\\\"\"\n" +"\texit 1\n" +"fi\n" +"exec git cvsserver server\n" +"EOF\n" +"$ chmod +x $HOME/git-shell-commands/cvs\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:253 -msgid "" -"`--index-info` is a more powerful mechanism that lets you feed multiple " -"entry definitions from the standard input, and designed specifically for " -"scripts. It can take inputs of three formats:" +#: en/git-shell.txt:103 +msgid "ssh(1), linkgit:git-daemon[1], contrib/git-shell-commands/README" msgstr "" -#. type: Plain text -#: en/git-update-index.txt:255 +#. type: Title = +#: en/git-sh-i18n--envsubst.txt:2 #, no-wrap -msgid "mode SP sha1 TAB path\n" +msgid "git-sh-i18n{litdd}envsubst(1)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:260 -msgid "" -"The first format is what \"git-apply --index-info\" reports, and used to " -"reconstruct a partial tree that is used for phony merge base tree when " -"falling back on 3-way merge." +#: en/git-sh-i18n--envsubst.txt:7 +msgid "git-sh-i18n--envsubst - Git's own envsubst(1) for i18n fallbacks" msgstr "" #. type: Plain text -#: en/git-update-index.txt:262 +#: en/git-sh-i18n--envsubst.txt:17 #, no-wrap -msgid "mode SP type SP sha1 TAB path\n" +msgid "" +"eval_gettext () {\n" +"\tprintf \"%s\" \"$1\" | (\n" +"\t\texport PATH $('git sh-i18n{litdd}envsubst' --variables \"$1\");\n" +"\t\t'git sh-i18n{litdd}envsubst' \"$1\"\n" +"\t)\n" +"}\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:265 -msgid "The second format is to stuff 'git ls-tree' output into the index file." +#: en/git-sh-i18n--envsubst.txt:24 +msgid "" +"This is not a command the end user would want to run. Ever. This " +"documentation is meant for people who are studying the plumbing scripts and/" +"or are writing new ones." msgstr "" #. type: Plain text -#: en/git-update-index.txt:267 -#, no-wrap -msgid "mode SP sha1 SP stage TAB path\n" +#: en/git-sh-i18n--envsubst.txt:29 +msgid "" +"'git sh-i18n{litdd}envsubst' is Git's stripped-down copy of the GNU " +"`envsubst(1)` program that comes with the GNU gettext package. It's used " +"internally by linkgit:git-sh-i18n[1] to interpolate the variables passed to " +"the `eval_gettext` function." msgstr "" #. type: Plain text -#: en/git-update-index.txt:270 +#: en/git-sh-i18n--envsubst.txt:33 msgid "" -"This format is to put higher order stages into the index file and matches " -"'git ls-files --stage' output." +"No promises are made about the interface, or that this program won't " +"disappear without warning in the next version of Git. Don't use it." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:274 -msgid "" -"To place a higher stage entry to the index, the path should first be removed " -"by feeding a mode=0 entry for the path, and then feeding necessary input " -"lines in the third format." +#. type: Title = +#: en/git-sh-i18n.txt:2 +#, no-wrap +msgid "git-sh-i18n(1)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:276 -msgid "For example, starting with this index:" +#: en/git-sh-i18n.txt:7 +msgid "git-sh-i18n - Git's i18n setup code for shell scripts" msgstr "" -#. type: delimited block - -#: en/git-update-index.txt:280 +#. type: Plain text +#: en/git-sh-i18n.txt:12 #, no-wrap -msgid "" -"$ git ls-files -s\n" -"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz\n" +msgid "'. \"$(git --exec-path)/git-sh-i18n\"'\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:283 -msgid "you can feed the following input to `--index-info`:" +#: en/git-sh-i18n.txt:26 +msgid "" +"The 'git sh-i18n scriptlet is designed to be sourced (using `.`) by Git's " +"porcelain programs implemented in shell script. It provides wrappers for the " +"GNU `gettext` and `eval_gettext` functions accessible through the `gettext." +"sh` script, and provides pass-through fallbacks on systems without GNU " +"gettext." msgstr "" -#. type: delimited block - -#: en/git-update-index.txt:289 +#. type: Labeled list +#: en/git-sh-i18n.txt:30 #, no-wrap -msgid "" -"$ git update-index --index-info\n" -"0 0000000000000000000000000000000000000000\tfrotz\n" -"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1\tfrotz\n" -"100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2\tfrotz\n" +msgid "gettext" msgstr "" #. type: Plain text -#: en/git-update-index.txt:295 +#: en/git-sh-i18n.txt:34 msgid "" -"The first line of the input feeds 0 as the mode to remove the path; the " -"SHA-1 does not matter as long as it is well formatted. Then the second and " -"third line feeds stage 1 and stage 2 entries for that path. After the " -"above, we would end up with this:" +"Currently a dummy fall-through function implemented as a wrapper around " +"`printf(1)`. Will be replaced by a real gettext implementation in a later " +"version." msgstr "" -#. type: delimited block - -#: en/git-update-index.txt:300 +#. type: Labeled list +#: en/git-sh-i18n.txt:35 #, no-wrap +msgid "eval_gettext" +msgstr "" + +#. type: Plain text +#: en/git-sh-i18n.txt:40 msgid "" -"$ git ls-files -s\n" -"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1\tfrotz\n" -"100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2\tfrotz\n" +"Currently a dummy fall-through function implemented as a wrapper around " +"`printf(1)` with variables expanded by the linkgit:git-sh-i18n{litdd}" +"envsubst[1] helper. Will be replaced by a real gettext implementation in a " +"later version." msgstr "" -#. type: Title - -#: en/git-update-index.txt:304 +#. type: Title = +#: en/git-shortlog.txt:2 #, no-wrap -msgid "Using ``assume unchanged'' bit" +msgid "git-shortlog(1)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:319 -msgid "" -"Many operations in Git depend on your filesystem to have an efficient " -"`lstat(2)` implementation, so that `st_mtime` information for working tree " -"files can be cheaply checked to see if the file contents have changed from " -"the version recorded in the index file. Unfortunately, some filesystems " -"have inefficient `lstat(2)`. If your filesystem is one of them, you can set " -"\"assume unchanged\" bit to paths you have not changed to cause Git not to " -"do this check. Note that setting this bit on a path does not mean Git will " -"check the contents of the file to see if it has changed -- it makes Git to " -"omit any checking and assume it has *not* changed. When you make changes to " -"working tree files, you have to explicitly tell Git about it by dropping " -"\"assume unchanged\" bit, either before or after you modify them." +#: en/git-shortlog.txt:7 +msgid "git-shortlog - Summarize 'git log' output" msgstr "" #. type: Plain text -#: en/git-update-index.txt:324 +#: en/git-shortlog.txt:13 +#, no-wrap msgid "" -"In order to set \"assume unchanged\" bit, use `--assume-unchanged` option. " -"To unset, use `--no-assume-unchanged`. To see which files have the \"assume " -"unchanged\" bit set, use `git ls-files -v` (see linkgit:git-ls-files[1])." +"'git shortlog' [<options>] [<revision range>] [[--] <path>...]\n" +"git log --pretty=short | 'git shortlog' [<options>]\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:334 +#: en/git-shortlog.txt:18 msgid "" -"The command looks at `core.ignorestat` configuration variable. When this is " -"true, paths updated with `git update-index paths...` and paths updated with " -"other Git commands that update both index and working tree (e.g. 'git apply " -"--index', 'git checkout-index -u', and 'git read-tree -u') are automatically " -"marked as \"assume unchanged\". Note that \"assume unchanged\" bit is *not* " -"set if `git update-index --refresh` finds the working tree file matches the " -"index (use `git update-index --really-refresh` if you want to mark them as " -"\"assume unchanged\")." +"Summarizes 'git log' output in a format suitable for inclusion in release " +"announcements. Each commit will be grouped by author and title." msgstr "" #. type: Plain text -#: en/git-update-index.txt:339 -msgid "To update and refresh only the files already checked out:" -msgstr "" - -#. type: Labeled list -#: en/git-update-index.txt:344 -#, no-wrap -msgid "On an inefficient filesystem with `core.ignorestat` set" +#: en/git-shortlog.txt:20 +msgid "Additionally, \"[PATCH]\" will be stripped from the commit description." msgstr "" -#. type: delimited block - -#: en/git-update-index.txt:360 -#, no-wrap +#. type: Plain text +#: en/git-shortlog.txt:25 msgid "" -"$ git update-index --really-refresh <1>\n" -"$ git update-index --no-assume-unchanged foo.c <2>\n" -"$ git diff --name-only <3>\n" -"$ edit foo.c\n" -"$ git diff --name-only <4>\n" -"M foo.c\n" -"$ git update-index foo.c <5>\n" -"$ git diff --name-only <6>\n" -"$ edit foo.c\n" -"$ git diff --name-only <7>\n" -"$ git update-index --no-assume-unchanged foo.c <8>\n" -"$ git diff --name-only <9>\n" -"M foo.c\n" +"If no revisions are passed on the command line and either standard input is " +"not a terminal or there is no current branch, 'git shortlog' will output a " +"summary of the log read from standard input, without reference to the " +"current repository." msgstr "" #. type: Plain text -#: en/git-update-index.txt:363 -msgid "forces lstat(2) to set \"assume unchanged\" bits for paths that match index." +#: en/git-shortlog.txt:33 +msgid "" +"Sort output according to the number of commits per author instead of author " +"alphabetic order." msgstr "" #. type: Plain text -#: en/git-update-index.txt:364 -msgid "mark the path to be edited." +#: en/git-shortlog.txt:37 +msgid "Suppress commit description and provide a commit count summary only." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:365 -msgid "this does lstat(2) and finds index matches the path." +#. type: Labeled list +#: en/git-shortlog.txt:39 +#, no-wrap +msgid "--email" msgstr "" #. type: Plain text -#: en/git-update-index.txt:366 -msgid "this does lstat(2) and finds index does *not* match the path." +#: en/git-shortlog.txt:41 +msgid "Show the email address of each author." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:367 -msgid "registering the new version to index sets \"assume unchanged\" bit." +#. type: Labeled list +#: en/git-shortlog.txt:42 +#, no-wrap +msgid "--format[=<format>]" msgstr "" #. type: Plain text -#: en/git-update-index.txt:368 -msgid "and it is assumed unchanged." +#: en/git-shortlog.txt:47 +msgid "" +"Instead of the commit subject, use some other information to describe each " +"commit. '<format>' can be any string accepted by the `--format` option of " +"'git log', such as '* [%h] %s'. (See the \"PRETTY FORMATS\" section of " +"linkgit:git-log[1].)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:369 -msgid "even after you edit it." +#: en/git-shortlog.txt:49 +msgid "Each pretty-printed commit will be rewrapped before it is shown." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:370 -msgid "you can tell about the change after the fact." +#. type: Labeled list +#: en/git-shortlog.txt:51 +#, no-wrap +msgid "--committer" msgstr "" #. type: Plain text -#: en/git-update-index.txt:371 -msgid "now it checks with lstat(2) and finds it has been changed." +#: en/git-shortlog.txt:53 +msgid "Collect and show committer identities instead of authors." msgstr "" -#. type: Title - -#: en/git-update-index.txt:374 +#. type: Labeled list +#: en/git-shortlog.txt:54 #, no-wrap -msgid "Skip-worktree bit" +msgid "-w[<width>[,<indent1>[,<indent2>]]]" msgstr "" #. type: Plain text -#: en/git-update-index.txt:380 +#: en/git-shortlog.txt:59 msgid "" -"Skip-worktree bit can be defined in one (long) sentence: When reading an " -"entry, if it is marked as skip-worktree, then Git pretends its working " -"directory version is up to date and read the index version instead." +"Linewrap the output by wrapping each line at `width`. The first line of " +"each entry is indented by `indent1` spaces, and the second and subsequent " +"lines are indented by `indent2` spaces. `width`, `indent1`, and `indent2` " +"default to 76, 6 and 9 respectively." msgstr "" #. type: Plain text -#: en/git-update-index.txt:388 +#: en/git-shortlog.txt:62 msgid "" -"To elaborate, \"reading\" means checking for file existence, reading file " -"attributes or file content. The working directory version may be present or " -"absent. If present, its content may match against the index version or " -"not. Writing is not affected by this bit, content safety is still first " -"priority. Note that Git _can_ update working directory file, that is marked " -"skip-worktree, if it is safe to do so (i.e. working directory version " -"matches index version)" +"If width is `0` (zero) then indent the lines of the output without wrapping " +"them." msgstr "" #. type: Plain text -#: en/git-update-index.txt:392 +#: en/git-shortlog.txt:71 msgid "" -"Although this bit looks similar to assume-unchanged bit, its goal is " -"different from assume-unchanged bit's. Skip-worktree also takes precedence " -"over assume-unchanged bit when both are set." +"Show only commits in the specified revision range. When no <revision range> " +"is specified, it defaults to `HEAD` (i.e. the whole history leading to the " +"current commit). `origin..HEAD` specifies all the commits reachable from " +"the current commit (i.e. `HEAD`), but not from `origin`. For a complete list " +"of ways to spell <revision range>, see the \"Specifying Ranges\" section of " +"linkgit:gitrevisions[7]." msgstr "" -#. type: Title - -#: en/git-update-index.txt:394 -#, no-wrap -msgid "Split index" +#. type: Plain text +#: en/git-shortlog.txt:75 +msgid "" +"Consider only commits that are enough to explain how the files that match " +"the specified paths came to be." msgstr "" #. type: Plain text -#: en/git-update-index.txt:398 +#: en/git-shortlog.txt:85 msgid "" -"This mode is designed for repositories with very large indexes, and aims at " -"reducing the time it takes to repeatedly write these indexes." +"The `.mailmap` feature is used to coalesce together commits by the same " +"person in the shortlog, where their name and/or email address was spelled " +"differently." +msgstr "" + +#. type: Title = +#: en/git-show-branch.txt:2 +#, no-wrap +msgid "git-show-branch(1)" msgstr "" #. type: Plain text -#: en/git-update-index.txt:403 -msgid "" -"In this mode, the index is split into two files, $GIT_DIR/index and " -"$GIT_DIR/sharedindex.<SHA-1>. Changes are accumulated in $GIT_DIR/index, the " -"split index, while the shared index file contains all index entries and " -"stays unchanged." +#: en/git-show-branch.txt:7 +msgid "git-show-branch - Show branches and their commits" msgstr "" #. type: Plain text -#: en/git-update-index.txt:408 +#: en/git-show-branch.txt:17 +#, no-wrap msgid "" -"All changes in the split index are pushed back to the shared index file when " -"the number of entries in the split index reaches a level specified by the " -"splitIndex.maxPercentChange config variable (see linkgit:git-config[1])." +"'git show-branch' [-a|--all] [-r|--remotes] [--topo-order | --date-order]\n" +"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" +"\t\t[--more=<n> | --list | --independent | --merge-base]\n" +"\t\t[--no-name | --sha1-name] [--topics]\n" +"\t\t[(<rev> | <glob>)...]\n" +"'git show-branch' (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]\n" msgstr "" #. type: Plain text -#: en/git-update-index.txt:413 +#: en/git-show-branch.txt:24 msgid "" -"Each time a new shared index file is created, the old shared index files are " -"deleted if their modification time is older than what is specified by the " -"splitIndex.sharedIndexExpire config variable (see linkgit:git-config[1])." +"Shows the commit ancestry graph starting from the commits named with <rev>s " +"or <glob>s (or all refs under refs/heads and/or refs/tags) semi-visually." msgstr "" #. type: Plain text -#: en/git-update-index.txt:417 +#: en/git-show-branch.txt:26 +msgid "It cannot show more than 29 branches and commits at a time." +msgstr "" + +#. type: Plain text +#: en/git-show-branch.txt:29 msgid "" -"To avoid deleting a shared index file that is still used, its modification " -"time is updated to the current time everytime a new split index based on the " -"shared index file is either created or read from." +"It uses `showbranch.default` multi-valued configuration items if no <rev> or " +"<glob> is given on the command line." msgstr "" -#. type: Title - -#: en/git-update-index.txt:419 +#. type: Labeled list +#: en/git-show-branch.txt:33 #, no-wrap -msgid "Untracked cache" +msgid "<rev>" msgstr "" #. type: Plain text -#: en/git-update-index.txt:423 +#: en/git-show-branch.txt:36 msgid "" -"This cache is meant to speed up commands that involve determining untracked " -"files such as `git status`." +"Arbitrary extended SHA-1 expression (see linkgit:gitrevisions[7]) that " +"typically names a branch head or a tag." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:430 -msgid "" -"This feature works by recording the mtime of the working tree directories " -"and then omitting reading directories and stat calls against files in those " -"directories whose mtime hasn't changed. For this to work the underlying " -"operating system and file system must change the `st_mtime` field of " -"directories if files in the directory are added, modified or deleted." +#. type: Labeled list +#: en/git-show-branch.txt:37 +#, no-wrap +msgid "<glob>" msgstr "" #. type: Plain text -#: en/git-update-index.txt:435 +#: en/git-show-branch.txt:42 msgid "" -"You can test whether the filesystem supports that with the " -"`--test-untracked-cache` option. The `--untracked-cache` option used to " -"implicitly perform that test in older versions of Git, but that's no longer " -"the case." +"A glob pattern that matches branch or tag names under refs/. For example, " +"if you have many topic branches under refs/heads/topic, giving `topic/*` " +"would show all of them." msgstr "" #. type: Plain text -#: en/git-update-index.txt:443 -msgid "" -"If you want to enable (or disable) this feature, it is easier to use the " -"`core.untrackedCache` configuration variable (see linkgit:git-config[1]) " -"than using the `--untracked-cache` option to `git update-index` in each " -"repository, especially if you want to do so across all repositories you use, " -"because you can set the configuration variable to `true` (or `false`) in " -"your `$HOME/.gitconfig` just once and have it affect all repositories you " -"touch." +#: en/git-show-branch.txt:46 +msgid "Show the remote-tracking branches." msgstr "" #. type: Plain text -#: en/git-update-index.txt:449 -msgid "" -"When the `core.untrackedCache` configuration variable is changed, the " -"untracked cache is added to or removed from the index the next time a " -"command reads the index; while when `--[no-|force-]untracked-cache` are " -"used, the untracked cache is immediately added to or removed from the index." +#: en/git-show-branch.txt:50 +msgid "Show both remote-tracking branches and local branches." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:460 +#. type: Labeled list +#: en/git-show-branch.txt:51 #, no-wrap -msgid "" -"The command honors `core.filemode` configuration variable. If\n" -"your repository is on a filesystem whose executable bits are\n" -"unreliable, this should be set to 'false' (see linkgit:git-config[1]).\n" -"This causes the command to ignore differences in file modes recorded\n" -"in the index and the file mode on the filesystem if they differ only on\n" -"executable bit. On such an unfortunate filesystem, you may\n" -"need to use 'git update-index --chmod='.\n" +msgid "--current" msgstr "" #. type: Plain text -#: en/git-update-index.txt:465 +#: en/git-show-branch.txt:55 msgid "" -"Quite similarly, if `core.symlinks` configuration variable is set to 'false' " -"(see linkgit:git-config[1]), symbolic links are checked out as plain files, " -"and this command does not modify a recorded file mode from symbolic link to " -"regular file." +"With this option, the command includes the current branch to the list of " +"revs to be shown when it is not given on the command line." msgstr "" -#. type: Plain text -#: en/git-update-index.txt:468 -msgid "" -"The command looks at `core.ignorestat` configuration variable. See 'Using " -"\"assume unchanged\" bit' section above." +#. type: Labeled list +#: en/git-show-branch.txt:56 en/rev-list-options.txt:644 +#, no-wrap +msgid "--topo-order" msgstr "" #. type: Plain text -#: en/git-update-index.txt:473 +#: en/git-show-branch.txt:61 msgid "" -"The command also looks at `core.trustctime` configuration variable. It can " -"be useful when the inode change time is regularly modified by something " -"outside Git (file system crawlers and backup systems use ctime for marking " -"files processed) (see linkgit:git-config[1])." +"By default, the branches and their commits are shown in reverse " +"chronological order. This option makes them appear in topological order (i." +"e., descendant commits are shown before their parents)." +msgstr "" + +#. type: Labeled list +#: en/git-show-branch.txt:62 en/rev-list-options.txt:636 +#, no-wrap +msgid "--date-order" msgstr "" #. type: Plain text -#: en/git-update-index.txt:477 +#: en/git-show-branch.txt:66 msgid "" -"The untracked cache extension can be enabled by the `core.untrackedCache` " -"configuration variable (see linkgit:git-config[1])." +"This option is similar to `--topo-order` in the sense that no parent comes " +"before all of its children, but otherwise commits are ordered according to " +"their commit date." msgstr "" #. type: Plain text -#: en/git-update-index.txt:483 -msgid "linkgit:git-config[1], linkgit:git-add[1], linkgit:git-ls-files[1]" +#: en/git-show-branch.txt:71 +msgid "" +"By default, the output omits merges that are reachable from only one tip " +"being shown. This option makes them visible." msgstr "" -#. type: Title = -#: en/git-update-ref.txt:2 +#. type: Labeled list +#: en/git-show-branch.txt:72 #, no-wrap -msgid "git-update-ref(1)" -msgstr "" - -#. type: Plain text -#: en/git-update-ref.txt:7 -msgid "git-update-ref - Update the object name stored in a ref safely" +msgid "--more=<n>" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:12 -#, no-wrap +#: en/git-show-branch.txt:79 msgid "" -"'git update-ref' [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] " -"[--create-reflog] <ref> <newvalue> [<oldvalue>] | --stdin [-z])\n" +"Usually the command stops output upon showing the commit that is the common " +"ancestor of all the branches. This flag tells the command to go <n> more " +"common commits beyond that. When <n> is negative, display only the " +"<reference>s given, without showing the commit ancestry tree." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:18 -msgid "" -"Given two arguments, stores the <newvalue> in the <ref>, possibly " -"dereferencing the symbolic refs. E.g. `git update-ref HEAD <newvalue>` " -"updates the current branch head to the new object." +#: en/git-show-branch.txt:82 +msgid "Synonym to `--more=-1`" msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:27 -msgid "" -"Given three arguments, stores the <newvalue> in the <ref>, possibly " -"dereferencing the symbolic refs, after verifying that the current value of " -"the <ref> matches <oldvalue>. E.g. `git update-ref refs/heads/master " -"<newvalue> <oldvalue>` updates the master branch head to <newvalue> only if " -"its current value is <oldvalue>. You can specify 40 \"0\" or an empty " -"string as <oldvalue> to make sure that the ref you are creating does not " -"exist." +#. type: Labeled list +#: en/git-show-branch.txt:83 +#, no-wrap +msgid "--merge-base" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:31 +#: en/git-show-branch.txt:89 msgid "" -"It also allows a \"ref\" file to be a symbolic pointer to another ref file " -"by starting with the four-byte header sequence of \"ref:\"." +"Instead of showing the commit list, determine possible merge bases for the " +"specified commits. All merge bases will be contained in all specified " +"commits. This is different from how linkgit:git-merge-base[1] handles the " +"case of three or more commits." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:39 +#: en/git-show-branch.txt:93 msgid "" -"More importantly, it allows the update of a ref file to follow these " -"symbolic pointers, whether they are symlinks or these \"regular file " -"symbolic refs\". It follows *real* symlinks only if they start with " -"\"refs/\": otherwise it will just try to read them and update them as a " -"regular file (i.e. it will allow the filesystem to follow them, but will " -"overwrite such a symlink to somewhere else with a regular filename)." +"Among the <reference>s given, display only the ones that cannot be reached " +"from any other <reference>." msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:42 -msgid "" -"If --no-deref is given, <ref> itself is overwritten, rather than the result " -"of following the symbolic pointers." +#. type: Labeled list +#: en/git-show-branch.txt:94 +#, no-wrap +msgid "--no-name" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:44 -msgid "In general, using" +#: en/git-show-branch.txt:96 +msgid "Do not show naming strings for each commit." msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:46 +#. type: Labeled list +#: en/git-show-branch.txt:97 #, no-wrap -msgid "\tgit update-ref HEAD \"$head\"\n" +msgid "--sha1-name" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:48 -msgid "should be a _lot_ safer than doing" +#: en/git-show-branch.txt:102 +msgid "" +"Instead of naming the commits using the path to reach them from heads (e.g. " +"\"master~2\" to mean the grandparent of \"master\"), name them with the " +"unique prefix of their object names." msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:50 +#. type: Labeled list +#: en/git-show-branch.txt:103 #, no-wrap -msgid "\techo \"$head\" > \"$GIT_DIR/HEAD\"\n" +msgid "--topics" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:57 +#: en/git-show-branch.txt:110 msgid "" -"both from a symlink following standpoint *and* an error checking " -"standpoint. The \"refs/\" rule for symlinks means that symlinks that point " -"to \"outside\" the tree are safe: they'll be followed for reading but not " -"for writing (so we'll never write through a ref symlink to some other tree, " -"if you have copied a whole archive by creating a symlink tree)." +"Shows only commits that are NOT on the first branch given. This helps track " +"topic branches by hiding any commit that is already in the main line of " +"development. When given \"git show-branch --topics master topic1 topic2\", " +"this will show the revisions given by \"git rev-list {caret}master topic1 " +"topic2\"" +msgstr "" + +#. type: Labeled list +#: en/git-show-branch.txt:112 +#, no-wrap +msgid "--reflog[=<n>[,<base>]] [<ref>]" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:60 +#: en/git-show-branch.txt:118 msgid "" -"With `-d` flag, it deletes the named <ref> after verifying it still contains " -"<oldvalue>." +"Shows <n> most recent ref-log entries for the given ref. If <base> is " +"given, <n> entries going back from that entry. <base> can be specified as " +"count or date. When no explicit <ref> parameter is given, it defaults to " +"the current branch (or `HEAD` if it is detached)." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:63 +#: en/git-show-branch.txt:123 msgid "" -"With `--stdin`, update-ref reads instructions from standard input and " -"performs all modifications together. Specify commands of the form:" +"Color the status sign (one of these: `*` `!` `+` `-`) of each commit " +"corresponding to the branch it's in. The value must be always (the " +"default), never, or auto." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:69 -#, no-wrap +#: en/git-show-branch.txt:128 msgid "" -"\tupdate SP <ref> SP <newvalue> [SP <oldvalue>] LF\n" -"\tcreate SP <ref> SP <newvalue> LF\n" -"\tdelete SP <ref> [SP <oldvalue>] LF\n" -"\tverify SP <ref> [SP <oldvalue>] LF\n" -"\toption SP <opt> LF\n" +"Turn off colored output, even when the configuration file gives the default " +"to color output. Same as `--color=never`." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:72 +#: en/git-show-branch.txt:131 msgid "" -"With `--create-reflog`, update-ref will create a reflog for each ref even if " -"one would not ordinarily be created." +"Note that --more, --list, --independent and --merge-base options are " +"mutually exclusive." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:77 +#: en/git-show-branch.txt:139 msgid "" -"Quote fields containing whitespace as if they were strings in C source code; " -"i.e., surrounded by double-quotes and with backslash escapes. Use 40 \"0\" " -"characters or the empty string to specify a zero value. To specify a " -"missing value, omit the value and its preceding SP entirely." +"Given N <references>, the first N lines are the one-line description from " +"their commit message. The branch head that is pointed at by $GIT_DIR/HEAD " +"is prefixed with an asterisk `*` character while other heads are prefixed " +"with a `!` character." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:80 +#: en/git-show-branch.txt:146 msgid "" -"Alternatively, use `-z` to specify in NUL-terminated format, without " -"quoting:" +"Following these N lines, one-line log for each commit is displayed, indented " +"N places. If a commit is on the I-th branch, the I-th indentation character " +"shows a `+` sign; otherwise it shows a space. Merge commits are denoted by " +"a `-` sign. Each commit shows a short name that can be used as an extended " +"SHA-1 to name that commit." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:86 -#, no-wrap +#: en/git-show-branch.txt:149 msgid "" -"\tupdate SP <ref> NUL <newvalue> NUL [<oldvalue>] NUL\n" -"\tcreate SP <ref> NUL <newvalue> NUL\n" -"\tdelete SP <ref> NUL [<oldvalue>] NUL\n" -"\tverify SP <ref> NUL [<oldvalue>] NUL\n" -"\toption SP <opt> NUL\n" +"The following example shows three branches, \"master\", \"fixes\" and \"mhf" +"\":" msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:89 +#. type: delimited block - +#: en/git-show-branch.txt:155 +#, no-wrap msgid "" -"In this format, use 40 \"0\" to specify a zero value, and use the empty " -"string to specify a missing value." +"$ git show-branch master fixes mhf\n" +"* [master] Add 'git show-branch'.\n" +" ! [fixes] Introduce \"reset type\" flag to \"git reset\"\n" +" ! [mhf] Allow \"+remote:local\" refspec to cause --force when fetching.\n" +"---\n" msgstr "" -#. type: Plain text -#: en/git-update-ref.txt:93 +#. type: delimited block - +#: en/git-show-branch.txt:167 +#, no-wrap msgid "" -"In either format, values can be specified in any form that Git recognizes as " -"an object name. Commands in any other format or a repeated <ref> produce an " -"error. Command meanings are:" +" + [mhf] Allow \"+remote:local\" refspec to cause --force when fetching.\n" +" + [mhf~1] Use git-octopus when pulling more than one heads.\n" +" + [fixes] Introduce \"reset type\" flag to \"git reset\"\n" +" + [mhf~2] \"git fetch --force\".\n" +" + [mhf~3] Use .git/remote/origin, not .git/branches/origin.\n" +" + [mhf~4] Make \"git pull\" and \"git fetch\" default to origin\n" +" + [mhf~5] Infamous 'octopus merge'\n" +" + [mhf~6] Retire git-parse-remote.\n" +" + [mhf~7] Multi-head fetch.\n" +" + [mhf~8] Start adding the $GIT_DIR/remotes/ support.\n" +"*++ [master] Add 'git show-branch'.\n" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:99 +#: en/git-show-branch.txt:174 msgid "" -"Set <ref> to <newvalue> after verifying <oldvalue>, if given. Specify a " -"zero <newvalue> to ensure the ref does not exist after the update and/or a " -"zero <oldvalue> to make sure the ref does not exist before the update." +"These three branches all forked from a common commit, [master], whose commit " +"message is \"Add {apostrophe}git show-branch{apostrophe}\". The \"fixes\" " +"branch adds one commit \"Introduce \"reset type\" flag to \"git reset\"\". " +"The \"mhf\" branch adds many other commits. The current branch is \"master" +"\"." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:103 +#: en/git-show-branch.txt:182 msgid "" -"Create <ref> with <newvalue> after verifying it does not exist. The given " -"<newvalue> may not be zero." +"If you keep your primary branches immediately under `refs/heads`, and topic " +"branches in subdirectories of it, having the following in the configuration " +"file may help:" msgstr "" -#. type: Labeled list -#: en/git-update-ref.txt:104 +#. type: delimited block - +#: en/git-show-branch.txt:187 #, no-wrap -msgid "delete" +msgid "" +"[showbranch]\n" +"\tdefault = --topo-order\n" +"\tdefault = heads/*\n" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:107 +#: en/git-show-branch.txt:193 msgid "" -"Delete <ref> after verifying it exists with <oldvalue>, if given. If given, " -"<oldvalue> may not be zero." +"With this, `git show-branch` without extra parameters would show only the " +"primary branches. In addition, if you happen to be on your topic branch, it " +"is shown as well." msgstr "" -#. type: Labeled list -#: en/git-update-ref.txt:108 +#. type: delimited block - +#: en/git-show-branch.txt:196 #, no-wrap -msgid "verify" +msgid "$ git show-branch --reflog=\"10,1 hour ago\" --list master\n" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:111 +#: en/git-show-branch.txt:201 msgid "" -"Verify <ref> against <oldvalue> but do not change it. If <oldvalue> zero or " -"missing, the ref must not exist." +"shows 10 reflog entries going back from the tip as of 1 hour ago. Without " +"`--list`, the output also shows how these tips are topologically related " +"with each other." msgstr "" -#. type: Labeled list -#: en/git-update-ref.txt:112 +#. type: Title = +#: en/git-show-index.txt:2 #, no-wrap -msgid "option" +msgid "git-show-index(1)" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:116 -msgid "" -"Modify behavior of the next command naming a <ref>. The only valid option " -"is `no-deref` to avoid dereferencing a symbolic ref." +#: en/git-show-index.txt:7 +msgid "git-show-index - Show packed archive index" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:122 -msgid "" -"If all <ref>s can be locked with matching <oldvalue>s simultaneously, all " -"modifications are performed. Otherwise, no modifications are performed. " -"Note that while each individual <ref> is updated or deleted atomically, a " -"concurrent reader may still see a subset of the modifications." -msgstr "" - -#. type: Title - -#: en/git-update-ref.txt:124 +#: en/git-show-index.txt:13 #, no-wrap -msgid "Logging Updates" +msgid "'git show-index'\n" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:131 +#: en/git-show-index.txt:22 msgid "" -"If config parameter \"core.logAllRefUpdates\" is true and the ref is one " -"under \"refs/heads/\", \"refs/remotes/\", \"refs/notes/\", or the symbolic " -"ref HEAD; or the file \"$GIT_DIR/logs/<ref>\" exists then `git update-ref` " -"will append a line to the log file \"$GIT_DIR/logs/<ref>\" (dereferencing " -"all symbolic refs before creating the log name) describing the change in ref " -"value. Log lines are formatted as:" -msgstr "" - -#. type: Plain text -#: en/git-update-ref.txt:133 -msgid "oldsha1 SP newsha1 SP committer LF" +"Read the `.idx` file for a Git packfile (created with linkgit:git-pack-" +"objects[1] or linkgit:git-index-pack[1]) from the standard input, and dump " +"its contents. The output consists of one object per line, with each line " +"containing two or three space-separated columns:" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:138 +#: en/git-show-index.txt:25 msgid "" -"Where \"oldsha1\" is the 40 character hexadecimal value previously stored in " -"<ref>, \"newsha1\" is the 40 character hexadecimal value of <newvalue> and " -"\"committer\" is the committer's name, email address and date in the " -"standard Git committer ident format." +"the first column is the offset in bytes of the object within the " +"corresponding packfile" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:140 -msgid "Optionally with -m:" +#: en/git-show-index.txt:27 +msgid "the second column is the object id of the object" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:142 -msgid "oldsha1 SP newsha1 SP committer TAB message LF" +#: en/git-show-index.txt:30 +msgid "" +"if the index version is 2 or higher, the third column contains the CRC32 of " +"the object data" msgstr "" #. type: Plain text -#: en/git-update-ref.txt:145 +#: en/git-show-index.txt:34 msgid "" -"Where all fields are as described above and \"message\" is the value " -"supplied to the -m option." +"The objects are output in the order in which they are found in the index " +"file, which should be (in a correctly constructed file) sorted by object id." msgstr "" #. type: Plain text -#: en/git-update-ref.txt:149 +#: en/git-show-index.txt:38 msgid "" -"An update will fail (without changing <ref>) if the current user is unable " -"to create a new log file, append to the existing log file or does not have " -"committer information available." +"Note that you can get more information on a packfile by calling linkgit:git-" +"verify-pack[1]. However, as this command considers only the index file " +"itself, it's both faster and more flexible." msgstr "" #. type: Title = -#: en/git-update-server-info.txt:2 +#: en/git-show-ref.txt:2 #, no-wrap -msgid "git-update-server-info(1)" +msgid "git-show-ref(1)" msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:7 -msgid "git-update-server-info - Update auxiliary info file to help dumb servers" +#: en/git-show-ref.txt:7 +msgid "git-show-ref - List references in a local repository" msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:13 +#: en/git-show-ref.txt:15 #, no-wrap -msgid "'git update-server-info' [--force]\n" +msgid "" +"'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]\n" +"\t [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]\n" +"\t [--heads] [--] [<pattern>...]\n" +"'git show-ref' --exclude-existing[=<pattern>]\n" msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:21 +#: en/git-show-ref.txt:23 msgid "" -"A dumb server that does not do on-the-fly pack generations must have some " -"auxiliary information files in $GIT_DIR/info and $GIT_OBJECT_DIRECTORY/info " -"directories to help clients discover what references and packs the server " -"has. This command generates such auxiliary files." +"Displays references available in a local repository along with the " +"associated commit IDs. Results can be filtered using a pattern and tags can " +"be dereferenced into object IDs. Additionally, it can be used to test " +"whether a particular ref exists." msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:29 -msgid "Update the info files from scratch." +#: en/git-show-ref.txt:25 +msgid "By default, shows the tags, heads, and remote refs." msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:37 +#: en/git-show-ref.txt:29 msgid "" -"Currently the command updates the following files. Please see " -"linkgit:gitrepository-layout[5] for description of what they are for:" -msgstr "" - -#. type: Plain text -#: en/git-update-server-info.txt:39 -msgid "objects/info/packs" +"The --exclude-existing form is a filter that does the inverse. It reads refs " +"from stdin, one ref per line, and shows those that don't exist in the local " +"repository." msgstr "" #. type: Plain text -#: en/git-update-server-info.txt:41 -msgid "info/refs" +#: en/git-show-ref.txt:32 +msgid "" +"Use of this utility is encouraged in favor of directly accessing files under " +"the `.git` directory." msgstr "" -#. type: Title = -#: en/git-upload-archive.txt:2 +#. type: Labeled list +#: en/git-show-ref.txt:36 #, no-wrap -msgid "git-upload-archive(1)" +msgid "--head" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:7 -msgid "git-upload-archive - Send archive back to git-archive" +#: en/git-show-ref.txt:39 +msgid "Show the HEAD reference, even if it would normally be filtered out." msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:13 -#, no-wrap -msgid "'git upload-archive' <directory>\n" +#: en/git-show-ref.txt:46 +msgid "" +"Limit to \"refs/heads\" and \"refs/tags\", respectively. These options are " +"not mutually exclusive; when given both, references stored in \"refs/heads\" " +"and \"refs/tags\" are displayed." msgstr "" -#. type: Plain text -#: en/git-upload-archive.txt:18 -msgid "" -"Invoked by 'git archive --remote' and sends a generated archive to the other " -"end over the Git protocol." +#. type: Labeled list +#: en/git-show-ref.txt:48 +#, no-wrap +msgid "--dereference" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:22 +#: en/git-show-ref.txt:52 msgid "" -"This command is usually not invoked directly by the end user. The UI for " -"the protocol is on the 'git archive' side, and the program pair is meant to " -"be used to get an archive from a remote repository." +"Dereference tags into object IDs as well. They will be shown with \"{caret}" +"{}\" appended." msgstr "" -#. type: Title - -#: en/git-upload-archive.txt:24 en/transfer-data-leaks.txt:2 +#. type: Labeled list +#: en/git-show-ref.txt:54 #, no-wrap -msgid "SECURITY" +msgid "--hash[=<n>]" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:32 +#: en/git-show-ref.txt:58 msgid "" -"In order to protect the privacy of objects that have been removed from " -"history but may not yet have been pruned, `git-upload-archive` avoids " -"serving archives for commits and trees that are not reachable from the " -"repository's refs. However, because calculating object reachability is " -"computationally expensive, `git-upload-archive` implements a stricter but " -"easier-to-check set of rules:" +"Only show the SHA-1 hash, not the reference name. When combined with --" +"dereference the dereferenced tag will still be shown after the SHA-1." msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:35 +#: en/git-show-ref.txt:64 msgid "" -"Clients may request a commit or tree that is pointed to directly by a " -"ref. E.g., `git archive --remote=origin v1.0`." +"Enable stricter reference checking by requiring an exact ref path. Aside " +"from returning an error code of 1, it will also print an error message if `--" +"quiet` was not specified." msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:38 +#: en/git-show-ref.txt:69 msgid "" -"Clients may request a sub-tree within a commit or tree using the `ref:path` " -"syntax. E.g., `git archive --remote=origin v1.0:Documentation`." +"Abbreviate the object name. When using `--hash`, you do not have to say `--" +"hash --abbrev`; `--hash=n` would do." msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:43 +#: en/git-show-ref.txt:75 msgid "" -"Clients may _not_ use other sha1 expressions, even if the end result is " -"reachable. E.g., neither a relative commit like `master^` nor a literal sha1 " -"like `abcd1234` is allowed, even if the result is reachable from the refs." +"Do not print any results to stdout. When combined with `--verify` this can " +"be used to silently check if a reference exists." +msgstr "" + +#. type: Labeled list +#: en/git-show-ref.txt:76 +#, no-wrap +msgid "--exclude-existing[=<pattern>]" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:48 +#: en/git-show-ref.txt:81 msgid "" -"Note that rule 3 disallows many cases that do not have any privacy " -"implications. These rules are subject to change in future versions of git, " -"and the server accessed by `git archive --remote` may or may not follow " -"these exact rules." +"Make 'git show-ref' act as a filter that reads refs from stdin of the form " +"\"`^(?:<anything>\\s)?<refname>(?:\\^{})?$`\" and performs the following " +"actions on each:" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:54 -msgid "" -"If the config option `uploadArchive.allowUnreachable` is true, these rules " -"are ignored, and clients may use arbitrary sha1 expressions. This is useful " -"if you do not care about the privacy of unreachable objects, or if your " -"object database is already publicly available for access via non-smart-http." +#: en/git-show-ref.txt:82 +msgid "strip \"{caret}{}\" at the end of line if any;" msgstr "" #. type: Plain text -#: en/git-upload-archive.txt:59 -msgid "The repository to get a tar archive from." +#: en/git-show-ref.txt:83 +msgid "ignore if pattern is provided and does not head-match refname;" msgstr "" -#. type: Title = -#: en/git-upload-pack.txt:2 -#, no-wrap -msgid "git-upload-pack(1)" +#. type: Plain text +#: en/git-show-ref.txt:84 +msgid "warn if refname is not a well-formed refname and skip;" msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:7 -msgid "git-upload-pack - Send objects packed back to git-fetch-pack" +#: en/git-show-ref.txt:85 +msgid "ignore if refname is a ref that exists in the local repository;" msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:15 -#, no-wrap +#: en/git-show-ref.txt:86 +msgid "otherwise output the line." +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:95 msgid "" -"'git-upload-pack' [--[no-]strict] [--timeout=<n>] [--stateless-rpc]\n" -"\t\t [--advertise-refs] <directory>\n" -"DESCRIPTION\n" +"Show references matching one or more patterns. Patterns are matched from the " +"end of the full name, and only complete parts are matched, e.g. 'master' " +"matches 'refs/heads/master', 'refs/remotes/origin/master', 'refs/tags/jedi/" +"master' but not 'refs/heads/mymaster' or 'refs/remotes/master/jedi'." +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:100 +msgid "The output is in the format: '<SHA-1 ID>' '<space>' '<reference name>'." msgstr "" #. type: delimited block - -#: en/git-upload-pack.txt:18 +#: en/git-show-ref.txt:111 #, no-wrap msgid "" -"Invoked by 'git fetch-pack', learns what\n" -"objects the other side is missing, and sends them after packing.\n" +"$ git show-ref --head --dereference\n" +"832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD\n" +"832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master\n" +"832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin\n" +"3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c\n" +"6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}\n" +"055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4\n" +"423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}\n" +"...\n" +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:114 +msgid "" +"When using --hash (and not --dereference) the output format is: '<SHA-1 ID>'" msgstr "" #. type: delimited block - -#: en/git-upload-pack.txt:23 +#: en/git-show-ref.txt:121 #, no-wrap msgid "" -"This command is usually not invoked directly by the end user.\n" -"The UI for the protocol is on the 'git fetch-pack' side, and the\n" -"program pair is meant to be used to pull updates from a remote\n" -"repository. For push operations, see 'git send-pack'.\n" +"$ git show-ref --heads --hash\n" +"2e3ba0114a1f52b47df29743d6915d056be13278\n" +"185008ae97960c8d551adcd9e23565194651b5d1\n" +"03adf42c988195b50e1a1935ba5fcbc39b2b029b\n" +"...\n" +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:129 +msgid "" +"To show all references called \"master\", whether tags or heads or anything " +"else, and regardless of how deep in the reference naming hierarchy they are, " +"use:" msgstr "" #. type: delimited block - -#: en/git-upload-pack.txt:26 +#: en/git-show-ref.txt:132 #, no-wrap -msgid "OPTIONS\n" +msgid "\tgit show-ref master\n" msgstr "" -#. type: Labeled list -#: en/git-upload-pack.txt:28 +#. type: Plain text +#: en/git-show-ref.txt:136 +msgid "" +"This will show \"refs/heads/master\" but also \"refs/remote/other-repo/master" +"\", if such references exists." +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:138 +msgid "When using the `--verify` flag, the command requires an exact path:" +msgstr "" + +#. type: delimited block - +#: en/git-show-ref.txt:141 #, no-wrap -msgid "--[no-]strict" +msgid "\tgit show-ref --verify refs/heads/master\n" msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:30 -msgid "Do not try <directory>/.git/ if <directory> is no Git directory." +#: en/git-show-ref.txt:144 +msgid "will only match the exact branch called \"master\"." msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:33 -msgid "Interrupt transfer after <n> seconds of inactivity." +#: en/git-show-ref.txt:147 +msgid "" +"If nothing matches, 'git show-ref' will return an error code of 1, and in " +"the case of verification, it will show an error message." msgstr "" -#. type: Labeled list -#: en/git-upload-pack.txt:34 +#. type: Plain text +#: en/git-show-ref.txt:150 +msgid "" +"For scripting, you can ask it to be quiet with the \"--quiet\" flag, which " +"allows you to do things like" +msgstr "" + +#. type: delimited block - +#: en/git-show-ref.txt:154 #, no-wrap -msgid "--stateless-rpc" +msgid "" +"\tgit show-ref --quiet --verify -- \"refs/heads/$headname\" ||\n" +"\t\techo \"$headname is not a valid branch\"\n" msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:38 +#: en/git-show-ref.txt:159 msgid "" -"Perform only a single read-write cycle with stdin and stdout. This fits " -"with the HTTP POST request processing model where a program may read the " -"request, write a response, and must exit." +"to check whether a particular branch exists or not (notice how we don't " +"actually want to show any results, and we want to use the full refname for " +"it in order to not trigger the problem with ambiguous partial matches)." msgstr "" -#. type: Labeled list -#: en/git-upload-pack.txt:39 -#, no-wrap -msgid "--advertise-refs" +#. type: Plain text +#: en/git-show-ref.txt:163 +msgid "" +"To show only tags, or only proper branch heads, use \"--tags\" and/or \"--" +"heads\" respectively (using both means that it shows tags and heads, but not " +"other random references under the refs/ subdirectory)." msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:43 +#: en/git-show-ref.txt:166 msgid "" -"Only the initial ref advertisement is output, and the program exits " -"immediately. This fits with the HTTP GET request model, where no request " -"content is received but a response must be produced." +"To do automatic tag object dereferencing, use the \"-d\" or \"--dereference" +"\" flag, so you can do" +msgstr "" + +#. type: delimited block - +#: en/git-show-ref.txt:169 +#, no-wrap +msgid "\tgit show-ref --tags --dereference\n" msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:46 -msgid "The repository to sync from." +#: en/git-show-ref.txt:172 +msgid "to get a listing of all tags together with what they dereference." msgstr "" #. type: Plain text -#: en/git-upload-pack.txt:50 -msgid "linkgit:gitnamespaces[7]" +#: en/git-show-ref.txt:176 +msgid "`.git/refs/*`, `.git/packed-refs`" +msgstr "" + +#. type: Plain text +#: en/git-show-ref.txt:183 +msgid "" +"linkgit:git-for-each-ref[1], linkgit:git-ls-remote[1], linkgit:git-update-" +"ref[1], linkgit:gitrepository-layout[5]" msgstr "" #. type: Title = -#: en/git-var.txt:2 +#: en/git-show.txt:2 #, no-wrap -msgid "git-var(1)" +msgid "git-show(1)" msgstr "" #. type: Plain text -#: en/git-var.txt:7 -msgid "git-var - Show a Git logical variable" +#: en/git-show.txt:7 +msgid "git-show - Show various types of objects" msgstr "" #. type: Plain text -#: en/git-var.txt:13 +#: en/git-show.txt:13 #, no-wrap -msgid "'git var' ( -l | <variable> )\n" +msgid "'git show' [<options>] [<object>...]\n" msgstr "" #. type: Plain text -#: en/git-var.txt:17 -msgid "Prints a Git logical variable." +#: en/git-show.txt:17 +msgid "Shows one or more objects (blobs, trees, tags and commits)." msgstr "" #. type: Plain text -#: en/git-var.txt:25 +#: en/git-show.txt:21 msgid "" -"Cause the logical variables to be listed. In addition, all the variables of " -"the Git configuration file .git/config are listed as well. (However, the " -"configuration variables listing functionality is deprecated in favor of `git " -"config -l`.)" +"For commits it shows the log message and textual diff. It also presents the " +"merge commit in a special format as produced by 'git diff-tree --cc'." msgstr "" -#. type: delimited block - -#: en/git-var.txt:30 -#, no-wrap +#. type: Plain text +#: en/git-show.txt:23 +msgid "For tags, it shows the tag message and the referenced objects." +msgstr "" + +#. type: Plain text +#: en/git-show.txt:26 msgid "" -"\t$ git var GIT_AUTHOR_IDENT\n" -"\tEric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600\n" +"For trees, it shows the names (equivalent to 'git ls-tree' with --name-only)." msgstr "" -#. type: delimited block - -#: en/git-var.txt:33 -#, no-wrap -msgid "VARIABLES\n" +#. type: Plain text +#: en/git-show.txt:28 +msgid "For plain blobs, it shows the plain contents." +msgstr "" + +#. type: Plain text +#: en/git-show.txt:31 +msgid "" +"The command takes options applicable to the 'git diff-tree' command to " +"control how the changes the commit introduces are shown." +msgstr "" + +#. type: Plain text +#: en/git-show.txt:33 +msgid "This manual page describes only the most frequently used options." msgstr "" #. type: Labeled list -#: en/git-var.txt:34 +#: en/git-show.txt:37 #, no-wrap -msgid "GIT_AUTHOR_IDENT" +msgid "<object>..." msgstr "" #. type: Plain text -#: en/git-var.txt:36 -msgid "The author of a piece of code." +#: en/git-show.txt:41 +msgid "" +"The names of objects to show (defaults to 'HEAD'). For a more complete list " +"of ways to spell object names, see \"SPECIFYING REVISIONS\" section in " +"linkgit:gitrevisions[7]." msgstr "" #. type: Labeled list -#: en/git-var.txt:37 +#: en/git-show.txt:60 #, no-wrap -msgid "GIT_COMMITTER_IDENT" +msgid "`git show v1.0.0`" msgstr "" #. type: Plain text -#: en/git-var.txt:39 -msgid "The person who put a piece of code into Git." +#: en/git-show.txt:63 +msgid "Shows the tag `v1.0.0`, along with the object the tags points at." msgstr "" #. type: Labeled list -#: en/git-var.txt:40 +#: en/git-show.txt:64 #, no-wrap -msgid "GIT_EDITOR" +msgid "`git show v1.0.0^{tree}`" msgstr "" #. type: Plain text -#: en/git-var.txt:48 -msgid "" -"Text editor for use by Git commands. The value is meant to be interpreted " -"by the shell when it is used. Examples: `~/bin/vi`, " -"`$SOME_ENVIRONMENT_VARIABLE`, `\"C:\\Program Files\\Vim\\gvim.exe\" " -"--nofork`. The order of preference is the `$GIT_EDITOR` environment " -"variable, then `core.editor` configuration, then `$VISUAL`, then `$EDITOR`, " -"and then the default chosen at compile time, which is usually 'vi'." +#: en/git-show.txt:66 +msgid "Shows the tree pointed to by the tag `v1.0.0`." msgstr "" -#. type: Plain text -#: en/git-var.txt:50 +#. type: Labeled list +#: en/git-show.txt:67 #, no-wrap -msgid " The build you are using chose '{git-default-editor}' as the default.\n" +msgid "`git show -s --format=%s v1.0.0^{commit}`" +msgstr "" + +#. type: Plain text +#: en/git-show.txt:70 +msgid "Shows the subject of the commit pointed to by the tag `v1.0.0`." msgstr "" #. type: Labeled list -#: en/git-var.txt:52 +#: en/git-show.txt:71 #, no-wrap -msgid "GIT_PAGER" +msgid "`git show next~10:Documentation/README`" msgstr "" #. type: Plain text -#: en/git-var.txt:58 en/config.txt:772 +#: en/git-show.txt:75 msgid "" -"Text viewer for use by Git commands (e.g., 'less'). The value is meant to " -"be interpreted by the shell. The order of preference is the `$GIT_PAGER` " -"environment variable, then `core.pager` configuration, then `$PAGER`, and " -"then the default chosen at compile time (usually 'less')." +"Shows the contents of the file `Documentation/README` as they were current " +"in the 10th last commit of the branch `next`." msgstr "" -#. type: Plain text -#: en/git-var.txt:60 +#. type: Labeled list +#: en/git-show.txt:76 #, no-wrap -msgid " The build you are using chose '{git-default-pager}' as the default.\n" +msgid "`git show master:Makefile master:t/Makefile`" msgstr "" #. type: Plain text -#: en/git-var.txt:67 -msgid "linkgit:git-commit-tree[1] linkgit:git-tag[1] linkgit:git-config[1]" +#: en/git-show.txt:79 +msgid "" +"Concatenates the contents of said Makefiles in the head of the branch " +"`master`." msgstr "" #. type: Title = -#: en/git-verify-commit.txt:2 +#: en/git-sh-setup.txt:2 #, no-wrap -msgid "git-verify-commit(1)" +msgid "git-sh-setup(1)" msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:7 -msgid "git-verify-commit - Check the GPG signature of commits" +#: en/git-sh-setup.txt:7 +msgid "git-sh-setup - Common Git shell script setup code" msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:12 +#: en/git-sh-setup.txt:12 #, no-wrap -msgid "'git verify-commit' <commit>...\n" +msgid "'. \"$(git --exec-path)/git-sh-setup\"'\n" msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:16 -msgid "Validates the GPG signature created by 'git commit -S'." +#: en/git-sh-setup.txt:23 +msgid "" +"The 'git sh-setup' scriptlet is designed to be sourced (using `.`) by other " +"shell scripts to set up some variables pointing at the normal Git " +"directories and a few helper shell functions." msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:22 en/git-verify-tag.txt:22 +#: en/git-sh-setup.txt:29 msgid "" -"Print the raw gpg status output to standard error instead of the normal " -"human-readable output." +"Before sourcing it, your script should set up a few variables; `USAGE` (and " +"`LONG_USAGE`, if any) is used to define message given by `usage()` shell " +"function. `SUBDIRECTORY_OK` can be set if the script can run from a " +"subdirectory of the working tree (some commands do not)." msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:26 -msgid "Print the contents of the commit object before validating it." +#: en/git-sh-setup.txt:32 +msgid "" +"The scriptlet sets `GIT_DIR` and `GIT_OBJECT_DIRECTORY` shell variables, but " +"does *not* export them to the environment." +msgstr "" + +#. type: Labeled list +#: en/git-sh-setup.txt:36 +#, no-wrap +msgid "die" msgstr "" #. type: Plain text -#: en/git-verify-commit.txt:29 -msgid "SHA-1 identifiers of Git commit objects." +#: en/git-sh-setup.txt:39 +msgid "" +"exit after emitting the supplied error message to the standard error stream." msgstr "" -#. type: Title = -#: en/git-verify-pack.txt:2 +#. type: Labeled list +#: en/git-sh-setup.txt:40 #, no-wrap -msgid "git-verify-pack(1)" +msgid "usage" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:7 -msgid "git-verify-pack - Validate packed Git archive files" +#: en/git-sh-setup.txt:42 +msgid "die with the usage message." msgstr "" -#. type: Plain text -#: en/git-verify-pack.txt:13 +#. type: Labeled list +#: en/git-sh-setup.txt:43 #, no-wrap -msgid "'git verify-pack' [-v|--verbose] [-s|--stat-only] [--] <pack>.idx ...\n" +msgid "set_reflog_action" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:20 +#: en/git-sh-setup.txt:49 msgid "" -"Reads given idx file for packed Git archive created with the 'git " -"pack-objects' command and verifies idx file and the corresponding pack file." +"Set `GIT_REFLOG_ACTION` environment to a given string (typically the name of " +"the program) unless it is already set. Whenever the script runs a `git` " +"command that updates refs, a reflog entry is created using the value of this " +"string to leave the record of what command updated the ref." msgstr "" #. type: Labeled list -#: en/git-verify-pack.txt:23 +#: en/git-sh-setup.txt:50 #, no-wrap -msgid "<pack>.idx ..." -msgstr "" - -#. type: Plain text -#: en/git-verify-pack.txt:25 -msgid "The idx files to verify." +msgid "git_editor" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:30 +#: en/git-sh-setup.txt:54 msgid "" -"After verifying the pack, show list of objects contained in the pack and a " -"histogram of delta chain length." +"runs an editor of user's choice (GIT_EDITOR, core.editor, VISUAL or EDITOR) " +"on a given file, but error out if no editor is specified and the terminal is " +"dumb." msgstr "" #. type: Labeled list -#: en/git-verify-pack.txt:32 +#: en/git-sh-setup.txt:55 #, no-wrap -msgid "--stat-only" +msgid "is_bare_repository" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:35 +#: en/git-sh-setup.txt:59 msgid "" -"Do not verify the pack contents; only show the histogram of delta chain " -"length. With `--verbose`, list of objects is also shown." +"outputs `true` or `false` to the standard output stream to indicate if the " +"repository is a bare repository (i.e. without an associated working tree)." msgstr "" -#. type: Title - -#: en/git-verify-pack.txt:40 +#. type: Labeled list +#: en/git-sh-setup.txt:60 #, no-wrap -msgid "OUTPUT FORMAT" +msgid "cd_to_toplevel" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:42 -msgid "When specifying the -v option the format used is:" +#: en/git-sh-setup.txt:62 +msgid "runs chdir to the toplevel of the working tree." msgstr "" -#. type: Plain text -#: en/git-verify-pack.txt:44 +#. type: Labeled list +#: en/git-sh-setup.txt:63 #, no-wrap -msgid "\tSHA-1 type size size-in-packfile offset-in-packfile\n" +msgid "require_work_tree" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:46 -msgid "for objects that are not deltified in the pack, and" +#: en/git-sh-setup.txt:66 +msgid "" +"checks if the current directory is within the working tree of the " +"repository, and otherwise dies." msgstr "" -#. type: Plain text -#: en/git-verify-pack.txt:48 +#. type: Labeled list +#: en/git-sh-setup.txt:67 #, no-wrap -msgid "\tSHA-1 type size size-in-packfile offset-in-packfile depth base-SHA-1\n" +msgid "require_work_tree_exists" msgstr "" #. type: Plain text -#: en/git-verify-pack.txt:50 -msgid "for objects that are deltified." +#: en/git-sh-setup.txt:72 +msgid "" +"checks if the working tree associated with the repository exists, and " +"otherwise dies. Often done before calling cd_to_toplevel, which is " +"impossible to do if there is no working tree." msgstr "" -#. type: Title = -#: en/git-verify-tag.txt:2 +#. type: Labeled list +#: en/git-sh-setup.txt:73 #, no-wrap -msgid "git-verify-tag(1)" +msgid "require_clean_work_tree <action> [<hint>]" msgstr "" #. type: Plain text -#: en/git-verify-tag.txt:7 -msgid "git-verify-tag - Check the GPG signature of tags" +#: en/git-sh-setup.txt:78 +msgid "" +"checks that the working tree and index associated with the repository have " +"no uncommitted changes to tracked files. Otherwise it emits an error " +"message of the form `Cannot <action>: <reason>. <hint>`, and dies. Example:" msgstr "" -#. type: Plain text -#: en/git-verify-tag.txt:12 +#. type: delimited block - +#: en/git-sh-setup.txt:81 #, no-wrap -msgid "'git verify-tag' [--format=<format>] <tag>...\n" +msgid "require_clean_work_tree rebase \"Please commit or stash them.\"\n" msgstr "" -#. type: Plain text -#: en/git-verify-tag.txt:16 -msgid "Validates the gpg signature created by 'git tag'." +#. type: Labeled list +#: en/git-sh-setup.txt:83 +#, no-wrap +msgid "get_author_ident_from_commit" msgstr "" #. type: Plain text -#: en/git-verify-tag.txt:26 -msgid "Print the contents of the tag object before validating it." +#: en/git-sh-setup.txt:86 +msgid "" +"outputs code for use with eval to set the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL " +"and GIT_AUTHOR_DATE variables for a given commit." msgstr "" #. type: Labeled list -#: en/git-verify-tag.txt:27 +#: en/git-sh-setup.txt:87 #, no-wrap -msgid "<tag>..." +msgid "create_virtual_base" msgstr "" #. type: Plain text -#: en/git-verify-tag.txt:29 -msgid "SHA-1 identifiers of Git tag objects." +#: en/git-sh-setup.txt:92 +msgid "" +"modifies the first file so only lines in common with the second file remain. " +"If there is insufficient common material, then the first file is left empty. " +"The result is suitable as a virtual base input for a 3-way merge." msgstr "" #. type: Title = -#: en/git-web--browse.txt:2 +#: en/git-stage.txt:2 #, no-wrap -msgid "git-web{litdd}browse(1)" +msgid "git-stage(1)" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:7 -msgid "git-web--browse - Git helper script to launch a web browser" +#: en/git-stage.txt:7 +msgid "git-stage - Add file contents to the staging area" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:12 +#: en/git-stage.txt:13 #, no-wrap -msgid "'git web{litdd}browse' [OPTIONS] URL/FILE ...\n" +msgid "'git stage' args...\n" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:19 +#: en/git-stage.txt:20 msgid "" -"This script tries, as much as possible, to display the URLs and FILEs that " -"are passed as arguments, as HTML pages in new tabs on an already opened web " -"browser." +"This is a synonym for linkgit:git-add[1]. Please refer to the documentation " +"of that command." +msgstr "" + +#. type: Title = +#: en/git-stash.txt:2 +#, no-wrap +msgid "git-stash(1)" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:21 -msgid "The following browsers (or commands) are currently supported:" +#: en/git-stash.txt:7 +msgid "git-stash - Stash the changes in a dirty working directory away" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:23 -msgid "firefox (this is the default under X Window when not using KDE)" +#: en/git-stash.txt:22 +#, no-wrap +msgid "" +"'git stash' list [<options>]\n" +"'git stash' show [<stash>]\n" +"'git stash' drop [-q|--quiet] [<stash>]\n" +"'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]\n" +"'git stash' branch <branchname> [<stash>]\n" +"'git stash' [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n" +"\t [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n" +"\t [--] [<pathspec>...]]\n" +"'git stash' clear\n" +"'git stash' create [<message>]\n" +"'git stash' store [-m|--message <message>] [-q|--quiet] <commit>\n" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:24 -msgid "iceweasel" +#: en/git-stash.txt:30 +msgid "" +"Use `git stash` when you want to record the current state of the working " +"directory and the index, but want to go back to a clean working directory. " +"The command saves your local modifications away and reverts the working " +"directory to match the `HEAD` commit." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:25 -msgid "seamonkey" +#: en/git-stash.txt:38 +msgid "" +"The modifications stashed away by this command can be listed with `git stash " +"list`, inspected with `git stash show`, and restored (potentially on top of " +"a different commit) with `git stash apply`. Calling `git stash` without any " +"arguments is equivalent to `git stash push`. A stash is by default listed " +"as \"WIP on 'branchname' ...\", but you can give a more descriptive message " +"on the command line when you create one." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:26 -msgid "iceape" +#: en/git-stash.txt:45 +msgid "" +"The latest stash you created is stored in `refs/stash`; older stashes are " +"found in the reflog of this reference and can be named using the usual " +"reflog syntax (e.g. `stash@{0}` is the most recently created stash, " +"`stash@{1}` is the one before it, `stash@{2.hours.ago}` is also possible). " +"Stashes may also be referenced by specifying just the stash index (e.g. the " +"integer `n` is equivalent to `stash@{n}`)." msgstr "" -#. type: Plain text -#: en/git-web--browse.txt:27 -msgid "chromium (also supported as chromium-browser)" +#. type: Labeled list +#: en/git-stash.txt:49 +#, no-wrap +msgid "push [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--] [<pathspec>...]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:28 -msgid "google-chrome (also supported as chrome)" +#: en/git-stash.txt:55 +msgid "" +"Save your local modifications to a new 'stash entry' and roll them back to " +"HEAD (in the working tree and in the index). The <message> part is optional " +"and gives the description along with the stashed state." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:29 -msgid "konqueror (this is the default under KDE, see 'Note about konqueror' below)" +#: en/git-stash.txt:61 +msgid "" +"For quickly making a snapshot, you can omit \"push\". In this mode, non-" +"option arguments are not allowed to prevent a misspelled subcommand from " +"making an unwanted stash entry. The two exceptions to this are `stash -p` " +"which acts as alias for `stash push -p` and pathspecs, which are allowed " +"after a double hyphen `--` for disambiguation." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:30 -msgid "opera" +#: en/git-stash.txt:67 +msgid "" +"When pathspec is given to 'git stash push', the new stash entry records the " +"modified states only for the files that match the pathspec. The index " +"entries and working tree files are then rolled back to the state in HEAD " +"only for these files, too, leaving files that do not match the pathspec " +"intact." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:31 -msgid "w3m (this is the default outside graphical environments)" +#: en/git-stash.txt:70 +msgid "" +"If the `--keep-index` option is used, all changes already added to the index " +"are left intact." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:32 -msgid "elinks" +#: en/git-stash.txt:75 +msgid "" +"If the `--include-untracked` option is used, all untracked files are also " +"stashed and then cleaned up with `git clean`, leaving the working directory " +"in a very clean state. If the `--all` option is used instead then the " +"ignored files are stashed and cleaned in addition to the untracked files." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:33 -msgid "links" +#: en/git-stash.txt:83 +msgid "" +"With `--patch`, you can interactively select hunks from the diff between " +"HEAD and the working tree to be stashed. The stash entry is constructed " +"such that its index state is the same as the index state of your repository, " +"and its worktree contains only the changes you selected interactively. The " +"selected changes are then rolled back from your worktree. See the " +"``Interactive Mode'' section of linkgit:git-add[1] to learn how to operate " +"the `--patch` mode." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:34 -msgid "lynx" +#: en/git-stash.txt:86 +msgid "" +"The `--patch` option implies `--keep-index`. You can use `--no-keep-index` " +"to override this." msgstr "" -#. type: Plain text -#: en/git-web--browse.txt:35 -msgid "dillo" +#. type: Labeled list +#: en/git-stash.txt:87 +#, no-wrap +msgid "save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:36 -msgid "open (this is the default under Mac OS X GUI)" +#: en/git-stash.txt:92 +msgid "" +"This option is deprecated in favour of 'git stash push'. It differs from " +"\"stash push\" in that it cannot take pathspecs, and any non-option " +"arguments form the message." msgstr "" -#. type: Plain text -#: en/git-web--browse.txt:37 -msgid "start (this is the default under MinGW)" +#. type: Labeled list +#: en/git-stash.txt:93 +#, no-wrap +msgid "list [<options>]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:38 -msgid "cygstart (this is the default under Cygwin)" +#: en/git-stash.txt:100 +msgid "" +"List the stash entries that you currently have. Each 'stash entry' is " +"listed with its name (e.g. `stash@{0}` is the latest entry, `stash@{1}` is " +"the one before, etc.), the name of the branch that was current when the " +"entry was made, and a short description of the commit the entry was based on." msgstr "" -#. type: Plain text -#: en/git-web--browse.txt:39 -msgid "xdg-open" +#. type: delimited block - +#: en/git-stash.txt:104 +#, no-wrap +msgid "" +"stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation\n" +"stash@{1}: On master: 9cc0589... Add git-stash\n" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:41 -msgid "Custom commands may also be specified." +#: en/git-stash.txt:108 +msgid "" +"The command takes options applicable to the 'git log' command to control " +"what is shown and how. See linkgit:git-log[1]." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:44 +#: en/git-stash.txt:109 #, no-wrap -msgid "-b <browser>" +msgid "show [<stash>]" +msgstr "" + +#. type: Plain text +#: en/git-stash.txt:119 +msgid "" +"Show the changes recorded in the stash entry as a diff between the stashed " +"contents and the commit back when the stash entry was first created. When no " +"`<stash>` is given, it shows the latest one. By default, the command shows " +"the diffstat, but it will accept any format known to 'git diff' (e.g., `git " +"stash show -p stash@{1}` to view the second most recent entry in patch " +"form). You can use stash.showStat and/or stash.showPatch config variables " +"to change the default behavior." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:45 +#: en/git-stash.txt:120 #, no-wrap -msgid "--browser=<browser>" +msgid "pop [--index] [-q|--quiet] [<stash>]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:48 -msgid "Use the specified browser. It must be in the list of supported browsers." +#: en/git-stash.txt:126 +msgid "" +"Remove a single stashed state from the stash list and apply it on top of the " +"current working tree state, i.e., do the inverse operation of `git stash " +"push`. The working directory must match the index." msgstr "" -#. type: Labeled list -#: en/git-web--browse.txt:49 -#, no-wrap -msgid "-t <browser>" +#. type: Plain text +#: en/git-stash.txt:130 +msgid "" +"Applying the state can fail with conflicts; in this case, it is not removed " +"from the stash list. You need to resolve the conflicts by hand and call `git " +"stash drop` manually afterwards." msgstr "" -#. type: Labeled list -#: en/git-web--browse.txt:50 -#, no-wrap -msgid "--tool=<browser>" +#. type: Plain text +#: en/git-stash.txt:135 +msgid "" +"If the `--index` option is used, then tries to reinstate not only the " +"working tree's changes, but also the index's ones. However, this can fail, " +"when you have conflicts (which are stored in the index, where you therefore " +"can no longer apply the changes as they were originally)." +msgstr "" + +#. type: Plain text +#: en/git-stash.txt:138 +msgid "" +"When no `<stash>` is given, `stash@{0}` is assumed, otherwise `<stash>` must " +"be a reference of the form `stash@{<revision>}`." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:53 +#: en/git-stash.txt:139 #, no-wrap -msgid "-c <conf.var>" +msgid "apply [--index] [-q|--quiet] [<stash>]" +msgstr "" + +#. type: Plain text +#: en/git-stash.txt:144 +msgid "" +"Like `pop`, but do not remove the state from the stash list. Unlike `pop`, " +"`<stash>` may be any commit that looks like a commit created by `stash push` " +"or `stash create`." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:54 +#: en/git-stash.txt:145 #, no-wrap -msgid "--config=<conf.var>" +msgid "branch <branchname> [<stash>]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:57 +#: en/git-stash.txt:153 msgid "" -"CONF.VAR is looked up in the Git config files. If it's set, then its value " -"specifies the browser that should be used." +"Creates and checks out a new branch named `<branchname>` starting from the " +"commit at which the `<stash>` was originally created, applies the changes " +"recorded in `<stash>` to the new working tree and index. If that succeeds, " +"and `<stash>` is a reference of the form `stash@{<revision>}`, it then drops " +"the `<stash>`. When no `<stash>` is given, applies the latest one." msgstr "" -#. type: Title ~ -#: en/git-web--browse.txt:62 +#. type: Plain text +#: en/git-stash.txt:159 +msgid "" +"This is useful if the branch on which you ran `git stash push` has changed " +"enough that `git stash apply` fails due to conflicts. Since the stash entry " +"is applied on top of the commit that was HEAD at the time `git stash` was " +"run, it restores the originally stashed state with no conflicts." +msgstr "" + +#. type: Labeled list +#: en/git-stash.txt:160 #, no-wrap -msgid "CONF.VAR (from -c option) and web.browser" +msgid "clear" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:67 +#: en/git-stash.txt:164 msgid "" -"The web browser can be specified using a configuration variable passed with " -"the -c (or --config) command-line option, or the `web.browser` configuration " -"variable if the former is not used." +"Remove all the stash entries. Note that those entries will then be subject " +"to pruning, and may be impossible to recover (see 'Examples' below for a " +"possible strategy)." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:69 en/config.txt:1018 +#: en/git-stash.txt:165 #, no-wrap -msgid "browser.<tool>.path" +msgid "drop [-q|--quiet] [<stash>]" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:76 +#: en/git-stash.txt:171 msgid "" -"You can explicitly provide a full path to your preferred browser by setting " -"the configuration variable `browser.<tool>.path`. For example, you can " -"configure the absolute path to firefox by setting " -"'browser.firefox.path'. Otherwise, 'git web{litdd}browse' assumes the tool " -"is available in PATH." +"Remove a single stash entry from the list of stash entries. When no " +"`<stash>` is given, it removes the latest one. i.e. `stash@{0}`, otherwise " +"`<stash>` must be a valid stash log reference of the form `stash@{<revision>}" +"`." msgstr "" #. type: Labeled list -#: en/git-web--browse.txt:78 en/config.txt:1013 +#: en/git-stash.txt:172 en/git-update-ref.txt:100 #, no-wrap -msgid "browser.<tool>.cmd" +msgid "create" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:86 +#: en/git-stash.txt:179 msgid "" -"When the browser, specified by options or configuration variables, is not " -"among the supported ones, then the corresponding `browser.<tool>.cmd` " -"configuration variable will be looked up. If this variable exists then 'git " -"web{litdd}browse' will treat the specified tool as a custom command and will " -"use a shell eval to run the command with the URLs passed as arguments." +"Create a stash entry (which is a regular commit object) and return its " +"object name, without storing it anywhere in the ref namespace. This is " +"intended to be useful for scripts. It is probably not the command you want " +"to use; see \"push\" above." +msgstr "" + +#. type: Labeled list +#: en/git-stash.txt:180 +#, no-wrap +msgid "store" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:93 +#: en/git-stash.txt:186 msgid "" -"When 'konqueror' is specified by a command-line option or a configuration " -"variable, we launch 'kfmclient' to try to open the HTML man page on an " -"already opened konqueror in a new tab if possible." +"Store a given stash created via 'git stash create' (which is a dangling " +"merge commit) in the stash ref, updating the stash reflog. This is intended " +"to be useful for scripts. It is probably not the command you want to use; " +"see \"push\" above." msgstr "" #. type: Plain text -#: en/git-web--browse.txt:97 +#: en/git-stash.txt:195 msgid "" -"For consistency, we also try such a trick if 'browser.konqueror.path' is set " -"to something like 'A_PATH_TO/konqueror'. That means we will try to launch " -"'A_PATH_TO/kfmclient' instead." +"A stash entry is represented as a commit whose tree records the state of the " +"working directory, and its first parent is the commit at `HEAD` when the " +"entry was created. The tree of the second parent records the state of the " +"index when the entry is made, and it is made a child of the `HEAD` commit. " +"The ancestry graph looks like this:" msgstr "" -#. type: delimited block - -#: en/git-web--browse.txt:104 +#. type: Plain text +#: en/git-stash.txt:199 #, no-wrap msgid "" -"\t[web]\n" -"\t\tbrowser = konq\n" +" .----W\n" +" / /\n" +" -----H----I\n" msgstr "" -#. type: delimited block - -#: en/git-web--browse.txt:107 -#, no-wrap +#. type: Plain text +#: en/git-stash.txt:203 msgid "" -"\t[browser \"konq\"]\n" -"\t\tcmd = A_PATH_TO/konqueror\n" +"where `H` is the `HEAD` commit, `I` is a commit that records the state of " +"the index, and `W` is a commit that records the state of the working tree." msgstr "" -#. type: Title ~ -#: en/git-web--browse.txt:110 +#. type: Labeled list +#: en/git-stash.txt:208 #, no-wrap -msgid "Note about git-config --global" +msgid "Pulling into a dirty tree" msgstr "" #. type: Plain text -#: en/git-web--browse.txt:114 +#: en/git-stash.txt:214 msgid "" -"Note that these configuration variables should probably be set using the " -"`--global` flag, for example like this:" +"When you are in the middle of something, you learn that there are upstream " +"changes that are possibly relevant to what you are doing. When your local " +"changes do not conflict with the changes in the upstream, a simple `git " +"pull` will let you move forward." +msgstr "" + +#. type: Plain text +#: en/git-stash.txt:219 +msgid "" +"However, there are cases in which your local changes do conflict with the " +"upstream changes, and `git pull` refuses to overwrite your changes. In such " +"a case, you can stash your changes away, perform a pull, and then unstash, " +"like this:" msgstr "" #. type: delimited block - -#: en/git-web--browse.txt:117 +#: en/git-stash.txt:227 #, no-wrap -msgid "$ git config --global web.browser firefox\n" +msgid "" +"$ git pull\n" +" ...\n" +"file foobar not up to date, cannot merge.\n" +"$ git stash\n" +"$ git pull\n" +"$ git stash pop\n" msgstr "" -#. type: Title = -#: en/git-whatchanged.txt:2 +#. type: Plain text +#: en/git-stash.txt:235 +msgid "" +"When you are in the middle of something, your boss comes in and demands that " +"you fix something immediately. Traditionally, you would make a commit to a " +"temporary branch to store your changes away, and return to your original " +"branch to make the emergency fix, like this:" +msgstr "" + +#. type: delimited block - +#: en/git-stash.txt:246 #, no-wrap -msgid "git-whatchanged(1)" +msgid "" +"# ... hack hack hack ...\n" +"$ git checkout -b my_wip\n" +"$ git commit -a -m \"WIP\"\n" +"$ git checkout master\n" +"$ edit emergency fix\n" +"$ git commit -a -m \"Fix in a hurry\"\n" +"$ git checkout my_wip\n" +"$ git reset --soft HEAD^\n" +"# ... continue hacking ...\n" msgstr "" #. type: Plain text -#: en/git-whatchanged.txt:7 -msgid "git-whatchanged - Show logs with difference each commit introduces" +#: en/git-stash.txt:249 +msgid "You can use 'git stash' to simplify the above, like this:" msgstr "" -#. type: Plain text -#: en/git-whatchanged.txt:13 +#. type: delimited block - +#: en/git-stash.txt:257 #, no-wrap -msgid "'git whatchanged' <option>...\n" +msgid "" +"# ... hack hack hack ...\n" +"$ git stash\n" +"$ edit emergency fix\n" +"$ git commit -a -m \"Fix in a hurry\"\n" +"$ git stash pop\n" +"# ... continue hacking ...\n" msgstr "" -#. type: Plain text -#: en/git-whatchanged.txt:18 -msgid "Shows commit logs and diff output each commit introduces." +#. type: Labeled list +#: en/git-stash.txt:259 +#, no-wrap +msgid "Testing partial commits" msgstr "" #. type: Plain text -#: en/git-whatchanged.txt:22 +#: en/git-stash.txt:264 msgid "" -"New users are encouraged to use linkgit:git-log[1] instead. The " -"`whatchanged` command is essentially the same as linkgit:git-log[1] but " -"defaults to show the raw format diff output and to skip merges." +"You can use `git stash push --keep-index` when you want to make two or more " +"commits out of the changes in the work tree, and you want to test each " +"change before committing:" msgstr "" -#. type: Plain text -#: en/git-whatchanged.txt:26 +#. type: delimited block - +#: en/git-stash.txt:275 +#, no-wrap msgid "" -"The command is kept primarily for historical reasons; fingers of many people " -"who learned Git long before `git log` was invented by reading Linux kernel " -"mailing list are trained to type it." +"# ... hack hack hack ...\n" +"$ git add --patch foo # add just first part to the index\n" +"$ git stash push --keep-index # save all other changes to the stash\n" +"$ edit/build/test first part\n" +"$ git commit -m 'First part' # commit fully tested change\n" +"$ git stash pop # prepare to work on all other changes\n" +"# ... repeat above five steps until one commit remains ...\n" +"$ edit/build/test remaining parts\n" +"$ git commit foo -m 'Remaining parts'\n" msgstr "" #. type: Labeled list -#: en/git-whatchanged.txt:30 +#: en/git-stash.txt:277 #, no-wrap -msgid "`git whatchanged -p v2.6.12.. include/scsi drivers/scsi`" +msgid "Recovering stash entries that were cleared/dropped erroneously" msgstr "" #. type: Plain text -#: en/git-whatchanged.txt:34 +#: en/git-stash.txt:283 msgid "" -"Show as patches the commits since version 'v2.6.12' that changed any file in " -"the include/scsi or drivers/scsi subdirectories" +"If you mistakenly drop or clear stash entries, they cannot be recovered " +"through the normal safety mechanisms. However, you can try the following " +"incantation to get a list of stash entries that are still in your " +"repository, but not reachable any more:" msgstr "" -#. type: Labeled list -#: en/git-whatchanged.txt:35 +#. type: delimited block - +#: en/git-stash.txt:288 #, no-wrap -msgid "`git whatchanged --since=\"2 weeks ago\" -- gitk`" +msgid "" +"git fsck --unreachable |\n" +"grep commit | cut -d\\ -f3 |\n" +"xargs git log --merges --no-walk --grep=WIP\n" msgstr "" #. type: Plain text -#: en/git-whatchanged.txt:40 +#: en/git-stash.txt:297 msgid "" -"Show the changes during the last two weeks to the file 'gitk'. The \"--\" " -"is necessary to avoid confusion with the *branch* named 'gitk'" +"linkgit:git-checkout[1], linkgit:git-commit[1], linkgit:git-reflog[1], " +"linkgit:git-reset[1]" msgstr "" #. type: Title = -#: en/git-worktree.txt:2 +#: en/git-status.txt:2 #, no-wrap -msgid "git-worktree(1)" +msgid "git-status(1)" msgstr "" #. type: Plain text -#: en/git-worktree.txt:7 -msgid "git-worktree - Manage multiple working trees" +#: en/git-status.txt:7 +msgid "git-status - Show the working tree status" msgstr "" #. type: Plain text -#: en/git-worktree.txt:17 +#: en/git-status.txt:13 #, no-wrap -msgid "" -"'git worktree add' [-f] [--detach] [--checkout] [-b <new-branch>] <path> " -"[<branch>]\n" -"'git worktree list' [--porcelain]\n" -"'git worktree lock' [--reason <string>] <worktree>\n" -"'git worktree prune' [-n] [-v] [--expire <expire>]\n" -"'git worktree unlock' <worktree>\n" -msgstr "" - -#. type: Plain text -#: en/git-worktree.txt:22 -msgid "Manage multiple working trees attached to the same repository." +msgid "'git status' [<options>...] [--] [<pathspec>...]\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:29 +#: en/git-status.txt:23 msgid "" -"A git repository can support multiple working trees, allowing you to check " -"out more than one branch at a time. With `git worktree add` a new working " -"tree is associated with the repository. This new working tree is called a " -"\"linked working tree\" as opposed to the \"main working tree\" prepared by " -"\"git init\" or \"git clone\". A repository has one main working tree (if " -"it's not a bare repository) and zero or more linked working trees." +"Displays paths that have differences between the index file and the current " +"HEAD commit, paths that have differences between the working tree and the " +"index file, and paths in the working tree that are not tracked by Git (and " +"are not ignored by linkgit:gitignore[5]). The first are what you _would_ " +"commit by running `git commit`; the second and third are what you _could_ " +"commit by running 'git add' before running `git commit`." msgstr "" #. type: Plain text -#: en/git-worktree.txt:36 -msgid "" -"When you are done with a linked working tree you can simply delete it. The " -"working tree's administrative files in the repository (see \"DETAILS\" " -"below) will eventually be removed automatically (see " -"`gc.worktreePruneExpire` in linkgit:git-config[1]), or you can run `git " -"worktree prune` in the main or any linked working tree to clean up any stale " -"administrative files." +#: en/git-status.txt:30 +msgid "Give the output in the short-format." msgstr "" -#. type: Plain text -#: en/git-worktree.txt:40 -msgid "" -"If you move a linked working tree, you need to manually update the " -"administrative files so that they do not get pruned automatically. See " -"section \"DETAILS\" for more information." +#. type: Labeled list +#: en/git-status.txt:35 +#, no-wrap +msgid "--show-stash" msgstr "" #. type: Plain text -#: en/git-worktree.txt:45 -msgid "" -"If a linked working tree is stored on a portable device or network share " -"which is not always mounted, you can prevent its administrative files from " -"being pruned by issuing the `git worktree lock` command, optionally " -"specifying `--reason` to explain why the working tree is locked." +#: en/git-status.txt:37 +msgid "Show the number of entries currently stashed away." msgstr "" #. type: Labeled list -#: en/git-worktree.txt:48 +#: en/git-status.txt:38 #, no-wrap -msgid "add <path> [<branch>]" +msgid "--porcelain[=<version>]" msgstr "" #. type: Plain text -#: en/git-worktree.txt:54 +#: en/git-status.txt:43 msgid "" -"Create `<path>` and checkout `<branch>` into it. The new working directory " -"is linked to the current repository, sharing everything except working " -"directory specific files such as HEAD, index, etc. `-` may also be specified " -"as `<branch>`; it is synonymous with `@{-1}`." +"Give the output in an easy-to-parse format for scripts. This is similar to " +"the short output, but will remain stable across Git versions and regardless " +"of user configuration. See below for details." msgstr "" #. type: Plain text -#: en/git-worktree.txt:58 +#: en/git-status.txt:46 msgid "" -"If `<branch>` is omitted and neither `-b` nor `-B` nor `--detach` used, " -"then, as a convenience, a new branch based at HEAD is created automatically, " -"as if `-b $(basename <path>)` was specified." +"The version parameter is used to specify the format version. This is " +"optional and defaults to the original version 'v1' format." msgstr "" #. type: Plain text -#: en/git-worktree.txt:65 -msgid "" -"List details of each worktree. The main worktree is listed first, followed " -"by each of the linked worktrees. The output details include if the worktree " -"is bare, the revision currently checked out, and the branch currently " -"checked out (or 'detached HEAD' if none)." +#: en/git-status.txt:49 +msgid "Give the output in the long-format. This is the default." msgstr "" -#. type: Labeled list -#: en/git-worktree.txt:66 -#, no-wrap -msgid "lock" +#. type: Plain text +#: en/git-status.txt:57 +msgid "" +"In addition to the names of files that have been changed, also show the " +"textual changes that are staged to be committed (i.e., like the output of " +"`git diff --cached`). If `-v` is specified twice, then also show the changes " +"in the working tree that have not yet been staged (i.e., like the output of " +"`git diff`)." msgstr "" #. type: Plain text -#: en/git-worktree.txt:73 +#: en/git-status.txt:65 msgid "" -"If a working tree is on a portable device or network share which is not " -"always mounted, lock it to prevent its administrative files from being " -"pruned automatically. This also prevents it from being moved or " -"deleted. Optionally, specify a reason for the lock with `--reason`." +"The mode parameter is used to specify the handling of untracked files. It " +"is optional: it defaults to 'all', and if specified, it must be stuck to the " +"option (e.g. `-uno`, but not `-u no`)." msgstr "" #. type: Plain text -#: en/git-worktree.txt:77 -msgid "Prune working tree information in $GIT_DIR/worktrees." +#: en/git-status.txt:69 +#, no-wrap +msgid "'no' - Show no untracked files.\n" msgstr "" -#. type: Labeled list -#: en/git-worktree.txt:78 +#. type: Plain text +#: en/git-status.txt:70 #, no-wrap -msgid "unlock" +msgid "'normal' - Shows untracked files and directories.\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:81 -msgid "Unlock a working tree, allowing it to be pruned, moved or deleted." +#: en/git-status.txt:81 +msgid "" +"When `-u` option is not used, untracked files and directories are shown (i." +"e. the same as specifying `normal`), to help you avoid forgetting to add " +"newly created files. Because it takes extra work to find untracked files in " +"the filesystem, this mode may take some time in a large working tree. " +"Consider enabling untracked cache and split index if supported (see `git " +"update-index --untracked-cache` and `git update-index --split-index`), " +"Otherwise you can use `no` to have `git status` return more quickly without " +"showing untracked files." msgstr "" #. type: Plain text -#: en/git-worktree.txt:90 +#: en/git-status.txt:99 msgid "" -"By default, `add` refuses to create a new working tree when `<branch>` is " -"already checked out by another working tree. This option overrides that " -"safeguard." +"Ignore changes to submodules when looking for changes. <when> can be either " +"\"none\", \"untracked\", \"dirty\" or \"all\", which is the default. Using " +"\"none\" will consider the submodule modified when it either contains " +"untracked or modified files or its HEAD differs from the commit recorded in " +"the superproject and can be used to override any settings of the 'ignore' " +"option in linkgit:git-config[1] or linkgit:gitmodules[5]. When \"untracked\" " +"is used submodules are not considered dirty when they only contain untracked " +"content (but they are still scanned for modified content). Using \"dirty\" " +"ignores all changes to the work tree of submodules, only changes to the " +"commits stored in the superproject are shown (this was the behavior before " +"1.7.0). Using \"all\" hides all changes to submodules (and suppresses the " +"output of submodule summaries when the config option `status." +"submoduleSummary` is set)." msgstr "" #. type: Labeled list -#: en/git-worktree.txt:91 +#: en/git-status.txt:100 #, no-wrap -msgid "-b <new-branch>" +msgid "--ignored[=<mode>]" msgstr "" -#. type: Labeled list -#: en/git-worktree.txt:92 -#, no-wrap -msgid "-B <new-branch>" +#. type: Plain text +#: en/git-status.txt:102 +msgid "Show ignored files as well." msgstr "" #. type: Plain text -#: en/git-worktree.txt:99 +#: en/git-status.txt:105 msgid "" -"With `add`, create a new branch named `<new-branch>` starting at `<branch>`, " -"and check out `<new-branch>` into the new working tree. If `<branch>` is " -"omitted, it defaults to HEAD. By default, `-b` refuses to create a new " -"branch if it already exists. `-B` overrides this safeguard, resetting " -"`<new-branch>` to `<branch>`." +"The mode parameter is used to specify the handling of ignored files. It is " +"optional: it defaults to 'traditional'." +msgstr "" + +#. type: Plain text +#: en/git-status.txt:109 +msgid "'traditional' - Shows ignored files and directories, unless" msgstr "" #. type: Plain text -#: en/git-worktree.txt:103 +#: en/git-status.txt:112 +#, no-wrap msgid "" -"With `add`, detach HEAD in the new working tree. See \"DETACHED HEAD\" in " -"linkgit:git-checkout[1]." +"--untracked-files=all is specified, in which case\n" +"individual files in ignored directories are\n" +"displayed.\n" msgstr "" -#. type: Labeled list -#: en/git-worktree.txt:104 +#. type: Plain text +#: en/git-status.txt:113 #, no-wrap -msgid "--[no-]checkout" +msgid "'no'\t - Show no ignored files.\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:109 -msgid "" -"By default, `add` checks out `<branch>`, however, `--no-checkout` can be " -"used to suppress checkout in order to make customizations, such as " -"configuring sparse-checkout. See \"Sparse checkout\" in " -"linkgit:git-read-tree[1]." +#: en/git-status.txt:114 +#, no-wrap +msgid "'matching' - Shows ignored files and directories matching an\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:114 -msgid "With `prune`, do not remove anything; just report what it would remove." +#: en/git-status.txt:115 +#, no-wrap +msgid "ignore pattern.\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:119 +#: en/git-status.txt:121 msgid "" -"With `list`, output in an easy-to-parse format for scripts. This format " -"will remain stable across Git versions and regardless of user " -"configuration. See below for details." +"When 'matching' mode is specified, paths that explicitly match an ignored " +"pattern are shown. If a directory matches an ignore pattern, then it is " +"shown, but not paths contained in the ignored directory. If a directory does " +"not match an ignore pattern, but all contents are ignored, then the " +"directory is not shown, but all contents are shown." msgstr "" #. type: Plain text -#: en/git-worktree.txt:123 -msgid "With `prune`, report all removals." +#: en/git-status.txt:125 +msgid "" +"Terminate entries with NUL, instead of LF. This implies the `--" +"porcelain=v1` output format if no other format is given." msgstr "" #. type: Plain text -#: en/git-worktree.txt:126 -msgid "With `prune`, only expire unused working trees older than <time>." +#: en/git-status.txt:132 +msgid "" +"Display untracked files in columns. See configuration variable column.status " +"for option syntax.`--column` and `--no-column` without options are " +"equivalent to 'always' and 'never' respectively." msgstr "" #. type: Labeled list -#: en/git-worktree.txt:127 +#: en/git-status.txt:133 #, no-wrap -msgid "--reason <string>" +msgid "--ahead-behind" +msgstr "" + +#. type: Labeled list +#: en/git-status.txt:134 +#, no-wrap +msgid "--no-ahead-behind" msgstr "" #. type: Plain text -#: en/git-worktree.txt:129 -msgid "With `lock`, an explanation why the working tree is locked." +#: en/git-status.txt:137 +msgid "" +"Display or do not display detailed ahead/behind counts for the branch " +"relative to its upstream branch. Defaults to true." msgstr "" #. type: Labeled list -#: en/git-worktree.txt:130 +#: en/git-status.txt:138 #, no-wrap -msgid "<worktree>" +msgid "--renames" msgstr "" #. type: Plain text -#: en/git-worktree.txt:133 -msgid "Working trees can be identified by path, either relative or absolute." +#: en/git-status.txt:142 +msgid "" +"Turn on/off rename detection regardless of user configuration. See also " +"linkgit:git-diff[1] `--no-renames`." msgstr "" #. type: Plain text -#: en/git-worktree.txt:138 +#: en/git-status.txt:147 msgid "" -"If the last path components in the working tree's path is unique among " -"working trees, it can be used to identify worktrees. For example if you only " -"have two working trees, at \"/abc/def/ghi\" and \"/abc/def/ggg\", then " -"\"ghi\" or \"def/ghi\" is enough to point to the former working tree." +"Turn on rename detection, optionally setting the similarity threshold. See " +"also linkgit:git-diff[1] `--find-renames`." msgstr "" -#. type: Title - -#: en/git-worktree.txt:140 -#, no-wrap -msgid "DETAILS" +#. type: Plain text +#: en/git-status.txt:150 +msgid "See the 'pathspec' entry in linkgit:gitglossary[7]." msgstr "" #. type: Plain text -#: en/git-worktree.txt:149 +#: en/git-status.txt:158 msgid "" -"Each linked working tree has a private sub-directory in the repository's " -"$GIT_DIR/worktrees directory. The private sub-directory's name is usually " -"the base name of the linked working tree's path, possibly appended with a " -"number to make it unique. For example, when `$GIT_DIR=/path/main/.git` the " -"command `git worktree add /path/other/test-next next` creates the linked " -"working tree in `/path/other/test-next` and also creates a " -"`$GIT_DIR/worktrees/test-next` directory (or `$GIT_DIR/worktrees/test-next1` " -"if `test-next` is already taken)." +"The output from this command is designed to be used as a commit template " +"comment. The default, long format, is designed to be human readable, " +"verbose and descriptive. Its contents and format are subject to change at " +"any time." msgstr "" #. type: Plain text -#: en/git-worktree.txt:155 +#: en/git-status.txt:163 msgid "" -"Within a linked working tree, $GIT_DIR is set to point to this private " -"directory (e.g. `/path/main/.git/worktrees/test-next` in the example) and " -"$GIT_COMMON_DIR is set to point back to the main working tree's $GIT_DIR " -"(e.g. `/path/main/.git`). These settings are made in a `.git` file located " -"at the top directory of the linked working tree." +"The paths mentioned in the output, unlike many other Git commands, are made " +"relative to the current directory if you are working in a subdirectory (this " +"is on purpose, to help cutting and pasting). See the status.relativePaths " +"config option below." +msgstr "" + +#. type: Title ~ +#: en/git-status.txt:165 +#, no-wrap +msgid "Short Format" msgstr "" #. type: Plain text -#: en/git-worktree.txt:164 +#: en/git-status.txt:169 msgid "" -"Path resolution via `git rev-parse --git-path` uses either $GIT_DIR or " -"$GIT_COMMON_DIR depending on the path. For example, in the linked working " -"tree `git rev-parse --git-path HEAD` returns " -"`/path/main/.git/worktrees/test-next/HEAD` (not " -"`/path/other/test-next/.git/HEAD` or `/path/main/.git/HEAD`) while `git " -"rev-parse --git-path refs/heads/master` uses $GIT_COMMON_DIR and returns " -"`/path/main/.git/refs/heads/master`, since refs are shared across all " -"working trees." +"In the short-format, the status of each path is shown as one of these forms" msgstr "" #. type: Plain text -#: en/git-worktree.txt:169 +#: en/git-status.txt:172 +#, no-wrap msgid "" -"See linkgit:gitrepository-layout[5] for more information. The rule of thumb " -"is do not make any assumption about whether a path belongs to $GIT_DIR or " -"$GIT_COMMON_DIR when you need to directly access something inside " -"$GIT_DIR. Use `git rev-parse --git-path` to get the final path." +"\tXY PATH\n" +"\tXY ORIG_PATH -> PATH\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:176 +#: en/git-status.txt:176 msgid "" -"If you move a linked working tree, you need to update the 'gitdir' file in " -"the entry's directory. For example, if a linked working tree is moved to " -"`/newpath/test-next` and its `.git` file points to " -"`/path/main/.git/worktrees/test-next`, then update " -"`/path/main/.git/worktrees/test-next/gitdir` to reference " -"`/newpath/test-next` instead." +"where `ORIG_PATH` is where the renamed/copied contents came from. " +"`ORIG_PATH` is only shown when the entry is renamed or copied. The `XY` is a " +"two-letter status code." msgstr "" #. type: Plain text -#: en/git-worktree.txt:187 +#: en/git-status.txt:182 msgid "" -"To prevent a $GIT_DIR/worktrees entry from being pruned (which can be useful " -"in some situations, such as when the entry's working tree is stored on a " -"portable device), use the `git worktree lock` command, which adds a file " -"named 'locked' to the entry's directory. The file contains the reason in " -"plain text. For example, if a linked working tree's `.git` file points to " -"`/path/main/.git/worktrees/test-next` then a file named " -"`/path/main/.git/worktrees/test-next/locked` will prevent the `test-next` " -"entry from being pruned. See linkgit:gitrepository-layout[5] for details." +"The fields (including the `->`) are separated from each other by a single " +"space. If a filename contains whitespace or other nonprintable characters, " +"that field will be quoted in the manner of a C string literal: surrounded by " +"ASCII double quote (34) characters, and with interior special characters " +"backslash-escaped." msgstr "" -#. type: Title - -#: en/git-worktree.txt:189 -#, no-wrap -msgid "LIST OUTPUT FORMAT" +#. type: Plain text +#: en/git-status.txt:188 +msgid "" +"For paths with merge conflicts, `X` and `Y` show the modification states of " +"each side of the merge. For paths that do not have merge conflicts, `X` " +"shows the status of the index, and `Y` shows the status of the work tree. " +"For untracked paths, `XY` are `??`. Other status codes can be interpreted " +"as follows:" msgstr "" #. type: Plain text -#: en/git-worktree.txt:192 -msgid "" -"The worktree list command has two output formats. The default format shows " -"the details on a single line with columns. For example:" +#: en/git-status.txt:190 +msgid "' ' = unmodified" msgstr "" -#. type: delimited block - -#: en/git-worktree.txt:198 -#, no-wrap -msgid "" -"S git worktree list\n" -"/path/to/bare-source (bare)\n" -"/path/to/linked-worktree abcd1234 [master]\n" -"/path/to/other-linked-worktree 1234abc (detached HEAD)\n" +#. type: Plain text +#: en/git-status.txt:191 +msgid "'M' = modified" msgstr "" -#. type: Title ~ -#: en/git-worktree.txt:201 -#, no-wrap -msgid "Porcelain Format" +#. type: Plain text +#: en/git-status.txt:192 +msgid "'A' = added" msgstr "" #. type: Plain text -#: en/git-worktree.txt:207 -msgid "" -"The porcelain format has a line per attribute. Attributes are listed with a " -"label and value separated by a single space. Boolean attributes (like " -"'bare' and 'detached') are listed as a label only, and are only present if " -"and only if the value is true. An empty line indicates the end of a " -"worktree. For example:" +#: en/git-status.txt:193 +msgid "'D' = deleted" msgstr "" -#. type: delimited block - -#: en/git-worktree.txt:212 -#, no-wrap -msgid "" -"S git worktree list --porcelain\n" -"worktree /path/to/bare-source\n" -"bare\n" +#. type: Plain text +#: en/git-status.txt:194 +msgid "'R' = renamed" msgstr "" -#. type: delimited block - -#: en/git-worktree.txt:216 -#, no-wrap -msgid "" -"worktree /path/to/linked-worktree\n" -"HEAD abcd1234abcd1234abcd1234abcd1234abcd1234\n" -"branch refs/heads/master\n" +#. type: Plain text +#: en/git-status.txt:195 +msgid "'C' = copied" msgstr "" -#. type: delimited block - -#: en/git-worktree.txt:220 -#, no-wrap -msgid "" -"worktree /path/to/other-linked-worktree\n" -"HEAD 1234abc1234abc1234abc1234abc1234abc1234a\n" -"detached\n" +#. type: Plain text +#: en/git-status.txt:196 +msgid "'U' = updated but unmerged" msgstr "" #. type: Plain text -#: en/git-worktree.txt:233 +#: en/git-status.txt:199 msgid "" -"You are in the middle of a refactoring session and your boss comes in and " -"demands that you fix something immediately. You might typically use " -"linkgit:git-stash[1] to store your changes away temporarily, however, your " -"working tree is in such a state of disarray (with new, moved, and removed " -"files, and other bits and pieces strewn around) that you don't want to risk " -"disturbing any of it. Instead, you create a temporary linked working tree to " -"make the emergency fix, remove it when done, and then resume your earlier " -"refactoring session." +"Ignored files are not listed, unless `--ignored` option is in effect, in " +"which case `XY` are `!!`." msgstr "" -#. type: delimited block - -#: en/git-worktree.txt:242 +#. type: delimited block . +#: en/git-status.txt:226 #, no-wrap msgid "" -"$ git worktree add -b emergency-fix ../temp master\n" -"$ pushd ../temp\n" -"# ... hack hack hack ...\n" -"$ git commit -a -m 'emergency fix for boss'\n" -"$ popd\n" -"$ rm -rf ../temp\n" -"$ git worktree prune\n" +"X Y Meaning\n" +"-------------------------------------------------\n" +"\t [AMD] not updated\n" +"M [ MD] updated in index\n" +"A [ MD] added to index\n" +"D deleted from index\n" +"R [ MD] renamed in index\n" +"C [ MD] copied in index\n" +"[MARC] index and work tree matches\n" +"[ MARC] M work tree changed since index\n" +"[ MARC] D deleted in work tree\n" +"[ D] R renamed in work tree\n" +"[ D] C copied in work tree\n" +"-------------------------------------------------\n" +"D D unmerged, both deleted\n" +"A U unmerged, added by us\n" +"U D unmerged, deleted by them\n" +"U A unmerged, added by them\n" +"D U unmerged, deleted by us\n" +"A A unmerged, both added\n" +"U U unmerged, both modified\n" +"-------------------------------------------------\n" +"? ? untracked\n" +"! ! ignored\n" +"-------------------------------------------------\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:249 +#: en/git-status.txt:235 +#, no-wrap msgid "" -"Multiple checkout in general is still experimental, and the support for " -"submodules is incomplete. It is NOT recommended to make multiple checkouts " -"of a superproject." +"Submodules have more state and instead report\n" +"\t\tM the submodule has a different HEAD than\n" +"\t\t recorded in the index\n" +"\t\tm the submodule has modified content\n" +"\t\t? the submodule has untracked files\n" +"since modified content or untracked files in a submodule cannot be added\n" +"via `git add` in the superproject to prepare a commit.\n" msgstr "" #. type: Plain text -#: en/git-worktree.txt:252 +#: en/git-status.txt:238 msgid "" -"git-worktree could provide more automation for tasks currently performed " -"manually, such as:" +"'m' and '?' are applied recursively. For example if a nested submodule in a " +"submodule contains an untracked file, this is reported as '?' as well." msgstr "" #. type: Plain text -#: en/git-worktree.txt:255 -msgid "" -"`remove` to remove a linked working tree and its administrative files (and " -"warn if the working tree is dirty)" +#: en/git-status.txt:240 +msgid "If -b is used the short-format status is preceded by a line" msgstr "" #. type: Plain text -#: en/git-worktree.txt:256 -msgid "`mv` to move or rename a working tree and update its administrative files" +#: en/git-status.txt:242 +#, no-wrap +msgid " ## branchname tracking info\n" msgstr "" -#. type: Title = -#: en/git-write-tree.txt:2 +#. type: Title ~ +#: en/git-status.txt:244 #, no-wrap -msgid "git-write-tree(1)" +msgid "Porcelain Format Version 1" msgstr "" #. type: Plain text -#: en/git-write-tree.txt:7 -msgid "git-write-tree - Create a tree object from the current index" +#: en/git-status.txt:251 +msgid "" +"Version 1 porcelain format is similar to the short format, but is guaranteed " +"not to change in a backwards-incompatible way between Git versions or based " +"on user configuration. This makes it ideal for parsing by scripts. The " +"description of the short format above also describes the porcelain format, " +"with a few exceptions:" msgstr "" #. type: Plain text -#: en/git-write-tree.txt:13 -#, no-wrap -msgid "'git write-tree' [--missing-ok] [--prefix=<prefix>/]\n" +#: en/git-status.txt:254 +msgid "" +"The user's color.status configuration is not respected; color will always be " +"off." msgstr "" #. type: Plain text -#: en/git-write-tree.txt:18 +#: en/git-status.txt:257 msgid "" -"Creates a tree object using the current index. The name of the new tree " -"object is printed to standard output." +"The user's status.relativePaths configuration is not respected; paths shown " +"will always be relative to the repository root." msgstr "" #. type: Plain text -#: en/git-write-tree.txt:20 -msgid "The index must be in a fully merged state." +#: en/git-status.txt:267 +msgid "" +"There is also an alternate -z format recommended for machine parsing. In " +"that format, the status field is the same, but some other things change. " +"First, the '\\->' is omitted from rename entries and the field order is " +"reversed (e.g 'from \\-> to' becomes 'to from'). Second, a NUL (ASCII 0) " +"follows each filename, replacing space as a field separator and the " +"terminating newline (but a space still separates the status field from the " +"first filename). Third, filenames containing special characters are not " +"specially formatted; no quoting or backslash-escaping is performed." msgstr "" #. type: Plain text -#: en/git-write-tree.txt:26 +#: en/git-status.txt:269 msgid "" -"Conceptually, 'git write-tree' sync()s the current index contents into a set " -"of tree files. In order to have that match what is actually in your " -"directory right now, you need to have done a 'git update-index' phase before " -"you did the 'git write-tree'." +"Any submodule changes are reported as modified `M` instead of `m` or single " +"`?`." msgstr "" -#. type: Labeled list -#: en/git-write-tree.txt:30 +#. type: Title ~ +#: en/git-status.txt:271 #, no-wrap -msgid "--missing-ok" +msgid "Porcelain Format Version 2" msgstr "" #. type: Plain text -#: en/git-write-tree.txt:34 +#: en/git-status.txt:276 msgid "" -"Normally 'git write-tree' ensures that the objects referenced by the " -"directory exist in the object database. This option disables this check." +"Version 2 format adds more detailed information about the state of the " +"worktree and changed items. Version 2 also defines an extensible set of " +"easy to parse optional headers." msgstr "" #. type: Plain text -#: en/git-write-tree.txt:39 +#: en/git-status.txt:280 msgid "" -"Writes a tree object that represents a subdirectory `<prefix>`. This can be " -"used to write the tree object for a subproject that is in the named " -"subdirectory." +"Header lines start with \"#\" and are added in response to specific command " +"line arguments. Parsers should ignore headers they don't recognize." msgstr "" #. type: Plain text -#: en/blame-options.txt:4 -msgid "" -"Show blank SHA-1 for boundary commits. This can also be controlled via the " -"`blame.blankboundary` config option." +#: en/git-status.txt:282 +msgid "### Branch Headers" msgstr "" #. type: Plain text -#: en/blame-options.txt:8 +#: en/git-status.txt:285 msgid "" -"Do not treat root commits as boundaries. This can also be controlled via " -"the `blame.showRoot` config option." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:9 -#, no-wrap -msgid "--show-stats" -msgstr "" - -#. type: Plain text -#: en/blame-options.txt:11 -msgid "Include additional statistics at the end of blame output." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:12 -#, no-wrap -msgid "-L <start>,<end>" +"If `--branch` is given, a series of header lines are printed with " +"information about the current branch." msgstr "" -#. type: Labeled list -#: en/blame-options.txt:13 +#. type: delimited block . +#: en/git-status.txt:295 #, no-wrap -msgid "-L :<funcname>" +msgid "" +"Line Notes\n" +"------------------------------------------------------------\n" +"# branch.oid <commit> | (initial) Current commit.\n" +"# branch.head <branch> | (detached) Current branch.\n" +"# branch.upstream <upstream_branch> If upstream is set.\n" +"# branch.ab +<ahead> -<behind> If upstream is set and\n" +"\t\t\t\t\t the commit is present.\n" +"------------------------------------------------------------\n" msgstr "" #. type: Plain text -#: en/blame-options.txt:16 -msgid "" -"Annotate only the given line range. May be specified multiple times. " -"Overlapping ranges are allowed." +#: en/git-status.txt:298 +msgid "### Changed Tracked Entries" msgstr "" #. type: Plain text -#: en/blame-options.txt:19 +#: en/git-status.txt:304 msgid "" -"<start> and <end> are optional. ``-L <start>'' or ``-L <start>,'' spans from " -"<start> to end of file. ``-L ,<end>'' spans from start of file to <end>." +"Following the headers, a series of lines are printed for tracked entries. " +"One of three different line formats may be used to describe an entry " +"depending on the type of change. Tracked entries are printed in an " +"undefined order; parsers should allow for a mixture of the 3 line types in " +"any order." msgstr "" #. type: Plain text -#: en/blame-options.txt:24 -msgid "Show long rev (Default: off)." +#: en/git-status.txt:306 +msgid "Ordinary changed entries have the following format:" msgstr "" #. type: Plain text -#: en/blame-options.txt:27 -msgid "Show raw timestamp (Default: off)." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:28 +#: en/git-status.txt:308 #, no-wrap -msgid "-S <revs-file>" +msgid " 1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path>\n" msgstr "" #. type: Plain text -#: en/blame-options.txt:30 -msgid "Use revisions from revs-file instead of calling linkgit:git-rev-list[1]." +#: en/git-status.txt:310 +msgid "Renamed or copied entries have the following format:" msgstr "" -#. type: Labeled list -#: en/blame-options.txt:31 +#. type: Plain text +#: en/git-status.txt:312 #, no-wrap -msgid "--reverse <rev>..<rev>" +msgid " 2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath>\n" msgstr "" -#. type: Plain text -#: en/blame-options.txt:38 +#. type: delimited block . +#: en/git-status.txt:343 +#, no-wrap +msgid "" +"Field Meaning\n" +"--------------------------------------------------------\n" +"<XY> A 2 character field containing the staged and\n" +"\t unstaged XY values described in the short format,\n" +"\t with unchanged indicated by a \".\" rather than\n" +"\t a space.\n" +"<sub> A 4 character field describing the submodule state.\n" +"\t \"N...\" when the entry is not a submodule.\n" +"\t \"S<c><m><u>\" when the entry is a submodule.\n" +"\t <c> is \"C\" if the commit changed; otherwise \".\".\n" +"\t <m> is \"M\" if it has tracked changes; otherwise \".\".\n" +"\t <u> is \"U\" if there are untracked changes; otherwise \".\".\n" +"<mH> The octal file mode in HEAD.\n" +"<mI> The octal file mode in the index.\n" +"<mW> The octal file mode in the worktree.\n" +"<hH> The object name in HEAD.\n" +"<hI> The object name in the index.\n" +"<X><score> The rename or copy score (denoting the percentage\n" +"\t of similarity between the source and target of the\n" +"\t move or copy). For example \"R100\" or \"C75\".\n" +"<path> The pathname. In a renamed/copied entry, this\n" +"\t is the target path.\n" +"<sep> When the `-z` option is used, the 2 pathnames are separated\n" +"\t with a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09)\n" +"\t byte separates them.\n" +"<origPath> The pathname in the commit at HEAD or in the index.\n" +"\t This is only present in a renamed/copied entry, and\n" +"\t tells where the renamed/copied contents came from.\n" +"--------------------------------------------------------\n" +msgstr "" + +#. type: Plain text +#: en/git-status.txt:347 msgid "" -"Walk history forward instead of backward. Instead of showing the revision in " -"which a line appeared, this shows the last revision in which a line has " -"existed. This requires a range of revision like START..END where the path to " -"blame exists in START. `git blame --reverse START` is taken as `git blame " -"--reverse START..HEAD` for convenience." +"Unmerged entries have the following format; the first character is a \"u\" " +"to distinguish from ordinary changed entries." msgstr "" #. type: Plain text -#: en/blame-options.txt:42 -msgid "Show in a format designed for machine consumption." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:43 +#: en/git-status.txt:349 #, no-wrap -msgid "--line-porcelain" +msgid " u <xy> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path>\n" msgstr "" -#. type: Plain text -#: en/blame-options.txt:47 +#. type: delimited block . +#: en/git-status.txt:366 +#, no-wrap msgid "" -"Show the porcelain format, but output commit information for each line, not " -"just the first time a commit is referenced. Implies --porcelain." +"Field Meaning\n" +"--------------------------------------------------------\n" +"<XY> A 2 character field describing the conflict type\n" +"\t as described in the short format.\n" +"<sub> A 4 character field describing the submodule state\n" +"\t as described above.\n" +"<m1> The octal file mode in stage 1.\n" +"<m2> The octal file mode in stage 2.\n" +"<m3> The octal file mode in stage 3.\n" +"<mW> The octal file mode in the worktree.\n" +"<h1> The object name in stage 1.\n" +"<h2> The object name in stage 2.\n" +"<h3> The object name in stage 3.\n" +"<path> The pathname.\n" +"--------------------------------------------------------\n" msgstr "" #. type: Plain text -#: en/blame-options.txt:51 -msgid "Show the result incrementally in a format designed for machine consumption." +#: en/git-status.txt:369 +msgid "### Other Items" msgstr "" #. type: Plain text -#: en/blame-options.txt:58 +#: en/git-status.txt:373 msgid "" -"Specifies the encoding used to output author names and commit " -"summaries. Setting it to `none` makes blame output unconverted data. For " -"more information see the discussion about encoding in the linkgit:git-log[1] " -"manual page." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:59 -#, no-wrap -msgid "--contents <file>" +"Following the tracked entries (and if requested), a series of lines will be " +"printed for untracked and then ignored items found in the worktree." msgstr "" #. type: Plain text -#: en/blame-options.txt:65 -msgid "" -"When <rev> is not specified, the command annotates the changes starting " -"backwards from the working tree copy. This flag makes the command pretend " -"as if the working tree copy has the contents of the named file (specify `-` " -"to make the command read from the standard input)." +#: en/git-status.txt:375 +msgid "Untracked items have the following format:" msgstr "" -#. type: Labeled list -#: en/blame-options.txt:66 +#. type: Plain text +#: en/git-status.txt:377 #, no-wrap -msgid "--date <format>" +msgid " ? <path>\n" msgstr "" #. type: Plain text -#: en/blame-options.txt:72 -msgid "" -"Specifies the format used to output dates. If --date is not provided, the " -"value of the blame.date config variable is used. If the blame.date config " -"variable is also not set, the iso format is used. For supported values, see " -"the discussion of the --date option at linkgit:git-log[1]." +#: en/git-status.txt:379 +msgid "Ignored items have the following format:" msgstr "" #. type: Plain text -#: en/blame-options.txt:79 -msgid "" -"Progress status is reported on the standard error stream by default when it " -"is attached to a terminal. This flag enables progress reporting even if not " -"attached to a terminal. Can't use `--progress` together with `--porcelain` " -"or `--incremental`." -msgstr "" - -#. type: Labeled list -#: en/blame-options.txt:80 +#: en/git-status.txt:381 #, no-wrap -msgid "-M[<num>]" +msgid " ! <path>\n" msgstr "" #. type: Plain text -#: en/blame-options.txt:90 -msgid "" -"Detect moved or copied lines within a file. When a commit moves or copies a " -"block of lines (e.g. the original file has A and then B, and the commit " -"changes it to B and then A), the traditional 'blame' algorithm notices only " -"half of the movement and typically blames the lines that were moved up " -"(i.e. B) to the parent and assigns blame to the lines that were moved down " -"(i.e. A) to the child commit. With this option, both groups of lines are " -"blamed on the parent by running extra passes of inspection." +#: en/git-status.txt:383 +msgid "### Pathname Format Notes and -z" msgstr "" #. type: Plain text -#: en/blame-options.txt:95 +#: en/git-status.txt:387 msgid "" -"<num> is optional but it is the lower bound on the number of alphanumeric " -"characters that Git must detect as moving/copying within a file for it to " -"associate those lines with the parent commit. The default value is 20." +"When the `-z` option is given, pathnames are printed as is and without any " +"quoting and lines are terminated with a NUL (ASCII 0x00) byte." msgstr "" -#. type: Labeled list -#: en/blame-options.txt:96 -#, no-wrap -msgid "-C[<num>]" +#. type: Plain text +#: en/git-status.txt:391 +msgid "" +"Without the `-z` option, pathnames with \"unusual\" characters are quoted as " +"explained for the configuration variable `core.quotePath` (see linkgit:git-" +"config[1])." msgstr "" #. type: Plain text -#: en/blame-options.txt:105 +#: en/git-status.txt:400 msgid "" -"In addition to `-M`, detect lines moved or copied from other files that were " -"modified in the same commit. This is useful when you reorganize your " -"program and move code around across files. When this option is given twice, " -"the command additionally looks for copies from other files in the commit " -"that creates the file. When this option is given three times, the command " -"additionally looks for copies from other files in any commit." +"The command honors `color.status` (or `status.color` -- they mean the same " +"thing and the latter is kept for backward compatibility) and `color.status." +"<slot>` configuration variables to colorize its output." msgstr "" #. type: Plain text -#: en/blame-options.txt:112 +#: en/git-status.txt:404 msgid "" -"<num> is optional but it is the lower bound on the number of alphanumeric " -"characters that Git must detect as moving/copying between files for it to " -"associate those lines with the parent commit. And the default value is " -"40. If there are more than one `-C` options given, the <num> argument of the " -"last `-C` will take effect." +"If the config variable `status.relativePaths` is set to false, then all " +"paths shown are relative to the repository root, not to the current " +"directory." msgstr "" #. type: Plain text -#: en/blame-options.txt:114 -msgid "Show help message." +#: en/git-status.txt:415 +msgid "" +"If `status.submoduleSummary` is set to a non zero number or true (identical " +"to -1 or an unlimited number), the submodule summary will be enabled for the " +"long format and a summary of commits for modified submodules will be shown " +"(see --summary-limit option of linkgit:git-submodule[1]). Please note that " +"the summary output from the status command will be suppressed for all " +"submodules when `diff.ignoreSubmodules` is set to 'all' or only for those " +"submodules where `submodule.<name>.ignore=all`. To also view the summary for " +"ignored submodules you can either use the --ignore-submodules=dirty command " +"line option or the 'git submodule summary' command, which shows a similar " +"output but does not honor these settings." msgstr "" #. type: Title - -#: en/config.txt:2 +#: en/git-status.txt:417 #, no-wrap -msgid "CONFIGURATION FILE" -msgstr "" - -#. type: Plain text -#: en/config.txt:10 -msgid "" -"The Git configuration file contains a number of variables that affect the " -"Git commands' behavior. The `.git/config` file in each repository is used to " -"store the configuration for that repository, and `$HOME/.gitconfig` is used " -"to store a per-user configuration as fallback values for the `.git/config` " -"file. The file `/etc/gitconfig` can be used to store a system-wide default " -"configuration." +msgid "BACKGROUND REFRESH" msgstr "" #. type: Plain text -#: en/config.txt:19 +#: en/git-status.txt:428 msgid "" -"The configuration variables are used by both the Git plumbing and the " -"porcelains. The variables are divided into sections, wherein the fully " -"qualified variable name of the variable itself is the last dot-separated " -"segment and the section name is everything before the last dot. The variable " -"names are case-insensitive, allow only alphanumeric characters and `-`, and " -"must start with an alphabetic character. Some variables may appear multiple " -"times; we say then that the variable is multivalued." +"By default, `git status` will automatically refresh the index, updating the " +"cached stat information from the working tree and writing out the result. " +"Writing out the updated index is an optimization that isn't strictly " +"necessary (`status` computes the values for itself, but writing them out is " +"just to save subsequent programs from repeating our computation). When " +"`status` is run in the background, the lock held during the write may " +"conflict with other simultaneous processes, causing them to fail. Scripts " +"running `status` in the background should consider using `git --no-optional-" +"locks status` (see linkgit:git[1] for details)." msgstr "" -#. type: Title ~ -#: en/config.txt:21 +#. type: Title = +#: en/git-stripspace.txt:2 #, no-wrap -msgid "Syntax" +msgid "git-stripspace(1)" msgstr "" #. type: Plain text -#: en/config.txt:26 -msgid "" -"The syntax is fairly flexible and permissive; whitespaces are mostly " -"ignored. The '#' and ';' characters begin comments to the end of line, " -"blank lines are ignored." +#: en/git-stripspace.txt:7 +msgid "git-stripspace - Remove unnecessary whitespace" msgstr "" #. type: Plain text -#: en/config.txt:33 +#: en/git-stripspace.txt:14 +#, no-wrap msgid "" -"The file consists of sections and variables. A section begins with the name " -"of the section in square brackets and continues until the next section " -"begins. Section names are case-insensitive. Only alphanumeric characters, " -"`-` and `.` are allowed in section names. Each variable must belong to some " -"section, which means that there must be a section header before the first " -"setting of a variable." +"'git stripspace' [-s | --strip-comments]\n" +"'git stripspace' [-c | --comment-lines]\n" msgstr "" #. type: Plain text -#: en/config.txt:37 +#: en/git-stripspace.txt:21 msgid "" -"Sections can be further divided into subsections. To begin a subsection put " -"its name in double quotes, separated by space from the section name, in the " -"section header, like in the example below:" +"Read text, such as commit messages, notes, tags and branch descriptions, " +"from the standard input and clean it in the manner used by Git." msgstr "" -#. type: delimited block - -#: en/config.txt:40 -#, no-wrap -msgid "\t[section \"subsection\"]\n" +#. type: Plain text +#: en/git-stripspace.txt:23 +msgid "With no arguments, this will:" msgstr "" #. type: Plain text -#: en/config.txt:49 -msgid "" -"Subsection names are case sensitive and can contain any characters except " -"newline (doublequote `\"` and backslash can be included by escaping them as " -"`\\\"` and `\\\\`, respectively). Section headers cannot span multiple " -"lines. Variables may belong directly to a section or to a given " -"subsection. You can have `[section]` if you have `[section " -"\"subsection\"]`, but you don't need to." +#: en/git-stripspace.txt:25 +msgid "remove trailing whitespace from all lines" msgstr "" #. type: Plain text -#: en/config.txt:54 -msgid "" -"There is also a deprecated `[section.subsection]` syntax. With this syntax, " -"the subsection name is converted to lower-case and is also compared case " -"sensitively. These subsection names follow the same restrictions as section " -"names." +#: en/git-stripspace.txt:26 +msgid "collapse multiple consecutive empty lines into one empty line" msgstr "" #. type: Plain text -#: en/config.txt:61 -msgid "" -"All the other lines (and the remainder of the line after the section header) " -"are recognized as setting variables, in the form 'name = value' (or just " -"'name', which is a short-hand to say that the variable is the boolean " -"\"true\"). The variable names are case-insensitive, allow only alphanumeric " -"characters and `-`, and must start with an alphabetic character." +#: en/git-stripspace.txt:27 +msgid "remove empty lines from the beginning and end of the input" msgstr "" #. type: Plain text -#: en/config.txt:69 -msgid "" -"A line that defines a value can be continued to the next line by ending it " -"with a `\\`; the backquote and the end-of-line are stripped. Leading " -"whitespaces after 'name =', the remainder of the line after the first " -"comment character '#' or ';', and trailing whitespaces of the line are " -"discarded unless they are enclosed in double quotes. Internal whitespaces " -"within the value are retained verbatim." +#: en/git-stripspace.txt:28 +msgid "add a missing '\\n' to the last line if necessary." msgstr "" #. type: Plain text -#: en/config.txt:72 +#: en/git-stripspace.txt:31 msgid "" -"Inside double quotes, double quote `\"` and backslash `\\` characters must " -"be escaped: use `\\\"` for `\"` and `\\\\` for `\\`." +"In the case where the input consists entirely of whitespace characters, no " +"output will be produced." msgstr "" #. type: Plain text -#: en/config.txt:77 +#: en/git-stripspace.txt:35 +#, no-wrap msgid "" -"The following escape sequences (beside `\\\"` and `\\\\`) are recognized: " -"`\\n` for newline character (NL), `\\t` for horizontal tabulation (HT, TAB) " -"and `\\b` for backspace (BS). Other char escape sequences (including octal " -"escape sequences) are invalid." +"*NOTE*: This is intended for cleaning metadata, prefer the `--whitespace=fix`\n" +"mode of linkgit:git-apply[1] for correcting whitespace of patches or files in\n" +"the repository.\n" msgstr "" -#. type: Title ~ -#: en/config.txt:80 +#. type: Labeled list +#: en/git-stripspace.txt:39 #, no-wrap -msgid "Includes" -msgstr "" - -#. type: Plain text -#: en/config.txt:86 -msgid "" -"You can include a config file from another by setting the special " -"`include.path` variable to the name of the file to be included. The variable " -"takes a pathname as its value, and is subject to tilde " -"expansion. `include.path` can be given multiple times." +msgid "--strip-comments" msgstr "" #. type: Plain text -#: en/config.txt:92 +#: en/git-stripspace.txt:41 msgid "" -"The included file is expanded immediately, as if its contents had been found " -"at the location of the include directive. If the value of the `include.path` " -"variable is a relative path, the path is considered to be relative to the " -"configuration file in which the include directive was found. See below for " -"examples." +"Skip and remove all lines starting with comment character (default '#')." msgstr "" -#. type: Title ~ -#: en/config.txt:94 +#. type: Labeled list +#: en/git-stripspace.txt:43 #, no-wrap -msgid "Conditional includes" +msgid "--comment-lines" msgstr "" #. type: Plain text -#: en/config.txt:100 +#: en/git-stripspace.txt:47 msgid "" -"You can include a config file from another conditionally by setting a " -"`includeIf.<condition>.path` variable to the name of the file to be " -"included. The variable's value is treated the same way as " -"`include.path`. `includeIf.<condition>.path` can be given multiple times." +"Prepend comment character and blank to each line. Lines will automatically " +"be terminated with a newline. On empty lines, only the comment character " +"will be prepended." msgstr "" #. type: Plain text -#: en/config.txt:104 -msgid "" -"The condition starts with a keyword followed by a colon and some data whose " -"format and meaning depends on the keyword. Supported keywords are:" +#: en/git-stripspace.txt:52 +msgid "Given the following noisy input with '$' indicating the end of a line:" msgstr "" -#. type: Labeled list -#: en/config.txt:105 +#. type: delimited block - +#: en/git-stripspace.txt:65 #, no-wrap -msgid "`gitdir`" -msgstr "" - -#. type: Plain text -#: en/config.txt:110 msgid "" -"The data that follows the keyword `gitdir:` is used as a glob pattern. If " -"the location of the .git directory matches the pattern, the include " -"condition is met." +"|A brief introduction $\n" +"| $\n" +"|$\n" +"|A new paragraph$\n" +"|# with a commented-out line $\n" +"|explaining lots of stuff.$\n" +"|$\n" +"|# An old paragraph, also commented-out. $\n" +"| $\n" +"|The end.$\n" +"| $\n" msgstr "" #. type: Plain text -#: en/config.txt:115 -msgid "" -"The .git location may be auto-discovered, or come from `$GIT_DIR` " -"environment variable. If the repository is auto discovered via a .git file " -"(e.g. from submodules, or a linked worktree), the .git location would be the " -"final location where the .git directory is, not where the" +#: en/git-stripspace.txt:68 +msgid "Use 'git stripspace' with no arguments to obtain:" msgstr "" -#. type: Block title -#: en/config.txt:115 +#. type: delimited block - +#: en/git-stripspace.txt:79 #, no-wrap -msgid "git file is." +msgid "" +"|A brief introduction$\n" +"|$\n" +"|A new paragraph$\n" +"|# with a commented-out line$\n" +"|explaining lots of stuff.$\n" +"|$\n" +"|# An old paragraph, also commented-out.$\n" +"|$\n" +"|The end.$\n" msgstr "" #. type: Plain text -#: en/config.txt:120 -msgid "" -"The pattern can contain standard globbing wildcards and two additional ones, " -"`**/` and `/**`, that can match multiple path components. Please refer to " -"linkgit:gitignore[5] for details. For convenience:" +#: en/git-stripspace.txt:82 +msgid "Use 'git stripspace --strip-comments' to obtain:" msgstr "" -#. type: Plain text -#: en/config.txt:123 +#. type: delimited block - +#: en/git-stripspace.txt:90 +#, no-wrap msgid "" -"If the pattern starts with `~/`, `~` will be substituted with the content of " -"the environment variable `HOME`." +"|A brief introduction$\n" +"|$\n" +"|A new paragraph$\n" +"|explaining lots of stuff.$\n" +"|$\n" +"|The end.$\n" msgstr "" -#. type: Plain text -#: en/config.txt:126 -msgid "" -"If the pattern starts with `./`, it is replaced with the directory " -"containing the current config file." +#. type: Title = +#: en/git-submodule.txt:2 +#, no-wrap +msgid "git-submodule(1)" msgstr "" #. type: Plain text -#: en/config.txt:130 -msgid "" -"If the pattern does not start with either `~/`, `./` or `/`, `**/` will be " -"automatically prepended. For example, the pattern `foo/bar` becomes " -"`**/foo/bar` and would match `/any/path/to/foo/bar`." +#: en/git-submodule.txt:7 +msgid "git-submodule - Initialize, update or inspect submodules" msgstr "" #. type: Plain text -#: en/config.txt:134 +#: en/git-submodule.txt:21 +#, no-wrap msgid "" -"If the pattern ends with `/`, `**` will be automatically added. For example, " -"the pattern `foo/` becomes `foo/**`. In other words, it matches \"foo\" and " -"everything inside, recursively." -msgstr "" - -#. type: Labeled list -#: en/config.txt:135 -#, no-wrap -msgid "`gitdir/i`" +"'git submodule' [--quiet] add [<options>] [--] <repository> [<path>]\n" +"'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]\n" +"'git submodule' [--quiet] init [--] [<path>...]\n" +"'git submodule' [--quiet] deinit [-f|--force] (--all|[--] <path>...)\n" +"'git submodule' [--quiet] update [<options>] [--] [<path>...]\n" +"'git submodule' [--quiet] summary [<options>] [--] [<path>...]\n" +"'git submodule' [--quiet] foreach [--recursive] <command>\n" +"'git submodule' [--quiet] sync [--recursive] [--] [<path>...]\n" +"'git submodule' [--quiet] absorbgitdirs [--] [<path>...]\n" msgstr "" #. type: Plain text -#: en/config.txt:138 -msgid "" -"This is the same as `gitdir` except that matching is done case-insensitively " -"(e.g. on case-insensitive file sytems)" +#: en/git-submodule.txt:26 +msgid "Inspects, updates and manages submodules." msgstr "" #. type: Plain text -#: en/config.txt:140 -msgid "A few more notes on matching via `gitdir` and `gitdir/i`:" +#: en/git-submodule.txt:28 +msgid "For more information about submodules, see linkgit:gitsubmodules[7]." msgstr "" -#. type: Plain text -#: en/config.txt:142 -msgid "Symlinks in `$GIT_DIR` are not resolved before matching." +#. type: Labeled list +#: en/git-submodule.txt:31 +#, no-wrap +msgid "add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--depth <depth>] [--] <repository> [<path>]" msgstr "" #. type: Plain text -#: en/config.txt:145 +#: en/git-submodule.txt:35 msgid "" -"Note that \"../\" is not special and will match literally, which is unlikely " -"what you want." +"Add the given repository as a submodule at the given path to the changeset " +"to be committed next to the current project: the current project is termed " +"the \"superproject\"." msgstr "" #. type: Plain text -#: en/config.txt:153 -#, no-wrap +#: en/git-submodule.txt:44 msgid "" -"\t# Core variables\n" -"\t[core]\n" -"\t\t; Don't trust file modes\n" -"\t\tfilemode = false\n" +"<repository> is the URL of the new submodule's origin repository. This may " +"be either an absolute URL, or (if it begins with ./ or ../), the location " +"relative to the superproject's default remote repository (Please note that " +"to specify a repository 'foo.git' which is located right next to a " +"superproject 'bar.git', you'll have to use '../foo.git' instead of './foo." +"git' - as one might expect when following the rules for relative URLs - " +"because the evaluation of relative URLs in Git is identical to that of " +"relative directories)." msgstr "" #. type: Plain text -#: en/config.txt:158 -#, no-wrap +#: en/git-submodule.txt:51 msgid "" -"\t# Our diff algorithm\n" -"\t[diff]\n" -"\t\texternal = /usr/local/bin/diff-wrapper\n" -"\t\trenames = true\n" +"The default remote is the remote of the remote-tracking branch of the " +"current branch. If no such remote-tracking branch exists or the HEAD is " +"detached, \"origin\" is assumed to be the default remote. If the " +"superproject doesn't have a default remote configured the superproject is " +"its own authoritative upstream and the current working directory is used " +"instead." msgstr "" #. type: Plain text -#: en/config.txt:162 -#, no-wrap +#: en/git-submodule.txt:60 msgid "" -"\t[branch \"devel\"]\n" -"\t\tremote = origin\n" -"\t\tmerge = refs/heads/devel\n" +"The optional argument <path> is the relative location for the cloned " +"submodule to exist in the superproject. If <path> is not given, the " +"canonical part of the source repository is used (\"repo\" for \"/path/to/" +"repo.git\" and \"foo\" for \"host.xz:foo/.git\"). If <path> exists and is " +"already a valid Git repository, then it is staged for commit without " +"cloning. The <path> is also used as the submodule's logical name in its " +"configuration entries unless `--name` is used to specify a logical name." msgstr "" #. type: Plain text -#: en/config.txt:167 -#, no-wrap +#: en/git-submodule.txt:68 msgid "" -"\t# Proxy settings\n" -"\t[core]\n" -"\t\tgitProxy=\"ssh\" for \"kernel.org\"\n" -"\t\tgitProxy=default-proxy ; for the rest\n" +"The given URL is recorded into `.gitmodules` for use by subsequent users " +"cloning the superproject. If the URL is given relative to the superproject's " +"repository, the presumption is the superproject and submodule repositories " +"will be kept together in the same relative location, and only the " +"superproject's URL needs to be provided. git-submodule will correctly " +"locate the submodule using the relative URL in `.gitmodules`." msgstr "" -#. type: Plain text -#: en/config.txt:172 +#. type: Labeled list +#: en/git-submodule.txt:69 #, no-wrap -msgid "" -"\t[include]\n" -"\t\tpath = /path/to/foo.inc ; include by absolute path\n" -"\t\tpath = foo ; expand \"foo\" relative to the current file\n" -"\t\tpath = ~/foo ; expand \"foo\" in your `$HOME` directory\n" +msgid "status [--cached] [--recursive] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/config.txt:176 -#, no-wrap +#: en/git-submodule.txt:77 msgid "" -"\t; include if $GIT_DIR is /path/to/foo/.git\n" -"\t[includeIf \"gitdir:/path/to/foo/.git\"]\n" -"\t\tpath = /path/to/foo.inc\n" +"Show the status of the submodules. This will print the SHA-1 of the " +"currently checked out commit for each submodule, along with the submodule " +"path and the output of 'git describe' for the SHA-1. Each SHA-1 will " +"possibly be prefixed with `-` if the submodule is not initialized, `+` if " +"the currently checked out submodule commit does not match the SHA-1 found in " +"the index of the containing repository and `U` if the submodule has merge " +"conflicts." msgstr "" #. type: Plain text -#: en/config.txt:180 -#, no-wrap +#: en/git-submodule.txt:80 msgid "" -"\t; include for all repositories inside /path/to/group\n" -"\t[includeIf \"gitdir:/path/to/group/\"]\n" -"\t\tpath = /path/to/foo.inc\n" +"If `--recursive` is specified, this command will recurse into nested " +"submodules, and show their status as well." msgstr "" #. type: Plain text -#: en/config.txt:184 -#, no-wrap +#: en/git-submodule.txt:85 msgid "" -"\t; include for all repositories inside $HOME/to/group\n" -"\t[includeIf \"gitdir:~/to/group/\"]\n" -"\t\tpath = /path/to/foo.inc\n" +"If you are only interested in changes of the currently initialized " +"submodules with respect to the commit recorded in the index or the HEAD, " +"linkgit:git-status[1] and linkgit:git-diff[1] will provide that information " +"too (and can also report changes to a submodule's work tree)." msgstr "" -#. type: Title ~ -#: en/config.txt:186 +#. type: Labeled list +#: en/git-submodule.txt:86 #, no-wrap -msgid "Values" +msgid "init [--] [<path>...]" msgstr "" #. type: Plain text -#: en/config.txt:191 +#: en/git-submodule.txt:93 msgid "" -"Values of many variables are treated as a simple string, but there are " -"variables that take values of specific types and there are rules as to how " -"to spell them." -msgstr "" - -#. type: Labeled list -#: en/config.txt:192 -#, no-wrap -msgid "boolean" +"Initialize the submodules recorded in the index (which were added and " +"committed elsewhere) by setting `submodule.$name.url` in .git/config. It " +"uses the same setting from `.gitmodules` as a template. If the URL is " +"relative, it will be resolved using the default remote. If there is no " +"default remote, the current repository will be assumed to be upstream." msgstr "" #. type: Plain text -#: en/config.txt:197 +#: en/git-submodule.txt:98 msgid "" -"When a variable is said to take a boolean value, many synonyms are accepted " -"for 'true' and 'false'; these are all case-insensitive." -msgstr "" - -#. type: Labeled list -#: en/config.txt:198 -#, no-wrap -msgid "true" +"Optional <path> arguments limit which submodules will be initialized. If no " +"path is specified and submodule.active has been configured, submodules " +"configured to be active will be initialized, otherwise all submodules are " +"initialized." msgstr "" #. type: Plain text -#: en/config.txt:199 -msgid "Boolean true can be spelled as `yes`, `on`, `true`," +#: en/git-submodule.txt:106 +msgid "" +"When present, it will also copy the value of `submodule.$name.update`. This " +"command does not alter existing information in .git/config. You can then " +"customize the submodule clone URLs in .git/config for your local setup and " +"proceed to `git submodule update`; you can also just use `git submodule " +"update --init` without the explicit 'init' step if you do not intend to " +"customize any submodule locations." msgstr "" #. type: Plain text -#: en/config.txt:201 -msgid "or `1`. Also, a variable defined without `= <value>` is taken as true." +#: en/git-submodule.txt:108 +msgid "See the add subcommand for the definition of default remote." msgstr "" #. type: Labeled list -#: en/config.txt:202 +#: en/git-submodule.txt:109 #, no-wrap -msgid "false" +msgid "deinit [-f|--force] (--all|[--] <path>...)" msgstr "" #. type: Plain text -#: en/config.txt:203 -msgid "Boolean false can be spelled as `no`, `off`," +#: en/git-submodule.txt:116 +msgid "" +"Unregister the given submodules, i.e. remove the whole `submodule.$name` " +"section from .git/config together with their work tree. Further calls to " +"`git submodule update`, `git submodule foreach` and `git submodule sync` " +"will skip any unregistered submodules until they are initialized again, so " +"use this command if you don't want to have a local checkout of the submodule " +"in your working tree anymore." msgstr "" #. type: Plain text -#: en/config.txt:204 -msgid "`false`, or `0`." +#: en/git-submodule.txt:119 +msgid "" +"When the command is run without pathspec, it errors out, instead of deinit-" +"ing everything, to prevent mistakes." msgstr "" #. type: Plain text -#: en/config.txt:208 +#: en/git-submodule.txt:122 msgid "" -"When converting value to the canonical form using `--bool` type specifier; " -"'git config' will ensure that the output is \"true\" or \"false\" (spelled " -"in lowercase)." -msgstr "" - -#. type: Labeled list -#: en/config.txt:209 -#, no-wrap -msgid "integer" +"If `--force` is specified, the submodule's working tree will be removed even " +"if it contains local modifications." msgstr "" #. type: Plain text -#: en/config.txt:213 +#: en/git-submodule.txt:126 msgid "" -"The value for many variables that specify various sizes can be suffixed with " -"`k`, `M`,... to mean \"scale the number by 1024\", \"by 1024x1024\", etc." +"If you really want to remove a submodule from the repository and commit that " +"use linkgit:git-rm[1] instead. See linkgit:gitsubmodules[7] for removal " +"options." msgstr "" -#. type: Plain text -#: en/config.txt:218 -msgid "" -"The value for a variable that takes a color is a list of colors (at most " -"two, one for foreground and one for background) and attributes (as many as " -"you want), separated by spaces." +#. type: Labeled list +#: en/git-submodule.txt:127 +#, no-wrap +msgid "update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] [--depth <depth>] [--recursive] [--jobs <n>] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/config.txt:222 +#: en/git-submodule.txt:138 msgid "" -"The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`, " -"`blue`, `magenta`, `cyan` and `white`. The first color given is the " -"foreground; the second is the background." +"Update the registered submodules to match what the superproject expects by " +"cloning missing submodules and updating the working tree of the submodules. " +"The \"updating\" can be done in several ways depending on command line " +"options and the value of `submodule.<name>.update` configuration variable. " +"The command line option takes precedence over the configuration variable. If " +"neither is given, a 'checkout' is performed. The 'update' procedures " +"supported both from the command line as well as through the `submodule." +"<name>.update` configuration are:" msgstr "" -#. type: Plain text -#: en/config.txt:227 -msgid "" -"Colors may also be given as numbers between 0 and 255; these use ANSI " -"256-color mode (but note that not all terminals may support this). If your " -"terminal supports it, you may also specify 24-bit RGB values as hex, like " -"`#ff0ab3`." +#. type: Labeled list +#: en/git-submodule.txt:139 +#, no-wrap +msgid "checkout" msgstr "" #. type: Plain text -#: en/config.txt:234 -msgid "" -"The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, " -"`italic`, and `strike` (for crossed-out or \"strikethrough\" letters). The " -"position of any attributes with respect to the colors (before, after, or in " -"between), doesn't matter. Specific attributes may be turned off by prefixing " -"them with `no` or `no-` (e.g., `noreverse`, `no-ul`, etc)." +#: en/git-submodule.txt:140 +msgid "the commit recorded in the superproject will be" msgstr "" #. type: Plain text -#: en/config.txt:237 -msgid "" -"An empty color string produces no color effect at all. This can be used to " -"avoid coloring specific elements without disabling color entirely." +#: en/git-submodule.txt:141 +#, no-wrap +msgid "checked out in the submodule on a detached HEAD.\n" msgstr "" #. type: Plain text -#: en/config.txt:246 +#: en/git-submodule.txt:146 msgid "" -"For git's pre-defined color slots, the attributes are meant to be reset at " -"the beginning of each item in the colored output. So setting " -"`color.decorate.branch` to `black` will paint that branch name in a plain " -"`black`, even if the previous thing on the same output line (e.g. opening " -"parenthesis before the list of branch names in `log --decorate` output) is " -"set to be painted with `bold` or some other attribute. However, custom log " -"formats may do more complicated and layered coloring, and the negated forms " -"may be useful there." +"If `--force` is specified, the submodule will be checked out (using `git " +"checkout --force`), even if the commit specified in the index of the " +"containing repository already matches the commit checked out in the " +"submodule." msgstr "" #. type: Labeled list -#: en/config.txt:247 +#: en/git-submodule.txt:147 #, no-wrap -msgid "pathname" +msgid "rebase" msgstr "" #. type: Plain text -#: en/config.txt:253 -msgid "" -"A variable that takes a pathname value can be given a string that begins " -"with \"`~/`\" or \"`~user/`\", and the usual tilde expansion happens to such " -"a string: `~/` is expanded to the value of `$HOME`, and `~user/` to the " -"specified user's home directory." +#: en/git-submodule.txt:148 +msgid "the current branch of the submodule will be rebased" msgstr "" #. type: Plain text -#: en/config.txt:261 -msgid "" -"Note that this list is non-comprehensive and not necessarily complete. For " -"command-specific variables, you will find a more detailed description in the " -"appropriate manual page." +#: en/git-submodule.txt:149 +#, no-wrap +msgid "onto the commit recorded in the superproject.\n" msgstr "" #. type: Plain text -#: en/config.txt:266 -msgid "" -"Other git-related tools may and do use their own variables. When inventing " -"new variables for use in your own tool, make sure their names do not " -"conflict with those that are used by Git itself and other popular tools, and " -"describe them in your documentation." +#: en/git-submodule.txt:151 +msgid "the commit recorded in the superproject will be merged" msgstr "" -#. type: Labeled list -#: en/config.txt:268 +#. type: Plain text +#: en/git-submodule.txt:152 #, no-wrap -msgid "advice.*" +msgid "into the current branch in the submodule.\n" msgstr "" #. type: Plain text -#: en/config.txt:272 +#: en/git-submodule.txt:155 msgid "" -"These variables control various optional help messages designed to aid new " -"users. All 'advice.*' variables default to 'true', and you can tell Git that " -"you do not need help by setting these to 'false':" +"The following 'update' procedures are only available via the `submodule." +"<name>.update` configuration variable:" msgstr "" #. type: Labeled list -#: en/config.txt:274 +#: en/git-submodule.txt:156 #, no-wrap -msgid "pushUpdateRejected" +msgid "custom command" msgstr "" #. type: Plain text -#: en/config.txt:280 -#, no-wrap -msgid "" -"Set this variable to 'false' if you want to disable\n" -"'pushNonFFCurrent',\n" -"'pushNonFFMatching', 'pushAlreadyExists',\n" -"'pushFetchFirst', and 'pushNeedsForce'\n" -"simultaneously.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:280 -#, no-wrap -msgid "pushNonFFCurrent" +#: en/git-submodule.txt:157 +msgid "arbitrary shell command that takes a single" msgstr "" #. type: Plain text -#: en/config.txt:283 +#: en/git-submodule.txt:161 #, no-wrap msgid "" -"Advice shown when linkgit:git-push[1] fails due to a\n" -"non-fast-forward update to the current branch.\n" +"argument (the sha1 of the commit recorded in the\n" +"superproject) is executed. When `submodule.<name>.update`\n" +"is set to '!command', the remainder after the exclamation mark\n" +"is the custom command.\n" msgstr "" -#. type: Labeled list -#: en/config.txt:283 -#, no-wrap -msgid "pushNonFFMatching" +#. type: Plain text +#: en/git-submodule.txt:163 +msgid "the submodule is not updated." msgstr "" #. type: Plain text -#: en/config.txt:288 -#, no-wrap +#: en/git-submodule.txt:167 msgid "" -"Advice shown when you ran linkgit:git-push[1] and pushed\n" -"'matching refs' explicitly (i.e. you used ':', or\n" -"specified a refspec that isn't your current branch) and\n" -"it resulted in a non-fast-forward error.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:288 -#, no-wrap -msgid "pushAlreadyExists" +"If the submodule is not yet initialized, and you just want to use the " +"setting as stored in `.gitmodules`, you can automatically initialize the " +"submodule with the `--init` option." msgstr "" #. type: Plain text -#: en/config.txt:291 -#, no-wrap +#: en/git-submodule.txt:170 msgid "" -"Shown when linkgit:git-push[1] rejects an update that\n" -"does not qualify for fast-forwarding (e.g., a tag.)\n" +"If `--recursive` is specified, this command will recurse into the registered " +"submodules, and update any nested submodules within." msgstr "" #. type: Labeled list -#: en/config.txt:291 +#: en/git-submodule.txt:171 #, no-wrap -msgid "pushFetchFirst" +msgid "summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/config.txt:295 -#, no-wrap +#: en/git-submodule.txt:180 msgid "" -"Shown when linkgit:git-push[1] rejects an update that\n" -"tries to overwrite a remote ref that points at an\n" -"object we do not have.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:295 -#, no-wrap -msgid "pushNeedsForce" +"Show commit summary between the given commit (defaults to HEAD) and working " +"tree/index. For a submodule in question, a series of commits in the " +"submodule between the given super project commit and the index or working " +"tree (switched by `--cached`) are shown. If the option `--files` is given, " +"show the series of commits in the submodule between the index of the super " +"project and the working tree of the submodule (this option doesn't allow to " +"use the `--cached` option or to provide an explicit commit)." msgstr "" #. type: Plain text -#: en/config.txt:300 -#, no-wrap +#: en/git-submodule.txt:183 msgid "" -"Shown when linkgit:git-push[1] rejects an update that\n" -"tries to overwrite a remote ref that points at an\n" -"object that is not a commit-ish, or make the remote\n" -"ref point at an object that is not a commit-ish.\n" +"Using the `--submodule=log` option with linkgit:git-diff[1] will provide " +"that information too." msgstr "" #. type: Labeled list -#: en/config.txt:300 +#: en/git-submodule.txt:184 #, no-wrap -msgid "statusHints" +msgid "foreach [--recursive] <command>" msgstr "" #. type: Plain text -#: en/config.txt:306 -#, no-wrap +#: en/git-submodule.txt:205 msgid "" -"Show directions on how to proceed from the current\n" -"state in the output of linkgit:git-status[1], in\n" -"the template shown when writing commit messages in\n" -"linkgit:git-commit[1], and in the help message shown\n" -"by linkgit:git-checkout[1] when switching branch.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:306 -#, no-wrap -msgid "statusUoption" +"Evaluates an arbitrary shell command in each checked out submodule. The " +"command has access to the variables $name, $sm_path, $displaypath, $sha1 and " +"$toplevel: $name is the name of the relevant submodule section in `." +"gitmodules`, $sm_path is the path of the submodule as recorded in the " +"immediate superproject, $displaypath contains the relative path from the " +"current working directory to the submodules root directory, $sha1 is the " +"commit as recorded in the immediate superproject, and $toplevel is the " +"absolute path to the top-level of the immediate superproject. Note that to " +"avoid conflicts with '$PATH' on Windows, the '$path' variable is now a " +"deprecated synonym of '$sm_path' variable. Any submodules defined in the " +"superproject but not checked out are ignored by this command. Unless given " +"`--quiet`, foreach prints the name of each submodule before evaluating the " +"command. If `--recursive` is given, submodules are traversed recursively (i." +"e. the given shell command is evaluated in nested submodules as well). A " +"non-zero return from the command in any submodule causes the processing to " +"terminate. This can be overridden by adding '|| :' to the end of the command." msgstr "" #. type: Plain text -#: en/config.txt:310 -#, no-wrap +#: en/git-submodule.txt:208 msgid "" -"Advise to consider using the `-u` option to linkgit:git-status[1]\n" -"when the command takes more than 2 seconds to enumerate untracked\n" -"files.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:310 -#, no-wrap -msgid "commitBeforeMerge" +"As an example, the command below will show the path and currently checked " +"out commit for each submodule:" msgstr "" -#. type: Plain text -#: en/config.txt:313 +#. type: delimited block - +#: en/git-submodule.txt:211 #, no-wrap -msgid "" -"Advice shown when linkgit:git-merge[1] refuses to\n" -"merge to avoid overwriting local changes.\n" +msgid "git submodule foreach 'echo $path `git rev-parse HEAD`'\n" msgstr "" #. type: Labeled list -#: en/config.txt:313 +#: en/git-submodule.txt:213 #, no-wrap -msgid "resolveConflict" +msgid "sync [--recursive] [--] [<path>...]" msgstr "" #. type: Plain text -#: en/config.txt:316 -#, no-wrap +#: en/git-submodule.txt:220 msgid "" -"Advice shown by various commands when conflicts\n" -"prevent the operation from being performed.\n" +"Synchronizes submodules' remote URL configuration setting to the value " +"specified in `.gitmodules`. It will only affect those submodules which " +"already have a URL entry in .git/config (that is the case when they are " +"initialized or freshly added). This is useful when submodule URLs change " +"upstream and you need to update your local repositories accordingly." msgstr "" -#. type: Labeled list -#: en/config.txt:316 -#, no-wrap -msgid "implicitIdentity" +#. type: Plain text +#: en/git-submodule.txt:223 +msgid "" +"`git submodule sync` synchronizes all submodules while `git submodule sync " +"-- A` synchronizes submodule \"A\" only." msgstr "" #. type: Plain text -#: en/config.txt:320 -#, no-wrap +#: en/git-submodule.txt:226 msgid "" -"Advice on how to set your identity configuration when\n" -"your information is guessed from the system username and\n" -"domain name.\n" +"If `--recursive` is specified, this command will recurse into the registered " +"submodules, and sync any nested submodules within." msgstr "" #. type: Labeled list -#: en/config.txt:320 +#: en/git-submodule.txt:227 #, no-wrap -msgid "detachedHead" +msgid "absorbgitdirs" msgstr "" #. type: Plain text -#: en/config.txt:324 -#, no-wrap +#: en/git-submodule.txt:234 msgid "" -"Advice shown when you used linkgit:git-checkout[1] to\n" -"move to the detach HEAD state, to instruct how to create\n" -"a local branch after the fact.\n" -msgstr "" - -#. type: Labeled list -#: en/config.txt:324 -#, no-wrap -msgid "amWorkDir" +"If a git directory of a submodule is inside the submodule, move the git " +"directory of the submodule into its superprojects `$GIT_DIR/modules` path " +"and then connect the git directory and its working directory by setting the " +"`core.worktree` and adding a .git file pointing to the git directory " +"embedded in the superprojects git directory." msgstr "" #. type: Plain text -#: en/config.txt:327 -#, no-wrap +#: en/git-submodule.txt:238 msgid "" -"Advice that shows the location of the patch file when\n" -"linkgit:git-am[1] fails to apply it.\n" +"A repository that was cloned independently and later added as a submodule or " +"old setups have the submodules git directory inside the submodule instead of " +"embedded into the superprojects git directory." msgstr "" -#. type: Labeled list -#: en/config.txt:327 -#, no-wrap -msgid "rmHints" +#. type: Plain text +#: en/git-submodule.txt:240 +msgid "This command is recursive by default." msgstr "" #. type: Plain text -#: en/config.txt:330 -#, no-wrap -msgid "" -"In case of failure in the output of linkgit:git-rm[1],\n" -"show directions on how to proceed from the current state.\n" +#: en/git-submodule.txt:246 +msgid "Only print error messages." msgstr "" -#. type: Labeled list -#: en/config.txt:332 -#, no-wrap -msgid "core.fileMode" +#. type: Plain text +#: en/git-submodule.txt:253 +msgid "" +"This option is only valid for add and update commands. Progress status is " +"reported on the standard error stream by default when it is attached to a " +"terminal, unless -q is specified. This flag forces progress status even if " +"the standard error stream is not directed to a terminal." msgstr "" #. type: Plain text -#: en/config.txt:335 +#: en/git-submodule.txt:257 msgid "" -"Tells Git if the executable bit of files in the working tree is to be " -"honored." +"This option is only valid for the deinit command. Unregister all submodules " +"in the working tree." msgstr "" #. type: Plain text -#: en/config.txt:342 +#: en/git-submodule.txt:265 msgid "" -"Some filesystems lose the executable bit when a file that is marked as " -"executable is checked out, or checks out an non-executable file with " -"executable bit on. linkgit:git-clone[1] or linkgit:git-init[1] probe the " -"filesystem to see if it handles the executable bit correctly and this " -"variable is automatically set as necessary." +"Branch of repository to add as submodule. The name of the branch is " +"recorded as `submodule.<name>.branch` in `.gitmodules` for `update --" +"remote`. A special value of `.` is used to indicate that the name of the " +"branch in the submodule should be the same name as the current branch in the " +"current repository." msgstr "" #. type: Plain text -#: en/config.txt:351 +#: en/git-submodule.txt:278 msgid "" -"A repository, however, may be on a filesystem that handles the filemode " -"correctly, and this variable is set to 'true' when created, but later may be " -"made accessible from another environment that loses the filemode " -"(e.g. exporting ext4 via CIFS mount, visiting a Cygwin created repository " -"with Git for Windows or Eclipse). In such a case it may be necessary to set " -"this variable to 'false'. See linkgit:git-update-index[1]." +"This option is only valid for add, deinit and update commands. When running " +"add, allow adding an otherwise ignored submodule path. When running deinit " +"the submodule working trees will be removed even if they contain local " +"changes. When running update (only effective with the checkout procedure), " +"throw away local changes in submodules when switching to a different commit; " +"and always run a checkout operation in the submodule, even if the commit " +"listed in the index of the containing repository matches the commit checked " +"out in the submodule." msgstr "" #. type: Plain text -#: en/config.txt:353 +#: en/git-submodule.txt:283 msgid "" -"The default is true (when core.filemode is not specified in the config " -"file)." +"This option is only valid for status and summary commands. These commands " +"typically use the commit found in the submodule HEAD, but with this option, " +"the commit stored in the index is used instead." msgstr "" #. type: Labeled list -#: en/config.txt:354 +#: en/git-submodule.txt:284 #, no-wrap -msgid "core.hideDotFiles" +msgid "--files" msgstr "" #. type: Plain text -#: en/config.txt:359 +#: en/git-submodule.txt:288 msgid "" -"(Windows-only) If true, mark newly-created directories and files whose name " -"starts with a dot as hidden. If 'dotGitOnly', only the `.git/` directory is " -"hidden, but no other files starting with a dot. The default mode is " -"'dotGitOnly'." +"This option is only valid for the summary command. This command compares the " +"commit in the index with that in the submodule HEAD when this option is used." msgstr "" #. type: Labeled list -#: en/config.txt:360 +#: en/git-submodule.txt:290 #, no-wrap -msgid "core.ignoreCase" -msgstr "" - -#. type: Plain text -#: en/config.txt:367 -msgid "" -"If true, this option enables various workarounds to enable Git to work " -"better on filesystems that are not case sensitive, like FAT. For example, if " -"a directory listing finds \"makefile\" when Git expects \"Makefile\", Git " -"will assume it is really the same file, and continue to remember it as " -"\"Makefile\"." +msgid "--summary-limit" msgstr "" #. type: Plain text -#: en/config.txt:371 +#: en/git-submodule.txt:296 msgid "" -"The default is false, except linkgit:git-clone[1] or linkgit:git-init[1] " -"will probe and set core.ignoreCase true if appropriate when the repository " -"is created." +"This option is only valid for the summary command. Limit the summary size " +"(number of commits shown in total). Giving 0 will disable the summary; a " +"negative number means unlimited (the default). This limit only applies to " +"modified submodules. The size is always limited to 1 for added/deleted/" +"typechanged submodules." msgstr "" #. type: Labeled list -#: en/config.txt:372 +#: en/git-submodule.txt:297 #, no-wrap -msgid "core.precomposeUnicode" +msgid "--remote" msgstr "" #. type: Plain text -#: en/config.txt:380 +#: en/git-submodule.txt:306 msgid "" -"This option is only used by Mac OS implementation of Git. When " -"core.precomposeUnicode=true, Git reverts the unicode decomposition of " -"filenames done by Mac OS. This is useful when sharing a repository between " -"Mac OS and Linux or Windows. (Git for Windows 1.7.10 or higher is needed, " -"or Git under cygwin 1.7). When false, file names are handled fully " -"transparent by Git, which is backward compatible with older versions of Git." -msgstr "" - -#. type: Labeled list -#: en/config.txt:381 -#, no-wrap -msgid "core.protectHFS" +"This option is only valid for the update command. Instead of using the " +"superproject's recorded SHA-1 to update the submodule, use the status of the " +"submodule's remote-tracking branch. The remote used is branch's remote " +"(`branch.<name>.remote`), defaulting to `origin`. The remote branch used " +"defaults to `master`, but the branch name may be overridden by setting the " +"`submodule.<name>.branch` option in either `.gitmodules` or `.git/config` " +"(with `.git/config` taking precedence)." msgstr "" #. type: Plain text -#: en/config.txt:385 +#: en/git-submodule.txt:312 msgid "" -"If set to true, do not allow checkout of paths that would be considered " -"equivalent to `.git` on an HFS+ filesystem. Defaults to `true` on Mac OS, " -"and `false` elsewhere." +"This works for any of the supported update procedures (`--checkout`, `--" +"rebase`, etc.). The only change is the source of the target SHA-1. For " +"example, `submodule update --remote --merge` will merge upstream submodule " +"changes into the submodules, while `submodule update --merge` will merge " +"superproject gitlink changes into the submodules." msgstr "" -#. type: Labeled list -#: en/config.txt:386 -#, no-wrap -msgid "core.protectNTFS" +#. type: Plain text +#: en/git-submodule.txt:317 +msgid "" +"In order to ensure a current tracking branch state, `update --remote` " +"fetches the submodule's remote repository before calculating the SHA-1. If " +"you don't want to fetch, you should use `submodule update --remote --no-" +"fetch`." msgstr "" #. type: Plain text -#: en/config.txt:391 +#: en/git-submodule.txt:327 msgid "" -"If set to true, do not allow checkout of paths that would cause problems " -"with the NTFS filesystem, e.g. conflict with 8.3 \"short\" names. Defaults " -"to `true` on Windows, and `false` elsewhere." +"Use this option to integrate changes from the upstream subproject with your " +"submodule's current HEAD. Alternatively, you can run `git pull` from the " +"submodule, which is equivalent except for the remote branch name: `update --" +"remote` uses the default upstream repository and `submodule.<name>.branch`, " +"while `git pull` uses the submodule's `branch.<name>.merge`. Prefer " +"`submodule.<name>.branch` if you want to distribute the default upstream " +"branch with the superproject and `branch.<name>.merge` if you want a more " +"native feel while working in the submodule itself." msgstr "" #. type: Labeled list -#: en/config.txt:392 +#: en/git-submodule.txt:329 #, no-wrap -msgid "core.trustctime" +msgid "--no-fetch" msgstr "" #. type: Plain text -#: en/config.txt:398 +#: en/git-submodule.txt:332 msgid "" -"If false, the ctime differences between the index and the working tree are " -"ignored; useful when the inode change time is regularly modified by " -"something outside Git (file system crawlers and some backup systems). See " -"linkgit:git-update-index[1]. True by default." +"This option is only valid for the update command. Don't fetch new objects " +"from the remote site." msgstr "" #. type: Labeled list -#: en/config.txt:399 +#: en/git-submodule.txt:333 #, no-wrap -msgid "core.splitIndex" +msgid "--checkout" msgstr "" #. type: Plain text -#: en/config.txt:402 +#: en/git-submodule.txt:341 msgid "" -"If true, the split-index feature of the index will be used. See " -"linkgit:git-update-index[1]. False by default." -msgstr "" - -#. type: Labeled list -#: en/config.txt:403 -#, no-wrap -msgid "core.untrackedCache" +"This option is only valid for the update command. Checkout the commit " +"recorded in the superproject on a detached HEAD in the submodule. This is " +"the default behavior, the main use of this option is to override `submodule." +"$name.update` when set to a value other than `checkout`. If the key " +"`submodule.$name.update` is either not explicitly set or set to `checkout`, " +"this option is implicit." msgstr "" #. type: Plain text -#: en/config.txt:411 +#: en/git-submodule.txt:351 msgid "" -"Determines what to do about the untracked cache feature of the index. It " -"will be kept, if this variable is unset or set to `keep`. It will " -"automatically be added if set to `true`. And it will automatically be " -"removed, if set to `false`. Before setting it to `true`, you should check " -"that mtime is working properly on your system. See " -"linkgit:git-update-index[1]. `keep` by default." +"This option is only valid for the update command. Merge the commit recorded " +"in the superproject into the current branch of the submodule. If this option " +"is given, the submodule's HEAD will not be detached. If a merge failure " +"prevents this process, you will have to resolve the resulting conflicts " +"within the submodule with the usual conflict resolution tools. If the key " +"`submodule.$name.update` is set to `merge`, this option is implicit." msgstr "" #. type: Labeled list -#: en/config.txt:412 +#: en/git-submodule.txt:352 #, no-wrap -msgid "core.checkStat" +msgid "--rebase" msgstr "" #. type: Plain text -#: en/config.txt:417 +#: en/git-submodule.txt:360 msgid "" -"Determines which stat fields to match between the index and work tree. The " -"user can set this to 'default' or 'minimal'. Default (or explicitly " -"'default'), is to check all fields, including the sub-second part of mtime " -"and ctime." +"This option is only valid for the update command. Rebase the current branch " +"onto the commit recorded in the superproject. If this option is given, the " +"submodule's HEAD will not be detached. If a merge failure prevents this " +"process, you will have to resolve these failures with linkgit:git-" +"rebase[1]. If the key `submodule.$name.update` is set to `rebase`, this " +"option is implicit." msgstr "" #. type: Labeled list -#: en/config.txt:418 +#: en/git-submodule.txt:361 #, no-wrap -msgid "core.quotePath" +msgid "--init" msgstr "" #. type: Plain text -#: en/config.txt:432 +#: en/git-submodule.txt:365 msgid "" -"Commands that output paths (e.g. 'ls-files', 'diff'), will quote \"unusual\" " -"characters in the pathname by enclosing the pathname in double-quotes and " -"escaping those characters with backslashes in the same way C escapes control " -"characters (e.g. `\\t` for TAB, `\\n` for LF, `\\\\` for backslash) or " -"bytes with values larger than 0x80 (e.g. octal `\\302\\265` for \"micro\" in " -"UTF-8). If this variable is set to false, bytes higher than 0x80 are not " -"considered \"unusual\" any more. Double-quotes, backslash and control " -"characters are always escaped regardless of the setting of this variable. A " -"simple space character is not considered \"unusual\". Many commands can " -"output pathnames completely verbatim using the `-z` option. The default " -"value is true." +"This option is only valid for the update command. Initialize all submodules " +"for which \"git submodule init\" has not been called so far before updating." msgstr "" #. type: Labeled list -#: en/config.txt:433 +#: en/git-submodule.txt:366 #, no-wrap -msgid "core.eol" +msgid "--name" msgstr "" #. type: Plain text -#: en/config.txt:440 +#: en/git-submodule.txt:370 msgid "" -"Sets the line ending type to use in the working directory for files that " -"have the `text` property set when core.autocrlf is false. Alternatives are " -"'lf', 'crlf' and 'native', which uses the platform's native line ending. " -"The default value is `native`. See linkgit:gitattributes[5] for more " -"information on end-of-line conversion." +"This option is only valid for the add command. It sets the submodule's name " +"to the given string instead of defaulting to its path. The name must be " +"valid as a directory name and may not end with a '/'." msgstr "" #. type: Labeled list -#: en/config.txt:441 +#: en/git-submodule.txt:371 #, no-wrap -msgid "core.safecrlf" -msgstr "" - -#. type: Plain text -#: en/config.txt:451 -msgid "" -"If true, makes Git check if converting `CRLF` is reversible when end-of-line " -"conversion is active. Git will verify if a command modifies a file in the " -"work tree either directly or indirectly. For example, committing a file " -"followed by checking out the same file should yield the original file in the " -"work tree. If this is not the case for the current setting of " -"`core.autocrlf`, Git will reject the file. The variable can be set to " -"\"warn\", in which case Git will only warn about an irreversible conversion " -"but continue the operation." +msgid "--reference <repository>" msgstr "" #. type: Plain text -#: en/config.txt:460 +#: en/git-submodule.txt:375 en/git-submodule.txt:384 msgid "" -"CRLF conversion bears a slight chance of corrupting data. When it is " -"enabled, Git will convert CRLF to LF during commit and LF to CRLF during " -"checkout. A file that contains a mixture of LF and CRLF before the commit " -"cannot be recreated by Git. For text files this is the right thing to do: " -"it corrects line endings such that we have only LF line endings in the " -"repository. But for binary files that are accidentally classified as text " -"the conversion can corrupt data." +"This option is only valid for add and update commands. These commands " +"sometimes need to clone a remote repository. In this case, this option will " +"be passed to the linkgit:git-clone[1] command." msgstr "" #. type: Plain text -#: en/config.txt:467 +#: en/git-submodule.txt:379 +#, no-wrap msgid "" -"If you recognize such corruption early you can easily fix it by setting the " -"conversion type explicitly in .gitattributes. Right after committing you " -"still have the original file in your work tree and this file is not yet " -"corrupted. You can explicitly tell Git that this file is binary and Git " -"will handle the file appropriately." +"*NOTE*: Do *not* use this option unless you have read the note\n" +"for linkgit:git-clone[1]'s `--reference`, `--shared`, and `--dissociate`\n" +"options carefully.\n" msgstr "" #. type: Plain text -#: en/config.txt:474 -msgid "" -"Unfortunately, the desired effect of cleaning up text files with mixed line " -"endings and the undesired effect of corrupting binary files cannot be " -"distinguished. In both cases CRLFs are removed in an irreversible way. For " -"text files this is the right thing to do because CRLFs are line endings, " -"while for binary files converting CRLFs corrupts data." +#: en/git-submodule.txt:386 +#, no-wrap +msgid "*NOTE*: see the NOTE for the `--reference` option.\n" msgstr "" #. type: Plain text -#: en/config.txt:485 +#: en/git-submodule.txt:392 msgid "" -"Note, this safety check does not mean that a checkout will generate a file " -"identical to the original file for a different setting of `core.eol` and " -"`core.autocrlf`, but only for the current one. For example, a text file " -"with `LF` would be accepted with `core.eol=lf` and could later be checked " -"out with `core.eol=crlf`, in which case the resulting file would contain " -"`CRLF`, although the original file contained `LF`. However, in both work " -"trees the line endings would be consistent, that is either all `LF` or all " -"`CRLF`, but never mixed. A file with mixed line endings would be reported " -"by the `core.safecrlf` mechanism." +"This option is only valid for foreach, update, status and sync commands. " +"Traverse submodules recursively. The operation is performed not only in the " +"submodules of the current repo, but also in any nested submodules inside " +"those submodules (and so on)." msgstr "" #. type: Labeled list -#: en/config.txt:486 +#: en/git-submodule.txt:393 #, no-wrap -msgid "core.autocrlf" +msgid "--depth" msgstr "" #. type: Plain text -#: en/config.txt:493 +#: en/git-submodule.txt:397 msgid "" -"Setting this variable to \"true\" is the same as setting the `text` " -"attribute to \"auto\" on all files and core.eol to \"crlf\". Set to true if " -"you want to have `CRLF` line endings in your working directory and the " -"repository has LF line endings. This variable can be set to 'input', in " -"which case no output conversion is performed." +"This option is valid for add and update commands. Create a 'shallow' clone " +"with a history truncated to the specified number of revisions. See linkgit:" +"git-clone[1]" msgstr "" #. type: Labeled list -#: en/config.txt:494 +#: en/git-submodule.txt:398 #, no-wrap -msgid "core.symlinks" +msgid "--[no-]recommend-shallow" msgstr "" #. type: Plain text -#: en/config.txt:500 +#: en/git-submodule.txt:403 msgid "" -"If false, symbolic links are checked out as small plain files that contain " -"the link text. linkgit:git-update-index[1] and linkgit:git-add[1] will not " -"change the recorded type to regular file. Useful on filesystems like FAT " -"that do not support symbolic links." +"This option is only valid for the update command. The initial clone of a " +"submodule will use the recommended `submodule.<name>.shallow` as provided by " +"the `.gitmodules` file by default. To ignore the suggestions use `--no-" +"recommend-shallow`." msgstr "" #. type: Plain text -#: en/config.txt:504 +#: en/git-submodule.txt:409 msgid "" -"The default is true, except linkgit:git-clone[1] or linkgit:git-init[1] will " -"probe and set core.symlinks false if appropriate when the repository is " -"created." -msgstr "" - -#. type: Labeled list -#: en/config.txt:505 -#, no-wrap -msgid "core.gitProxy" +"This option is only valid for the update command. Clone new submodules in " +"parallel with as many jobs. Defaults to the `submodule.fetchJobs` option." msgstr "" #. type: Plain text -#: en/config.txt:513 +#: en/git-submodule.txt:414 msgid "" -"A \"proxy command\" to execute (as 'command host port') instead of " -"establishing direct connection to the remote server when using the Git " -"protocol for fetching. If the variable value is in the \"COMMAND for " -"DOMAIN\" format, the command is applied only on hostnames ending with the " -"specified domain string. This variable may be set multiple times and is " -"matched in the given order; the first match wins." +"Paths to submodule(s). When specified this will restrict the command to only " +"operate on the submodules found at the specified paths. (This argument is " +"required with add)." msgstr "" #. type: Plain text -#: en/config.txt:517 +#: en/git-submodule.txt:422 msgid "" -"Can be overridden by the `GIT_PROXY_COMMAND` environment variable (which " -"always applies universally, without the special \"for\" handling)." +"When initializing submodules, a `.gitmodules` file in the top-level " +"directory of the containing repository is used to find the url of each " +"submodule. This file should be formatted in the same way as `$GIT_DIR/" +"config`. The key to each submodule url is \"submodule.$name.url\". See " +"linkgit:gitmodules[5] for details." msgstr "" #. type: Plain text -#: en/config.txt:522 -msgid "" -"The special string `none` can be used as the proxy command to specify that " -"no proxy be used for a given domain pattern. This is useful for excluding " -"servers inside a firewall from proxy use, while defaulting to a common proxy " -"for external domains." +#: en/git-submodule.txt:426 +msgid "linkgit:gitsubmodules[7], linkgit:gitmodules[5]." msgstr "" -#. type: Labeled list -#: en/config.txt:523 +#. type: Title = +#: en/git-svn.txt:2 #, no-wrap -msgid "core.sshCommand" +msgid "git-svn(1)" msgstr "" #. type: Plain text -#: en/config.txt:529 +#: en/git-svn.txt:7 msgid "" -"If this variable is set, `git fetch` and `git push` will use the specified " -"command instead of `ssh` when they need to connect to a remote system. The " -"command is in the same form as the `GIT_SSH_COMMAND` environment variable " -"and is overridden when the environment variable is set." +"git-svn - Bidirectional operation between a Subversion repository and Git" msgstr "" -#. type: Labeled list -#: en/config.txt:530 +#. type: Plain text +#: en/git-svn.txt:12 #, no-wrap -msgid "core.ignoreStat" +msgid "'git svn' <command> [<options>] [<arguments>]\n" msgstr "" #. type: Plain text -#: en/config.txt:534 +#: en/git-svn.txt:18 msgid "" -"If true, Git will avoid using lstat() calls to detect if files have changed " -"by setting the \"assume-unchanged\" bit for those tracked files which it has " -"updated identically in both the index and working tree." +"'git svn' is a simple conduit for changesets between Subversion and Git. It " +"provides a bidirectional flow of changes between a Subversion and a Git " +"repository." msgstr "" #. type: Plain text -#: en/config.txt:539 +#: en/git-svn.txt:23 msgid "" -"When files are modified outside of Git, the user will need to stage the " -"modified files explicitly (e.g. see 'Examples' section in " -"linkgit:git-update-index[1]). Git will not normally detect changes to those " -"files." +"'git svn' can track a standard Subversion repository, following the common " +"\"trunk/branches/tags\" layout, with the --stdlayout option. It can also " +"follow branches and tags in any layout with the -T/-t/-b options (see " +"options to 'init' below, and also the 'clone' command)." msgstr "" #. type: Plain text -#: en/config.txt:542 +#: en/git-svn.txt:27 msgid "" -"This is useful on systems where lstat() calls are very slow, such as " -"CIFS/Microsoft Windows." -msgstr "" - -#. type: Plain text -#: en/config.txt:544 -msgid "False by default." +"Once tracking a Subversion repository (with any of the above methods), the " +"Git repository can be updated from Subversion by the 'fetch' command and " +"Subversion updated from Git by the 'dcommit' command." msgstr "" #. type: Labeled list -#: en/config.txt:545 +#: en/git-svn.txt:31 #, no-wrap -msgid "core.preferSymlinkRefs" +msgid "'init'" msgstr "" #. type: Plain text -#: en/config.txt:550 +#: en/git-svn.txt:39 msgid "" -"Instead of the default \"symref\" format for HEAD and other symbolic " -"reference files, use symbolic links. This is sometimes needed to work with " -"old scripts that expect HEAD to be a symbolic link." +"Initializes an empty Git repository with additional metadata directories for " +"'git svn'. The Subversion URL may be specified as a command-line argument, " +"or as full URL arguments to -T/-t/-b. Optionally, the target directory to " +"operate on can be specified as a second argument. Normally this command " +"initializes the current directory." msgstr "" #. type: Labeled list -#: en/config.txt:551 +#: en/git-svn.txt:40 #, no-wrap -msgid "core.bare" -msgstr "" - -#. type: Plain text -#: en/config.txt:556 -msgid "" -"If true this repository is assumed to be 'bare' and has no working directory " -"associated with it. If this is the case a number of commands that require a " -"working directory will be disabled, such as linkgit:git-add[1] or " -"linkgit:git-merge[1]." +msgid "-T<trunk_subdir>" msgstr "" -#. type: Plain text -#: en/config.txt:561 -msgid "" -"This setting is automatically guessed by linkgit:git-clone[1] or " -"linkgit:git-init[1] when the repository was created. By default a " -"repository that ends in \"/.git\" is assumed to be not bare (bare = false), " -"while all other repositories are assumed to be bare (bare" +#. type: Labeled list +#: en/git-svn.txt:41 +#, no-wrap +msgid "--trunk=<trunk_subdir>" msgstr "" -#. type: Title = -#: en/config.txt:561 +#. type: Labeled list +#: en/git-svn.txt:42 #, no-wrap -msgid "true)." +msgid "-t<tags_subdir>" msgstr "" #. type: Labeled list -#: en/config.txt:563 +#: en/git-svn.txt:43 #, no-wrap -msgid "core.worktree" +msgid "--tags=<tags_subdir>" msgstr "" -#. type: Plain text -#: en/config.txt:576 -msgid "" -"Set the path to the root of the working tree. If `GIT_COMMON_DIR` " -"environment variable is set, core.worktree is ignored and not used for " -"determining the root of working tree. This can be overridden by the " -"`GIT_WORK_TREE` environment variable and the `--work-tree` command-line " -"option. The value can be an absolute path or relative to the path to the " -".git directory, which is either specified by --git-dir or GIT_DIR, or " -"automatically discovered. If --git-dir or GIT_DIR is specified but none of " -"--work-tree, GIT_WORK_TREE and core.worktree is specified, the current " -"working directory is regarded as the top level of your working tree." +#. type: Labeled list +#: en/git-svn.txt:44 +#, no-wrap +msgid "-b<branches_subdir>" msgstr "" -#. type: Plain text -#: en/config.txt:586 -msgid "" -"Note that this variable is honored even when set in a configuration file in " -"a \".git\" subdirectory of a directory and its value differs from the latter " -"directory (e.g. \"/path/to/.git/config\" has core.worktree set to " -"\"/different/path\"), which is most likely a misconfiguration. Running Git " -"commands in the \"/path/to\" directory will still use \"/different/path\" as " -"the root of the work tree and can cause confusion unless you know what you " -"are doing (e.g. you are creating a read-only snapshot of the same index to a " -"location different from the repository's usual working tree)." +#. type: Labeled list +#: en/git-svn.txt:45 +#, no-wrap +msgid "--branches=<branches_subdir>" msgstr "" #. type: Labeled list -#: en/config.txt:587 +#: en/git-svn.txt:47 #, no-wrap -msgid "core.logAllRefUpdates" +msgid "--stdlayout" msgstr "" #. type: Plain text -#: en/config.txt:598 +#: en/git-svn.txt:58 msgid "" -"Enable the reflog. Updates to a ref <ref> is logged to the file " -"\"`$GIT_DIR/logs/<ref>`\", by appending the new and old SHA-1, the date/time " -"and the reason of the update, but only when the file exists. If this " -"configuration variable is set to `true`, missing \"`$GIT_DIR/logs/<ref>`\" " -"file is automatically created for branch heads (i.e. under `refs/heads/`), " -"remote refs (i.e. under `refs/remotes/`), note refs (i.e. under " -"`refs/notes/`), and the symbolic ref `HEAD`. If it is set to `always`, then " -"a missing reflog is automatically created for any ref under `refs/`." +"These are optional command-line options for init. Each of these flags can " +"point to a relative repository path (--tags=project/tags) or a full url (--" +"tags=https://foo.org/project/tags). You can specify more than one --tags " +"and/or --branches options, in case your Subversion repository places tags or " +"branches under multiple paths. The option --stdlayout is a shorthand way of " +"setting trunk,tags,branches as the relative paths, which is the Subversion " +"default. If any of the other options are given as well, they take precedence." msgstr "" -#. type: Plain text -#: en/config.txt:601 -msgid "" -"This information can be used to determine what commit was the tip of a " -"branch \"2 days ago\"." +#. type: Labeled list +#: en/git-svn.txt:58 +#, no-wrap +msgid "--no-metadata" msgstr "" #. type: Plain text -#: en/config.txt:605 +#: en/git-svn.txt:62 msgid "" -"This value is true by default in a repository that has a working directory " -"associated with it, and false by default in a bare repository." +"Set the 'noMetadata' option in the [svn-remote] config. This option is not " +"recommended, please read the 'svn.noMetadata' section of this manpage before " +"using this option." msgstr "" #. type: Labeled list -#: en/config.txt:606 +#: en/git-svn.txt:62 #, no-wrap -msgid "core.repositoryFormatVersion" +msgid "--use-svm-props" msgstr "" #. type: Plain text -#: en/config.txt:609 -msgid "Internal variable identifying the repository format and layout version." +#: en/git-svn.txt:64 +msgid "Set the 'useSvmProps' option in the [svn-remote] config." msgstr "" #. type: Labeled list -#: en/config.txt:610 +#: en/git-svn.txt:64 #, no-wrap -msgid "core.sharedRepository" +msgid "--use-svnsync-props" msgstr "" #. type: Plain text -#: en/config.txt:624 -msgid "" -"When 'group' (or 'true'), the repository is made shareable between several " -"users in a group (making sure all the files and objects are " -"group-writable). When 'all' (or 'world' or 'everybody'), the repository will " -"be readable by all users, additionally to being group-shareable. When " -"'umask' (or 'false'), Git will use permissions reported by umask(2). When " -"'0xxx', where '0xxx' is an octal number, files in the repository will have " -"this mode value. '0xxx' will override user's umask value (whereas the other " -"options will only override requested parts of the user's umask " -"value). Examples: '0660' will make the repo read/write-able for the owner " -"and group, but inaccessible to others (equivalent to 'group' unless umask is " -"e.g. '0022'). '0640' is a repository that is group-readable but not " -"group-writable. See linkgit:git-init[1]. False by default." +#: en/git-svn.txt:66 +msgid "Set the 'useSvnsyncProps' option in the [svn-remote] config." msgstr "" #. type: Labeled list -#: en/config.txt:625 +#: en/git-svn.txt:66 #, no-wrap -msgid "core.warnAmbiguousRefs" +msgid "--rewrite-root=<URL>" msgstr "" #. type: Plain text -#: en/config.txt:628 -msgid "" -"If true, Git will warn you if the ref name you passed it is ambiguous and " -"might match multiple refs in the repository. True by default." +#: en/git-svn.txt:68 +msgid "Set the 'rewriteRoot' option in the [svn-remote] config." msgstr "" #. type: Labeled list -#: en/config.txt:629 +#: en/git-svn.txt:68 #, no-wrap -msgid "core.compression" +msgid "--rewrite-uuid=<UUID>" msgstr "" #. type: Plain text -#: en/config.txt:635 -msgid "" -"An integer -1..9, indicating a default compression level. -1 is the zlib " -"default. 0 means no compression, and 1..9 are various speed/size tradeoffs, " -"9 being slowest. If set, this provides a default to other compression " -"variables, such as `core.looseCompression` and `pack.compression`." +#: en/git-svn.txt:70 +msgid "Set the 'rewriteUUID' option in the [svn-remote] config." msgstr "" #. type: Labeled list -#: en/config.txt:636 +#: en/git-svn.txt:70 #, no-wrap -msgid "core.looseCompression" +msgid "--username=<user>" msgstr "" #. type: Plain text -#: en/config.txt:642 +#: en/git-svn.txt:75 msgid "" -"An integer -1..9, indicating the compression level for objects that are not " -"in a pack file. -1 is the zlib default. 0 means no compression, and 1..9 are " -"various speed/size tradeoffs, 9 being slowest. If not set, defaults to " -"core.compression. If that is not set, defaults to 1 (best speed)." -msgstr "" - -#. type: Labeled list -#: en/config.txt:643 -#, no-wrap -msgid "core.packedGitWindowSize" +"For transports that SVN handles authentication for (http, https, and plain " +"svn), specify the username. For other transports (e.g. `svn+ssh://`), you " +"must include the username in the URL, e.g. `svn+ssh://foo@svn.bar.com/" +"project`" msgstr "" #. type: Plain text -#: en/config.txt:651 +#: en/git-svn.txt:90 msgid "" -"Number of bytes of a pack file to map into memory in a single mapping " -"operation. Larger window sizes may allow your system to process a smaller " -"number of large pack files more quickly. Smaller window sizes will " -"negatively affect performance due to increased calls to the operating " -"system's memory manager, but may improve performance when accessing a large " -"number of large pack files." +"This allows one to specify a prefix which is prepended to the names of " +"remotes if trunk/branches/tags are specified. The prefix does not " +"automatically include a trailing slash, so be sure you include one in the " +"argument if that is what you want. If --branches/-b is specified, the " +"prefix must include a trailing slash. Setting a prefix (with a trailing " +"slash) is strongly encouraged in any case, as your SVN-tracking refs will " +"then be located at \"refs/remotes/$prefix/*\", which is compatible with " +"Git's own remote-tracking ref layout (refs/remotes/$remote/*). Setting a " +"prefix is also useful if you wish to track multiple projects that share a " +"common repository. By default, the prefix is set to 'origin/'." msgstr "" #. type: Plain text -#: en/config.txt:656 +#: en/git-svn.txt:97 msgid "" -"Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32 MiB on 32 " -"bit platforms and 1 GiB on 64 bit platforms. This should be reasonable for " -"all users/operating systems. You probably do not need to adjust this value." -msgstr "" - -#. type: Plain text -#: en/config.txt:658 en/config.txt:670 en/config.txt:683 en/config.txt:696 -msgid "Common unit suffixes of 'k', 'm', or 'g' are supported." +"Before Git v2.0, the default prefix was \"\" (no prefix). This meant that " +"SVN-tracking refs were put at \"refs/remotes/*\", which is incompatible with " +"how Git's own remote-tracking refs are organized. If you still want the old " +"default, you can get it by passing `--prefix \"\"` on the command line (`--" +"prefix=\"\"` may not work if your Perl's Getopt::Long is < v2.37)." msgstr "" #. type: Labeled list -#: en/config.txt:659 +#: en/git-svn.txt:98 en/git-svn.txt:145 #, no-wrap -msgid "core.packedGitLimit" +msgid "--ignore-refs=<regex>" msgstr "" #. type: Plain text -#: en/config.txt:664 +#: en/git-svn.txt:102 msgid "" -"Maximum number of bytes to map simultaneously into memory from pack files. " -"If Git needs to access more than this many bytes at once to complete an " -"operation it will unmap existing regions to reclaim virtual address space " -"within the process." +"When passed to 'init' or 'clone' this regular expression will be preserved " +"as a config key. See 'fetch' for a description of `--ignore-refs`." +msgstr "" + +#. type: Labeled list +#: en/git-svn.txt:102 en/git-svn.txt:157 +#, no-wrap +msgid "--ignore-paths=<regex>" msgstr "" #. type: Plain text -#: en/config.txt:668 +#: en/git-svn.txt:106 msgid "" -"Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms. This " -"should be reasonable for all users/operating systems, except on the largest " -"projects. You probably do not need to adjust this value." +"When passed to 'init' or 'clone' this regular expression will be preserved " +"as a config key. See 'fetch' for a description of `--ignore-paths`." msgstr "" #. type: Labeled list -#: en/config.txt:671 +#: en/git-svn.txt:106 en/git-svn.txt:186 #, no-wrap -msgid "core.deltaBaseCacheLimit" +msgid "--include-paths=<regex>" msgstr "" #. type: Plain text -#: en/config.txt:677 +#: en/git-svn.txt:110 msgid "" -"Maximum number of bytes to reserve for caching base objects that may be " -"referenced by multiple deltified objects. By storing the entire " -"decompressed base objects in a cache Git is able to avoid unpacking and " -"decompressing frequently used base objects multiple times." +"When passed to 'init' or 'clone' this regular expression will be preserved " +"as a config key. See 'fetch' for a description of `--include-paths`." +msgstr "" + +#. type: Labeled list +#: en/git-svn.txt:110 +#, no-wrap +msgid "--no-minimize-url" msgstr "" #. type: Plain text -#: en/config.txt:681 +#: en/git-svn.txt:121 msgid "" -"Default is 96 MiB on all platforms. This should be reasonable for all " -"users/operating systems, except on the largest projects. You probably do " -"not need to adjust this value." +"When tracking multiple directories (using --stdlayout, --branches, or --tags " +"options), git svn will attempt to connect to the root (or highest allowed " +"level) of the Subversion repository. This default allows better tracking of " +"history if entire projects are moved within a repository, but may cause " +"issues on repositories where read access restrictions are in place. Passing " +"`--no-minimize-url` will allow git svn to accept URLs as-is without " +"attempting to connect to a higher level directory. This option is off by " +"default when only one URL/branch is tracked (it would do little good)." msgstr "" #. type: Labeled list -#: en/config.txt:684 +#: en/git-svn.txt:122 #, no-wrap -msgid "core.bigFileThreshold" +msgid "'fetch'" msgstr "" #. type: Plain text -#: en/config.txt:690 +#: en/git-svn.txt:127 msgid "" -"Files larger than this size are stored deflated, without attempting delta " -"compression. Storing large files without delta compression avoids excessive " -"memory usage, at the slight expense of increased disk usage. Additionally " -"files larger than this size are always treated as binary." +"Fetch unfetched revisions from the Subversion remote we are tracking. The " +"name of the [svn-remote \"...\"] section in the $GIT_DIR/config file may be " +"specified as an optional command-line argument." msgstr "" #. type: Plain text -#: en/config.txt:694 +#: en/git-svn.txt:130 en/git-svn.txt:243 msgid "" -"Default is 512 MiB on all platforms. This should be reasonable for most " -"projects as source code and other text files can still be delta compressed, " -"but larger binary media files won't be." +"This automatically updates the rev_map if needed (see '$GIT_DIR/svn/\\*\\*/." +"rev_map.*' in the FILES section below for details)." msgstr "" #. type: Labeled list -#: en/config.txt:697 +#: en/git-svn.txt:131 #, no-wrap -msgid "core.excludesFile" +msgid "--localtime" msgstr "" #. type: Plain text -#: en/config.txt:704 +#: en/git-svn.txt:135 msgid "" -"Specifies the pathname to the file that contains patterns to describe paths " -"that are not meant to be tracked, in addition to '.gitignore' " -"(per-directory) and '.git/info/exclude'. Defaults to " -"`$XDG_CONFIG_HOME/git/ignore`. If `$XDG_CONFIG_HOME` is either not set or " -"empty, `$HOME/.config/git/ignore` is used instead. See linkgit:gitignore[5]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:705 -#, no-wrap -msgid "core.askPass" +"Store Git commit times in the local time zone instead of UTC. This makes " +"'git log' (even without --date=local) show the same times that `svn log` " +"would in the local time zone." msgstr "" #. type: Plain text -#: en/config.txt:713 +#: en/git-svn.txt:141 msgid "" -"Some commands (e.g. svn and http interfaces) that interactively ask for a " -"password can be told to use an external program given via the value of this " -"variable. Can be overridden by the `GIT_ASKPASS` environment variable. If " -"not set, fall back to the value of the `SSH_ASKPASS` environment variable " -"or, failing that, a simple password prompt. The external program shall be " -"given a suitable prompt as command-line argument and write the password on " -"its STDOUT." +"This doesn't interfere with interoperating with the Subversion repository " +"you cloned from, but if you wish for your local Git repository to be able to " +"interoperate with someone else's local Git repository, either don't use this " +"option or you should both use it in the same local time zone." msgstr "" #. type: Labeled list -#: en/config.txt:714 +#: en/git-svn.txt:142 en/git-svn.txt:536 #, no-wrap -msgid "core.attributesFile" +msgid "--parent" +msgstr "" + +#. type: Plain text +#: en/git-svn.txt:144 +msgid "Fetch only from the SVN parent of the current HEAD." msgstr "" #. type: Plain text -#: en/config.txt:721 +#: en/git-svn.txt:150 msgid "" -"In addition to '.gitattributes' (per-directory) and '.git/info/attributes', " -"Git looks into this file for attributes (see linkgit:gitattributes[5]). Path " -"expansions are made the same way as for `core.excludesFile`. Its default " -"value is `$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either " -"not set or empty, `$HOME/.config/git/attributes` is used instead." +"Ignore refs for branches or tags matching the Perl regular expression. A " +"\"negative look-ahead assertion\" like `^refs/remotes/origin/(?!tags/wanted-" +"tag|wanted-branch).*$` can be used to allow only certain refs." msgstr "" -#. type: Labeled list -#: en/config.txt:722 +#. type: Plain text +#: en/git-svn.txt:153 #, no-wrap -msgid "core.hooksPath" +msgid "config key: svn-remote.<name>.ignore-refs\n" msgstr "" #. type: Plain text -#: en/config.txt:728 +#: en/git-svn.txt:156 msgid "" -"By default Git will look for your hooks in the '$GIT_DIR/hooks' " -"directory. Set this to different path, e.g. '/etc/git/hooks', and Git will " -"try to find your hooks in that directory, e.g. '/etc/git/hooks/pre-receive' " -"instead of in '$GIT_DIR/hooks/pre-receive'." +"If the ignore-refs configuration key is set, and the command-line option is " +"also given, both regular expressions will be used." msgstr "" #. type: Plain text -#: en/config.txt:732 +#: en/git-svn.txt:163 msgid "" -"The path can be either absolute or relative. A relative path is taken as " -"relative to the directory where the hooks are run (see the \"DESCRIPTION\" " -"section of linkgit:githooks[5])." +"This allows one to specify a Perl regular expression that will cause " +"skipping of all matching paths from checkout from SVN. The `--ignore-paths` " +"option should match for every 'fetch' (including automatic fetches due to " +"'clone', 'dcommit', 'rebase', etc) on a given repository." +msgstr "" + +#. type: Plain text +#: en/git-svn.txt:166 +#, no-wrap +msgid "config key: svn-remote.<name>.ignore-paths\n" msgstr "" #. type: Plain text -#: en/config.txt:738 +#: en/git-svn.txt:169 msgid "" -"This configuration variable is useful in cases where you'd like to centrally " -"configure your Git hooks instead of configuring them on a per-repository " -"basis, or as a more flexible and centralized alternative to having an " -"`init.templateDir` where you've changed default hooks." +"If the ignore-paths configuration key is set, and the command-line option is " +"also given, both regular expressions will be used." msgstr "" #. type: Labeled list -#: en/config.txt:739 +#: en/git-svn.txt:173 #, no-wrap -msgid "core.editor" +msgid "Skip \"doc*\" directory for every fetch" msgstr "" -#. type: Plain text -#: en/config.txt:744 -msgid "" -"Commands such as `commit` and `tag` that lets you edit messages by launching " -"an editor uses the value of this variable when it is set, and the " -"environment variable `GIT_EDITOR` is not set. See linkgit:git-var[1]." +#. type: delimited block - +#: en/git-svn.txt:177 +#, no-wrap +msgid "--ignore-paths=\"^doc\"\n" msgstr "" #. type: Labeled list -#: en/config.txt:745 +#: en/git-svn.txt:179 +#, no-wrap +msgid "Skip \"branches\" and \"tags\" of first level directories" +msgstr "" + +#. type: delimited block - +#: en/git-svn.txt:183 #, no-wrap -msgid "core.commentChar" +msgid "--ignore-paths=\"^[^/]+/(?:branches|tags)\"\n" msgstr "" #. type: Plain text -#: en/config.txt:750 +#: en/git-svn.txt:193 msgid "" -"Commands such as `commit` and `tag` that lets you edit messages consider a " -"line that begins with this character commented, and removes them after the " -"editor returns (default '#')." +"This allows one to specify a Perl regular expression that will cause the " +"inclusion of only matching paths from checkout from SVN. The `--include-" +"paths` option should match for every 'fetch' (including automatic fetches " +"due to 'clone', 'dcommit', 'rebase', etc) on a given repository. `--ignore-" +"paths` takes precedence over `--include-paths`." msgstr "" #. type: Plain text -#: en/config.txt:753 -msgid "" -"If set to \"auto\", `git-commit` would select a character that is not the " -"beginning character of any line in existing commit messages." +#: en/git-svn.txt:196 +#, no-wrap +msgid "config key: svn-remote.<name>.include-paths\n" msgstr "" #. type: Labeled list -#: en/config.txt:754 +#: en/git-svn.txt:197 #, no-wrap -msgid "core.packedRefsTimeout" +msgid "--log-window-size=<n>" msgstr "" #. type: Plain text -#: en/config.txt:759 +#: en/git-svn.txt:203 msgid "" -"The length of time, in milliseconds, to retry when trying to lock the " -"`packed-refs` file. Value 0 means not to retry at all; -1 means to try " -"indefinitely. Default is 1000 (i.e., retry for 1 second)." +"Fetch <n> log entries per request when scanning Subversion history. The " +"default is 100. For very large Subversion repositories, larger values may be " +"needed for 'clone'/'fetch' to complete in reasonable time. But overly large " +"values may lead to higher memory usage and request timeouts." msgstr "" #. type: Labeled list -#: en/config.txt:760 +#: en/git-svn.txt:204 #, no-wrap -msgid "sequence.editor" +msgid "'clone'" msgstr "" #. type: Plain text -#: en/config.txt:765 +#: en/git-svn.txt:214 msgid "" -"Text editor used by `git rebase -i` for editing the rebase instruction " -"file. The value is meant to be interpreted by the shell when it is used. " -"It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable. " -"When not configured the default commit message editor is used instead." +"Runs 'init' and 'fetch'. It will automatically create a directory based on " +"the basename of the URL passed to it; or if a second argument is passed; it " +"will create a directory and work within that. It accepts all arguments that " +"the 'init' and 'fetch' commands accept; with the exception of `--fetch-all` " +"and `--parent`. After a repository is cloned, the 'fetch' command will be " +"able to update revisions without affecting the working tree; and the " +"'rebase' command will be able to update the working tree with the latest " +"changes." msgstr "" #. type: Labeled list -#: en/config.txt:766 +#: en/git-svn.txt:215 #, no-wrap -msgid "core.pager" +msgid "--preserve-empty-dirs" msgstr "" #. type: Plain text -#: en/config.txt:786 +#: en/git-svn.txt:221 msgid "" -"When the `LESS` environment variable is unset, Git sets it to `FRX` (if " -"`LESS` environment variable is set, Git does not change it at all). If you " -"want to selectively override Git's default setting for `LESS`, you can set " -"`core.pager` to e.g. `less -S`. This will be passed to the shell by Git, " -"which will translate the final command to `LESS=FRX less -S`. The " -"environment does not set the `S` option but the command line does, " -"instructing less to truncate long lines. Similarly, setting `core.pager` to " -"`less -+F` will deactivate the `F` option specified by the environment from " -"the command-line, deactivating the \"quit if one screen\" behavior of " -"`less`. One can specifically activate some flags for particular commands: " -"for example, setting `pager.blame` to `less -S` enables line truncation only " -"for `git blame`." +"Create a placeholder file in the local Git repository for each empty " +"directory fetched from Subversion. This includes directories that become " +"empty by removing all entries in the Subversion repository (but not the " +"directory itself). The placeholder files are also tracked and removed when " +"no longer necessary." +msgstr "" + +#. type: Labeled list +#: en/git-svn.txt:222 +#, no-wrap +msgid "--placeholder-filename=<filename>" msgstr "" #. type: Plain text -#: en/config.txt:790 +#: en/git-svn.txt:225 msgid "" -"Likewise, when the `LV` environment variable is unset, Git sets it to `-c`. " -"You can override this setting by exporting `LV` with another value or " -"setting `core.pager` to `lv +c`." +"Set the name of placeholder files created by --preserve-empty-dirs. " +"Default: \".gitignore\"" msgstr "" #. type: Labeled list -#: en/config.txt:791 +#: en/git-svn.txt:226 #, no-wrap -msgid "core.whitespace" +msgid "'rebase'" msgstr "" #. type: Plain text -#: en/config.txt:797 +#: en/git-svn.txt:229 msgid "" -"A comma separated list of common whitespace problems to notice. 'git diff' " -"will use `color.diff.whitespace` to highlight them, and 'git apply " -"--whitespace=error' will consider them as errors. You can prefix `-` to " -"disable any of them (e.g. `-trailing-space`):" +"This fetches revisions from the SVN parent of the current HEAD and rebases " +"the current (uncommitted to SVN) work against it." msgstr "" #. type: Plain text -#: en/config.txt:800 +#: en/git-svn.txt:233 msgid "" -"`blank-at-eol` treats trailing whitespaces at the end of the line as an " -"error (enabled by default)." +"This works similarly to `svn update` or 'git pull' except that it preserves " +"linear history with 'git rebase' instead of 'git merge' for ease of " +"dcommitting with 'git svn'." msgstr "" #. type: Plain text -#: en/config.txt:803 +#: en/git-svn.txt:237 msgid "" -"`space-before-tab` treats a space character that appears immediately before " -"a tab character in the initial indent part of the line as an error (enabled " -"by default)." +"This accepts all options that 'git svn fetch' and 'git rebase' accept. " +"However, `--fetch-all` only fetches from the current [svn-remote], and not " +"all [svn-remote] definitions." msgstr "" #. type: Plain text -#: en/config.txt:806 +#: en/git-svn.txt:240 msgid "" -"`indent-with-non-tab` treats a line that is indented with space characters " -"instead of the equivalent tabs as an error (not enabled by default)." +"Like 'git rebase'; this requires that the working tree be clean and have no " +"uncommitted changes." msgstr "" #. type: Plain text -#: en/config.txt:808 +#: en/git-svn.txt:248 msgid "" -"`tab-in-indent` treats a tab character in the initial indent part of the " -"line as an error (not enabled by default)." +"Do not fetch remotely; only run 'git rebase' against the last fetched commit " +"from the upstream SVN." +msgstr "" + +#. type: Labeled list +#: en/git-svn.txt:249 +#, no-wrap +msgid "'dcommit'" msgstr "" #. type: Plain text -#: en/config.txt:810 +#: en/git-svn.txt:254 msgid "" -"`blank-at-eof` treats blank lines added at the end of file as an error " -"(enabled by default)." +"Commit each diff from the current branch directly to the SVN repository, and " +"then rebase or reset (depending on whether or not there is a diff between " +"SVN and head). This will create a revision in SVN for each commit in Git." msgstr "" #. type: Plain text -#: en/config.txt:812 +#: en/git-svn.txt:258 msgid "" -"`trailing-space` is a short-hand to cover both `blank-at-eol` and " -"`blank-at-eof`." +"When an optional Git branch name (or a Git commit object name) is specified " +"as an argument, the subcommand works on the specified branch, not on the " +"current branch." msgstr "" #. type: Plain text -#: en/config.txt:816 -msgid "" -"`cr-at-eol` treats a carriage-return at the end of line as part of the line " -"terminator, i.e. with it, `trailing-space` does not trigger if the character " -"before such a carriage-return is not a whitespace (not enabled by default)." +#: en/git-svn.txt:260 +msgid "Use of 'dcommit' is preferred to 'set-tree' (below)." msgstr "" #. type: Plain text -#: en/config.txt:819 -msgid "" -"`tabwidth=<n>` tells how many character positions a tab occupies; this is " -"relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent` " -"errors. The default tab width is 8. Allowed values are 1 to 63." +#: en/git-svn.txt:263 +msgid "After committing, do not rebase or reset." msgstr "" #. type: Labeled list -#: en/config.txt:820 +#: en/git-svn.txt:263 #, no-wrap -msgid "core.fsyncObjectFiles" -msgstr "" - -#. type: Plain text -#: en/config.txt:822 -msgid "This boolean will enable 'fsync()' when writing object files." +msgid "--commit-url <URL>" msgstr "" #. type: Plain text -#: en/config.txt:827 +#: en/git-svn.txt:269 msgid "" -"This is a total waste of time and effort on a filesystem that orders data " -"writes properly, but can be useful for filesystems that do not use " -"journalling (traditional UNIX filesystems) or that only journal metadata and " -"not file contents (OS X's HFS+, or Linux ext3 with \"data=writeback\")." +"Commit to this SVN URL (the full path). This is intended to allow existing " +"'git svn' repositories created with one transport method (e.g. `svn://` or " +"`http://` for anonymous read) to be reused if a user is later given access " +"to an alternate transport method (e.g. `svn+ssh://` or `https://`) for " +"commit." msgstr "" -#. type: Labeled list -#: en/config.txt:828 +#. type: Plain text +#: en/git-svn.txt:273 #, no-wrap -msgid "core.preloadIndex" +msgid "" +"config key: svn-remote.<name>.commiturl\n" +"config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)\n" msgstr "" #. type: Plain text -#: en/config.txt:830 -msgid "Enable parallel index preload for operations like 'git diff'" +#: en/git-svn.txt:277 +msgid "" +"Note that the SVN URL of the commiturl config key includes the SVN branch. " +"If you rather want to set the commit URL for an entire SVN repository use " +"svn-remote.<name>.pushurl instead." msgstr "" #. type: Plain text -#: en/config.txt:836 +#: en/git-svn.txt:280 msgid "" -"This can speed up operations like 'git diff' and 'git status' especially on " -"filesystems like NFS that have weak caching semantics and thus relatively " -"high IO latencies. When enabled, Git will do the index comparison to the " -"filesystem data in parallel, allowing overlapping IO's. Defaults to true." +"Using this option for any other purpose (don't ask) is very strongly " +"discouraged." msgstr "" #. type: Labeled list -#: en/config.txt:837 +#: en/git-svn.txt:281 #, no-wrap -msgid "core.createObject" +msgid "--mergeinfo=<mergeinfo>" msgstr "" #. type: Plain text -#: en/config.txt:841 +#: en/git-svn.txt:288 msgid "" -"You can set this to 'link', in which case a hardlink followed by a delete of " -"the source are used to make sure that object creation will not overwrite " -"existing objects." +"Add the given merge information during the dcommit (e.g. `--mergeinfo=\"/" +"branches/foo:1-10\"`). All svn server versions can store this information " +"(as a property), and svn clients starting from version 1.5 can make use of " +"it. To specify merge information from multiple branches, use a single space " +"character between the branches (`--mergeinfo=\"/branches/foo:1-10 /branches/" +"bar:3,5-6,8\"`)" msgstr "" #. type: Plain text -#: en/config.txt:845 -msgid "" -"On some file system/operating system combinations, this is unreliable. Set " -"this config setting to 'rename' there; However, This will remove the check " -"that makes sure that existing object files will not get overwritten." +#: en/git-svn.txt:291 +#, no-wrap +msgid "config key: svn.pushmergeinfo\n" msgstr "" #. type: Plain text -#: en/config.txt:851 +#: en/git-svn.txt:296 msgid "" -"When showing commit messages, also show notes which are stored in the given " -"ref. The ref must be fully qualified. If the given ref does not exist, it " -"is not an error but means that no notes should be printed." +"This option will cause git-svn to attempt to automatically populate the svn:" +"mergeinfo property in the SVN repository when possible. Currently, this can " +"only be done when dcommitting non-fast-forward merges where all parents but " +"the first have already been pushed into SVN." msgstr "" #. type: Plain text -#: en/config.txt:854 +#: en/git-svn.txt:301 msgid "" -"This setting defaults to \"refs/notes/commits\", and it can be overridden by " -"the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:855 -#, no-wrap -msgid "core.sparseCheckout" +"Ask the user to confirm that a patch set should actually be sent to SVN. " +"For each patch, one may answer \"yes\" (accept this patch), \"no\" (discard " +"this patch), \"all\" (accept all patches), or \"quit\"." msgstr "" #. type: Plain text -#: en/config.txt:858 +#: en/git-svn.txt:304 msgid "" -"Enable \"sparse checkout\" feature. See section \"Sparse checkout\" in " -"linkgit:git-read-tree[1] for more information." +"'git svn dcommit' returns immediately if answer is \"no\" or \"quit\", " +"without committing anything to SVN." msgstr "" #. type: Labeled list -#: en/config.txt:859 +#: en/git-svn.txt:305 #, no-wrap -msgid "core.abbrev" +msgid "'branch'" msgstr "" #. type: Plain text -#: en/config.txt:865 -msgid "" -"Set the length object names are abbreviated to. If unspecified or set to " -"\"auto\", an appropriate value is computed based on the approximate number " -"of packed objects in your repository, which hopefully is enough for " -"abbreviated object names to stay unique for some time." -msgstr "" - -#. type: Labeled list -#: en/config.txt:866 -#, no-wrap -msgid "add.ignoreErrors" +#: en/git-svn.txt:307 +msgid "Create a branch in the SVN repository." msgstr "" #. type: Labeled list -#: en/config.txt:867 +#: en/git-svn.txt:309 #, no-wrap -msgid "add.ignore-errors (deprecated)" +msgid "--message" msgstr "" #. type: Plain text -#: en/config.txt:873 -msgid "" -"Tells 'git add' to continue adding files when some files cannot be added due " -"to indexing errors. Equivalent to the `--ignore-errors` option of " -"linkgit:git-add[1]. `add.ignore-errors` is deprecated, as it does not " -"follow the usual naming convention for configuration variables." +#: en/git-svn.txt:311 +msgid "Allows to specify the commit message." msgstr "" #. type: Labeled list -#: en/config.txt:874 +#: en/git-svn.txt:313 #, no-wrap -msgid "alias.*" -msgstr "" - -#. type: Plain text -#: en/config.txt:882 -msgid "" -"Command aliases for the linkgit:git[1] command wrapper - e.g. after " -"defining \"alias.last = cat-file commit HEAD\", the invocation \"git last\" " -"is equivalent to \"git cat-file commit HEAD\". To avoid confusion and " -"troubles with script usage, aliases that hide existing Git commands are " -"ignored. Arguments are split by spaces, the usual shell quoting and escaping " -"is supported. A quote pair or a backslash can be used to quote them." +msgid "--tag" msgstr "" #. type: Plain text -#: en/config.txt:892 +#: en/git-svn.txt:316 msgid "" -"If the alias expansion is prefixed with an exclamation point, it will be " -"treated as a shell command. For example, defining \"alias.new = !gitk --all " -"--not ORIG_HEAD\", the invocation \"git new\" is equivalent to running the " -"shell command \"gitk --all --not ORIG_HEAD\". Note that shell commands will " -"be executed from the top-level directory of a repository, which may not " -"necessarily be the current directory. `GIT_PREFIX` is set as returned by " -"running 'git rev-parse --show-prefix' from the original current " -"directory. See linkgit:git-rev-parse[1]." +"Create a tag by using the tags_subdir instead of the branches_subdir " +"specified during git svn init." msgstr "" #. type: Labeled list -#: en/config.txt:893 +#: en/git-svn.txt:317 #, no-wrap -msgid "am.keepcr" -msgstr "" - -#. type: Plain text -#: en/config.txt:899 -msgid "" -"If true, git-am will call git-mailsplit for patches in mbox format with " -"parameter `--keep-cr`. In this case git-mailsplit will not remove `\\r` from " -"lines ending with `\\r\\n`. Can be overridden by giving `--no-keep-cr` from " -"the command line. See linkgit:git-am[1], linkgit:git-mailsplit[1]." +msgid "-d<path>" msgstr "" #. type: Labeled list -#: en/config.txt:900 +#: en/git-svn.txt:318 #, no-wrap -msgid "am.threeWay" +msgid "--destination=<path>" msgstr "" #. type: Plain text -#: en/config.txt:907 +#: en/git-svn.txt:326 msgid "" -"By default, `git am` will fail if the patch does not apply cleanly. When set " -"to true, this setting tells `git am` to fall back on 3-way merge if the " -"patch records the identity of blobs it is supposed to apply to and we have " -"those blobs available locally (equivalent to giving the `--3way` option from " -"the command line). Defaults to `false`. See linkgit:git-am[1]." +"If more than one --branches (or --tags) option was given to the 'init' or " +"'clone' command, you must provide the location of the branch (or tag) you " +"wish to create in the SVN repository. <path> specifies which path to use to " +"create the branch or tag and should match the pattern on the left-hand side " +"of one of the configured branches or tags refspecs. You can see these " +"refspecs with the commands" msgstr "" #. type: Plain text -#: en/config.txt:915 +#: en/git-svn.txt:329 msgid "" -"When set to 'change', tells 'git apply' to ignore changes in whitespace, in " -"the same way as the `--ignore-space-change` option. When set to one of: no, " -"none, never, false tells 'git apply' to respect all whitespace differences. " -"See linkgit:git-apply[1]." +"git config --get-all svn-remote.<name>.branches git config --get-all svn-" +"remote.<name>.tags" msgstr "" #. type: Plain text -#: en/config.txt:919 +#: en/git-svn.txt:332 msgid "" -"Tells 'git apply' how to handle whitespaces, in the same way as the " -"`--whitespace` option. See linkgit:git-apply[1]." +"where <name> is the name of the SVN repository as specified by the -R option " +"to 'init' (or \"svn\" by default)." msgstr "" #. type: Labeled list -#: en/config.txt:920 +#: en/git-svn.txt:333 #, no-wrap -msgid "branch.autoSetupMerge" +msgid "--username" msgstr "" #. type: Plain text -#: en/config.txt:931 +#: en/git-svn.txt:336 msgid "" -"Tells 'git branch' and 'git checkout' to set up new branches so that " -"linkgit:git-pull[1] will appropriately merge from the starting point " -"branch. Note that even if this option is not set, this behavior can be " -"chosen per-branch using the `--track` and `--no-track` options. The valid " -"settings are: `false` -- no automatic setup is done; `true` -- automatic " -"setup is done when the starting point is a remote-tracking branch; `always` " -"-- automatic setup is done when the starting point is either a local branch " -"or remote-tracking branch. This option defaults to true." +"Specify the SVN username to perform the commit as. This option overrides " +"the 'username' configuration property." msgstr "" #. type: Labeled list -#: en/config.txt:932 +#: en/git-svn.txt:337 #, no-wrap -msgid "branch.autoSetupRebase" +msgid "--commit-url" msgstr "" #. type: Plain text -#: en/config.txt:946 +#: en/git-svn.txt:342 msgid "" -"When a new branch is created with 'git branch' or 'git checkout' that tracks " -"another branch, this variable tells Git to set up pull to rebase instead of " -"merge (see \"branch.<name>.rebase\"). When `never`, rebase is never " -"automatically set to true. When `local`, rebase is set to true for tracked " -"branches of other local branches. When `remote`, rebase is set to true for " -"tracked branches of remote-tracking branches. When `always`, rebase will be " -"set to true for all tracking branches. See \"branch.autoSetupMerge\" for " -"details on how to set up a branch to track another branch. This option " -"defaults to never." -msgstr "" - -#. type: Labeled list -#: en/config.txt:947 -#, no-wrap -msgid "branch.<name>.remote" +"Use the specified URL to connect to the destination Subversion repository. " +"This is useful in cases where the source SVN repository is read-only. This " +"option overrides configuration property 'commiturl'." msgstr "" #. type: Plain text -#: en/config.txt:957 -msgid "" -"When on branch <name>, it tells 'git fetch' and 'git push' which remote to " -"fetch from/push to. The remote to push to may be overridden with " -"`remote.pushDefault` (for all branches). The remote to push to, for the " -"current branch, may be further overridden by `branch.<name>.pushRemote`. If " -"no remote is configured, or if you are not on any branch, it defaults to " -"`origin` for fetching and `remote.pushDefault` for pushing. Additionally, " -"`.` (a period) is the current local repository (a dot-repository), see " -"`branch.<name>.merge`'s final note below." +#: en/git-svn.txt:344 +msgid "git config --get-all svn-remote.<name>.commiturl" msgstr "" #. type: Labeled list -#: en/config.txt:958 +#: en/git-svn.txt:346 en/rev-list-options.txt:870 #, no-wrap -msgid "branch.<name>.pushRemote" +msgid "--parents" msgstr "" #. type: Plain text -#: en/config.txt:966 +#: en/git-svn.txt:350 msgid "" -"When on branch <name>, it overrides `branch.<name>.remote` for pushing. It " -"also overrides `remote.pushDefault` for pushing from branch <name>. When " -"you pull from one place (e.g. your upstream) and push to another place " -"(e.g. your own publishing repository), you would want to set " -"`remote.pushDefault` to specify the remote to push to for all branches, and " -"use this option to override it for a specific branch." +"Create parent folders. This parameter is equivalent to the parameter --" +"parents on svn cp commands and is useful for non-standard repository layouts." msgstr "" #. type: Labeled list -#: en/config.txt:967 +#: en/git-svn.txt:351 #, no-wrap -msgid "branch.<name>.merge" -msgstr "" - -#. type: Plain text -#: en/config.txt:984 -msgid "" -"Defines, together with branch.<name>.remote, the upstream branch for the " -"given branch. It tells 'git fetch'/'git pull'/'git rebase' which branch to " -"merge and can also affect 'git push' (see push.default). When in branch " -"<name>, it tells 'git fetch' the default refspec to be marked for merging in " -"FETCH_HEAD. The value is handled like the remote part of a refspec, and must " -"match a ref which is fetched from the remote given by " -"\"branch.<name>.remote\". The merge information is used by 'git pull' " -"(which at first calls 'git fetch') to lookup the default branch for " -"merging. Without this option, 'git pull' defaults to merge the first refspec " -"fetched. Specify multiple values to get an octopus merge. If you wish to " -"setup 'git pull' so that it merges into <name> from another branch in the " -"local repository, you can point branch.<name>.merge to the desired branch, " -"and use the relative path setting `.` (a period) for branch.<name>.remote." +msgid "'tag'" msgstr "" #. type: Plain text -#: en/config.txt:990 +#: en/git-svn.txt:354 msgid "" -"Sets default options for merging into branch <name>. The syntax and " -"supported options are the same as those of linkgit:git-merge[1], but option " -"values containing whitespace characters are currently not supported." +"Create a tag in the SVN repository. This is a shorthand for 'branch -t'." msgstr "" #. type: Labeled list -#: en/config.txt:991 +#: en/git-svn.txt:355 #, no-wrap -msgid "branch.<name>.rebase" -msgstr "" - -#. type: Plain text -#: en/config.txt:996 -msgid "" -"When true, rebase the branch <name> on top of the fetched branch, instead of " -"merging the default branch from the default remote when \"git pull\" is " -"run. See \"pull.rebase\" for doing this in a non branch-specific manner." +msgid "'log'" msgstr "" #. type: Plain text -#: en/config.txt:1000 en/config.txt:2487 +#: en/git-svn.txt:358 msgid "" -"When preserve, also pass `--preserve-merges` along to 'git rebase' so that " -"locally committed merge commits will not be flattened by running 'git pull'." +"This should make it easy to look up svn log messages when svn users refer to " +"-r/--revision numbers." msgstr "" #. type: Plain text -#: en/config.txt:1002 en/config.txt:2489 -msgid "When the value is `interactive`, the rebase is run in interactive mode." +#: en/git-svn.txt:360 +msgid "The following features from `svn log' are supported:" msgstr "" -#. type: Plain text -#: en/config.txt:1006 en/config.txt:2493 +#. type: Labeled list +#: en/git-svn.txt:362 #, no-wrap -msgid "" -"*NOTE*: this is a possibly dangerous operation; do *not* use\n" -"it unless you understand the implications (see linkgit:git-rebase[1]\n" -"for details).\n" +msgid "-r <n>[:<n>]" msgstr "" #. type: Labeled list -#: en/config.txt:1007 +#: en/git-svn.txt:363 #, no-wrap -msgid "branch.<name>.description" -msgstr "" - -#. type: Plain text -#: en/config.txt:1012 -msgid "" -"Branch description, can be edited with `git branch " -"--edit-description`. Branch description is automatically added in the " -"format-patch cover letter or request-pull summary." +msgid "--revision=<n>[:<n>]" msgstr "" #. type: Plain text -#: en/config.txt:1017 -msgid "" -"Specify the command to invoke the specified browser. The specified command " -"is evaluated in shell with the URLs passed as arguments. (See " -"linkgit:git-web{litdd}browse[1].)" +#: en/git-svn.txt:366 +msgid "is supported, non-numeric args are not: HEAD, NEXT, BASE, PREV, etc ..." msgstr "" #. type: Plain text -#: en/config.txt:1022 +#: en/git-svn.txt:370 msgid "" -"Override the path for the given tool that may be used to browse HTML help " -"(see `-w` option in linkgit:git-help[1]) or a working repository in gitweb " -"(see linkgit:git-instaweb[1])." +"it's not completely compatible with the --verbose output in svn log, but " +"reasonably close." msgstr "" #. type: Labeled list -#: en/config.txt:1023 +#: en/git-svn.txt:370 #, no-wrap -msgid "clean.requireForce" +msgid "--limit=<n>" msgstr "" #. type: Plain text -#: en/config.txt:1026 -#, no-wrap -msgid "" -"A boolean to make git-clean do nothing unless given -f,\n" -"-i or -n. Defaults to true.\n" +#: en/git-svn.txt:373 +msgid "is NOT the same as --max-count, doesn't count merged/excluded commits" msgstr "" -#. type: Labeled list -#: en/config.txt:1027 -#, no-wrap -msgid "color.branch" +#. type: Plain text +#: en/git-svn.txt:375 +msgid "supported" msgstr "" #. type: Plain text -#: en/config.txt:1033 -msgid "" -"A boolean to enable/disable color in the output of " -"linkgit:git-branch[1]. May be set to `always`, `false` (or `never`) or " -"`auto` (or `true`), in which case colors are used only when the output is to " -"a terminal. If unset, then the value of `color.ui` is used (`auto` by " -"default)." +#: en/git-svn.txt:378 +msgid "New features:" msgstr "" #. type: Labeled list -#: en/config.txt:1034 +#: en/git-svn.txt:380 #, no-wrap -msgid "color.branch.<slot>" +msgid "--show-commit" msgstr "" #. type: Plain text -#: en/config.txt:1040 -msgid "" -"Use customized color for branch coloration. `<slot>` is one of `current` " -"(the current branch), `local` (a local branch), `remote` (a remote-tracking " -"branch in refs/remotes/), `upstream` (upstream tracking branch), `plain` " -"(other refs)." +#: en/git-svn.txt:382 +msgid "shows the Git commit sha1, as well" msgstr "" #. type: Labeled list -#: en/config.txt:1041 +#: en/git-svn.txt:382 en/pretty-options.txt:31 #, no-wrap -msgid "color.diff" +msgid "--oneline" msgstr "" #. type: Plain text -#: en/config.txt:1049 -msgid "" -"Whether to use ANSI escape sequences to add color to patches. If this is " -"set to `always`, linkgit:git-diff[1], linkgit:git-log[1], and " -"linkgit:git-show[1] will use color for all patches. If it is set to `true` " -"or `auto`, those commands will only use color when output is to the " -"terminal. If unset, then the value of `color.ui` is used (`auto` by " -"default)." +#: en/git-svn.txt:384 +msgid "our version of --pretty=oneline" msgstr "" #. type: Plain text -#: en/config.txt:1053 +#: en/git-svn.txt:389 msgid "" -"This does not affect linkgit:git-format-patch[1] or the " -"'git-diff-{asterisk}' plumbing commands. Can be overridden on the command " -"line with the `--color[=<when>]` option." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1054 -#, no-wrap -msgid "color.diff.<slot>" +"SVN itself only stores times in UTC and nothing else. The regular svn client " +"converts the UTC time to the local time (or based on the TZ= environment). " +"This command has the same behaviour." msgstr "" #. type: Plain text -#: en/config.txt:1062 -msgid "" -"Use customized color for diff colorization. `<slot>` specifies which part " -"of the patch to use the specified color, and is one of `context` (context " -"text - `plain` is a historical synonym), `meta` (metainformation), `frag` " -"(hunk header), 'func' (function in hunk header), `old` (removed lines), " -"`new` (added lines), `commit` (commit headers), or `whitespace` " -"(highlighting whitespace errors)." +#: en/git-svn.txt:391 +msgid "Any other arguments are passed directly to 'git log'" msgstr "" #. type: Labeled list -#: en/config.txt:1063 +#: en/git-svn.txt:392 #, no-wrap -msgid "color.decorate.<slot>" +msgid "'blame'" msgstr "" #. type: Plain text -#: en/config.txt:1067 +#: en/git-svn.txt:399 msgid "" -"Use customized color for 'git log --decorate' output. `<slot>` is one of " -"`branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local branches, " -"remote-tracking branches, tags, stash and HEAD, respectively." +"Show what revision and author last modified each line of a file. The output " +"of this mode is format-compatible with the output of `svn blame' by default. " +"Like the SVN blame command, local uncommitted changes in the working tree " +"are ignored; the version of the file in the HEAD revision is annotated. " +"Unknown arguments are passed directly to 'git blame'." msgstr "" #. type: Labeled list -#: en/config.txt:1068 +#: en/git-svn.txt:400 #, no-wrap -msgid "color.grep" +msgid "--git-format" msgstr "" #. type: Plain text -#: en/config.txt:1073 +#: en/git-svn.txt:405 msgid "" -"When set to `always`, always highlight matches. When `false` (or `never`), " -"never. When set to `true` or `auto`, use color only when the output is " -"written to the terminal. If unset, then the value of `color.ui` is used " -"(`auto` by default)." +"Produce output in the same format as 'git blame', but with SVN revision " +"numbers instead of Git commit hashes. In this mode, changes that haven't " +"been committed to SVN (including local working-copy edits) are shown as " +"revision 0." msgstr "" #. type: Labeled list -#: en/config.txt:1074 +#: en/git-svn.txt:406 #, no-wrap -msgid "color.grep.<slot>" +msgid "'find-rev'" msgstr "" #. type: Plain text -#: en/config.txt:1077 +#: en/git-svn.txt:411 msgid "" -"Use customized color for grep colorization. `<slot>` specifies which part " -"of the line to use the specified color, and is one of" +"When given an SVN revision number of the form 'rN', returns the " +"corresponding Git commit hash (this can optionally be followed by a tree-ish " +"to specify which branch should be searched). When given a tree-ish, returns " +"the corresponding SVN revision number." msgstr "" #. type: Labeled list -#: en/config.txt:1079 +#: en/git-svn.txt:412 #, no-wrap -msgid "`context`" -msgstr "" - -#. type: Plain text -#: en/config.txt:1081 -msgid "non-matching text in context lines (when using `-A`, `-B`, or `-C`)" +msgid "-B" msgstr "" #. type: Labeled list -#: en/config.txt:1081 +#: en/git-svn.txt:413 #, no-wrap -msgid "`filename`" +msgid "--before" msgstr "" #. type: Plain text -#: en/config.txt:1083 -msgid "filename prefix (when not using `-h`)" +#: en/git-svn.txt:417 +msgid "" +"Don't require an exact match if given an SVN revision, instead find the " +"commit corresponding to the state of the SVN repository (on the current " +"branch) at the specified revision." msgstr "" #. type: Labeled list -#: en/config.txt:1083 +#: en/git-svn.txt:419 #, no-wrap -msgid "`function`" +msgid "--after" msgstr "" #. type: Plain text -#: en/config.txt:1085 -msgid "function name lines (when using `-p`)" +#: en/git-svn.txt:423 +msgid "" +"Don't require an exact match if given an SVN revision; if there is not an " +"exact match return the closest match searching forward in the history." msgstr "" #. type: Labeled list -#: en/config.txt:1085 +#: en/git-svn.txt:424 #, no-wrap -msgid "`linenumber`" +msgid "'set-tree'" msgstr "" #. type: Plain text -#: en/config.txt:1087 -msgid "line number prefix (when using `-n`)" +#: en/git-svn.txt:432 +msgid "" +"You should consider using 'dcommit' instead of this command. Commit " +"specified commit or tree objects to SVN. This relies on your imported fetch " +"data being up to date. This makes absolutely no attempts to do patching " +"when committing to SVN, it simply overwrites files with those specified in " +"the tree or commit. All merging is assumed to have taken place " +"independently of 'git svn' functions." msgstr "" #. type: Labeled list -#: en/config.txt:1087 +#: en/git-svn.txt:433 #, no-wrap -msgid "`match`" +msgid "'create-ignore'" msgstr "" #. type: Plain text -#: en/config.txt:1089 -msgid "matching text (same as setting `matchContext` and `matchSelected`)" +#: en/git-svn.txt:438 +msgid "" +"Recursively finds the svn:ignore property on directories and creates " +"matching .gitignore files. The resulting files are staged to be committed, " +"but are not committed. Use -r/--revision to refer to a specific revision." msgstr "" #. type: Labeled list -#: en/config.txt:1089 +#: en/git-svn.txt:439 #, no-wrap -msgid "`matchContext`" +msgid "'show-ignore'" msgstr "" #. type: Plain text -#: en/config.txt:1091 -msgid "matching text in context lines" +#: en/git-svn.txt:443 +msgid "" +"Recursively finds and lists the svn:ignore property on directories. The " +"output is suitable for appending to the $GIT_DIR/info/exclude file." msgstr "" #. type: Labeled list -#: en/config.txt:1091 +#: en/git-svn.txt:444 #, no-wrap -msgid "`matchSelected`" +msgid "'mkdirs'" msgstr "" #. type: Plain text -#: en/config.txt:1093 -msgid "matching text in selected lines" +#: en/git-svn.txt:452 +msgid "" +"Attempts to recreate empty directories that core Git cannot track based on " +"information in $GIT_DIR/svn/<refname>/unhandled.log files. Empty " +"directories are automatically recreated when using \"git svn clone\" and " +"\"git svn rebase\", so \"mkdirs\" is intended for use after commands like " +"\"git checkout\" or \"git reset\". (See the svn-remote.<name>.automkdirs " +"config file option for more information.)" msgstr "" #. type: Labeled list -#: en/config.txt:1093 +#: en/git-svn.txt:453 #, no-wrap -msgid "`selected`" +msgid "'commit-diff'" msgstr "" #. type: Plain text -#: en/config.txt:1095 -msgid "non-matching text in selected lines" +#: en/git-svn.txt:462 +msgid "" +"Commits the diff of two tree-ish arguments from the command-line. This " +"command does not rely on being inside a `git svn init`-ed repository. This " +"command takes three arguments, (a) the original tree to diff against, (b) " +"the new tree result, (c) the URL of the target Subversion repository. The " +"final argument (URL) may be omitted if you are working from a 'git svn'-" +"aware repository (that has been `init`-ed with 'git svn'). The -r<revision> " +"option is required for this." msgstr "" -#. type: Labeled list -#: en/config.txt:1095 -#, no-wrap -msgid "`separator`" +#. type: Plain text +#: en/git-svn.txt:467 +msgid "" +"The commit message is supplied either directly with the `-m` or `-F` option, " +"or indirectly from the tag or commit when the second tree-ish denotes such " +"an object, or it is requested by invoking an editor (see `--edit` option " +"below)." msgstr "" #. type: Plain text -#: en/config.txt:1098 +#: en/git-svn.txt:472 msgid "" -"separators between fields on a line (`:`, `-`, and `=`) and between hunks " -"(`--`)" +"Use the given `msg` as the commit message. This option disables the `--edit` " +"option." msgstr "" #. type: Labeled list -#: en/config.txt:1100 +#: en/git-svn.txt:473 #, no-wrap -msgid "color.interactive" -msgstr "" - -#. type: Plain text -#: en/config.txt:1107 -msgid "" -"When set to `always`, always use colors for interactive prompts and displays " -"(such as those used by \"git-add --interactive\" and \"git-clean " -"--interactive\"). When false (or `never`), never. When set to `true` or " -"`auto`, use colors only when the output is to the terminal. If unset, then " -"the value of `color.ui` is used (`auto` by default)." +msgid "-F <filename>" msgstr "" #. type: Labeled list -#: en/config.txt:1108 +#: en/git-svn.txt:474 #, no-wrap -msgid "color.interactive.<slot>" +msgid "--file=<filename>" msgstr "" #. type: Plain text -#: en/config.txt:1113 +#: en/git-svn.txt:477 msgid "" -"Use customized color for 'git add --interactive' and 'git clean " -"--interactive' output. `<slot>` may be `prompt`, `header`, `help` or " -"`error`, for four distinct types of normal output from interactive commands." +"Take the commit message from the given file. This option disables the `--" +"edit` option." msgstr "" #. type: Labeled list -#: en/config.txt:1114 +#: en/git-svn.txt:478 #, no-wrap -msgid "color.pager" +msgid "'info'" msgstr "" #. type: Plain text -#: en/config.txt:1117 +#: en/git-svn.txt:483 msgid "" -"A boolean to enable/disable colored output when the pager is in use (default " -"is true)." +"Shows information about a file or directory similar to what `svn info' " +"provides. Does not currently support a -r/--revision argument. Use the --" +"url option to output only the value of the 'URL:' field." msgstr "" #. type: Labeled list -#: en/config.txt:1118 +#: en/git-svn.txt:484 #, no-wrap -msgid "color.showBranch" +msgid "'proplist'" msgstr "" #. type: Plain text -#: en/config.txt:1124 +#: en/git-svn.txt:488 msgid "" -"A boolean to enable/disable color in the output of " -"linkgit:git-show-branch[1]. May be set to `always`, `false` (or `never`) or " -"`auto` (or `true`), in which case colors are used only when the output is to " -"a terminal. If unset, then the value of `color.ui` is used (`auto` by " -"default)." +"Lists the properties stored in the Subversion repository about a given file " +"or directory. Use -r/--revision to refer to a specific Subversion revision." msgstr "" #. type: Labeled list -#: en/config.txt:1125 +#: en/git-svn.txt:489 #, no-wrap -msgid "color.status" +msgid "'propget'" msgstr "" #. type: Plain text -#: en/config.txt:1131 +#: en/git-svn.txt:492 msgid "" -"A boolean to enable/disable color in the output of " -"linkgit:git-status[1]. May be set to `always`, `false` (or `never`) or " -"`auto` (or `true`), in which case colors are used only when the output is to " -"a terminal. If unset, then the value of `color.ui` is used (`auto` by " -"default)." +"Gets the Subversion property given as the first argument, for a file. A " +"specific revision can be specified with -r/--revision." msgstr "" #. type: Labeled list -#: en/config.txt:1132 +#: en/git-svn.txt:493 #, no-wrap -msgid "color.status.<slot>" +msgid "'propset'" msgstr "" #. type: Plain text -#: en/config.txt:1142 +#: en/git-svn.txt:497 msgid "" -"Use customized color for status colorization. `<slot>` is one of `header` " -"(the header text of the status message), `added` or `updated` (files which " -"are added but not committed), `changed` (files which are changed but not " -"added in the index), `untracked` (files which are not tracked by Git), " -"`branch` (the current branch), `nobranch` (the color the 'no branch' warning " -"is shown in, defaulting to red), or `unmerged` (files which have unmerged " -"changes)." +"Sets the Subversion property given as the first argument, to the value given " +"as the second argument for the file given as the third argument." msgstr "" -#. type: Labeled list -#: en/config.txt:1143 +#. type: delimited block - +#: en/git-svn.txt:502 #, no-wrap -msgid "color.ui" +msgid "git svn propset svn:keywords \"FreeBSD=%H\" devel/py-tipper/Makefile\n" msgstr "" #. type: Plain text -#: en/config.txt:1154 +#: en/git-svn.txt:506 msgid "" -"This variable determines the default value for variables such as " -"`color.diff` and `color.grep` that control the use of color per command " -"family. Its scope will expand as more commands learn configuration to set a " -"default for the `--color` option. Set it to `false` or `never` if you " -"prefer Git commands not to use color unless enabled explicitly with some " -"other configuration or the `--color` option. Set it to `always` if you want " -"all output not intended for machine consumption to use color, to `true` or " -"`auto` (this is the default since Git 1.8.4) if you want such output to use " -"color when written to the terminal." +"This will set the property 'svn:keywords' to 'FreeBSD=%H' for the file " +"'devel/py-tipper/Makefile'." msgstr "" #. type: Labeled list -#: en/config.txt:1155 +#: en/git-svn.txt:507 #, no-wrap -msgid "column.ui" +msgid "'show-externals'" msgstr "" #. type: Plain text -#: en/config.txt:1159 +#: en/git-svn.txt:510 msgid "" -"Specify whether supported commands should output in columns. This variable " -"consists of a list of tokens separated by spaces or commas:" +"Shows the Subversion externals. Use -r/--revision to specify a specific " +"revision." msgstr "" #. type: Plain text -#: en/config.txt:1162 +#: en/git-svn.txt:514 msgid "" -"These options control when the feature should be enabled (defaults to " -"'never'):" +"Compress $GIT_DIR/svn/<refname>/unhandled.log files and remove $GIT_DIR/svn/" +"<refname>/index files." msgstr "" #. type: Labeled list -#: en/config.txt:1164 +#: en/git-svn.txt:515 #, no-wrap -msgid "`always`" +msgid "'reset'" msgstr "" #. type: Plain text -#: en/config.txt:1166 -msgid "always show in columns" -msgstr "" - -#. type: Labeled list -#: en/config.txt:1166 -#, no-wrap -msgid "`never`" +#: en/git-svn.txt:525 +msgid "" +"Undoes the effects of 'fetch' back to the specified revision. This allows " +"you to re-'fetch' an SVN revision. Normally the contents of an SVN revision " +"should never change and 'reset' should not be necessary. However, if SVN " +"permissions change, or if you alter your --ignore-paths option, a 'fetch' " +"may fail with \"not found in commit\" (file not previously visible) or " +"\"checksum mismatch\" (missed a modification). If the problem file cannot " +"be ignored forever (with --ignore-paths) the only way to repair the repo is " +"to use 'reset'." msgstr "" #. type: Plain text -#: en/config.txt:1168 -msgid "never show in columns" +#: en/git-svn.txt:530 +msgid "" +"Only the rev_map and refs/remotes/git-svn are changed (see '$GIT_DIR/svn/\\*" +"\\*/.rev_map.*' in the FILES section below for details). Follow 'reset' " +"with a 'fetch' and then 'git reset' or 'git rebase' to move local branches " +"onto the new tree." msgstr "" #. type: Labeled list -#: en/config.txt:1168 +#: en/git-svn.txt:531 #, no-wrap -msgid "`auto`" -msgstr "" - -#. type: Plain text -#: en/config.txt:1170 -msgid "show in columns if the output is to the terminal" -msgstr "" - -#. type: Plain text -#: en/config.txt:1175 -msgid "" -"These options control layout (defaults to 'column'). Setting any of these " -"implies 'always' if none of 'always', 'never', or 'auto' are specified." +msgid "-r <n>" msgstr "" #. type: Labeled list -#: en/config.txt:1177 +#: en/git-svn.txt:532 #, no-wrap -msgid "`column`" +msgid "--revision=<n>" msgstr "" #. type: Plain text -#: en/config.txt:1179 -msgid "fill columns before rows" +#: en/git-svn.txt:535 +msgid "" +"Specify the most recent revision to keep. All later revisions are discarded." msgstr "" -#. type: Labeled list -#: en/config.txt:1179 -#, no-wrap -msgid "`row`" +#. type: Plain text +#: en/git-svn.txt:539 +msgid "" +"Discard the specified revision as well, keeping the nearest parent instead." msgstr "" #. type: Plain text -#: en/config.txt:1181 -msgid "fill rows before columns" +#: en/git-svn.txt:541 +msgid "" +"Assume you have local changes in \"master\", but you need to refetch \"r2\"." msgstr "" -#. type: Labeled list -#: en/config.txt:1181 +#. type: delimited block - +#: en/git-svn.txt:546 #, no-wrap -msgid "`plain`" +msgid "" +" r1---r2---r3 remotes/git-svn\n" +" \\\n" +" A---B master\n" msgstr "" #. type: Plain text -#: en/config.txt:1183 -msgid "show in one column" +#: en/git-svn.txt:550 +msgid "" +"Fix the ignore-paths or SVN permissions problem that caused \"r2\" to be " +"incomplete in the first place. Then:" msgstr "" #. type: Plain text -#: en/config.txt:1187 +#: en/git-svn.txt:554 +#, no-wrap msgid "" -"Finally, these options can be combined with a layout option (defaults to " -"'nodense'):" +"git svn reset -r2 -p\n" +"git svn fetch\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1189 +#. type: delimited block - +#: en/git-svn.txt:559 #, no-wrap -msgid "`dense`" +msgid "" +" r1---r2'--r3' remotes/git-svn\n" +" \\\n" +" r2---r3---A---B master\n" msgstr "" #. type: Plain text -#: en/config.txt:1191 -msgid "make unequal size columns to utilize more space" +#: en/git-svn.txt:564 +msgid "" +"Then fixup \"master\" with 'git rebase'. Do NOT use 'git merge' or your " +"history will not be compatible with a future 'dcommit'!" msgstr "" -#. type: Labeled list -#: en/config.txt:1191 +#. type: Plain text +#: en/git-svn.txt:567 #, no-wrap -msgid "`nodense`" +msgid "git rebase --onto remotes/git-svn A^ master\n" msgstr "" -#. type: Plain text -#: en/config.txt:1193 -msgid "make equal size columns" +#. type: delimited block - +#: en/git-svn.txt:572 +#, no-wrap +msgid "" +" r1---r2'--r3' remotes/git-svn\n" +" \\\n" +" A'--B' master\n" msgstr "" #. type: Labeled list -#: en/config.txt:1195 +#: en/git-svn.txt:577 #, no-wrap -msgid "column.branch" +msgid "--shared[=(false|true|umask|group|all|world|everybody)]" msgstr "" #. type: Plain text -#: en/config.txt:1198 +#: en/git-svn.txt:581 msgid "" -"Specify whether to output branch listing in `git branch` in columns. See " -"`column.ui` for details." +"Only used with the 'init' command. These are passed directly to 'git init'." msgstr "" #. type: Labeled list -#: en/config.txt:1199 +#: en/git-svn.txt:582 #, no-wrap -msgid "column.clean" -msgstr "" - -#. type: Plain text -#: en/config.txt:1202 -msgid "" -"Specify the layout when list items in `git clean -i`, which always shows " -"files and directories in columns. See `column.ui` for details." +msgid "-r <arg>" msgstr "" #. type: Labeled list -#: en/config.txt:1203 +#: en/git-svn.txt:583 #, no-wrap -msgid "column.status" +msgid "--revision <arg>" msgstr "" #. type: Plain text -#: en/config.txt:1206 -msgid "" -"Specify whether to output untracked files in `git status` in columns. See " -"`column.ui` for details." +#: en/git-svn.txt:585 +msgid "Used with the 'fetch' command." msgstr "" -#. type: Labeled list -#: en/config.txt:1207 -#, no-wrap -msgid "column.tag" +#. type: Plain text +#: en/git-svn.txt:589 +msgid "" +"This allows revision ranges for partial/cauterized history to be supported. " +"$NUMBER, $NUMBER1:$NUMBER2 (numeric ranges), $NUMBER:HEAD, and BASE:$NUMBER " +"are all supported." msgstr "" #. type: Plain text -#: en/config.txt:1210 +#: en/git-svn.txt:593 msgid "" -"Specify whether to output tag listing in `git tag` in columns. See " -"`column.ui` for details." +"This can allow you to make partial mirrors when running fetch; but is " +"generally not recommended because history will be skipped and lost." msgstr "" #. type: Labeled list -#: en/config.txt:1211 +#: en/git-svn.txt:594 #, no-wrap -msgid "commit.cleanup" +msgid "-" msgstr "" #. type: Plain text -#: en/config.txt:1219 -msgid "" -"This setting overrides the default of the `--cleanup` option in `git " -"commit`. See linkgit:git-commit[1] for details. Changing the default can be " -"useful when you always want to keep lines that begin with comment character " -"`#` in your log message, in which case you would do `git config " -"commit.cleanup whitespace` (note that you will have to remove the help lines " -"that begin with `#` in the commit log template yourself, if you do this)." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1220 -#, no-wrap -msgid "commit.gpgSign" +#: en/git-svn.txt:597 +msgid "Only used with the 'set-tree' command." msgstr "" #. type: Plain text -#: en/config.txt:1227 +#: en/git-svn.txt:601 msgid "" -"A boolean to specify whether all commits should be GPG signed. Use of this " -"option when doing operations such as rebase can result in a large number of " -"commits being signed. It may be convenient to use an agent to avoid typing " -"your GPG passphrase several times." +"Read a list of commits from stdin and commit them in reverse order. Only " +"the leading sha1 is read from each line, so 'git rev-list --pretty=oneline' " +"output can be used." msgstr "" #. type: Labeled list -#: en/config.txt:1228 +#: en/git-svn.txt:602 #, no-wrap -msgid "commit.status" +msgid "--rmdir" msgstr "" #. type: Plain text -#: en/config.txt:1232 -msgid "" -"A boolean to enable/disable inclusion of status information in the commit " -"message template when using an editor to prepare the commit message. " -"Defaults to true." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1233 -#, no-wrap -msgid "commit.template" +#: en/git-svn.txt:604 en/git-svn.txt:617 en/git-svn.txt:628 +msgid "Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands." msgstr "" #. type: Plain text -#: en/config.txt:1236 +#: en/git-svn.txt:610 msgid "" -"Specify the pathname of a file to use as the template for new commit " -"messages." +"Remove directories from the SVN tree if there are no files left behind. SVN " +"can version empty directories, and they are not removed by default if there " +"are no files left in them. Git cannot version empty directories. Enabling " +"this flag will make the commit to SVN act like Git." msgstr "" -#. type: Labeled list -#: en/config.txt:1237 +#. type: Plain text +#: en/git-svn.txt:613 #, no-wrap -msgid "commit.verbose" +msgid "config key: svn.rmdir\n" msgstr "" #. type: Plain text -#: en/config.txt:1240 +#: en/git-svn.txt:621 msgid "" -"A boolean or int to specify the level of verbose with `git commit`. See " -"linkgit:git-commit[1]." +"Edit the commit message before committing to SVN. This is off by default " +"for objects that are commits, and forced on when committing tree objects." msgstr "" -#. type: Labeled list -#: en/config.txt:1241 +#. type: Plain text +#: en/git-svn.txt:624 #, no-wrap -msgid "credential.helper" +msgid "config key: svn.edit\n" msgstr "" #. type: Plain text -#: en/config.txt:1247 +#: en/git-svn.txt:631 msgid "" -"Specify an external helper to be called when a username or password " -"credential is needed; the helper may consult external storage to avoid " -"prompting the user for the credentials. Note that multiple helpers may be " -"defined. See linkgit:gitcredentials[7] for details." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1248 -#, no-wrap -msgid "credential.useHttpPath" +"They are both passed directly to 'git diff-tree'; see linkgit:git-diff-" +"tree[1] for more information." msgstr "" #. type: Plain text -#: en/config.txt:1252 +#: en/git-svn.txt:635 +#, no-wrap msgid "" -"When acquiring credentials, consider the \"path\" component of an http or " -"https URL to be important. Defaults to false. See linkgit:gitcredentials[7] " -"for more information." +"config key: svn.l\n" +"config key: svn.findcopiesharder\n" msgstr "" #. type: Labeled list -#: en/config.txt:1253 +#: en/git-svn.txt:636 #, no-wrap -msgid "credential.username" -msgstr "" - -#. type: Plain text -#: en/config.txt:1257 -msgid "" -"If no username is set for a network authentication, use this username by " -"default. See credential.<context>.* below, and linkgit:gitcredentials[7]." +msgid "-A<filename>" msgstr "" #. type: Labeled list -#: en/config.txt:1258 +#: en/git-svn.txt:637 #, no-wrap -msgid "credential.<url>.*" +msgid "--authors-file=<filename>" msgstr "" #. type: Plain text -#: en/config.txt:1264 +#: en/git-svn.txt:640 msgid "" -"Any of the credential.* options above can be applied selectively to some " -"credentials. For example \"credential.https://example.com.username\" would " -"set the default username only for https connections to example.com. See " -"linkgit:gitcredentials[7] for details on how URLs are matched." +"Syntax is compatible with the file used by 'git cvsimport' but an empty " +"email address can be supplied with '<>':" msgstr "" -#. type: Labeled list -#: en/config.txt:1265 +#. type: delimited block - +#: en/git-svn.txt:643 #, no-wrap -msgid "credentialCache.ignoreSIGHUP" -msgstr "" - -#. type: Plain text -#: en/config.txt:1267 -msgid "Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting." +msgid "\tloginname = Joe User <user@example.com>\n" msgstr "" #. type: Plain text -#: en/config.txt:1281 +#: en/git-svn.txt:650 msgid "" -"Specify the command to invoke the specified diff tool. The specified " -"command is evaluated in shell with the following variables available: " -"'LOCAL' is set to the name of the temporary file containing the contents of " -"the diff pre-image and 'REMOTE' is set to the name of the temporary file " -"containing the contents of the diff post-image." +"If this option is specified and 'git svn' encounters an SVN committer name " +"that does not exist in the authors-file, 'git svn' will abort operation. The " +"user will then have to add the appropriate entry. Re-running the previous " +"'git svn' command after the authors-file is modified should continue " +"operation." msgstr "" #. type: Plain text -#: en/config.txt:1293 -msgid "" -"If the number of objects imported by linkgit:git-fast-import[1] is below " -"this limit, then the objects will be unpacked into loose object files. " -"However if the number of imported objects equals or exceeds this limit then " -"the pack will be stored as a pack. Storing the pack from a fast-import can " -"make the import operation complete faster, especially on slow filesystems. " -"If not set, the value of `transfer.unpackLimit` is used instead." +#: en/git-svn.txt:653 +#, no-wrap +msgid "config key: svn.authorsfile\n" msgstr "" #. type: Labeled list -#: en/config.txt:1294 +#: en/git-svn.txt:654 #, no-wrap -msgid "fetch.recurseSubmodules" +msgid "--authors-prog=<filename>" msgstr "" #. type: Plain text -#: en/config.txt:1302 +#: en/git-svn.txt:661 msgid "" -"This option can be either set to a boolean value or to 'on-demand'. Setting " -"it to a boolean changes the behavior of fetch and pull to unconditionally " -"recurse into submodules when set to true or to not recurse at all when set " -"to false. When set to 'on-demand' (the default value), fetch and pull will " -"only recurse into a populated submodule when its superproject retrieves a " -"commit that updates the submodule's reference." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1303 -#, no-wrap -msgid "fetch.fsckObjects" +"If this option is specified, for each SVN committer name that does not exist " +"in the authors file, the given file is executed with the committer name as " +"the first argument. The program is expected to return a single line of the " +"form \"Name <email>\" or \"Name <>\", which will be treated as if included " +"in the authors file." msgstr "" #. type: Plain text -#: en/config.txt:1309 +#: en/git-svn.txt:666 msgid "" -"If it is set to true, git-fetch-pack will check all fetched objects. It will " -"abort in the case of a malformed object or a broken link. The result of an " -"abort are only dangling objects. Defaults to false. If not set, the value " -"of `transfer.fsckObjects` is used instead." +"Due to historical reasons a relative 'filename' is first searched relative " +"to the current directory for 'init' and 'clone' and relative to the root of " +"the working tree for 'fetch'. If 'filename' is not found, it is searched " +"like any other command in '$PATH'." msgstr "" -#. type: Labeled list -#: en/config.txt:1310 +#. type: Plain text +#: en/git-svn.txt:669 #, no-wrap -msgid "fetch.unpackLimit" +msgid "config key: svn.authorsProg\n" msgstr "" #. type: Plain text -#: en/config.txt:1320 +#: en/git-svn.txt:674 msgid "" -"If the number of objects fetched over the Git native transfer is below this " -"limit, then the objects will be unpacked into loose object files. However if " -"the number of received objects equals or exceeds this limit then the " -"received pack will be stored as a pack, after adding any missing delta " -"bases. Storing the pack from a push can make the push operation complete " -"faster, especially on slow filesystems. If not set, the value of " -"`transfer.unpackLimit` is used instead." +"Make 'git svn' less verbose. Specify a second time to make it even less " +"verbose." msgstr "" #. type: Labeled list -#: en/config.txt:1321 +#: en/git-svn.txt:677 #, no-wrap -msgid "fetch.prune" +msgid "-s<strategy>" msgstr "" #. type: Plain text -#: en/config.txt:1324 -msgid "" -"If true, fetch will automatically behave as if the `--prune` option was " -"given on the command line. See also `remote.<name>.prune`." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1325 -#, no-wrap -msgid "fetch.output" +#: en/git-svn.txt:682 +msgid "These are only used with the 'dcommit' and 'rebase' commands." msgstr "" #. type: Plain text -#: en/config.txt:1329 +#: en/git-svn.txt:685 msgid "" -"Control how ref update status is printed. Valid values are `full` and " -"`compact`. Default value is `full`. See section OUTPUT in " -"linkgit:git-fetch[1] for detail." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1330 -#, no-wrap -msgid "format.attach" +"Passed directly to 'git rebase' when using 'dcommit' if a 'git reset' cannot " +"be used (see 'dcommit')." msgstr "" #. type: Plain text -#: en/config.txt:1336 +#: en/git-svn.txt:690 msgid "" -"Enable multipart/mixed attachments as the default for 'format-patch'. The " -"value can also be a double quoted string which will enable attachments as " -"the default and set the value as the boundary. See the --attach option in " -"linkgit:git-format-patch[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1337 -#, no-wrap -msgid "format.from" +"This can be used with the 'dcommit', 'rebase', 'branch' and 'tag' commands." msgstr "" #. type: Plain text -#: en/config.txt:1346 +#: en/git-svn.txt:693 msgid "" -"Provides the default value for the `--from` option to format-patch. Accepts " -"a boolean value, or a name and email address. If false, format-patch " -"defaults to `--no-from`, using commit authors directly in the \"From:\" " -"field of patch mails. If true, format-patch defaults to `--from`, using " -"your committer identity in the \"From:\" field of patch mails and including " -"a \"From:\" field in the body of the patch mail if different. If set to a " -"non-boolean value, format-patch uses that value instead of your committer " -"identity. Defaults to false." +"For 'dcommit', print out the series of Git arguments that would show which " +"diffs would be committed to SVN." msgstr "" -#. type: Labeled list -#: en/config.txt:1347 -#, no-wrap -msgid "format.numbered" +#. type: Plain text +#: en/git-svn.txt:697 +msgid "" +"For 'rebase', display the local branch associated with the upstream svn " +"repository associated with the current branch and the URL of svn repository " +"that will be fetched from." msgstr "" #. type: Plain text -#: en/config.txt:1353 +#: en/git-svn.txt:700 msgid "" -"A boolean which can enable or disable sequence numbers in patch subjects. " -"It defaults to \"auto\" which enables it only if there is more than one " -"patch. It can be enabled or disabled for all messages by setting it to " -"\"true\" or \"false\". See --numbered option in " -"linkgit:git-format-patch[1]." +"For 'branch' and 'tag', display the urls that will be used for copying when " +"creating the branch or tag." msgstr "" #. type: Labeled list -#: en/config.txt:1354 +#: en/git-svn.txt:701 #, no-wrap -msgid "format.headers" +msgid "--use-log-author" msgstr "" #. type: Plain text -#: en/config.txt:1357 +#: en/git-svn.txt:705 msgid "" -"Additional email headers to include in a patch to be submitted by mail. See " -"linkgit:git-format-patch[1]." +"When retrieving svn commits into Git (as part of 'fetch', 'rebase', or " +"'dcommit' operations), look for the first `From:` or `Signed-off-by:` line " +"in the log message and use that as the author string." msgstr "" -#. type: Labeled list -#: en/config.txt:1358 +#. type: Plain text +#: en/git-svn.txt:708 #, no-wrap -msgid "format.to" +msgid "config key: svn.useLogAuthor\n" msgstr "" #. type: Labeled list -#: en/config.txt:1359 +#: en/git-svn.txt:709 #, no-wrap -msgid "format.cc" +msgid "--add-author-from" msgstr "" #. type: Plain text -#: en/config.txt:1363 +#: en/git-svn.txt:715 msgid "" -"Additional recipients to include in a patch to be submitted by mail. See " -"the --to and --cc options in linkgit:git-format-patch[1]." +"When committing to svn from Git (as part of 'set-tree' or 'dcommit' " +"operations), if the existing log message doesn't already have a `From:` or " +"`Signed-off-by:` line, append a `From:` line based on the Git commit's " +"author string. If you use this, then `--use-log-author` will retrieve a " +"valid author string for all commits." msgstr "" -#. type: Labeled list -#: en/config.txt:1364 +#. type: Plain text +#: en/git-svn.txt:718 #, no-wrap -msgid "format.subjectPrefix" +msgid "config key: svn.addAuthorFrom\n" msgstr "" -#. type: Plain text -#: en/config.txt:1367 -msgid "" -"The default for format-patch is to output files with the '[PATCH]' subject " -"prefix. Use this variable to change that prefix." +#. type: Title - +#: en/git-svn.txt:720 +#, no-wrap +msgid "ADVANCED OPTIONS" msgstr "" #. type: Labeled list -#: en/config.txt:1368 +#: en/git-svn.txt:722 #, no-wrap -msgid "format.signature" -msgstr "" - -#. type: Plain text -#: en/config.txt:1373 -msgid "" -"The default for format-patch is to output a signature containing the Git " -"version number. Use this variable to change that default. Set this variable " -"to the empty string (\"\") to suppress signature generation." +msgid "-i<GIT_SVN_ID>" msgstr "" #. type: Labeled list -#: en/config.txt:1374 +#: en/git-svn.txt:723 #, no-wrap -msgid "format.signatureFile" +msgid "--id <GIT_SVN_ID>" msgstr "" #. type: Plain text -#: en/config.txt:1377 +#: en/git-svn.txt:728 msgid "" -"Works just like format.signature except the contents of the file specified " -"by this variable will be used as the signature." +"This sets GIT_SVN_ID (instead of using the environment). This allows the " +"user to override the default refname to fetch from when tracking a single " +"URL. The 'log' and 'dcommit' commands no longer require this switch as an " +"argument." msgstr "" #. type: Labeled list -#: en/config.txt:1378 +#: en/git-svn.txt:729 #, no-wrap -msgid "format.suffix" +msgid "-R<remote name>" msgstr "" -#. type: Plain text -#: en/config.txt:1382 -msgid "" -"The default for format-patch is to output files with the suffix " -"`.patch`. Use this variable to change that suffix (make sure to include the " -"dot if you want it)." +#. type: Labeled list +#: en/git-svn.txt:730 +#, no-wrap +msgid "--svn-remote <remote name>" msgstr "" #. type: Plain text -#: en/config.txt:1387 +#: en/git-svn.txt:734 msgid "" -"The default pretty format for log/show/whatchanged command, See " -"linkgit:git-log[1], linkgit:git-show[1], linkgit:git-whatchanged[1]." +"Specify the [svn-remote \"<remote name>\"] section to use, this allows SVN " +"multiple repositories to be tracked. Default: \"svn\"" msgstr "" #. type: Labeled list -#: en/config.txt:1388 +#: en/git-svn.txt:735 #, no-wrap -msgid "format.thread" +msgid "--follow-parent" msgstr "" #. type: Plain text -#: en/config.txt:1397 +#: en/git-svn.txt:750 msgid "" -"The default threading style for 'git format-patch'. Can be a boolean value, " -"or `shallow` or `deep`. `shallow` threading makes every mail a reply to the " -"head of the series, where the head is chosen from the cover letter, the " -"`--in-reply-to`, and the first patch mail, in this order. `deep` threading " -"makes every mail a reply to the previous one. A true boolean value is the " -"same as `shallow`, and a false value disables threading." +"This option is only relevant if we are tracking branches (using one of the " +"repository layout options --trunk, --tags, --branches, --stdlayout). For " +"each tracked branch, try to find out where its revision was copied from, and " +"set a suitable parent in the first Git commit for the branch. This is " +"especially helpful when we're tracking a directory that has been moved " +"around within the repository. If this feature is disabled, the branches " +"created by 'git svn' will all be linear and not share any history, meaning " +"that there will be no information on where branches were branched off or " +"merged. However, following long/convoluted histories can take a long time, " +"so disabling this feature may speed up the cloning process. This feature is " +"enabled by default, use --no-follow-parent to disable it." msgstr "" -#. type: Labeled list -#: en/config.txt:1398 +#. type: Plain text +#: en/git-svn.txt:753 #, no-wrap -msgid "format.signOff" +msgid "config key: svn.followparent\n" msgstr "" -#. type: Plain text -#: en/config.txt:1404 -msgid "" -"A boolean value which lets you enable the `-s/--signoff` option of " -"format-patch by default. *Note:* Adding the Signed-off-by: line to a patch " -"should be a conscious act and means that you certify you have the rights to " -"submit this work under the same open source license. Please see the " -"'SubmittingPatches' document for further discussion." +#. type: Title - +#: en/git-svn.txt:755 +#, no-wrap +msgid "CONFIG FILE-ONLY OPTIONS" msgstr "" #. type: Labeled list -#: en/config.txt:1405 +#: en/git-svn.txt:757 #, no-wrap -msgid "format.coverLetter" -msgstr "" - -#. type: Plain text -#: en/config.txt:1409 -msgid "" -"A boolean that controls whether to generate a cover-letter when format-patch " -"is invoked, but in addition can be set to \"auto\", to generate a " -"cover-letter only when there's more than one patch." +msgid "svn.noMetadata" msgstr "" #. type: Labeled list -#: en/config.txt:1410 +#: en/git-svn.txt:758 #, no-wrap -msgid "format.outputDirectory" +msgid "svn-remote.<name>.noMetadata" msgstr "" #. type: Plain text -#: en/config.txt:1413 -msgid "" -"Set a custom directory to store the resulting files instead of the current " -"working directory." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1414 -#, no-wrap -msgid "format.useAutoBase" +#: en/git-svn.txt:760 +msgid "This gets rid of the 'git-svn-id:' lines at the end of every commit." msgstr "" #. type: Plain text -#: en/config.txt:1417 +#: en/git-svn.txt:765 msgid "" -"A boolean value which lets you enable the `--base=auto` option of " -"format-patch by default." +"This option can only be used for one-shot imports as 'git svn' will not be " +"able to fetch again without metadata. Additionally, if you lose your " +"'$GIT_DIR/svn/\\*\\*/.rev_map.*' files, 'git svn' will not be able to " +"rebuild them." msgstr "" -#. type: Labeled list -#: en/config.txt:1418 -#, no-wrap -msgid "filter.<driver>.clean" +#. type: Plain text +#: en/git-svn.txt:769 +msgid "" +"The 'git svn log' command will not work on repositories using this, either. " +"Using this conflicts with the 'useSvmProps' option for (hopefully) obvious " +"reasons." msgstr "" #. type: Plain text -#: en/config.txt:1422 +#: en/git-svn.txt:777 msgid "" -"The command which is used to convert the content of a worktree file to a " -"blob upon checkin. See linkgit:gitattributes[5] for details." +"This option is NOT recommended as it makes it difficult to track down old " +"references to SVN revision numbers in existing documentation, bug reports " +"and archives. If you plan to eventually migrate from SVN to Git and are " +"certain about dropping SVN history, consider linkgit:git-filter-branch[1] " +"instead. filter-branch also allows reformatting of metadata for ease-of-" +"reading and rewriting authorship info for non-\"svn.authorsFile\" users." msgstr "" #. type: Labeled list -#: en/config.txt:1423 +#: en/git-svn.txt:778 #, no-wrap -msgid "filter.<driver>.smudge" -msgstr "" - -#. type: Plain text -#: en/config.txt:1427 -msgid "" -"The command which is used to convert the content of a blob object to a " -"worktree file upon checkout. See linkgit:gitattributes[5] for details." +msgid "svn.useSvmProps" msgstr "" #. type: Labeled list -#: en/config.txt:1428 +#: en/git-svn.txt:779 #, no-wrap -msgid "fsck.<msg-id>" +msgid "svn-remote.<name>.useSvmProps" msgstr "" #. type: Plain text -#: en/config.txt:1431 +#: en/git-svn.txt:782 msgid "" -"Allows overriding the message type (error, warn or ignore) of a specific " -"message ID such as `missingEmail`." +"This allows 'git svn' to re-map repository URLs and UUIDs from mirrors " +"created using SVN::Mirror (or svk) for metadata." msgstr "" #. type: Plain text -#: en/config.txt:1435 +#: en/git-svn.txt:790 msgid "" -"For convenience, fsck prefixes the error/warning with the message ID, e.g. " -"\"missingEmail: invalid author/committer line - missing email\" means that " -"setting `fsck.missingEmail = ignore` will hide that issue." +"If an SVN revision has a property, \"svm:headrev\", it is likely that the " +"revision was created by SVN::Mirror (also used by SVK). The property " +"contains a repository UUID and a revision. We want to make it look like we " +"are mirroring the original URL, so introduce a helper function that returns " +"the original identity URL and UUID, and use it when generating metadata in " +"commit messages." msgstr "" -#. type: Plain text -#: en/config.txt:1438 -msgid "" -"This feature is intended to support working with legacy repositories which " -"cannot be repaired without disruptive changes." +#. type: Labeled list +#: en/git-svn.txt:791 +#, no-wrap +msgid "svn.useSvnsyncProps" msgstr "" #. type: Labeled list -#: en/config.txt:1439 +#: en/git-svn.txt:792 #, no-wrap -msgid "fsck.skipList" +msgid "svn-remote.<name>.useSvnsyncprops" msgstr "" #. type: Plain text -#: en/config.txt:1446 en/config.txt:2679 +#: en/git-svn.txt:796 msgid "" -"The path to a sorted list of object names (i.e. one SHA-1 per line) that are " -"known to be broken in a non-fatal way and should be ignored. This feature is " -"useful when an established project should be accepted despite early commits " -"containing errors that can be safely ignored such as invalid committer email " -"addresses. Note: corrupt objects cannot be skipped with this setting." +"Similar to the useSvmProps option; this is for users of the svnsync(1) " +"command distributed with SVN 1.4.x and later." msgstr "" #. type: Labeled list -#: en/config.txt:1447 +#: en/git-svn.txt:797 #, no-wrap -msgid "gc.aggressiveDepth" +msgid "svn-remote.<name>.rewriteRoot" msgstr "" #. type: Plain text -#: en/config.txt:1451 +#: en/git-svn.txt:803 msgid "" -"The depth parameter used in the delta compression algorithm used by 'git gc " -"--aggressive'. This defaults to 50." +"This allows users to create repositories from alternate URLs. For example, " +"an administrator could run 'git svn' on the server locally (accessing via " +"file://) but wish to distribute the repository with a public http:// or " +"svn:// URL in the metadata so users of it will see the public URL." msgstr "" #. type: Labeled list -#: en/config.txt:1452 +#: en/git-svn.txt:804 #, no-wrap -msgid "gc.aggressiveWindow" +msgid "svn-remote.<name>.rewriteUUID" msgstr "" #. type: Plain text -#: en/config.txt:1456 +#: en/git-svn.txt:809 msgid "" -"The window size parameter used in the delta compression algorithm used by " -"'git gc --aggressive'. This defaults to 250." +"Similar to the useSvmProps option; this is for users who need to remap the " +"UUID manually. This may be useful in situations where the original UUID is " +"not available via either useSvmProps or useSvnsyncProps." msgstr "" #. type: Labeled list -#: en/config.txt:1457 +#: en/git-svn.txt:810 #, no-wrap -msgid "gc.auto" +msgid "svn-remote.<name>.pushurl" msgstr "" #. type: Plain text -#: en/config.txt:1463 +#: en/git-svn.txt:819 msgid "" -"When there are approximately more than this many loose objects in the " -"repository, `git gc --auto` will pack them. Some Porcelain commands use " -"this command to perform a light-weight garbage collection from time to " -"time. The default value is 6700. Setting this to 0 disables it." +"Similar to Git's `remote.<name>.pushurl`, this key is designed to be used in " +"cases where 'url' points to an SVN repository via a read-only transport, to " +"provide an alternate read/write transport. It is assumed that both keys " +"point to the same repository. Unlike 'commiturl', 'pushurl' is a base path. " +"If either 'commiturl' or 'pushurl' could be used, 'commiturl' takes " +"precedence." msgstr "" #. type: Labeled list -#: en/config.txt:1464 +#: en/git-svn.txt:820 #, no-wrap -msgid "gc.autoPackLimit" +msgid "svn.brokenSymlinkWorkaround" msgstr "" #. type: Plain text -#: en/config.txt:1469 +#: en/git-svn.txt:828 msgid "" -"When there are more than this many packs that are not marked with `*.keep` " -"file in the repository, `git gc --auto` consolidates them into one larger " -"pack. The default\tvalue is 50. Setting this to 0 disables it." +"This disables potentially expensive checks to workaround broken symlinks " +"checked into SVN by broken clients. Set this option to \"false\" if you " +"track a SVN repository with many empty blobs that are not symlinks. This " +"option may be changed while 'git svn' is running and take effect on the next " +"revision fetched. If unset, 'git svn' assumes this option to be \"true\"." msgstr "" #. type: Labeled list -#: en/config.txt:1470 +#: en/git-svn.txt:829 #, no-wrap -msgid "gc.autoDetach" +msgid "svn.pathnameencoding" msgstr "" #. type: Plain text -#: en/config.txt:1473 +#: en/git-svn.txt:834 msgid "" -"Make `git gc --auto` return immediately and run in background if the system " -"supports it. Default is true." +"This instructs git svn to recode pathnames to a given encoding. It can be " +"used by windows users and by those who work in non-utf8 locales to avoid " +"corrupted file names with non-ASCII characters. Valid encodings are the " +"ones supported by Perl's Encode module." msgstr "" #. type: Labeled list -#: en/config.txt:1474 +#: en/git-svn.txt:835 #, no-wrap -msgid "gc.logExpiry" +msgid "svn-remote.<name>.automkdirs" msgstr "" #. type: Plain text -#: en/config.txt:1479 +#: en/git-svn.txt:842 msgid "" -"If the file gc.log exists, then `git gc --auto` won't run unless that file " -"is more than 'gc.logExpiry' old. Default is \"1.day\". See " -"`gc.pruneExpire` for more ways to specify its value." +"Normally, the \"git svn clone\" and \"git svn rebase\" commands attempt to " +"recreate empty directories that are in the Subversion repository. If this " +"option is set to \"false\", then empty directories will only be created if " +"the \"git svn mkdirs\" command is run explicitly. If unset, 'git svn' " +"assumes this option to be \"true\"." msgstr "" -#. type: Labeled list -#: en/config.txt:1480 -#, no-wrap -msgid "gc.packRefs" +#. type: Plain text +#: en/git-svn.txt:847 +msgid "" +"Since the noMetadata, rewriteRoot, rewriteUUID, useSvnsyncProps and " +"useSvmProps options all affect the metadata generated and used by 'git svn'; " +"they *must* be set in the configuration file before any history is imported " +"and these settings should never be changed once they are set." msgstr "" #. type: Plain text -#: en/config.txt:1487 +#: en/git-svn.txt:851 msgid "" -"Running `git pack-refs` in a repository renders it unclonable by Git " -"versions prior to 1.5.1.2 over dumb transports such as HTTP. This variable " -"determines whether 'git gc' runs `git pack-refs`. This can be set to " -"`notbare` to enable it within all non-bare repos or it can be set to a " -"boolean value. The default is `true`." +"Additionally, only one of these options can be used per svn-remote section " +"because they affect the 'git-svn-id:' metadata line, except for rewriteRoot " +"and rewriteUUID which can be used together." msgstr "" -#. type: Labeled list -#: en/config.txt:1488 +#. type: Title - +#: en/git-svn.txt:854 #, no-wrap -msgid "gc.pruneExpire" +msgid "BASIC EXAMPLES" msgstr "" #. type: Plain text -#: en/config.txt:1496 +#: en/git-svn.txt:858 msgid "" -"When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'. Override " -"the grace period with this config variable. The value \"now\" may be used " -"to disable this grace period and always prune unreachable objects " -"immediately, or \"never\" may be used to suppress pruning. This feature " -"helps prevent corruption when 'git gc' runs concurrently with another " -"process writing to the repository; see the \"NOTES\" section of " -"linkgit:git-gc[1]." +"Tracking and contributing to the trunk of a Subversion-managed project " +"(ignoring tags and branches):" msgstr "" -#. type: Labeled list -#: en/config.txt:1497 +#. type: delimited block - +#: en/git-svn.txt:876 #, no-wrap -msgid "gc.worktreePruneExpire" +msgid "" +"# Clone a repo (like git clone):\n" +"\tgit svn clone http://svn.example.com/project/trunk\n" +"# Enter the newly cloned directory:\n" +"\tcd trunk\n" +"# You should be on master branch, double-check with 'git branch'\n" +"\tgit branch\n" +"# Do some work and commit locally to Git:\n" +"\tgit commit ...\n" +"# Something is committed to SVN, rebase your local changes against the\n" +"# latest changes in SVN:\n" +"\tgit svn rebase\n" +"# Now commit your changes (that were committed previously using Git) to SVN,\n" +"# as well as automatically updating your working HEAD:\n" +"\tgit svn dcommit\n" +"# Append svn:ignore settings to the default Git exclude file:\n" +"\tgit svn show-ignore >> .git/info/exclude\n" msgstr "" #. type: Plain text -#: en/config.txt:1504 +#: en/git-svn.txt:880 msgid "" -"When 'git gc' is run, it calls 'git worktree prune --expire 3.months.ago'. " -"This config variable can be used to set a different grace period. The value " -"\"now\" may be used to disable the grace period and prune " -"`$GIT_DIR/worktrees` immediately, or \"never\" may be used to suppress " -"pruning." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1505 -#, no-wrap -msgid "gc.reflogExpire" +"Tracking and contributing to an entire Subversion-managed project (complete " +"with a trunk, tags and branches):" msgstr "" -#. type: Labeled list -#: en/config.txt:1506 +#. type: delimited block - +#: en/git-svn.txt:895 #, no-wrap -msgid "gc.<pattern>.reflogExpire" +msgid "" +"# Clone a repo with standard SVN directory layout (like git clone):\n" +"\tgit svn clone http://svn.example.com/project --stdlayout --prefix svn/\n" +"# Or, if the repo uses a non-standard directory layout:\n" +"\tgit svn clone http://svn.example.com/project -T tr -b branch -t tag --prefix svn/\n" +"# View all branches and tags you have cloned:\n" +"\tgit branch -r\n" +"# Create a new branch in SVN\n" +"\tgit svn branch waldo\n" +"# Reset your master to trunk (or any other branch, replacing 'trunk'\n" +"# with the appropriate name):\n" +"\tgit reset --hard svn/trunk\n" +"# You may only dcommit to one branch/tag/trunk at a time. The usage\n" +"# of dcommit/rebase/show-ignore should be the same as above.\n" msgstr "" #. type: Plain text -#: en/config.txt:1513 +#: en/git-svn.txt:903 msgid "" -"'git reflog expire' removes reflog entries older than this time; defaults to " -"90 days. The value \"now\" expires all entries immediately, and \"never\" " -"suppresses expiration altogether. With \"<pattern>\" (e.g. \"refs/stash\") " -"in the middle the setting applies only to the refs that match the <pattern>." +"The initial 'git svn clone' can be quite time-consuming (especially for " +"large Subversion repositories). If multiple people (or one person with " +"multiple machines) want to use 'git svn' to interact with the same " +"Subversion repository, you can do the initial 'git svn clone' to a " +"repository on a server and have each person clone that repository with 'git " +"clone':" msgstr "" -#. type: Labeled list -#: en/config.txt:1514 +#. type: delimited block - +#: en/git-svn.txt:924 #, no-wrap -msgid "gc.reflogExpireUnreachable" +msgid "" +"# Do the initial import on a server\n" +"\tssh server \"cd /pub && git svn clone http://svn.example.com/project [options...]\"\n" +"# Clone locally - make sure the refs/remotes/ space matches the server\n" +"\tmkdir project\n" +"\tcd project\n" +"\tgit init\n" +"\tgit remote add origin server:/pub/project\n" +"\tgit config --replace-all remote.origin.fetch '+refs/remotes/*:refs/remotes/*'\n" +"\tgit fetch\n" +"# Prevent fetch/pull from remote Git server in the future,\n" +"# we only want to use git svn for future updates\n" +"\tgit config --remove-section remote.origin\n" +"# Create a local branch from one of the branches just fetched\n" +"\tgit checkout -b master FETCH_HEAD\n" +"# Initialize 'git svn' locally (be sure to use the same URL and\n" +"# --stdlayout/-T/-b/-t/--prefix options as were used on server)\n" +"\tgit svn init http://svn.example.com/project [options...]\n" +"# Pull the latest changes from Subversion\n" +"\tgit svn rebase\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1515 +#. type: Title - +#: en/git-svn.txt:927 #, no-wrap -msgid "gc.<pattern>.reflogExpireUnreachable" +msgid "REBASE VS. PULL/MERGE" msgstr "" #. type: Plain text -#: en/config.txt:1523 +#: en/git-svn.txt:933 msgid "" -"'git reflog expire' removes reflog entries older than this time and are not " -"reachable from the current tip; defaults to 30 days. The value \"now\" " -"expires all entries immediately, and \"never\" suppresses expiration " -"altogether. With \"<pattern>\" (e.g. \"refs/stash\") in the middle, the " -"setting applies only to the refs that match the <pattern>." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1524 -#, no-wrap -msgid "gc.rerereResolved" +"Prefer to use 'git svn rebase' or 'git rebase', rather than 'git pull' or " +"'git merge' to synchronize unintegrated commits with a 'git svn' branch. " +"Doing so will keep the history of unintegrated commits linear with respect " +"to the upstream SVN repository and allow the use of the preferred 'git svn " +"dcommit' subcommand to push unintegrated commits back into SVN." msgstr "" #. type: Plain text -#: en/config.txt:1528 +#: en/git-svn.txt:941 msgid "" -"Records of conflicted merge you resolved earlier are kept for this many days " -"when 'git rerere gc' is run. The default is 60 days. See " -"linkgit:git-rerere[1]." +"Originally, 'git svn' recommended that developers pulled or merged from the " +"'git svn' branch. This was because the author favored `git svn set-tree B` " +"to commit a single head rather than the `git svn set-tree A..B` notation to " +"commit multiple commits. Use of 'git pull' or 'git merge' with `git svn set-" +"tree A..B` will cause non-linear history to be flattened when committing " +"into SVN and this can lead to merge commits unexpectedly reversing previous " +"commits in SVN." msgstr "" -#. type: Labeled list -#: en/config.txt:1529 +#. type: Title - +#: en/git-svn.txt:943 #, no-wrap -msgid "gc.rerereUnresolved" +msgid "MERGE TRACKING" msgstr "" #. type: Plain text -#: en/config.txt:1533 +#: en/git-svn.txt:950 msgid "" -"Records of conflicted merge you have not resolved are kept for this many " -"days when 'git rerere gc' is run. The default is 15 days. See " -"linkgit:git-rerere[1]." +"While 'git svn' can track copy history (including branches and tags) for " +"repositories adopting a standard layout, it cannot yet represent merge " +"history that happened inside git back upstream to SVN users. Therefore it " +"is advised that users keep history as linear as possible inside Git to ease " +"compatibility with SVN (see the CAVEATS section below)." msgstr "" -#. type: Labeled list -#: en/config.txt:1534 +#. type: Title - +#: en/git-svn.txt:952 #, no-wrap -msgid "gitcvs.commitMsgAnnotation" +msgid "HANDLING OF SVN BRANCHES" msgstr "" #. type: Plain text -#: en/config.txt:1537 +#: en/git-svn.txt:960 msgid "" -"Append this string to each commit message. Set to empty string to disable " -"this feature. Defaults to \"via git-CVS emulator\"." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1538 -#, no-wrap -msgid "gitcvs.enabled" +"If 'git svn' is configured to fetch branches (and --follow-branches is in " +"effect), it sometimes creates multiple Git branches for one SVN branch, " +"where the additional branches have names of the form 'branchname@nnn' (with " +"nnn an SVN revision number). These additional branches are created if 'git " +"svn' cannot find a parent commit for the first commit in an SVN branch, to " +"connect the branch to the history of the other branches." msgstr "" #. type: Plain text -#: en/config.txt:1541 +#: en/git-svn.txt:976 msgid "" -"Whether the CVS server interface is enabled for this repository. See " -"linkgit:git-cvsserver[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1542 -#, no-wrap -msgid "gitcvs.logFile" +"Normally, the first commit in an SVN branch consists of a copy operation. " +"'git svn' will read this commit to get the SVN revision the branch was " +"created from. It will then try to find the Git commit that corresponds to " +"this SVN revision, and use that as the parent of the branch. However, it is " +"possible that there is no suitable Git commit to serve as parent. This will " +"happen, among other reasons, if the SVN branch is a copy of a revision that " +"was not fetched by 'git svn' (e.g. because it is an old revision that was " +"skipped with `--revision`), or if in SVN a directory was copied that is not " +"tracked by 'git svn' (such as a branch that is not tracked at all, or a " +"subdirectory of a tracked branch). In these cases, 'git svn' will still " +"create a Git branch, but instead of using an existing Git commit as the " +"parent of the branch, it will read the SVN history of the directory the " +"branch was copied from and create appropriate Git commits. This is " +"indicated by the message \"Initializing parent: <branchname>\"." msgstr "" #. type: Plain text -#: en/config.txt:1545 +#: en/git-svn.txt:983 msgid "" -"Path to a log file where the CVS server interface well... logs various " -"stuff. See linkgit:git-cvsserver[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1546 -#, no-wrap -msgid "gitcvs.usecrlfattr" +"Additionally, it will create a special branch named '<branchname>@<SVN-" +"Revision>', where <SVN-Revision> is the SVN revision number the branch was " +"copied from. This branch will point to the newly created parent commit of " +"the branch. If in SVN the branch was deleted and later recreated from a " +"different version, there will be multiple such branches with an '@'." msgstr "" #. type: Plain text -#: en/config.txt:1556 +#: en/git-svn.txt:986 msgid "" -"If true, the server will look up the end-of-line conversion attributes for " -"files to determine the `-k` modes to use. If the attributes force Git to " -"treat a file as text, the `-k` mode will be left blank so CVS clients will " -"treat it as text. If they suppress text conversion, the file will be set " -"with '-kb' mode, which suppresses any newline munging the client might " -"otherwise do. If the attributes do not allow the file type to be determined, " -"then `gitcvs.allBinary` is used. See linkgit:gitattributes[5]." +"Note that this may mean that multiple Git commits are created for a single " +"SVN revision." msgstr "" -#. type: Labeled list -#: en/config.txt:1557 -#, no-wrap -msgid "gitcvs.allBinary" +#. type: Plain text +#: en/git-svn.txt:996 +msgid "" +"An example: in an SVN repository with a standard trunk/tags/branches layout, " +"a directory trunk/sub is created in r.100. In r.200, trunk/sub is branched " +"by copying it to branches/. 'git svn clone -s' will then create a branch " +"'sub'. It will also create new Git commits for r.100 through r.199 and use " +"these as the history of branch 'sub'. Thus there will be two Git commits for " +"each revision from r.100 to r.199 (one containing trunk/, one containing " +"trunk/sub/). Finally, it will create a branch 'sub@200' pointing to the new " +"parent commit of branch 'sub' (i.e. the commit for r.200 and trunk/sub/)." msgstr "" #. type: Plain text -#: en/config.txt:1566 +#: en/git-svn.txt:1006 msgid "" -"This is used if `gitcvs.usecrlfattr` does not resolve the correct '-kb' mode " -"to use. If true, all unresolved files are sent to the client in mode " -"'-kb'. This causes the client to treat them as binary files, which " -"suppresses any newline munging it otherwise might do. Alternatively, if it " -"is set to \"guess\", then the contents of the file are examined to decide if " -"it is binary, similar to `core.autocrlf`." +"For the sake of simplicity and interoperating with Subversion, it is " +"recommended that all 'git svn' users clone, fetch and dcommit directly from " +"the SVN server, and avoid all 'git clone'/'pull'/'merge'/'push' operations " +"between Git repositories and branches. The recommended method of exchanging " +"code between Git branches and users is 'git format-patch' and 'git am', or " +"just 'dcommit'ing to the SVN repository." msgstr "" #. type: Plain text -#: en/config.txt:1574 +#: en/git-svn.txt:1012 msgid "" -"Database used by git-cvsserver to cache revision information derived from " -"the Git repository. The exact meaning depends on the used database driver, " -"for SQLite (which is the default driver) this is a filename. Supports " -"variable substitution (see linkgit:git-cvsserver[1] for details). May not " -"contain semicolons (`;`). Default: '%Ggitcvs.%m.sqlite'" +"Running 'git merge' or 'git pull' is NOT recommended on a branch you plan to " +"'dcommit' from because Subversion users cannot see any merges you've made. " +"Furthermore, if you merge or pull from a Git branch that is a mirror of an " +"SVN branch, 'dcommit' may commit to the wrong branch." msgstr "" #. type: Plain text -#: en/config.txt:1582 +#: en/git-svn.txt:1015 msgid "" -"Used Perl DBI driver. You can specify any available driver for this here, " -"but it might not work. git-cvsserver is tested with 'DBD::SQLite', reported " -"to work with 'DBD::Pg', and reported *not* to work with " -"'DBD::mysql'. Experimental feature. May not contain double colons " -"(`:`). Default: 'SQLite'. See linkgit:git-cvsserver[1]." +"If you do merge, note the following rule: 'git svn dcommit' will attempt to " +"commit on top of the SVN commit named in" msgstr "" -#. type: Labeled list -#: en/config.txt:1583 +#. type: delimited block - +#: en/git-svn.txt:1017 #, no-wrap -msgid "gitcvs.dbUser, gitcvs.dbPass" +msgid "git log --grep=^git-svn-id: --first-parent -1\n" msgstr "" #. type: Plain text -#: en/config.txt:1588 +#: en/git-svn.txt:1022 msgid "" -"Database user and password. Only useful if setting `gitcvs.dbDriver`, since " -"SQLite has no concept of database users and/or passwords. 'gitcvs.dbUser' " -"supports variable substitution (see linkgit:git-cvsserver[1] for details)." +"You 'must' therefore ensure that the most recent commit of the branch you " +"want to dcommit to is the 'first' parent of the merge. Chaos will ensue " +"otherwise, especially if the first parent is an older commit on the same SVN " +"branch." msgstr "" #. type: Plain text -#: en/config.txt:1595 +#: en/git-svn.txt:1027 msgid "" -"Database table name prefix. Prepended to the names of any database tables " -"used, allowing a single database to be used for several repositories. " -"Supports variable substitution (see linkgit:git-cvsserver[1] for details). " -"Any non-alphabetic characters will be replaced with underscores." +"'git clone' does not clone branches under the refs/remotes/ hierarchy or any " +"'git svn' metadata, or config. So repositories created and managed with " +"using 'git svn' should use 'rsync' for cloning, if cloning is to be done at " +"all." msgstr "" #. type: Plain text -#: en/config.txt:1601 +#: en/git-svn.txt:1032 msgid "" -"All gitcvs variables except for `gitcvs.usecrlfattr` and `gitcvs.allBinary` " -"can also be specified as 'gitcvs.<access_method>.<varname>' (where " -"'access_method' is one of \"ext\" and \"pserver\") to make them apply only " -"for the given access method." +"Since 'dcommit' uses rebase internally, any Git branches you 'git push' to " +"before 'dcommit' on will require forcing an overwrite of the existing ref on " +"the remote repository. This is generally considered bad practice, see the " +"linkgit:git-push[1] documentation for details." msgstr "" -#. type: Labeled list -#: en/config.txt:1602 -#, no-wrap -msgid "gitweb.category" +#. type: Plain text +#: en/git-svn.txt:1037 +msgid "" +"Do not use the --amend option of linkgit:git-commit[1] on a change you've " +"already dcommitted. It is considered bad practice to --amend commits you've " +"already pushed to a remote repository for other users, and dcommit with SVN " +"is analogous to that." msgstr "" -#. type: Labeled list -#: en/config.txt:1603 -#, no-wrap -msgid "gitweb.description" +#. type: Plain text +#: en/git-svn.txt:1052 +msgid "" +"When cloning an SVN repository, if none of the options for describing the " +"repository layout is used (--trunk, --tags, --branches, --stdlayout), 'git " +"svn clone' will create a Git repository with completely linear history, " +"where branches and tags appear as separate directories in the working copy. " +"While this is the easiest way to get a copy of a complete repository, for " +"projects with many branches it will lead to a working copy many times larger " +"than just the trunk. Thus for projects using the standard directory " +"structure (trunk/branches/tags), it is recommended to clone with option `--" +"stdlayout`. If the project uses a non-standard structure, and/or if branches " +"and tags are not required, it is easiest to only clone one directory " +"(typically trunk), without giving any repository layout options. If the " +"full history with branches and tags is required, the options `--trunk` / `--" +"branches` / `--tags` must be used." msgstr "" -#. type: Labeled list -#: en/config.txt:1604 -#, no-wrap -msgid "gitweb.owner" +#. type: Plain text +#: en/git-svn.txt:1059 +msgid "" +"When using multiple --branches or --tags, 'git svn' does not automatically " +"handle name collisions (for example, if two branches from different paths " +"have the same name, or if a branch and a tag have the same name). In these " +"cases, use 'init' to set up your Git repository then, before your first " +"'fetch', edit the $GIT_DIR/config file so that the branches and tags are " +"associated with different name spaces. For example:" msgstr "" -#. type: Labeled list -#: en/config.txt:1605 +#. type: Plain text +#: en/git-svn.txt:1062 #, no-wrap -msgid "gitweb.url" +msgid "" +"\tbranches = stable/*:refs/remotes/svn/stable/*\n" +"\tbranches = debug/*:refs/remotes/svn/debug/*\n" msgstr "" #. type: Plain text -#: en/config.txt:1607 -msgid "See linkgit:gitweb[1] for description." +#: en/git-svn.txt:1068 +msgid "" +"We ignore all SVN properties except svn:executable. Any unhandled " +"properties are logged to $GIT_DIR/svn/<refname>/unhandled.log" msgstr "" -#. type: Labeled list -#: en/config.txt:1608 -#, no-wrap -msgid "gitweb.avatar" +#. type: Plain text +#: en/git-svn.txt:1075 +msgid "" +"Renamed and copied directories are not detected by Git and hence not tracked " +"when committing to SVN. I do not plan on adding support for this as it's " +"quite difficult and time-consuming to get working for all the possible " +"corner cases (Git doesn't do it, either). Committing renamed and copied " +"files is fully supported if they're similar enough for Git to detect them." msgstr "" -#. type: Labeled list -#: en/config.txt:1609 -#, no-wrap -msgid "gitweb.blame" +#. type: Plain text +#: en/git-svn.txt:1081 +msgid "" +"In SVN, it is possible (though discouraged) to commit changes to a tag " +"(because a tag is just a directory copy, thus technically the same as a " +"branch). When cloning an SVN repository, 'git svn' cannot know if such a " +"commit to a tag will happen in the future. Thus it acts conservatively and " +"imports all SVN tags as branches, prefixing the tag name with 'tags/'." msgstr "" -#. type: Labeled list -#: en/config.txt:1610 -#, no-wrap -msgid "gitweb.grep" +#. type: Plain text +#: en/git-svn.txt:1092 +msgid "" +"'git svn' stores [svn-remote] configuration information in the repository " +"$GIT_DIR/config file. It is similar the core Git [remote] sections except " +"'fetch' keys do not accept glob arguments; but they are instead handled by " +"the 'branches' and 'tags' keys. Since some SVN repositories are oddly " +"configured with multiple projects glob expansions such those listed below " +"are allowed:" msgstr "" -#. type: Labeled list -#: en/config.txt:1611 +#. type: delimited block - +#: en/git-svn.txt:1101 #, no-wrap -msgid "gitweb.highlight" +msgid "" +"[svn-remote \"project-a\"]\n" +"\turl = http://server.org/svn\n" +"\tfetch = trunk/project-a:refs/remotes/project-a/trunk\n" +"\tbranches = branches/*/project-a:refs/remotes/project-a/branches/*\n" +"\tbranches = branches/release_*:refs/remotes/project-a/branches/release_*\n" +"\tbranches = branches/re*se:refs/remotes/project-a/branches/*\n" +"\ttags = tags/*/project-a:refs/remotes/project-a/tags/*\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1612 +#. type: Plain text +#: en/git-svn.txt:1109 #, no-wrap -msgid "gitweb.patches" +msgid "" +"Keep in mind that the '\\*' (asterisk) wildcard of the local ref\n" +"(right of the ':') *must* be the farthest right path component;\n" +"however the remote wildcard may be anywhere as long as it's an\n" +"independent path component (surrounded by '/' or EOL). This\n" +"type of configuration is not automatically created by 'init' and\n" +"should be manually entered with a text-editor or using 'git config'.\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1613 -#, no-wrap -msgid "gitweb.pickaxe" +#. type: Plain text +#: en/git-svn.txt:1111 +msgid "Also note that only one asterisk is allowed per word. For example:" msgstr "" -#. type: Labeled list -#: en/config.txt:1614 +#. type: Plain text +#: en/git-svn.txt:1113 #, no-wrap -msgid "gitweb.remote_heads" +msgid "\tbranches = branches/re*se:refs/remotes/project-a/branches/*\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1615 -#, no-wrap -msgid "gitweb.showSizes" +#. type: Plain text +#: en/git-svn.txt:1115 +msgid "will match branches 'release', 'rese', 're123se', however" msgstr "" -#. type: Labeled list -#: en/config.txt:1616 +#. type: Plain text +#: en/git-svn.txt:1117 #, no-wrap -msgid "gitweb.snapshot" +msgid "\tbranches = branches/re*s*e:refs/remotes/project-a/branches/*\n" msgstr "" #. type: Plain text -#: en/config.txt:1618 -msgid "See linkgit:gitweb.conf[5] for description." +#: en/git-svn.txt:1119 +msgid "will produce an error." msgstr "" #. type: Plain text -#: en/config.txt:1636 +#: en/git-svn.txt:1122 msgid "" -"Number of grep worker threads to use. See `grep.threads` in " -"linkgit:git-grep[1] for more information." +"It is also possible to fetch a subset of branches or tags by using a comma-" +"separated list of names within braces. For example:" msgstr "" -#. type: Labeled list -#: en/config.txt:1641 +#. type: delimited block - +#: en/git-svn.txt:1129 #, no-wrap -msgid "gpg.program" +msgid "" +"[svn-remote \"huge-project\"]\n" +"\turl = http://server.org/svn\n" +"\tfetch = trunk/src:refs/remotes/trunk\n" +"\tbranches = branches/{red,green}/src:refs/remotes/project-a/branches/*\n" +"\ttags = tags/{1.0,2.0}/src:refs/remotes/project-a/tags/*\n" msgstr "" #. type: Plain text -#: en/config.txt:1651 -msgid "" -"Use this custom program instead of \"`gpg`\" found on `$PATH` when making or " -"verifying a PGP signature. The program must support the same command-line " -"interface as GPG, namely, to verify a detached signature, \"`gpg --verify " -"$file - <$signature`\" is run, and the program is expected to signal a good " -"signature by exiting with code 0, and to generate an ASCII-armored detached " -"signature, the standard input of \"`gpg -bsau $key`\" is fed with the " -"contents to be signed, and the program is expected to send the result to its " -"standard output." +#: en/git-svn.txt:1132 +msgid "Multiple fetch, branches, and tags keys are supported:" msgstr "" -#. type: Labeled list -#: en/config.txt:1652 +#. type: delimited block - +#: en/git-svn.txt:1141 #, no-wrap -msgid "gui.commitMsgWidth" +msgid "" +"[svn-remote \"messy-repo\"]\n" +"\turl = http://server.org/svn\n" +"\tfetch = trunk/project-a:refs/remotes/project-a/trunk\n" +"\tfetch = branches/demos/june-project-a-demo:refs/remotes/project-a/demos/june-demo\n" +"\tbranches = branches/server/*:refs/remotes/project-a/branches/*\n" +"\tbranches = branches/demos/2011/*:refs/remotes/project-a/2011-demos/*\n" +"\ttags = tags/server/*:refs/remotes/project-a/tags/*\n" msgstr "" #. type: Plain text -#: en/config.txt:1655 +#: en/git-svn.txt:1145 msgid "" -"Defines how wide the commit message window is in the " -"linkgit:git-gui[1]. \"75\" is the default." +"Creating a branch in such a configuration requires disambiguating which " +"location to use using the -d or --destination flag:" msgstr "" -#. type: Labeled list -#: en/config.txt:1656 +#. type: delimited block - +#: en/git-svn.txt:1148 #, no-wrap -msgid "gui.diffContext" +msgid "$ git svn branch -d branches/server release-2-3-0\n" msgstr "" #. type: Plain text -#: en/config.txt:1659 +#: en/git-svn.txt:1154 msgid "" -"Specifies how many context lines should be used in calls to diff made by the " -"linkgit:git-gui[1]. The default is \"5\"." +"Note that git-svn keeps track of the highest revision in which a branch or " +"tag has appeared. If the subset of branches or tags is changed after " +"fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove (or " +"reset) branches-maxRev and/or tags-maxRev as appropriate." msgstr "" #. type: Labeled list -#: en/config.txt:1660 +#: en/git-svn.txt:1157 #, no-wrap -msgid "gui.displayUntracked" +msgid "$GIT_DIR/svn/\\*\\*/.rev_map.*" msgstr "" #. type: Plain text -#: en/config.txt:1663 +#: en/git-svn.txt:1163 msgid "" -"Determines if linkgit:git-gui[1] shows untracked files in the file list. The " -"default is \"true\"." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1664 -#, no-wrap -msgid "gui.encoding" +"Mapping between Subversion revision numbers and Git commit names. In a " +"repository where the noMetadata option is not set, this can be rebuilt from " +"the git-svn-id: lines that are at the end of every commit (see the 'svn." +"noMetadata' section above for details)." msgstr "" #. type: Plain text -#: en/config.txt:1671 +#: en/git-svn.txt:1167 msgid "" -"Specifies the default encoding to use for displaying of file contents in " -"linkgit:git-gui[1] and linkgit:gitk[1]. It can be overridden by setting the " -"'encoding' attribute for relevant files (see linkgit:gitattributes[5]). If " -"this option is not set, the tools default to the locale encoding." +"'git svn fetch' and 'git svn rebase' automatically update the rev_map if it " +"is missing or not up to date. 'git svn reset' automatically rewinds it." msgstr "" -#. type: Labeled list -#: en/config.txt:1672 +#. type: Title = +#: en/git-symbolic-ref.txt:2 #, no-wrap -msgid "gui.matchTrackingBranch" +msgid "git-symbolic-ref(1)" msgstr "" #. type: Plain text -#: en/config.txt:1676 -msgid "" -"Determines if new branches created with linkgit:git-gui[1] should default to " -"tracking remote branches with matching names or not. Default: \"false\"." +#: en/git-symbolic-ref.txt:7 +msgid "git-symbolic-ref - Read, modify and delete symbolic refs" msgstr "" -#. type: Labeled list -#: en/config.txt:1677 +#. type: Plain text +#: en/git-symbolic-ref.txt:14 #, no-wrap -msgid "gui.newBranchTemplate" +msgid "" +"'git symbolic-ref' [-m <reason>] <name> <ref>\n" +"'git symbolic-ref' [-q] [--short] <name>\n" +"'git symbolic-ref' --delete [-q] <name>\n" msgstr "" #. type: Plain text -#: en/config.txt:1680 +#: en/git-symbolic-ref.txt:21 msgid "" -"Is used as suggested name when creating new branches using the " -"linkgit:git-gui[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1681 -#, no-wrap -msgid "gui.pruneDuringFetch" +"Given one argument, reads which branch head the given symbolic ref refers to " +"and outputs its path, relative to the `.git/` directory. Typically you " +"would give `HEAD` as the <name> argument to see which branch your working " +"tree is on." msgstr "" #. type: Plain text -#: en/config.txt:1684 +#: en/git-symbolic-ref.txt:24 msgid "" -"\"true\" if linkgit:git-gui[1] should prune remote-tracking branches when " -"performing a fetch. The default value is \"false\"." +"Given two arguments, creates or updates a symbolic ref <name> to point at " +"the given branch <ref>." msgstr "" -#. type: Labeled list -#: en/config.txt:1685 -#, no-wrap -msgid "gui.trustmtime" +#. type: Plain text +#: en/git-symbolic-ref.txt:27 +msgid "" +"Given `--delete` and an additional argument, deletes the given symbolic ref." msgstr "" #. type: Plain text -#: en/config.txt:1688 +#: en/git-symbolic-ref.txt:31 msgid "" -"Determines if linkgit:git-gui[1] should trust the file modification " -"timestamp or not. By default the timestamps are not trusted." +"A symbolic ref is a regular file that stores a string that begins with `ref: " +"refs/`. For example, your `.git/HEAD` is a regular file whose contents is " +"`ref: refs/heads/master`." msgstr "" -#. type: Labeled list -#: en/config.txt:1689 -#, no-wrap -msgid "gui.spellingDictionary" +#. type: Plain text +#: en/git-symbolic-ref.txt:38 +msgid "Delete the symbolic ref <name>." msgstr "" #. type: Plain text -#: en/config.txt:1693 +#: en/git-symbolic-ref.txt:44 msgid "" -"Specifies the dictionary used for spell checking commit messages in the " -"linkgit:git-gui[1]. When set to \"none\" spell checking is turned off." +"Do not issue an error message if the <name> is not a symbolic ref but a " +"detached HEAD; instead exit with non-zero status silently." msgstr "" -#. type: Labeled list -#: en/config.txt:1694 -#, no-wrap -msgid "gui.fastCopyBlame" +#. type: Plain text +#: en/git-symbolic-ref.txt:48 +msgid "" +"When showing the value of <name> as a symbolic ref, try to shorten the " +"value, e.g. from `refs/heads/master` to `master`." msgstr "" #. type: Plain text -#: en/config.txt:1698 +#: en/git-symbolic-ref.txt:52 msgid "" -"If true, 'git gui blame' uses `-C` instead of `-C -C` for original location " -"detection. It makes blame significantly faster on huge repositories at the " -"expense of less thorough copy detection." +"Update the reflog for <name> with <reason>. This is valid only when " +"creating or updating a symbolic ref." msgstr "" -#. type: Labeled list -#: en/config.txt:1699 -#, no-wrap -msgid "gui.copyBlameThreshold" +#. type: Plain text +#: en/git-symbolic-ref.txt:62 +msgid "" +"In the past, `.git/HEAD` was a symbolic link pointing at `refs/heads/" +"master`. When we wanted to switch to another branch, we did `ln -sf refs/" +"heads/newbranch .git/HEAD`, and when we wanted to find out which branch we " +"are on, we did `readlink .git/HEAD`. But symbolic links are not entirely " +"portable, so they are now deprecated and symbolic refs (as described above) " +"are used by default." msgstr "" #. type: Plain text -#: en/config.txt:1703 +#: en/git-symbolic-ref.txt:66 msgid "" -"Specifies the threshold to use in 'git gui blame' original location " -"detection, measured in alphanumeric characters. See the linkgit:git-blame[1] " -"manual for more information on copy detection." +"'git symbolic-ref' will exit with status 0 if the contents of the symbolic " +"ref were printed correctly, with status 1 if the requested name is not a " +"symbolic ref, or 128 if another error occurs." msgstr "" -#. type: Labeled list -#: en/config.txt:1704 +#. type: Title = +#: en/git-tag.txt:2 #, no-wrap -msgid "gui.blamehistoryctx" +msgid "git-tag(1)" msgstr "" #. type: Plain text -#: en/config.txt:1709 -msgid "" -"Specifies the radius of history context in days to show in linkgit:gitk[1] " -"for the selected commit, when the `Show History Context` menu item is " -"invoked from 'git gui blame'. If this variable is set to zero, the whole " -"history is shown." +#: en/git-tag.txt:7 +msgid "git-tag - Create, list, delete or verify a tag object signed with GPG" msgstr "" -#. type: Labeled list -#: en/config.txt:1710 +#. type: Plain text +#: en/git-tag.txt:20 #, no-wrap -msgid "guitool.<name>.cmd" +msgid "" +"'git tag' [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>] [-e]\n" +"\t<tagname> [<commit> | <object>]\n" +"'git tag' -d <tagname>...\n" +"'git tag' [-n[<num>]] -l [--contains <commit>] [--no-contains <commit>]\n" +"\t[--points-at <object>] [--column[=<options>] | --no-column]\n" +"\t[--create-reflog] [--sort=<key>] [--format=<format>]\n" +"\t[--[no-]merged [<commit>]] [<pattern>...]\n" +"'git tag' -v [--format=<format>] <tagname>...\n" msgstr "" #. type: Plain text -#: en/config.txt:1718 +#: en/git-tag.txt:26 msgid "" -"Specifies the shell command line to execute when the corresponding item of " -"the linkgit:git-gui[1] `Tools` menu is invoked. This option is mandatory for " -"every tool. The command is executed from the root of the working directory, " -"and in the environment it receives the name of the tool as `GIT_GUITOOL`, " -"the name of the currently selected file as 'FILENAME', and the name of the " -"current branch as 'CUR_BRANCH' (if the head is detached, 'CUR_BRANCH' is " -"empty)." +"Add a tag reference in `refs/tags/`, unless `-d/-l/-v` is given to delete, " +"list or verify tags." msgstr "" -#. type: Labeled list -#: en/config.txt:1719 -#, no-wrap -msgid "guitool.<name>.needsFile" +#. type: Plain text +#: en/git-tag.txt:28 +msgid "Unless `-f` is given, the named tag must not yet exist." msgstr "" #. type: Plain text -#: en/config.txt:1722 +#: en/git-tag.txt:33 msgid "" -"Run the tool only if a diff is selected in the GUI. It guarantees that " -"'FILENAME' is not empty." +"If one of `-a`, `-s`, or `-u <keyid>` is passed, the command creates a 'tag' " +"object, and requires a tag message. Unless `-m <msg>` or `-F <file>` is " +"given, an editor is started for the user to type in the tag message." msgstr "" -#. type: Labeled list -#: en/config.txt:1723 -#, no-wrap -msgid "guitool.<name>.noConsole" +#. type: Plain text +#: en/git-tag.txt:36 +msgid "" +"If `-m <msg>` or `-F <file>` is given and `-a`, `-s`, and `-u <keyid>` are " +"absent, `-a` is implied." msgstr "" #. type: Plain text -#: en/config.txt:1726 -msgid "Run the command silently, without creating a window to display its output." +#: en/git-tag.txt:39 +msgid "" +"Otherwise, a tag reference that points directly at the given object (i.e., a " +"lightweight tag) is created." msgstr "" -#. type: Labeled list -#: en/config.txt:1727 -#, no-wrap -msgid "guitool.<name>.noRescan" +#. type: Plain text +#: en/git-tag.txt:45 +msgid "" +"A GnuPG signed tag object will be created when `-s` or `-u <keyid>` is " +"used. When `-u <keyid>` is not used, the committer identity for the current " +"user is used to find the GnuPG key for signing. \tThe configuration variable " +"`gpg.program` is used to specify custom GnuPG binary." msgstr "" #. type: Plain text -#: en/config.txt:1730 +#: en/git-tag.txt:51 msgid "" -"Don't rescan the working directory for changes after the tool finishes " -"execution." +"Tag objects (created with `-a`, `-s`, or `-u`) are called \"annotated\" " +"tags; they contain a creation date, the tagger name and e-mail, a tagging " +"message, and an optional GnuPG signature. Whereas a \"lightweight\" tag is " +"simply a name for an object (usually a commit object)." msgstr "" -#. type: Labeled list -#: en/config.txt:1731 -#, no-wrap -msgid "guitool.<name>.confirm" +#. type: Plain text +#: en/git-tag.txt:56 +msgid "" +"Annotated tags are meant for release while lightweight tags are meant for " +"private or temporary object labels. For this reason, some git commands for " +"naming objects (like `git describe`) will ignore lightweight tags by default." msgstr "" #. type: Plain text -#: en/config.txt:1733 -msgid "Show a confirmation dialog before actually running the tool." +#: en/git-tag.txt:63 +msgid "Make an unsigned, annotated tag object" msgstr "" #. type: Labeled list -#: en/config.txt:1734 +#: en/git-tag.txt:65 #, no-wrap -msgid "guitool.<name>.argPrompt" +msgid "--sign" msgstr "" #. type: Plain text -#: en/config.txt:1741 -msgid "" -"Request a string argument from the user, and pass it to the tool through the " -"`ARGS` environment variable. Since requesting an argument implies " -"confirmation, the 'confirm' option has no effect if this is enabled. If the " -"option is set to 'true', 'yes', or '1', the dialog uses a built-in generic " -"prompt; otherwise the exact value of the variable is used." +#: en/git-tag.txt:67 +msgid "Make a GPG-signed tag, using the default e-mail address's key." msgstr "" #. type: Labeled list -#: en/config.txt:1742 +#: en/git-tag.txt:68 #, no-wrap -msgid "guitool.<name>.revPrompt" -msgstr "" - -#. type: Plain text -#: en/config.txt:1746 -msgid "" -"Request a single valid revision from the user, and set the `REVISION` " -"environment variable. In other aspects this option is similar to " -"'argPrompt', and can be used together with it." +msgid "-u <keyid>" msgstr "" #. type: Labeled list -#: en/config.txt:1747 +#: en/git-tag.txt:69 #, no-wrap -msgid "guitool.<name>.revUnmerged" +msgid "--local-user=<keyid>" msgstr "" #. type: Plain text -#: en/config.txt:1751 -msgid "" -"Show only unmerged branches in the 'revPrompt' subdialog. This is useful " -"for tools similar to merge or rebase, but not for things like checkout or " -"reset." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1752 -#, no-wrap -msgid "guitool.<name>.title" +#: en/git-tag.txt:71 +msgid "Make a GPG-signed tag, using the given key." msgstr "" #. type: Plain text -#: en/config.txt:1755 -msgid "" -"Specifies the title to use for the prompt dialog. The default is the tool " -"name." +#: en/git-tag.txt:75 +msgid "Replace an existing tag with the given name (instead of failing)" msgstr "" -#. type: Labeled list -#: en/config.txt:1756 -#, no-wrap -msgid "guitool.<name>.prompt" +#. type: Plain text +#: en/git-tag.txt:79 +msgid "Delete existing tags with the given names." msgstr "" #. type: Plain text -#: en/config.txt:1760 -msgid "" -"Specifies the general prompt string to display at the top of the dialog, " -"before subsections for 'argPrompt' and 'revPrompt'. The default value " -"includes the actual command." +#: en/git-tag.txt:83 +msgid "Verify the GPG signature of the given tag names." msgstr "" #. type: Labeled list -#: en/config.txt:1761 +#: en/git-tag.txt:84 #, no-wrap -msgid "help.browser" +msgid "-n<num>" msgstr "" #. type: Plain text -#: en/config.txt:1764 +#: en/git-tag.txt:87 msgid "" -"Specify the browser that will be used to display help in the 'web' " -"format. See linkgit:git-help[1]." +"<num> specifies how many lines from the annotation, if any, are printed when " +"using -l. Implies `--list`." msgstr "" #. type: Plain text -#: en/config.txt:1769 +#: en/git-tag.txt:91 msgid "" -"Override the default help format used by linkgit:git-help[1]. Values 'man', " -"'info', 'web' and 'html' are supported. 'man' is the default. 'web' and " -"'html' are the same." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1770 -#, no-wrap -msgid "help.autoCorrect" +"The default is not to print any annotation lines. If no number is given to " +"`-n`, only the first line is printed. If the tag is not annotated, the " +"commit message is displayed instead." msgstr "" #. type: Plain text -#: en/config.txt:1778 +#: en/git-tag.txt:96 msgid "" -"Automatically correct and execute mistyped commands after waiting for the " -"given number of deciseconds (0.1 sec). If more than one command can be " -"deduced from the entered text, nothing will be executed. If the value of " -"this option is negative, the corrected command will be executed " -"immediately. If the value is 0 - the command will be just shown but not " -"executed. This is the default." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1779 -#, no-wrap -msgid "help.htmlPath" +"List tags. With optional `<pattern>...`, e.g. `git tag --list 'v-*'`, list " +"only the tags that match the pattern(s)." msgstr "" #. type: Plain text -#: en/config.txt:1784 +#: en/git-tag.txt:100 msgid "" -"Specify the path where the HTML documentation resides. File system paths and " -"URLs are supported. HTML pages will be prefixed with this path when help is " -"displayed in the 'web' format. This defaults to the documentation path of " -"your Git installation." +"Running \"git tag\" without arguments also lists all tags. The pattern is a " +"shell wildcard (i.e., matched using fnmatch(3)). Multiple patterns may be " +"given; if any of them matches, the tag is shown." msgstr "" -#. type: Labeled list -#: en/config.txt:1785 -#, no-wrap -msgid "http.proxy" +#. type: Plain text +#: en/git-tag.txt:104 +msgid "" +"This option is implicitly supplied if any other list-like option such as `--" +"contains` is provided. See the documentation for each of those options for " +"details." msgstr "" #. type: Plain text -#: en/config.txt:1794 +#: en/git-tag.txt:117 msgid "" -"Override the HTTP proxy, normally configured using the 'http_proxy', " -"'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In " -"addition to the syntax understood by curl, it is possible to specify a proxy " -"string with a user name but no password, in which case git will attempt to " -"acquire one in the same way it does for other credentials. See " -"linkgit:gitcredentials[7] for more information. The syntax thus is " -"'[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden on " -"a per-remote basis; see remote.<name>.proxy" +"Sort based on the key given. Prefix `-` to sort in descending order of the " +"value. You may use the --sort=<key> option multiple times, in which case the " +"last key becomes the primary key. Also supports \"version:refname\" or \"v:" +"refname\" (tag names are treated as versions). The \"version:refname\" sort " +"order can also be affected by the \"versionsort.suffix\" configuration " +"variable. The keys supported are the same as those in `git for-each-ref`. " +"Sort order defaults to the value configured for the `tag.sort` variable if " +"it exists, or lexicographic order otherwise. See linkgit:git-config[1]." msgstr "" -#. type: Labeled list -#: en/config.txt:1795 -#, no-wrap -msgid "http.proxyAuthMethod" +#. type: Plain text +#: en/git-tag.txt:126 +msgid "Sorting and filtering tags are case insensitive." msgstr "" #. type: Plain text -#: en/config.txt:1802 +#: en/git-tag.txt:132 msgid "" -"Set the method with which to authenticate against the HTTP proxy. This only " -"takes effect if the configured proxy string contains a user name part " -"(i.e. is of the form 'user@host' or 'user@host:port'). This can be " -"overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`. Both " -"can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment variable. " -"Possible values are:" +"Display tag listing in columns. See configuration variable column.tag for " +"option syntax.`--column` and `--no-column` without options are equivalent to " +"'always' and 'never' respectively." msgstr "" #. type: Plain text -#: en/config.txt:1808 +#: en/git-tag.txt:134 msgid "" -"`anyauth` - Automatically pick a suitable authentication method. It is " -"assumed that the proxy answers an unauthenticated request with a 407 status " -"code and one or more Proxy-authenticate headers with supported " -"authentication methods. This is the default." +"This option is only applicable when listing tags without annotation lines." msgstr "" #. type: Plain text -#: en/config.txt:1809 -msgid "`basic` - HTTP Basic authentication" +#: en/git-tag.txt:138 +msgid "" +"Only list tags which contain the specified commit (HEAD if not specified). " +"Implies `--list`." msgstr "" #. type: Plain text -#: en/config.txt:1811 +#: en/git-tag.txt:142 msgid "" -"`digest` - HTTP Digest authentication; this prevents the password from being " -"transmitted to the proxy in clear text" +"Only list tags which don't contain the specified commit (HEAD if not " +"specified). Implies `--list`." msgstr "" #. type: Plain text -#: en/config.txt:1813 +#: en/git-tag.txt:146 msgid "" -"`negotiate` - GSS-Negotiate authentication (compare the --negotiate option " -"of `curl(1)`)" +"Only list tags whose commits are reachable from the specified commit (`HEAD` " +"if not specified), incompatible with `--no-merged`." msgstr "" #. type: Plain text -#: en/config.txt:1814 -msgid "`ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)" +#: en/git-tag.txt:150 +msgid "" +"Only list tags whose commits are not reachable from the specified commit " +"(`HEAD` if not specified), incompatible with `--merged`." msgstr "" -#. type: Labeled list -#: en/config.txt:1816 -#, no-wrap -msgid "http.emptyAuth" +#. type: Plain text +#: en/git-tag.txt:154 +msgid "" +"Only list tags of the given object (HEAD if not specified). Implies `--list`." msgstr "" #. type: Plain text -#: en/config.txt:1821 +#: en/git-tag.txt:162 msgid "" -"Attempt authentication without seeking a username or password. This can be " -"used to attempt GSS-Negotiate authentication without specifying a username " -"in the URL, as libcurl normally requires a username for authentication." +"Use the given tag message (instead of prompting). If multiple `-m` options " +"are given, their values are concatenated as separate paragraphs. Implies `-" +"a` if none of `-a`, `-s`, or `-u <keyid>` is given." msgstr "" -#. type: Labeled list -#: en/config.txt:1822 -#, no-wrap -msgid "http.delegation" +#. type: Plain text +#: en/git-tag.txt:169 +msgid "" +"Take the tag message from the given file. Use '-' to read the message from " +"the standard input. Implies `-a` if none of `-a`, `-s`, or `-u <keyid>` is " +"given." msgstr "" #. type: Plain text -#: en/config.txt:1827 +#: en/git-tag.txt:175 msgid "" -"Control GSSAPI credential delegation. The delegation is disabled by default " -"in libcurl since version 7.21.7. Set parameter to tell the server what it is " -"allowed to delegate when it comes to user credentials. Used with " -"GSS/kerberos. Possible values are:" +"The message taken from file with `-F` and command line with `-m` are usually " +"used as the tag message unmodified. This option lets you further edit the " +"message taken from these sources." msgstr "" #. type: Plain text -#: en/config.txt:1830 -msgid "`none` - Don't allow any delegation." +#: en/git-tag.txt:182 +msgid "" +"This option sets how the tag message is cleaned up. The '<mode>' can be one " +"of 'verbatim', 'whitespace' and 'strip'. The 'strip' mode is default. The " +"'verbatim' mode does not change message at all, 'whitespace' removes just " +"leading/trailing whitespace lines and 'strip' removes both whitespace and " +"commentary." msgstr "" #. type: Plain text -#: en/config.txt:1832 +#: en/git-tag.txt:189 msgid "" -"`policy` - Delegates if and only if the OK-AS-DELEGATE flag is set in the " -"Kerberos service ticket, which is a matter of realm policy." +"Create a reflog for the tag. To globally enable reflogs for tags, see `core." +"logAllRefUpdates` in linkgit:git-config[1]. The negated form `--no-create-" +"reflog` only overrides an earlier `--create-reflog`, but currently does not " +"negate the setting of `core.logAllRefUpdates`." msgstr "" #. type: Plain text -#: en/config.txt:1833 -msgid "`always` - Unconditionally allow the server to delegate." +#: en/git-tag.txt:195 +msgid "" +"A string that interpolates `%(fieldname)` from a tag ref being shown and the " +"object it points at. The format is the same as that of linkgit:git-for-each-" +"ref[1]. When unspecified, defaults to `%(refname:strip=2)`." msgstr "" #. type: Labeled list -#: en/config.txt:1836 +#: en/git-tag.txt:196 #, no-wrap -msgid "http.extraHeader" +msgid "<tagname>" msgstr "" #. type: Plain text -#: en/config.txt:1841 +#: en/git-tag.txt:201 msgid "" -"Pass an additional HTTP header when communicating with a server. If more " -"than one such entry exists, all of them are added as extra headers. To " -"allow overriding the settings inherited from the system config, an empty " -"value will reset the extra headers to the empty list." +"The name of the tag to create, delete, or describe. The new tag name must " +"pass all checks defined by linkgit:git-check-ref-format[1]. Some of these " +"checks may restrict the characters allowed in a tag name." msgstr "" #. type: Labeled list -#: en/config.txt:1842 +#: en/git-tag.txt:202 en/git.txt:312 #, no-wrap -msgid "http.cookieFile" +msgid "<commit>" msgstr "" #. type: Plain text -#: en/config.txt:1850 +#: en/git-tag.txt:206 msgid "" -"The pathname of a file containing previously stored cookie lines, which " -"should be used in the Git http session, if they match the server. The file " -"format of the file to read cookies from should be plain HTTP headers or the " -"Netscape/Mozilla cookie file format (see `curl(1)`). NOTE that the file " -"specified with http.cookieFile is used only as input unless http.saveCookies " -"is set." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1851 -#, no-wrap -msgid "http.saveCookies" +"The object that the new tag will refer to, usually a commit. Defaults to " +"HEAD." msgstr "" #. type: Plain text -#: en/config.txt:1854 +#: en/git-tag.txt:213 msgid "" -"If set, store cookies received during requests to the file specified by " -"http.cookieFile. Has no effect if http.cookieFile is unset." +"By default, 'git tag' in sign-with-default mode (-s) will use your committer " +"identity (of the form `Your Name <your@email.address>`) to find a key. If " +"you want to use a different default key, you can specify it in the " +"repository configuration as follows:" msgstr "" -#. type: Labeled list -#: en/config.txt:1855 +#. type: delimited block - +#: en/git-tag.txt:217 #, no-wrap -msgid "http.sslVersion" +msgid "" +"[user]\n" +" signingKey = <gpg-keyid>\n" msgstr "" #. type: Plain text -#: en/config.txt:1864 +#: en/git-tag.txt:222 msgid "" -"The SSL version to use when negotiating an SSL connection, if you want to " -"force the default. The available and default version depend on whether " -"libcurl was built against NSS or OpenSSL and the particular configuration of " -"the crypto library in use. Internally this sets the 'CURLOPT_SSL_VERSION' " -"option; see the libcurl documentation for more details on the format of this " -"option and for the ssl version supported. Actually the possible values of " -"this option are:" +"`pager.tag` is only respected when listing tags, i.e., when `-l` is used or " +"implied. The default is to use a pager. See linkgit:git-config[1]." msgstr "" -#. type: Plain text -#: en/config.txt:1866 -msgid "sslv2" +#. type: Title ~ +#: en/git-tag.txt:227 +#, no-wrap +msgid "On Re-tagging" msgstr "" #. type: Plain text -#: en/config.txt:1867 -msgid "sslv3" +#: en/git-tag.txt:231 +msgid "" +"What should you do when you tag a wrong commit and you would want to re-tag?" msgstr "" #. type: Plain text -#: en/config.txt:1868 -msgid "tlsv1" +#: en/git-tag.txt:234 +msgid "" +"If you never pushed anything out, just re-tag it. Use \"-f\" to replace the " +"old one. And you're done." msgstr "" #. type: Plain text -#: en/config.txt:1869 -msgid "tlsv1.0" +#: en/git-tag.txt:238 +msgid "" +"But if you have pushed things out (or others could just read your repository " +"directly), then others will have already seen the old tag. In that case you " +"can do one of two things:" msgstr "" #. type: Plain text -#: en/config.txt:1870 -msgid "tlsv1.1" +#: en/git-tag.txt:245 +msgid "" +"The sane thing. Just admit you screwed up, and use a different name. Others " +"have already seen one tag-name, and if you keep the same name, you may be in " +"the situation that two people both have \"version X\", but they actually " +"have 'different' \"X\"'s. So just call it \"X.1\" and be done with it." msgstr "" #. type: Plain text -#: en/config.txt:1871 -msgid "tlsv1.2" +#: en/git-tag.txt:250 +msgid "" +"The insane thing. You really want to call the new version \"X\" too, 'even " +"though' others have already seen the old one. So just use 'git tag -f' " +"again, as if you hadn't already published the old one." msgstr "" #. type: Plain text -#: en/config.txt:1877 +#: en/git-tag.txt:255 msgid "" -"Can be overridden by the `GIT_SSL_VERSION` environment variable. To force " -"git to use libcurl's default ssl version and ignore any explicit " -"http.sslversion option, set `GIT_SSL_VERSION` to the empty string." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1878 -#, no-wrap -msgid "http.sslCipherList" +"However, Git does *not* (and it should not) change tags behind users back. " +"So if somebody already got the old tag, doing a 'git pull' on your tree " +"shouldn't just make them overwrite the old one." msgstr "" #. type: Plain text -#: en/config.txt:1885 +#: en/git-tag.txt:262 msgid "" -"A list of SSL ciphers to use when negotiating an SSL connection. The " -"available ciphers depend on whether libcurl was built against NSS or OpenSSL " -"and the particular configuration of the crypto library in use. Internally " -"this sets the 'CURLOPT_SSL_CIPHER_LIST' option; see the libcurl " -"documentation for more details on the format of this list." +"If somebody got a release tag from you, you cannot just change the tag for " +"them by updating your own one. This is a big security issue, in that people " +"MUST be able to trust their tag-names. If you really want to do the insane " +"thing, you need to just fess up to it, and tell people that you messed up. " +"You can do that by making a very public announcement saying:" msgstr "" -#. type: Plain text -#: en/config.txt:1890 +#. type: delimited block - +#: en/git-tag.txt:266 +#, no-wrap msgid "" -"Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable. To " -"force git to use libcurl's default cipher list and ignore any explicit " -"http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the empty string." +"Ok, I messed up, and I pushed out an earlier version tagged as X. I\n" +"then fixed something, and retagged the *fixed* tree as X again.\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1891 +#. type: delimited block - +#: en/git-tag.txt:269 #, no-wrap -msgid "http.sslVerify" +msgid "" +"If you got the wrong tag, and want the new one, please delete\n" +"the old one and fetch the new one by doing:\n" msgstr "" -#. type: Plain text -#: en/config.txt:1895 +#. type: delimited block - +#: en/git-tag.txt:272 +#, no-wrap msgid "" -"Whether to verify the SSL certificate when fetching or pushing over " -"HTTPS. Can be overridden by the `GIT_SSL_NO_VERIFY` environment variable." +"\tgit tag -d X\n" +"\tgit fetch origin tag X\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1896 +#. type: delimited block - +#: en/git-tag.txt:274 #, no-wrap -msgid "http.sslCert" +msgid "to get my updated tag.\n" msgstr "" -#. type: Plain text -#: en/config.txt:1900 -msgid "" -"File containing the SSL certificate when fetching or pushing over HTTPS. Can " -"be overridden by the `GIT_SSL_CERT` environment variable." +#. type: delimited block - +#: en/git-tag.txt:276 +#, no-wrap +msgid "You can test which tag you have by doing\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1901 +#. type: delimited block - +#: en/git-tag.txt:278 #, no-wrap -msgid "http.sslKey" +msgid "\tgit rev-parse X\n" msgstr "" -#. type: Plain text -#: en/config.txt:1905 -msgid "" -"File containing the SSL private key when fetching or pushing over HTTPS. Can " -"be overridden by the `GIT_SSL_KEY` environment variable." +#. type: delimited block - +#: en/git-tag.txt:280 +#, no-wrap +msgid "which should return 0123456789abcdef.. if you have the new version.\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1906 +#. type: delimited block - +#: en/git-tag.txt:282 #, no-wrap -msgid "http.sslCertPasswordProtected" +msgid "Sorry for the inconvenience.\n" msgstr "" #. type: Plain text -#: en/config.txt:1911 +#: en/git-tag.txt:287 msgid "" -"Enable Git's password prompt for the SSL certificate. Otherwise OpenSSL " -"will prompt the user, possibly many times, if the certificate or private key " -"is encrypted. Can be overridden by the `GIT_SSL_CERT_PASSWORD_PROTECTED` " -"environment variable." +"Does this seem a bit complicated? It *should* be. There is no way that it " +"would be correct to just \"fix\" it automatically. People need to know that " +"their tags might have been changed." msgstr "" -#. type: Labeled list -#: en/config.txt:1912 +#. type: Title ~ +#: en/git-tag.txt:290 #, no-wrap -msgid "http.sslCAInfo" +msgid "On Automatic following" msgstr "" #. type: Plain text -#: en/config.txt:1916 +#: en/git-tag.txt:295 msgid "" -"File containing the certificates to verify the peer with when fetching or " -"pushing over HTTPS. Can be overridden by the `GIT_SSL_CAINFO` environment " -"variable." +"If you are following somebody else's tree, you are most likely using remote-" +"tracking branches (eg. `refs/remotes/origin/master`). You usually want the " +"tags from the other end." msgstr "" -#. type: Labeled list -#: en/config.txt:1917 -#, no-wrap -msgid "http.sslCAPath" +#. type: Plain text +#: en/git-tag.txt:302 +msgid "" +"On the other hand, if you are fetching because you would want a one-shot " +"merge from somebody else, you typically do not want to get tags from there. " +"This happens more often for people near the toplevel but not limited to " +"them. Mere mortals when pulling from each other do not necessarily want to " +"automatically get private anchor point tags from the other person." msgstr "" #. type: Plain text -#: en/config.txt:1921 +#: en/git-tag.txt:307 msgid "" -"Path containing files with the CA certificates to verify the peer with when " -"fetching or pushing over HTTPS. Can be overridden by the `GIT_SSL_CAPATH` " -"environment variable." +"Often, \"please pull\" messages on the mailing list just provide two pieces " +"of information: a repo URL and a branch name; this is designed to be easily " +"cut&pasted at the end of a 'git fetch' command line:" msgstr "" -#. type: Labeled list -#: en/config.txt:1922 +#. type: delimited block - +#: en/git-tag.txt:310 #, no-wrap -msgid "http.pinnedpubkey" +msgid "Linus, please pull from\n" msgstr "" -#. type: Plain text -#: en/config.txt:1929 -msgid "" -"Public key of the https service. It may either be the filename of a PEM or " -"DER encoded public key file or a string starting with 'sha256//' followed by " -"the base64 encoded sha256 hash of the public key. See also libcurl " -"'CURLOPT_PINNEDPUBLICKEY'. git will exit with an error if this option is set " -"but not supported by cURL." +#. type: delimited block - +#: en/git-tag.txt:312 +#, no-wrap +msgid "\tgit://git..../proj.git master\n" msgstr "" -#. type: Labeled list -#: en/config.txt:1930 +#. type: delimited block - +#: en/git-tag.txt:314 #, no-wrap -msgid "http.sslTry" +msgid "to get the following updates...\n" msgstr "" #. type: Plain text -#: en/config.txt:1937 -msgid "" -"Attempt to use AUTH SSL/TLS and encrypted data transfers when connecting via " -"regular FTP protocol. This might be needed if the FTP server requires it for " -"security reasons or you wish to connect securely whenever remote FTP server " -"supports it. Default is false since it might trigger certificate " -"verification errors on misconfigured servers." +#: en/git-tag.txt:317 +msgid "becomes:" msgstr "" -#. type: Labeled list -#: en/config.txt:1938 +#. type: delimited block - +#: en/git-tag.txt:320 #, no-wrap -msgid "http.maxRequests" +msgid "$ git pull git://git..../proj.git master\n" msgstr "" #. type: Plain text -#: en/config.txt:1941 +#: en/git-tag.txt:324 msgid "" -"How many HTTP requests to launch in parallel. Can be overridden by the " -"`GIT_HTTP_MAX_REQUESTS` environment variable. Default is 5." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1942 -#, no-wrap -msgid "http.minSessions" +"In such a case, you do not want to automatically follow the other person's " +"tags." msgstr "" #. type: Plain text -#: en/config.txt:1947 +#: en/git-tag.txt:332 msgid "" -"The number of curl sessions (counted across slots) to be kept across " -"requests. They will not be ended with curl_easy_cleanup() until " -"http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this value will " -"be capped at 1. Defaults to 1." +"One important aspect of Git is its distributed nature, which largely means " +"there is no inherent \"upstream\" or \"downstream\" in the system. On the " +"face of it, the above example might seem to indicate that the tag namespace " +"is owned by the upper echelon of people and that tags only flow downwards, " +"but that is not the case. It only shows that the usage pattern determines " +"who are interested in whose tags." msgstr "" -#. type: Labeled list -#: en/config.txt:1948 -#, no-wrap -msgid "http.postBuffer" +#. type: Plain text +#: en/git-tag.txt:344 +msgid "" +"A one-shot pull is a sign that a commit history is now crossing the boundary " +"between one circle of people (e.g. \"people who are primarily interested in " +"the networking part of the kernel\") who may have their own set of tags (e." +"g. \"this is the third release candidate from the networking group to be " +"proposed for general consumption with 2.6.21 release\") to another circle of " +"people (e.g. \"people who integrate various subsystem improvements\"). The " +"latter are usually not interested in the detailed tags used internally in " +"the former group (that is what \"internal\" means). That is why it is " +"desirable not to follow tags automatically in this case." msgstr "" #. type: Plain text -#: en/config.txt:1955 +#: en/git-tag.txt:350 msgid "" -"Maximum size in bytes of the buffer used by smart HTTP transports when " -"POSTing data to the remote system. For requests larger than this buffer " -"size, HTTP/1.1 and Transfer-Encoding: chunked is used to avoid creating a " -"massive pack file locally. Default is 1 MiB, which is sufficient for most " -"requests." +"It may well be that among networking people, they may want to exchange the " +"tags internal to their group, but in that workflow they are most likely " +"tracking each other's progress by having remote-tracking branches. Again, " +"the heuristic to automatically follow such tags is a good thing." msgstr "" -#. type: Labeled list -#: en/config.txt:1956 +#. type: Title ~ +#: en/git-tag.txt:353 #, no-wrap -msgid "http.lowSpeedLimit, http.lowSpeedTime" +msgid "On Backdating Tags" msgstr "" #. type: Plain text -#: en/config.txt:1961 +#: en/git-tag.txt:360 msgid "" -"If the HTTP transfer speed is less than 'http.lowSpeedLimit' for longer than " -"'http.lowSpeedTime' seconds, the transfer is aborted. Can be overridden by " -"the `GIT_HTTP_LOW_SPEED_LIMIT` and `GIT_HTTP_LOW_SPEED_TIME` environment " -"variables." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1962 -#, no-wrap -msgid "http.noEPSV" +"If you have imported some changes from another VCS and would like to add " +"tags for major releases of your work, it is useful to be able to specify the " +"date to embed inside of the tag object; such data in the tag object affects, " +"for example, the ordering of tags in the gitweb interface." msgstr "" #. type: Plain text -#: en/config.txt:1967 +#: en/git-tag.txt:364 msgid "" -"A boolean which disables using of EPSV ftp command by curl. This can " -"helpful with some \"poor\" ftp servers which don't support EPSV mode. Can be " -"overridden by the `GIT_CURL_FTP_NO_EPSV` environment variable. Default is " -"false (curl will use EPSV)." +"To set the date used in future tag objects, set the environment variable " +"GIT_COMMITTER_DATE (see the later discussion of possible values; the most " +"common form is \"YYYY-MM-DD HH:MM\")." msgstr "" -#. type: Labeled list -#: en/config.txt:1968 +#. type: delimited block - +#: en/git-tag.txt:369 #, no-wrap -msgid "http.userAgent" +msgid "$ GIT_COMMITTER_DATE=\"2006-10-02 10:31\" git tag -s v1.0.1\n" msgstr "" #. type: Plain text -#: en/config.txt:1976 -msgid "" -"The HTTP USER_AGENT string presented to an HTTP server. The default value " -"represents the version of the client Git such as git/1.7.1. This option " -"allows you to override this value to a more common value such as " -"Mozilla/4.0. This may be necessary, for instance, if connecting through a " -"firewall that restricts HTTP connections to a set of common USER_AGENT " -"strings (but not including those like git/1.7.1). Can be overridden by the " -"`GIT_HTTP_USER_AGENT` environment variable." +#: en/git-tag.txt:377 +msgid "linkgit:git-check-ref-format[1]. linkgit:git-config[1]." msgstr "" -#. type: Labeled list -#: en/config.txt:1977 +#. type: Title = +#: en/git.txt:2 #, no-wrap -msgid "http.followRedirects" +msgid "git(1)" msgstr "" #. type: Plain text -#: en/config.txt:1986 -msgid "" -"Whether git should follow HTTP redirects. If set to `true`, git will " -"transparently follow any redirect issued by a server it encounters. If set " -"to `false`, git will treat all redirects as errors. If set to `initial`, git " -"will follow redirects only for the initial request to a remote, but not for " -"subsequent follow-up HTTP requests. Since git uses the redirected URL as the " -"base for the follow-up requests, this is generally sufficient. The default " -"is `initial`." -msgstr "" - -#. type: Labeled list -#: en/config.txt:1987 -#, no-wrap -msgid "http.<url>.*" +#: en/git.txt:7 +msgid "git - the stupid content tracker" msgstr "" #. type: Plain text -#: en/config.txt:1991 +#: en/git.txt:18 +#, no-wrap msgid "" -"Any of the http.* options above can be applied selectively to some URLs. " -"For a config key to match a URL, each element of the config key is compared " -"to that of the URL, in the following order:" +"'git' [--version] [--help] [-C <path>] [-c <name>=<value>]\n" +" [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" +" [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]\n" +" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" +" [--super-prefix=<path>]\n" +" <command> [<args>]\n" msgstr "" #. type: Plain text -#: en/config.txt:1995 +#: en/git.txt:24 msgid "" -"Scheme (e.g., `https` in `https://example.com/`). This field must match " -"exactly between the config key and the URL." +"Git is a fast, scalable, distributed revision control system with an " +"unusually rich command set that provides both high-level operations and full " +"access to internals." msgstr "" #. type: Plain text -#: en/config.txt:2001 +#: en/git.txt:29 msgid "" -"Host/domain name (e.g., `example.com` in `https://example.com/`). This " -"field must match between the config key and the URL. It is possible to " -"specify a `*` as part of the host name to match all subdomains at this " -"level. `https://*.example.com/` for example would match " -"`https://foo.example.com/`, but not `https://foo.bar.example.com/`." +"See linkgit:gittutorial[7] to get started, then see linkgit:giteveryday[7] " +"for a useful minimum set of commands. The link:user-manual.html[Git User's " +"Manual] has a more in-depth introduction." msgstr "" #. type: Plain text -#: en/config.txt:2006 +#: en/git.txt:34 msgid "" -"Port number (e.g., `8080` in `http://example.com:8080/`). This field must " -"match exactly between the config key and the URL. Omitted port numbers are " -"automatically converted to the correct default for the scheme before " -"matching." +"After you mastered the basic concepts, you can come back to this page to " +"learn what commands Git offers. You can learn more about individual Git " +"commands with \"git help command\". linkgit:gitcli[7] manual page gives you " +"an overview of the command-line command syntax." msgstr "" #. type: Plain text -#: en/config.txt:2014 +#: en/git.txt:37 msgid "" -"Path (e.g., `repo.git` in `https://example.com/repo.git`). The path field of " -"the config key must match the path field of the URL either exactly or as a " -"prefix of slash-delimited path elements. This means a config key with path " -"`foo/` matches URL path `foo/bar`. A prefix can only match on a slash (`/`) " -"boundary. Longer matches take precedence (so a config key with path " -"`foo/bar` is a better match to URL path `foo/bar` than a config key with " -"just path `foo/`)." +"A formatted and hyperlinked copy of the latest Git documentation can be " +"viewed at `https://git.github.io/htmldocs/git.html`." msgstr "" #. type: Plain text -#: en/config.txt:2020 -msgid "" -"User name (e.g., `user` in `https://user@example.com/repo.git`). If the " -"config key has a user name it must match the user name in the URL " -"exactly. If the config key does not have a user name, that config key will " -"match a URL with any user name (including none), but at a lower precedence " -"than a config key with a user name." +#: en/git.txt:43 +msgid "Prints the Git suite version that the 'git' program came from." msgstr "" #. type: Plain text -#: en/config.txt:2027 +#: en/git.txt:49 msgid "" -"The list above is ordered by decreasing precedence; a URL that matches a " -"config key's path is preferred to one that matches its user name. For " -"example, if the URL is `https://user@example.com/foo/bar` a config key match " -"of `https://example.com/foo` will be preferred over a config key match of " -"`https://user@example.com`." +"Prints the synopsis and a list of the most commonly used commands. If the " +"option `--all` or `-a` is given then all available commands are printed. If " +"a Git command is named this option will bring up the manual page for that " +"command." msgstr "" #. type: Plain text -#: en/config.txt:2034 +#: en/git.txt:54 msgid "" -"All URLs are normalized before attempting any matching (the password part, " -"if embedded in the URL, is always ignored for matching purposes) so that " -"equivalent URLs that are simply spelled differently will match properly. " -"Environment variable settings always override any matches. The URLs that " -"are matched against are those given directly to Git commands. This means " -"any URLs visited as a result of a redirection do not participate in " -"matching." +"Other options are available to control how the manual page is displayed. See " +"linkgit:git-help[1] for more information, because `git --help ...` is " +"converted internally into `git help ...`." msgstr "" #. type: Labeled list -#: en/config.txt:2035 +#: en/git.txt:55 #, no-wrap -msgid "ssh.variant" +msgid "-C <path>" msgstr "" #. type: Plain text -#: en/config.txt:2040 +#: en/git.txt:60 msgid "" -"Depending on the value of the environment variables `GIT_SSH` or " -"`GIT_SSH_COMMAND`, or the config setting `core.sshCommand`, Git auto-detects " -"whether to adjust its command-line parameters for use with plink or " -"tortoiseplink, as opposed to the default (OpenSSH)." +"Run as if git was started in '<path>' instead of the current working " +"directory. When multiple `-C` options are given, each subsequent non-" +"absolute `-C <path>` is interpreted relative to the preceding `-C <path>`." msgstr "" #. type: Plain text -#: en/config.txt:2045 +#: en/git.txt:65 msgid "" -"The config variable `ssh.variant` can be set to override this " -"auto-detection; valid values are `ssh`, `plink`, `putty` or " -"`tortoiseplink`. Any other value will be treated as normal ssh. This setting " -"can be overridden via the environment variable `GIT_SSH_VARIANT`." +"This option affects options that expect path name like `--git-dir` and `--" +"work-tree` in that their interpretations of the path names would be made " +"relative to the working directory caused by the `-C` option. For example the " +"following invocations are equivalent:" msgstr "" -#. type: Labeled list -#: en/config.txt:2046 +#. type: Plain text +#: en/git.txt:68 #, no-wrap -msgid "i18n.commitEncoding" +msgid "" +" git --git-dir=a.git --work-tree=b -C c status\n" +" git --git-dir=c/a.git --work-tree=c/b status\n" msgstr "" -#. type: Plain text -#: en/config.txt:2052 -msgid "" -"Character encoding the commit messages are stored in; Git itself does not " -"care per se, but this information is necessary e.g. when importing commits " -"from emails or in the gitk graphical history browser (and possibly at other " -"places in the future or in other porcelains). See " -"e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'." +#. type: Labeled list +#: en/git.txt:69 +#, no-wrap +msgid "-c <name>=<value>" msgstr "" #. type: Plain text -#: en/config.txt:2056 +#: en/git.txt:74 msgid "" -"Character encoding the commit messages are converted to when running 'git " -"log' and friends." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2057 -#, no-wrap -msgid "imap" +"Pass a configuration parameter to the command. The value given will override " +"values from configuration files. The <name> is expected in the same format " +"as listed by 'git config' (subkeys separated by dots)." msgstr "" #. type: Plain text -#: en/config.txt:2060 +#: en/git.txt:80 msgid "" -"The configuration variables in the 'imap' section are described in " -"linkgit:git-imap-send[1]." +"Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets `foo." +"bar` to the boolean true value (just like `[foo]bar` would in a config " +"file). Including the equals but with an empty value (like `git -c foo." +"bar= ...`) sets `foo.bar` to the empty string which `git config --type=bool` " +"will convert to `false`." msgstr "" #. type: Labeled list -#: en/config.txt:2061 +#: en/git.txt:81 #, no-wrap -msgid "index.version" +msgid "--exec-path[=<path>]" msgstr "" #. type: Plain text -#: en/config.txt:2064 +#: en/git.txt:86 msgid "" -"Specify the version with which new index files should be initialized. This " -"does not affect existing repositories." +"Path to wherever your core Git programs are installed. This can also be " +"controlled by setting the GIT_EXEC_PATH environment variable. If no path is " +"given, 'git' will print the current setting and then exit." msgstr "" #. type: Labeled list -#: en/config.txt:2065 +#: en/git.txt:87 #, no-wrap -msgid "init.templateDir" +msgid "--html-path" msgstr "" #. type: Plain text -#: en/config.txt:2068 +#: en/git.txt:90 msgid "" -"Specify the directory from which templates will be copied. (See the " -"\"TEMPLATE DIRECTORY\" section of linkgit:git-init[1].)" +"Print the path, without trailing slash, where Git's HTML documentation is " +"installed and exit." msgstr "" #. type: Labeled list -#: en/config.txt:2069 +#: en/git.txt:91 #, no-wrap -msgid "instaweb.browser" +msgid "--man-path" msgstr "" #. type: Plain text -#: en/config.txt:2072 +#: en/git.txt:94 msgid "" -"Specify the program that will be used to browse your working repository in " -"gitweb. See linkgit:git-instaweb[1]." +"Print the manpath (see `man(1)`) for the man pages for this version of Git " +"and exit." msgstr "" #. type: Labeled list -#: en/config.txt:2073 +#: en/git.txt:95 #, no-wrap -msgid "instaweb.httpd" +msgid "--info-path" msgstr "" #. type: Plain text -#: en/config.txt:2076 +#: en/git.txt:98 msgid "" -"The HTTP daemon command-line to start gitweb on your working repository. See " -"linkgit:git-instaweb[1]." +"Print the path where the Info files documenting this version of Git are " +"installed and exit." msgstr "" #. type: Labeled list -#: en/config.txt:2077 +#: en/git.txt:100 #, no-wrap -msgid "instaweb.local" +msgid "--paginate" msgstr "" #. type: Plain text -#: en/config.txt:2080 +#: en/git.txt:105 msgid "" -"If true the web server started by linkgit:git-instaweb[1] will be bound to " -"the local IP (127.0.0.1)." +"Pipe all output into 'less' (or if set, $PAGER) if standard output is a " +"terminal. This overrides the `pager.<cmd>` configuration options (see the " +"\"Configuration Mechanism\" section below)." msgstr "" #. type: Labeled list -#: en/config.txt:2081 +#: en/git.txt:107 #, no-wrap -msgid "instaweb.modulePath" +msgid "--no-pager" msgstr "" #. type: Plain text -#: en/config.txt:2085 -msgid "" -"The default module path for linkgit:git-instaweb[1] to use instead of " -"/usr/lib/apache2/modules. Only used if httpd is Apache." +#: en/git.txt:109 +msgid "Do not pipe Git output into a pager." msgstr "" #. type: Labeled list -#: en/config.txt:2086 +#: en/git.txt:110 #, no-wrap -msgid "instaweb.port" +msgid "--git-dir=<path>" msgstr "" #. type: Plain text -#: en/config.txt:2089 -msgid "The port number to bind the gitweb httpd to. See linkgit:git-instaweb[1]." +#: en/git.txt:114 +msgid "" +"Set the path to the repository. This can also be controlled by setting the " +"`GIT_DIR` environment variable. It can be an absolute path or relative path " +"to current working directory." msgstr "" #. type: Labeled list -#: en/config.txt:2090 +#: en/git.txt:115 #, no-wrap -msgid "interactive.singleKey" +msgid "--work-tree=<path>" msgstr "" #. type: Plain text -#: en/config.txt:2098 +#: en/git.txt:122 msgid "" -"In interactive commands, allow the user to provide one-letter input with a " -"single key (i.e., without hitting enter). Currently this is used by the " -"`--patch` mode of linkgit:git-add[1], linkgit:git-checkout[1], " -"linkgit:git-commit[1], linkgit:git-reset[1], and linkgit:git-stash[1]. Note " -"that this setting is silently ignored if portable keystroke input is not " -"available; requires the Perl module Term::ReadKey." +"Set the path to the working tree. It can be an absolute path or a path " +"relative to the current working directory. This can also be controlled by " +"setting the GIT_WORK_TREE environment variable and the core.worktree " +"configuration variable (see core.worktree in linkgit:git-config[1] for a " +"more detailed discussion)." msgstr "" #. type: Labeled list -#: en/config.txt:2099 +#: en/git.txt:123 #, no-wrap -msgid "interactive.diffFilter" +msgid "--namespace=<path>" msgstr "" #. type: Plain text -#: en/config.txt:2106 +#: en/git.txt:127 msgid "" -"When an interactive command (such as `git add --patch`) shows a colorized " -"diff, git will pipe the diff through the shell command defined by this " -"configuration variable. The command may mark up the diff further for human " -"consumption, provided that it retains a one-to-one correspondence with the " -"lines in the original diff. Defaults to disabled (no filtering)." +"Set the Git namespace. See linkgit:gitnamespaces[7] for more details. " +"Equivalent to setting the `GIT_NAMESPACE` environment variable." msgstr "" #. type: Labeled list -#: en/config.txt:2107 +#: en/git.txt:128 #, no-wrap -msgid "log.abbrevCommit" +msgid "--super-prefix=<path>" msgstr "" #. type: Plain text -#: en/config.txt:2111 +#: en/git.txt:132 msgid "" -"If true, makes linkgit:git-log[1], linkgit:git-show[1], and " -"linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may override this " -"option with `--no-abbrev-commit`." +"Currently for internal use only. Set a prefix which gives a path from above " +"a repository down to its root. One use is to give submodules context about " +"the superproject that invoked it." msgstr "" #. type: Plain text -#: en/config.txt:2116 +#: en/git.txt:137 msgid "" -"Set the default date-time mode for the 'log' command. Setting a value for " -"log.date is similar to using 'git log''s `--date` option. See " -"linkgit:git-log[1] for details." +"Treat the repository as a bare repository. If GIT_DIR environment is not " +"set, it is set to the current working directory." msgstr "" #. type: Labeled list -#: en/config.txt:2117 +#: en/git.txt:138 #, no-wrap -msgid "log.decorate" +msgid "--no-replace-objects" msgstr "" #. type: Plain text -#: en/config.txt:2126 +#: en/git.txt:141 msgid "" -"Print out the ref names of any commits that are shown by the log command. If " -"'short' is specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and " -"'refs/remotes/' will not be printed. If 'full' is specified, the full ref " -"name (including prefix) will be printed. If 'auto' is specified, then if " -"the output is going to a terminal, the ref names are shown as if 'short' " -"were given, otherwise no ref names are shown. This is the same as the " -"`--decorate` option of the `git log`." +"Do not use replacement refs to replace Git objects. See linkgit:git-" +"replace[1] for more information." msgstr "" #. type: Labeled list -#: en/config.txt:2133 +#: en/git.txt:142 #, no-wrap -msgid "log.graphColors" +msgid "--literal-pathspecs" msgstr "" #. type: Plain text -#: en/config.txt:2136 +#: en/git.txt:146 msgid "" -"A list of colors, separated by commas, that can be used to draw history " -"lines in `git log --graph`." -msgstr "" - -#. type: Plain text -#: en/config.txt:2142 -msgid "" -"If true, the initial commit will be shown as a big creation event. This is " -"equivalent to a diff against an empty tree. Tools like linkgit:git-log[1] " -"or linkgit:git-whatchanged[1], which normally hide the root commit will now " -"show it. True by default." +"Treat pathspecs literally (i.e. no globbing, no pathspec magic). This is " +"equivalent to setting the `GIT_LITERAL_PATHSPECS` environment variable to " +"`1`." msgstr "" #. type: Labeled list -#: en/config.txt:2143 +#: en/git.txt:147 #, no-wrap -msgid "log.mailmap" +msgid "--glob-pathspecs" msgstr "" #. type: Plain text -#: en/config.txt:2146 +#: en/git.txt:152 msgid "" -"If true, makes linkgit:git-log[1], linkgit:git-show[1], and " -"linkgit:git-whatchanged[1] assume `--use-mailmap`." +"Add \"glob\" magic to all pathspec. This is equivalent to setting the " +"`GIT_GLOB_PATHSPECS` environment variable to `1`. Disabling globbing on " +"individual pathspecs can be done using pathspec magic \":(literal)\"" msgstr "" #. type: Labeled list -#: en/config.txt:2147 +#: en/git.txt:153 #, no-wrap -msgid "mailinfo.scissors" +msgid "--noglob-pathspecs" msgstr "" #. type: Plain text -#: en/config.txt:2153 +#: en/git.txt:158 msgid "" -"If true, makes linkgit:git-mailinfo[1] (and therefore linkgit:git-am[1]) act " -"by default as if the --scissors option was provided on the " -"command-line. When active, this features removes everything from the message " -"body before a scissors line (i.e. consisting mainly of \">8\", \"8<\" and " -"\"-\")." +"Add \"literal\" magic to all pathspec. This is equivalent to setting the " +"`GIT_NOGLOB_PATHSPECS` environment variable to `1`. Enabling globbing on " +"individual pathspecs can be done using pathspec magic \":(glob)\"" msgstr "" #. type: Labeled list -#: en/config.txt:2154 +#: en/git.txt:159 #, no-wrap -msgid "mailmap.file" +msgid "--icase-pathspecs" msgstr "" #. type: Plain text -#: en/config.txt:2161 +#: en/git.txt:162 msgid "" -"The location of an augmenting mailmap file. The default mailmap, located in " -"the root of the repository, is loaded first, then the mailmap file pointed " -"to by this variable. The location of the mailmap file may be in a " -"repository subdirectory, or somewhere outside of the repository itself. See " -"linkgit:git-shortlog[1] and linkgit:git-blame[1]." +"Add \"icase\" magic to all pathspec. This is equivalent to setting the " +"`GIT_ICASE_PATHSPECS` environment variable to `1`." msgstr "" #. type: Labeled list -#: en/config.txt:2162 +#: en/git.txt:163 #, no-wrap -msgid "mailmap.blob" +msgid "--no-optional-locks" msgstr "" #. type: Plain text -#: en/config.txt:2169 +#: en/git.txt:166 msgid "" -"Like `mailmap.file`, but consider the value as a reference to a blob in the " -"repository. If both `mailmap.file` and `mailmap.blob` are given, both are " -"parsed, with entries from `mailmap.file` taking precedence. In a bare " -"repository, this defaults to `HEAD:.mailmap`. In a non-bare repository, it " -"defaults to empty." +"Do not perform optional operations that require locks. This is equivalent to " +"setting the `GIT_OPTIONAL_LOCKS` to `0`." msgstr "" -#. type: Plain text -#: en/config.txt:2173 -msgid "" -"Specify the programs that may be used to display help in the 'man' " -"format. See linkgit:git-help[1]." +#. type: Labeled list +#: en/git.txt:167 +#, no-wrap +msgid "--list-cmds=group[,group...]" msgstr "" #. type: Plain text -#: en/config.txt:2178 +#: en/git.txt:176 msgid "" -"Specify the command to invoke the specified man viewer. The specified " -"command is evaluated in shell with the man page passed as argument. (See " -"linkgit:git-help[1].)" +"List commands by group. This is an internal/experimental option and may " +"change or be removed in the future. Supported groups are: builtins, parseopt " +"(builtin commands that use parse-options), main (all commands in libexec " +"directory), others (all other commands in `$PATH` that have git- prefix), " +"list-<category> (see categories in command-list.txt), nohelpers (exclude " +"helper commands), alias and config (retrieve command list from config " +"variable completion.commands)" msgstr "" -#. type: Plain text -#: en/config.txt:2182 -msgid "" -"Override the path for the given tool that may be used to display help in the " -"'man' format. See linkgit:git-help[1]." +#. type: Title - +#: en/git.txt:178 +#, no-wrap +msgid "GIT COMMANDS" msgstr "" -#. type: Labeled list -#: en/config.txt:2185 -#, no-wrap -msgid "mergetool.<tool>.path" +#. type: Plain text +#: en/git.txt:182 +msgid "" +"We divide Git into high level (\"porcelain\") commands and low level " +"(\"plumbing\") commands." msgstr "" -#. type: Labeled list -#: en/config.txt:2189 +#. type: Title - +#: en/git.txt:184 #, no-wrap -msgid "mergetool.<tool>.cmd" +msgid "High-level commands (porcelain)" msgstr "" #. type: Plain text -#: en/config.txt:2199 +#: en/git.txt:188 msgid "" -"Specify the command to invoke the specified merge tool. The specified " -"command is evaluated in shell with the following variables available: 'BASE' " -"is the name of a temporary file containing the common base of the files to " -"be merged, if available; 'LOCAL' is the name of a temporary file containing " -"the contents of the file on the current branch; 'REMOTE' is the name of a " -"temporary file containing the contents of the file from the branch being " -"merged; 'MERGED' contains the name of the file to which the merge tool " -"should write the results of a successful merge." +"We separate the porcelain commands into the main commands and some ancillary " +"user utilities." msgstr "" -#. type: Labeled list -#: en/config.txt:2200 +#. type: Title ~ +#: en/git.txt:190 #, no-wrap -msgid "mergetool.<tool>.trustExitCode" +msgid "Main porcelain commands" msgstr "" -#. type: Plain text -#: en/config.txt:2207 -msgid "" -"For a custom merge command, specify whether the exit code of the merge " -"command can be used to determine whether the merge was successful. If this " -"is not set to true then the merge target file timestamp is checked and the " -"merge assumed to have been successful if the file has been updated, " -"otherwise the user is prompted to indicate the success of the merge." +#. type: Title ~ +#: en/git.txt:195 +#, no-wrap +msgid "Ancillary Commands" msgstr "" -#. type: Labeled list -#: en/config.txt:2208 -#, no-wrap -msgid "mergetool.meld.hasOutput" +#. type: Plain text +#: en/git.txt:197 +msgid "Manipulators:" msgstr "" #. type: Plain text -#: en/config.txt:2216 -msgid "" -"Older versions of `meld` do not support the `--output` option. Git will " -"attempt to detect whether `meld` supports `--output` by inspecting the " -"output of `meld --help`. Configuring `mergetool.meld.hasOutput` will make " -"Git skip these checks and use the configured value instead. Setting " -"`mergetool.meld.hasOutput` to `true` tells Git to unconditionally use the " -"`--output` option, and `false` avoids using `--output`." +#: en/git.txt:201 +msgid "Interrogators:" msgstr "" -#. type: Labeled list -#: en/config.txt:2217 +#. type: Title ~ +#: en/git.txt:206 #, no-wrap -msgid "mergetool.keepBackup" +msgid "Interacting with Others" msgstr "" #. type: Plain text -#: en/config.txt:2222 +#: en/git.txt:210 msgid "" -"After performing a merge, the original file with conflict markers can be " -"saved as a file with a `.orig` extension. If this variable is set to " -"`false` then this file is not preserved. Defaults to `true` (i.e. keep the " -"backup files)." +"These commands are to interact with foreign SCM and with other people via " +"patch over e-mail." msgstr "" -#. type: Labeled list -#: en/config.txt:2223 +#. type: Title - +#: en/git.txt:215 #, no-wrap -msgid "mergetool.keepTemporaries" +msgid "Low-level commands (plumbing)" msgstr "" #. type: Plain text -#: en/config.txt:2229 +#: en/git.txt:222 msgid "" -"When invoking a custom merge tool, Git uses a set of temporary files to pass " -"to the tool. If the tool returns an error and this variable is set to " -"`true`, then these temporary files will be preserved, otherwise they will be " -"removed after the tool has exited. Defaults to `false`." +"Although Git includes its own porcelain layer, its low-level commands are " +"sufficient to support development of alternative porcelains. Developers of " +"such porcelains might start by reading about linkgit:git-update-index[1] and " +"linkgit:git-read-tree[1]." msgstr "" -#. type: Labeled list -#: en/config.txt:2230 -#, no-wrap -msgid "mergetool.writeToTemp" +#. type: Plain text +#: en/git.txt:229 +msgid "" +"The interface (input, output, set of options and the semantics) to these " +"low-level commands are meant to be a lot more stable than Porcelain level " +"commands, because these commands are primarily for scripted use. The " +"interface to Porcelain commands on the other hand are subject to change in " +"order to improve the end user experience." msgstr "" #. type: Plain text -#: en/config.txt:2235 +#: en/git.txt:235 msgid "" -"Git writes temporary 'BASE', 'LOCAL', and 'REMOTE' versions of conflicting " -"files in the worktree by default. Git will attempt to use a temporary " -"directory for these files when set `true`. Defaults to `false`." +"The following description divides the low-level commands into commands that " +"manipulate objects (in the repository, index, and working tree), commands " +"that interrogate and compare objects, and commands that move objects and " +"references between repositories." msgstr "" -#. type: Labeled list -#: en/config.txt:2236 +#. type: Title ~ +#: en/git.txt:238 #, no-wrap -msgid "mergetool.prompt" -msgstr "" - -#. type: Plain text -#: en/config.txt:2238 -msgid "Prompt before each invocation of the merge resolution program." +msgid "Manipulation commands" msgstr "" -#. type: Plain text -#: en/config.txt:2244 -msgid "" -"Which merge strategy to choose by default when resolving notes conflicts. " -"Must be one of `manual`, `ours`, `theirs`, `union`, or `cat_sort_uniq`. " -"Defaults to `manual`. See \"NOTES MERGE STRATEGIES\" section of " -"linkgit:git-notes[1] for more information on each strategy." +#. type: Title ~ +#: en/git.txt:244 +#, no-wrap +msgid "Interrogation commands" msgstr "" #. type: Plain text -#: en/config.txt:2250 +#: en/git.txt:250 msgid "" -"Which merge strategy to choose when doing a notes merge into " -"refs/notes/<name>. This overrides the more general " -"\"notes.mergeStrategy\". See the \"NOTES MERGE STRATEGIES\" section in " -"linkgit:git-notes[1] for more information on the available strategies." +"In general, the interrogate commands do not touch the files in the working " +"tree." msgstr "" -#. type: Plain text -#: en/config.txt:2259 -msgid "" -"The (fully qualified) refname from which to show notes when showing commit " -"messages. The value of this variable can be set to a glob, in which case " -"notes from all matching refs will be shown. You may also specify this " -"configuration variable several times. A warning will be issued for refs " -"that do not exist, but a glob that does not match any refs is silently " -"ignored." +#. type: Title ~ +#: en/git.txt:253 +#, no-wrap +msgid "Synching repositories" msgstr "" #. type: Plain text -#: en/config.txt:2263 +#: en/git.txt:259 msgid "" -"This setting can be overridden with the `GIT_NOTES_DISPLAY_REF` environment " -"variable, which must be a colon separated list of refs or globs." +"The following are helper commands used by the above; end users typically do " +"not use them directly." msgstr "" -#. type: Plain text -#: en/config.txt:2267 -msgid "" -"The effective value of \"core.notesRef\" (possibly overridden by " -"GIT_NOTES_REF) is also implicitly added to the list of refs to be displayed." +#. type: Title ~ +#: en/git.txt:264 +#, no-wrap +msgid "Internal helper commands" msgstr "" #. type: Plain text -#: en/config.txt:2274 +#: en/git.txt:268 msgid "" -"When rewriting commits with <command> (currently `amend` or `rebase`) and " -"this variable is set to `true`, Git automatically copies your notes from the " -"original to the rewritten commit. Defaults to `true`, but see " -"\"notes.rewriteRef\" below." +"These are internal helper commands used by other commands; end users " +"typically do not use them directly." msgstr "" -#. type: Plain text -#: en/config.txt:2281 -msgid "" -"When copying notes during a rewrite (see the \"notes.rewrite.<command>\" " -"option), determines what to do if the target commit already has a note. " -"Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`. " -"Defaults to `concatenate`." +#. type: Title - +#: en/git.txt:273 +#, no-wrap +msgid "Configuration Mechanism" msgstr "" #. type: Plain text -#: en/config.txt:2290 +#: en/git.txt:278 msgid "" -"When copying notes during a rewrite, specifies the (fully qualified) ref " -"whose notes should be copied. The ref may be a glob, in which case notes in " -"all matching refs will be copied. You may also specify this configuration " -"several times." +"Git uses a simple text format to store customizations that are per " +"repository and are per user. Such a configuration file may look like this:" msgstr "" -#. type: Plain text -#: en/config.txt:2294 +#. type: delimited block - +#: en/git.txt:283 +#, no-wrap msgid "" -"Does not have a default value; you must configure this variable to enable " -"note rewriting. Set it to `refs/notes/commits` to enable rewriting for the " -"default commit notes." +"#\n" +"# A '#' or ';' character indicates a comment.\n" +"#\n" msgstr "" -#. type: Plain text -#: en/config.txt:2298 +#. type: delimited block - +#: en/git.txt:288 +#, no-wrap msgid "" -"This setting can be overridden with the `GIT_NOTES_REWRITE_REF` environment " -"variable, which must be a colon separated list of refs or globs." +"; core variables\n" +"[core]\n" +"\t; Don't trust file modes\n" +"\tfilemode = false\n" msgstr "" -#. type: Labeled list -#: en/config.txt:2299 +#. type: delimited block - +#: en/git.txt:293 #, no-wrap -msgid "pack.window" +msgid "" +"; user identity\n" +"[user]\n" +"\tname = \"Junio C Hamano\"\n" +"\temail = \"gitster@pobox.com\"\n" msgstr "" #. type: Plain text -#: en/config.txt:2302 +#: en/git.txt:299 msgid "" -"The size of the window used by linkgit:git-pack-objects[1] when no window " -"size is given on the command line. Defaults to 10." +"Various commands read from the configuration file and adjust their operation " +"accordingly. See linkgit:git-config[1] for a list and more details about " +"the configuration mechanism." msgstr "" -#. type: Labeled list -#: en/config.txt:2303 +#. type: Title - +#: en/git.txt:302 #, no-wrap -msgid "pack.depth" +msgid "Identifier Terminology" msgstr "" #. type: Plain text -#: en/config.txt:2306 -msgid "" -"The maximum delta depth used by linkgit:git-pack-objects[1] when no maximum " -"depth is given on the command line. Defaults to 50." +#: en/git.txt:305 +msgid "Indicates the object name for any type of object." msgstr "" #. type: Labeled list -#: en/config.txt:2307 +#: en/git.txt:306 en/git-unpack-file.txt:23 #, no-wrap -msgid "pack.windowMemory" +msgid "<blob>" msgstr "" #. type: Plain text -#: en/config.txt:2313 -msgid "" -"The maximum size of memory that is consumed by each thread in " -"linkgit:git-pack-objects[1] for pack window memory when no limit is given on " -"the command line. The value can be suffixed with \"k\", \"m\", or \"g\". " -"When left unconfigured (or set explicitly to 0), there will be no limit." +#: en/git.txt:308 +msgid "Indicates a blob object name." msgstr "" -#. type: Labeled list -#: en/config.txt:2314 -#, no-wrap -msgid "pack.compression" +#. type: Plain text +#: en/git.txt:311 +msgid "Indicates a tree object name." msgstr "" #. type: Plain text -#: en/config.txt:2322 -msgid "" -"An integer -1..9, indicating the compression level for objects in a pack " -"file. -1 is the zlib default. 0 means no compression, and 1..9 are various " -"speed/size tradeoffs, 9 being slowest. If not set, defaults to " -"core.compression. If that is not set, defaults to -1, the zlib default, " -"which is \"a default compromise between speed and compression (currently " -"equivalent to level 6).\"" +#: en/git.txt:314 +msgid "Indicates a commit object name." msgstr "" #. type: Plain text -#: en/config.txt:2326 +#: en/git.txt:320 msgid "" -"Note that changing the compression level will not automatically recompress " -"all existing objects. You can force recompression by passing the -F option " -"to linkgit:git-repack[1]." +"Indicates a tree, commit or tag object name. A command that takes a <tree-" +"ish> argument ultimately wants to operate on a <tree> object but " +"automatically dereferences <commit> and <tag> objects that point at a <tree>." msgstr "" #. type: Labeled list -#: en/config.txt:2327 +#: en/git.txt:321 #, no-wrap -msgid "pack.deltaCacheSize" +msgid "<commit-ish>" msgstr "" #. type: Plain text -#: en/config.txt:2337 +#: en/git.txt:326 msgid "" -"The maximum memory in bytes used for caching deltas in " -"linkgit:git-pack-objects[1] before writing them out to a pack. This cache " -"is used to speed up the writing object phase by not having to recompute the " -"final delta result once the best match for all objects is found. Repacking " -"large repositories on machines which are tight with memory might be badly " -"impacted by this though, especially if this cache pushes the system into " -"swapping. A value of 0 means no limit. The smallest size of 1 byte may be " -"used to virtually disable this cache. Defaults to 256 MiB." +"Indicates a commit or tag object name. A command that takes a <commit-ish> " +"argument ultimately wants to operate on a <commit> object but automatically " +"dereferences <tag> objects that point at a <commit>." msgstr "" -#. type: Labeled list -#: en/config.txt:2338 -#, no-wrap -msgid "pack.deltaCacheLimit" +#. type: Plain text +#: en/git.txt:330 +msgid "" +"Indicates that an object type is required. Currently one of: `blob`, " +"`tree`, `commit`, or `tag`." msgstr "" #. type: Plain text -#: en/config.txt:2343 +#: en/git.txt:334 msgid "" -"The maximum size of a delta, that is cached in " -"linkgit:git-pack-objects[1]. This cache is used to speed up the writing " -"object phase by not having to recompute the final delta result once the best " -"match for all objects is found. Defaults to 1000." +"Indicates a filename - almost always relative to the root of the tree " +"structure `GIT_INDEX_FILE` describes." msgstr "" -#. type: Labeled list -#: en/config.txt:2344 +#. type: Title - +#: en/git.txt:336 #, no-wrap -msgid "pack.threads" +msgid "Symbolic Identifiers" msgstr "" #. type: Plain text -#: en/config.txt:2353 +#: en/git.txt:339 msgid "" -"Specifies the number of threads to spawn when searching for best delta " -"matches. This requires that linkgit:git-pack-objects[1] be compiled with " -"pthreads otherwise this option is ignored with a warning. This is meant to " -"reduce packing time on multiprocessor machines. The required amount of " -"memory for the delta search window is however multiplied by the number of " -"threads. Specifying 0 will cause Git to auto-detect the number of CPU's and " -"set the number of threads accordingly." +"Any Git command accepting any <object> can also use the following symbolic " +"notation:" +msgstr "" + +#. type: Plain text +#: en/git.txt:342 +msgid "indicates the head of the current branch." msgstr "" #. type: Labeled list -#: en/config.txt:2354 +#: en/git.txt:343 #, no-wrap -msgid "pack.indexVersion" +msgid "<tag>" msgstr "" #. type: Plain text -#: en/config.txt:2362 -msgid "" -"Specify the default pack index version. Valid values are 1 for legacy pack " -"index used by Git versions prior to 1.5.2, and 2 for the new pack index with " -"capabilities for packs larger than 4 GB as well as proper protection against " -"the repacking of corrupted packs. Version 2 is the default. Note that " -"version 2 is enforced and this config option ignored whenever the " -"corresponding pack is larger than 2 GB." +#: en/git.txt:346 +msgid "a valid tag 'name' (i.e. a `refs/tags/<tag>` reference)." +msgstr "" + +#. type: Plain text +#: en/git.txt:350 +msgid "a valid head 'name' (i.e. a `refs/heads/<head>` reference)." msgstr "" #. type: Plain text -#: en/config.txt:2370 +#: en/git.txt:353 msgid "" -"If you have an old Git that does not understand the version 2 `*.idx` file, " -"cloning or fetching over a non native protocol (e.g. \"http\") that will " -"copy both `*.pack` file and corresponding `*.idx` file from the other side " -"may give you a repository that cannot be accessed with your older version of " -"Git. If the `*.pack` file is smaller than 2 GB, however, you can use " -"linkgit:git-index-pack[1] on the *.pack file to regenerate the `*.idx` file." +"For a more complete list of ways to spell object names, see \"SPECIFYING " +"REVISIONS\" section in linkgit:gitrevisions[7]." msgstr "" -#. type: Labeled list -#: en/config.txt:2371 +#. type: Title - +#: en/git.txt:356 #, no-wrap -msgid "pack.packSizeLimit" +msgid "File/Directory Structure" msgstr "" #. type: Plain text -#: en/config.txt:2382 -msgid "" -"The maximum size of a pack. This setting only affects packing to a file " -"when repacking, i.e. the git:// protocol is unaffected. It can be " -"overridden by the `--max-pack-size` option of linkgit:git-repack[1]. " -"Reaching this limit results in the creation of multiple packfiles; which in " -"turn prevents bitmaps from being created. The minimum size allowed is " -"limited to 1 MiB. The default is unlimited. Common unit suffixes of 'k', " -"'m', or 'g' are supported." +#: en/git.txt:359 +msgid "Please see the linkgit:gitrepository-layout[5] document." msgstr "" -#. type: Labeled list -#: en/config.txt:2383 -#, no-wrap -msgid "pack.useBitmaps" +#. type: Plain text +#: en/git.txt:361 +msgid "Read linkgit:githooks[5] for more details about each hook." msgstr "" #. type: Plain text -#: en/config.txt:2388 +#: en/git.txt:364 msgid "" -"When true, git will use pack bitmaps (if available) when packing to stdout " -"(e.g., during the server side of a fetch). Defaults to true. You should not " -"generally need to turn this off unless you are debugging pack bitmaps." +"Higher level SCMs may provide and manage additional information in the `" +"$GIT_DIR`." msgstr "" -#. type: Labeled list -#: en/config.txt:2389 +#. type: Title - +#: en/git.txt:367 #, no-wrap -msgid "pack.writeBitmaps (deprecated)" +msgid "Terminology" msgstr "" #. type: Plain text -#: en/config.txt:2391 -msgid "This is a deprecated synonym for `repack.writeBitmaps`." +#: en/git.txt:369 +msgid "Please see linkgit:gitglossary[7]." msgstr "" -#. type: Labeled list -#: en/config.txt:2392 +#. type: Plain text +#: en/git.txt:374 +msgid "Various Git commands use the following environment variables:" +msgstr "" + +#. type: Title ~ +#: en/git.txt:376 #, no-wrap -msgid "pack.writeBitmapHashCache" +msgid "The Git Repository" msgstr "" #. type: Plain text -#: en/config.txt:2402 +#: en/git.txt:380 msgid "" -"When true, git will include a \"hash cache\" section in the bitmap index (if " -"one is written). This cache can be used to feed git's delta heuristics, " -"potentially leading to better deltas between bitmapped and non-bitmapped " -"objects (e.g., when serving a fetch between an older, bitmapped pack and " -"objects that have been pushed since the last gc). The downside is that it " -"consumes 4 bytes per object of disk space, and that JGit's bitmap " -"implementation does not understand it, causing it to complain if Git and " -"JGit are used on the same repository. Defaults to false." +"These environment variables apply to 'all' core Git commands. Nb: it is " +"worth noting that they may be used/overridden by SCMS sitting above Git so " +"take care if using a foreign front-end." msgstr "" #. type: Labeled list -#: en/config.txt:2403 +#: en/git.txt:381 #, no-wrap -msgid "pager.<cmd>" +msgid "`GIT_INDEX_FILE`" msgstr "" #. type: Plain text -#: en/config.txt:2411 +#: en/git.txt:385 msgid "" -"If the value is boolean, turns on or off pagination of the output of a " -"particular Git subcommand when writing to a tty. Otherwise, turns on " -"pagination for the subcommand using the pager specified by the value of " -"`pager.<cmd>`. If `--paginate` or `--no-pager` is specified on the command " -"line, it takes precedence over this option. To disable pagination for all " -"commands, set `core.pager` or `GIT_PAGER` to `cat`." +"This environment allows the specification of an alternate index file. If not " +"specified, the default of `$GIT_DIR/index` is used." msgstr "" #. type: Labeled list -#: en/config.txt:2412 +#: en/git.txt:386 #, no-wrap -msgid "pretty.<name>" +msgid "`GIT_INDEX_VERSION`" msgstr "" #. type: Plain text -#: en/config.txt:2421 +#: en/git.txt:391 msgid "" -"Alias for a --pretty= format string, as specified in linkgit:git-log[1]. Any " -"aliases defined here can be used just as the built-in pretty formats " -"could. For example, running `git config pretty.changelog \"format:* %H %s\"` " -"would cause the invocation `git log --pretty=changelog` to be equivalent to " -"running `git log \"--pretty=format:* %H %s\"`. Note that an alias with the " -"same name as a built-in format will be silently ignored." +"This environment variable allows the specification of an index version for " +"new repositories. It won't affect existing index files. By default index " +"file version 2 or 3 is used. See linkgit:git-update-index[1] for more " +"information." msgstr "" #. type: Labeled list -#: en/config.txt:2422 +#: en/git.txt:392 #, no-wrap -msgid "protocol.allow" +msgid "`GIT_OBJECT_DIRECTORY`" msgstr "" #. type: Plain text -#: en/config.txt:2429 +#: en/git.txt:397 msgid "" -"If set, provide a user defined default policy for all protocols which don't " -"explicitly have a policy (`protocol.<name>.allow`). By default, if unset, " -"known-safe protocols (http, https, git, ssh, file) have a default policy of " -"`always`, known-dangerous protocols (ext) have a default policy of `never`, " -"and all other protocols have a default policy of `user`. Supported " -"policies:" +"If the object storage directory is specified via this environment variable " +"then the sha1 directories are created underneath - otherwise the default `" +"$GIT_DIR/objects` directory is used." msgstr "" -#. type: Plain text -#: en/config.txt:2433 -msgid "`always` - protocol is always able to be used." +#. type: Labeled list +#: en/git.txt:398 +#, no-wrap +msgid "`GIT_ALTERNATE_OBJECT_DIRECTORIES`" msgstr "" #. type: Plain text -#: en/config.txt:2435 -msgid "`never` - protocol is never able to be used." +#: en/git.txt:404 +msgid "" +"Due to the immutable nature of Git objects, old objects can be archived into " +"shared, read-only directories. This variable specifies a \":\" separated (on " +"Windows \";\" separated) list of Git object directories which can be used to " +"search for Git objects. New objects will not be written to these directories." msgstr "" #. type: Plain text -#: en/config.txt:2441 +#: en/git.txt:410 msgid "" -"`user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is " -"either unset or has a value of 1. This policy should be used when you want " -"a protocol to be directly usable by the user but don't want it used by " -"commands which execute clone/fetch/push commands without user input, " -"e.g. recursive submodule initialization." +"Entries that begin with `\"` (double-quote) will be interpreted as C-style " +"quoted paths, removing leading and trailing double-quotes and respecting " +"backslash escapes. E.g., the value `\"path-with-\\\"-and-:-in-it\":vanilla-" +"path` has two paths: `path-with-\"-and-:-in-it` and `vanilla-path`." msgstr "" #. type: Labeled list -#: en/config.txt:2444 +#: en/git.txt:411 #, no-wrap -msgid "protocol.<name>.allow" +msgid "`GIT_DIR`" msgstr "" #. type: Plain text -#: en/config.txt:2447 +#: en/git.txt:416 msgid "" -"Set a policy to be used by protocol `<name>` with clone/fetch/push " -"commands. See `protocol.allow` above for the available policies." -msgstr "" - -#. type: Plain text -#: en/config.txt:2449 -msgid "The protocol names currently used by git are:" +"If the `GIT_DIR` environment variable is set then it specifies a path to use " +"instead of the default `.git` for the base of the repository. The `--git-" +"dir` command-line option also sets this value." msgstr "" -#. type: Plain text -#: en/config.txt:2453 -msgid "`file`: any local file-based path (including `file://` URLs, or local paths)" +#. type: Labeled list +#: en/git.txt:417 +#, no-wrap +msgid "`GIT_WORK_TREE`" msgstr "" #. type: Plain text -#: en/config.txt:2456 +#: en/git.txt:421 msgid "" -"`git`: the anonymous git protocol over a direct TCP connection (or proxy, if " -"configured)" +"Set the path to the root of the working tree. This can also be controlled " +"by the `--work-tree` command-line option and the core.worktree configuration " +"variable." msgstr "" -#. type: Plain text -#: en/config.txt:2459 -msgid "`ssh`: git over ssh (including `host:path` syntax, `ssh://`, etc)." +#. type: Labeled list +#: en/git.txt:422 +#, no-wrap +msgid "`GIT_NAMESPACE`" msgstr "" #. type: Plain text -#: en/config.txt:2463 +#: en/git.txt:425 msgid "" -"`http`: git over http, both \"smart http\" and \"dumb http\". Note that " -"this does _not_ include `https`; if you want to configure both, you must do " -"so individually." +"Set the Git namespace; see linkgit:gitnamespaces[7] for details. The `--" +"namespace` command-line option also sets this value." +msgstr "" + +#. type: Labeled list +#: en/git.txt:426 +#, no-wrap +msgid "`GIT_CEILING_DIRECTORIES`" msgstr "" #. type: Plain text -#: en/config.txt:2466 +#: en/git.txt:440 msgid "" -"any external helpers are named by their protocol (e.g., use `hg` to allow " -"the `git-remote-hg` helper)" +"This should be a colon-separated list of absolute paths. If set, it is a " +"list of directories that Git should not chdir up into while looking for a " +"repository directory (useful for excluding slow-loading network " +"directories). It will not exclude the current working directory or a " +"GIT_DIR set on the command line or in the environment. Normally, Git has to " +"read the entries in this list and resolve any symlink that might be present " +"in order to compare them with the current directory. However, if even this " +"access is slow, you can add an empty entry to the list to tell Git that the " +"subsequent entries are not symlinks and needn't be resolved; e.g., " +"`GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink`." msgstr "" #. type: Labeled list -#: en/config.txt:2468 +#: en/git.txt:441 #, no-wrap -msgid "pull.ff" +msgid "`GIT_DISCOVERY_ACROSS_FILESYSTEM`" msgstr "" #. type: Plain text -#: en/config.txt:2477 +#: en/git.txt:450 msgid "" -"By default, Git does not create an extra merge commit when merging a commit " -"that is a descendant of the current commit. Instead, the tip of the current " -"branch is fast-forwarded. When set to `false`, this variable tells Git to " -"create an extra merge commit in such a case (equivalent to giving the " -"`--no-ff` option from the command line). When set to `only`, only such " -"fast-forward merges are allowed (equivalent to giving the `--ff-only` option " -"from the command line). This setting overrides `merge.ff` when pulling." +"When run in a directory that does not have \".git\" repository directory, " +"Git tries to find such a directory in the parent directories to find the top " +"of the working tree, but by default it does not cross filesystem " +"boundaries. This environment variable can be set to true to tell Git not to " +"stop at filesystem boundaries. Like `GIT_CEILING_DIRECTORIES`, this will " +"not affect an explicit repository directory set via `GIT_DIR` or on the " +"command line." msgstr "" #. type: Labeled list -#: en/config.txt:2478 +#: en/git.txt:451 #, no-wrap -msgid "pull.rebase" +msgid "`GIT_COMMON_DIR`" msgstr "" #. type: Plain text -#: en/config.txt:2483 +#: en/git.txt:459 msgid "" -"When true, rebase branches on top of the fetched branch, instead of merging " -"the default branch from the default remote when \"git pull\" is run. See " -"\"branch.<name>.rebase\" for setting this on a per-branch basis." +"If this variable is set to a path, non-worktree files that are normally in " +"$GIT_DIR will be taken from this path instead. Worktree-specific files such " +"as HEAD or index are taken from $GIT_DIR. See linkgit:gitrepository-" +"layout[5] and linkgit:git-worktree[1] for details. This variable has lower " +"precedence than other path variables such as GIT_INDEX_FILE, " +"GIT_OBJECT_DIRECTORY..." msgstr "" -#. type: Labeled list -#: en/config.txt:2494 +#. type: Title ~ +#: en/git.txt:461 #, no-wrap -msgid "pull.octopus" +msgid "Git Commits" msgstr "" -#. type: Plain text -#: en/config.txt:2497 -msgid "The default merge strategy to use when pulling multiple branches at once." +#. type: Labeled list +#: en/git.txt:462 +#, no-wrap +msgid "`GIT_AUTHOR_NAME`" msgstr "" #. type: Labeled list -#: en/config.txt:2498 +#: en/git.txt:463 #, no-wrap -msgid "pull.twohead" +msgid "`GIT_AUTHOR_EMAIL`" msgstr "" -#. type: Plain text -#: en/config.txt:2500 -msgid "The default merge strategy to use when pulling a single branch." +#. type: Labeled list +#: en/git.txt:464 +#, no-wrap +msgid "`GIT_AUTHOR_DATE`" msgstr "" #. type: Labeled list -#: en/config.txt:2501 +#: en/git.txt:465 #, no-wrap -msgid "push.default" +msgid "`GIT_COMMITTER_NAME`" msgstr "" -#. type: Plain text -#: en/config.txt:2507 -msgid "" -"Defines the action `git push` should take if no refspec is explicitly " -"given. Different values are well-suited for specific workflows; for " -"instance, in a purely central workflow (i.e. the fetch source is equal to " -"the push destination), `upstream` is probably what you want. Possible " -"values are:" +#. type: Labeled list +#: en/git.txt:466 +#, no-wrap +msgid "`GIT_COMMITTER_EMAIL`" msgstr "" -#. type: Plain text -#: en/config.txt:2513 -msgid "" -"`nothing` - do not push anything (error out) unless a refspec is explicitly " -"given. This is primarily meant for people who want to avoid mistakes by " -"always being explicit." +#. type: Labeled list +#: en/git.txt:467 +#, no-wrap +msgid "`GIT_COMMITTER_DATE`" msgstr "" -#. type: Plain text -#: en/config.txt:2517 -msgid "" -"`current` - push the current branch to update a branch with the same name on " -"the receiving end. Works in both central and non-central workflows." +#. type: Labeled list +#: en/git.txt:468 +#, no-wrap +msgid "'EMAIL'" msgstr "" #. type: Plain text -#: en/config.txt:2523 -msgid "" -"`upstream` - push the current branch back to the branch whose changes are " -"usually integrated into the current branch (which is called `@{upstream}`). " -"This mode only makes sense if you are pushing to the same repository you " -"would normally pull from (i.e. central workflow)." +#: en/git.txt:470 +msgid "see linkgit:git-commit-tree[1]" msgstr "" -#. type: Plain text -#: en/config.txt:2525 -msgid "`tracking` - This is a deprecated synonym for `upstream`." +#. type: Title ~ +#: en/git.txt:472 +#, no-wrap +msgid "Git Diffs" msgstr "" -#. type: Plain text -#: en/config.txt:2529 -msgid "" -"`simple` - in centralized workflow, work like `upstream` with an added " -"safety to refuse to push if the upstream branch's name is different from the " -"local one." +#. type: Labeled list +#: en/git.txt:473 +#, no-wrap +msgid "`GIT_DIFF_OPTS`" msgstr "" #. type: Plain text -#: en/config.txt:2533 +#: en/git.txt:478 msgid "" -"When pushing to a remote that is different from the remote you normally pull " -"from, work as `current`. This is the safest option and is suited for " -"beginners." +"Only valid setting is \"--unified=??\" or \"-u??\" to set the number of " +"context lines shown when a unified diff is created. This takes precedence " +"over any \"-U\" or \"--unified\" option value passed on the Git diff command " +"line." msgstr "" -#. type: Plain text -#: en/config.txt:2535 -msgid "This mode has become the default in Git 2.0." +#. type: Labeled list +#: en/git.txt:479 +#, no-wrap +msgid "`GIT_EXTERNAL_DIFF`" msgstr "" #. type: Plain text -#: en/config.txt:2542 +#: en/git.txt:484 msgid "" -"`matching` - push all branches having the same name on both ends. This " -"makes the repository you are pushing to remember the set of branches that " -"will be pushed out (e.g. if you always push 'maint' and 'master' there and " -"no other branches, the repository you push to will have these two branches, " -"and your local 'maint' and 'master' will be pushed there)." +"When the environment variable `GIT_EXTERNAL_DIFF` is set, the program named " +"by it is called, instead of the diff invocation described above. For a path " +"that is added, removed, or modified, `GIT_EXTERNAL_DIFF` is called with 7 " +"parameters:" msgstr "" #. type: Plain text -#: en/config.txt:2552 -msgid "" -"To use this mode effectively, you have to make sure _all_ the branches you " -"would push out are ready to be pushed out before running 'git push', as the " -"whole point of this mode is to allow you to push all of the branches in one " -"go. If you usually finish work on only one branch and push out the result, " -"while other branches are unfinished, this mode is not for you. Also this " -"mode is not suitable for pushing into a shared central repository, as other " -"people may add new branches there, or update the tip of existing branches " -"outside your control." +#: en/git.txt:486 +msgid "path old-file old-hex old-mode new-file new-hex new-mode" msgstr "" #. type: Plain text -#: en/config.txt:2555 -msgid "" -"This used to be the default, but not since Git 2.0 (`simple` is the new " -"default)." +#: en/git.txt:488 +msgid "where:" msgstr "" #. type: Labeled list -#: en/config.txt:2558 +#: en/git.txt:489 #, no-wrap -msgid "push.followTags" +msgid "<old|new>-file" msgstr "" #. type: Plain text -#: en/config.txt:2562 -msgid "" -"If set to true enable `--follow-tags` option by default. You may override " -"this configuration at time of push by specifying `--no-follow-tags`." +#: en/git.txt:490 +msgid "are files GIT_EXTERNAL_DIFF can use to read the" +msgstr "" + +#. type: Plain text +#: en/git.txt:491 +#, no-wrap +msgid "contents of <old|new>,\n" msgstr "" #. type: Labeled list -#: en/config.txt:2563 +#: en/git.txt:491 #, no-wrap -msgid "push.gpgSign" +msgid "<old|new>-hex" msgstr "" #. type: Plain text -#: en/config.txt:2571 -msgid "" -"May be set to a boolean value, or the string 'if-asked'. A true value causes " -"all pushes to be GPG signed, as if `--signed` is passed to " -"linkgit:git-push[1]. The string 'if-asked' causes pushes to be signed if the " -"server supports it, as if `--signed=if-asked` is passed to 'git push'. A " -"false value may override a value from a lower-priority config file. An " -"explicit command-line flag always overrides this config option." +#: en/git.txt:492 +msgid "are the 40-hexdigit SHA-1 hashes," msgstr "" #. type: Labeled list -#: en/config.txt:2572 +#: en/git.txt:492 #, no-wrap -msgid "push.recurseSubmodules" +msgid "<old|new>-mode" msgstr "" #. type: Plain text -#: en/config.txt:2585 -msgid "" -"Make sure all submodule commits used by the revisions to be pushed are " -"available on a remote-tracking branch. If the value is 'check' then Git will " -"verify that all submodule commits that changed in the revisions to be pushed " -"are available on at least one remote of the submodule. If any commits are " -"missing, the push will be aborted and exit with non-zero status. If the " -"value is 'on-demand' then all submodules that changed in the revisions to be " -"pushed will be pushed. If on-demand was not able to push all necessary " -"revisions it will also be aborted and exit with non-zero status. If the " -"value is 'no' then default behavior of ignoring submodules when pushing is " -"retained. You may override this configuration at time of push by specifying " -"'--recurse-submodules=check|on-demand|no'." +#: en/git.txt:493 +msgid "are the octal representation of the file modes." msgstr "" #. type: Plain text -#: en/config.txt:2600 +#: en/git.txt:499 msgid "" -"When set to true, automatically create a temporary stash before the " -"operation begins, and apply it after the operation ends. This means that " -"you can run rebase on a dirty worktree. However, use with care: the final " -"stash application after a successful rebase might result in non-trivial " -"conflicts. Defaults to false." +"The file parameters can point at the user's working file (e.g. `new-file` in " +"\"git-diff-files\"), `/dev/null` (e.g. `old-file` when a new file is added), " +"or a temporary file (e.g. `old-file` in the index). `GIT_EXTERNAL_DIFF` " +"should not worry about unlinking the temporary file --- it is removed when " +"`GIT_EXTERNAL_DIFF` exits." msgstr "" #. type: Plain text -#: en/config.txt:2611 +#: en/git.txt:502 msgid "" -"If set to \"warn\", git rebase -i will print a warning if some commits are " -"removed (e.g. a line was deleted), however the rebase will still proceed. If " -"set to \"error\", it will print the previous warning and stop the rebase, " -"'git rebase --edit-todo' can then be used to correct the error. If set to " -"\"ignore\", no checking is done. To drop a commit without warning or error, " -"use the `drop` command in the todo-list. Defaults to \"ignore\"." +"For a path that is unmerged, `GIT_EXTERNAL_DIFF` is called with 1 parameter, " +"<path>." msgstr "" #. type: Plain text -#: en/config.txt:2616 +#: en/git.txt:505 msgid "" -"A format string, as specified in linkgit:git-log[1], to be used for the " -"instruction list during an interactive rebase. The format will " -"automatically have the long commit hash prepended to the format." +"For each path `GIT_EXTERNAL_DIFF` is called, two environment variables, " +"`GIT_DIFF_PATH_COUNTER` and `GIT_DIFF_PATH_TOTAL` are set." msgstr "" #. type: Labeled list -#: en/config.txt:2617 +#: en/git.txt:506 #, no-wrap -msgid "receive.advertiseAtomic" +msgid "`GIT_DIFF_PATH_COUNTER`" msgstr "" #. type: Plain text -#: en/config.txt:2621 -msgid "" -"By default, git-receive-pack will advertise the atomic push capability to " -"its clients. If you don't want to advertise this capability, set this " -"variable to false." +#: en/git.txt:508 +msgid "A 1-based counter incremented by one for every path." msgstr "" #. type: Labeled list -#: en/config.txt:2622 +#: en/git.txt:509 #, no-wrap -msgid "receive.advertisePushOptions" +msgid "`GIT_DIFF_PATH_TOTAL`" msgstr "" #. type: Plain text -#: en/config.txt:2626 -msgid "" -"By default, git-receive-pack will advertise the push options capability to " -"its clients. If you don't want to advertise this capability, set this " -"variable to false." +#: en/git.txt:511 +msgid "The total number of paths." msgstr "" #. type: Labeled list -#: en/config.txt:2627 +#: en/git.txt:514 #, no-wrap -msgid "receive.autogc" +msgid "`GIT_MERGE_VERBOSITY`" msgstr "" #. type: Plain text -#: en/config.txt:2631 +#: en/git.txt:518 msgid "" -"By default, git-receive-pack will run \"git-gc --auto\" after receiving data " -"from git-push and updating refs. You can stop it by setting this variable " -"to false." +"A number controlling the amount of output shown by the recursive merge " +"strategy. Overrides merge.verbosity. See linkgit:git-merge[1]" msgstr "" #. type: Labeled list -#: en/config.txt:2632 +#: en/git.txt:519 #, no-wrap -msgid "receive.certNonceSeed" +msgid "`GIT_PAGER`" msgstr "" #. type: Plain text -#: en/config.txt:2637 +#: en/git.txt:524 msgid "" -"By setting this variable to a string, `git receive-pack` will accept a `git " -"push --signed` and verifies it by using a \"nonce\" protected by HMAC using " -"this string as a secret key." +"This environment variable overrides `$PAGER`. If it is set to an empty " +"string or to the value \"cat\", Git will not launch a pager. See also the " +"`core.pager` option in linkgit:git-config[1]." msgstr "" #. type: Labeled list -#: en/config.txt:2638 +#: en/git.txt:525 #, no-wrap -msgid "receive.certNonceSlop" +msgid "`GIT_EDITOR`" msgstr "" #. type: Plain text -#: en/config.txt:2650 +#: en/git.txt:530 msgid "" -"When a `git push --signed` sent a push certificate with a \"nonce\" that was " -"issued by a receive-pack serving the same repository within this many " -"seconds, export the \"nonce\" found in the certificate to " -"`GIT_PUSH_CERT_NONCE` to the hooks (instead of what the receive-pack asked " -"the sending side to include). This may allow writing checks in " -"`pre-receive` and `post-receive` a bit easier. Instead of checking " -"`GIT_PUSH_CERT_NONCE_SLOP` environment variable that records by how many " -"seconds the nonce is stale to decide if they want to accept the certificate, " -"they only can check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`." +"This environment variable overrides `$EDITOR` and `$VISUAL`. It is used by " +"several Git commands when, on interactive mode, an editor is to be launched. " +"See also linkgit:git-var[1] and the `core.editor` option in linkgit:git-" +"config[1]." msgstr "" #. type: Labeled list -#: en/config.txt:2651 +#: en/git.txt:531 #, no-wrap -msgid "receive.fsckObjects" -msgstr "" - -#. type: Plain text -#: en/config.txt:2657 -msgid "" -"If it is set to true, git-receive-pack will check all received objects. It " -"will abort in the case of a malformed object or a broken link. The result of " -"an abort are only dangling objects. Defaults to false. If not set, the " -"value of `transfer.fsckObjects` is used instead." +msgid "`GIT_SSH`" msgstr "" #. type: Labeled list -#: en/config.txt:2658 +#: en/git.txt:532 #, no-wrap -msgid "receive.fsck.<msg-id>" +msgid "`GIT_SSH_COMMAND`" msgstr "" #. type: Plain text -#: en/config.txt:2666 +#: en/git.txt:539 msgid "" -"When `receive.fsckObjects` is set to true, errors can be switched to " -"warnings and vice versa by configuring the `receive.fsck.<msg-id>` setting " -"where the `<msg-id>` is the fsck message ID and the value is one of `error`, " -"`warn` or `ignore`. For convenience, fsck prefixes the error/warning with " -"the message ID, e.g. \"missingEmail: invalid author/committer line - missing " -"email\" means that setting `receive.fsck.missingEmail = ignore` will hide " -"that issue." +"If either of these environment variables is set then 'git fetch' and 'git " +"push' will use the specified command instead of 'ssh' when they need to " +"connect to a remote system. The command-line parameters passed to the " +"configured command are determined by the ssh variant. See `ssh.variant` " +"option in linkgit:git-config[1] for details." msgstr "" #. type: Plain text -#: en/config.txt:2671 +#: en/git.txt:546 msgid "" -"This feature is intended to support working with legacy repositories which " -"would not pass pushing when `receive.fsckObjects = true`, allowing the host " -"to accept repositories with certain known issues but still catch other " -"issues." +"`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted by " +"the shell, which allows additional arguments to be included. `$GIT_SSH` on " +"the other hand must be just the path to a program (which can be a wrapper " +"shell script, if additional arguments are needed)." msgstr "" -#. type: Labeled list -#: en/config.txt:2672 -#, no-wrap -msgid "receive.fsck.skipList" +#. type: Plain text +#: en/git.txt:550 +msgid "" +"Usually it is easier to configure any desired options through your personal " +"`.ssh/config` file. Please consult your ssh documentation for further " +"details." msgstr "" #. type: Labeled list -#: en/config.txt:2680 +#: en/git.txt:551 #, no-wrap -msgid "receive.keepAlive" +msgid "`GIT_SSH_VARIANT`" msgstr "" #. type: Plain text -#: en/config.txt:2688 +#: en/git.txt:556 msgid "" -"After receiving the pack from the client, `receive-pack` may produce no " -"output (if `--quiet` was specified) while processing the pack, causing some " -"networks to drop the TCP connection. With this option set, if " -"`receive-pack` does not transmit any data in this phase for " -"`receive.keepAlive` seconds, it will send a short keepalive packet. The " -"default is 5 seconds; set to 0 to disable keepalives entirely." +"If this environment variable is set, it overrides Git's autodetection " +"whether `GIT_SSH`/`GIT_SSH_COMMAND`/`core.sshCommand` refer to OpenSSH, " +"plink or tortoiseplink. This variable overrides the config setting `ssh." +"variant` that serves the same purpose." msgstr "" #. type: Labeled list -#: en/config.txt:2689 +#: en/git.txt:557 #, no-wrap -msgid "receive.unpackLimit" +msgid "`GIT_ASKPASS`" msgstr "" #. type: Plain text -#: en/config.txt:2698 +#: en/git.txt:563 msgid "" -"If the number of objects received in a push is below this limit then the " -"objects will be unpacked into loose object files. However if the number of " -"received objects equals or exceeds this limit then the received pack will be " -"stored as a pack, after adding any missing delta bases. Storing the pack " -"from a push can make the push operation complete faster, especially on slow " -"filesystems. If not set, the value of `transfer.unpackLimit` is used " -"instead." +"If this environment variable is set, then Git commands which need to acquire " +"passwords or passphrases (e.g. for HTTP or IMAP authentication) will call " +"this program with a suitable prompt as command-line argument and read the " +"password from its STDOUT. See also the `core.askPass` option in linkgit:git-" +"config[1]." msgstr "" #. type: Labeled list -#: en/config.txt:2699 +#: en/git.txt:564 #, no-wrap -msgid "receive.maxInputSize" +msgid "`GIT_TERMINAL_PROMPT`" msgstr "" #. type: Plain text -#: en/config.txt:2704 +#: en/git.txt:567 msgid "" -"If the size of the incoming pack stream is larger than this limit, then " -"git-receive-pack will error out, instead of accepting the pack file. If not " -"set or set to 0, then the size is unlimited." +"If this environment variable is set to `0`, git will not prompt on the " +"terminal (e.g., when asking for HTTP authentication)." msgstr "" #. type: Labeled list -#: en/config.txt:2705 +#: en/git.txt:568 #, no-wrap -msgid "receive.denyDeletes" +msgid "`GIT_CONFIG_NOSYSTEM`" msgstr "" #. type: Plain text -#: en/config.txt:2708 +#: en/git.txt:575 msgid "" -"If set to true, git-receive-pack will deny a ref update that deletes the " -"ref. Use this to prevent such a ref deletion via a push." +"Whether to skip reading settings from the system-wide `$(prefix)/etc/" +"gitconfig` file. This environment variable can be used along with `$HOME` " +"and `$XDG_CONFIG_HOME` to create a predictable environment for a picky " +"script, or you can set it temporarily to avoid using a buggy `/etc/" +"gitconfig` file while waiting for someone with sufficient permissions to fix " +"it." msgstr "" #. type: Labeled list -#: en/config.txt:2709 +#: en/git.txt:576 #, no-wrap -msgid "receive.denyDeleteCurrent" +msgid "`GIT_FLUSH`" msgstr "" #. type: Plain text -#: en/config.txt:2712 +#: en/git.txt:586 +#, no-wrap msgid "" -"If set to true, git-receive-pack will deny a ref update that deletes the " -"currently checked out branch of a non-bare repository." +"If this environment variable is set to \"1\", then commands such\n" +"as 'git blame' (in incremental mode), 'git rev-list', 'git log',\n" +"'git check-attr' and 'git check-ignore' will\n" +"force a flush of the output stream after each record have been\n" +"flushed. If this\n" +"variable is set to \"0\", the output of these commands will be done\n" +"using completely buffered I/O. If this environment variable is\n" +"not set, Git will choose buffered or record-oriented flushing\n" +"based on whether stdout appears to be redirected to a file or not.\n" msgstr "" #. type: Labeled list -#: en/config.txt:2713 +#: en/git.txt:587 #, no-wrap -msgid "receive.denyCurrentBranch" +msgid "`GIT_TRACE`" msgstr "" #. type: Plain text -#: en/config.txt:2721 +#: en/git.txt:590 msgid "" -"If set to true or \"refuse\", git-receive-pack will deny a ref update to the " -"currently checked out branch of a non-bare repository. Such a push is " -"potentially dangerous because it brings the HEAD out of sync with the index " -"and working tree. If set to \"warn\", print a warning of such a push to " -"stderr, but allow the push to proceed. If set to false or \"ignore\", allow " -"such pushes with no message. Defaults to \"refuse\"." +"Enables general trace messages, e.g. alias expansion, built-in command " +"execution and external command execution." msgstr "" #. type: Plain text -#: en/config.txt:2728 +#: en/git.txt:594 msgid "" -"Another option is \"updateInstead\" which will update the working tree if " -"pushing into the current branch. This option is intended for synchronizing " -"working directories when one side is not easily accessible via interactive " -"ssh (e.g. a live web site, hence the requirement that the working directory " -"be clean). This mode also comes in handy when developing inside a VM to test " -"and fix code on different Operating Systems." +"If this variable is set to \"1\", \"2\" or \"true\" (comparison is case " +"insensitive), trace messages will be printed to stderr." msgstr "" #. type: Plain text -#: en/config.txt:2732 +#: en/git.txt:599 msgid "" -"By default, \"updateInstead\" will refuse the push if the working tree or " -"the index have any difference from the HEAD, but the `push-to-checkout` hook " -"can be used to customize this. See linkgit:githooks[5]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2733 -#, no-wrap -msgid "receive.denyNonFastForwards" +"If the variable is set to an integer value greater than 2 and lower than 10 " +"(strictly) then Git will interpret this value as an open file descriptor and " +"will try to write the trace messages into this file descriptor." msgstr "" #. type: Plain text -#: en/config.txt:2738 +#: en/git.txt:604 msgid "" -"If set to true, git-receive-pack will deny a ref update which is not a " -"fast-forward. Use this to prevent such an update via a push, even if that " -"push is forced. This configuration variable is set when initializing a " -"shared repository." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2739 -#, no-wrap -msgid "receive.hideRefs" +"Alternatively, if the variable is set to an absolute path (starting with a " +"'/' character), Git will interpret this as a file path and will try to " +"append the trace messages to it." msgstr "" #. type: Plain text -#: en/config.txt:2744 +#: en/git.txt:607 msgid "" -"This variable is the same as `transfer.hideRefs`, but applies only to " -"`receive-pack` (and so affects pushes, but not fetches). An attempt to " -"update or delete a hidden ref by `git push` is rejected." +"Unsetting the variable, or setting it to empty, \"0\" or \"false\" (case " +"insensitive) disables trace messages." msgstr "" #. type: Labeled list -#: en/config.txt:2745 +#: en/git.txt:608 #, no-wrap -msgid "receive.updateServerInfo" +msgid "`GIT_TRACE_FSMONITOR`" msgstr "" #. type: Plain text -#: en/config.txt:2748 +#: en/git.txt:611 msgid "" -"If set to true, git-receive-pack will run git-update-server-info after " -"receiving data from git-push and updating refs." +"Enables trace messages for the filesystem monitor extension. See " +"`GIT_TRACE` for available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2749 +#: en/git.txt:612 #, no-wrap -msgid "receive.shallowUpdate" +msgid "`GIT_TRACE_PACK_ACCESS`" msgstr "" #. type: Plain text -#: en/config.txt:2752 +#: en/git.txt:618 msgid "" -"If set to true, .git/shallow can be updated when new refs require new " -"shallow roots. Otherwise those refs are rejected." +"Enables trace messages for all accesses to any packs. For each access, the " +"pack file name and an offset in the pack is recorded. This may be helpful " +"for troubleshooting some pack-related performance problems. See `GIT_TRACE` " +"for available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2753 +#: en/git.txt:619 #, no-wrap -msgid "remote.pushDefault" +msgid "`GIT_TRACE_PACKET`" msgstr "" #. type: Plain text -#: en/config.txt:2757 +#: en/git.txt:625 msgid "" -"The remote to push to by default. Overrides `branch.<name>.remote` for all " -"branches, and is overridden by `branch.<name>.pushRemote` for specific " -"branches." +"Enables trace messages for all packets coming in or out of a given program. " +"This can help with debugging object negotiation or other protocol issues. " +"Tracing is turned off at a packet starting with \"PACK\" (but see " +"`GIT_TRACE_PACKFILE` below). See `GIT_TRACE` for available trace output " +"options." msgstr "" #. type: Labeled list -#: en/config.txt:2758 +#: en/git.txt:626 #, no-wrap -msgid "remote.<name>.url" +msgid "`GIT_TRACE_PACKFILE`" msgstr "" #. type: Plain text -#: en/config.txt:2761 +#: en/git.txt:633 msgid "" -"The URL of a remote repository. See linkgit:git-fetch[1] or " -"linkgit:git-push[1]." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2762 -#, no-wrap -msgid "remote.<name>.pushurl" +"Enables tracing of packfiles sent or received by a given program. Unlike " +"other trace output, this trace is verbatim: no headers, and no quoting of " +"binary data. You almost certainly want to direct into a file (e.g., " +"`GIT_TRACE_PACKFILE=/tmp/my.pack`) rather than displaying it on the terminal " +"or mixing it with other trace output." msgstr "" #. type: Plain text -#: en/config.txt:2764 -msgid "The push URL of a remote repository. See linkgit:git-push[1]." +#: en/git.txt:636 +msgid "" +"Note that this is currently only implemented for the client side of clones " +"and fetches." msgstr "" #. type: Labeled list -#: en/config.txt:2765 +#: en/git.txt:637 #, no-wrap -msgid "remote.<name>.proxy" +msgid "`GIT_TRACE_PERFORMANCE`" msgstr "" #. type: Plain text -#: en/config.txt:2769 +#: en/git.txt:641 msgid "" -"For remotes that require curl (http, https and ftp), the URL to the proxy to " -"use for that remote. Set to the empty string to disable proxying for that " -"remote." +"Enables performance related trace messages, e.g. total execution time of " +"each Git command. See `GIT_TRACE` for available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2770 +#: en/git.txt:642 #, no-wrap -msgid "remote.<name>.proxyAuthMethod" +msgid "`GIT_TRACE_SETUP`" msgstr "" #. type: Plain text -#: en/config.txt:2774 +#: en/git.txt:646 msgid "" -"For remotes that require curl (http, https and ftp), the method to use for " -"authenticating against the proxy in use (probably set in " -"`remote.<name>.proxy`). See `http.proxyAuthMethod`." +"Enables trace messages printing the .git, working tree and current working " +"directory after Git has completed its setup phase. See `GIT_TRACE` for " +"available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2775 +#: en/git.txt:647 #, no-wrap -msgid "remote.<name>.fetch" +msgid "`GIT_TRACE_SHALLOW`" msgstr "" #. type: Plain text -#: en/config.txt:2778 +#: en/git.txt:651 msgid "" -"The default set of \"refspec\" for linkgit:git-fetch[1]. See " -"linkgit:git-fetch[1]." +"Enables trace messages that can help debugging fetching / cloning of shallow " +"repositories. See `GIT_TRACE` for available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2779 +#: en/git.txt:652 #, no-wrap -msgid "remote.<name>.push" +msgid "`GIT_TRACE_CURL`" msgstr "" #. type: Plain text -#: en/config.txt:2782 +#: en/git.txt:659 msgid "" -"The default set of \"refspec\" for linkgit:git-push[1]. See " -"linkgit:git-push[1]." +"Enables a curl full trace dump of all incoming and outgoing data, including " +"descriptive information, of the git transport protocol. This is similar to " +"doing curl `--trace-ascii` on the command line. This option overrides " +"setting the `GIT_CURL_VERBOSE` environment variable. See `GIT_TRACE` for " +"available trace output options." msgstr "" #. type: Labeled list -#: en/config.txt:2783 +#: en/git.txt:660 #, no-wrap -msgid "remote.<name>.mirror" +msgid "`GIT_TRACE_CURL_NO_DATA`" msgstr "" #. type: Plain text -#: en/config.txt:2786 +#: en/git.txt:663 msgid "" -"If true, pushing to this remote will automatically behave as if the " -"`--mirror` option was given on the command line." +"When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump data " +"(that is, only dump info lines and headers)." msgstr "" #. type: Labeled list -#: en/config.txt:2787 +#: en/git.txt:664 #, no-wrap -msgid "remote.<name>.skipDefaultUpdate" +msgid "`GIT_REDACT_COOKIES`" msgstr "" #. type: Plain text -#: en/config.txt:2791 en/config.txt:2796 +#: en/git.txt:669 msgid "" -"If true, this remote will be skipped by default when updating using " -"linkgit:git-fetch[1] or the `update` subcommand of linkgit:git-remote[1]." +"This can be set to a comma-separated list of strings. When a curl trace is " +"enabled (see `GIT_TRACE_CURL` above), whenever a \"Cookies:\" header sent by " +"the client is dumped, values of cookies whose key is in that list (case-" +"sensitive) are redacted." msgstr "" #. type: Labeled list -#: en/config.txt:2792 +#: en/git.txt:670 #, no-wrap -msgid "remote.<name>.skipFetchAll" -msgstr "" - -#. type: Labeled list -#: en/config.txt:2797 -#, no-wrap -msgid "remote.<name>.receivepack" +msgid "`GIT_LITERAL_PATHSPECS`" msgstr "" #. type: Plain text -#: en/config.txt:2800 +#: en/git.txt:678 msgid "" -"The default program to execute on the remote side when pushing. See option " -"--receive-pack of linkgit:git-push[1]." +"Setting this variable to `1` will cause Git to treat all pathspecs " +"literally, rather than as glob patterns. For example, running " +"`GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search for commits that " +"touch the path `*.c`, not any paths that the glob `*.c` matches. You might " +"want this if you are feeding literal paths to Git (e.g., paths previously " +"given to you by `git ls-tree`, `--raw` diff output, etc)." msgstr "" #. type: Labeled list -#: en/config.txt:2801 +#: en/git.txt:679 #, no-wrap -msgid "remote.<name>.uploadpack" +msgid "`GIT_GLOB_PATHSPECS`" msgstr "" #. type: Plain text -#: en/config.txt:2804 +#: en/git.txt:682 msgid "" -"The default program to execute on the remote side when fetching. See option " -"--upload-pack of linkgit:git-fetch-pack[1]." +"Setting this variable to `1` will cause Git to treat all pathspecs as glob " +"patterns (aka \"glob\" magic)." msgstr "" #. type: Labeled list -#: en/config.txt:2805 +#: en/git.txt:683 #, no-wrap -msgid "remote.<name>.tagOpt" +msgid "`GIT_NOGLOB_PATHSPECS`" msgstr "" #. type: Plain text -#: en/config.txt:2812 +#: en/git.txt:686 msgid "" -"Setting this value to --no-tags disables automatic tag following when " -"fetching from remote <name>. Setting it to --tags will fetch every tag from " -"remote <name>, even if they are not reachable from remote branch " -"heads. Passing these flags directly to linkgit:git-fetch[1] can override " -"this setting. See options --tags and --no-tags of linkgit:git-fetch[1]." +"Setting this variable to `1` will cause Git to treat all pathspecs as " +"literal (aka \"literal\" magic)." msgstr "" #. type: Labeled list -#: en/config.txt:2813 +#: en/git.txt:687 #, no-wrap -msgid "remote.<name>.vcs" +msgid "`GIT_ICASE_PATHSPECS`" msgstr "" #. type: Plain text -#: en/config.txt:2816 +#: en/git.txt:690 msgid "" -"Setting this to a value <vcs> will cause Git to interact with the remote " -"with the git-remote-<vcs> helper." +"Setting this variable to `1` will cause Git to treat all pathspecs as case-" +"insensitive." msgstr "" #. type: Labeled list -#: en/config.txt:2817 +#: en/git.txt:691 #, no-wrap -msgid "remote.<name>.prune" +msgid "`GIT_REFLOG_ACTION`" msgstr "" #. type: Plain text -#: en/config.txt:2822 +#: en/git.txt:700 msgid "" -"When set to true, fetching from this remote by default will also remove any " -"remote-tracking references that no longer exist on the remote (as if the " -"`--prune` option was given on the command line). Overrides `fetch.prune` " -"settings, if any." +"When a ref is updated, reflog entries are created to keep track of the " +"reason why the ref was updated (which is typically the name of the high-" +"level command that updated the ref), in addition to the old and new values " +"of the ref. A scripted Porcelain command can use set_reflog_action helper " +"function in `git-sh-setup` to set its name to this variable when it is " +"invoked as the top level command by the end user, to be recorded in the body " +"of the reflog." msgstr "" #. type: Labeled list -#: en/config.txt:2823 +#: en/git.txt:701 #, no-wrap -msgid "remotes.<group>" +msgid "`GIT_REF_PARANOIA`" msgstr "" #. type: Plain text -#: en/config.txt:2826 +#: en/git.txt:711 msgid "" -"The list of remotes which are fetched by \"git remote update <group>\". See " -"linkgit:git-remote[1]." +"If set to `1`, include broken or badly named refs when iterating over lists " +"of refs. In a normal, non-corrupted repository, this does nothing. However, " +"enabling it may help git to detect and abort some operations in the presence " +"of broken refs. Git sets this variable automatically when performing " +"destructive operations like linkgit:git-prune[1]. You should not need to set " +"it yourself unless you want to be paranoid about making sure an operation " +"has touched every ref (e.g., because you are cloning a repository to make a " +"backup)." msgstr "" #. type: Labeled list -#: en/config.txt:2827 +#: en/git.txt:712 #, no-wrap -msgid "repack.useDeltaBaseOffset" +msgid "`GIT_ALLOW_PROTOCOL`" msgstr "" #. type: Plain text -#: en/config.txt:2834 +#: en/git.txt:720 msgid "" -"By default, linkgit:git-repack[1] creates packs that use delta-base " -"offset. If you need to share your repository with Git older than version " -"1.4.4, either directly or via a dumb protocol such as http, then you need to " -"set this option to \"false\" and repack. Access from old Git versions over " -"the native protocol are unaffected by this option." +"If set to a colon-separated list of protocols, behave as if `protocol.allow` " +"is set to `never`, and each of the listed protocols has `protocol.<name>." +"allow` set to `always` (overriding any existing configuration). In other " +"words, any protocol not mentioned will be disallowed (i.e., this is a " +"whitelist, not a blacklist). See the description of `protocol.allow` in " +"linkgit:git-config[1] for more details." msgstr "" #. type: Labeled list -#: en/config.txt:2835 +#: en/git.txt:721 #, no-wrap -msgid "repack.packKeptObjects" +msgid "`GIT_PROTOCOL_FROM_USER`" msgstr "" #. type: Plain text -#: en/config.txt:2841 +#: en/git.txt:727 msgid "" -"If set to true, makes `git repack` act as if `--pack-kept-objects` was " -"passed. See linkgit:git-repack[1] for details. Defaults to `false` normally, " -"but `true` if a bitmap index is being written (either via " -"`--write-bitmap-index` or `repack.writeBitmaps`)." +"Set to 0 to prevent protocols used by fetch/push/clone which are configured " +"to the `user` state. This is useful to restrict recursive submodule " +"initialization from an untrusted repository or for programs which feed " +"potentially-untrusted URLS to git commands. See linkgit:git-config[1] for " +"more details." msgstr "" #. type: Labeled list -#: en/config.txt:2842 +#: en/git.txt:728 #, no-wrap -msgid "repack.writeBitmaps" +msgid "`GIT_PROTOCOL`" msgstr "" #. type: Plain text -#: en/config.txt:2850 +#: en/git.txt:733 msgid "" -"When true, git will write a bitmap index when packing all objects to disk " -"(e.g., when `git repack -a` is run). This index can speed up the \"counting " -"objects\" phase of subsequent packs created for clones and fetches, at the " -"cost of some disk space and extra time spent on the initial repack. This " -"has no effect if multiple packfiles are created. Defaults to false." +"For internal use only. Used in handshaking the wire protocol. Contains a " +"colon ':' separated list of keys with optional values 'key[=value]'. " +"Presence of unknown keys and values must be ignored." msgstr "" #. type: Labeled list -#: en/config.txt:2851 +#: en/git.txt:734 #, no-wrap -msgid "rerere.autoUpdate" +msgid "`GIT_OPTIONAL_LOCKS`" msgstr "" #. type: Plain text -#: en/config.txt:2855 +#: en/git.txt:741 msgid "" -"When set to true, `git-rerere` updates the index with the resulting contents " -"after it cleanly resolves conflicts using previously recorded resolution. " -"Defaults to false." +"If set to `0`, Git will complete any requested operation without performing " +"any optional sub-operations that require taking a lock. For example, this " +"will prevent `git status` from refreshing the index as a side effect. This " +"is useful for processes running in the background which do not want to cause " +"lock contention with other operations on the repository. Defaults to `1`." msgstr "" #. type: Labeled list -#: en/config.txt:2856 +#: en/git.txt:742 #, no-wrap -msgid "rerere.enabled" -msgstr "" - -#. type: Plain text -#: en/config.txt:2863 -msgid "" -"Activate recording of resolved conflicts, so that identical conflict hunks " -"can be resolved automatically, should they be encountered again. By " -"default, linkgit:git-rerere[1] is enabled if there is an `rr-cache` " -"directory under the `$GIT_DIR`, e.g. if \"rerere\" was previously used in " -"the repository." +msgid "`GIT_REDIRECT_STDIN`" msgstr "" #. type: Labeled list -#: en/config.txt:2864 +#: en/git.txt:743 #, no-wrap -msgid "sendemail.identity" +msgid "`GIT_REDIRECT_STDOUT`" msgstr "" #. type: Labeled list -#: en/config.txt:2870 +#: en/git.txt:744 #, no-wrap -msgid "sendemail.smtpEncryption" +msgid "`GIT_REDIRECT_STDERR`" msgstr "" #. type: Plain text -#: en/config.txt:2873 +#: en/git.txt:754 msgid "" -"See linkgit:git-send-email[1] for description. Note that this setting is " -"not subject to the 'identity' mechanism." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2874 -#, no-wrap -msgid "sendemail.smtpssl (deprecated)" +"Windows-only: allow redirecting the standard input/output/error handles to " +"paths specified by the environment variables. This is particularly useful in " +"multi-threaded applications where the canonical way to pass standard handles " +"via `CreateProcess()` is not an option because it would require the handles " +"to be marked inheritable (and consequently *every* spawned process would " +"inherit them, possibly blocking regular Git operations). The primary " +"intended use case is to use named pipes for communication (e.g. `\\\\.\\pipe" +"\\my-git-stdin-123`)." msgstr "" #. type: Plain text -#: en/config.txt:2876 -msgid "Deprecated alias for 'sendemail.smtpEncryption = ssl'." +#: en/git.txt:759 +msgid "" +"Two special values are supported: `off` will simply close the corresponding " +"standard handle, and if `GIT_REDIRECT_STDERR` is `2>&1`, standard error will " +"be redirected to the same handle as standard output." msgstr "" #. type: Labeled list -#: en/config.txt:2877 +#: en/git.txt:760 #, no-wrap -msgid "sendemail.smtpsslcertpath" +msgid "`GIT_PRINT_SHA1_ELLIPSIS` (deprecated)" msgstr "" #. type: Plain text -#: en/config.txt:2880 +#: en/git.txt:768 msgid "" -"Path to ca-certificates (either a directory or a single file). Set it to an " -"empty string to disable certificate verification." +"If set to `yes`, print an ellipsis following an (abbreviated) SHA-1 value. " +"This affects indications of detached HEADs (linkgit:git-checkout[1]) and the " +"raw diff output (linkgit:git-diff[1]). Printing an ellipsis in the cases " +"mentioned is no longer considered adequate and support for it is likely to " +"be removed in the foreseeable future (along with the variable)." msgstr "" -#. type: Labeled list -#: en/config.txt:2881 +#. type: Title - +#: en/git.txt:770 #, no-wrap -msgid "sendemail.<identity>.*" +msgid "Discussion[[Discussion]]" msgstr "" #. type: Plain text -#: en/config.txt:2886 +#: en/git.txt:775 msgid "" -"Identity-specific versions of the 'sendemail.*' parameters found below, " -"taking precedence over those when the this identity is selected, through " -"command-line or `sendemail.identity`." +"More detail on the following is available from the link:user-manual.html#git-" +"concepts[Git concepts chapter of the user-manual] and linkgit:gitcore-" +"tutorial[7]." msgstr "" -#. type: Labeled list -#: en/config.txt:2889 -#, no-wrap -msgid "sendemail.annotate" +#. type: Plain text +#: en/git.txt:782 +msgid "" +"A Git project normally consists of a working directory with a \".git\" " +"subdirectory at the top level. The .git directory contains, among other " +"things, a compressed object database representing the complete history of " +"the project, an \"index\" file which links that history to the current " +"contents of the working tree, and named pointers into that history such as " +"tags and branch heads." msgstr "" -#. type: Labeled list -#: en/config.txt:2890 -#, no-wrap -msgid "sendemail.bcc" +#. type: Plain text +#: en/git.txt:787 +msgid "" +"The object database contains objects of three main types: blobs, which hold " +"file data; trees, which point to blobs and other trees to build up directory " +"hierarchies; and commits, which each reference a single tree and some number " +"of parent commits." msgstr "" -#. type: Labeled list -#: en/config.txt:2891 -#, no-wrap -msgid "sendemail.cc" +#. type: Plain text +#: en/git.txt:792 +msgid "" +"The commit, equivalent to what other systems call a \"changeset\" or " +"\"version\", represents a step in the project's history, and each parent " +"represents an immediately preceding step. Commits with more than one parent " +"represent merges of independent lines of development." msgstr "" -#. type: Labeled list -#: en/config.txt:2892 -#, no-wrap -msgid "sendemail.ccCmd" +#. type: Plain text +#: en/git.txt:798 +msgid "" +"All objects are named by the SHA-1 hash of their contents, normally written " +"as a string of 40 hex digits. Such names are globally unique. The entire " +"history leading up to a commit can be vouched for by signing just that " +"commit. A fourth object type, the tag, is provided for this purpose." msgstr "" -#. type: Labeled list -#: en/config.txt:2893 -#, no-wrap -msgid "sendemail.chainReplyTo" +#. type: Plain text +#: en/git.txt:801 +msgid "" +"When first created, objects are stored in individual files, but for " +"efficiency may later be compressed together into \"pack files\"." msgstr "" -#. type: Labeled list -#: en/config.txt:2895 -#, no-wrap -msgid "sendemail.envelopeSender" +#. type: Plain text +#: en/git.txt:808 +msgid "" +"Named pointers called refs mark interesting points in history. A ref may " +"contain the SHA-1 name of an object or the name of another ref. Refs with " +"names beginning `ref/head/` contain the SHA-1 name of the most recent commit " +"(or \"head\") of a branch under development. SHA-1 names of tags of " +"interest are stored under `ref/tags/`. A special ref named `HEAD` contains " +"the name of the currently checked-out branch." msgstr "" -#. type: Labeled list -#: en/config.txt:2896 -#, no-wrap -msgid "sendemail.from" +#. type: Plain text +#: en/git.txt:817 +msgid "" +"The index file is initialized with a list of all paths and, for each path, a " +"blob object and a set of attributes. The blob object represents the " +"contents of the file as of the head of the current branch. The attributes " +"(last modified time, size, etc.) are taken from the corresponding file in " +"the working tree. Subsequent changes to the working tree can be found by " +"comparing these attributes. The index may be updated with new content, and " +"new commits may be created from the content stored in the index." msgstr "" -#. type: Labeled list -#: en/config.txt:2898 -#, no-wrap -msgid "sendemail.signedoffbycc" +#. type: Plain text +#: en/git.txt:821 +msgid "" +"The index is also capable of storing multiple entries (called \"stages\") " +"for a given pathname. These stages are used to hold the various unmerged " +"version of a file when a merge is in progress." msgstr "" -#. type: Labeled list -#: en/config.txt:2899 +#. type: Title - +#: en/git.txt:823 #, no-wrap -msgid "sendemail.smtpPass" +msgid "FURTHER DOCUMENTATION" msgstr "" -#. type: Labeled list -#: en/config.txt:2900 -#, no-wrap -msgid "sendemail.suppresscc" +#. type: Plain text +#: en/git.txt:828 +msgid "" +"See the references in the \"description\" section to get started using Git. " +"The following is probably more detail than necessary for a first-time user." msgstr "" -#. type: Labeled list -#: en/config.txt:2901 -#, no-wrap -msgid "sendemail.suppressFrom" +#. type: Plain text +#: en/git.txt:832 +msgid "" +"The link:user-manual.html#git-concepts[Git concepts chapter of the user-" +"manual] and linkgit:gitcore-tutorial[7] both provide introductions to the " +"underlying Git architecture." msgstr "" -#. type: Labeled list -#: en/config.txt:2902 -#, no-wrap -msgid "sendemail.to" +#. type: Plain text +#: en/git.txt:834 +msgid "See linkgit:gitworkflows[7] for an overview of recommended workflows." msgstr "" -#. type: Labeled list -#: en/config.txt:2903 -#, no-wrap -msgid "sendemail.smtpDomain" +#. type: Plain text +#: en/git.txt:837 +msgid "" +"See also the link:howto-index.html[howto] documents for some useful examples." msgstr "" -#. type: Labeled list -#: en/config.txt:2904 -#, no-wrap -msgid "sendemail.smtpServer" +#. type: Plain text +#: en/git.txt:840 +msgid "" +"The internals are documented in the link:technical/api-index.html[Git API " +"documentation]." msgstr "" -#. type: Labeled list -#: en/config.txt:2905 -#, no-wrap -msgid "sendemail.smtpServerPort" +#. type: Plain text +#: en/git.txt:843 +msgid "" +"Users migrating from CVS may also want to read linkgit:gitcvs-migration[7]." msgstr "" -#. type: Labeled list -#: en/config.txt:2906 +#. type: Title - +#: en/git.txt:846 #, no-wrap -msgid "sendemail.smtpServerOption" +msgid "Authors" msgstr "" -#. type: Labeled list -#: en/config.txt:2907 -#, no-wrap -msgid "sendemail.smtpUser" +#. type: Plain text +#: en/git.txt:851 +msgid "" +"Git was started by Linus Torvalds, and is currently maintained by Junio C " +"Hamano. Numerous contributions have come from the Git mailing list <git@vger." +"kernel.org>. http://www.openhub.net/p/git/contributors/summary gives you a " +"more complete list of contributors." msgstr "" -#. type: Labeled list -#: en/config.txt:2908 -#, no-wrap -msgid "sendemail.thread" +#. type: Plain text +#: en/git.txt:855 +msgid "" +"If you have a clone of git.git itself, the output of linkgit:git-shortlog[1] " +"and linkgit:git-blame[1] can show you the authors for specific parts of the " +"project." msgstr "" -#. type: Labeled list -#: en/config.txt:2909 +#. type: Title - +#: en/git.txt:857 #, no-wrap -msgid "sendemail.transferEncoding" +msgid "Reporting Bugs" msgstr "" -#. type: Labeled list -#: en/config.txt:2910 -#, no-wrap -msgid "sendemail.validate" +#. type: Plain text +#: en/git.txt:864 +msgid "" +"Report bugs to the Git mailing list <git@vger.kernel.org> where the " +"development and maintenance is primarily done. You do not have to be " +"subscribed to the list to send a message there. See the list archive at " +"https://public-inbox.org/git for previous bug reports and other discussions." msgstr "" -#. type: Labeled list -#: en/config.txt:2911 -#, no-wrap -msgid "sendemail.xmailer" +#. type: Plain text +#: en/git.txt:867 +msgid "" +"Issues which are security relevant should be disclosed privately to the Git " +"Security mailing list <git-security@googlegroups.com>." msgstr "" #. type: Plain text -#: en/config.txt:2913 -msgid "See linkgit:git-send-email[1] for description." +#: en/git.txt:875 +msgid "" +"linkgit:gittutorial[7], linkgit:gittutorial-2[7], linkgit:giteveryday[7], " +"linkgit:gitcvs-migration[7], linkgit:gitglossary[7], linkgit:gitcore-" +"tutorial[7], linkgit:gitcli[7], link:user-manual.html[The Git User's " +"Manual], linkgit:gitworkflows[7]" msgstr "" -#. type: Labeled list -#: en/config.txt:2914 +#. type: Title = +#: en/git-unpack-file.txt:2 #, no-wrap -msgid "sendemail.signedoffcc (deprecated)" +msgid "git-unpack-file(1)" msgstr "" #. type: Plain text -#: en/config.txt:2916 -msgid "Deprecated alias for `sendemail.signedoffbycc`." +#: en/git-unpack-file.txt:7 +msgid "git-unpack-file - Creates a temporary file with a blob's contents" msgstr "" -#. type: Labeled list -#: en/config.txt:2917 +#. type: Plain text +#: en/git-unpack-file.txt:14 #, no-wrap -msgid "showbranch.default" +msgid "'git unpack-file' <blob>\n" msgstr "" #. type: Plain text -#: en/config.txt:2920 +#: en/git-unpack-file.txt:20 +#, no-wrap msgid "" -"The default set of branches for linkgit:git-show-branch[1]. See " -"linkgit:git-show-branch[1]." +"Creates a file holding the contents of the blob specified by sha1. It\n" +"returns the name of the temporary file in the following format:\n" +"\t.merge_file_XXXXX\n" msgstr "" -#. type: Labeled list -#: en/config.txt:2921 +#. type: Plain text +#: en/git-unpack-file.txt:25 +msgid "Must be a blob id" +msgstr "" + +#. type: Title = +#: en/git-unpack-objects.txt:2 #, no-wrap -msgid "splitIndex.maxPercentChange" +msgid "git-unpack-objects(1)" msgstr "" #. type: Plain text -#: en/config.txt:2933 -msgid "" -"When the split index feature is used, this specifies the percent of entries " -"the split index can contain compared to the total number of entries in both " -"the split index and the shared index before a new shared index is written. " -"The value should be between 0 and 100. If the value is 0 then a new shared " -"index is always written, if it is 100 a new shared index is never written. " -"By default the value is 20, so a new shared index is written if the number " -"of entries in the split index would be greater than 20 percent of the total " -"number of entries. See linkgit:git-update-index[1]." +#: en/git-unpack-objects.txt:7 +msgid "git-unpack-objects - Unpack objects from a packed archive" msgstr "" -#. type: Labeled list -#: en/config.txt:2934 +#. type: Plain text +#: en/git-unpack-objects.txt:13 #, no-wrap -msgid "splitIndex.sharedIndexExpire" +msgid "'git unpack-objects' [-n] [-q] [-r] [--strict]\n" msgstr "" #. type: Plain text -#: en/config.txt:2945 +#: en/git-unpack-objects.txt:20 msgid "" -"When the split index feature is used, shared index files that were not " -"modified since the time this variable specifies will be removed when a new " -"shared index file is created. The value \"now\" expires all entries " -"immediately, and \"never\" suppresses expiration altogether. The default " -"value is \"2.weeks.ago\". Note that a shared index file is considered " -"modified (for the purpose of expiration) each time a new split-index file is " -"either created based on it or read from it. See " -"linkgit:git-update-index[1]." +"Read a packed archive (.pack) from the standard input, expanding the objects " +"contained within and writing them into the repository in \"loose\" (one " +"object per file) format." msgstr "" -#. type: Labeled list -#: en/config.txt:2946 -#, no-wrap -msgid "status.relativePaths" +#. type: Plain text +#: en/git-unpack-objects.txt:24 +msgid "" +"Objects that already exist in the repository will *not* be unpacked from the " +"packfile. Therefore, nothing will be unpacked if you use this command on a " +"packfile that exists within the target repository." msgstr "" #. type: Plain text -#: en/config.txt:2951 +#: en/git-unpack-objects.txt:27 msgid "" -"By default, linkgit:git-status[1] shows paths relative to the current " -"directory. Setting this variable to `false` shows paths relative to the " -"repository root (this was the default for Git prior to v1.5.4)." +"See linkgit:git-repack[1] for options to generate new packs and replace " +"existing ones." msgstr "" -#. type: Labeled list -#: en/config.txt:2952 -#, no-wrap -msgid "status.short" +#. type: Plain text +#: en/git-unpack-objects.txt:32 +msgid "Dry run. Check the pack file without actually unpacking" msgstr "" #. type: Plain text -#: en/config.txt:2955 -msgid "" -"Set to true to enable --short by default in linkgit:git-status[1]. The " -"option --no-short takes precedence over this variable." +#: en/git-unpack-objects.txt:33 +msgid "the objects." msgstr "" -#. type: Labeled list -#: en/config.txt:2956 -#, no-wrap -msgid "status.branch" +#. type: Plain text +#: en/git-unpack-objects.txt:37 +msgid "" +"The command usually shows percentage progress. This flag suppresses it." msgstr "" #. type: Plain text -#: en/config.txt:2959 +#: en/git-unpack-objects.txt:43 msgid "" -"Set to true to enable --branch by default in linkgit:git-status[1]. The " -"option --no-branch takes precedence over this variable." +"When unpacking a corrupt packfile, the command dies at the first " +"corruption. This flag tells it to keep going and make the best effort to " +"recover as many objects as possible." msgstr "" -#. type: Labeled list -#: en/config.txt:2960 +#. type: Plain text +#: en/git-unpack-objects.txt:46 +msgid "Don't write objects with broken content or links." +msgstr "" + +#. type: Title = +#: en/git-update-index.txt:2 #, no-wrap -msgid "status.displayCommentPrefix" +msgid "git-update-index(1)" msgstr "" #. type: Plain text -#: en/config.txt:2966 +#: en/git-update-index.txt:7 msgid "" -"If set to true, linkgit:git-status[1] will insert a comment prefix before " -"each output line (starting with `core.commentChar`, i.e. `#` by " -"default). This was the behavior of linkgit:git-status[1] in Git 1.8.4 and " -"previous. Defaults to false." -msgstr "" - -#. type: Labeled list -#: en/config.txt:2967 -#, no-wrap -msgid "status.showUntrackedFiles" +"git-update-index - Register file contents in the working tree to the index" msgstr "" #. type: Plain text -#: en/config.txt:2975 +#: en/git-update-index.txt:29 +#, no-wrap msgid "" -"By default, linkgit:git-status[1] and linkgit:git-commit[1] show files which " -"are not currently tracked by Git. Directories which contain only untracked " -"files, are shown with the directory name only. Showing untracked files means " -"that Git needs to lstat() all the files in the whole repository, which might " -"be slow on some systems. So, this variable controls how the commands " -"displays the untracked files. Possible values are:" +"'git update-index'\n" +"\t [--add] [--remove | --force-remove] [--replace]\n" +"\t [--refresh] [-q] [--unmerged] [--ignore-missing]\n" +"\t [(--cacheinfo <mode>,<object>,<file>)...]\n" +"\t [--chmod=(+|-)x]\n" +"\t [--[no-]assume-unchanged]\n" +"\t [--[no-]skip-worktree]\n" +"\t [--[no-]fsmonitor-valid]\n" +"\t [--ignore-submodules]\n" +"\t [--[no-]split-index]\n" +"\t [--[no-|test-|force-]untracked-cache]\n" +"\t [--[no-]fsmonitor]\n" +"\t [--really-refresh] [--unresolve] [--again | -g]\n" +"\t [--info-only] [--index-info]\n" +"\t [-z] [--stdin] [--index-version <n>]\n" +"\t [--verbose]\n" +"\t [--] [<file>...]\n" msgstr "" #. type: Plain text -#: en/config.txt:2978 -msgid "`no` - Show no untracked files." +#: en/git-update-index.txt:35 +msgid "" +"Modifies the index or directory cache. Each file mentioned is updated into " +"the index and any 'unmerged' or 'needs updating' state is cleared." msgstr "" #. type: Plain text -#: en/config.txt:2979 -msgid "`normal` - Show untracked files and directories." +#: en/git-update-index.txt:38 +msgid "" +"See also linkgit:git-add[1] for a more user-friendly way to do some of the " +"most common operations on the index." msgstr "" #. type: Plain text -#: en/config.txt:2980 -msgid "`all` - Show also individual files in untracked directories." +#: en/git-update-index.txt:41 +msgid "" +"The way 'git update-index' handles files it is told about can be modified " +"using the various options:" msgstr "" #. type: Plain text -#: en/config.txt:2985 +#: en/git-update-index.txt:48 msgid "" -"If this variable is not specified, it defaults to 'normal'. This variable " -"can be overridden with the -u|--untracked-files option of " -"linkgit:git-status[1] and linkgit:git-commit[1]." +"If a specified file isn't in the index already then it's added. Default " +"behaviour is to ignore new files." msgstr "" #. type: Labeled list -#: en/config.txt:2986 +#: en/git-update-index.txt:49 #, no-wrap -msgid "status.submoduleSummary" +msgid "--remove" msgstr "" #. type: Plain text -#: en/config.txt:3001 +#: en/git-update-index.txt:53 msgid "" -"Defaults to false. If this is set to a non zero number or true (identical " -"to -1 or an unlimited number), the submodule summary will be enabled and a " -"summary of commits for modified submodules will be shown (see " -"--summary-limit option of linkgit:git-submodule[1]). Please note that the " -"summary output command will be suppressed for all submodules when " -"`diff.ignoreSubmodules` is set to 'all' or only for those submodules where " -"`submodule.<name>.ignore=all`. The only exception to that rule is that " -"status and commit will show staged submodule changes. To also view the " -"summary for ignored submodules you can either use the " -"--ignore-submodules=dirty command-line option or the 'git submodule summary' " -"command, which shows a similar output but does not honor these settings." +"If a specified file is in the index but is missing then it's removed. " +"Default behavior is to ignore removed file." msgstr "" -#. type: Labeled list -#: en/config.txt:3002 -#, no-wrap -msgid "stash.showPatch" +#. type: Plain text +#: en/git-update-index.txt:57 +msgid "" +"Looks at the current index and checks to see if merges or updates are needed " +"by checking stat() information." msgstr "" #. type: Plain text -#: en/config.txt:3006 +#: en/git-update-index.txt:61 msgid "" -"If this is set to true, the `git stash show` command without an option will " -"show the stash in patch form. Defaults to false. See description of 'show' " -"command in linkgit:git-stash[1]." +"Quiet. If --refresh finds that the index needs an update, the default " +"behavior is to error out. This option makes" +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:62 +msgid "'git update-index' continue anyway." msgstr "" #. type: Labeled list -#: en/config.txt:3007 +#: en/git-update-index.txt:63 #, no-wrap -msgid "stash.showStat" +msgid "--ignore-submodules" msgstr "" #. type: Plain text -#: en/config.txt:3011 +#: en/git-update-index.txt:66 msgid "" -"If this is set to true, the `git stash show` command without an option will " -"show diffstat of the stash. Defaults to true. See description of 'show' " -"command in linkgit:git-stash[1]." +"Do not try to update submodules. This option is only respected when passed " +"before --refresh." msgstr "" -#. type: Labeled list -#: en/config.txt:3012 +#. type: Plain text +#: en/git-update-index.txt:69 +msgid "If --refresh finds unmerged changes in the index, the default" +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:70 +msgid "behavior is to error out. This option makes 'git update-index'" +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:71 #, no-wrap -msgid "submodule.<name>.url" +msgid "continue anyway.\n" msgstr "" #. type: Plain text -#: en/config.txt:3019 -msgid "" -"The URL for a submodule. This variable is copied from the .gitmodules file " -"to the git config via 'git submodule init'. The user can change the " -"configured URL before obtaining the submodule via 'git submodule " -"update'. After obtaining the submodule, the presence of this variable is " -"used as a sign whether the submodule is of interest to git commands. See " -"linkgit:git-submodule[1] and linkgit:gitmodules[5] for details." +#: en/git-update-index.txt:74 +msgid "Ignores missing files during a --refresh" +msgstr "" + +#. type: Labeled list +#: en/git-update-index.txt:75 +#, no-wrap +msgid "--cacheinfo <mode>,<object>,<path>" msgstr "" #. type: Labeled list -#: en/config.txt:3020 +#: en/git-update-index.txt:76 #, no-wrap -msgid "submodule.<name>.update" +msgid "--cacheinfo <mode> <object> <path>" msgstr "" #. type: Plain text -#: en/config.txt:3025 +#: en/git-update-index.txt:81 msgid "" -"The default update procedure for a submodule. This variable is populated by " -"`git submodule init` from the linkgit:gitmodules[5] file. See description of " -"'update' command in linkgit:git-submodule[1]." +"Directly insert the specified info into the index. For backward " +"compatibility, you can also give these three arguments as three separate " +"parameters, but new users are encouraged to use a single-parameter form." msgstr "" #. type: Labeled list -#: en/config.txt:3026 +#: en/git-update-index.txt:82 #, no-wrap -msgid "submodule.<name>.branch" +msgid "--index-info" msgstr "" #. type: Plain text -#: en/config.txt:3031 -msgid "" -"The remote branch name for a submodule, used by `git submodule update " -"--remote`. Set this option to override the value found in the `.gitmodules` " -"file. See linkgit:git-submodule[1] and linkgit:gitmodules[5] for details." +#: en/git-update-index.txt:84 +msgid "Read index information from stdin." +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:87 +msgid "Set the execute permissions on the updated files." msgstr "" #. type: Labeled list -#: en/config.txt:3032 +#: en/git-update-index.txt:88 #, no-wrap -msgid "submodule.<name>.fetchRecurseSubmodules" +msgid "--[no-]assume-unchanged" +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:100 +msgid "" +"When this flag is specified, the object names recorded for the paths are not " +"updated. Instead, this option sets/unsets the \"assume unchanged\" bit for " +"the paths. When the \"assume unchanged\" bit is on, the user promises not " +"to change the file and allows Git to assume that the working tree file " +"matches what is recorded in the index. If you want to change the working " +"tree file, you need to unset the bit to tell Git. This is sometimes helpful " +"when working with a big project on a filesystem that has very slow lstat(2) " +"system call (e.g. cifs)." msgstr "" #. type: Plain text -#: en/config.txt:3038 +#: en/git-update-index.txt:105 msgid "" -"This option can be used to control recursive fetching of this submodule. It " -"can be overridden by using the --[no-]recurse-submodules command-line option " -"to \"git fetch\" and \"git pull\". This setting will override that from in " -"the linkgit:gitmodules[5] file." +"Git will fail (gracefully) in case it needs to modify this file in the index " +"e.g. when merging in a commit; thus, in case the assumed-untracked file is " +"changed upstream, you will need to handle the situation manually." msgstr "" #. type: Labeled list -#: en/config.txt:3039 +#: en/git-update-index.txt:106 #, no-wrap -msgid "submodule.<name>.ignore" +msgid "--really-refresh" msgstr "" #. type: Plain text -#: en/config.txt:3054 +#: en/git-update-index.txt:109 msgid "" -"Defines under what circumstances \"git status\" and the diff family show a " -"submodule as modified. When set to \"all\", it will never be considered " -"modified (but it will nonetheless show up in the output of status and commit " -"when it has been staged), \"dirty\" will ignore all changes to the " -"submodules work tree and takes only differences between the HEAD of the " -"submodule and the commit recorded in the superproject into " -"account. \"untracked\" will additionally let submodules with modified " -"tracked files in their work tree show up. Using \"none\" (the default when " -"this option is not set) also shows submodules that have untracked files in " -"their work tree as changed. This setting overrides any setting made in " -".gitmodules for this submodule, both settings can be overridden on the " -"command line by using the \"--ignore-submodules\" option. The 'git " -"submodule' commands are not affected by this setting." +"Like `--refresh`, but checks stat information unconditionally, without " +"regard to the \"assume unchanged\" setting." msgstr "" #. type: Labeled list -#: en/config.txt:3055 +#: en/git-update-index.txt:110 #, no-wrap -msgid "submodule.fetchJobs" +msgid "--[no-]skip-worktree" msgstr "" #. type: Plain text -#: en/config.txt:3060 +#: en/git-update-index.txt:115 msgid "" -"Specifies how many submodules are fetched/cloned at the same time. A " -"positive integer allows up to that number of submodules fetched in " -"parallel. A value of 0 will give some reasonable default. If unset, it " -"defaults to 1." +"When one of these flags is specified, the object name recorded for the paths " +"are not updated. Instead, these options set and unset the \"skip-worktree\" " +"bit for the paths. See section \"Skip-worktree bit\" below for more " +"information." msgstr "" #. type: Labeled list -#: en/config.txt:3061 +#: en/git-update-index.txt:116 #, no-wrap -msgid "submodule.alternateLocation" +msgid "--[no-]fsmonitor-valid" msgstr "" #. type: Plain text -#: en/config.txt:3067 +#: en/git-update-index.txt:121 msgid "" -"Specifies how the submodules obtain alternates when submodules are " -"cloned. Possible values are `no`, `superproject`. By default `no` is " -"assumed, which doesn't add references. When the value is set to " -"`superproject` the submodule to be cloned computes its alternates location " -"relative to the superprojects alternate." +"When one of these flags is specified, the object name recorded for the paths " +"are not updated. Instead, these options set and unset the \"fsmonitor valid" +"\" bit for the paths. See section \"File System Monitor\" below for more " +"information." msgstr "" #. type: Labeled list -#: en/config.txt:3068 +#: en/git-update-index.txt:123 #, no-wrap -msgid "submodule.alternateErrorStrategy" +msgid "--again" msgstr "" #. type: Plain text -#: en/config.txt:3072 +#: en/git-update-index.txt:126 msgid "" -"Specifies how to treat errors with the alternates for a submodule as " -"computed via `submodule.alternateLocation`. Possible values are `ignore`, " -"`info`, `die`. Default is `die`." +"Runs 'git update-index' itself on the paths whose index entries are " +"different from those from the `HEAD` commit." msgstr "" #. type: Labeled list -#: en/config.txt:3073 +#: en/git-update-index.txt:127 #, no-wrap -msgid "tag.forceSignAnnotated" +msgid "--unresolve" msgstr "" #. type: Plain text -#: en/config.txt:3077 +#: en/git-update-index.txt:130 msgid "" -"A boolean to specify whether annotated tags created should be GPG signed. " -"If `--annotate` is specified on the command line, it takes precedence over " -"this option." +"Restores the 'unmerged' or 'needs updating' state of a file during a merge " +"if it was cleared by accident." msgstr "" #. type: Labeled list -#: en/config.txt:3078 +#: en/git-update-index.txt:131 #, no-wrap -msgid "tag.sort" +msgid "--info-only" msgstr "" #. type: Plain text -#: en/config.txt:3082 +#: en/git-update-index.txt:135 msgid "" -"This variable controls the sort ordering of tags when displayed by " -"linkgit:git-tag[1]. Without the \"--sort=<value>\" option provided, the " -"value of this variable will be used as the default." +"Do not create objects in the object database for all <file> arguments that " +"follow this flag; just insert their object IDs into the index." +msgstr "" + +#. type: Labeled list +#: en/git-update-index.txt:136 +#, no-wrap +msgid "--force-remove" msgstr "" #. type: Plain text -#: en/config.txt:3089 +#: en/git-update-index.txt:139 msgid "" -"This variable can be used to restrict the permission bits of tar archive " -"entries. The default is 0002, which turns off the world write bit. The " -"special value \"user\" indicates that the archiving user's umask will be " -"used instead. See umask(2) and linkgit:git-archive[1]." +"Remove the file from the index even when the working directory still has " +"such a file. (Implies --remove.)" msgstr "" #. type: Labeled list -#: en/config.txt:3090 +#: en/git-update-index.txt:140 #, no-wrap -msgid "transfer.fsckObjects" +msgid "--replace" msgstr "" #. type: Plain text -#: en/config.txt:3094 +#: en/git-update-index.txt:147 msgid "" -"When `fetch.fsckObjects` or `receive.fsckObjects` are not set, the value of " -"this variable is used instead. Defaults to false." +"By default, when a file `path` exists in the index, 'git update-index' " +"refuses an attempt to add `path/file`. Similarly if a file `path/file` " +"exists, a file `path` cannot be added. With --replace flag, existing " +"entries that conflict with the entry being added are automatically removed " +"with warning messages." +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:155 +msgid "Report what is being added and removed from index." msgstr "" #. type: Labeled list -#: en/config.txt:3095 +#: en/git-update-index.txt:156 #, no-wrap -msgid "transfer.hideRefs" +msgid "--index-version <n>" msgstr "" #. type: Plain text -#: en/config.txt:3103 +#: en/git-update-index.txt:161 msgid "" -"String(s) `receive-pack` and `upload-pack` use to decide which refs to omit " -"from their initial advertisements. Use more than one definition to specify " -"multiple prefix strings. A ref that is under the hierarchies listed in the " -"value of this variable is excluded, and is hidden when responding to `git " -"push` or `git fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for " -"program-specific versions of this config." +"Write the resulting index out in the named on-disk format version. " +"Supported versions are 2, 3 and 4. The current default version is 2 or 3, " +"depending on whether extra features are used, such as `git add -N`." msgstr "" #. type: Plain text -#: en/config.txt:3108 +#: en/git-update-index.txt:167 msgid "" -"You may also include a `!` in front of the ref name to negate the entry, " -"explicitly exposing it, even if an earlier entry marked it as hidden. If " -"you have multiple hideRefs values, later entries override earlier ones (and " -"entries in more-specific config files override less-specific ones)." +"Version 4 performs a simple pathname compression that reduces index size by " +"30%-50% on large repositories, which results in faster load time. Version 4 " +"is relatively young (first released in 1.8.0 in October 2012). Other Git " +"implementations such as JGit and libgit2 may not support it yet." msgstr "" #. type: Plain text -#: en/config.txt:3117 +#: en/git-update-index.txt:171 msgid "" -"If a namespace is in use, the namespace prefix is stripped from each " -"reference before it is matched against `transfer.hiderefs` patterns. For " -"example, if `refs/heads/master` is specified in `transfer.hideRefs` and the " -"current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master` is " -"omitted from the advertisements but `refs/heads/master` and " -"`refs/namespaces/bar/refs/heads/master` are still advertised as so-called " -"\"have\" lines. In order to match refs before stripping, add a `^` in front " -"of the ref name. If you combine `!` and `^`, `!` must be specified first." +"Only meaningful with `--stdin` or `--index-info`; paths are separated with " +"NUL character instead of LF." msgstr "" -#. type: Plain text -#: en/config.txt:3122 -msgid "" -"Even if you hide refs, a client may still be able to steal the target " -"objects via the techniques described in the \"SECURITY\" section of the " -"linkgit:gitnamespaces[7] man page; it's best to keep private data in a " -"separate repository." +#. type: Labeled list +#: en/git-update-index.txt:172 +#, no-wrap +msgid "--split-index" msgstr "" #. type: Labeled list -#: en/config.txt:3123 +#: en/git-update-index.txt:173 #, no-wrap -msgid "transfer.unpackLimit" +msgid "--no-split-index" msgstr "" #. type: Plain text -#: en/config.txt:3127 +#: en/git-update-index.txt:178 msgid "" -"When `fetch.unpackLimit` or `receive.unpackLimit` are not set, the value of " -"this variable is used instead. The default value is 100." -msgstr "" - -#. type: Labeled list -#: en/config.txt:3128 -#, no-wrap -msgid "uploadarchive.allowUnreachable" +"Enable or disable split index mode. If split-index mode is already enabled " +"and `--split-index` is given again, all changes in $GIT_DIR/index are pushed " +"back to the shared index file." msgstr "" #. type: Plain text -#: en/config.txt:3134 +#: en/git-update-index.txt:184 msgid "" -"If true, allow clients to use `git archive --remote` to request any tree, " -"whether reachable from the ref tips or not. See the discussion in the " -"\"SECURITY\" section of linkgit:git-upload-archive[1] for more " -"details. Defaults to `false`." +"These options take effect whatever the value of the `core.splitIndex` " +"configuration variable (see linkgit:git-config[1]). But a warning is emitted " +"when the change goes against the configured value, as the configured value " +"will take effect next time the index is read and this will remove the " +"intended effect of the option." msgstr "" #. type: Labeled list -#: en/config.txt:3135 +#: en/git-update-index.txt:185 #, no-wrap -msgid "uploadpack.hideRefs" -msgstr "" - -#. type: Plain text -#: en/config.txt:3140 -msgid "" -"This variable is the same as `transfer.hideRefs`, but applies only to " -"`upload-pack` (and so affects only fetches, not pushes). An attempt to " -"fetch a hidden ref by `git fetch` will fail. See also " -"`uploadpack.allowTipSHA1InWant`." +msgid "--untracked-cache" msgstr "" #. type: Labeled list -#: en/config.txt:3141 +#: en/git-update-index.txt:186 #, no-wrap -msgid "uploadpack.allowTipSHA1InWant" +msgid "--no-untracked-cache" msgstr "" #. type: Plain text -#: en/config.txt:3149 +#: en/git-update-index.txt:189 msgid "" -"When `uploadpack.hideRefs` is in effect, allow `upload-pack` to accept a " -"fetch request that asks for an object at the tip of a hidden ref (by " -"default, such a request is rejected). See also `uploadpack.hideRefs`. Even " -"if this is false, a client may be able to steal objects via the techniques " -"described in the \"SECURITY\" section of the linkgit:gitnamespaces[7] man " -"page; it's best to keep private data in a separate repository." -msgstr "" - -#. type: Labeled list -#: en/config.txt:3150 -#, no-wrap -msgid "uploadpack.allowReachableSHA1InWant" +"Enable or disable untracked cache feature. Please use `--test-untracked-" +"cache` before enabling it." msgstr "" #. type: Plain text -#: en/config.txt:3158 +#: en/git-update-index.txt:195 msgid "" -"Allow `upload-pack` to accept a fetch request that asks for an object that " -"is reachable from any ref tip. However, note that calculating object " -"reachability is computationally expensive. Defaults to `false`. Even if " -"this is false, a client may be able to steal objects via the techniques " -"described in the \"SECURITY\" section of the linkgit:gitnamespaces[7] man " -"page; it's best to keep private data in a separate repository." +"These options take effect whatever the value of the `core.untrackedCache` " +"configuration variable (see linkgit:git-config[1]). But a warning is emitted " +"when the change goes against the configured value, as the configured value " +"will take effect next time the index is read and this will remove the " +"intended effect of the option." msgstr "" #. type: Labeled list -#: en/config.txt:3159 +#: en/git-update-index.txt:196 #, no-wrap -msgid "uploadpack.allowAnySHA1InWant" +msgid "--test-untracked-cache" msgstr "" #. type: Plain text -#: en/config.txt:3163 +#: en/git-update-index.txt:205 msgid "" -"Allow `upload-pack` to accept a fetch request that asks for any object at " -"all. Defaults to `false`." +"Only perform tests on the working directory to make sure untracked cache can " +"be used. You have to manually enable untracked cache using `--untracked-" +"cache` or `--force-untracked-cache` or the `core.untrackedCache` " +"configuration variable afterwards if you really want to use it. If a test " +"fails the exit code is 1 and a message explains what is not working as " +"needed, otherwise the exit code is 0 and OK is printed." msgstr "" #. type: Labeled list -#: en/config.txt:3164 +#: en/git-update-index.txt:206 #, no-wrap -msgid "uploadpack.keepAlive" +msgid "--force-untracked-cache" msgstr "" #. type: Plain text -#: en/config.txt:3174 +#: en/git-update-index.txt:211 msgid "" -"When `upload-pack` has started `pack-objects`, there may be a quiet period " -"while `pack-objects` prepares the pack. Normally it would output progress " -"information, but if `--quiet` was used for the fetch, `pack-objects` will " -"output nothing at all until the pack data begins. Some clients and networks " -"may consider the server to be hung and give up. Setting this option " -"instructs `upload-pack` to send an empty keepalive packet every " -"`uploadpack.keepAlive` seconds. Setting this option to 0 disables keepalive " -"packets entirely. The default is 5 seconds." +"Same as `--untracked-cache`. Provided for backwards compatibility with older " +"versions of Git where `--untracked-cache` used to imply `--test-untracked-" +"cache` but this option would enable the extension unconditionally." +msgstr "" + +#. type: Labeled list +#: en/git-update-index.txt:212 +#, no-wrap +msgid "--fsmonitor" msgstr "" #. type: Labeled list -#: en/config.txt:3175 +#: en/git-update-index.txt:213 #, no-wrap -msgid "uploadpack.packObjectsHook" +msgid "--no-fsmonitor" msgstr "" #. type: Plain text -#: en/config.txt:3185 +#: en/git-update-index.txt:220 msgid "" -"If this option is set, when `upload-pack` would run `git pack-objects` to " -"create a packfile for a client, it will run this shell command instead. The " -"`pack-objects` command and arguments it _would_ have run (including the `git " -"pack-objects` at the beginning) are appended to the shell command. The stdin " -"and stdout of the hook are treated as if `pack-objects` itself was " -"run. I.e., `upload-pack` will feed input intended for `pack-objects` to the " -"hook, and expects a completed packfile on stdout." +"Enable or disable files system monitor feature. These options take effect " +"whatever the value of the `core.fsmonitor` configuration variable (see " +"linkgit:git-config[1]). But a warning is emitted when the change goes " +"against the configured value, as the configured value will take effect next " +"time the index is read and this will remove the intended effect of the " +"option." msgstr "" #. type: Plain text -#: en/config.txt:3189 +#: en/git-update-index.txt:230 msgid "" -"Note that this configuration variable is ignored if it is seen in the " -"repository-level config (this is a safety measure against fetching from " -"untrusted repositories)." +"Files to act on. Note that files beginning with '.' are discarded. This " +"includes `./file` and `dir/./file`. If you don't want this, then use cleaner " +"names. The same applies to directories ending '/' and paths with '//'" msgstr "" -#. type: Labeled list -#: en/config.txt:3190 +#. type: Title - +#: en/git-update-index.txt:232 #, no-wrap -msgid "url.<base>.insteadOf" +msgid "USING --REFRESH" msgstr "" #. type: Plain text -#: en/config.txt:3200 +#: en/git-update-index.txt:238 msgid "" -"Any URL that starts with this value will be rewritten to start, instead, " -"with <base>. In cases where some site serves a large number of repositories, " -"and serves them with multiple access methods, and some users need to use " -"different access methods, this feature allows people to specify any of the " -"equivalent URLs and have Git automatically rewrite the URL to the best " -"alternative for the particular user, even for a never-before-seen repository " -"on the site. When more than one insteadOf strings match a given URL, the " -"longest match is used." -msgstr "" - -#. type: Labeled list -#: en/config.txt:3201 -#, no-wrap -msgid "url.<base>.pushInsteadOf" +"`--refresh` does not calculate a new sha1 file or bring the index up to date " +"for mode/content changes. But what it *does* do is to \"re-match\" the stat " +"information of a file with the index, so that you can refresh the index for " +"a file that hasn't been changed but where the stat entry is out of date." msgstr "" #. type: Plain text -#: en/config.txt:3213 +#: en/git-update-index.txt:241 msgid "" -"Any URL that starts with this value will not be pushed to; instead, it will " -"be rewritten to start with <base>, and the resulting URL will be pushed " -"to. In cases where some site serves a large number of repositories, and " -"serves them with multiple access methods, some of which do not allow push, " -"this feature allows people to specify a pull-only URL and have Git " -"automatically use an appropriate URL to push, even for a never-before-seen " -"repository on the site. When more than one pushInsteadOf strings match a " -"given URL, the longest match is used. If a remote has an explicit pushurl, " -"Git will ignore this setting for that remote." +"For example, you'd want to do this after doing a 'git read-tree', to link up " +"the stat index details with the proper files." msgstr "" -#. type: Labeled list -#: en/config.txt:3214 +#. type: Title - +#: en/git-update-index.txt:243 #, no-wrap -msgid "user.email" +msgid "USING --CACHEINFO OR --INFO-ONLY" msgstr "" #. type: Plain text -#: en/config.txt:3218 +#: en/git-update-index.txt:247 msgid "" -"Your email address to be recorded in any newly created commits. Can be " -"overridden by the `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_EMAIL`, and `EMAIL` " -"environment variables. See linkgit:git-commit-tree[1]." +"`--cacheinfo` is used to register a file that is not in the current working " +"directory. This is useful for minimum-checkout merging." msgstr "" -#. type: Labeled list -#: en/config.txt:3219 +#. type: Plain text +#: en/git-update-index.txt:249 +msgid "To pretend you have a file at path with mode and sha1, say:" +msgstr "" + +#. type: delimited block - +#: en/git-update-index.txt:252 #, no-wrap -msgid "user.name" +msgid "$ git update-index --add --cacheinfo <mode>,<sha1>,<path>\n" msgstr "" #. type: Plain text -#: en/config.txt:3223 +#: en/git-update-index.txt:256 msgid "" -"Your full name to be recorded in any newly created commits. Can be " -"overridden by the `GIT_AUTHOR_NAME` and `GIT_COMMITTER_NAME` environment " -"variables. See linkgit:git-commit-tree[1]." +"`--info-only` is used to register files without placing them in the object " +"database. This is useful for status-only repositories." msgstr "" -#. type: Labeled list -#: en/config.txt:3224 +#. type: Plain text +#: en/git-update-index.txt:262 +msgid "" +"Both `--cacheinfo` and `--info-only` behave similarly: the index is updated " +"but the object database isn't. `--cacheinfo` is useful when the object is " +"in the database but the file isn't available locally. `--info-only` is " +"useful when the file is available, but you do not wish to update the object " +"database." +msgstr "" + +#. type: Title - +#: en/git-update-index.txt:265 #, no-wrap -msgid "user.useConfigOnly" +msgid "USING --INDEX-INFO" msgstr "" #. type: Plain text -#: en/config.txt:3233 +#: en/git-update-index.txt:270 msgid "" -"Instruct Git to avoid trying to guess defaults for `user.email` and " -"`user.name`, and instead retrieve the values only from the " -"configuration. For example, if you have multiple email addresses and would " -"like to use a different one for each repository, then with this " -"configuration option set to `true` in the global config along with a name, " -"Git will prompt you to set up an email before making new commits in a newly " -"cloned repository. Defaults to `false`." +"`--index-info` is a more powerful mechanism that lets you feed multiple " +"entry definitions from the standard input, and designed specifically for " +"scripts. It can take inputs of three formats:" msgstr "" -#. type: Labeled list -#: en/config.txt:3234 +#. type: Plain text +#: en/git-update-index.txt:272 #, no-wrap -msgid "user.signingKey" +msgid "mode SP type SP sha1 TAB path\n" msgstr "" #. type: Plain text -#: en/config.txt:3240 -msgid "" -"If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the key you " -"want it to automatically when creating a signed tag or commit, you can " -"override the default selection with this variable. This option is passed " -"unchanged to gpg's --local-user parameter, so you may specify a key using " -"any method that gpg supports." +#: en/git-update-index.txt:274 +msgid "This format is to stuff `git ls-tree` output into the index." msgstr "" -#. type: Labeled list -#: en/config.txt:3241 +#. type: Plain text +#: en/git-update-index.txt:276 #, no-wrap -msgid "versionsort.prereleaseSuffix (deprecated)" +msgid "mode SP sha1 SP stage TAB path\n" msgstr "" #. type: Plain text -#: en/config.txt:3244 +#: en/git-update-index.txt:279 msgid "" -"Deprecated alias for `versionsort.suffix`. Ignored if `versionsort.suffix` " -"is set." +"This format is to put higher order stages into the index file and matches " +"'git ls-files --stage' output." msgstr "" -#. type: Labeled list -#: en/config.txt:3245 +#. type: Plain text +#: en/git-update-index.txt:281 #, no-wrap -msgid "versionsort.suffix" +msgid "mode SP sha1 TAB path\n" msgstr "" #. type: Plain text -#: en/config.txt:3252 +#: en/git-update-index.txt:284 msgid "" -"Even when version sort is used in linkgit:git-tag[1], tagnames with the same " -"base version but different suffixes are still sorted lexicographically, " -"resulting e.g. in prerelease tags appearing after the main release " -"(e.g. \"1.0-rc1\" after \"1.0\"). This variable can be specified to " -"determine the sorting order of tags with different suffixes." +"This format is no longer produced by any Git command, but is and will " +"continue to be supported by `update-index --index-info`." msgstr "" #. type: Plain text -#: en/config.txt:3266 +#: en/git-update-index.txt:288 msgid "" -"By specifying a single suffix in this variable, any tagname containing that " -"suffix will appear before the corresponding main release. E.g. if the " -"variable is set to \"-rc\", then all \"1.0-rcX\" tags will appear before " -"\"1.0\". If specified multiple times, once per suffix, then the order of " -"suffixes in the configuration will determine the sorting order of tagnames " -"with those suffixes. E.g. if \"-pre\" appears before \"-rc\" in the " -"configuration, then all \"1.0-preX\" tags will be listed before any " -"\"1.0-rcX\" tags. The placement of the main release tag relative to tags " -"with various suffixes can be determined by specifying the empty suffix among " -"those other suffixes. E.g. if the suffixes \"-rc\", \"\", \"-ck\" and " -"\"-bfs\" appear in the configuration in this order, then all \"v4.8-rcX\" " -"tags are listed first, followed by \"v4.8\", then \"v4.8-ckX\" and finally " -"\"v4.8-bfsX\"." +"To place a higher stage entry to the index, the path should first be removed " +"by feeding a mode=0 entry for the path, and then feeding necessary input " +"lines in the third format." msgstr "" #. type: Plain text -#: en/config.txt:3274 -msgid "" -"If more than one suffixes match the same tagname, then that tagname will be " -"sorted according to the suffix which starts at the earliest position in the " -"tagname. If more than one different matching suffixes start at that " -"earliest position, then that tagname will be sorted according to the longest " -"of those suffixes. The sorting order between different suffixes is " -"undefined if they are in multiple config files." +#: en/git-update-index.txt:290 +msgid "For example, starting with this index:" msgstr "" -#. type: Labeled list -#: en/config.txt:3275 +#. type: delimited block - +#: en/git-update-index.txt:294 #, no-wrap -msgid "web.browser" +msgid "" +"$ git ls-files -s\n" +"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz\n" msgstr "" #. type: Plain text -#: en/config.txt:3278 -msgid "" -"Specify a web browser that may be used by some commands. Currently only " -"linkgit:git-instaweb[1] and linkgit:git-help[1] may use it." +#: en/git-update-index.txt:297 +msgid "you can feed the following input to `--index-info`:" msgstr "" -#. type: Title - -#: en/date-formats.txt:2 +#. type: delimited block - +#: en/git-update-index.txt:303 #, no-wrap -msgid "DATE FORMATS" -msgstr "" - -#. type: Plain text -#: en/date-formats.txt:5 -msgid "The `GIT_AUTHOR_DATE`, `GIT_COMMITTER_DATE` environment variables" +msgid "" +"$ git update-index --index-info\n" +"0 0000000000000000000000000000000000000000\tfrotz\n" +"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1\tfrotz\n" +"100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2\tfrotz\n" msgstr "" #. type: Plain text -#: en/date-formats.txt:7 -msgid "and the `--date` option" +#: en/git-update-index.txt:309 +msgid "" +"The first line of the input feeds 0 as the mode to remove the path; the " +"SHA-1 does not matter as long as it is well formatted. Then the second and " +"third line feeds stage 1 and stage 2 entries for that path. After the " +"above, we would end up with this:" msgstr "" -#. type: Plain text -#: en/date-formats.txt:9 -msgid "support the following date formats:" +#. type: delimited block - +#: en/git-update-index.txt:314 +#, no-wrap +msgid "" +"$ git ls-files -s\n" +"100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1\tfrotz\n" +"100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2\tfrotz\n" msgstr "" -#. type: Labeled list -#: en/date-formats.txt:10 +#. type: Title - +#: en/git-update-index.txt:318 #, no-wrap -msgid "Git internal format" +msgid "USING ``ASSUME UNCHANGED'' BIT" msgstr "" #. type: Plain text -#: en/date-formats.txt:15 +#: en/git-update-index.txt:333 msgid "" -"It is `<unix timestamp> <time zone offset>`, where `<unix timestamp>` is the " -"number of seconds since the UNIX epoch. `<time zone offset>` is a positive " -"or negative offset from UTC. For example CET (which is 1 hour ahead of UTC) " -"is `+0100`." +"Many operations in Git depend on your filesystem to have an efficient " +"`lstat(2)` implementation, so that `st_mtime` information for working tree " +"files can be cheaply checked to see if the file contents have changed from " +"the version recorded in the index file. Unfortunately, some filesystems " +"have inefficient `lstat(2)`. If your filesystem is one of them, you can set " +"\"assume unchanged\" bit to paths you have not changed to cause Git not to " +"do this check. Note that setting this bit on a path does not mean Git will " +"check the contents of the file to see if it has changed -- it makes Git to " +"omit any checking and assume it has *not* changed. When you make changes to " +"working tree files, you have to explicitly tell Git about it by dropping " +"\"assume unchanged\" bit, either before or after you modify them." msgstr "" -#. type: Labeled list -#: en/date-formats.txt:16 -#, no-wrap -msgid "RFC 2822" +#. type: Plain text +#: en/git-update-index.txt:338 +msgid "" +"In order to set \"assume unchanged\" bit, use `--assume-unchanged` option. " +"To unset, use `--no-assume-unchanged`. To see which files have the \"assume " +"unchanged\" bit set, use `git ls-files -v` (see linkgit:git-ls-files[1])." msgstr "" #. type: Plain text -#: en/date-formats.txt:19 +#: en/git-update-index.txt:348 msgid "" -"The standard email format as described by RFC 2822, for example `Thu, 07 Apr " -"2005 22:13:13 +0200`." +"The command looks at `core.ignorestat` configuration variable. When this is " +"true, paths updated with `git update-index paths...` and paths updated with " +"other Git commands that update both index and working tree (e.g. 'git apply " +"--index', 'git checkout-index -u', and 'git read-tree -u') are automatically " +"marked as \"assume unchanged\". Note that \"assume unchanged\" bit is *not* " +"set if `git update-index --refresh` finds the working tree file matches the " +"index (use `git update-index --really-refresh` if you want to mark them as " +"\"assume unchanged\")." +msgstr "" + +#. type: Plain text +#: en/git-update-index.txt:353 +msgid "To update and refresh only the files already checked out:" msgstr "" #. type: Labeled list -#: en/date-formats.txt:20 +#: en/git-update-index.txt:358 #, no-wrap -msgid "ISO 8601" +msgid "On an inefficient filesystem with `core.ignorestat` set" msgstr "" -#. type: Plain text -#: en/date-formats.txt:24 +#. type: delimited block - +#: en/git-update-index.txt:374 +#, no-wrap msgid "" -"Time and date specified by the ISO 8601 standard, for example " -"`2005-04-07T22:13:13`. The parser accepts a space instead of the `T` " -"character as well." +"$ git update-index --really-refresh <1>\n" +"$ git update-index --no-assume-unchanged foo.c <2>\n" +"$ git diff --name-only <3>\n" +"$ edit foo.c\n" +"$ git diff --name-only <4>\n" +"M foo.c\n" +"$ git update-index foo.c <5>\n" +"$ git diff --name-only <6>\n" +"$ edit foo.c\n" +"$ git diff --name-only <7>\n" +"$ git update-index --no-assume-unchanged foo.c <8>\n" +"$ git diff --name-only <9>\n" +"M foo.c\n" msgstr "" #. type: Plain text -#: en/date-formats.txt:26 +#: en/git-update-index.txt:377 msgid "" -"In addition, the date part is accepted in the following formats: " -"`YYYY.MM.DD`, `MM/DD/YYYY` and `DD.MM.YYYY`." -msgstr "" - -#. type: Title - -#: en/diff-format.txt:2 -#, no-wrap -msgid "Raw output format" +"forces lstat(2) to set \"assume unchanged\" bits for paths that match index." msgstr "" #. type: Plain text -#: en/diff-format.txt:6 -msgid "" -"The raw output format from \"git-diff-index\", \"git-diff-tree\", " -"\"git-diff-files\" and \"git diff --raw\" are very similar." +#: en/git-update-index.txt:378 +msgid "mark the path to be edited." msgstr "" #. type: Plain text -#: en/diff-format.txt:9 -msgid "These commands all compare two sets of things; what is compared differs:" +#: en/git-update-index.txt:379 +msgid "this does lstat(2) and finds index matches the path." msgstr "" -#. type: Labeled list -#: en/diff-format.txt:10 -#, no-wrap -msgid "git-diff-index <tree-ish>" +#. type: Plain text +#: en/git-update-index.txt:380 +msgid "this does lstat(2) and finds index does *not* match the path." msgstr "" #. type: Plain text -#: en/diff-format.txt:12 -msgid "compares the <tree-ish> and the files on the filesystem." +#: en/git-update-index.txt:381 +msgid "registering the new version to index sets \"assume unchanged\" bit." msgstr "" -#. type: Labeled list -#: en/diff-format.txt:13 -#, no-wrap -msgid "git-diff-index --cached <tree-ish>" +#. type: Plain text +#: en/git-update-index.txt:382 +msgid "and it is assumed unchanged." msgstr "" #. type: Plain text -#: en/diff-format.txt:15 -msgid "compares the <tree-ish> and the index." +#: en/git-update-index.txt:383 +msgid "even after you edit it." msgstr "" -#. type: Labeled list -#: en/diff-format.txt:16 -#, no-wrap -msgid "git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]" +#. type: Plain text +#: en/git-update-index.txt:384 +msgid "you can tell about the change after the fact." msgstr "" #. type: Plain text -#: en/diff-format.txt:18 -msgid "compares the trees named by the two arguments." +#: en/git-update-index.txt:385 +msgid "now it checks with lstat(2) and finds it has been changed." msgstr "" -#. type: Labeled list -#: en/diff-format.txt:19 +#. type: Title - +#: en/git-update-index.txt:388 #, no-wrap -msgid "git-diff-files [<pattern>...]" +msgid "SKIP-WORKTREE BIT" msgstr "" #. type: Plain text -#: en/diff-format.txt:21 -msgid "compares the index and the files on the filesystem." +#: en/git-update-index.txt:394 +msgid "" +"Skip-worktree bit can be defined in one (long) sentence: When reading an " +"entry, if it is marked as skip-worktree, then Git pretends its working " +"directory version is up to date and read the index version instead." msgstr "" #. type: Plain text -#: en/diff-format.txt:25 +#: en/git-update-index.txt:402 msgid "" -"The \"git-diff-tree\" command begins its output by printing the hash of what " -"is being compared. After that, all the commands print one output line per " -"changed file." +"To elaborate, \"reading\" means checking for file existence, reading file " +"attributes or file content. The working directory version may be present or " +"absent. If present, its content may match against the index version or not. " +"Writing is not affected by this bit, content safety is still first priority. " +"Note that Git _can_ update working directory file, that is marked skip-" +"worktree, if it is safe to do so (i.e. working directory version matches " +"index version)" msgstr "" #. type: Plain text -#: en/diff-format.txt:27 -msgid "An output line is formatted this way:" +#: en/git-update-index.txt:406 +msgid "" +"Although this bit looks similar to assume-unchanged bit, its goal is " +"different from assume-unchanged bit's. Skip-worktree also takes precedence " +"over assume-unchanged bit when both are set." msgstr "" -#. type: delimited block - -#: en/diff-format.txt:35 +#. type: Title - +#: en/git-update-index.txt:408 #, no-wrap -msgid "" -"in-place edit :100644 100644 bcd1234... 0123456... M file0\n" -"copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2\n" -"rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3\n" -"create :000000 100644 0000000... 1234567... A file4\n" -"delete :100644 000000 1234567... 0000000... D file5\n" -"unmerged :000000 000000 0000000... 0000000... U file6\n" +msgid "SPLIT INDEX" msgstr "" #. type: Plain text -#: en/diff-format.txt:38 -msgid "That is, from the left to the right:" +#: en/git-update-index.txt:412 +msgid "" +"This mode is designed for repositories with very large indexes, and aims at " +"reducing the time it takes to repeatedly write these indexes." msgstr "" #. type: Plain text -#: en/diff-format.txt:40 -msgid "a colon." +#: en/git-update-index.txt:417 +msgid "" +"In this mode, the index is split into two files, $GIT_DIR/index and $GIT_DIR/" +"sharedindex.<SHA-1>. Changes are accumulated in $GIT_DIR/index, the split " +"index, while the shared index file contains all index entries and stays " +"unchanged." msgstr "" #. type: Plain text -#: en/diff-format.txt:41 -msgid "mode for \"src\"; 000000 if creation or unmerged." +#: en/git-update-index.txt:422 +msgid "" +"All changes in the split index are pushed back to the shared index file when " +"the number of entries in the split index reaches a level specified by the " +"splitIndex.maxPercentChange config variable (see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/diff-format.txt:42 en/diff-format.txt:44 en/diff-format.txt:46 en/diff-format.txt:48 -msgid "a space." +#: en/git-update-index.txt:427 +msgid "" +"Each time a new shared index file is created, the old shared index files are " +"deleted if their modification time is older than what is specified by the " +"splitIndex.sharedIndexExpire config variable (see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/diff-format.txt:43 -msgid "mode for \"dst\"; 000000 if deletion or unmerged." +#: en/git-update-index.txt:431 +msgid "" +"To avoid deleting a shared index file that is still used, its modification " +"time is updated to the current time everytime a new split index based on the " +"shared index file is either created or read from." msgstr "" -#. type: Plain text -#: en/diff-format.txt:45 -msgid "sha1 for \"src\"; 0\\{40\\} if creation or unmerged." +#. type: Title - +#: en/git-update-index.txt:433 +#, no-wrap +msgid "UNTRACKED CACHE" msgstr "" #. type: Plain text -#: en/diff-format.txt:47 -msgid "sha1 for \"dst\"; 0\\{40\\} if creation, unmerged or \"look at work tree\"." +#: en/git-update-index.txt:437 +msgid "" +"This cache is meant to speed up commands that involve determining untracked " +"files such as `git status`." msgstr "" #. type: Plain text -#: en/diff-format.txt:49 -msgid "status, followed by optional \"score\" number." +#: en/git-update-index.txt:444 +msgid "" +"This feature works by recording the mtime of the working tree directories " +"and then omitting reading directories and stat calls against files in those " +"directories whose mtime hasn't changed. For this to work the underlying " +"operating system and file system must change the `st_mtime` field of " +"directories if files in the directory are added, modified or deleted." msgstr "" #. type: Plain text -#: en/diff-format.txt:50 -msgid "a tab or a NUL when `-z` option is used." +#: en/git-update-index.txt:449 +msgid "" +"You can test whether the filesystem supports that with the `--test-untracked-" +"cache` option. The `--untracked-cache` option used to implicitly perform " +"that test in older versions of Git, but that's no longer the case." msgstr "" #. type: Plain text -#: en/diff-format.txt:51 -msgid "path for \"src\"" +#: en/git-update-index.txt:457 +msgid "" +"If you want to enable (or disable) this feature, it is easier to use the " +"`core.untrackedCache` configuration variable (see linkgit:git-config[1]) " +"than using the `--untracked-cache` option to `git update-index` in each " +"repository, especially if you want to do so across all repositories you use, " +"because you can set the configuration variable to `true` (or `false`) in " +"your `$HOME/.gitconfig` just once and have it affect all repositories you " +"touch." msgstr "" #. type: Plain text -#: en/diff-format.txt:52 -msgid "a tab or a NUL when `-z` option is used; only exists for C or R." +#: en/git-update-index.txt:463 +msgid "" +"When the `core.untrackedCache` configuration variable is changed, the " +"untracked cache is added to or removed from the index the next time a " +"command reads the index; while when `--[no-|force-]untracked-cache` are " +"used, the untracked cache is immediately added to or removed from the index." msgstr "" #. type: Plain text -#: en/diff-format.txt:53 -msgid "path for \"dst\"; only exists for C or R." +#: en/git-update-index.txt:470 +msgid "" +"Before 2.17, the untracked cache had a bug where replacing a directory with " +"a symlink to another directory could cause it to incorrectly show files " +"tracked by git as untracked. See the \"status: add a failing test showing a " +"core.untrackedCache bug\" commit to git.git. A workaround for that is (and " +"this might work for other undiscovered bugs in the future):" msgstr "" -#. type: Plain text -#: en/diff-format.txt:54 -msgid "an LF or a NUL when `-z` option is used, to terminate the record." +#. type: delimited block - +#: en/git-update-index.txt:473 +#, no-wrap +msgid "$ git -c core.untrackedCache=false status\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:56 -msgid "Possible status letters are:" +#: en/git-update-index.txt:479 +msgid "" +"This bug has also been shown to affect non-symlink cases of replacing a " +"directory with a file when it comes to the internal structures of the " +"untracked cache, but no case has been reported where this resulted in wrong " +"\"git status\" output." msgstr "" #. type: Plain text -#: en/diff-format.txt:58 -msgid "A: addition of a file" +#: en/git-update-index.txt:485 +msgid "" +"There are also cases where existing indexes written by git versions before " +"2.17 will reference directories that don't exist anymore, potentially " +"causing many \"could not open directory\" warnings to be printed on \"git " +"status\". These are new warnings for existing issues that were previously " +"silently discarded." msgstr "" #. type: Plain text -#: en/diff-format.txt:59 -msgid "C: copy of a file into a new one" +#: en/git-update-index.txt:489 +msgid "" +"As with the bug described above the solution is to one-off do a \"git status" +"\" run with `core.untrackedCache=false` to flush out the leftover bad data." msgstr "" -#. type: Plain text -#: en/diff-format.txt:60 -msgid "D: deletion of a file" +#. type: Title - +#: en/git-update-index.txt:491 +#, no-wrap +msgid "FILE SYSTEM MONITOR" msgstr "" #. type: Plain text -#: en/diff-format.txt:61 -msgid "M: modification of the contents or mode of a file" +#: en/git-update-index.txt:495 +msgid "" +"This feature is intended to speed up git operations for repos that have " +"large working directories." msgstr "" #. type: Plain text -#: en/diff-format.txt:62 -msgid "R: renaming of a file" +#: en/git-update-index.txt:500 +msgid "" +"It enables git to work together with a file system monitor (see the " +"\"fsmonitor-watchman\" section of linkgit:githooks[5]) that can inform it as " +"to what files have been modified. This enables git to avoid having to " +"lstat() every file to find modified files." msgstr "" #. type: Plain text -#: en/diff-format.txt:63 -msgid "T: change in the type of the file" +#: en/git-update-index.txt:504 +msgid "" +"When used in conjunction with the untracked cache, it can further improve " +"performance by avoiding the cost of scanning the entire working directory " +"looking for new files." msgstr "" #. type: Plain text -#: en/diff-format.txt:65 -msgid "U: file is unmerged (you must complete the merge before it can be committed)" +#: en/git-update-index.txt:512 +msgid "" +"If you want to enable (or disable) this feature, it is easier to use the " +"`core.fsmonitor` configuration variable (see linkgit:git-config[1]) than " +"using the `--fsmonitor` option to `git update-index` in each repository, " +"especially if you want to do so across all repositories you use, because you " +"can set the configuration variable in your `$HOME/.gitconfig` just once and " +"have it affect all repositories you touch." msgstr "" #. type: Plain text -#: en/diff-format.txt:66 -msgid "X: \"unknown\" change type (most probably a bug, please report it)" +#: en/git-update-index.txt:517 +msgid "" +"When the `core.fsmonitor` configuration variable is changed, the file system " +"monitor is added to or removed from the index the next time a command reads " +"the index. When `--[no-]fsmonitor` are used, the file system monitor is " +"immediately added to or removed from the index." msgstr "" #. type: Plain text -#: en/diff-format.txt:71 +#: en/git-update-index.txt:528 +#, no-wrap msgid "" -"Status letters C and R are always followed by a score (denoting the " -"percentage of similarity between the source and target of the move or " -"copy). Status letter M may be followed by a score (denoting the percentage " -"of dissimilarity) for file rewrites." +"The command honors `core.filemode` configuration variable. If\n" +"your repository is on a filesystem whose executable bits are\n" +"unreliable, this should be set to 'false' (see linkgit:git-config[1]).\n" +"This causes the command to ignore differences in file modes recorded\n" +"in the index and the file mode on the filesystem if they differ only on\n" +"executable bit. On such an unfortunate filesystem, you may\n" +"need to use 'git update-index --chmod='.\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:74 +#: en/git-update-index.txt:533 msgid "" -"<sha1> is shown as all 0's if a file is new on the filesystem and it is out " -"of sync with the index." -msgstr "" - -#. type: delimited block - -#: en/diff-format.txt:79 -#, no-wrap -msgid ":100644 100644 5be4a4...... 000000...... M file.c\n" -msgstr "" - -#. type: Title - -#: en/diff-format.txt:87 -#, no-wrap -msgid "diff format for merges" +"Quite similarly, if `core.symlinks` configuration variable is set to " +"'false' (see linkgit:git-config[1]), symbolic links are checked out as plain " +"files, and this command does not modify a recorded file mode from symbolic " +"link to regular file." msgstr "" #. type: Plain text -#: en/diff-format.txt:93 +#: en/git-update-index.txt:536 msgid "" -"\"git-diff-tree\", \"git-diff-files\" and \"git-diff --raw\" can take `-c` " -"or `--cc` option to generate diff output also for merge commits. The output " -"differs from the format described above in the following way:" +"The command looks at `core.ignorestat` configuration variable. See 'Using " +"\"assume unchanged\" bit' section above." msgstr "" #. type: Plain text -#: en/diff-format.txt:95 -msgid "there is a colon for each parent" +#: en/git-update-index.txt:541 +msgid "" +"The command also looks at `core.trustctime` configuration variable. It can " +"be useful when the inode change time is regularly modified by something " +"outside Git (file system crawlers and backup systems use ctime for marking " +"files processed) (see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/diff-format.txt:96 -msgid "there are more \"src\" modes and \"src\" sha1" +#: en/git-update-index.txt:545 +msgid "" +"The untracked cache extension can be enabled by the `core.untrackedCache` " +"configuration variable (see linkgit:git-config[1])." msgstr "" #. type: Plain text -#: en/diff-format.txt:97 -msgid "status is concatenated status characters for each parent" +#: en/git-update-index.txt:551 +msgid "linkgit:git-config[1], linkgit:git-add[1], linkgit:git-ls-files[1]" msgstr "" -#. type: Plain text -#: en/diff-format.txt:98 -msgid "no optional \"score\" number" +#. type: Title = +#: en/git-update-ref.txt:2 +#, no-wrap +msgid "git-update-ref(1)" msgstr "" #. type: Plain text -#: en/diff-format.txt:99 -msgid "single path, only for \"dst\"" +#: en/git-update-ref.txt:7 +msgid "git-update-ref - Update the object name stored in a ref safely" msgstr "" -#. type: delimited block - -#: en/diff-format.txt:104 +#. type: Plain text +#: en/git-update-ref.txt:12 #, no-wrap -msgid "::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM\tdescribe.c\n" +msgid "'git update-ref' [-m <reason>] [--no-deref] (-d <ref> [<oldvalue>] | [--create-reflog] <ref> <newvalue> [<oldvalue>] | --stdin [-z])\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:108 +#: en/git-update-ref.txt:18 msgid "" -"Note that 'combined diff' lists only files which were modified from all " -"parents." -msgstr "" - -#. type: Title - -#: en/diff-format.txt:114 -#, no-wrap -msgid "other diff formats" +"Given two arguments, stores the <newvalue> in the <ref>, possibly " +"dereferencing the symbolic refs. E.g. `git update-ref HEAD <newvalue>` " +"updates the current branch head to the new object." msgstr "" #. type: Plain text -#: en/diff-format.txt:120 +#: en/git-update-ref.txt:27 msgid "" -"The `--summary` option describes newly added, deleted, renamed and copied " -"files. The `--stat` option adds diffstat(1) graph to the output. These " -"options can be combined with other options, such as `-p`, and are meant for " -"human consumption." +"Given three arguments, stores the <newvalue> in the <ref>, possibly " +"dereferencing the symbolic refs, after verifying that the current value of " +"the <ref> matches <oldvalue>. E.g. `git update-ref refs/heads/master " +"<newvalue> <oldvalue>` updates the master branch head to <newvalue> only if " +"its current value is <oldvalue>. You can specify 40 \"0\" or an empty " +"string as <oldvalue> to make sure that the ref you are creating does not " +"exist." msgstr "" #. type: Plain text -#: en/diff-format.txt:125 +#: en/git-update-ref.txt:31 msgid "" -"When showing a change that involves a rename or a copy, `--stat` output " -"formats the pathnames compactly by combining common prefix and suffix of the " -"pathnames. For example, a change that moves `arch/i386/Makefile` to " -"`arch/x86/Makefile` while modifying 4 lines will be shown like this:" -msgstr "" - -#. type: delimited block - -#: en/diff-format.txt:128 -#, no-wrap -msgid "arch/{i386 => x86}/Makefile | 4 +--\n" +"It also allows a \"ref\" file to be a symbolic pointer to another ref file " +"by starting with the four-byte header sequence of \"ref:\"." msgstr "" #. type: Plain text -#: en/diff-format.txt:133 +#: en/git-update-ref.txt:39 msgid "" -"The `--numstat` option gives the diffstat(1) information but is designed for " -"easier machine consumption. An entry in `--numstat` output looks like this:" +"More importantly, it allows the update of a ref file to follow these " +"symbolic pointers, whether they are symlinks or these \"regular file " +"symbolic refs\". It follows *real* symlinks only if they start with \"refs/" +"\": otherwise it will just try to read them and update them as a regular " +"file (i.e. it will allow the filesystem to follow them, but will overwrite " +"such a symlink to somewhere else with a regular filename)." msgstr "" -#. type: delimited block - -#: en/diff-format.txt:137 -#, no-wrap +#. type: Plain text +#: en/git-update-ref.txt:42 msgid "" -"1\t2\tREADME\n" -"3\t1\tarch/{i386 => x86}/Makefile\n" +"If --no-deref is given, <ref> itself is overwritten, rather than the result " +"of following the symbolic pointers." msgstr "" #. type: Plain text -#: en/diff-format.txt:140 -msgid "That is, from left to right:" +#: en/git-update-ref.txt:44 +msgid "In general, using" msgstr "" #. type: Plain text -#: en/diff-format.txt:142 en/diff-format.txt:158 -msgid "the number of added lines;" +#: en/git-update-ref.txt:46 +#, no-wrap +msgid "\tgit update-ref HEAD \"$head\"\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:143 en/diff-format.txt:145 en/diff-format.txt:159 en/diff-format.txt:161 -msgid "a tab;" +#: en/git-update-ref.txt:48 +msgid "should be a _lot_ safer than doing" msgstr "" #. type: Plain text -#: en/diff-format.txt:144 en/diff-format.txt:160 -msgid "the number of deleted lines;" +#: en/git-update-ref.txt:50 +#, no-wrap +msgid "\techo \"$head\" > \"$GIT_DIR/HEAD\"\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:146 -msgid "pathname (possibly with rename/copy information);" +#: en/git-update-ref.txt:57 +msgid "" +"both from a symlink following standpoint *and* an error checking " +"standpoint. The \"refs/\" rule for symlinks means that symlinks that point " +"to \"outside\" the tree are safe: they'll be followed for reading but not " +"for writing (so we'll never write through a ref symlink to some other tree, " +"if you have copied a whole archive by creating a symlink tree)." msgstr "" #. type: Plain text -#: en/diff-format.txt:147 -msgid "a newline." +#: en/git-update-ref.txt:60 +msgid "" +"With `-d` flag, it deletes the named <ref> after verifying it still contains " +"<oldvalue>." msgstr "" #. type: Plain text -#: en/diff-format.txt:149 -msgid "When `-z` output option is in effect, the output is formatted this way:" +#: en/git-update-ref.txt:63 +msgid "" +"With `--stdin`, update-ref reads instructions from standard input and " +"performs all modifications together. Specify commands of the form:" msgstr "" -#. type: delimited block - -#: en/diff-format.txt:153 +#. type: Plain text +#: en/git-update-ref.txt:69 #, no-wrap msgid "" -"1\t2\tREADME NUL\n" -"3\t1\tNUL arch/i386/Makefile NUL arch/x86/Makefile NUL\n" +"\tupdate SP <ref> SP <newvalue> [SP <oldvalue>] LF\n" +"\tcreate SP <ref> SP <newvalue> LF\n" +"\tdelete SP <ref> [SP <oldvalue>] LF\n" +"\tverify SP <ref> [SP <oldvalue>] LF\n" +"\toption SP <opt> LF\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:156 -msgid "That is:" +#: en/git-update-ref.txt:72 +msgid "" +"With `--create-reflog`, update-ref will create a reflog for each ref even if " +"one would not ordinarily be created." msgstr "" #. type: Plain text -#: en/diff-format.txt:162 en/diff-format.txt:164 -msgid "a NUL (only exists if renamed/copied);" +#: en/git-update-ref.txt:77 +msgid "" +"Quote fields containing whitespace as if they were strings in C source code; " +"i.e., surrounded by double-quotes and with backslash escapes. Use 40 \"0\" " +"characters or the empty string to specify a zero value. To specify a " +"missing value, omit the value and its preceding SP entirely." msgstr "" #. type: Plain text -#: en/diff-format.txt:163 -msgid "pathname in preimage;" +#: en/git-update-ref.txt:80 +msgid "" +"Alternatively, use `-z` to specify in NUL-terminated format, without quoting:" msgstr "" #. type: Plain text -#: en/diff-format.txt:165 -msgid "pathname in postimage (only exists if renamed/copied);" +#: en/git-update-ref.txt:86 +#, no-wrap +msgid "" +"\tupdate SP <ref> NUL <newvalue> NUL [<oldvalue>] NUL\n" +"\tcreate SP <ref> NUL <newvalue> NUL\n" +"\tdelete SP <ref> NUL [<oldvalue>] NUL\n" +"\tverify SP <ref> NUL [<oldvalue>] NUL\n" +"\toption SP <opt> NUL\n" msgstr "" #. type: Plain text -#: en/diff-format.txt:166 -msgid "a NUL." +#: en/git-update-ref.txt:89 +msgid "" +"In this format, use 40 \"0\" to specify a zero value, and use the empty " +"string to specify a missing value." msgstr "" #. type: Plain text -#: en/diff-format.txt:171 +#: en/git-update-ref.txt:93 msgid "" -"The extra `NUL` before the preimage path in renamed case is to allow scripts " -"that read the output to tell if the current record being read is a " -"single-path record or a rename/copy record without reading ahead. After " -"reading added and deleted lines, reading up to `NUL` would yield the " -"pathname, but if that is `NUL`, the record will show two paths." +"In either format, values can be specified in any form that Git recognizes as " +"an object name. Commands in any other format or a repeated <ref> produce an " +"error. Command meanings are:" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:1 -#, no-wrap -msgid "diff.autoRefreshIndex" +#. type: Plain text +#: en/git-update-ref.txt:99 +msgid "" +"Set <ref> to <newvalue> after verifying <oldvalue>, if given. Specify a " +"zero <newvalue> to ensure the ref does not exist after the update and/or a " +"zero <oldvalue> to make sure the ref does not exist before the update." msgstr "" #. type: Plain text -#: en/diff-config.txt:10 +#: en/git-update-ref.txt:103 msgid "" -"When using 'git diff' to compare with work tree files, do not consider " -"stat-only change as changed. Instead, silently run `git update-index " -"--refresh` to update the cached stat information for paths whose contents in " -"the work tree match the contents in the index. This option defaults to " -"true. Note that this affects only 'git diff' Porcelain, and not lower level " -"'diff' commands such as 'git diff-files'." +"Create <ref> with <newvalue> after verifying it does not exist. The given " +"<newvalue> may not be zero." msgstr "" #. type: Labeled list -#: en/diff-config.txt:11 +#: en/git-update-ref.txt:104 #, no-wrap -msgid "diff.dirstat" +msgid "delete" msgstr "" #. type: Plain text -#: en/diff-config.txt:18 +#: en/git-update-ref.txt:107 msgid "" -"A comma separated list of `--dirstat` parameters specifying the default " -"behavior of the `--dirstat` option to linkgit:git-diff[1]` and friends. The " -"defaults can be overridden on the command line (using " -"`--dirstat=<param1,param2,...>`). The fallback defaults (when not changed by " -"`diff.dirstat`) are `changes,noncumulative,3`. The following parameters are " -"available:" +"Delete <ref> after verifying it exists with <oldvalue>, if given. If given, " +"<oldvalue> may not be zero." msgstr "" #. type: Labeled list -#: en/diff-config.txt:20 en/diff-options.txt:137 +#: en/git-update-ref.txt:108 #, no-wrap -msgid "`changes`" +msgid "verify" msgstr "" #. type: Plain text -#: en/diff-config.txt:26 en/diff-options.txt:143 +#: en/git-update-ref.txt:111 msgid "" -"Compute the dirstat numbers by counting the lines that have been removed " -"from the source, or added to the destination. This ignores the amount of " -"pure code movements within a file. In other words, rearranging lines in a " -"file is not counted as much as other changes. This is the default behavior " -"when no parameter is given." +"Verify <ref> against <oldvalue> but do not change it. If <oldvalue> zero or " +"missing, the ref must not exist." msgstr "" #. type: Labeled list -#: en/diff-config.txt:26 en/diff-options.txt:143 +#: en/git-update-ref.txt:112 #, no-wrap -msgid "`lines`" +msgid "option" msgstr "" #. type: Plain text -#: en/diff-config.txt:34 en/diff-options.txt:151 +#: en/git-update-ref.txt:116 msgid "" -"Compute the dirstat numbers by doing the regular line-based diff analysis, " -"and summing the removed/added line counts. (For binary files, count 64-byte " -"chunks instead, since binary files have no natural concept of lines). This " -"is a more expensive `--dirstat` behavior than the `changes` behavior, but it " -"does count rearranged lines within a file as much as other changes. The " -"resulting output is consistent with what you get from the other `--*stat` " -"options." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:34 en/diff-options.txt:151 -#, no-wrap -msgid "`files`" +"Modify behavior of the next command naming a <ref>. The only valid option " +"is `no-deref` to avoid dereferencing a symbolic ref." msgstr "" #. type: Plain text -#: en/diff-config.txt:39 en/diff-options.txt:156 +#: en/git-update-ref.txt:122 msgid "" -"Compute the dirstat numbers by counting the number of files changed. Each " -"changed file counts equally in the dirstat analysis. This is the " -"computationally cheapest `--dirstat` behavior, since it does not have to " -"look at the file contents at all." +"If all <ref>s can be locked with matching <oldvalue>s simultaneously, all " +"modifications are performed. Otherwise, no modifications are performed. " +"Note that while each individual <ref> is updated or deleted atomically, a " +"concurrent reader may still see a subset of the modifications." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:39 en/diff-options.txt:156 +#. type: Title - +#: en/git-update-ref.txt:124 #, no-wrap -msgid "`cumulative`" +msgid "LOGGING UPDATES" msgstr "" #. type: Plain text -#: en/diff-config.txt:44 en/diff-options.txt:161 +#: en/git-update-ref.txt:131 msgid "" -"Count changes in a child directory for the parent directory as well. Note " -"that when using `cumulative`, the sum of the percentages reported may exceed " -"100%. The default (non-cumulative) behavior can be specified with the " -"`noncumulative` parameter." +"If config parameter \"core.logAllRefUpdates\" is true and the ref is one " +"under \"refs/heads/\", \"refs/remotes/\", \"refs/notes/\", or the symbolic " +"ref HEAD; or the file \"$GIT_DIR/logs/<ref>\" exists then `git update-ref` " +"will append a line to the log file \"$GIT_DIR/logs/<ref>\" (dereferencing " +"all symbolic refs before creating the log name) describing the change in ref " +"value. Log lines are formatted as:" msgstr "" #. type: Plain text -#: en/diff-config.txt:48 en/diff-options.txt:165 -msgid "" -"An integer parameter specifies a cut-off percent (3% by default). " -"Directories contributing less than this percentage of the changes are not " -"shown in the output." +#: en/git-update-ref.txt:133 +#, no-wrap +msgid " oldsha1 SP newsha1 SP committer LF\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:54 +#: en/git-update-ref.txt:138 msgid "" -"Example: The following will count changed files, while ignoring directories " -"with less than 10% of the total amount of changed files, and accumulating " -"child directory counts in the parent directories: `files,10,cumulative`." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:55 -#, no-wrap -msgid "diff.statGraphWidth" +"Where \"oldsha1\" is the 40 character hexadecimal value previously stored in " +"<ref>, \"newsha1\" is the 40 character hexadecimal value of <newvalue> and " +"\"committer\" is the committer's name, email address and date in the " +"standard Git committer ident format." msgstr "" #. type: Plain text -#: en/diff-config.txt:58 -msgid "" -"Limit the width of the graph part in --stat output. If set, applies to all " -"commands generating --stat output except format-patch." +#: en/git-update-ref.txt:140 +msgid "Optionally with -m:" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:59 +#. type: Plain text +#: en/git-update-ref.txt:142 #, no-wrap -msgid "diff.context" +msgid " oldsha1 SP newsha1 SP committer TAB message LF\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:62 +#: en/git-update-ref.txt:145 msgid "" -"Generate diffs with <n> lines of context instead of the default of 3. This " -"value is overridden by the -U option." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:63 -#, no-wrap -msgid "diff.interHunkContext" +"Where all fields are as described above and \"message\" is the value " +"supplied to the -m option." msgstr "" #. type: Plain text -#: en/diff-config.txt:68 +#: en/git-update-ref.txt:149 msgid "" -"Show the context between diff hunks, up to the specified number of lines, " -"thereby fusing the hunks that are close to each other. This value serves as " -"the default for the `--inter-hunk-context` command line option." +"An update will fail (without changing <ref>) if the current user is unable " +"to create a new log file, append to the existing log file or does not have " +"committer information available." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:69 +#. type: Title = +#: en/git-update-server-info.txt:2 #, no-wrap -msgid "diff.external" +msgid "git-update-server-info(1)" msgstr "" #. type: Plain text -#: en/diff-config.txt:77 +#: en/git-update-server-info.txt:7 msgid "" -"If this config variable is set, diff generation is not performed using the " -"internal diff machinery, but using the given command. Can be overridden " -"with the `GIT_EXTERNAL_DIFF' environment variable. The command is called " -"with parameters as described under \"git Diffs\" in linkgit:git[1]. Note: " -"if you want to use an external diff program only on a subset of your files, " -"you\tmight want to use linkgit:gitattributes[5] instead." +"git-update-server-info - Update auxiliary info file to help dumb servers" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:78 +#. type: Plain text +#: en/git-update-server-info.txt:13 #, no-wrap -msgid "diff.ignoreSubmodules" +msgid "'git update-server-info' [--force]\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:87 +#: en/git-update-server-info.txt:21 msgid "" -"Sets the default value of --ignore-submodules. Note that this affects only " -"'git diff' Porcelain, and not lower level 'diff' commands such as 'git " -"diff-files'. 'git checkout' also honors this setting when reporting " -"uncommitted changes. Setting it to 'all' disables the submodule summary " -"normally shown by 'git commit' and 'git status' when " -"`status.submoduleSummary` is set unless it is overridden by using the " -"--ignore-submodules command-line option. The 'git submodule' commands are " -"not affected by this setting." +"A dumb server that does not do on-the-fly pack generations must have some " +"auxiliary information files in $GIT_DIR/info and $GIT_OBJECT_DIRECTORY/info " +"directories to help clients discover what references and packs the server " +"has. This command generates such auxiliary files." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:88 -#, no-wrap -msgid "diff.mnemonicPrefix" +#. type: Plain text +#: en/git-update-server-info.txt:29 +msgid "Update the info files from scratch." msgstr "" #. type: Plain text -#: en/diff-config.txt:93 +#: en/git-update-server-info.txt:37 msgid "" -"If set, 'git diff' uses a prefix pair that is different from the standard " -"\"a/\" and \"b/\" depending on what is being compared. When this " -"configuration is in effect, reverse diff output also swaps the order of the " -"prefixes:" +"Currently the command updates the following files. Please see linkgit:" +"gitrepository-layout[5] for description of what they are for:" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:93 -#, no-wrap -msgid "`git diff`" +#. type: Plain text +#: en/git-update-server-info.txt:39 +msgid "objects/info/packs" msgstr "" #. type: Plain text -#: en/diff-config.txt:95 -msgid "compares the (i)ndex and the (w)ork tree;" +#: en/git-update-server-info.txt:41 +msgid "info/refs" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:95 +#. type: Title = +#: en/git-upload-archive.txt:2 #, no-wrap -msgid "`git diff HEAD`" +msgid "git-upload-archive(1)" msgstr "" #. type: Plain text -#: en/diff-config.txt:97 -msgid "compares a (c)ommit and the (w)ork tree;" +#: en/git-upload-archive.txt:7 +msgid "git-upload-archive - Send archive back to git-archive" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:97 +#. type: Plain text +#: en/git-upload-archive.txt:13 #, no-wrap -msgid "`git diff --cached`" +msgid "'git upload-archive' <directory>\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:99 -msgid "compares a (c)ommit and the (i)ndex;" -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:99 -#, no-wrap -msgid "`git diff HEAD:file1 file2`" +#: en/git-upload-archive.txt:18 +msgid "" +"Invoked by 'git archive --remote' and sends a generated archive to the other " +"end over the Git protocol." msgstr "" #. type: Plain text -#: en/diff-config.txt:101 -msgid "compares an (o)bject and a (w)ork tree entity;" +#: en/git-upload-archive.txt:22 +msgid "" +"This command is usually not invoked directly by the end user. The UI for " +"the protocol is on the 'git archive' side, and the program pair is meant to " +"be used to get an archive from a remote repository." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:101 +#. type: Title - +#: en/git-upload-archive.txt:24 en/transfer-data-leaks.txt:2 #, no-wrap -msgid "`git diff --no-index a b`" +msgid "SECURITY" msgstr "" #. type: Plain text -#: en/diff-config.txt:103 -msgid "compares two non-git things (1) and (2)." +#: en/git-upload-archive.txt:32 +msgid "" +"In order to protect the privacy of objects that have been removed from " +"history but may not yet have been pruned, `git-upload-archive` avoids " +"serving archives for commits and trees that are not reachable from the " +"repository's refs. However, because calculating object reachability is " +"computationally expensive, `git-upload-archive` implements a stricter but " +"easier-to-check set of rules:" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:104 -#, no-wrap -msgid "diff.noprefix" +#. type: Plain text +#: en/git-upload-archive.txt:35 +msgid "" +"Clients may request a commit or tree that is pointed to directly by a ref. E." +"g., `git archive --remote=origin v1.0`." msgstr "" #. type: Plain text -#: en/diff-config.txt:106 -msgid "If set, 'git diff' does not show any source or destination prefix." +#: en/git-upload-archive.txt:38 +msgid "" +"Clients may request a sub-tree within a commit or tree using the `ref:path` " +"syntax. E.g., `git archive --remote=origin v1.0:Documentation`." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:107 -#, no-wrap -msgid "diff.orderFile" +#. type: Plain text +#: en/git-upload-archive.txt:43 +msgid "" +"Clients may _not_ use other sha1 expressions, even if the end result is " +"reachable. E.g., neither a relative commit like `master^` nor a literal sha1 " +"like `abcd1234` is allowed, even if the result is reachable from the refs." msgstr "" #. type: Plain text -#: en/diff-config.txt:112 +#: en/git-upload-archive.txt:48 msgid "" -"File indicating how to order files within a diff. See the '-O' option to " -"linkgit:git-diff[1] for details. If `diff.orderFile` is a relative " -"pathname, it is treated as relative to the top of the working tree." +"Note that rule 3 disallows many cases that do not have any privacy " +"implications. These rules are subject to change in future versions of git, " +"and the server accessed by `git archive --remote` may or may not follow " +"these exact rules." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:113 -#, no-wrap -msgid "diff.renameLimit" +#. type: Plain text +#: en/git-upload-archive.txt:54 +msgid "" +"If the config option `uploadArchive.allowUnreachable` is true, these rules " +"are ignored, and clients may use arbitrary sha1 expressions. This is useful " +"if you do not care about the privacy of unreachable objects, or if your " +"object database is already publicly available for access via non-smart-http." msgstr "" #. type: Plain text -#: en/diff-config.txt:116 -msgid "" -"The number of files to consider when performing the copy/rename detection; " -"equivalent to the 'git diff' option `-l`." +#: en/git-upload-archive.txt:59 +msgid "The repository to get a tar archive from." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:117 +#. type: Title = +#: en/git-upload-pack.txt:2 #, no-wrap -msgid "diff.renames" +msgid "git-upload-pack(1)" msgstr "" #. type: Plain text -#: en/diff-config.txt:125 -msgid "" -"Whether and how Git detects renames. If set to \"false\", rename detection " -"is disabled. If set to \"true\", basic rename detection is enabled. If set " -"to \"copies\" or \"copy\", Git will detect copies, as well. Defaults to " -"true. Note that this affects only 'git diff' Porcelain like " -"linkgit:git-diff[1] and linkgit:git-log[1], and not lower level commands " -"such as linkgit:git-diff-files[1]." +#: en/git-upload-pack.txt:7 +msgid "git-upload-pack - Send objects packed back to git-fetch-pack" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:126 +#. type: Plain text +#: en/git-upload-pack.txt:14 #, no-wrap -msgid "diff.suppressBlankEmpty" +msgid "" +"'git-upload-pack' [--[no-]strict] [--timeout=<n>] [--stateless-rpc]\n" +"\t\t [--advertise-refs] <directory>\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:129 +#: en/git-upload-pack.txt:19 msgid "" -"A boolean to inhibit the standard behavior of printing a space before each " -"empty output line. Defaults to false." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:130 -#, no-wrap -msgid "diff.submodule" +"Invoked by 'git fetch-pack', learns what objects the other side is missing, " +"and sends them after packing." msgstr "" #. type: Plain text -#: en/diff-config.txt:137 +#: en/git-upload-pack.txt:24 msgid "" -"Specify the format in which differences in submodules are shown. The " -"\"short\" format just shows the names of the commits at the beginning and " -"end of the range. The \"log\" format lists the commits in the range like " -"linkgit:git-submodule[1] `summary` does. The \"diff\" format shows an inline " -"diff of the changed contents of the submodule. Defaults to \"short\"." +"This command is usually not invoked directly by the end user. The UI for " +"the protocol is on the 'git fetch-pack' side, and the program pair is meant " +"to be used to pull updates from a remote repository. For push operations, " +"see 'git send-pack'." msgstr "" #. type: Labeled list -#: en/diff-config.txt:138 +#: en/git-upload-pack.txt:28 #, no-wrap -msgid "diff.wordRegex" +msgid "--[no-]strict" msgstr "" #. type: Plain text -#: en/diff-config.txt:143 -msgid "" -"A POSIX Extended Regular Expression used to determine what is a \"word\" " -"when performing word-by-word difference calculations. Character sequences " -"that match the regular expression are \"words\", all other characters are " -"*ignorable* whitespace." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:144 -#, no-wrap -msgid "diff.<driver>.command" +#: en/git-upload-pack.txt:30 +msgid "Do not try <directory>/.git/ if <directory> is no Git directory." msgstr "" #. type: Plain text -#: en/diff-config.txt:147 -msgid "The custom diff driver command. See linkgit:gitattributes[5] for details." +#: en/git-upload-pack.txt:33 +msgid "Interrupt transfer after <n> seconds of inactivity." msgstr "" #. type: Labeled list -#: en/diff-config.txt:148 +#: en/git-upload-pack.txt:34 #, no-wrap -msgid "diff.<driver>.xfuncname" +msgid "--stateless-rpc" msgstr "" #. type: Plain text -#: en/diff-config.txt:152 +#: en/git-upload-pack.txt:38 msgid "" -"The regular expression that the diff driver should use to recognize the hunk " -"header. A built-in pattern may also be used. See linkgit:gitattributes[5] " -"for details." +"Perform only a single read-write cycle with stdin and stdout. This fits " +"with the HTTP POST request processing model where a program may read the " +"request, write a response, and must exit." msgstr "" #. type: Labeled list -#: en/diff-config.txt:153 +#: en/git-upload-pack.txt:39 #, no-wrap -msgid "diff.<driver>.binary" +msgid "--advertise-refs" msgstr "" #. type: Plain text -#: en/diff-config.txt:156 +#: en/git-upload-pack.txt:43 msgid "" -"Set this option to true to make the diff driver treat files as binary. See " -"linkgit:gitattributes[5] for details." +"Only the initial ref advertisement is output, and the program exits " +"immediately. This fits with the HTTP GET request model, where no request " +"content is received but a response must be produced." msgstr "" -#. type: Labeled list -#: en/diff-config.txt:157 -#, no-wrap -msgid "diff.<driver>.textconv" +#. type: Plain text +#: en/git-upload-pack.txt:46 +msgid "The repository to sync from." msgstr "" #. type: Plain text -#: en/diff-config.txt:162 -msgid "" -"The command that the diff driver should call to generate the text-converted " -"version of a file. The result of the conversion is used to generate a " -"human-readable diff. See linkgit:gitattributes[5] for details." +#: en/git-upload-pack.txt:50 +msgid "linkgit:gitnamespaces[7]" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:163 +#. type: Title = +#: en/git-var.txt:2 #, no-wrap -msgid "diff.<driver>.wordRegex" +msgid "git-var(1)" msgstr "" #. type: Plain text -#: en/diff-config.txt:167 -msgid "" -"The regular expression that the diff driver should use to split words in a " -"line. See linkgit:gitattributes[5] for details." +#: en/git-var.txt:7 +msgid "git-var - Show a Git logical variable" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:168 +#. type: Plain text +#: en/git-var.txt:13 #, no-wrap -msgid "diff.<driver>.cachetextconv" +msgid "'git var' ( -l | <variable> )\n" msgstr "" #. type: Plain text -#: en/diff-config.txt:171 -msgid "" -"Set this option to true to make the diff driver cache the text conversion " -"outputs. See linkgit:gitattributes[5] for details." +#: en/git-var.txt:17 +msgid "Prints a Git logical variable." msgstr "" #. type: Plain text -#: en/diff-config.txt:178 +#: en/git-var.txt:25 msgid "" -"Controls which diff tool is used by linkgit:git-difftool[1]. This variable " -"overrides the value configured in `merge.tool`. The list below shows the " -"valid built-in values. Any other value is treated as a custom diff tool and " -"requires that a corresponding difftool.<tool>.cmd variable is defined." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:181 -#, no-wrap -msgid "diff.indentHeuristic" +"Cause the logical variables to be listed. In addition, all the variables of " +"the Git configuration file .git/config are listed as well. (However, the " +"configuration variables listing functionality is deprecated in favor of `git " +"config -l`.)" msgstr "" #. type: Plain text -#: en/diff-config.txt:184 +#: en/git-var.txt:30 +#, no-wrap msgid "" -"Set this option to `true` to enable experimental heuristics that shift diff " -"hunk boundaries to make patches easier to read." +"\t$ git var GIT_AUTHOR_IDENT\n" +"\tEric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600\n" msgstr "" -#. type: Labeled list -#: en/diff-config.txt:185 +#. type: Title - +#: en/git-var.txt:33 #, no-wrap -msgid "diff.algorithm" -msgstr "" - -#. type: Plain text -#: en/diff-config.txt:187 -msgid "Choose a diff algorithm. The variants are as follows:" +msgid "VARIABLES" msgstr "" #. type: Labeled list -#: en/diff-config.txt:189 en/diff-options.txt:82 +#: en/git-var.txt:34 #, no-wrap -msgid "`default`, `myers`" +msgid "GIT_AUTHOR_IDENT" msgstr "" #. type: Plain text -#: en/diff-config.txt:191 en/diff-options.txt:84 -msgid "The basic greedy diff algorithm. Currently, this is the default." +#: en/git-var.txt:36 +msgid "The author of a piece of code." msgstr "" #. type: Labeled list -#: en/diff-config.txt:191 en/diff-options.txt:84 +#: en/git-var.txt:37 #, no-wrap -msgid "`minimal`" +msgid "GIT_COMMITTER_IDENT" msgstr "" #. type: Plain text -#: en/diff-config.txt:194 en/diff-options.txt:71 en/diff-options.txt:87 -msgid "Spend extra time to make sure the smallest possible diff is produced." +#: en/git-var.txt:39 +msgid "The person who put a piece of code into Git." msgstr "" #. type: Labeled list -#: en/diff-config.txt:194 en/diff-options.txt:87 +#: en/git-var.txt:40 #, no-wrap -msgid "`patience`" +msgid "GIT_EDITOR" msgstr "" #. type: Plain text -#: en/diff-config.txt:196 en/diff-options.txt:89 -msgid "Use \"patience diff\" algorithm when generating patches." -msgstr "" - -#. type: Labeled list -#: en/diff-config.txt:196 en/diff-options.txt:89 -#, no-wrap -msgid "`histogram`" +#: en/git-var.txt:48 +msgid "" +"Text editor for use by Git commands. The value is meant to be interpreted " +"by the shell when it is used. Examples: `~/bin/vi`, `" +"$SOME_ENVIRONMENT_VARIABLE`, `\"C:\\Program Files\\Vim\\gvim.exe\" --" +"nofork`. The order of preference is the `$GIT_EDITOR` environment variable, " +"then `core.editor` configuration, then `$VISUAL`, then `$EDITOR`, and then " +"the default chosen at compile time, which is usually 'vi'." msgstr "" #. type: Plain text -#: en/diff-config.txt:199 en/diff-options.txt:92 -msgid "" -"This algorithm extends the patience algorithm to \"support low-occurrence " -"common elements\"." +#: en/git-var.txt:50 +#, no-wrap +msgid " The build you are using chose '{git-default-editor}' as the default.\n" msgstr "" #. type: Labeled list -#: en/diff-config.txt:202 +#: en/git-var.txt:52 #, no-wrap -msgid "diff.wsErrorHighlight" +msgid "GIT_PAGER" msgstr "" #. type: Plain text -#: en/diff-config.txt:206 +#: en/git-var.txt:58 msgid "" -"A comma separated list of `old`, `new`, `context`, that specifies how " -"whitespace errors on lines are highlighted with `color.diff.whitespace`. " -"Can be overridden by the command line option `--ws-error-highlight=<kind>`" +"Text viewer for use by Git commands (e.g., 'less'). The value is meant to " +"be interpreted by the shell. The order of preference is the `$GIT_PAGER` " +"environment variable, then `core.pager` configuration, then `$PAGER`, and " +"then the default chosen at compile time (usually 'less')." msgstr "" -#. type: Title - -#: en/diff-generate-patch.txt:2 +#. type: Plain text +#: en/git-var.txt:60 #, no-wrap -msgid "Generating patches with -p" +msgid " The build you are using chose '{git-default-pager}' as the default.\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:10 -msgid "" -"When \"git-diff-index\", \"git-diff-tree\", or \"git-diff-files\" are run " -"with a `-p` option, \"git diff\" without the `--raw` option, or \"git log\" " -"with the \"-p\" option, they do not produce the output described above; " -"instead they produce a patch file. You can customize the creation of such " -"patches via the `GIT_EXTERNAL_DIFF` and the `GIT_DIFF_OPTS` environment " -"variables." +#: en/git-var.txt:67 +msgid "linkgit:git-commit-tree[1] linkgit:git-tag[1] linkgit:git-config[1]" msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:13 -msgid "" -"What the -p option produces is slightly different from the traditional diff " -"format:" +#. type: Title = +#: en/git-verify-commit.txt:2 +#, no-wrap +msgid "git-verify-commit(1)" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:15 -msgid "It is preceded with a \"git diff\" header that looks like this:" +#: en/git-verify-commit.txt:7 +msgid "git-verify-commit - Check the GPG signature of commits" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:17 +#: en/git-verify-commit.txt:12 #, no-wrap -msgid "diff --git a/file1 b/file2\n" +msgid "'git verify-commit' <commit>...\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:21 -msgid "" -"The `a/` and `b/` filenames are the same unless rename/copy is involved. " -"Especially, even for a creation or a deletion, `/dev/null` is _not_ used in " -"place of the `a/` or `b/` filenames." +#: en/git-verify-commit.txt:16 +msgid "Validates the GPG signature created by 'git commit -S'." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:25 +#: en/git-verify-commit.txt:22 en/git-verify-tag.txt:22 msgid "" -"When rename/copy is involved, `file1` and `file2` show the name of the " -"source file of the rename/copy and the name of the file that rename/copy " -"produces, respectively." +"Print the raw gpg status output to standard error instead of the normal " +"human-readable output." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:27 -msgid "It is followed by one or more extended header lines:" +#: en/git-verify-commit.txt:26 +msgid "Print the contents of the commit object before validating it." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:39 -#, no-wrap -msgid "" -"old mode <mode>\n" -"new mode <mode>\n" -"deleted file mode <mode>\n" -"new file mode <mode>\n" -"copy from <path>\n" -"copy to <path>\n" -"rename from <path>\n" -"rename to <path>\n" -"similarity index <number>\n" -"dissimilarity index <number>\n" -"index <hash>..<hash> <mode>\n" +#: en/git-verify-commit.txt:29 +msgid "SHA-1 identifiers of Git commit objects." msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:42 -msgid "" -"File modes are printed as 6-digit octal numbers including the file type and " -"file permission bits." +#. type: Title = +#: en/git-verify-pack.txt:2 +#, no-wrap +msgid "git-verify-pack(1)" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:44 -msgid "Path names in extended headers do not include the `a/` and `b/` prefixes." +#: en/git-verify-pack.txt:7 +msgid "git-verify-pack - Validate packed Git archive files" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:51 -msgid "" -"The similarity index is the percentage of unchanged lines, and the " -"dissimilarity index is the percentage of changed lines. It is a rounded " -"down integer, followed by a percent sign. The similarity index value of " -"100% is thus reserved for two equal files, while 100% dissimilarity means " -"that no line from the old file made it into the new one." +#: en/git-verify-pack.txt:13 +#, no-wrap +msgid "'git verify-pack' [-v|--verbose] [-s|--stat-only] [--] <pack>.idx ...\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:55 +#: en/git-verify-pack.txt:20 msgid "" -"The index line includes the SHA-1 checksum before and after the change. The " -"<mode> is included if the file mode does not change; otherwise, separate " -"lines indicate the old and the new mode." +"Reads given idx file for packed Git archive created with the 'git pack-" +"objects' command and verifies idx file and the corresponding pack file." msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:59 -msgid "" -"Pathnames with \"unusual\" characters are quoted as explained for the " -"configuration variable `core.quotePath` (see linkgit:git-config[1])." +#. type: Labeled list +#: en/git-verify-pack.txt:23 +#, no-wrap +msgid "<pack>.idx ..." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:64 -msgid "" -"All the `file1` files in the output refer to files before the commit, and " -"all the `file2` files refer to files after the commit. It is incorrect to " -"apply each change to each file sequentially. For example, this patch will " -"swap a and b:" +#: en/git-verify-pack.txt:25 +msgid "The idx files to verify." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:71 -#, no-wrap +#: en/git-verify-pack.txt:30 msgid "" -"diff --git a/a b/b\n" -"rename from a\n" -"rename to b\n" -"diff --git a/b b/a\n" -"rename from b\n" -"rename to a\n" +"After verifying the pack, show list of objects contained in the pack and a " +"histogram of delta chain length." msgstr "" -#. type: Title - -#: en/diff-generate-patch.txt:74 +#. type: Labeled list +#: en/git-verify-pack.txt:32 #, no-wrap -msgid "combined diff format" +msgid "--stat-only" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:82 +#: en/git-verify-pack.txt:35 msgid "" -"Any diff-generating command can take the `-c` or `--cc` option to produce a " -"'combined diff' when showing a merge. This is the default format when " -"showing merges with linkgit:git-diff[1] or linkgit:git-show[1]. Note also " -"that you can give the `-m` option to any of these commands to force " -"generation of diffs with individual parents of a merge." -msgstr "" - -#. type: Plain text -#: en/diff-generate-patch.txt:84 -msgid "A 'combined diff' format looks like this:" +"Do not verify the pack contents; only show the histogram of delta chain " +"length. With `--verbose`, list of objects is also shown." msgstr "" -#. type: delimited block - -#: en/diff-generate-patch.txt:93 +#. type: Title - +#: en/git-verify-pack.txt:40 #, no-wrap -msgid "" -"diff --combined describe.c\n" -"index fabadb8,cc95eb0..4866510\n" -"--- a/describe.c\n" -"+++ b/describe.c\n" -"@@@ -98,20 -98,12 +98,20 @@@\n" -"\treturn (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;\n" -" }\n" +msgid "OUTPUT FORMAT" msgstr "" -#. type: delimited block - -#: en/diff-generate-patch.txt:103 -#, no-wrap -msgid "" -"- static void describe(char *arg)\n" -" -static void describe(struct commit *cmit, int last_one)\n" -"++static void describe(char *arg, int last_one)\n" -" {\n" -" +\tunsigned char sha1[20];\n" -" +\tstruct commit *cmit;\n" -"\tstruct commit_list *list;\n" -"\tstatic int initialized = 0;\n" -"\tstruct commit_name *n;\n" +#. type: Plain text +#: en/git-verify-pack.txt:42 +msgid "When specifying the -v option the format used is:" msgstr "" -#. type: delimited block - -#: en/diff-generate-patch.txt:113 +#. type: Plain text +#: en/git-verify-pack.txt:44 #, no-wrap -msgid "" -" +\tif (get_sha1(arg, sha1) < 0)\n" -" +\t\tusage(describe_usage);\n" -" +\tcmit = lookup_commit_reference(sha1);\n" -" +\tif (!cmit)\n" -" +\t\tusage(describe_usage);\n" -" +\n" -"\tif (!initialized) {\n" -"\t\tinitialized = 1;\n" -"\t\tfor_each_ref(get_name);\n" +msgid "\tSHA-1 type size size-in-packfile offset-in-packfile\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:117 -msgid "" -"It is preceded with a \"git diff\" header, that looks like this (when `-c` " -"option is used):" +#: en/git-verify-pack.txt:46 +msgid "for objects that are not deltified in the pack, and" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:119 +#: en/git-verify-pack.txt:48 #, no-wrap -msgid "diff --combined file\n" +msgid "\tSHA-1 type size size-in-packfile offset-in-packfile depth base-SHA-1\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:121 -msgid "or like this (when `--cc` option is used):" +#: en/git-verify-pack.txt:50 +msgid "for objects that are deltified." msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:123 +#. type: Title = +#: en/git-verify-tag.txt:2 #, no-wrap -msgid " diff --cc file\n" +msgid "git-verify-tag(1)" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:126 -msgid "" -"It is followed by one or more extended header lines (this example shows a " -"merge with two parents):" +#: en/git-verify-tag.txt:7 +msgid "git-verify-tag - Check the GPG signature of tags" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:131 +#: en/git-verify-tag.txt:12 #, no-wrap -msgid "" -"index <hash>,<hash>..<hash>\n" -"mode <mode>,<mode>..<mode>\n" -"new file mode <mode>\n" -"deleted file mode <mode>,<mode>\n" +msgid "'git verify-tag' [--format=<format>] <tag>...\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:137 -msgid "" -"The `mode <mode>,<mode>..<mode>` line appears only if at least one of the " -"<mode> is different from the rest. Extended headers with information about " -"detected contents movement (renames and copying detection) are designed to " -"work with diff of two <tree-ish> and are not used by combined diff format." +#: en/git-verify-tag.txt:16 +msgid "Validates the gpg signature created by 'git tag'." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:139 -msgid "It is followed by two-line from-file/to-file header" +#: en/git-verify-tag.txt:26 +msgid "Print the contents of the tag object before validating it." msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:141 -msgid "a/file" +#. type: Labeled list +#: en/git-verify-tag.txt:27 +#, no-wrap +msgid "<tag>..." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:142 -msgid "b/file" +#: en/git-verify-tag.txt:29 +msgid "SHA-1 identifiers of Git tag objects." msgstr "" -#. type: Plain text -#: en/diff-generate-patch.txt:146 -msgid "" -"Similar to two-line header for traditional 'unified' diff format, " -"`/dev/null` is used to signal created or deleted files." +#. type: Title = +#: en/git-web--browse.txt:2 +#, no-wrap +msgid "git-web{litdd}browse(1)" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:152 -msgid "" -"Chunk header format is modified to prevent people from accidentally feeding " -"it to `patch -p1`. Combined diff format was created for review of merge " -"commit changes, and was not meant for apply. The change is similar to the " -"change in the extended 'index' header:" +#: en/git-web--browse.txt:7 +msgid "git-web--browse - Git helper script to launch a web browser" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:154 +#: en/git-web--browse.txt:12 #, no-wrap -msgid "@@@ <from-file-range> <from-file-range> <to-file-range> @@@\n" +msgid "'git web{litdd}browse' [<options>] <url|file>...\n" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:157 +#: en/git-web--browse.txt:19 msgid "" -"There are (number of parents + 1) `@` characters in the chunk header for " -"combined diff format." +"This script tries, as much as possible, to display the URLs and FILEs that " +"are passed as arguments, as HTML pages in new tabs on an already opened web " +"browser." msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:166 -msgid "" -"Unlike the traditional 'unified' diff format, which shows two files A and B " -"with a single column that has `-` (minus -- appears in A but removed in B), " -"`+` (plus -- missing in A but added to B), or `\" \"` (space -- unchanged) " -"prefix, this format compares two or more files file1, file2,... with one " -"file X, and shows how X differs from each of fileN. One column for each of " -"fileN is prepended to the output line to note how X's line is different from " -"it." +#: en/git-web--browse.txt:21 +msgid "The following browsers (or commands) are currently supported:" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:172 -msgid "" -"A `-` character in the column N means that the line appears in fileN but it " -"does not appear in the result. A `+` character in the column N means that " -"the line appears in the result, and fileN does not have that line (in other " -"words, the line was added, from the point of view of that parent)." +#: en/git-web--browse.txt:23 +msgid "firefox (this is the default under X Window when not using KDE)" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:178 -msgid "" -"In the above example output, the function signature was changed from both " -"files (hence two `-` removals from both file1 and file2, plus `++` to mean " -"one line that was added does not appear in either file1 or file2). Also " -"eight other lines are the same from file1 but do not appear in file2 (hence " -"prefixed with `+`)." +#: en/git-web--browse.txt:24 +msgid "iceweasel" msgstr "" #. type: Plain text -#: en/diff-generate-patch.txt:184 -msgid "" -"When shown by `git diff-tree -c`, it compares the parents of a merge commit " -"with the merge result (i.e. file1..fileN are the parents). When shown by " -"`git diff-files -c`, it compares the two unresolved merge parents with the " -"working tree file (i.e. file1 is stage 2 aka \"our version\", file2 is stage " -"3 aka \"their version\")." +#: en/git-web--browse.txt:25 +msgid "seamonkey" msgstr "" #. type: Plain text -#: en/diff-options.txt:19 -msgid "Generate plain patches without any diffstats." +#: en/git-web--browse.txt:26 +msgid "iceape" msgstr "" #. type: Plain text -#: en/diff-options.txt:26 -msgid "Generate patch (see section on generating patches)." +#: en/git-web--browse.txt:27 +msgid "chromium (also supported as chromium-browser)" msgstr "" #. type: Plain text -#: en/diff-options.txt:28 en/diff-options.txt:50 -#, no-wrap -msgid "\tThis is the default.\n" -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:31 -#, no-wrap -msgid "--no-patch" +#: en/git-web--browse.txt:28 +msgid "google-chrome (also supported as chrome)" msgstr "" #. type: Plain text -#: en/diff-options.txt:34 +#: en/git-web--browse.txt:29 msgid "" -"Suppress diff output. Useful for commands like `git show` that show the " -"patch by default, or to cancel the effect of `--patch`." +"konqueror (this is the default under KDE, see 'Note about konqueror' below)" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:36 -#, no-wrap -msgid "-U<n>" +#. type: Plain text +#: en/git-web--browse.txt:30 +msgid "opera" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:37 -#, no-wrap -msgid "--unified=<n>" +#. type: Plain text +#: en/git-web--browse.txt:31 +msgid "w3m (this is the default outside graphical environments)" msgstr "" #. type: Plain text -#: en/diff-options.txt:40 -msgid "Generate diffs with <n> lines of context instead of the usual three." +#: en/git-web--browse.txt:32 +msgid "elinks" msgstr "" #. type: Plain text -#: en/diff-options.txt:42 -#, no-wrap -msgid "\tImplies `-p`.\n" +#: en/git-web--browse.txt:33 +msgid "links" msgstr "" #. type: Plain text -#: en/diff-options.txt:48 -#, no-wrap -msgid "\tGenerate the diff in raw format.\n" +#: en/git-web--browse.txt:34 +msgid "lynx" msgstr "" #. type: Plain text -#: en/diff-options.txt:58 -#, no-wrap -msgid "" -"\tFor each commit, show a summary of changes using the raw diff\n" -"\tformat. See the \"RAW OUTPUT FORMAT\" section of\n" -"\tlinkgit:git-diff[1]. This is different from showing the log\n" -"\titself in raw format, which you can achieve with\n" -"\t`--format=raw`.\n" +#: en/git-web--browse.txt:35 +msgid "dillo" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:62 -#, no-wrap -msgid "--patch-with-raw" +#. type: Plain text +#: en/git-web--browse.txt:36 +msgid "open (this is the default under Mac OS X GUI)" msgstr "" #. type: Plain text -#: en/diff-options.txt:64 -msgid "Synonym for `-p --raw`." +#: en/git-web--browse.txt:37 +msgid "start (this is the default under MinGW)" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:68 -#, no-wrap -msgid "--minimal" +#. type: Plain text +#: en/git-web--browse.txt:38 +msgid "cygstart (this is the default under Cygwin)" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:72 -#, no-wrap -msgid "--patience" +#. type: Plain text +#: en/git-web--browse.txt:39 +msgid "xdg-open" msgstr "" #. type: Plain text -#: en/diff-options.txt:74 -msgid "Generate a diff using the \"patience diff\" algorithm." +#: en/git-web--browse.txt:41 +msgid "Custom commands may also be specified." msgstr "" #. type: Labeled list -#: en/diff-options.txt:75 +#: en/git-web--browse.txt:44 #, no-wrap -msgid "--histogram" -msgstr "" - -#. type: Plain text -#: en/diff-options.txt:77 -msgid "Generate a diff using the \"histogram diff\" algorithm." +msgid "-b <browser>" msgstr "" #. type: Labeled list -#: en/diff-options.txt:78 +#: en/git-web--browse.txt:45 #, no-wrap -msgid "--diff-algorithm={patience|minimal|histogram|myers}" -msgstr "" - -#. type: Plain text -#: en/diff-options.txt:80 -msgid "Choose a diff algorithm. The variants are as follows:" +msgid "--browser=<browser>" msgstr "" #. type: Plain text -#: en/diff-options.txt:97 +#: en/git-web--browse.txt:48 msgid "" -"For instance, if you configured diff.algorithm variable to a non-default " -"value and want to use the default one, then you have to use " -"`--diff-algorithm=default` option." +"Use the specified browser. It must be in the list of supported browsers." msgstr "" #. type: Labeled list -#: en/diff-options.txt:98 +#: en/git-web--browse.txt:49 #, no-wrap -msgid "--stat[=<width>[,<name-width>[,<count>]]]" -msgstr "" - -#. type: Plain text -#: en/diff-options.txt:112 -msgid "" -"Generate a diffstat. By default, as much space as necessary will be used for " -"the filename part, and the rest for the graph part. Maximum width defaults " -"to terminal width, or 80 columns if not connected to a terminal, and can be " -"overridden by `<width>`. The width of the filename part can be limited by " -"giving another width `<name-width>` after a comma. The width of the graph " -"part can be limited by using `--stat-graph-width=<width>` (affects all " -"commands generating a stat graph) or by setting " -"`diff.statGraphWidth=<width>` (does not affect `git format-patch`). By " -"giving a third parameter `<count>`, you can limit the output to the first " -"`<count>` lines, followed by `...` if there are more." +msgid "-t <browser>" msgstr "" -#. type: Plain text -#: en/diff-options.txt:115 -msgid "" -"These parameters can also be set individually with `--stat-width=<width>`, " -"`--stat-name-width=<name-width>` and `--stat-count=<count>`." +#. type: Labeled list +#: en/git-web--browse.txt:50 +#, no-wrap +msgid "--tool=<browser>" msgstr "" -#. type: Plain text -#: en/diff-options.txt:122 -msgid "" -"Similar to `--stat`, but shows number of added and deleted lines in decimal " -"notation and pathname without abbreviation, to make it more machine " -"friendly. For binary files, outputs two `-` instead of saying `0 0`." +#. type: Labeled list +#: en/git-web--browse.txt:53 +#, no-wrap +msgid "-c <conf.var>" msgstr "" #. type: Labeled list -#: en/diff-options.txt:123 +#: en/git-web--browse.txt:54 #, no-wrap -msgid "--shortstat" +msgid "--config=<conf.var>" msgstr "" #. type: Plain text -#: en/diff-options.txt:127 +#: en/git-web--browse.txt:57 msgid "" -"Output only the last line of the `--stat` format containing total number of " -"modified files, as well as number of added and deleted lines." +"CONF.VAR is looked up in the Git config files. If it's set, then its value " +"specifies the browser that should be used." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:128 +#. type: Title ~ +#: en/git-web--browse.txt:62 #, no-wrap -msgid "--dirstat[=<param1,param2,...>]" +msgid "CONF.VAR (from -c option) and web.browser" msgstr "" #. type: Plain text -#: en/diff-options.txt:135 +#: en/git-web--browse.txt:67 msgid "" -"Output the distribution of relative amount of changes for each " -"sub-directory. The behavior of `--dirstat` can be customized by passing it a " -"comma separated list of parameters. The defaults are controlled by the " -"`diff.dirstat` configuration variable (see linkgit:git-config[1]). The " -"following parameters are available:" +"The web browser can be specified using a configuration variable passed with " +"the -c (or --config) command-line option, or the `web.browser` configuration " +"variable if the former is not used." msgstr "" -#. type: Plain text -#: en/diff-options.txt:171 -msgid "" -"Example: The following will count changed files, while ignoring directories " -"with less than 10% of the total amount of changed files, and accumulating " -"child directory counts in the parent directories: " -"`--dirstat=files,10,cumulative`." +#. type: Title ~ +#: en/git-web--browse.txt:69 +#, no-wrap +msgid "browser.<tool>.path" msgstr "" #. type: Plain text -#: en/diff-options.txt:175 +#: en/git-web--browse.txt:76 msgid "" -"Output a condensed summary of extended header information such as creations, " -"renames and mode changes." +"You can explicitly provide a full path to your preferred browser by setting " +"the configuration variable `browser.<tool>.path`. For example, you can " +"configure the absolute path to firefox by setting 'browser.firefox.path'. " +"Otherwise, 'git web{litdd}browse' assumes the tool is available in PATH." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:177 +#. type: Title ~ +#: en/git-web--browse.txt:78 #, no-wrap -msgid "--patch-with-stat" +msgid "browser.<tool>.cmd" msgstr "" #. type: Plain text -#: en/diff-options.txt:179 -msgid "Synonym for `-p --stat`." +#: en/git-web--browse.txt:86 +msgid "" +"When the browser, specified by options or configuration variables, is not " +"among the supported ones, then the corresponding `browser.<tool>.cmd` " +"configuration variable will be looked up. If this variable exists then 'git " +"web{litdd}browse' will treat the specified tool as a custom command and will " +"use a shell eval to run the command with the URLs passed as arguments." msgstr "" -#. type: Plain text -#: en/diff-options.txt:186 +#. type: Title - +#: en/git-web--browse.txt:88 #, no-wrap -msgid "\tSeparate the commits with NULs instead of with new newlines.\n" +msgid "NOTE ABOUT KONQUEROR" msgstr "" #. type: Plain text -#: en/diff-options.txt:189 +#: en/git-web--browse.txt:93 msgid "" -"Also, when `--raw` or `--numstat` has been given, do not munge pathnames and " -"use NULs as output field terminators." +"When 'konqueror' is specified by a command-line option or a configuration " +"variable, we launch 'kfmclient' to try to open the HTML man page on an " +"already opened konqueror in a new tab if possible." msgstr "" #. type: Plain text -#: en/diff-options.txt:193 -#, no-wrap +#: en/git-web--browse.txt:97 msgid "" -"\tWhen `--raw`, `--numstat`, `--name-only` or `--name-status` has been\n" -"\tgiven, do not munge pathnames and use NULs as output field terminators.\n" +"For consistency, we also try such a trick if 'browser.konqueror.path' is set " +"to something like 'A_PATH_TO/konqueror'. That means we will try to launch " +"'A_PATH_TO/kfmclient' instead." msgstr "" -#. type: Plain text -#: en/diff-options.txt:201 -msgid "Show only names of changed files." +#. type: delimited block - +#: en/git-web--browse.txt:104 +#, no-wrap +msgid "" +"\t[web]\n" +"\t\tbrowser = konq\n" msgstr "" -#. type: Plain text -#: en/diff-options.txt:205 +#. type: delimited block - +#: en/git-web--browse.txt:107 +#, no-wrap msgid "" -"Show only names and status of changed files. See the description of the " -"`--diff-filter` option on what the status letters mean." +"\t[browser \"konq\"]\n" +"\t\tcmd = A_PATH_TO/konqueror\n" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:206 +#. type: Title ~ +#: en/git-web--browse.txt:110 #, no-wrap -msgid "--submodule[=<format>]" +msgid "Note about git-config --global" msgstr "" #. type: Plain text -#: en/diff-options.txt:217 +#: en/git-web--browse.txt:114 msgid "" -"Specify how differences in submodules are shown. When specifying " -"`--submodule=short` the 'short' format is used. This format just shows the " -"names of the commits at the beginning and end of the range. When " -"`--submodule` or `--submodule=log` is specified, the 'log' format is used. " -"This format lists the commits in the range like linkgit:git-submodule[1] " -"`summary` does. When `--submodule=diff` is specified, the 'diff' format is " -"used. This format shows an inline diff of the changes in the submodule " -"contents between the commit range. Defaults to `diff.submodule` or the " -"'short' format if the config option is unset." +"Note that these configuration variables should probably be set using the `--" +"global` flag, for example like this:" msgstr "" -#. type: Plain text -#: en/diff-options.txt:222 -msgid "" -"Show colored diff. `--color` (i.e. without '=<when>') is the same as " -"`--color=always`. '<when>' can be one of `always`, `never`, or `auto`." +#. type: delimited block - +#: en/git-web--browse.txt:117 +#, no-wrap +msgid "$ git config --global web.browser firefox\n" msgstr "" -#. type: Plain text -#: en/diff-options.txt:225 +#. type: Title = +#: en/git-whatchanged.txt:2 #, no-wrap -msgid "" -"\tIt can be changed by the `color.ui` and `color.diff`\n" -"\tconfiguration settings.\n" +msgid "git-whatchanged(1)" msgstr "" #. type: Plain text -#: en/diff-options.txt:229 -msgid "Turn off colored diff." +#: en/git-whatchanged.txt:7 +msgid "git-whatchanged - Show logs with difference each commit introduces" msgstr "" #. type: Plain text -#: en/diff-options.txt:231 +#: en/git-whatchanged.txt:13 #, no-wrap -msgid "\tThis can be used to override configuration settings.\n" +msgid "'git whatchanged' <option>...\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:233 -#, no-wrap -msgid "\tIt is the same as `--color=never`.\n" -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:234 -#, no-wrap -msgid "--word-diff[=<mode>]" +#: en/git-whatchanged.txt:18 +msgid "Shows commit logs and diff output each commit introduces." msgstr "" #. type: Plain text -#: en/diff-options.txt:239 +#: en/git-whatchanged.txt:22 msgid "" -"Show a word diff, using the <mode> to delimit changed words. By default, " -"words are delimited by whitespace; see `--word-diff-regex` below. The " -"<mode> defaults to 'plain', and must be one of:" +"New users are encouraged to use linkgit:git-log[1] instead. The " +"`whatchanged` command is essentially the same as linkgit:git-log[1] but " +"defaults to show the raw format diff output and to skip merges." msgstr "" #. type: Plain text -#: en/diff-options.txt:243 -msgid "Highlight changed words using only colors. Implies `--color`." +#: en/git-whatchanged.txt:26 +msgid "" +"The command is kept primarily for historical reasons; fingers of many people " +"who learned Git long before `git log` was invented by reading Linux kernel " +"mailing list are trained to type it." msgstr "" #. type: Labeled list -#: en/diff-options.txt:243 +#: en/git-whatchanged.txt:30 #, no-wrap -msgid "plain" +msgid "`git whatchanged -p v2.6.12.. include/scsi drivers/scsi`" msgstr "" #. type: Plain text -#: en/diff-options.txt:247 +#: en/git-whatchanged.txt:34 msgid "" -"Show words as `[-removed-]` and `{+added+}`. Makes no attempts to escape " -"the delimiters if they appear in the input, so the output may be ambiguous." +"Show as patches the commits since version 'v2.6.12' that changed any file in " +"the include/scsi or drivers/scsi subdirectories" msgstr "" #. type: Labeled list -#: en/diff-options.txt:247 +#: en/git-whatchanged.txt:35 #, no-wrap -msgid "porcelain" +msgid "`git whatchanged --since=\"2 weeks ago\" -- gitk`" msgstr "" #. type: Plain text -#: en/diff-options.txt:254 +#: en/git-whatchanged.txt:40 msgid "" -"Use a special line-based format intended for script consumption. " -"Added/removed/unchanged runs are printed in the usual unified diff format, " -"starting with a `+`/`-`/` ` character at the beginning of the line and " -"extending to the end of the line. Newlines in the input are represented by " -"a tilde `~` on a line of its own." +"Show the changes during the last two weeks to the file 'gitk'. The \"--\" " +"is necessary to avoid confusion with the *branch* named 'gitk'" msgstr "" -#. type: Plain text -#: en/diff-options.txt:256 -msgid "Disable word diff again." +#. type: Title = +#: en/git-worktree.txt:2 +#, no-wrap +msgid "git-worktree(1)" msgstr "" #. type: Plain text -#: en/diff-options.txt:260 -msgid "" -"Note that despite the name of the first mode, color is used to highlight the " -"changed parts in all modes if enabled." +#: en/git-worktree.txt:7 +msgid "git-worktree - Manage multiple working trees" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:261 +#. type: Plain text +#: en/git-worktree.txt:19 #, no-wrap -msgid "--word-diff-regex=<regex>" +msgid "" +"'git worktree add' [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]\n" +"'git worktree list' [--porcelain]\n" +"'git worktree lock' [--reason <string>] <worktree>\n" +"'git worktree move' <worktree> <new-path>\n" +"'git worktree prune' [-n] [-v] [--expire <expire>]\n" +"'git worktree remove' [-f] <worktree>\n" +"'git worktree unlock' <worktree>\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:265 -msgid "" -"Use <regex> to decide what a word is, instead of considering runs of " -"non-whitespace to be a word. Also implies `--word-diff` unless it was " -"already enabled." +#: en/git-worktree.txt:24 +msgid "Manage multiple working trees attached to the same repository." msgstr "" #. type: Plain text -#: en/diff-options.txt:273 +#: en/git-worktree.txt:32 msgid "" -"Every non-overlapping match of the <regex> is considered a word. Anything " -"between these matches is considered whitespace and ignored(!) for the " -"purposes of finding differences. You may want to append `|[^[:space:]]` to " -"your regular expression to make sure that it matches all non-whitespace " -"characters. A match that contains a newline is silently truncated(!) at the " -"newline." +"A git repository can support multiple working trees, allowing you to check " +"out more than one branch at a time. With `git worktree add` a new working " +"tree is associated with the repository. This new working tree is called a " +"\"linked working tree\" as opposed to the \"main working tree\" prepared by " +"\"git init\" or \"git clone\". A repository has one main working tree (if " +"it's not a bare repository) and zero or more linked working trees. When you " +"are done with a linked working tree, remove it with `git worktree remove`." msgstr "" #. type: Plain text -#: en/diff-options.txt:276 +#: en/git-worktree.txt:39 msgid "" -"For example, `--word-diff-regex=.` will treat each character as a word and, " -"correspondingly, show differences character by character." +"If a working tree is deleted without using `git worktree remove`, then its " +"associated administrative files, which reside in the repository (see " +"\"DETAILS\" below), will eventually be removed automatically (see `gc." +"worktreePruneExpire` in linkgit:git-config[1]), or you can run `git worktree " +"prune` in the main or any linked working tree to clean up any stale " +"administrative files." msgstr "" #. type: Plain text -#: en/diff-options.txt:281 +#: en/git-worktree.txt:44 msgid "" -"The regex can also be set via a diff driver or configuration option, see " -"linkgit:gitattributes[5] or linkgit:git-config[1]. Giving it explicitly " -"overrides any diff driver or configuration setting. Diff drivers override " -"configuration settings." +"If a linked working tree is stored on a portable device or network share " +"which is not always mounted, you can prevent its administrative files from " +"being pruned by issuing the `git worktree lock` command, optionally " +"specifying `--reason` to explain why the working tree is locked." msgstr "" #. type: Labeled list -#: en/diff-options.txt:282 +#: en/git-worktree.txt:47 #, no-wrap -msgid "--color-words[=<regex>]" +msgid "add <path> [<commit-ish>]" msgstr "" #. type: Plain text -#: en/diff-options.txt:285 +#: en/git-worktree.txt:53 msgid "" -"Equivalent to `--word-diff=color` plus (if a regex was specified) " -"`--word-diff-regex=<regex>`." +"Create `<path>` and checkout `<commit-ish>` into it. The new working " +"directory is linked to the current repository, sharing everything except " +"working directory specific files such as HEAD, index, etc. `-` may also be " +"specified as `<commit-ish>`; it is synonymous with `@{-1}`." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:287 +#. type: Plain text +#: en/git-worktree.txt:58 +msgid "" +"If <commit-ish> is a branch name (call it `<branch>`) and is not found, and " +"neither `-b` nor `-B` nor `--detach` are used, but there does exist a " +"tracking branch in exactly one remote (call it `<remote>`) with a matching " +"name, treat as equivalent to:" +msgstr "" + +#. type: delimited block - +#: en/git-worktree.txt:61 #, no-wrap -msgid "--no-renames" +msgid "$ git worktree add --track -b <branch> <path> <remote>/<branch>\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:290 +#: en/git-worktree.txt:80 msgid "" -"Turn off rename detection, even when the configuration file gives the " -"default to do so." +"If `<commit-ish>` is omitted and neither `-b` nor `-B` nor `--detach` used, " +"then, as a convenience, the new worktree is associated with a branch (call " +"it `<branch>`) named after `$(basename <path>)`. If `<branch>` doesn't " +"exist, a new branch based on HEAD is automatically created as if `-b " +"<branch>` was given. If `<branch>` does exist, it will be checked out in " +"the new worktree, if it's not checked out anywhere else, otherwise the " +"command will refuse to create the worktree (unless `--force` is used)." msgstr "" #. type: Plain text -#: en/diff-options.txt:301 +#: en/git-worktree.txt:87 msgid "" -"Warn if changes introduce conflict markers or whitespace errors. What are " -"considered whitespace errors is controlled by `core.whitespace` " -"configuration. By default, trailing whitespaces (including lines that " -"solely consist of whitespaces) and a space character that is immediately " -"followed by a tab character inside the initial indent of the line are " -"considered whitespace errors. Exits with non-zero status if problems are " -"found. Not compatible with --exit-code." +"List details of each worktree. The main worktree is listed first, followed " +"by each of the linked worktrees. The output details include if the worktree " +"is bare, the revision currently checked out, and the branch currently " +"checked out (or 'detached HEAD' if none)." msgstr "" #. type: Labeled list -#: en/diff-options.txt:302 +#: en/git-worktree.txt:88 #, no-wrap -msgid "--ws-error-highlight=<kind>" +msgid "lock" msgstr "" #. type: Plain text -#: en/diff-options.txt:312 +#: en/git-worktree.txt:95 msgid "" -"Highlight whitespace errors on lines specified by <kind> in the color " -"specified by `color.diff.whitespace`. <kind> is a comma separated list of " -"`old`, `new`, `context`. When this option is not given, only whitespace " -"errors in `new` lines are highlighted. E.g. `--ws-error-highlight=new,old` " -"highlights whitespace errors on both deleted and added lines. `all` can be " -"used as a short-hand for `old,new,context`. The `diff.wsErrorHighlight` " -"configuration variable can be used to specify the default behaviour." +"If a working tree is on a portable device or network share which is not " +"always mounted, lock it to prevent its administrative files from being " +"pruned automatically. This also prevents it from being moved or deleted. " +"Optionally, specify a reason for the lock with `--reason`." msgstr "" #. type: Labeled list -#: en/diff-options.txt:315 +#: en/git-worktree.txt:96 #, no-wrap -msgid "--full-index" +msgid "move" msgstr "" #. type: Plain text -#: en/diff-options.txt:319 +#: en/git-worktree.txt:100 msgid "" -"Instead of the first handful of characters, show the full pre- and " -"post-image blob object names on the \"index\" line when generating patch " -"format output." +"Move a working tree to a new location. Note that the main working tree or " +"linked working trees containing submodules cannot be moved." msgstr "" #. type: Plain text -#: en/diff-options.txt:323 -msgid "" -"In addition to `--full-index`, output a binary diff that can be applied with " -"`git-apply`." +#: en/git-worktree.txt:104 +msgid "Prune working tree information in $GIT_DIR/worktrees." msgstr "" #. type: Plain text -#: en/diff-options.txt:331 +#: en/git-worktree.txt:111 msgid "" -"Instead of showing the full 40-byte hexadecimal object name in diff-raw " -"format output and diff-tree header lines, show only a partial prefix. This " -"is independent of the `--full-index` option above, which controls the " -"diff-patch output format. Non default number of digits can be specified " -"with `--abbrev=<n>`." +"Remove a working tree. Only clean working trees (no untracked files and no " +"modification in tracked files) can be removed. Unclean working trees or ones " +"with submodules can be removed with `--force`. The main working tree cannot " +"be removed." msgstr "" #. type: Labeled list -#: en/diff-options.txt:332 +#: en/git-worktree.txt:112 #, no-wrap -msgid "-B[<n>][/<m>]" +msgid "unlock" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:333 -#, no-wrap -msgid "--break-rewrites[=[<n>][/<m>]]" +#. type: Plain text +#: en/git-worktree.txt:115 +msgid "Unlock a working tree, allowing it to be pruned, moved or deleted." msgstr "" #. type: Plain text -#: en/diff-options.txt:336 +#: en/git-worktree.txt:127 msgid "" -"Break complete rewrite changes into pairs of delete and create. This serves " -"two purposes:" +"By default, `add` refuses to create a new working tree when `<commit-ish>` " +"is a branch name and is already checked out by another working tree, or if " +"`<path>` is already assigned to some working tree but is missing (for " +"instance, if `<path>` was deleted manually). This option overrides these " +"safeguards. To add a missing but locked working tree path, specify `--force` " +"twice." msgstr "" #. type: Plain text -#: en/diff-options.txt:346 +#: en/git-worktree.txt:130 msgid "" -"It affects the way a change that amounts to a total rewrite of a file not as " -"a series of deletion and insertion mixed together with a very few lines that " -"happen to match textually as the context, but as a single deletion of " -"everything old followed by a single insertion of everything new, and the " -"number `m` controls this aspect of the -B option (defaults to 60%). `-B/70%` " -"specifies that less than 30% of the original should remain in the result for " -"Git to consider it a total rewrite (i.e. otherwise the resulting patch will " -"be a series of deletion and insertion mixed together with context lines)." +"`move` refuses to move a locked working tree unless `--force` is specified " +"twice." msgstr "" #. type: Plain text -#: en/diff-options.txt:354 +#: en/git-worktree.txt:133 msgid "" -"When used with -M, a totally-rewritten file is also considered as the source " -"of a rename (usually -M only considers a file that disappeared as the source " -"of a rename), and the number `n` controls this aspect of the -B option " -"(defaults to 50%). `-B20%` specifies that a change with addition and " -"deletion compared to 20% or more of the file's size are eligible for being " -"picked up as a possible source of a rename to another file." +"`remove` refuses to remove an unclean working tree unless `--force` is " +"used. To remove a locked working tree, specify `--force` twice." msgstr "" #. type: Labeled list -#: en/diff-options.txt:355 +#: en/git-worktree.txt:134 #, no-wrap -msgid "-M[<n>]" +msgid "-b <new-branch>" msgstr "" #. type: Labeled list -#: en/diff-options.txt:356 +#: en/git-worktree.txt:135 #, no-wrap -msgid "--find-renames[=<n>]" -msgstr "" - -#. type: Plain text -#: en/diff-options.txt:359 -#, no-wrap -msgid "\tDetect renames.\n" +msgid "-B <new-branch>" msgstr "" #. type: Plain text -#: en/diff-options.txt:364 -#, no-wrap +#: en/git-worktree.txt:142 msgid "" -"\tIf generating diffs, detect and report renames for each commit.\n" -"\tFor following files across renames while traversing history, see\n" -"\t`--follow`.\n" +"With `add`, create a new branch named `<new-branch>` starting at `<commit-" +"ish>`, and check out `<new-branch>` into the new working tree. If `<commit-" +"ish>` is omitted, it defaults to HEAD. By default, `-b` refuses to create a " +"new branch if it already exists. `-B` overrides this safeguard, resetting " +"`<new-branch>` to `<commit-ish>`." msgstr "" #. type: Plain text -#: en/diff-options.txt:374 -#, no-wrap +#: en/git-worktree.txt:146 msgid "" -"\tIf `n` is specified, it is a threshold on the similarity\n" -"\tindex (i.e. amount of addition/deletions compared to the\n" -"\tfile's size). For example, `-M90%` means Git should consider a\n" -"\tdelete/add pair to be a rename if more than 90% of the file\n" -"\thasn't changed. Without a `%` sign, the number is to be read as\n" -"\ta fraction, with a decimal point before it. I.e., `-M5` becomes\n" -"\t0.5, and is thus the same as `-M50%`. Similarly, `-M05` is\n" -"\tthe same as `-M5%`. To limit detection to exact renames, use\n" -"\t`-M100%`. The default similarity index is 50%.\n" +"With `add`, detach HEAD in the new working tree. See \"DETACHED HEAD\" in " +"linkgit:git-checkout[1]." msgstr "" #. type: Labeled list -#: en/diff-options.txt:375 +#: en/git-worktree.txt:147 #, no-wrap -msgid "-C[<n>]" +msgid "--[no-]checkout" +msgstr "" + +#. type: Plain text +#: en/git-worktree.txt:152 +msgid "" +"By default, `add` checks out `<commit-ish>`, however, `--no-checkout` can be " +"used to suppress checkout in order to make customizations, such as " +"configuring sparse-checkout. See \"Sparse checkout\" in linkgit:git-read-" +"tree[1]." msgstr "" #. type: Labeled list -#: en/diff-options.txt:376 +#: en/git-worktree.txt:153 #, no-wrap -msgid "--find-copies[=<n>]" +msgid "--[no-]guess-remote" msgstr "" #. type: Plain text -#: en/diff-options.txt:379 +#: en/git-worktree.txt:159 msgid "" -"Detect copies as well as renames. See also `--find-copies-harder`. If `n` " -"is specified, it has the same meaning as for `-M<n>`." +"With `worktree add <path>`, without `<commit-ish>`, instead of creating a " +"new branch from HEAD, if there exists a tracking branch in exactly one " +"remote matching the basename of `<path>`, base the new branch on the remote-" +"tracking branch, and mark the remote-tracking branch as \"upstream\" from " +"the new branch." msgstr "" #. type: Plain text -#: en/diff-options.txt:388 +#: en/git-worktree.txt:162 msgid "" -"For performance reasons, by default, `-C` option finds copies only if the " -"original file of the copy was modified in the same changeset. This flag " -"makes the command inspect unmodified files as candidates for the source of " -"copy. This is a very expensive operation for large projects, so use it with " -"caution. Giving more than one `-C` option has the same effect." +"This can also be set up as the default behaviour by using the `worktree." +"guessRemote` config option." msgstr "" #. type: Labeled list -#: en/diff-options.txt:390 +#: en/git-worktree.txt:163 #, no-wrap -msgid "--irreversible-delete" +msgid "--[no-]track" msgstr "" #. type: Plain text -#: en/diff-options.txt:398 +#: en/git-worktree.txt:168 msgid "" -"Omit the preimage for deletes, i.e. print only the header but not the diff " -"between the preimage and `/dev/null`. The resulting patch is not meant to be " -"applied with `patch` or `git apply`; this is solely for people who want to " -"just concentrate on reviewing the text after the change. In addition, the " -"output obviously lack enough information to apply such a patch in reverse, " -"even manually, hence the name of the option." +"When creating a new branch, if `<commit-ish>` is a branch, mark it as " +"\"upstream\" from the new branch. This is the default if `<commit-ish>` is " +"a remote-tracking branch. See \"--track\" in linkgit:git-branch[1] for " +"details." msgstr "" -#. type: Plain text -#: en/diff-options.txt:401 -msgid "" -"When used together with `-B`, omit also the preimage in the deletion part of " -"a delete/create pair." +#. type: Labeled list +#: en/git-worktree.txt:169 +#, no-wrap +msgid "--lock" msgstr "" #. type: Plain text -#: en/diff-options.txt:408 +#: en/git-worktree.txt:173 msgid "" -"The `-M` and `-C` options require O(n^2) processing time where n is the " -"number of potential rename/copy targets. This option prevents rename/copy " -"detection from running if the number of rename/copy targets exceeds the " -"specified number." -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:410 -#, no-wrap -msgid "--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]" +"Keep the working tree locked after creation. This is the equivalent of `git " +"worktree lock` after `git worktree add`, but without race condition." msgstr "" #. type: Plain text -#: en/diff-options.txt:421 -msgid "" -"Select only files that are Added (`A`), Copied (`C`), Deleted (`D`), " -"Modified (`M`), Renamed (`R`), have their type (i.e. regular file, symlink, " -"submodule, ...) changed (`T`), are Unmerged (`U`), are Unknown (`X`), or " -"have had their pairing Broken (`B`). Any combination of the filter " -"characters (including none) can be used. When `*` (All-or-none) is added to " -"the combination, all paths are selected if there is any file that matches " -"other criteria in the comparison; if there is no file that matches other " -"criteria, nothing is selected." +#: en/git-worktree.txt:178 +msgid "With `prune`, do not remove anything; just report what it would remove." msgstr "" #. type: Plain text -#: en/diff-options.txt:424 +#: en/git-worktree.txt:183 msgid "" -"Also, these upper-case letters can be downcased to exclude. E.g. " -"`--diff-filter=ad` excludes added and deleted paths." +"With `list`, output in an easy-to-parse format for scripts. This format " +"will remain stable across Git versions and regardless of user " +"configuration. See below for details." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:425 -#, no-wrap -msgid "-S<string>" +#. type: Plain text +#: en/git-worktree.txt:187 +msgid "With 'add', suppress feedback messages." msgstr "" #. type: Plain text -#: en/diff-options.txt:429 -msgid "" -"Look for differences that change the number of occurrences of the specified " -"string (i.e. addition/deletion) in a file. Intended for the scripter's use." +#: en/git-worktree.txt:191 +msgid "With `prune`, report all removals." msgstr "" #. type: Plain text -#: en/diff-options.txt:435 -msgid "" -"It is useful when you're looking for an exact block of code (like a struct), " -"and want to know the history of that block since it first came into being: " -"use the feature iteratively to feed the interesting block in the preimage " -"back into `-S`, and keep going until you get the very first version of the " -"block." +#: en/git-worktree.txt:194 +msgid "With `prune`, only expire unused working trees older than <time>." msgstr "" #. type: Labeled list -#: en/diff-options.txt:436 +#: en/git-worktree.txt:195 #, no-wrap -msgid "-G<regex>" -msgstr "" - -#. type: Plain text -#: en/diff-options.txt:439 -msgid "" -"Look for differences whose patch text contains added/removed lines that " -"match <regex>." +msgid "--reason <string>" msgstr "" #. type: Plain text -#: en/diff-options.txt:443 -msgid "" -"To illustrate the difference between `-S<regex> --pickaxe-regex` and " -"`-G<regex>`, consider a commit with the following diff in the same file:" +#: en/git-worktree.txt:197 +msgid "With `lock`, an explanation why the working tree is locked." msgstr "" -#. type: delimited block - -#: en/diff-options.txt:448 +#. type: Labeled list +#: en/git-worktree.txt:198 #, no-wrap -msgid "" -"+ return !regexec(regexp, two->ptr, 1, ®match, 0);\n" -"...\n" -"- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);\n" +msgid "<worktree>" msgstr "" #. type: Plain text -#: en/diff-options.txt:453 -msgid "" -"While `git log -G\"regexec\\(regexp\"` will show this commit, `git log " -"-S\"regexec\\(regexp\" --pickaxe-regex` will not (because the number of " -"occurrences of that string did not change)." +#: en/git-worktree.txt:201 +msgid "Working trees can be identified by path, either relative or absolute." msgstr "" #. type: Plain text -#: en/diff-options.txt:456 -msgid "See the 'pickaxe' entry in linkgit:gitdiffcore[7] for more information." +#: en/git-worktree.txt:206 +msgid "" +"If the last path components in the working tree's path is unique among " +"working trees, it can be used to identify worktrees. For example if you only " +"have two working trees, at \"/abc/def/ghi\" and \"/abc/def/ggg\", then \"ghi" +"\" or \"def/ghi\" is enough to point to the former working tree." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:457 +#. type: Title - +#: en/git-worktree.txt:208 #, no-wrap -msgid "--pickaxe-all" +msgid "REFS" msgstr "" #. type: Plain text -#: en/diff-options.txt:461 +#: en/git-worktree.txt:213 msgid "" -"When `-S` or `-G` finds a change, show all the changes in that changeset, " -"not just the files that contain the change in <string>." -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:462 -#, no-wrap -msgid "--pickaxe-regex" +"In multiple working trees, some refs may be shared between all working " +"trees, some refs are local. One example is HEAD is different for all working " +"trees. This section is about the sharing rules and how to access refs of one " +"working tree from another." msgstr "" #. type: Plain text -#: en/diff-options.txt:465 +#: en/git-worktree.txt:219 msgid "" -"Treat the <string> given to `-S` as an extended POSIX regular expression to " -"match." +"In general, all pseudo refs are per working tree and all refs starting with " +"\"refs/\" are shared. Pseudo refs are ones like HEAD which are directly " +"under GIT_DIR instead of inside GIT_DIR/refs. There are one exception to " +"this: refs inside refs/bisect and refs/worktree is not shared." msgstr "" #. type: Plain text -#: en/diff-options.txt:472 +#: en/git-worktree.txt:224 msgid "" -"Control the order in which files appear in the output. This overrides the " -"`diff.orderFile` configuration variable (see linkgit:git-config[1]). To " -"cancel `diff.orderFile`, use `-O/dev/null`." +"Refs that are per working tree can still be accessed from another working " +"tree via two special paths, main-worktree and worktrees. The former gives " +"access to per-worktree refs of the main working tree, while the latter to " +"all linked working trees." msgstr "" #. type: Plain text -#: en/diff-options.txt:484 +#: en/git-worktree.txt:231 msgid "" -"The output order is determined by the order of glob patterns in " -"<orderfile>. All files with pathnames that match the first pattern are " -"output first, all files with pathnames that match the second pattern (but " -"not the first) are output next, and so on. All files with pathnames that do " -"not match any pattern are output last, as if there was an implicit match-all " -"pattern at the end of the file. If multiple pathnames have the same rank " -"(they match the same pattern but no earlier patterns), their output order " -"relative to each other is the normal order." +"For example, main-worktree/HEAD or main-worktree/refs/bisect/good resolve to " +"the same value as the main working tree's HEAD and refs/bisect/good " +"respectively. Similarly, worktrees/foo/HEAD or worktrees/bar/refs/bisect/bad " +"are the same as GIT_COMMON_DIR/worktrees/foo/HEAD and GIT_COMMON_DIR/" +"worktrees/bar/refs/bisect/bad." msgstr "" #. type: Plain text -#: en/diff-options.txt:486 -msgid "<orderfile> is parsed as follows:" +#: en/git-worktree.txt:235 +msgid "" +"To access refs, it's best not to look inside GIT_DIR directly. Instead use " +"commands such as linkgit:git-rev-parse[1] or linkgit:git-update-ref[1] which " +"will handle refs correctly." msgstr "" #. type: Plain text -#: en/diff-options.txt:490 -msgid "Blank lines are ignored, so they can be used as separators for readability." +#: en/git-worktree.txt:242 +msgid "" +"By default, the repository \"config\" file is shared across all working " +"trees. If the config variables `core.bare` or `core.worktree` are already " +"present in the config file, they will be applied to the main working trees " +"only." msgstr "" #. type: Plain text -#: en/diff-options.txt:494 +#: en/git-worktree.txt:245 msgid "" -"Lines starting with a hash (\"`#`\") are ignored, so they can be used for " -"comments. Add a backslash (\"`\\`\") to the beginning of the pattern if it " -"starts with a hash." +"In order to have configuration specific to working trees, you can turn on " +"\"worktreeConfig\" extension, e.g.:" msgstr "" -#. type: Plain text -#: en/diff-options.txt:496 -msgid "Each other line contains a single pattern." +#. type: delimited block - +#: en/git-worktree.txt:248 +#, no-wrap +msgid "$ git config extensions.worktreeConfig true\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:503 +#: en/git-worktree.txt:254 msgid "" -"Patterns have the same syntax and semantics as patterns used for fnmantch(3) " -"without the FNM_PATHNAME flag, except a pathname also matches a pattern if " -"removing any number of the final pathname components matches the pattern. " -"For example, the pattern \"`foo*bar`\" matches \"`fooasdfbar`\" and " -"\"`foo/bar/baz/asdf`\" but not \"`foobarx`\"." +"In this mode, specific configuration stays in the path pointed by `git rev-" +"parse --git-path config.worktree`. You can add or update configuration in " +"this file with `git config --worktree`. Older Git versions will refuse to " +"access repositories with this extension." msgstr "" #. type: Plain text -#: en/diff-options.txt:508 +#: en/git-worktree.txt:260 msgid "" -"Swap two inputs; that is, show differences from index or on-disk file to " -"tree contents." -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:509 -#, no-wrap -msgid "--relative[=<path>]" +"Note that in this file, the exception for `core.bare` and `core.worktree` is " +"gone. If you have them in $GIT_DIR/config before, you must move them to the " +"`config.worktree` of the main working tree. You may also take this " +"opportunity to review and move other configuration that you do not want to " +"share to all working trees:" msgstr "" #. type: Plain text -#: en/diff-options.txt:516 -msgid "" -"When run from a subdirectory of the project, it can be told to exclude " -"changes outside the directory and show pathnames relative to it with this " -"option. When you are not in a subdirectory (e.g. in a bare repository), you " -"can name which subdirectory to make the output relative to by giving a " -"<path> as an argument." +#: en/git-worktree.txt:262 +msgid "`core.worktree` and `core.bare` should never be shared" msgstr "" #. type: Plain text -#: en/diff-options.txt:521 -msgid "Treat all files as text." +#: en/git-worktree.txt:265 +msgid "" +"`core.sparseCheckout` is recommended per working tree, unless you are sure " +"you always use sparse checkout for all working trees." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:522 +#. type: Title - +#: en/git-worktree.txt:267 #, no-wrap -msgid "--ignore-space-at-eol" +msgid "DETAILS" msgstr "" #. type: Plain text -#: en/diff-options.txt:524 -msgid "Ignore changes in whitespace at EOL." +#: en/git-worktree.txt:276 +msgid "" +"Each linked working tree has a private sub-directory in the repository's " +"$GIT_DIR/worktrees directory. The private sub-directory's name is usually " +"the base name of the linked working tree's path, possibly appended with a " +"number to make it unique. For example, when `$GIT_DIR=/path/main/.git` the " +"command `git worktree add /path/other/test-next next` creates the linked " +"working tree in `/path/other/test-next` and also creates a `$GIT_DIR/" +"worktrees/test-next` directory (or `$GIT_DIR/worktrees/test-next1` if `test-" +"next` is already taken)." msgstr "" #. type: Plain text -#: en/diff-options.txt:530 +#: en/git-worktree.txt:282 msgid "" -"Ignore changes in amount of whitespace. This ignores whitespace at line " -"end, and considers all other sequences of one or more whitespace characters " -"to be equivalent." -msgstr "" - -#. type: Labeled list -#: en/diff-options.txt:532 -#, no-wrap -msgid "--ignore-all-space" +"Within a linked working tree, $GIT_DIR is set to point to this private " +"directory (e.g. `/path/main/.git/worktrees/test-next` in the example) and " +"$GIT_COMMON_DIR is set to point back to the main working tree's $GIT_DIR (e." +"g. `/path/main/.git`). These settings are made in a `.git` file located at " +"the top directory of the linked working tree." msgstr "" #. type: Plain text -#: en/diff-options.txt:536 +#: en/git-worktree.txt:292 msgid "" -"Ignore whitespace when comparing lines. This ignores differences even if " -"one line has whitespace where the other line has none." +"Path resolution via `git rev-parse --git-path` uses either $GIT_DIR or " +"$GIT_COMMON_DIR depending on the path. For example, in the linked working " +"tree `git rev-parse --git-path HEAD` returns `/path/main/.git/worktrees/test-" +"next/HEAD` (not `/path/other/test-next/.git/HEAD` or `/path/main/.git/HEAD`) " +"while `git rev-parse --git-path refs/heads/master` uses $GIT_COMMON_DIR and " +"returns `/path/main/.git/refs/heads/master`, since refs are shared across " +"all working trees, except refs/bisect and refs/worktree." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:537 -#, no-wrap -msgid "--ignore-blank-lines" +#. type: Plain text +#: en/git-worktree.txt:297 +msgid "" +"See linkgit:gitrepository-layout[5] for more information. The rule of thumb " +"is do not make any assumption about whether a path belongs to $GIT_DIR or " +"$GIT_COMMON_DIR when you need to directly access something inside $GIT_DIR. " +"Use `git rev-parse --git-path` to get the final path." msgstr "" #. type: Plain text -#: en/diff-options.txt:539 -msgid "Ignore changes whose lines are all blank." +#: en/git-worktree.txt:304 +msgid "" +"If you manually move a linked working tree, you need to update the 'gitdir' " +"file in the entry's directory. For example, if a linked working tree is " +"moved to `/newpath/test-next` and its `.git` file points to `/path/main/.git/" +"worktrees/test-next`, then update `/path/main/.git/worktrees/test-next/" +"gitdir` to reference `/newpath/test-next` instead." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:540 -#, no-wrap -msgid "--inter-hunk-context=<lines>" +#. type: Plain text +#: en/git-worktree.txt:315 +msgid "" +"To prevent a $GIT_DIR/worktrees entry from being pruned (which can be useful " +"in some situations, such as when the entry's working tree is stored on a " +"portable device), use the `git worktree lock` command, which adds a file " +"named 'locked' to the entry's directory. The file contains the reason in " +"plain text. For example, if a linked working tree's `.git` file points to `/" +"path/main/.git/worktrees/test-next` then a file named `/path/main/.git/" +"worktrees/test-next/locked` will prevent the `test-next` entry from being " +"pruned. See linkgit:gitrepository-layout[5] for details." msgstr "" #. type: Plain text -#: en/diff-options.txt:545 +#: en/git-worktree.txt:318 msgid "" -"Show the context between diff hunks, up to the specified number of lines, " -"thereby fusing hunks that are close to each other. Defaults to " -"`diff.interHunkContext` or 0 if the config option is unset." +"When extensions.worktreeConfig is enabled, the config file `.git/worktrees/" +"<id>/config.worktree` is read after `.git/config` is." msgstr "" -#. type: Plain text -#: en/diff-options.txt:549 -msgid "Show whole surrounding functions of changes." +#. type: Title - +#: en/git-worktree.txt:320 +#, no-wrap +msgid "LIST OUTPUT FORMAT" msgstr "" #. type: Plain text -#: en/diff-options.txt:556 +#: en/git-worktree.txt:323 msgid "" -"Make the program exit with codes similar to diff(1). That is, it exits with " -"1 if there were differences and 0 means no differences." +"The worktree list command has two output formats. The default format shows " +"the details on a single line with columns. For example:" msgstr "" -#. type: Plain text -#: en/diff-options.txt:559 -msgid "Disable all output of the program. Implies `--exit-code`." +#. type: delimited block - +#: en/git-worktree.txt:329 +#, no-wrap +msgid "" +"$ git worktree list\n" +"/path/to/bare-source (bare)\n" +"/path/to/linked-worktree abcd1234 [master]\n" +"/path/to/other-linked-worktree 1234abc (detached HEAD)\n" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:562 +#. type: Title ~ +#: en/git-worktree.txt:332 #, no-wrap -msgid "--ext-diff" +msgid "Porcelain Format" msgstr "" #. type: Plain text -#: en/diff-options.txt:566 +#: en/git-worktree.txt:338 msgid "" -"Allow an external diff helper to be executed. If you set an external diff " -"driver with linkgit:gitattributes[5], you need to use this option with " -"linkgit:git-log[1] and friends." +"The porcelain format has a line per attribute. Attributes are listed with a " +"label and value separated by a single space. Boolean attributes (like " +"'bare' and 'detached') are listed as a label only, and are only present if " +"and only if the value is true. The first attribute of a worktree is always " +"`worktree`, an empty line indicates the end of the record. For example:" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:567 +#. type: delimited block - +#: en/git-worktree.txt:343 #, no-wrap -msgid "--no-ext-diff" +msgid "" +"$ git worktree list --porcelain\n" +"worktree /path/to/bare-source\n" +"bare\n" msgstr "" -#. type: Plain text -#: en/diff-options.txt:569 -msgid "Disallow external diff drivers." +#. type: delimited block - +#: en/git-worktree.txt:347 +#, no-wrap +msgid "" +"worktree /path/to/linked-worktree\n" +"HEAD abcd1234abcd1234abcd1234abcd1234abcd1234\n" +"branch refs/heads/master\n" msgstr "" -#. type: Plain text -#: en/diff-options.txt:580 +#. type: delimited block - +#: en/git-worktree.txt:351 +#, no-wrap msgid "" -"Allow (or disallow) external text conversion filters to be run when " -"comparing binary files. See linkgit:gitattributes[5] for details. Because " -"textconv filters are typically a one-way conversion, the resulting diff is " -"suitable for human consumption, but cannot be applied. For this reason, " -"textconv filters are enabled by default only for linkgit:git-diff[1] and " -"linkgit:git-log[1], but not for linkgit:git-format-patch[1] or diff plumbing " -"commands." +"worktree /path/to/other-linked-worktree\n" +"HEAD 1234abc1234abc1234abc1234abc1234abc1234a\n" +"detached\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:593 +#: en/git-worktree.txt:364 msgid "" -"Ignore changes to submodules in the diff generation. <when> can be either " -"\"none\", \"untracked\", \"dirty\" or \"all\", which is the default. Using " -"\"none\" will consider the submodule modified when it either contains " -"untracked or modified files or its HEAD differs from the commit recorded in " -"the superproject and can be used to override any settings of the 'ignore' " -"option in linkgit:git-config[1] or linkgit:gitmodules[5]. When \"untracked\" " -"is used submodules are not considered dirty when they only contain untracked " -"content (but they are still scanned for modified content). Using \"dirty\" " -"ignores all changes to the work tree of submodules, only changes to the " -"commits stored in the superproject are shown (this was the behavior until " -"1.7.0). Using \"all\" hides all changes to submodules." +"You are in the middle of a refactoring session and your boss comes in and " +"demands that you fix something immediately. You might typically use linkgit:" +"git-stash[1] to store your changes away temporarily, however, your working " +"tree is in such a state of disarray (with new, moved, and removed files, and " +"other bits and pieces strewn around) that you don't want to risk disturbing " +"any of it. Instead, you create a temporary linked working tree to make the " +"emergency fix, remove it when done, and then resume your earlier refactoring " +"session." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:594 +#. type: delimited block - +#: en/git-worktree.txt:372 #, no-wrap -msgid "--src-prefix=<prefix>" +msgid "" +"$ git worktree add -b emergency-fix ../temp master\n" +"$ pushd ../temp\n" +"# ... hack hack hack ...\n" +"$ git commit -a -m 'emergency fix for boss'\n" +"$ popd\n" +"$ git worktree remove ../temp\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:596 -msgid "Show the given source prefix instead of \"a/\"." +#: en/git-worktree.txt:379 +msgid "" +"Multiple checkout in general is still experimental, and the support for " +"submodules is incomplete. It is NOT recommended to make multiple checkouts " +"of a superproject." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:597 +#. type: Title = +#: en/git-write-tree.txt:2 #, no-wrap -msgid "--dst-prefix=<prefix>" +msgid "git-write-tree(1)" msgstr "" #. type: Plain text -#: en/diff-options.txt:599 -msgid "Show the given destination prefix instead of \"b/\"." +#: en/git-write-tree.txt:7 +msgid "git-write-tree - Create a tree object from the current index" msgstr "" -#. type: Labeled list -#: en/diff-options.txt:600 +#. type: Plain text +#: en/git-write-tree.txt:13 #, no-wrap -msgid "--no-prefix" +msgid "'git write-tree' [--missing-ok] [--prefix=<prefix>/]\n" msgstr "" #. type: Plain text -#: en/diff-options.txt:602 -msgid "Do not show any source or destination prefix." +#: en/git-write-tree.txt:18 +msgid "" +"Creates a tree object using the current index. The name of the new tree " +"object is printed to standard output." msgstr "" -#. type: Labeled list -#: en/diff-options.txt:603 -#, no-wrap -msgid "--line-prefix=<prefix>" +#. type: Plain text +#: en/git-write-tree.txt:20 +msgid "The index must be in a fully merged state." msgstr "" #. type: Plain text -#: en/diff-options.txt:605 -msgid "Prepend an additional prefix to every line of output." +#: en/git-write-tree.txt:26 +msgid "" +"Conceptually, 'git write-tree' sync()s the current index contents into a set " +"of tree files. In order to have that match what is actually in your " +"directory right now, you need to have done a 'git update-index' phase before " +"you did the 'git write-tree'." msgstr "" #. type: Labeled list -#: en/diff-options.txt:606 +#: en/git-write-tree.txt:30 #, no-wrap -msgid "--ita-invisible-in-index" +msgid "--missing-ok" msgstr "" #. type: Plain text -#: en/diff-options.txt:613 +#: en/git-write-tree.txt:34 msgid "" -"By default entries added by \"git add -N\" appear as an existing empty file " -"in \"git diff\" and a new file in \"git diff --cached\". This option makes " -"the entry appear as a new file in \"git diff\" and non-existent in \"git " -"diff --cached\". This option could be reverted with " -"`--ita-visible-in-index`. Both options are experimental and could be removed " -"in future." +"Normally 'git write-tree' ensures that the objects referenced by the " +"directory exist in the object database. This option disables this check." msgstr "" #. type: Plain text -#: en/diff-options.txt:615 +#: en/git-write-tree.txt:39 msgid "" -"For more detailed explanation on these common options, see also " -"linkgit:gitdiffcore[7]." +"Writes a tree object that represents a subdirectory `<prefix>`. This can be " +"used to write the tree object for a subproject that is in the named " +"subdirectory." msgstr "" #. type: Plain text -#: en/fetch-options.txt:3 -msgid "Fetch all remotes." -msgstr "" - -#. type: Labeled list -#: en/fetch-options.txt:5 -#, no-wrap -msgid "--append" +#: en/i18n.txt:2 +msgid "Git is to some extent character encoding agnostic." msgstr "" #. type: Plain text -#: en/fetch-options.txt:9 +#: en/i18n.txt:6 msgid "" -"Append ref names and object names of fetched refs to the existing contents " -"of `.git/FETCH_HEAD`. Without this option old data in `.git/FETCH_HEAD` " -"will be overwritten." +"The contents of the blob objects are uninterpreted sequences of bytes. " +"There is no encoding translation at the core level." msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:10 -#, no-wrap -msgid "--depth=<depth>" +#. type: Plain text +#: en/i18n.txt:13 +msgid "" +"Path names are encoded in UTF-8 normalization form C. This applies to tree " +"objects, the index file, ref names, as well as path names in command line " +"arguments, environment variables and config files (`.git/config` (see " +"linkgit:git-config[1]), linkgit:gitignore[5], linkgit:gitattributes[5] and " +"linkgit:gitmodules[5])." msgstr "" #. type: Plain text -#: en/fetch-options.txt:16 +#: en/i18n.txt:23 msgid "" -"Limit fetching to the specified number of commits from the tip of each " -"remote branch history. If fetching to a 'shallow' repository created by `git " -"clone` with `--depth=<depth>` option (see linkgit:git-clone[1]), deepen or " -"shorten the history to the specified number of commits. Tags for the " -"deepened commits are not fetched." +"Note that Git at the core level treats path names simply as sequences of non-" +"NUL bytes, there are no path name encoding conversions (except on Mac and " +"Windows). Therefore, using non-ASCII path names will mostly work even on " +"platforms and file systems that use legacy extended ASCII encodings. " +"However, repositories created on such systems will not work properly on " +"UTF-8-based systems (e.g. Linux, Mac, Windows) and vice versa. " +"Additionally, many Git-based tools simply assume path names to be UTF-8 and " +"will fail to display other encodings correctly." msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:17 -#, no-wrap -msgid "--deepen=<depth>" +#. type: Plain text +#: en/i18n.txt:29 +msgid "" +"Commit log messages are typically encoded in UTF-8, but other extended ASCII " +"encodings are also supported. This includes ISO-8859-x, CP125x and many " +"others, but _not_ UTF-16/32, EBCDIC and CJK multi-byte encodings (GBK, Shift-" +"JIS, Big5, EUC-x, CP9xx etc.)." msgstr "" #. type: Plain text -#: en/fetch-options.txt:21 +#: en/i18n.txt:36 msgid "" -"Similar to --depth, except it specifies the number of commits from the " -"current shallow boundary instead of from the tip of each remote branch " -"history." +"Although we encourage that the commit log messages are encoded in UTF-8, " +"both the core and Git Porcelain are designed not to force UTF-8 on " +"projects. If all participants of a particular project find it more " +"convenient to use legacy encodings, Git does not forbid it. However, there " +"are a few things to keep in mind." msgstr "" #. type: Plain text -#: en/fetch-options.txt:25 +#: en/i18n.txt:42 msgid "" -"Deepen or shorten the history of a shallow repository to include all " -"reachable commits after <date>." +"'git commit' and 'git commit-tree' issues a warning if the commit log " +"message given to it does not look like a valid UTF-8 string, unless you " +"explicitly say your project uses a legacy encoding. The way to say this is " +"to have i18n.commitencoding in `.git/config` file, like this:" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:31 +#. type: delimited block - +#: en/i18n.txt:46 #, no-wrap -msgid "--unshallow" +msgid "" +"[i18n]\n" +"\tcommitEncoding = ISO-8859-1\n" msgstr "" #. type: Plain text -#: en/fetch-options.txt:35 +#: en/i18n.txt:52 msgid "" -"If the source repository is complete, convert a shallow repository to a " -"complete one, removing all the limitations imposed by shallow repositories." +"Commit objects created with the above setting record the value of `i18n." +"commitEncoding` in its `encoding` header. This is to help other people who " +"look at them later. Lack of this header implies that the commit log message " +"is encoded in UTF-8." msgstr "" #. type: Plain text -#: en/fetch-options.txt:38 +#: en/i18n.txt:58 msgid "" -"If the source repository is shallow, fetch as much as possible so that the " -"current repository has the same history as the source repository." +"'git log', 'git show', 'git blame' and friends look at the `encoding` header " +"of a commit object, and try to re-code the log message into UTF-8 unless " +"otherwise specified. You can specify the desired output encoding with `i18n." +"logOutputEncoding` in `.git/config` file, like this:" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:39 +#. type: delimited block - +#: en/i18n.txt:62 #, no-wrap -msgid "--update-shallow" +msgid "" +"[i18n]\n" +"\tlogOutputEncoding = ISO-8859-1\n" msgstr "" #. type: Plain text -#: en/fetch-options.txt:44 +#: en/i18n.txt:66 msgid "" -"By default when fetching from a shallow repository, `git fetch` refuses refs " -"that require updating .git/shallow. This option updates .git/shallow and " -"accept such refs." +"If you do not have this configuration variable, the value of `i18n." +"commitEncoding` is used instead." msgstr "" #. type: Plain text -#: en/fetch-options.txt:48 -msgid "Show what would be done, without making any changes." +#: en/i18n.txt:70 +msgid "" +"Note that we deliberately chose not to re-code the commit log message when a " +"commit is made to force UTF-8 at the commit object level, because re-coding " +"to UTF-8 is not necessarily a reversible operation." msgstr "" #. type: Plain text -#: en/fetch-options.txt:57 -msgid "" -"When 'git fetch' is used with `<rbranch>:<lbranch>` refspec, it refuses to " -"update the local branch `<lbranch>` unless the remote branch `<rbranch>` it " -"fetches is a descendant of `<lbranch>`. This option overrides that check." +#: en/line-range-format.txt:2 +msgid "<start> and <end> can take one of these forms:" msgstr "" #. type: Plain text -#: en/fetch-options.txt:61 -msgid "Keep downloaded pack." +#: en/line-range-format.txt:4 +msgid "number" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:63 -#, no-wrap -msgid "--multiple" +#. type: Plain text +#: en/line-range-format.txt:7 +msgid "" +"If <start> or <end> is a number, it specifies an absolute line number (lines " +"count from 1)." msgstr "" #. type: Plain text -#: en/fetch-options.txt:66 -msgid "" -"Allow several <repository> and <group> arguments to be specified. No " -"<refspec>s may be specified." +#: en/line-range-format.txt:10 +msgid "/regex/" msgstr "" #. type: Plain text -#: en/fetch-options.txt:77 +#: en/line-range-format.txt:17 msgid "" -"Before fetching, remove any remote-tracking references that no longer exist " -"on the remote. Tags are not subject to pruning if they are fetched only " -"because of the default tag auto-following or due to a --tags option. " -"However, if tags are fetched due to an explicit refspec (either on the " -"command line or in the remote configuration, for example if the remote was " -"cloned with the --mirror option), then they are also subject to pruning." +"This form will use the first line matching the given POSIX regex. If <start> " +"is a regex, it will search from the end of the previous `-L` range, if any, " +"otherwise from the start of file. If <start> is ``^/regex/'', it will " +"search from the start of file. If <end> is a regex, it will search starting " +"at the line given by <start>." msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:82 -#, no-wrap -msgid "--no-tags" +#. type: Plain text +#: en/line-range-format.txt:20 +msgid "+offset or -offset" msgstr "" #. type: Plain text -#: en/fetch-options.txt:88 +#: en/line-range-format.txt:23 msgid "" -"By default, tags that point at objects that are downloaded from the remote " -"repository are fetched and stored locally. This option disables this " -"automatic tag following. The default behavior for a remote may be specified " -"with the remote.<name>.tagOpt setting. See linkgit:git-config[1]." +"This is only valid for <end> and will specify a number of lines before or " +"after the line given by <start>." msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:90 -#, no-wrap -msgid "--refmap=<refspec>" +#. type: Plain text +#: en/line-range-format.txt:30 +msgid "" +"If ``:<funcname>'' is given in place of <start> and <end>, it is a regular " +"expression that denotes the range from the first funcname line that matches " +"<funcname>, up to the next funcname line. ``:<funcname>'' searches from the " +"end of the previous `-L` range, if any, otherwise from the start of file. " +"``^:<funcname>'' searches from the start of file." msgstr "" #. type: Plain text -#: en/fetch-options.txt:97 +#: en/mailmap.txt:6 msgid "" -"When fetching refs listed on the command line, use the specified refspec " -"(can be given more than once) to map the refs to remote-tracking branches, " -"instead of the values of `remote.*.fetch` configuration variables for the " -"remote repository. See section on \"Configured Remote-tracking Branches\" " -"for details." +"If the file `.mailmap` exists at the toplevel of the repository, or at the " +"location pointed to by the mailmap.file or mailmap.blob configuration " +"options, it is used to map author and committer names and email addresses to " +"canonical real names and email addresses." msgstr "" #. type: Plain text -#: en/fetch-options.txt:106 +#: en/mailmap.txt:10 msgid "" -"Fetch all tags from the remote (i.e., fetch remote tags `refs/tags/*` into " -"local tags with the same name), in addition to whatever else would otherwise " -"be fetched. Using this option alone does not subject tags to pruning, even " -"if --prune is used (though tags may be pruned anyway if they are also the " -"destination of an explicit refspec; see `--prune`)." +"In the simple form, each line in the file consists of the canonical real " +"name of an author, whitespace, and an email address used in the commit " +"(enclosed by '<' and '>') to map to the name. For example:" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:107 +#. type: Plain text +#: en/mailmap.txt:12 #, no-wrap -msgid "--recurse-submodules[=yes|on-demand|no]" +msgid "\tProper Name <commit@email.xx>\n" msgstr "" #. type: Plain text -#: en/fetch-options.txt:117 -msgid "" -"This option controls if and under what conditions new commits of populated " -"submodules should be fetched too. It can be used as a boolean option to " -"completely disable recursion when set to 'no' or to unconditionally recurse " -"into all populated submodules when set to 'yes', which is the default when " -"this option is used without any value. Use 'on-demand' to only recurse into " -"a populated submodule when the superproject retrieves a commit that updates " -"the submodule's reference to a commit that isn't already in the local " -"submodule clone." +#: en/mailmap.txt:15 +msgid "The more complex forms are:" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:118 +#. type: Plain text +#: en/mailmap.txt:17 #, no-wrap -msgid "-j" +msgid "\t<proper@email.xx> <commit@email.xx>\n" msgstr "" -#. type: Labeled list -#: en/fetch-options.txt:119 +#. type: Plain text +#: en/mailmap.txt:19 +msgid "which allows mailmap to replace only the email part of a commit, and:" +msgstr "" + +#. type: Plain text +#: en/mailmap.txt:21 #, no-wrap -msgid "--jobs=<n>" +msgid "\tProper Name <proper@email.xx> <commit@email.xx>\n" msgstr "" #. type: Plain text -#: en/fetch-options.txt:124 +#: en/mailmap.txt:24 msgid "" -"Number of parallel children to be used for fetching submodules. Each will " -"fetch from different submodules, such that fetching many submodules will be " -"faster. By default submodules will be fetched one at a time." -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:128 -msgid "" -"Disable recursive fetching of submodules (this has the same effect as using " -"the `--recurse-submodules=no` option)." -msgstr "" - -#. type: Labeled list -#: en/fetch-options.txt:129 -#, no-wrap -msgid "--submodule-prefix=<path>" -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:133 -msgid "" -"Prepend <path> to paths printed in informative messages such as \"Fetching " -"submodule foo\". This option is used internally when recursing over " -"submodules." -msgstr "" - -#. type: Labeled list -#: en/fetch-options.txt:134 -#, no-wrap -msgid "--recurse-submodules-default=[yes|on-demand]" -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:141 -msgid "" -"This option is used internally to temporarily provide a non-negative default " -"value for the --recurse-submodules option. All other methods of configuring " -"fetch's submodule recursion (such as settings in linkgit:gitmodules[5] and " -"linkgit:git-config[1]) override this option, as does specifying " -"--[no-]recurse-submodules directly." -msgstr "" - -#. type: Labeled list -#: en/fetch-options.txt:144 -#, no-wrap -msgid "--update-head-ok" -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:151 -msgid "" -"By default 'git fetch' refuses to update the head which corresponds to the " -"current branch. This flag disables the check. This is purely for the " -"internal use for 'git pull' to communicate with 'git fetch', and unless you " -"are implementing your own Porcelain you are not supposed to use it." -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:157 -msgid "" -"When given, and the repository to fetch from is handled by 'git fetch-pack', " -"`--exec=<upload-pack>` is passed to the command to specify non-default path " -"for the command run on the other end." -msgstr "" - -#. type: Plain text -#: en/fetch-options.txt:164 -msgid "" -"Pass --quiet to git-fetch-pack and silence any other internally used git " -"commands. Progress is not reported to the standard error stream." -msgstr "" - -#. type: Labeled list -#: en/fmt-merge-msg-config.txt:1 -#, no-wrap -msgid "merge.branchdesc" -msgstr "" - -#. type: Plain text -#: en/fmt-merge-msg-config.txt:5 -msgid "" -"In addition to branch names, populate the log message with the branch " -"description text associated with them. Defaults to false." -msgstr "" - -#. type: Labeled list -#: en/fmt-merge-msg-config.txt:6 -#, no-wrap -msgid "merge.log" -msgstr "" - -#. type: Plain text -#: en/fmt-merge-msg-config.txt:10 -msgid "" -"In addition to branch names, populate the log message with at most the " -"specified number of one-line descriptions from the actual commits that are " -"being merged. Defaults to false, and true is a synonym for 20." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:2 -msgid "Git is to some extent character encoding agnostic." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:6 -msgid "" -"The contents of the blob objects are uninterpreted sequences of bytes. " -"There is no encoding translation at the core level." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:13 -msgid "" -"Path names are encoded in UTF-8 normalization form C. This applies to tree " -"objects, the index file, ref names, as well as path names in command line " -"arguments, environment variables and config files (`.git/config` (see " -"linkgit:git-config[1]), linkgit:gitignore[5], linkgit:gitattributes[5] and " -"linkgit:gitmodules[5])." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:23 -msgid "" -"Note that Git at the core level treats path names simply as sequences of " -"non-NUL bytes, there are no path name encoding conversions (except on Mac " -"and Windows). Therefore, using non-ASCII path names will mostly work even on " -"platforms and file systems that use legacy extended ASCII " -"encodings. However, repositories created on such systems will not work " -"properly on UTF-8-based systems (e.g. Linux, Mac, Windows) and vice versa. " -"Additionally, many Git-based tools simply assume path names to be UTF-8 and " -"will fail to display other encodings correctly." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:29 -msgid "" -"Commit log messages are typically encoded in UTF-8, but other extended ASCII " -"encodings are also supported. This includes ISO-8859-x, CP125x and many " -"others, but _not_ UTF-16/32, EBCDIC and CJK multi-byte encodings (GBK, " -"Shift-JIS, Big5, EUC-x, CP9xx etc.)." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:36 -msgid "" -"Although we encourage that the commit log messages are encoded in UTF-8, " -"both the core and Git Porcelain are designed not to force UTF-8 on " -"projects. If all participants of a particular project find it more " -"convenient to use legacy encodings, Git does not forbid it. However, there " -"are a few things to keep in mind." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:42 -msgid "" -"'git commit' and 'git commit-tree' issues a warning if the commit log " -"message given to it does not look like a valid UTF-8 string, unless you " -"explicitly say your project uses a legacy encoding. The way to say this is " -"to have i18n.commitencoding in `.git/config` file, like this:" -msgstr "" - -#. type: delimited block - -#: en/i18n.txt:46 -#, no-wrap -msgid "" -"[i18n]\n" -"\tcommitencoding = ISO-8859-1\n" -msgstr "" - -#. type: Plain text -#: en/i18n.txt:52 -msgid "" -"Commit objects created with the above setting record the value of " -"`i18n.commitencoding` in its `encoding` header. This is to help other " -"people who look at them later. Lack of this header implies that the commit " -"log message is encoded in UTF-8." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:58 -msgid "" -"'git log', 'git show', 'git blame' and friends look at the `encoding` header " -"of a commit object, and try to re-code the log message into UTF-8 unless " -"otherwise specified. You can specify the desired output encoding with " -"`i18n.logoutputencoding` in `.git/config` file, like this:" -msgstr "" - -#. type: delimited block - -#: en/i18n.txt:62 -#, no-wrap -msgid "" -"[i18n]\n" -"\tlogoutputencoding = ISO-8859-1\n" -msgstr "" - -#. type: Plain text -#: en/i18n.txt:66 -msgid "" -"If you do not have this configuration variable, the value of " -"`i18n.commitencoding` is used instead." -msgstr "" - -#. type: Plain text -#: en/i18n.txt:70 -msgid "" -"Note that we deliberately chose not to re-code the commit log message when a " -"commit is made to force UTF-8 at the commit object level, because re-coding " -"to UTF-8 is not necessarily a reversible operation." -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:2 -msgid "<start> and <end> can take one of these forms:" -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:4 -msgid "number" -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:7 -msgid "" -"If <start> or <end> is a number, it specifies an absolute line number (lines " -"count from 1)." -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:10 -msgid "/regex/" -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:17 -msgid "" -"This form will use the first line matching the given POSIX regex. If <start> " -"is a regex, it will search from the end of the previous `-L` range, if any, " -"otherwise from the start of file. If <start> is ``^/regex/'', it will " -"search from the start of file. If <end> is a regex, it will search starting " -"at the line given by <start>." -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:20 -msgid "+offset or -offset" -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:23 -msgid "" -"This is only valid for <end> and will specify a number of lines before or " -"after the line given by <start>." -msgstr "" - -#. type: Plain text -#: en/line-range-format.txt:30 -msgid "" -"If ``:<funcname>'' is given in place of <start> and <end>, it is a regular " -"expression that denotes the range from the first funcname line that matches " -"<funcname>, up to the next funcname line. ``:<funcname>'' searches from the " -"end of the previous `-L` range, if any, otherwise from the start of " -"file. ``^:<funcname>'' searches from the start of file." -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:6 -msgid "" -"If the file `.mailmap` exists at the toplevel of the repository, or at the " -"location pointed to by the mailmap.file or mailmap.blob configuration " -"options, it is used to map author and committer names and email addresses to " -"canonical real names and email addresses." -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:10 -msgid "" -"In the simple form, each line in the file consists of the canonical real " -"name of an author, whitespace, and an email address used in the commit " -"(enclosed by '<' and '>') to map to the name. For example:" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:12 -#, no-wrap -msgid "\tProper Name <commit@email.xx>\n" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:15 -msgid "The more complex forms are:" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:17 -#, no-wrap -msgid "\t<proper@email.xx> <commit@email.xx>\n" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:19 -msgid "which allows mailmap to replace only the email part of a commit, and:" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:21 -#, no-wrap -msgid "\tProper Name <proper@email.xx> <commit@email.xx>\n" -msgstr "" - -#. type: Plain text -#: en/mailmap.txt:24 -msgid "" -"which allows mailmap to replace both the name and the email of a commit " -"matching the specified commit email address, and:" +"which allows mailmap to replace both the name and the email of a commit " +"matching the specified commit email address, and:" msgstr "" #. type: Plain text @@ -64369,174 +62421,6 @@ msgid "" "email address." msgstr "" -#. type: Labeled list -#: en/merge-config.txt:1 -#, no-wrap -msgid "merge.conflictStyle" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:8 -msgid "" -"Specify the style in which conflicted hunks are written out to working tree " -"files upon merge. The default is \"merge\", which shows a `<<<<<<<` " -"conflict marker, changes made by one side, a `=======` marker, changes made " -"by the other side, and then a `>>>>>>>` marker. An alternate style, " -"\"diff3\", adds a `|||||||` marker and the original text before the " -"`=======` marker." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:9 -#, no-wrap -msgid "merge.defaultToUpstream" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:18 -msgid "" -"If merge is called without any commit argument, merge the upstream branches " -"configured for the current branch by using their last observed values stored " -"in their remote-tracking branches. The values of the `branch.<current " -"branch>.merge` that name the branches at the remote named by " -"`branch.<current branch>.remote` are consulted, and then they are mapped via " -"`remote.<remote>.fetch` to their corresponding remote-tracking branches, and " -"the tips of these tracking branches are merged." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:19 -#, no-wrap -msgid "merge.ff" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:28 -msgid "" -"By default, Git does not create an extra merge commit when merging a commit " -"that is a descendant of the current commit. Instead, the tip of the current " -"branch is fast-forwarded. When set to `false`, this variable tells Git to " -"create an extra merge commit in such a case (equivalent to giving the " -"`--no-ff` option from the command line). When set to `only`, only such " -"fast-forward merges are allowed (equivalent to giving the `--ff-only` option " -"from the command line)." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:31 -#, no-wrap -msgid "merge.renameLimit" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:35 -msgid "" -"The number of files to consider when performing rename detection during a " -"merge; if not specified, defaults to the value of diff.renameLimit." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:36 -#, no-wrap -msgid "merge.renormalize" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:45 -msgid "" -"Tell Git that canonical representation of files in the repository has " -"changed over time (e.g. earlier commits record text files with CRLF line " -"endings, but recent ones use LF line endings). In such a repository, Git " -"can convert the data recorded in commits to a canonical form before " -"performing a merge to reduce unnecessary conflicts. For more information, " -"see section \"Merging branches with differing checkin/checkout attributes\" " -"in linkgit:gitattributes[5]." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:46 -#, no-wrap -msgid "merge.stat" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:49 -msgid "" -"Whether to print the diffstat between ORIG_HEAD and the merge result at the " -"end of the merge. True by default." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:50 -#, no-wrap -msgid "merge.tool" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:55 -msgid "" -"Controls which merge tool is used by linkgit:git-mergetool[1]. The list " -"below shows the valid built-in values. Any other value is treated as a " -"custom merge tool and requires that a corresponding mergetool.<tool>.cmd " -"variable is defined." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:58 -#, no-wrap -msgid "merge.verbosity" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:65 -msgid "" -"Controls the amount of output shown by the recursive merge strategy. Level " -"0 outputs nothing except a final error message if conflicts were " -"detected. Level 1 outputs only conflicts, 2 outputs conflicts and file " -"changes. Level 5 and above outputs debugging information. The default is " -"level 2. Can be overridden by the `GIT_MERGE_VERBOSITY` environment " -"variable." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:66 -#, no-wrap -msgid "merge.<driver>.name" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:69 -msgid "" -"Defines a human-readable name for a custom low-level merge driver. See " -"linkgit:gitattributes[5] for details." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:70 -#, no-wrap -msgid "merge.<driver>.driver" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:73 -msgid "" -"Defines the command that implements a custom low-level merge driver. See " -"linkgit:gitattributes[5] for details." -msgstr "" - -#. type: Labeled list -#: en/merge-config.txt:74 -#, no-wrap -msgid "merge.<driver>.recursive" -msgstr "" - -#. type: Plain text -#: en/merge-config.txt:77 -msgid "" -"Names a low-level merge driver to be used when performing an internal merge " -"between common ancestors. See linkgit:gitattributes[5] for details." -msgstr "" - #. type: Plain text #: en/merge-options.txt:5 msgid "" @@ -64557,8 +62441,8 @@ msgstr "" msgid "" "Invoke an editor before committing successful mechanical merge to further " "edit the auto-generated merge message, so that the user can explain and " -"justify the merge. The `--no-edit` option can be used to accept the " -"auto-generated message (this is generally discouraged)." +"justify the merge. The `--no-edit` option can be used to accept the auto-" +"generated message (this is generally discouraged)." msgstr "" #. type: Plain text @@ -64587,28 +62471,36 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-options.txt:39 +#: en/merge-options.txt:40 msgid "" "Create a merge commit even when the merge resolves as a fast-forward. This " -"is the default behaviour when merging an annotated (and possibly signed) " -"tag." +"is the default behaviour when merging an annotated (and possibly signed) tag " +"that is not stored in its natural place in 'refs/tags/' hierarchy." msgstr "" #. type: Labeled list -#: en/merge-options.txt:40 +#: en/merge-options.txt:41 #, no-wrap msgid "--ff-only" msgstr "" #. type: Plain text -#: en/merge-options.txt:44 +#: en/merge-options.txt:45 msgid "" "Refuse to merge and exit with a non-zero status unless the current `HEAD` is " -"already up-to-date or the merge can be resolved as a fast-forward." +"already up to date or the merge can be resolved as a fast-forward." +msgstr "" + +#. type: Plain text +#: en/merge-options.txt:51 +msgid "" +"GPG-sign the resulting merge commit. The `keyid` argument is optional and " +"defaults to the committer identity; if specified, it must be stuck to the " +"option without a space." msgstr "" #. type: Plain text -#: en/merge-options.txt:50 +#: en/merge-options.txt:57 msgid "" "In addition to branch names, populate the log message with one-line " "descriptions from at most <n> actual commits that are being merged. See also " @@ -64616,38 +62508,49 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-options.txt:53 +#: en/merge-options.txt:60 msgid "" "With --no-log do not list one-line descriptions from the actual commits " "being merged." msgstr "" +#. type: Labeled list +#: en/merge-options.txt:62 +#, no-wrap +msgid "--no-signoff" +msgstr "" + #. type: Plain text -#: en/merge-options.txt:60 +#: en/merge-options.txt:71 +msgid "With --no-signoff do not add a Signed-off-by line." +msgstr "" + +#. type: Plain text +#: en/merge-options.txt:77 msgid "" "Show a diffstat at the end of the merge. The diffstat is also controlled by " "the configuration option merge.stat." msgstr "" #. type: Plain text -#: en/merge-options.txt:63 +#: en/merge-options.txt:80 msgid "With -n or --no-stat do not show a diffstat at the end of the merge." msgstr "" #. type: Labeled list -#: en/merge-options.txt:64 +#: en/merge-options.txt:81 #, no-wrap msgid "--squash" msgstr "" #. type: Labeled list -#: en/merge-options.txt:65 +#: en/merge-options.txt:82 #, no-wrap msgid "--no-squash" msgstr "" #. type: Plain text -#: en/merge-options.txt:73 +#: en/merge-options.txt:90 msgid "" "Produce the working tree and index state as if a real merge happened (except " "for the merge information), but do not actually make a commit, move the " @@ -64658,14 +62561,14 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-options.txt:76 +#: en/merge-options.txt:93 msgid "" "With --no-squash perform the merge and commit the result. This option can be " "used to override --squash." msgstr "" #. type: Plain text -#: en/merge-options.txt:84 +#: en/merge-options.txt:101 msgid "" "Use the given merge strategy; can be supplied more than once to specify them " "in the order they should be tried. If there is no `-s` option, a built-in " @@ -64674,30 +62577,30 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-options.txt:85 +#: en/merge-options.txt:102 #, no-wrap msgid "-X <option>" msgstr "" #. type: Plain text -#: en/merge-options.txt:89 +#: en/merge-options.txt:106 msgid "Pass merge strategy specific option through to the merge strategy." msgstr "" #. type: Labeled list -#: en/merge-options.txt:90 +#: en/merge-options.txt:107 #, no-wrap msgid "--verify-signatures" msgstr "" #. type: Labeled list -#: en/merge-options.txt:91 +#: en/merge-options.txt:108 #, no-wrap msgid "--no-verify-signatures" msgstr "" #. type: Plain text -#: en/merge-options.txt:97 +#: en/merge-options.txt:114 msgid "" "Verify that the tip commit of the side branch being merged is signed with a " "valid key, i.e. a key that has a valid uid: in the default trust model, this " @@ -64706,25 +62609,25 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-options.txt:99 +#: en/merge-options.txt:116 #, no-wrap msgid "--no-summary" msgstr "" #. type: Plain text -#: en/merge-options.txt:102 +#: en/merge-options.txt:119 msgid "" "Synonyms to --stat and --no-stat; these are deprecated and will be removed " "in the future." msgstr "" #. type: Plain text -#: en/merge-options.txt:107 +#: en/merge-options.txt:124 msgid "Operate quietly. Implies --no-progress." msgstr "" #. type: Plain text -#: en/merge-options.txt:118 +#: en/merge-options.txt:135 msgid "" "Turn progress on/off explicitly. If neither is specified, progress is shown " "if standard error is connected to a terminal. Note that not all merge " @@ -64732,13 +62635,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-options.txt:121 +#: en/merge-options.txt:138 #, no-wrap msgid "--allow-unrelated-histories" msgstr "" #. type: Plain text -#: en/merge-options.txt:127 +#: en/merge-options.txt:144 msgid "" "By default, `git merge` command refuses to merge histories that do not share " "a common ancestor. This option can be used to override this safety when " @@ -64747,126 +62650,6 @@ msgid "" "default exists and will not be added." msgstr "" -#. type: Plain text -#: en/mergetools-merge.txt:2 -msgid "araxis" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:3 -msgid "bc" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:4 -msgid "bc3" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:5 -msgid "codecompare" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:6 -msgid "deltawalker" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:7 -msgid "diffmerge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:8 -msgid "diffuse" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:9 -msgid "ecmerge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:10 -msgid "emerge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:11 -msgid "examdiff" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:12 -msgid "gvimdiff" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:13 -msgid "gvimdiff2" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:14 -msgid "gvimdiff3" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:15 -msgid "kdiff3" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:16 -msgid "meld" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:17 -msgid "opendiff" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:18 -msgid "p4merge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:19 -msgid "tkdiff" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:20 -msgid "tortoisemerge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:21 -msgid "vimdiff" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:22 -msgid "vimdiff2" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:23 -msgid "vimdiff3" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:24 -msgid "winmerge" -msgstr "" - -#. type: Plain text -#: en/mergetools-merge.txt:24 -msgid "xxdiff" -msgstr "" - #. type: Title - #: en/merge-strategies.txt:2 #, no-wrap @@ -64904,7 +62687,7 @@ msgid "recursive" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:28 +#: en/merge-strategies.txt:29 msgid "" "This can only resolve two heads using a 3-way merge algorithm. When there " "is more than one common ancestor that can be used for 3-way merge, it " @@ -64912,23 +62695,24 @@ msgid "" "tree for the 3-way merge. This has been reported to result in fewer merge " "conflicts without causing mismerges by tests done on actual merge commits " "taken from Linux 2.6 kernel development history. Additionally this can " -"detect and handle merges involving renames. This is the default merge " -"strategy when pulling or merging one branch." +"detect and handle merges involving renames, but currently cannot make use of " +"detected copies. This is the default merge strategy when pulling or merging " +"one branch." msgstr "" #. type: Plain text -#: en/merge-strategies.txt:30 +#: en/merge-strategies.txt:31 msgid "The 'recursive' strategy can take the following options:" msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:31 en/merge-strategies.txt:110 +#: en/merge-strategies.txt:32 en/merge-strategies.txt:115 #, no-wrap msgid "ours" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:36 +#: en/merge-strategies.txt:37 msgid "" "This option forces conflicting hunks to be auto-resolved cleanly by favoring " "'our' version. Changes from the other tree that do not conflict with our " @@ -64937,33 +62721,34 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:40 +#: en/merge-strategies.txt:41 msgid "" "This should not be confused with the 'ours' merge strategy, which does not " "even look at what the other tree contains at all. It discards everything " -"the other tree did, declaring 'our' history contains all that happened in " -"it." +"the other tree did, declaring 'our' history contains all that happened in it." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:41 +#: en/merge-strategies.txt:42 #, no-wrap msgid "theirs" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:43 -msgid "This is the opposite of 'ours'." +#: en/merge-strategies.txt:45 +msgid "" +"This is the opposite of 'ours'; note that, unlike 'ours', there is no " +"'theirs' merge strategy to confuse this merge option with." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:44 +#: en/merge-strategies.txt:46 #, no-wrap msgid "patience" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:50 +#: en/merge-strategies.txt:52 msgid "" "With this option, 'merge-recursive' spends a little extra time to avoid " "mismerges that sometimes occur due to unimportant matching lines (e.g., " @@ -64972,13 +62757,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:51 +#: en/merge-strategies.txt:53 #, no-wrap msgid "diff-algorithm=[patience|minimal|histogram|myers]" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:56 +#: en/merge-strategies.txt:58 msgid "" "Tells 'merge-recursive' to use a different diff algorithm, which can help " "avoid mismerges that occur due to unimportant matching lines (such as braces " @@ -64986,59 +62771,47 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:57 +#: en/merge-strategies.txt:62 #, no-wrap -msgid "ignore-space-change" -msgstr "" - -#. type: Labeled list -#: en/merge-strategies.txt:58 -#, no-wrap -msgid "ignore-all-space" -msgstr "" - -#. type: Labeled list -#: en/merge-strategies.txt:59 -#, no-wrap -msgid "ignore-space-at-eol" +msgid "ignore-cr-at-eol" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:65 +#: en/merge-strategies.txt:68 msgid "" "Treats lines with the indicated type of whitespace change as unchanged for " "the sake of a three-way merge. Whitespace changes mixed with other changes " -"to a line are not ignored. See also linkgit:git-diff[1] `-b`, `-w`, and " -"`--ignore-space-at-eol`." +"to a line are not ignored. See also linkgit:git-diff[1] `-b`, `-w`, `--" +"ignore-space-at-eol`, and `--ignore-cr-at-eol`." msgstr "" #. type: Plain text -#: en/merge-strategies.txt:68 +#: en/merge-strategies.txt:71 msgid "" "If 'their' version only introduces whitespace changes to a line, 'our' " "version is used;" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:70 +#: en/merge-strategies.txt:73 msgid "" "If 'our' version introduces whitespace changes but 'their' version includes " "a substantial change, 'their' version is used;" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:71 +#: en/merge-strategies.txt:74 msgid "Otherwise, the merge proceeds in the usual way." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:72 +#: en/merge-strategies.txt:75 #, no-wrap msgid "renormalize" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:79 +#: en/merge-strategies.txt:82 msgid "" "This runs a virtual check-out and check-in of all three stages of a file " "when resolving a three-way merge. This option is meant to be used when " @@ -65048,61 +62821,64 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:80 +#: en/merge-strategies.txt:83 #, no-wrap msgid "no-renormalize" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:83 +#: en/merge-strategies.txt:86 msgid "" "Disables the `renormalize` option. This overrides the `merge.renormalize` " "configuration variable." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:84 +#: en/merge-strategies.txt:87 #, no-wrap msgid "no-renames" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:87 -msgid "Turn off rename detection. See also linkgit:git-diff[1] `--no-renames`." +#: en/merge-strategies.txt:91 +msgid "" +"Turn off rename detection. This overrides the `merge.renames` configuration " +"variable. See also linkgit:git-diff[1] `--no-renames`." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:88 +#: en/merge-strategies.txt:92 #, no-wrap msgid "find-renames[=<n>]" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:92 +#: en/merge-strategies.txt:97 msgid "" "Turn on rename detection, optionally setting the similarity threshold. This " -"is the default. See also linkgit:git-diff[1] `--find-renames`." +"is the default. This overrides the 'merge.renames' configuration variable. " +"See also linkgit:git-diff[1] `--find-renames`." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:93 +#: en/merge-strategies.txt:98 #, no-wrap msgid "rename-threshold=<n>" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:95 +#: en/merge-strategies.txt:100 msgid "Deprecated synonym for `find-renames=<n>`." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:96 +#: en/merge-strategies.txt:101 #, no-wrap msgid "subtree[=<path>]" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:102 +#: en/merge-strategies.txt:107 msgid "" "This option is a more advanced form of 'subtree' strategy, where the " "strategy makes a guess on how two trees must be shifted to match with each " @@ -65111,13 +62887,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:103 +#: en/merge-strategies.txt:108 #, no-wrap msgid "octopus" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:109 +#: en/merge-strategies.txt:114 msgid "" "This resolves cases with more than two heads, but refuses to do a complex " "merge that needs manual resolution. It is primarily meant to be used for " @@ -65126,23 +62902,23 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:117 +#: en/merge-strategies.txt:122 msgid "" "This resolves any number of heads, but the resulting tree of the merge is " "always that of the current branch head, effectively ignoring all changes " "from all other branches. It is meant to be used to supersede old " -"development history of side branches. Note that this is different from the " -"-Xours option to the 'recursive' merge strategy." +"development history of side branches. Note that this is different from the -" +"Xours option to the 'recursive' merge strategy." msgstr "" #. type: Labeled list -#: en/merge-strategies.txt:118 +#: en/merge-strategies.txt:123 #, no-wrap msgid "subtree" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:124 +#: en/merge-strategies.txt:129 msgid "" "This is a modified recursive strategy. When merging trees A and B, if B " "corresponds to a subtree of A, B is first adjusted to match the tree " @@ -65151,7 +62927,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/merge-strategies.txt:131 +#: en/merge-strategies.txt:136 msgid "" "With the strategies that use 3-way merge (including the default, " "'recursive'), if a change is made on both branches, but later reverted on " @@ -65162,6 +62938,131 @@ msgid "" "change at all, and substitutes the changed version instead." msgstr "" +#. type: Plain text +#: en/mergetools-merge.txt:2 +msgid "araxis" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:3 +msgid "bc" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:4 +msgid "bc3" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:5 +msgid "codecompare" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:6 +msgid "deltawalker" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:7 +msgid "diffmerge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:8 +msgid "diffuse" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:9 +msgid "ecmerge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:10 +msgid "emerge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:11 +msgid "examdiff" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:12 +msgid "guiffy" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:13 +msgid "gvimdiff" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:14 +msgid "gvimdiff2" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:15 +msgid "gvimdiff3" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:16 +msgid "kdiff3" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:17 +msgid "meld" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:18 +msgid "opendiff" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:19 +msgid "p4merge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:20 +msgid "tkdiff" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:21 +msgid "tortoisemerge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:22 +msgid "vimdiff" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:23 +msgid "vimdiff2" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:24 +msgid "vimdiff3" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:25 +msgid "winmerge" +msgstr "" + +#. type: Plain text +#: en/mergetools-merge.txt:25 +msgid "xxdiff" +msgstr "" + #. type: Title - #: en/pretty-formats.txt:2 #, no-wrap @@ -65219,7 +63120,8 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:33 en/pretty-formats.txt:41 en/pretty-formats.txt:51 en/pretty-formats.txt:63 +#: en/pretty-formats.txt:33 en/pretty-formats.txt:41 en/pretty-formats.txt:51 +#: en/pretty-formats.txt:63 #, no-wrap msgid "<title line>\n" msgstr "" @@ -65239,7 +63141,8 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:43 en/pretty-formats.txt:53 en/pretty-formats.txt:65 en/pretty-formats.txt:74 +#: en/pretty-formats.txt:43 en/pretty-formats.txt:53 en/pretty-formats.txt:65 +#: en/pretty-formats.txt:74 msgid "<full commit message>" msgstr "" @@ -65297,8 +63200,8 @@ msgstr "" #: en/pretty-formats.txt:86 msgid "" "The 'raw' format shows the entire commit exactly as stored in the commit " -"object. Notably, the SHA-1s are displayed in full, regardless of whether " -"--abbrev or --no-abbrev are used, and 'parents' information show the true " +"object. Notably, the SHA-1s are displayed in full, regardless of whether --" +"abbrev or --no-abbrev are used, and 'parents' information show the true " "parent commits, without taking grafts or history simplification into " "account. Note that this format affects the way commits are displayed, but " "not the way the diff is shown e.g. with `git log --raw`. To get full object " @@ -65330,8 +63233,7 @@ msgstr "" #, no-wrap msgid "" "The author of fe6e0ee was Junio C Hamano, 23 hours ago\n" -"The title was >>t4119: test autocomputing -p<n> for traditional diff " -"input.<<\n" +"The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\n" msgstr "" #. type: Plain text @@ -65488,42 +63390,49 @@ msgid "'%D': ref names without the \" (\", \")\" wrapping." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:138 +#: en/pretty-formats.txt:139 +msgid "" +"'%S': ref name given on the command line by which the commit was reached " +"(like `git log --source`), only works with `git log`" +msgstr "" + +#. type: Plain text +#: en/pretty-formats.txt:140 msgid "'%e': encoding" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:139 +#: en/pretty-formats.txt:141 msgid "'%s': subject" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:140 +#: en/pretty-formats.txt:142 msgid "'%f': sanitized subject line, suitable for a filename" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:141 +#: en/pretty-formats.txt:143 msgid "'%b': body" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:142 +#: en/pretty-formats.txt:144 msgid "'%B': raw body (unwrapped subject and body)" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:144 +#: en/pretty-formats.txt:146 msgid "'%N': commit notes" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:146 +#: en/pretty-formats.txt:148 msgid "'%GG': raw verification message from GPG for a signed commit" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:154 +#: en/pretty-formats.txt:156 msgid "" "'%G?': show \"G\" for a good (valid) signature, \"B\" for a bad signature, " "\"U\" for a good signature with unknown validity, \"X\" for a good signature " @@ -65533,18 +63442,30 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:155 +#: en/pretty-formats.txt:157 msgid "'%GS': show the name of the signer for a signed commit" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:156 +#: en/pretty-formats.txt:158 msgid "'%GK': show the key used to sign a signed commit" msgstr "" +#. type: Plain text +#: en/pretty-formats.txt:159 +msgid "'%GF': show the fingerprint of the key used to sign a signed commit" +msgstr "" + #. type: Plain text #: en/pretty-formats.txt:161 msgid "" +"'%GP': show the fingerprint of the primary key whose subkey was used to sign " +"a signed commit" +msgstr "" + +#. type: Plain text +#: en/pretty-formats.txt:166 +msgid "" "'%gD': reflog selector, e.g., `refs/stash@{1}` or `refs/stash@{2 minutes " "ago`}; the format follows the rules described for the `-g` option. The " "portion before the `@` is the refname as given on the command line (so `git " @@ -65552,7 +63473,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:164 +#: en/pretty-formats.txt:169 msgid "" "'%gd': shortened reflog selector; same as `%gD`, but the refname portion is " "shortened for human readability (so `refs/heads/master` becomes just " @@ -65560,95 +63481,99 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:165 +#: en/pretty-formats.txt:170 msgid "'%gn': reflog identity name" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:167 +#: en/pretty-formats.txt:172 msgid "" -"'%gN': reflog identity name (respecting .mailmap, see " -"linkgit:git-shortlog[1] or linkgit:git-blame[1])" +"'%gN': reflog identity name (respecting .mailmap, see linkgit:git-" +"shortlog[1] or linkgit:git-blame[1])" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:168 +#: en/pretty-formats.txt:173 msgid "'%ge': reflog identity email" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:170 +#: en/pretty-formats.txt:175 msgid "" -"'%gE': reflog identity email (respecting .mailmap, see " -"linkgit:git-shortlog[1] or linkgit:git-blame[1])" +"'%gE': reflog identity email (respecting .mailmap, see linkgit:git-" +"shortlog[1] or linkgit:git-blame[1])" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:171 +#: en/pretty-formats.txt:176 msgid "'%gs': reflog subject" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:172 +#: en/pretty-formats.txt:177 msgid "'%Cred': switch color to red" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:173 +#: en/pretty-formats.txt:178 msgid "'%Cgreen': switch color to green" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:174 +#: en/pretty-formats.txt:179 msgid "'%Cblue': switch color to blue" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:175 +#: en/pretty-formats.txt:180 msgid "'%Creset': reset color" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:182 +#: en/pretty-formats.txt:192 msgid "" "'%C(...)': color specification, as described under Values in the " -"\"CONFIGURATION FILE\" section of linkgit:git-config[1]; adding `auto,` at " -"the beginning will emit color only when colors are enabled for log output " -"(by `color.diff`, `color.ui`, or `--color`, and respecting the `auto` " -"settings of the former if we are going to a terminal). `auto` alone " -"(i.e. `%C(auto)`) will turn on auto coloring on the next placeholders until " -"the color is switched again." +"\"CONFIGURATION FILE\" section of linkgit:git-config[1]. By default, colors " +"are shown only when enabled for log output (by `color.diff`, `color.ui`, or " +"`--color`, and respecting the `auto` settings of the former if we are going " +"to a terminal). `%C(auto,...)` is accepted as a historical synonym for the " +"default (e.g., `%C(auto,red)`). Specifying `%C(always,...)` will show the " +"colors even when color is not otherwise enabled (though consider just using " +"`--color=always` to enable color for the whole output, including this format " +"and anything else git might color). `auto` alone (i.e. `%C(auto)`) will " +"turn on auto coloring on the next placeholders until the color is switched " +"again." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:183 +#: en/pretty-formats.txt:193 msgid "'%m': left (`<`), right (`>`) or boundary (`-`) mark" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:184 +#: en/pretty-formats.txt:194 msgid "'%n': newline" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:185 +#: en/pretty-formats.txt:195 msgid "'%%': a raw '%'" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:186 +#: en/pretty-formats.txt:196 msgid "'%x00': print a byte from a hex code" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:188 +#: en/pretty-formats.txt:198 msgid "" "'%w([<w>[,<i1>[,<i2>]]])': switch line wrapping, like the -w option of " "linkgit:git-shortlog[1]." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:193 +#: en/pretty-formats.txt:203 msgid "" "'%<(<N>[,trunc|ltrunc|mtrunc])': make the next placeholder take at least N " "columns, padding spaces on the right if necessary. Optionally truncate at " @@ -65658,21 +63583,21 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:195 +#: en/pretty-formats.txt:205 msgid "" "'%<|(<N>)': make the next placeholder take at least until Nth columns, " "padding spaces on the right if necessary" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:197 +#: en/pretty-formats.txt:207 msgid "" "'%>(<N>)', '%>|(<N>)': similar to '%<(<N>)', '%<|(<N>)' respectively, but " "padding spaces on the left" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:200 +#: en/pretty-formats.txt:210 msgid "" "'%>>(<N>)', '%>>|(<N>)': similar to '%>(<N>)', '%>|(<N>)' respectively, " "except that if the next placeholder takes more spaces than given and there " @@ -65680,25 +63605,35 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:204 +#: en/pretty-formats.txt:212 +msgid "" +"'%><(<N>)', '%><|(<N>)': similar to '%<(<N>)', '%<|(<N>)' respectively, but " +"padding both sides (i.e. the text is centered)" +msgstr "" + +#. type: Plain text +#: en/pretty-formats.txt:219 msgid "" -"'%><(<N>)', '%><|(<N>)': similar to '% <(<N>)', '%<|(<N>)' respectively, but " -"padding both sides (i.e. the text is centered) -%(trailers): display the " -"trailers of the body as interpreted by linkgit:git-interpret-trailers[1]" +"%(trailers[:options]): display the trailers of the body as interpreted by " +"linkgit:git-interpret-trailers[1]. The `trailers` string may be followed by " +"a colon and zero or more comma-separated options. If the `only` option is " +"given, omit non-trailer lines from the trailer block. If the `unfold` " +"option is given, behave as if interpret-trailer's `--unfold` option was " +"given. E.g., `%(trailers:only,unfold)` to do both." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:211 +#: en/pretty-formats.txt:226 msgid "" "Some placeholders may depend on other options given to the revision " "traversal engine. For example, the `%g*` reflog options will insert an empty " -"string unless we are traversing reflog entries (e.g., by `git log -g`). The " -"`%d` and `%D` placeholders will use the \"short\" decoration format if " -"`--decorate` was not already provided on the command line." +"string unless we are traversing reflog entries (e.g., by `git log -g`). The `" +"%d` and `%D` placeholders will use the \"short\" decoration format if `--" +"decorate` was not already provided on the command line." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:215 +#: en/pretty-formats.txt:230 msgid "" "If you add a `+` (plus sign) after '%' of a placeholder, a line-feed is " "inserted immediately before the expansion if and only if the placeholder " @@ -65706,15 +63641,15 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:219 +#: en/pretty-formats.txt:234 msgid "" -"If you add a `-` (minus sign) after '%' of a placeholder, line-feeds that " -"immediately precede the expansion are deleted if and only if the placeholder " -"expands to an empty string." +"If you add a `-` (minus sign) after '%' of a placeholder, all consecutive " +"line-feeds immediately preceding the expansion are deleted if and only if " +"the placeholder expands to an empty string." msgstr "" #. type: Plain text -#: en/pretty-formats.txt:223 +#: en/pretty-formats.txt:238 msgid "" "If you add a ` ` (space) after '%' of a placeholder, a space is inserted " "immediately before the expansion if and only if the placeholder expands to a " @@ -65722,12 +63657,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:225 +#: en/pretty-formats.txt:240 msgid "'tformat:'" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:233 +#: en/pretty-formats.txt:248 msgid "" "The 'tformat:' format works exactly like 'format:', except that it provides " "\"terminator\" semantics instead of \"separator\" semantics. In other words, " @@ -65738,7 +63673,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/pretty-formats.txt:239 +#: en/pretty-formats.txt:254 #, no-wrap msgid "" "$ git log -2 --pretty=format:%h 4da45bef \\\n" @@ -65748,7 +63683,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/pretty-formats.txt:244 +#: en/pretty-formats.txt:259 #, no-wrap msgid "" "$ git log -2 --pretty=tformat:%h 4da45bef \\\n" @@ -65758,14 +63693,14 @@ msgid "" msgstr "" #. type: Plain text -#: en/pretty-formats.txt:249 +#: en/pretty-formats.txt:264 msgid "" "In addition, any unrecognized string that has a `%` in it is interpreted as " "if it has `tformat:` in front of it. For example, these two are equivalent:" msgstr "" #. type: delimited block - -#: en/pretty-formats.txt:253 +#: en/pretty-formats.txt:268 #, no-wrap msgid "" "$ git log -2 --pretty=tformat:%h 4da45bef\n" @@ -65784,8 +63719,8 @@ msgid "" "Pretty-print the contents of the commit logs in a given format, where " "'<format>' can be one of 'oneline', 'short', 'medium', 'full', 'fuller', " "'email', 'raw', 'format:<string>' and 'tformat:<string>'. When '<format>' " -"is none of the above, and has '%placeholder' in it, it acts as if " -"'--pretty=tformat:<format>' were given." +"is none of the above, and has '%placeholder' in it, it acts as if '--" +"pretty=tformat:<format>' were given." msgstr "" #. type: Plain text @@ -65832,14 +63767,15 @@ msgstr "" #. type: Plain text #: en/pretty-options.txt:30 msgid "" -"Show the full 40-byte hexadecimal commit object name. This negates " -"`--abbrev-commit` and those options which imply it such as \"--oneline\". It " -"also overrides the `log.abbrevCommit` variable." +"Show the full 40-byte hexadecimal commit object name. This negates `--abbrev-" +"commit` and those options which imply it such as \"--oneline\". It also " +"overrides the `log.abbrevCommit` variable." msgstr "" #. type: Plain text #: en/pretty-options.txt:34 -msgid "This is a shorthand for \"--pretty=oneline --abbrev-commit\" used together." +msgid "" +"This is a shorthand for \"--pretty=oneline --abbrev-commit\" used together." msgstr "" #. type: Plain text @@ -65877,9 +63813,9 @@ msgstr "" msgid "" "Perform a tab expansion (replace each tab with enough spaces to fill to the " "next display column that is multiple of '<n>') in the log message before " -"showing it in the output. `--expand-tabs` is a short-hand for " -"`--expand-tabs=8`, and `--no-expand-tabs` is a short-hand for " -"`--expand-tabs=0`, which disables tab expansion." +"showing it in the output. `--expand-tabs` is a short-hand for `--expand-" +"tabs=8`, and `--no-expand-tabs` is a short-hand for `--expand-tabs=0`, which " +"disables tab expansion." msgstr "" #. type: Plain text @@ -65900,34 +63836,34 @@ msgstr "" msgid "" "Show the notes (see linkgit:git-notes[1]) that annotate the commit, when " "showing the commit log message. This is the default for `git log`, `git " -"show` and `git whatchanged` commands when there is no `--pretty`, " -"`--format`, or `--oneline` option given on the command line." +"show` and `git whatchanged` commands when there is no `--pretty`, `--" +"format`, or `--oneline` option given on the command line." msgstr "" #. type: Plain text #: en/pretty-options.txt:70 msgid "" -"By default, the notes shown are from the notes refs listed in the " -"`core.notesRef` and `notes.displayRef` variables (or corresponding " -"environment overrides). See linkgit:git-config[1] for more details." +"By default, the notes shown are from the notes refs listed in the `core." +"notesRef` and `notes.displayRef` variables (or corresponding environment " +"overrides). See linkgit:git-config[1] for more details." msgstr "" #. type: Plain text #: en/pretty-options.txt:75 msgid "" "With an optional '<treeish>' argument, use the treeish to find the notes to " -"display. The treeish can specify the full refname when it begins with " -"`refs/notes/`; when it begins with `notes/`, `refs/` and otherwise " -"`refs/notes/` is prefixed to form a full name of the ref." +"display. The treeish can specify the full refname when it begins with `refs/" +"notes/`; when it begins with `notes/`, `refs/` and otherwise `refs/notes/` " +"is prefixed to form a full name of the ref." msgstr "" #. type: Plain text #: en/pretty-options.txt:80 msgid "" "Multiple --notes options can be combined to control which notes are being " -"displayed. Examples: \"--notes=foo\" will show only notes from " -"\"refs/notes/foo\"; \"--notes=foo --notes\" will show both notes from " -"\"refs/notes/foo\" and from the default notes ref(s)." +"displayed. Examples: \"--notes=foo\" will show only notes from \"refs/notes/" +"foo\"; \"--notes=foo --notes\" will show both notes from \"refs/notes/foo\" " +"and from the default notes ref(s)." msgstr "" #. type: Labeled list @@ -65941,8 +63877,8 @@ msgstr "" msgid "" "Do not show notes. This negates the above `--notes` option, by resetting the " "list of notes refs from which notes are shown. Options are parsed in the " -"order given on the command line, so e.g. \"--notes --notes=foo --no-notes " -"--notes=bar\" will only show notes from \"refs/notes/bar\"." +"order given on the command line, so e.g. \"--notes --notes=foo --no-notes --" +"notes=bar\" will only show notes from \"refs/notes/bar\"." msgstr "" #. type: Labeled list @@ -66025,31 +63961,79 @@ msgid "\t(see linkgit:git-fetch[1]).\n" msgstr "" #. type: Plain text -#: en/pull-fetch-param.txt:29 +#: en/pull-fetch-param.txt:31 msgid "" "The format of a <refspec> parameter is an optional plus `+`, followed by the " -"source ref <src>, followed by a colon `:`, followed by the destination ref " -"<dst>. The colon can be omitted when <dst> is empty." +"source <src>, followed by a colon `:`, followed by the destination ref " +"<dst>. The colon can be omitted when <dst> is empty. <src> is typically a " +"ref, but it can also be a fully spelled hex object name." msgstr "" #. type: Plain text -#: en/pull-fetch-param.txt:32 +#: en/pull-fetch-param.txt:34 msgid "" "`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`; it requests " "fetching everything up to the given tag." msgstr "" #. type: Plain text -#: en/pull-fetch-param.txt:39 +#: en/pull-fetch-param.txt:38 +msgid "" +"The remote ref that matches <src> is fetched, and if <dst> is not an empty " +"string, an attempt is made to update the local ref that matches it." +msgstr "" + +#. type: Plain text +#: en/pull-fetch-param.txt:45 +msgid "" +"Whether that update is allowed without `--force` depends on the ref " +"namespace it's being fetched to, the type of object being fetched, and " +"whether the update is considered to be a fast-forward. Generally, the same " +"rules apply for fetching as when pushing, see the `<refspec>...` section of " +"linkgit:git-push[1] for what those are. Exceptions to those rules particular " +"to 'git fetch' are noted below." +msgstr "" + +#. type: Plain text +#: en/pull-fetch-param.txt:53 msgid "" -"The remote ref that matches <src> is fetched, and if <dst> is not empty " -"string, the local ref that matches it is fast-forwarded using <src>. If the " -"optional plus `+` is used, the local ref is updated even if it does not " -"result in a fast-forward update." +"Until Git version 2.20, and unlike when pushing with linkgit:git-push[1], " +"any updates to `refs/tags/*` would be accepted without `+` in the refspec " +"(or `--force`). When fetching, we promiscuously considered all tag updates " +"from a remote to be forced fetches. Since Git version 2.20, fetching to " +"update `refs/tags/*` works the same way as when pushing. I.e. any updates " +"will be rejected without `+` in the refspec (or `--force`)." msgstr "" #. type: Plain text -#: en/pull-fetch-param.txt:51 +#: en/pull-fetch-param.txt:59 +msgid "" +"Unlike when pushing with linkgit:git-push[1], any updates outside of `refs/" +"{tags,heads}/*` will be accepted without `+` in the refspec (or `--force`), " +"whether that's swapping e.g. a tree object for a blob, or a commit for " +"another commit that's doesn't have the previous commit as an ancestor etc." +msgstr "" + +#. type: Plain text +#: en/pull-fetch-param.txt:63 +msgid "" +"Unlike when pushing with linkgit:git-push[1], there is no configuration " +"which'll amend these rules, and nothing like a `pre-fetch` hook analogous to " +"the `pre-receive` hook." +msgstr "" + +#. type: Plain text +#: en/pull-fetch-param.txt:70 +msgid "" +"As with pushing with linkgit:git-push[1], all of the rules described above " +"about what's not allowed as an update can be overridden by adding an the " +"optional leading `+` to a refspec (or using `--force` command line option). " +"The only exception to this is that no amount of forcing will make the `refs/" +"heads/*` namespace accept a non-commit object." +msgstr "" + +#. type: Plain text +#: en/pull-fetch-param.txt:82 msgid "" "When the remote branch you want to fetch is known to be rewound and rebased " "regularly, it is expected that its new tip will not be descendant of its " @@ -66062,7 +64046,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/pull-fetch-param.txt:71 +#: en/pull-fetch-param.txt:102 msgid "" "There is a difference between listing multiple <refspec> directly on 'git " "pull' command line and having multiple `remote.<repository>.fetch` entries " @@ -66094,30 +64078,38 @@ msgid "" "list name trees and blobs contained in a commit." msgstr "" +#. type: Plain text +#: en/revisions.txt:13 +msgid "" +"This document shows the \"raw\" syntax as seen by git. The shell and other " +"UIs might require additional quoting to protect special characters and to " +"avoid word splitting." +msgstr "" + #. type: Labeled list -#: en/revisions.txt:10 +#: en/revisions.txt:14 #, no-wrap msgid "'<sha1>', e.g. 'dae86e1950b1277e545cee180551750029cfe735', 'dae86e'" msgstr "" #. type: Plain text -#: en/revisions.txt:16 +#: en/revisions.txt:20 msgid "" "The full SHA-1 object name (40-byte hexadecimal string), or a leading " -"substring that is unique within the repository. " -"E.g. dae86e1950b1277e545cee180551750029cfe735 and dae86e both name the same " +"substring that is unique within the repository. E.g. " +"dae86e1950b1277e545cee180551750029cfe735 and dae86e both name the same " "commit object if there is no other object in your repository whose object " "name starts with dae86e." msgstr "" #. type: Labeled list -#: en/revisions.txt:17 +#: en/revisions.txt:21 #, no-wrap msgid "'<describeOutput>', e.g. 'v1.7.4.2-679-g3bee7fb'" msgstr "" #. type: Plain text -#: en/revisions.txt:21 +#: en/revisions.txt:25 msgid "" "Output from `git describe`; i.e. a closest tag, optionally followed by a " "dash and a number of commits, followed by a dash, a 'g', and an abbreviated " @@ -66125,23 +64117,23 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:22 +#: en/revisions.txt:26 #, no-wrap msgid "'<refname>', e.g. 'master', 'heads/master', 'refs/heads/master'" msgstr "" #. type: Plain text -#: en/revisions.txt:29 +#: en/revisions.txt:33 msgid "" "A symbolic ref name. E.g. 'master' typically means the commit object " -"referenced by 'refs/heads/master'. If you happen to have both " -"'heads/master' and 'tags/master', you can explicitly say 'heads/master' to " -"tell Git which one you mean. When ambiguous, a '<refname>' is disambiguated " -"by taking the first match in the following rules:" +"referenced by 'refs/heads/master'. If you happen to have both 'heads/" +"master' and 'tags/master', you can explicitly say 'heads/master' to tell Git " +"which one you mean. When ambiguous, a '<refname>' is disambiguated by " +"taking the first match in the following rules:" msgstr "" #. type: Plain text -#: en/revisions.txt:33 +#: en/revisions.txt:37 msgid "" "If '$GIT_DIR/<refname>' exists, that is what you mean (this is usually " "useful only for `HEAD`, `FETCH_HEAD`, `ORIG_HEAD`, `MERGE_HEAD` and " @@ -66149,32 +64141,32 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:35 +#: en/revisions.txt:39 msgid "otherwise, 'refs/<refname>' if it exists;" msgstr "" #. type: Plain text -#: en/revisions.txt:37 +#: en/revisions.txt:41 msgid "otherwise, 'refs/tags/<refname>' if it exists;" msgstr "" #. type: Plain text -#: en/revisions.txt:39 +#: en/revisions.txt:43 msgid "otherwise, 'refs/heads/<refname>' if it exists;" msgstr "" #. type: Plain text -#: en/revisions.txt:41 +#: en/revisions.txt:45 msgid "otherwise, 'refs/remotes/<refname>' if it exists;" msgstr "" #. type: Plain text -#: en/revisions.txt:43 +#: en/revisions.txt:47 msgid "otherwise, 'refs/remotes/<refname>/HEAD' if it exists." msgstr "" #. type: Plain text -#: en/revisions.txt:55 +#: en/revisions.txt:59 msgid "" "`HEAD` names the commit on which you based the changes in the working tree. " "`FETCH_HEAD` records the branch which you fetched from a remote repository " @@ -66188,33 +64180,33 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:60 +#: en/revisions.txt:64 msgid "" -"Note that any of the 'refs/*' cases above may come either from the " -"'$GIT_DIR/refs' directory or from the '$GIT_DIR/packed-refs' file. While " -"the ref name encoding is unspecified, UTF-8 is preferred as some output " -"processing may assume ref names in UTF-8." +"Note that any of the 'refs/*' cases above may come either from the '$GIT_DIR/" +"refs' directory or from the '$GIT_DIR/packed-refs' file. While the ref name " +"encoding is unspecified, UTF-8 is preferred as some output processing may " +"assume ref names in UTF-8." msgstr "" #. type: Labeled list -#: en/revisions.txt:61 +#: en/revisions.txt:65 #, no-wrap msgid "'@'" msgstr "" #. type: Plain text -#: en/revisions.txt:63 +#: en/revisions.txt:67 msgid "'@' alone is a shortcut for `HEAD`." msgstr "" #. type: Labeled list -#: en/revisions.txt:64 +#: en/revisions.txt:68 #, no-wrap msgid "'<refname>@{<date>}', e.g. 'master@\\{yesterday\\}', 'HEAD@{5 minutes ago}'" msgstr "" #. type: Plain text -#: en/revisions.txt:75 +#: en/revisions.txt:79 msgid "" "A ref followed by the suffix '@' with a date specification enclosed in a " "brace pair (e.g. '\\{yesterday\\}', '{1 month 2 weeks 3 days 1 hour 1 second " @@ -66227,13 +64219,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:76 +#: en/revisions.txt:80 #, no-wrap msgid "'<refname>@{<n>}', e.g. 'master@\\{1\\}'" msgstr "" #. type: Plain text -#: en/revisions.txt:84 +#: en/revisions.txt:88 msgid "" "A ref followed by the suffix '@' with an ordinal specification enclosed in a " "brace pair (e.g. '\\{1\\}', '\\{15\\}') specifies the n-th prior value of " @@ -66244,13 +64236,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:85 +#: en/revisions.txt:89 #, no-wrap msgid "'@{<n>}', e.g. '@\\{1\\}'" msgstr "" #. type: Plain text -#: en/revisions.txt:89 +#: en/revisions.txt:93 msgid "" "You can use the '@' construct with an empty ref part to get at a reflog " "entry of the current branch. For example, if you are on branch 'blabla' then " @@ -66258,42 +64250,43 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:90 +#: en/revisions.txt:94 #, no-wrap msgid "'@{-<n>}', e.g. '@{-1}'" msgstr "" #. type: Plain text -#: en/revisions.txt:93 +#: en/revisions.txt:97 msgid "" "The construct '@{-<n>}' means the <n>th branch/commit checked out before the " "current one." msgstr "" #. type: Labeled list -#: en/revisions.txt:94 +#: en/revisions.txt:98 #, no-wrap msgid "'<branchname>@\\{upstream\\}', e.g. 'master@\\{upstream\\}', '@\\{u\\}'" msgstr "" #. type: Plain text -#: en/revisions.txt:100 +#: en/revisions.txt:105 msgid "" -"The suffix '@\\{upstream\\}' to a branchname (short form " -"'<branchname>@\\{u\\}') refers to the branch that the branch specified by " -"branchname is set to build on top of (configured with `branch.<name>.remote` " -"and `branch.<name>.merge`). A missing branchname defaults to the current " -"one." +"The suffix '@\\{upstream\\}' to a branchname (short form '<branchname>@\\{u" +"\\}') refers to the branch that the branch specified by branchname is set " +"to build on top of (configured with `branch.<name>.remote` and `branch." +"<name>.merge`). A missing branchname defaults to the current one. These " +"suffixes are also accepted when spelled in uppercase, and they mean the same " +"thing no matter the case." msgstr "" #. type: Labeled list -#: en/revisions.txt:101 +#: en/revisions.txt:106 #, no-wrap msgid "'<branchname>@\\{push\\}', e.g. 'master@\\{push\\}', '@\\{push\\}'" msgstr "" #. type: Plain text -#: en/revisions.txt:107 +#: en/revisions.txt:112 msgid "" "The suffix '@\\{push}' reports the branch \"where we would push to\" if `git " "push` were run while `branchname` was checked out (or the current `HEAD` if " @@ -66303,12 +64296,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:109 +#: en/revisions.txt:114 msgid "Here's an example to make it more clear:" msgstr "" #. type: delimited block - -#: en/revisions.txt:114 +#: en/revisions.txt:119 #, no-wrap msgid "" "$ git config push.default current\n" @@ -66317,7 +64310,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/revisions.txt:117 +#: en/revisions.txt:122 #, no-wrap msgid "" "$ git rev-parse --symbolic-full-name @{upstream}\n" @@ -66325,7 +64318,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/revisions.txt:120 +#: en/revisions.txt:125 #, no-wrap msgid "" "$ git rev-parse --symbolic-full-name @{push}\n" @@ -66333,21 +64326,28 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:125 +#: en/revisions.txt:130 msgid "" "Note in the example that we set up a triangular workflow, where we pull from " "one location and push to another. In a non-triangular workflow, '@\\{push}' " "is the same as '@\\{upstream}', and there is no need for it." msgstr "" +#. type: Plain text +#: en/revisions.txt:133 +msgid "" +"This suffix is also accepted when spelled in uppercase, and means the same " +"thing no matter the case." +msgstr "" + #. type: Labeled list -#: en/revisions.txt:126 +#: en/revisions.txt:134 #, no-wrap msgid "'<rev>{caret}', e.g. 'HEAD{caret}, v1.5.1{caret}0'" msgstr "" #. type: Plain text -#: en/revisions.txt:133 +#: en/revisions.txt:141 msgid "" "A suffix '{caret}' to a revision parameter means the first parent of that " "commit object. '{caret}<n>' means the <n>th parent (i.e. '<rev>{caret}' is " @@ -66357,43 +64357,41 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:134 +#: en/revisions.txt:142 #, no-wrap msgid "'<rev>{tilde}<n>', e.g. 'master{tilde}3'" msgstr "" #. type: Plain text -#: en/revisions.txt:141 +#: en/revisions.txt:149 msgid "" "A suffix '{tilde}<n>' to a revision parameter means the commit object that " "is the <n>th generation ancestor of the named commit object, following only " -"the first parents. I.e. '<rev>{tilde}3' is equivalent to " -"'<rev>{caret}{caret}{caret}' which is equivalent to " -"'<rev>{caret}1{caret}1{caret}1'. See below for an illustration of the usage " -"of this form." +"the first parents. I.e. '<rev>{tilde}3' is equivalent to '<rev>{caret}" +"{caret}{caret}' which is equivalent to '<rev>{caret}1{caret}1{caret}1'. See " +"below for an illustration of the usage of this form." msgstr "" #. type: Labeled list -#: en/revisions.txt:142 +#: en/revisions.txt:150 #, no-wrap msgid "'<rev>{caret}{<type>}', e.g. 'v0.99.8{caret}\\{commit\\}'" msgstr "" #. type: Plain text -#: en/revisions.txt:153 +#: en/revisions.txt:161 msgid "" "A suffix '{caret}' followed by an object type name enclosed in brace pair " "means dereference the object at '<rev>' recursively until an object of type " "'<type>' is found or the object cannot be dereferenced anymore (in which " -"case, barf). For example, if '<rev>' is a commit-ish, " -"'<rev>{caret}\\{commit\\}' describes the corresponding commit object. " -"Similarly, if '<rev>' is a tree-ish, '<rev>{caret}\\{tree\\}' describes the " -"corresponding tree object. '<rev>{caret}0' is a short-hand for " -"'<rev>{caret}\\{commit\\}'." +"case, barf). For example, if '<rev>' is a commit-ish, '<rev>{caret}\\{commit" +"\\}' describes the corresponding commit object. Similarly, if '<rev>' is a " +"tree-ish, '<rev>{caret}\\{tree\\}' describes the corresponding tree object. " +"'<rev>{caret}0' is a short-hand for '<rev>{caret}\\{commit\\}'." msgstr "" #. type: Plain text -#: en/revisions.txt:158 +#: en/revisions.txt:166 msgid "" "'rev{caret}\\{object\\}' can be used to make sure 'rev' names an object that " "exists, without requiring 'rev' to be a tag, and without dereferencing " @@ -66402,33 +64400,33 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:161 +#: en/revisions.txt:169 msgid "" "'rev{caret}\\{tag\\}' can be used to ensure that 'rev' identifies an " "existing tag object." msgstr "" #. type: Labeled list -#: en/revisions.txt:162 +#: en/revisions.txt:170 #, no-wrap msgid "'<rev>{caret}{}', e.g. 'v0.99.8{caret}{}'" msgstr "" #. type: Plain text -#: en/revisions.txt:167 +#: en/revisions.txt:175 msgid "" "A suffix '{caret}' followed by an empty brace pair means the object could be " "a tag, and dereference the tag recursively until a non-tag object is found." msgstr "" #. type: Labeled list -#: en/revisions.txt:168 +#: en/revisions.txt:176 #, no-wrap msgid "'<rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'" msgstr "" #. type: Plain text -#: en/revisions.txt:174 +#: en/revisions.txt:182 msgid "" "A suffix '{caret}' to a revision parameter, followed by a brace pair that " "contains a text led by a slash, is the same as the ':/fix nasty bug' syntax " @@ -66437,32 +64435,34 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:175 +#: en/revisions.txt:183 #, no-wrap msgid "':/<text>', e.g. ':/fix nasty bug'" msgstr "" #. type: Plain text -#: en/revisions.txt:185 +#: en/revisions.txt:196 msgid "" "A colon, followed by a slash, followed by a text, names a commit whose " "commit message matches the specified regular expression. This name returns " -"the youngest matching commit which is reachable from any ref. The regular " -"expression can match any part of the commit message. To match messages " -"starting with a string, one can use e.g. ':/^foo'. The special sequence " -"':/!' is reserved for modifiers to what is matched. ':/!-foo' performs a " -"negative match, while ':/!!foo' matches a literal '!' character, followed by " -"'foo'. Any other sequence beginning with ':/!' is reserved for now." +"the youngest matching commit which is reachable from any ref, including " +"HEAD. The regular expression can match any part of the commit message. To " +"match messages starting with a string, one can use e.g. ':/^foo'. The " +"special sequence ':/!' is reserved for modifiers to what is matched. ':/!-" +"foo' performs a negative match, while ':/!!foo' matches a literal '!' " +"character, followed by 'foo'. Any other sequence beginning with ':/!' is " +"reserved for now. Depending on the given text, the shell's word splitting " +"rules might require additional quoting." msgstr "" #. type: Labeled list -#: en/revisions.txt:186 +#: en/revisions.txt:197 #, no-wrap msgid "'<rev>:<path>', e.g. 'HEAD:README', ':README', 'master:./README'" msgstr "" #. type: Plain text -#: en/revisions.txt:197 +#: en/revisions.txt:208 msgid "" "A suffix ':' followed by a path names the blob or tree at the given path in " "the tree-ish object named by the part before the colon. ':path' (with an " @@ -66475,31 +64475,31 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:198 +#: en/revisions.txt:209 #, no-wrap msgid "':<n>:<path>', e.g. ':0:README', ':README'" msgstr "" #. type: Plain text -#: en/revisions.txt:206 +#: en/revisions.txt:217 msgid "" "A colon, optionally followed by a stage number (0 to 3) and a colon, " "followed by a path, names a blob object in the index at the given path. A " -"missing stage number (and the colon that follows it) names a stage 0 " -"entry. During a merge, stage 1 is the common ancestor, stage 2 is the target " +"missing stage number (and the colon that follows it) names a stage 0 entry. " +"During a merge, stage 1 is the common ancestor, stage 2 is the target " "branch's version (typically the current branch), and stage 3 is the version " "from the branch which is being merged." msgstr "" #. type: Plain text -#: en/revisions.txt:210 +#: en/revisions.txt:221 msgid "" "Here is an illustration, by Jon Loeliger. Both commit nodes B and C are " "parents of commit node A. Parent commits are ordered left-to-right." msgstr "" #. type: delimited block . -#: en/revisions.txt:222 +#: en/revisions.txt:233 #, no-wrap msgid "" "G H I J\n" @@ -66515,7 +64515,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:234 +#: en/revisions.txt:245 #, no-wrap msgid "" " A = = A^0\n" @@ -66531,14 +64531,14 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:241 +#: en/revisions.txt:252 msgid "" "History traversing commands such as `git log` operate on a set of commits, " "not just a single commit." msgstr "" #. type: Plain text -#: en/revisions.txt:246 +#: en/revisions.txt:257 msgid "" "For these commands, specifying a single revision, using the notation " "described in the previous section, means the set of commits `reachable` from " @@ -66546,26 +64546,26 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:249 +#: en/revisions.txt:260 msgid "" "A commit's reachable set is the commit itself and the commits in its " "ancestry chain." msgstr "" #. type: Title ~ -#: en/revisions.txt:252 +#: en/revisions.txt:263 #, no-wrap msgid "Commit Exclusions" msgstr "" #. type: Labeled list -#: en/revisions.txt:254 +#: en/revisions.txt:265 #, no-wrap msgid "'{caret}<rev>' (caret) Notation" msgstr "" #. type: Plain text -#: en/revisions.txt:259 +#: en/revisions.txt:270 msgid "" "To exclude commits reachable from a commit, a prefix '{caret}' notation is " "used. E.g. '{caret}r1 r2' means commits reachable from 'r2' but exclude the " @@ -66573,19 +64573,19 @@ msgid "" msgstr "" #. type: Title ~ -#: en/revisions.txt:261 +#: en/revisions.txt:272 #, no-wrap msgid "Dotted Range Notations" msgstr "" #. type: Labeled list -#: en/revisions.txt:263 +#: en/revisions.txt:274 #, no-wrap msgid "The '..' (two-dot) Range Notation" msgstr "" #. type: Plain text -#: en/revisions.txt:269 +#: en/revisions.txt:280 msgid "" "The '{caret}r1 r2' set operation appears so often that there is a shorthand " "for it. When you have two commits 'r1' and 'r2' (named according to the " @@ -66595,13 +64595,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:270 +#: en/revisions.txt:281 #, no-wrap -msgid "The '...' (three dot) Symmetric Difference Notation" +msgid "The '...' (three-dot) Symmetric Difference Notation" msgstr "" #. type: Plain text -#: en/revisions.txt:276 +#: en/revisions.txt:287 msgid "" "A similar notation 'r1\\...r2' is called symmetric difference of 'r1' and " "'r2' and is defined as 'r1 r2 --not $(git merge-base --all r1 r2)'. It is " @@ -66610,45 +64610,45 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:283 +#: en/revisions.txt:294 msgid "" "In these two shorthand notations, you can omit one end and let it default to " "HEAD. For example, 'origin..' is a shorthand for 'origin..HEAD' and asks " -"\"What did I do since I forked from the origin branch?\" Similarly, " -"'..origin' is a shorthand for 'HEAD..origin' and asks \"What did the origin " -"do since I forked from them?\" Note that '..' would mean 'HEAD..HEAD' which " -"is an empty range that is both reachable and unreachable from HEAD." +"\"What did I do since I forked from the origin branch?\" Similarly, '.." +"origin' is a shorthand for 'HEAD..origin' and asks \"What did the origin do " +"since I forked from them?\" Note that '..' would mean 'HEAD..HEAD' which is " +"an empty range that is both reachable and unreachable from HEAD." msgstr "" #. type: Title ~ -#: en/revisions.txt:285 +#: en/revisions.txt:296 #, no-wrap msgid "Other <rev>{caret} Parent Shorthand Notations" msgstr "" #. type: Plain text -#: en/revisions.txt:288 +#: en/revisions.txt:299 msgid "" "Three other shorthands exist, particularly useful for merge commits, for " "naming a set that is formed by a commit and its parent commits." msgstr "" #. type: Plain text -#: en/revisions.txt:290 +#: en/revisions.txt:301 msgid "The 'r1{caret}@' notation means all parents of 'r1'." msgstr "" #. type: Plain text -#: en/revisions.txt:293 +#: en/revisions.txt:304 msgid "" "The 'r1{caret}!' notation includes commit 'r1' but excludes all of its " "parents. By itself, this notation denotes the single commit 'r1'." msgstr "" #. type: Plain text -#: en/revisions.txt:300 +#: en/revisions.txt:311 msgid "" -"The '<rev>{caret}-{<n>}' notation includes '<rev>' but excludes the <n>th " +"The '<rev>{caret}-<n>' notation includes '<rev>' but excludes the <n>th " "parent (i.e. a shorthand for '<rev>{caret}<n>..<rev>'), with '<n>' = 1 if " "not given. This is typically useful for merge commits where you can just " "pass '<commit>{caret}-' to get all the commits in the branch that was merged " @@ -66656,7 +64656,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/revisions.txt:304 +#: en/revisions.txt:315 msgid "" "While '<rev>{caret}<n>' was about specifying a single commit parent, these " "three notations also consider its parents. For example you can say " @@ -66664,45 +64664,43 @@ msgid "" msgstr "" #. type: Title - -#: en/revisions.txt:306 +#: en/revisions.txt:317 #, no-wrap msgid "Revision Range Summary" msgstr "" #. type: Labeled list -#: en/revisions.txt:308 +#: en/revisions.txt:319 #, no-wrap msgid "'<rev>'" msgstr "" #. type: Plain text -#: en/revisions.txt:311 +#: en/revisions.txt:322 msgid "" -"Include commits that are reachable from <rev> (i.e. <rev> and its " -"ancestors)." +"Include commits that are reachable from <rev> (i.e. <rev> and its ancestors)." msgstr "" #. type: Labeled list -#: en/revisions.txt:312 +#: en/revisions.txt:323 #, no-wrap msgid "'{caret}<rev>'" msgstr "" #. type: Plain text -#: en/revisions.txt:315 +#: en/revisions.txt:326 msgid "" -"Exclude commits that are reachable from <rev> (i.e. <rev> and its " -"ancestors)." +"Exclude commits that are reachable from <rev> (i.e. <rev> and its ancestors)." msgstr "" #. type: Labeled list -#: en/revisions.txt:316 +#: en/revisions.txt:327 #, no-wrap msgid "'<rev1>..<rev2>'" msgstr "" #. type: Plain text -#: en/revisions.txt:320 +#: en/revisions.txt:331 msgid "" "Include commits that are reachable from <rev2> but exclude those that are " "reachable from <rev1>. When either <rev1> or <rev2> is omitted, it defaults " @@ -66710,13 +64708,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:321 +#: en/revisions.txt:332 #, no-wrap msgid "'<rev1>\\...<rev2>'" msgstr "" #. type: Plain text -#: en/revisions.txt:325 +#: en/revisions.txt:336 msgid "" "Include commits that are reachable from either <rev1> or <rev2> but exclude " "those that are reachable from both. When either <rev1> or <rev2> is " @@ -66724,13 +64722,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:326 +#: en/revisions.txt:337 #, no-wrap msgid "'<rev>{caret}@', e.g. 'HEAD{caret}@'" msgstr "" #. type: Plain text -#: en/revisions.txt:330 +#: en/revisions.txt:341 msgid "" "A suffix '{caret}' followed by an at sign is the same as listing all parents " "of '<rev>' (meaning, include anything reachable from its parents, but not " @@ -66738,13 +64736,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:331 +#: en/revisions.txt:342 #, no-wrap msgid "'<rev>{caret}!', e.g. 'HEAD{caret}!'" msgstr "" #. type: Plain text -#: en/revisions.txt:335 +#: en/revisions.txt:346 msgid "" "A suffix '{caret}' followed by an exclamation mark is the same as giving " "commit '<rev>' and then all its parents prefixed with '{caret}' to exclude " @@ -66752,25 +64750,25 @@ msgid "" msgstr "" #. type: Labeled list -#: en/revisions.txt:336 +#: en/revisions.txt:347 #, no-wrap -msgid "'<rev>{caret}-{<n>}', e.g. 'HEAD{caret}-, HEAD{caret}-2'" +msgid "'<rev>{caret}-<n>', e.g. 'HEAD{caret}-, HEAD{caret}-2'" msgstr "" #. type: Plain text -#: en/revisions.txt:339 +#: en/revisions.txt:350 msgid "Equivalent to '<rev>{caret}<n>..<rev>', with '<n>' = 1 if not given." msgstr "" #. type: Plain text -#: en/revisions.txt:343 +#: en/revisions.txt:354 msgid "" "Here are a handful of examples using the Loeliger illustration above, with " "each step in the notation's expansion and selection carefully spelt out:" msgstr "" -#. type: Plain text -#: en/revisions.txt:365 +#. type: delimited block . +#: en/revisions.txt:378 #, no-wrap msgid "" " Args Expanded arguments Selected commits\n" @@ -66814,10 +64812,10 @@ msgstr "" #. type: Plain text #: en/rev-list-options.txt:12 msgid "" -"Using more options generally further limits the output (e.g. " -"`--since=<date1>` limits to commits newer than `<date1>`, and using it with " -"`--grep=<pattern>` further limits to commits whose log message has a line " -"that matches `<pattern>`), unless otherwise noted." +"Using more options generally further limits the output (e.g. `--" +"since=<date1>` limits to commits newer than `<date1>`, and using it with `--" +"grep=<pattern>` further limits to commits whose log message has a line that " +"matches `<pattern>`), unless otherwise noted." msgstr "" #. type: Plain text @@ -66828,119 +64826,119 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:18 +#: en/rev-list-options.txt:16 #, no-wrap msgid "-<number>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:19 +#: en/rev-list-options.txt:17 #, no-wrap msgid "-n <number>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:20 +#: en/rev-list-options.txt:18 #, no-wrap msgid "--max-count=<number>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:22 +#: en/rev-list-options.txt:20 msgid "Limit the number of commits to output." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:23 +#: en/rev-list-options.txt:21 #, no-wrap msgid "--skip=<number>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:25 +#: en/rev-list-options.txt:23 msgid "Skip 'number' commits before starting to show the commit output." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:26 +#: en/rev-list-options.txt:24 #, no-wrap msgid "--since=<date>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:27 +#: en/rev-list-options.txt:25 #, no-wrap msgid "--after=<date>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:29 +#: en/rev-list-options.txt:27 msgid "Show commits more recent than a specific date." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:30 +#: en/rev-list-options.txt:28 #, no-wrap msgid "--until=<date>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:31 +#: en/rev-list-options.txt:29 #, no-wrap msgid "--before=<date>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:33 +#: en/rev-list-options.txt:31 msgid "Show commits older than a specific date." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:35 +#: en/rev-list-options.txt:33 #, no-wrap msgid "--max-age=<timestamp>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:36 +#: en/rev-list-options.txt:34 #, no-wrap msgid "--min-age=<timestamp>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:38 +#: en/rev-list-options.txt:36 msgid "Limit the commits output to specified time range." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:40 +#: en/rev-list-options.txt:38 #, no-wrap msgid "--author=<pattern>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:41 +#: en/rev-list-options.txt:39 #, no-wrap msgid "--committer=<pattern>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:47 +#: en/rev-list-options.txt:45 msgid "" "Limit the commits output to ones with author/committer header lines that " -"match the specified pattern (regular expression). With more than one " -"`--author=<pattern>`, commits whose author matches any of the given patterns " +"match the specified pattern (regular expression). With more than one `--" +"author=<pattern>`, commits whose author matches any of the given patterns " "are chosen (similarly for multiple `--committer=<pattern>`)." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:48 +#: en/rev-list-options.txt:46 #, no-wrap msgid "--grep-reflog=<pattern>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:54 +#: en/rev-list-options.txt:52 msgid "" "Limit the commits output to ones with reflog entries that match the " "specified pattern (regular expression). With more than one `--grep-reflog`, " @@ -66949,13 +64947,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:55 +#: en/rev-list-options.txt:53 #, no-wrap msgid "--grep=<pattern>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:61 +#: en/rev-list-options.txt:59 msgid "" "Limit the commits output to ones with log message that matches the specified " "pattern (regular expression). With more than one `--grep=<pattern>`, " @@ -66964,143 +64962,142 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:65 +#: en/rev-list-options.txt:63 msgid "" "When `--show-notes` is in effect, the message from the notes is matched as " "if it were part of the log message." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:70 +#: en/rev-list-options.txt:68 msgid "" "Limit the commits output to ones that match all given `--grep`, instead of " "ones that match at least one." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:71 +#: en/rev-list-options.txt:69 #, no-wrap msgid "--invert-grep" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:74 +#: en/rev-list-options.txt:72 msgid "" "Limit the commits output to ones with log message that do not match the " "pattern specified with `--grep=<pattern>`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:76 +#: en/rev-list-options.txt:74 #, no-wrap msgid "--regexp-ignore-case" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:79 +#: en/rev-list-options.txt:77 msgid "" -"Match the regular expression limiting patterns without regard to letter " -"case." +"Match the regular expression limiting patterns without regard to letter case." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:83 +#: en/rev-list-options.txt:81 msgid "" "Consider the limiting patterns to be basic regular expressions; this is the " "default." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:88 +#: en/rev-list-options.txt:86 msgid "" "Consider the limiting patterns to be extended regular expressions instead of " "the default basic regular expressions." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:93 +#: en/rev-list-options.txt:91 msgid "" "Consider the limiting patterns to be fixed strings (don't interpret pattern " "as a regular expression)." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:97 +#: en/rev-list-options.txt:96 msgid "" -"Consider the limiting patterns to be Perl-compatible regular expressions. " -"Requires libpcre to be compiled in." +"Consider the limiting patterns to be Perl-compatible regular expressions." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:98 +#: en/rev-list-options.txt:101 #, no-wrap msgid "--remove-empty" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:100 +#: en/rev-list-options.txt:103 msgid "Stop when a given path disappears from the tree." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:101 +#: en/rev-list-options.txt:104 #, no-wrap msgid "--merges" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:103 -msgid "Print only merge commits. This is exactly the same as `--min-parents=2`." +#: en/rev-list-options.txt:106 +msgid "" +"Print only merge commits. This is exactly the same as `--min-parents=2`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:104 +#: en/rev-list-options.txt:107 #, no-wrap msgid "--no-merges" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:107 +#: en/rev-list-options.txt:110 msgid "" "Do not print commits with more than one parent. This is exactly the same as " "`--max-parents=1`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:108 +#: en/rev-list-options.txt:111 #, no-wrap msgid "--min-parents=<number>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:109 +#: en/rev-list-options.txt:112 #, no-wrap msgid "--max-parents=<number>" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:110 +#: en/rev-list-options.txt:113 #, no-wrap msgid "--no-min-parents" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:111 +#: en/rev-list-options.txt:114 #, no-wrap msgid "--no-max-parents" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:116 +#: en/rev-list-options.txt:119 msgid "" -"Show only commits which have at least (or at most) that many parent " -"commits. In particular, `--max-parents=1` is the same as `--no-merges`, " -"`--min-parents=2` is the same as `--merges`. `--max-parents=0` gives all " -"root commits and `--min-parents=3` all octopus merges." +"Show only commits which have at least (or at most) that many parent commits. " +"In particular, `--max-parents=1` is the same as `--no-merges`, `--min-" +"parents=2` is the same as `--merges`. `--max-parents=0` gives all root " +"commits and `--min-parents=3` all octopus merges." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:120 +#: en/rev-list-options.txt:123 msgid "" "`--no-min-parents` and `--no-max-parents` reset these limits (to no limit) " "again. Equivalent forms are `--min-parents=0` (any commit has 0 or more " @@ -67108,7 +65105,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:130 +#: en/rev-list-options.txt:133 msgid "" "Follow only the first parent commit upon seeing a merge commit. This option " "can give a better overview when viewing the evolution of a particular topic " @@ -67119,27 +65116,27 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:134 +#: en/rev-list-options.txt:137 msgid "" "Reverses the meaning of the '{caret}' prefix (or lack thereof) for all " "following revision specifiers, up to the next `--not`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:138 +#: en/rev-list-options.txt:141 msgid "" "Pretend as if all the refs in `refs/`, along with `HEAD`, are listed on the " "command line as '<commit>'." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:139 +#: en/rev-list-options.txt:142 #, no-wrap msgid "--branches[=<pattern>]" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:144 +#: en/rev-list-options.txt:147 msgid "" "Pretend as if all the refs in `refs/heads` are listed on the command line as " "'<commit>'. If '<pattern>' is given, limit branches to ones matching given " @@ -67148,13 +65145,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:145 +#: en/rev-list-options.txt:148 #, no-wrap msgid "--tags[=<pattern>]" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:150 +#: en/rev-list-options.txt:153 msgid "" "Pretend as if all the refs in `refs/tags` are listed on the command line as " "'<commit>'. If '<pattern>' is given, limit tags to ones matching given shell " @@ -67163,13 +65160,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:151 +#: en/rev-list-options.txt:154 #, no-wrap msgid "--remotes[=<pattern>]" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:156 +#: en/rev-list-options.txt:159 msgid "" "Pretend as if all the refs in `refs/remotes` are listed on the command line " "as '<commit>'. If '<pattern>' is given, limit remote-tracking branches to " @@ -67178,48 +65175,57 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:157 +#: en/rev-list-options.txt:160 #, no-wrap msgid "--glob=<glob-pattern>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:162 +#: en/rev-list-options.txt:165 msgid "" "Pretend as if all the refs matching shell glob '<glob-pattern>' are listed " "on the command line as '<commit>'. Leading 'refs/', is automatically " -"prepended if missing. If pattern lacks '?', '{asterisk}', or '[', " -"'/{asterisk}' at the end is implied." +"prepended if missing. If pattern lacks '?', '{asterisk}', or '[', '/" +"{asterisk}' at the end is implied." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:178 +#: en/rev-list-options.txt:181 #, no-wrap msgid "--reflog" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:181 +#: en/rev-list-options.txt:184 msgid "" "Pretend as if all objects mentioned by reflogs are listed on the command " "line as `<commit>`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:185 +#: en/rev-list-options.txt:192 +msgid "" +"By default, all working trees will be examined by the following options when " +"there are more than one (see linkgit:git-worktree[1]): `--all`, `--reflog` " +"and `--indexed-objects`. This option forces them to examine the current " +"working tree only." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:196 msgid "" "Upon seeing an invalid object name in the input, pretend as if the bad input " "was not given." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:187 en/rev-list-options.txt:569 +#: en/rev-list-options.txt:198 en/rev-list-options.txt:578 #, no-wrap msgid "--bisect" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:192 +#: en/rev-list-options.txt:203 msgid "" "Pretend as if the bad bisection ref `refs/bisect/bad` was listed and as if " "it was followed by `--not` and the good bisection refs `refs/bisect/good-*` " @@ -67227,7 +65233,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:199 +#: en/rev-list-options.txt:210 msgid "" "In addition to the '<commit>' listed on the command line, read them from the " "standard input. If a `--` separator is seen, stop reading commits and start " @@ -67235,43 +65241,42 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:207 +#: en/rev-list-options.txt:218 msgid "" "Don't print anything to standard output. This form is primarily meant to " "allow the caller to test the exit status to see if a range of objects is " -"fully connected (or not). It is faster than redirecting stdout to " -"`/dev/null` as the output does not have to be formatted." +"fully connected (or not). It is faster than redirecting stdout to `/dev/" +"null` as the output does not have to be formatted." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:209 +#: en/rev-list-options.txt:220 #, no-wrap msgid "--cherry-mark" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:212 +#: en/rev-list-options.txt:223 msgid "" "Like `--cherry-pick` (see below) but mark equivalent commits with `=` rather " "than omitting them, and inequivalent ones with `+`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:213 +#: en/rev-list-options.txt:224 #, no-wrap msgid "--cherry-pick" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:217 +#: en/rev-list-options.txt:228 msgid "" "Omit any commit that introduces the same change as another commit on the " -"``other side'' when the set of commits are limited with symmetric " -"difference." +"``other side'' when the set of commits are limited with symmetric difference." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:225 +#: en/rev-list-options.txt:236 msgid "" "For example, if you have two branches, `A` and `B`, a usual way to list all " "commits on only one side of them is with `--left-right` (see the example " @@ -67282,56 +65287,56 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:226 +#: en/rev-list-options.txt:237 #, no-wrap msgid "--left-only" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:227 +#: en/rev-list-options.txt:238 #, no-wrap msgid "--right-only" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:231 +#: en/rev-list-options.txt:242 msgid "" -"List only commits on the respective side of a symmetric difference, " -"i.e. only those which would be marked `<` resp. `>` by `--left-right`." +"List only commits on the respective side of a symmetric difference, i.e. " +"only those which would be marked `<` resp. `>` by `--left-right`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:237 +#: en/rev-list-options.txt:248 msgid "" "For example, `--cherry-pick --right-only A...B` omits those commits from `B` " "which are in `A` or are patch-equivalent to a commit in `A`. In other words, " -"this lists the `+` commits from `git cherry A B`. More precisely, " -"`--cherry-pick --right-only --no-merges` gives the exact list." +"this lists the `+` commits from `git cherry A B`. More precisely, `--cherry-" +"pick --right-only --no-merges` gives the exact list." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:238 +#: en/rev-list-options.txt:249 #, no-wrap msgid "--cherry" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:244 +#: en/rev-list-options.txt:255 msgid "" "A synonym for `--right-only --cherry-mark --no-merges`; useful to limit the " "output to the commits on our side and mark those that have been applied to " -"the other side of a forked history with `git log --cherry " -"upstream...mybranch`, similar to `git cherry upstream mybranch`." +"the other side of a forked history with `git log --cherry upstream..." +"mybranch`, similar to `git cherry upstream mybranch`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:246 +#: en/rev-list-options.txt:257 #, no-wrap msgid "--walk-reflogs" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:252 +#: en/rev-list-options.txt:263 msgid "" "Instead of walking the commit ancestry chain, walk reflog entries from the " "most recent one to older ones. When this option is used you cannot specify " @@ -67340,7 +65345,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:259 +#: en/rev-list-options.txt:270 msgid "" "With `--pretty` format other than `oneline` (for obvious reasons), this " "causes the output to have two extra lines of information taken from the " @@ -67351,63 +65356,65 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:263 -msgid "If the starting point is specified as `ref@{Nth}`, show the index format." +#: en/rev-list-options.txt:274 +msgid "" +"If the starting point is specified as `ref@{Nth}`, show the index format." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:266 +#: en/rev-list-options.txt:277 msgid "" "If the starting point was specified as `ref@{now}`, show the timestamp " "format." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:269 +#: en/rev-list-options.txt:280 msgid "" "If neither was used, but `--date` was given on the command line, show the " "timestamp in the format requested by `--date`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:271 +#: en/rev-list-options.txt:282 msgid "Otherwise, show the index format." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:277 +#: en/rev-list-options.txt:288 msgid "" "Under `--pretty=oneline`, the commit message is prefixed with this " -"information on the same line. This option cannot be combined with " -"`--reverse`. See also linkgit:git-reflog[1]." +"information on the same line. This option cannot be combined with `--" +"reverse`. See also linkgit:git-reflog[1]." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:281 +#: en/rev-list-options.txt:292 msgid "" "After a failed merge, show refs that touch files having a conflict and don't " "exist on all heads to merge." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:282 +#: en/rev-list-options.txt:293 #, no-wrap msgid "--boundary" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:285 -msgid "Output excluded boundary commits. Boundary commits are prefixed with `-`." +#: en/rev-list-options.txt:296 +msgid "" +"Output excluded boundary commits. Boundary commits are prefixed with `-`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:287 +#: en/rev-list-options.txt:298 #, no-wrap msgid "--use-bitmap-index" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:292 +#: en/rev-list-options.txt:303 msgid "" "Try to speed up the traversal using the pack bitmap index (if one is " "available). Note that when traversing with `--objects`, trees and blobs will " @@ -67415,26 +65422,26 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:293 +#: en/rev-list-options.txt:304 #, no-wrap msgid "--progress=<header>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:296 +#: en/rev-list-options.txt:307 msgid "" "Show progress reports on stderr as objects are considered. The `<header>` " "text will be printed with each progress update." msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:301 +#: en/rev-list-options.txt:310 #, no-wrap msgid "History Simplification" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:307 +#: en/rev-list-options.txt:316 msgid "" "Sometimes you are only interested in parts of the history, for example the " "commits modifying a particular <path>. But there are two parts of 'History " @@ -67443,50 +65450,50 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:309 +#: en/rev-list-options.txt:318 msgid "The following options select the commits to be shown:" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:310 +#: en/rev-list-options.txt:319 #, no-wrap msgid "<paths>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:312 +#: en/rev-list-options.txt:321 msgid "Commits modifying the given <paths> are selected." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:313 +#: en/rev-list-options.txt:322 #, no-wrap msgid "--simplify-by-decoration" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:315 +#: en/rev-list-options.txt:324 msgid "Commits that are referred by some branch or tag are selected." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:317 +#: en/rev-list-options.txt:326 msgid "Note that extra commits can be shown to give a meaningful history." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:319 +#: en/rev-list-options.txt:328 msgid "The following options affect the way the simplification is performed:" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:320 en/rev-list-options.txt:394 +#: en/rev-list-options.txt:329 en/rev-list-options.txt:403 #, no-wrap msgid "Default mode" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:325 +#: en/rev-list-options.txt:334 msgid "" "Simplifies the history to the simplest history explaining the final state of " "the tree. Simplest because it prunes some side branches if the end result is " @@ -67494,40 +65501,41 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:326 +#: en/rev-list-options.txt:335 #, no-wrap msgid "--full-history" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:328 +#: en/rev-list-options.txt:337 msgid "Same as the default mode, but does not prune some history." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:329 en/rev-list-options.txt:462 +#: en/rev-list-options.txt:338 en/rev-list-options.txt:471 #, no-wrap msgid "--dense" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:332 -msgid "Only the selected commits are shown, plus some to have a meaningful history." +#: en/rev-list-options.txt:341 +msgid "" +"Only the selected commits are shown, plus some to have a meaningful history." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:335 +#: en/rev-list-options.txt:344 msgid "All commits in the simplified history are shown." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:336 en/rev-list-options.txt:473 +#: en/rev-list-options.txt:345 en/rev-list-options.txt:482 #, no-wrap msgid "--simplify-merges" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:340 +#: en/rev-list-options.txt:349 msgid "" "Additional option to `--full-history` to remove some needless merges from " "the resulting history, as there are no selected commits contributing to this " @@ -67535,13 +65543,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:341 en/rev-list-options.txt:520 +#: en/rev-list-options.txt:350 en/rev-list-options.txt:529 #, no-wrap msgid "--ancestry-path" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:347 +#: en/rev-list-options.txt:356 msgid "" "When given a range of commits to display (e.g. 'commit1..commit2' or " "'commit2 {caret}commit1'), only display commits that exist directly on the " @@ -67550,12 +65558,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:349 +#: en/rev-list-options.txt:358 msgid "A more detailed explanation follows." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:353 +#: en/rev-list-options.txt:362 msgid "" "Suppose you specified `foo` as the <paths>. We shall call commits that " "modify `foo` !TREESAME, and the rest TREESAME. (In a diff filtered for " @@ -67563,7 +65571,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:357 +#: en/rev-list-options.txt:366 msgid "" "In the following, we will always refer to the same example history to " "illustrate the differences between simplification settings. We assume that " @@ -67571,7 +65579,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:363 +#: en/rev-list-options.txt:372 #, no-wrap msgid "" "\t .-A---M---N---O---P---Q\n" @@ -67582,14 +65590,14 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:366 +#: en/rev-list-options.txt:375 msgid "" "The horizontal line of history A---Q is taken to be the first parent of each " "merge. The commits are:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:370 +#: en/rev-list-options.txt:379 msgid "" "`I` is the initial commit, in which `foo` exists with contents ``asdf'', and " "a file `quux` exists with contents ``quux''. Initial commits are compared to " @@ -67597,40 +65605,40 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:372 +#: en/rev-list-options.txt:381 msgid "In `A`, `foo` contains just ``foo''." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:375 +#: en/rev-list-options.txt:384 msgid "" "`B` contains the same change as `A`. Its merge `M` is trivial and hence " "TREESAME to all parents." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:378 +#: en/rev-list-options.txt:387 msgid "" "`C` does not change `foo`, but its merge `N` changes it to ``foobar'', so it " "is not TREESAME to any parent." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:381 +#: en/rev-list-options.txt:390 msgid "" "`D` sets `foo` to ``baz''. Its merge `O` combines the strings from `N` and " "`D` to ``foobarbaz''; i.e., it is not TREESAME to any parent." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:384 +#: en/rev-list-options.txt:393 msgid "" "`E` changes `quux` to ``xyzzy'', and its merge `P` combines the strings to " "``quux xyzzy''. `P` is TREESAME to `O`, but not to `E`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:388 +#: en/rev-list-options.txt:397 msgid "" "`X` is an independent root commit that added a new file `side`, and `Y` " "modified it. `Y` is TREESAME to `X`. Its merge `Q` added `side` to `P`, and " @@ -67638,7 +65646,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:393 +#: en/rev-list-options.txt:402 msgid "" "`rev-list` walks backwards through history, including or excluding commits " "based on whether `--full-history` and/or parent rewriting (via `--parents` " @@ -67646,7 +65654,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:401 +#: en/rev-list-options.txt:410 msgid "" "Commits are included if they are not TREESAME to any parent (though this can " "be changed, see `--sparse` below). If the commit was a merge, and it was " @@ -67655,12 +65663,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:403 +#: en/rev-list-options.txt:412 msgid "This results in:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:408 +#: en/rev-list-options.txt:417 #, no-wrap msgid "" "\t .-A---N---O\n" @@ -67669,7 +65677,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:414 +#: en/rev-list-options.txt:423 msgid "" "Note how the rule to only follow the TREESAME parent, if one is available, " "removed `B` from consideration entirely. `C` was considered via `N`, but is " @@ -67677,7 +65685,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:418 +#: en/rev-list-options.txt:427 msgid "" "Parent/child relations are only visible with `--parents`, but that does not " "affect the commits selected in default mode, so we have shown the parent " @@ -67685,13 +65693,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:419 +#: en/rev-list-options.txt:428 #, no-wrap msgid "--full-history without parent rewriting" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:425 +#: en/rev-list-options.txt:434 msgid "" "This mode differs from the default in one point: always follow all parents " "of a merge, even if it is TREESAME to one of them. Even if more than one " @@ -67700,20 +65708,20 @@ msgid "" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:428 +#: en/rev-list-options.txt:437 #, no-wrap msgid "\tI A B N D O P Q\n" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:433 +#: en/rev-list-options.txt:442 msgid "" "`M` was excluded because it is TREESAME to both parents. `E`, `C` and `B` " "were all walked, but only `B` was !TREESAME, so the others do not appear." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:437 +#: en/rev-list-options.txt:446 msgid "" "Note that without parent rewriting, it is not really possible to talk about " "the parent/child relationships between the commits, so we show them " @@ -67721,20 +65729,20 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:438 +#: en/rev-list-options.txt:447 #, no-wrap msgid "--full-history with parent rewriting" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:441 +#: en/rev-list-options.txt:450 msgid "" "Ordinary commits are only included if they are !TREESAME (though this can be " "changed, see `--sparse` below)." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:445 +#: en/rev-list-options.txt:454 msgid "" "Merges are always included. However, their parent list is rewritten: Along " "each parent, prune away commits that are not included themselves. This " @@ -67742,7 +65750,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:452 +#: en/rev-list-options.txt:461 #, no-wrap msgid "" "\t .-A---M---N---O---P---Q\n" @@ -67753,7 +65761,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:458 +#: en/rev-list-options.txt:467 msgid "" "Compare to `--full-history` without rewriting above. Note that `E` was " "pruned away because it is TREESAME, but the parent list of P was rewritten " @@ -67762,24 +65770,25 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:461 +#: en/rev-list-options.txt:470 msgid "" "In addition to the above settings, you can change whether TREESAME affects " "inclusion:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:465 -msgid "Commits that are walked are included if they are not TREESAME to any parent." +#: en/rev-list-options.txt:474 +msgid "" +"Commits that are walked are included if they are not TREESAME to any parent." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:468 +#: en/rev-list-options.txt:477 msgid "All commits that are walked are included." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:472 +#: en/rev-list-options.txt:481 msgid "" "Note that without `--full-history`, this still simplifies merges: if one of " "the parents is TREESAME, we follow only that one, so the other sides of the " @@ -67787,26 +65796,26 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:476 +#: en/rev-list-options.txt:485 msgid "" "First, build a history graph in the same way that `--full-history` with " "parent rewriting does (see above)." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:479 +#: en/rev-list-options.txt:488 msgid "" "Then simplify each commit `C` to its replacement `C'` in the final history " "according to the following rules:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:482 +#: en/rev-list-options.txt:491 msgid "Set `C'` to `C`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:487 +#: en/rev-list-options.txt:496 msgid "" "Replace each parent `P` of `C'` with its simplification `P'`. In the " "process, drop parents that are ancestors of other parents or that are root " @@ -67815,7 +65824,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:491 +#: en/rev-list-options.txt:500 msgid "" "If after this parent rewriting, `C'` is a root or merge commit (has zero or " ">1 parents), a boundary commit, or !TREESAME, it remains. Otherwise, it is " @@ -67823,14 +65832,14 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:495 +#: en/rev-list-options.txt:504 msgid "" "The effect of this is best shown by way of comparing to `--full-history` " "with parent rewriting. The example turns into:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:502 +#: en/rev-list-options.txt:511 #, no-wrap msgid "" "\t .-A---M---N---O\n" @@ -67841,26 +65850,26 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:505 +#: en/rev-list-options.txt:514 msgid "Note the major differences in `N`, `P`, and `Q` over `--full-history`:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:509 +#: en/rev-list-options.txt:518 msgid "" "`N`'s parent list had `I` removed, because it is an ancestor of the other " "parent `M`. Still, `N` remained because it is !TREESAME." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:512 +#: en/rev-list-options.txt:521 msgid "" "`P`'s parent list similarly had `I` removed. `P` was then removed " "completely, because it had one parent and is TREESAME." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:516 +#: en/rev-list-options.txt:525 msgid "" "`Q`'s parent list had `Y` simplified to `X`. `X` was then removed, because " "it was a TREESAME root. `Q` was then removed completely, because it had one " @@ -67868,12 +65877,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:519 +#: en/rev-list-options.txt:528 msgid "Finally, there is a fifth simplification mode available:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:525 +#: en/rev-list-options.txt:534 msgid "" "Limit the displayed commits to those directly on the ancestry chain between " "the ``from'' and ``to'' commits in the given commit range. I.e. only display " @@ -67882,12 +65891,12 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:527 +#: en/rev-list-options.txt:536 msgid "As an example use case, consider the following commit history:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:534 +#: en/rev-list-options.txt:543 #, no-wrap msgid "" "\t D---E-------F\n" @@ -67898,7 +65907,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:542 +#: en/rev-list-options.txt:551 msgid "" "A regular 'D..M' computes the set of commits that are ancestors of `M`, but " "excludes the ones that are ancestors of `D`. This is useful to see what " @@ -67908,7 +65917,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:548 +#: en/rev-list-options.txt:557 msgid "" "When we want to find out what commits in `M` are contaminated with the bug " "introduced by `D` and need fixing, however, we might want to view only the " @@ -67918,7 +65927,7 @@ msgid "" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:555 +#: en/rev-list-options.txt:564 #, no-wrap msgid "" "\t\tE-------F\n" @@ -67929,7 +65938,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:564 +#: en/rev-list-options.txt:573 msgid "" "The `--simplify-by-decoration` option allows you to view only the big " "picture of the topology of the history, by omitting commits that are not " @@ -67941,34 +65950,34 @@ msgid "" msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:567 +#: en/rev-list-options.txt:576 #, no-wrap msgid "Bisection Helpers" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:576 +#: en/rev-list-options.txt:585 msgid "" "Limit output to the one commit object which is roughly halfway between " -"included and excluded commits. Note that the bad bisection ref " -"`refs/bisect/bad` is added to the included commits (if it exists) and the " -"good bisection refs `refs/bisect/good-*` are added to the excluded commits " -"(if they exist). Thus, supposing there are no refs in `refs/bisect/`, if" +"included and excluded commits. Note that the bad bisection ref `refs/bisect/" +"bad` is added to the included commits (if it exists) and the good bisection " +"refs `refs/bisect/good-*` are added to the excluded commits (if they exist). " +"Thus, supposing there are no refs in `refs/bisect/`, if" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:579 +#: en/rev-list-options.txt:588 #, no-wrap msgid "\t$ git rev-list --bisect foo ^bar ^baz\n" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:582 +#: en/rev-list-options.txt:591 msgid "outputs 'midpoint', the output of the two commands" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:586 +#: en/rev-list-options.txt:595 #, no-wrap msgid "" "\t$ git rev-list foo ^midpoint\n" @@ -67976,7 +65985,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:592 +#: en/rev-list-options.txt:601 msgid "" "would be of roughly the same length. Finding the change which introduces a " "regression is thus reduced to a binary search: repeatedly generate and test " @@ -67985,13 +65994,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:593 +#: en/rev-list-options.txt:602 #, no-wrap msgid "--bisect-vars" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:604 +#: en/rev-list-options.txt:613 msgid "" "This calculates the same as `--bisect`, except that refs in `refs/bisect/` " "are not used, and except that this outputs text ready to be eval'ed by the " @@ -68005,22 +66014,22 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:605 +#: en/rev-list-options.txt:614 #, no-wrap msgid "--bisect-all" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:611 +#: en/rev-list-options.txt:620 msgid "" "This outputs all the commit objects between the included and excluded " -"commits, ordered by their distance to the included and excluded " -"commits. Refs in `refs/bisect/` are not used. The farthest from them is " -"displayed first. (This is the only one displayed by `--bisect`.)" +"commits, ordered by their distance to the included and excluded commits. " +"Refs in `refs/bisect/` are not used. The farthest from them is displayed " +"first. (This is the only one displayed by `--bisect`.)" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:615 +#: en/rev-list-options.txt:624 msgid "" "This is useful because it makes it easy to choose a good commit to test when " "you want to avoid to test some of them for some reason (they may not compile " @@ -68028,7 +66037,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:619 +#: en/rev-list-options.txt:628 msgid "" "This option can be used along with `--bisect-vars`, in this case, after all " "the sorted commit objects, there will be the same text as if `--bisect-vars` " @@ -68036,50 +66045,50 @@ msgid "" msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:623 +#: en/rev-list-options.txt:632 #, no-wrap msgid "Commit Ordering" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:626 +#: en/rev-list-options.txt:635 msgid "By default, the commits are shown in reverse chronological order." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:630 +#: en/rev-list-options.txt:639 msgid "" "Show no parents before all of its children are shown, but otherwise show " "commits in the commit timestamp order." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:631 +#: en/rev-list-options.txt:640 #, no-wrap msgid "--author-date-order" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:634 +#: en/rev-list-options.txt:643 msgid "" "Show no parents before all of its children are shown, but otherwise show " "commits in the author timestamp order." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:639 +#: en/rev-list-options.txt:648 msgid "" "Show no parents before all of its children are shown, and avoid showing " "commits on multiple lines of history intermixed." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:641 +#: en/rev-list-options.txt:650 msgid "For example, in a commit history like this:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:647 +#: en/rev-list-options.txt:656 #, no-wrap msgid "" " ---1----2----4----7\n" @@ -68088,7 +66097,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:653 +#: en/rev-list-options.txt:662 msgid "" "where the numbers denote the order of commit timestamps, `git rev-list` and " "friends with `--date-order` show the commits in the timestamp order: 8 7 6 5 " @@ -68096,7 +66105,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:658 +#: en/rev-list-options.txt:667 msgid "" "With `--topo-order`, they would show 8 6 5 3 7 4 2 1 (or 8 7 4 2 6 5 3 1); " "some older commits are shown before newer ones in order to avoid showing the " @@ -68104,45 +66113,58 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:663 +#: en/rev-list-options.txt:672 msgid "" "Output the commits chosen to be shown (see Commit Limiting section above) in " "reverse order. Cannot be combined with `--walk-reflogs`." msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:665 +#: en/rev-list-options.txt:674 #, no-wrap msgid "Object Traversal" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:668 +#: en/rev-list-options.txt:677 msgid "These options are mostly targeted for packing of Git repositories." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:670 +#: en/rev-list-options.txt:679 #, no-wrap msgid "--objects" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:675 +#: en/rev-list-options.txt:684 msgid "" -"Print the object IDs of any object referenced by the listed commits. " -"`--objects foo ^bar` thus means ``send me all object IDs which I need to " +"Print the object IDs of any object referenced by the listed commits. `--" +"objects foo ^bar` thus means ``send me all object IDs which I need to " "download if I have the commit object _bar_ but not _foo_''." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:676 +#: en/rev-list-options.txt:685 +#, no-wrap +msgid "--in-commit-order" +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:689 +msgid "" +"Print tree and blob ids in order of the commits. The tree and blob ids are " +"printed after they are first referenced by a commit." +msgstr "" + +#. type: Labeled list +#: en/rev-list-options.txt:690 #, no-wrap msgid "--objects-edge" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:682 +#: en/rev-list-options.txt:696 msgid "" "Similar to `--objects`, but also print the IDs of excluded commits prefixed " "with a ``-'' character. This is used by linkgit:git-pack-objects[1] to " @@ -68151,13 +66173,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:683 +#: en/rev-list-options.txt:697 #, no-wrap msgid "--objects-edge-aggressive" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:687 +#: en/rev-list-options.txt:701 msgid "" "Similar to `--objects-edge`, but it tries harder to find excluded commits at " "the cost of increased time. This is used instead of `--objects-edge` to " @@ -68165,84 +66187,186 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:688 +#: en/rev-list-options.txt:702 #, no-wrap msgid "--indexed-objects" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:692 +#: en/rev-list-options.txt:706 msgid "" "Pretend as if all trees and blobs used by the index are listed on the " "command line. Note that you probably want to use `--objects`, too." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:696 -msgid "Only useful with `--objects`; print the object IDs that are not in packs." +#: en/rev-list-options.txt:710 +msgid "" +"Only useful with `--objects`; print the object IDs that are not in packs." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:715 +msgid "" +"Only useful with one of the `--objects*`; omits objects (usually blobs) from " +"the list of printed objects. The '<filter-spec>' may be one of the " +"following:" +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:717 +msgid "The form '--filter=blob:none' omits all blobs." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:722 +msgid "" +"The form '--filter=blob:limit=<n>[kmg]' omits blobs larger than n bytes or " +"units. n may be zero. The suffixes k, m, and g can be used to name units " +"in KiB, MiB, or GiB. For example, 'blob:limit=1k' is the same as 'blob:" +"limit=1024'." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:727 +msgid "" +"The form '--filter=sparse:oid=<blob-ish>' uses a sparse-checkout " +"specification contained in the blob (or blob-expression) '<blob-ish>' to " +"omit blobs that would not be not required for a sparse checkout on the " +"requested refs." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:730 +msgid "" +"The form '--filter=sparse:path=<path>' similarly uses a sparse-checkout " +"specification contained in <path>." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:740 +msgid "" +"The form '--filter=tree:<depth>' omits all blobs and trees whose depth from " +"the root tree is >= <depth> (minimum depth if an object is located at " +"multiple depths in the commits traversed). <depth>=0 will not include any " +"trees or blobs unless included explicitly in the command-line (or standard " +"input when --stdin is used). <depth>=1 will include only the tree and blobs " +"which are referenced directly by a commit reachable from <commit> or an " +"explicitly-given object. <depth>=2 is like <depth>=1 while also including " +"trees and blobs one more level removed from an explicitly-given commit or " +"tree." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:743 +msgid "Turn off any previous `--filter=` argument." +msgstr "" + +#. type: Labeled list +#: en/rev-list-options.txt:744 +#, no-wrap +msgid "--filter-print-omitted" +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:747 +msgid "" +"Only useful with `--filter=`; prints a list of the objects omitted by the " +"filter.\tObject IDs are prefixed with a ``~'' character." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:754 +msgid "" +"The form '--missing=error' requests that rev-list stop with an error if a " +"missing object is encountered. This is the default action." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:762 +msgid "" +"The form '--missing=allow-promisor' is like 'allow-any', but will only allow " +"object traversal to continue for EXPECTED promisor missing objects. " +"Unexpected missing objects will raise an error." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:765 +msgid "" +"The form '--missing=print' is like 'allow-any', but will also print a list " +"of the missing objects. Object IDs are prefixed with a ``?'' character." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:772 +msgid "" +"(For internal use only.) Prefilter object traversal at promisor boundary. " +"This is used with partial clone. This is stronger than `--missing=allow-" +"promisor` because it limits the traversal, rather than just silencing errors " +"about missing objects." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:698 +#: en/rev-list-options.txt:774 #, no-wrap msgid "--no-walk[=(sorted|unsorted)]" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:706 +#: en/rev-list-options.txt:782 msgid "" "Only show the given commits, but do not traverse their ancestors. This has " "no effect if a range is specified. If the argument `unsorted` is given, the " -"commits are shown in the order they were given on the command " -"line. Otherwise (if `sorted` or no argument was given), the commits are " -"shown in reverse chronological order by commit time. Cannot be combined " -"with `--graph`." +"commits are shown in the order they were given on the command line. " +"Otherwise (if `sorted` or no argument was given), the commits are shown in " +"reverse chronological order by commit time. Cannot be combined with `--" +"graph`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:707 +#: en/rev-list-options.txt:783 #, no-wrap msgid "--do-walk" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:709 +#: en/rev-list-options.txt:785 msgid "Overrides a previous `--no-walk`." msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:711 +#: en/rev-list-options.txt:787 #, no-wrap msgid "Commit Formatting" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:717 +#: en/rev-list-options.txt:793 msgid "" "Using these options, linkgit:git-rev-list[1] will act similar to the more " -"specialized family of commit log tools: linkgit:git-log[1], " -"linkgit:git-show[1], and linkgit:git-whatchanged[1]" +"specialized family of commit log tools: linkgit:git-log[1], linkgit:git-" +"show[1], and linkgit:git-whatchanged[1]" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:721 +#: en/rev-list-options.txt:797 #, no-wrap msgid "--relative-date" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:723 +#: en/rev-list-options.txt:799 msgid "Synonym for `--date=relative`." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:724 +#: en/rev-list-options.txt:800 #, no-wrap msgid "--date=<format>" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:731 +#: en/rev-list-options.txt:807 msgid "" "Only takes effect for dates shown in human-readable format, such as when " "using `--pretty`. `log.date` config variable sets a default value for the " @@ -68252,74 +66376,83 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:735 +#: en/rev-list-options.txt:811 msgid "" "`--date=relative` shows dates relative to the current time, e.g. ``2 hours " "ago''. The `-local` option has no effect for `--date=relative`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:737 +#: en/rev-list-options.txt:813 msgid "`--date=local` is an alias for `--date=default-local`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:740 +#: en/rev-list-options.txt:816 msgid "" "`--date=iso` (or `--date=iso8601`) shows timestamps in a ISO 8601-like " "format. The differences to the strict ISO 8601 format are:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:742 +#: en/rev-list-options.txt:818 msgid "a space instead of the `T` date/time delimiter" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:743 +#: en/rev-list-options.txt:819 msgid "a space between time and time zone" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:744 +#: en/rev-list-options.txt:820 msgid "no colon between hours and minutes of the time zone" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:748 +#: en/rev-list-options.txt:824 msgid "" "`--date=iso-strict` (or `--date=iso8601-strict`) shows timestamps in strict " "ISO 8601 format." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:751 +#: en/rev-list-options.txt:827 msgid "" "`--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822 format, " "often found in email messages." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:753 +#: en/rev-list-options.txt:829 msgid "" -"`--date=short` shows only the date, but not the time, in `YYYY-MM-DD` " -"format." +"`--date=short` shows only the date, but not the time, in `YYYY-MM-DD` format." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:762 +#: en/rev-list-options.txt:838 msgid "" "`--date=raw` shows the date as seconds since the epoch (1970-01-01 00:00:00 " -"UTC), followed by a space, and then the timezone as an offset from UTC (a " -"`+` or `-` with four digits; the first two are hours, and the second two are " -"minutes). I.e., as if the timestamp were formatted with `strftime(\"%s " -"%z\")`). Note that the `-local` option does not affect the " -"seconds-since-epoch value (which is always measured in UTC), but does switch " -"the accompanying timezone value." +"UTC), followed by a space, and then the timezone as an offset from UTC (a `" +"+` or `-` with four digits; the first two are hours, and the second two are " +"minutes). I.e., as if the timestamp were formatted with `strftime(\"%s %z" +"\")`). Note that the `-local` option does not affect the seconds-since-" +"epoch value (which is always measured in UTC), but does switch the " +"accompanying timezone value." +msgstr "" + +#. type: Plain text +#: en/rev-list-options.txt:845 +msgid "" +"`--date=human` shows the timezone if the timezone does not match the current " +"time-zone, and doesn't print the whole date if that matches (ie skip " +"printing year for dates that are \"this year\", but also skip the whole date " +"itself if it's in the last few days and we can just say what weekday it " +"was). For older dates the hour and minute is also omitted." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:766 +#: en/rev-list-options.txt:849 msgid "" "`--date=unix` shows the date as a Unix epoch timestamp (seconds since " "1970). As with `--raw`, this is always in UTC and therefore `-local` has no " @@ -68327,98 +66460,98 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:772 +#: en/rev-list-options.txt:856 msgid "" -"`--date=format:...` feeds the format `...` to your system `strftime`. Use " -"`--date=format:%c` to show the date in your system locale's preferred " -"format. See the `strftime` manual for a complete list of format " -"placeholders. When using `-local`, the correct syntax is " -"`--date=format-local:...`." +"`--date=format:...` feeds the format `...` to your system `strftime`, except " +"for %z and %Z, which are handled internally. Use `--date=format:%c` to show " +"the date in your system locale's preferred format. See the `strftime` " +"manual for a complete list of format placeholders. When using `-local`, the " +"correct syntax is `--date=format-local:...`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:775 +#: en/rev-list-options.txt:859 msgid "" "`--date=default` is the default format, and is similar to `--date=rfc2822`, " "with a few exceptions:" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:777 +#: en/rev-list-options.txt:861 msgid "there is no comma after the day-of-week" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:779 +#: en/rev-list-options.txt:863 msgid "the time zone is omitted when the local time zone is used" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:781 +#: en/rev-list-options.txt:865 #, no-wrap msgid "--header" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:784 +#: en/rev-list-options.txt:868 msgid "" "Print the contents of the commit in raw-format; each record is separated " "with a NUL character." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:789 +#: en/rev-list-options.txt:873 msgid "" "Print also the parents of the commit (in the form \"commit parent...\"). " -"Also enables parent rewriting, see 'History Simplification' below." +"Also enables parent rewriting, see 'History Simplification' above." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:790 +#: en/rev-list-options.txt:874 #, no-wrap msgid "--children" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:793 +#: en/rev-list-options.txt:877 msgid "" "Print also the children of the commit (in the form \"commit child...\"). " -"Also enables parent rewriting, see 'History Simplification' below." +"Also enables parent rewriting, see 'History Simplification' above." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:795 +#: en/rev-list-options.txt:879 #, no-wrap msgid "--timestamp" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:797 +#: en/rev-list-options.txt:881 msgid "Print the raw commit timestamp." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:799 +#: en/rev-list-options.txt:883 #, no-wrap msgid "--left-right" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:804 +#: en/rev-list-options.txt:888 msgid "" "Mark which side of a symmetric difference a commit is reachable from. " "Commits from the left side are prefixed with `<` and those from the right " -"with `>`. If combined with `--boundary`, those commits are prefixed with " -"`-`." +"with `>`. If combined with `--boundary`, those commits are prefixed with `-" +"`." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:806 +#: en/rev-list-options.txt:890 msgid "For example, if you have this topology:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:813 +#: en/rev-list-options.txt:897 #, no-wrap msgid "" "\t y---b---b branch B\n" @@ -68429,18 +66562,18 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:816 +#: en/rev-list-options.txt:900 msgid "you would get an output like this:" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:819 +#: en/rev-list-options.txt:903 #, no-wrap msgid "\t$ git rev-list --left-right --boundary --pretty=oneline A...B\n" msgstr "" #. type: delimited block - -#: en/rev-list-options.txt:826 +#: en/rev-list-options.txt:910 #, no-wrap msgid "" "\t>bbbbbbb... 3rd on b\n" @@ -68452,13 +66585,13 @@ msgid "" msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:828 +#: en/rev-list-options.txt:912 #, no-wrap msgid "--graph" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:834 +#: en/rev-list-options.txt:918 msgid "" "Draw a text-based graphical representation of the commit history on the left " "hand side of the output. This may cause extra lines to be printed in " @@ -68467,25 +66600,25 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:836 -msgid "This enables parent rewriting, see 'History Simplification' below." +#: en/rev-list-options.txt:920 +msgid "This enables parent rewriting, see 'History Simplification' above." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:839 +#: en/rev-list-options.txt:923 msgid "" "This implies the `--topo-order` option by default, but the `--date-order` " "option may also be specified." msgstr "" #. type: Labeled list -#: en/rev-list-options.txt:840 +#: en/rev-list-options.txt:924 #, no-wrap msgid "--show-linear-break[=<barrier>]" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:846 +#: en/rev-list-options.txt:930 msgid "" "When --graph is not used, all history branches are flattened which can make " "it hard to see that the two consecutive commits do not belong to a linear " @@ -68495,7 +66628,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:856 +#: en/rev-list-options.txt:940 msgid "" "Print a number stating how many commits would have been listed, and suppress " "all other output. When used together with `--left-right`, instead print the " @@ -68505,13 +66638,13 @@ msgid "" msgstr "" #. type: Title ~ -#: en/rev-list-options.txt:860 +#: en/rev-list-options.txt:944 #, no-wrap msgid "Diff Formatting" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:865 +#: en/rev-list-options.txt:949 msgid "" "Listed below are options that control the formatting of diff output. Some " "of them are specific to linkgit:git-rev-list[1], however other diff options " @@ -68519,7 +66652,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:872 +#: en/rev-list-options.txt:956 msgid "" "With this option, diff output for a merge commit shows the differences from " "each of the parents to the merge result simultaneously instead of showing " @@ -68528,7 +66661,7 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:878 +#: en/rev-list-options.txt:962 msgid "" "This flag implies the `-c` option and further compresses the patch output by " "omitting uninteresting hunks whose contents in the parents have only two " @@ -68536,31 +66669,31 @@ msgid "" msgstr "" #. type: Plain text -#: en/rev-list-options.txt:886 +#: en/rev-list-options.txt:970 msgid "" "This flag makes the merge commits show the full diff like regular commits; " "for each merge parent, a separate log entry and diff is generated. An " -"exception is that only diff against the first parent is shown when " -"`--first-parent` option is given; in that case, the output represents the " -"changes the merge brought _into_ the then-current branch." +"exception is that only diff against the first parent is shown when `--first-" +"parent` option is given; in that case, the output represents the changes the " +"merge brought _into_ the then-current branch." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:889 +#: en/rev-list-options.txt:973 msgid "Show recursive diffs." msgstr "" #. type: Plain text -#: en/rev-list-options.txt:892 +#: en/rev-list-options.txt:976 msgid "Show the tree objects in the diff output. This implies `-r`." msgstr "" #. type: Plain text #: en/sequencer.txt:5 msgid "" -"Continue the operation in progress using the information in " -"'.git/sequencer'. Can be used to continue after resolving conflicts in a " -"failed cherry-pick or revert." +"Continue the operation in progress using the information in '.git/" +"sequencer'. Can be used to continue after resolving conflicts in a failed " +"cherry-pick or revert." msgstr "" #. type: Plain text @@ -68579,13 +66712,12 @@ msgstr "" #: en/transfer-data-leaks.txt:11 msgid "" "The fetch and push protocols are not designed to prevent one side from " -"stealing data from the other repository that was not intended to be " -"shared. If you have private data that you need to protect from a malicious " -"peer, your best option is to store it in another repository. This applies to " -"both clients and servers. In particular, namespaces on a server are not " -"effective for read access control; you should only grant read access to a " -"namespace to clients that you would trust with read access to the entire " -"repository." +"stealing data from the other repository that was not intended to be shared. " +"If you have private data that you need to protect from a malicious peer, " +"your best option is to store it in another repository. This applies to both " +"clients and servers. In particular, namespaces on a server are not effective " +"for read access control; you should only grant read access to a namespace to " +"clients that you would trust with read access to the entire repository." msgstr "" #. type: Plain text @@ -68812,7 +66944,8 @@ msgstr "" #. type: Plain text #: en/urls.txt:19 -msgid "ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/" +msgid "" +"ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/" msgstr "" #. type: Plain text @@ -68856,12 +66989,15 @@ msgstr "" #. type: Plain text #: en/urls.txt:36 -msgid "ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/" +msgid "" +"ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/~{startsb}" +"user{endsb}/path/to/repo.git/" msgstr "" #. type: Plain text #: en/urls.txt:37 -msgid "git://host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/" +msgid "" +"git://host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/" msgstr "" #. type: Plain text @@ -68917,8 +67053,8 @@ msgstr "" #: en/urls.txt:66 msgid "" "where <address> may be a path, a server and path, or an arbitrary URL-like " -"string recognized by the specific remote helper being invoked. See " -"linkgit:gitremote-helpers[1] for details." +"string recognized by the specific remote helper being invoked. See linkgit:" +"gitremote-helpers[1] for details." msgstr "" #. type: Plain text @@ -68956,8 +67092,8 @@ msgstr "" #: en/urls.txt:87 msgid "" "a URL like \"work:repo.git\" or like \"host.xz:/path/to/repo.git\" will be " -"rewritten in any context that takes a URL to be " -"\"git://git.host.xz/repo.git\"." +"rewritten in any context that takes a URL to be \"git://git.host.xz/repo.git" +"\"." msgstr "" #. type: Plain text @@ -68990,1413 +67126,3 @@ msgid "" "\"ssh://example.org/path/to/repo.git\" for pushes, but pulls will still use " "the original URL." msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:3 -msgid "Add file contents to the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:4 -#, no-wrap -msgid "linkgit:git-am[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:6 -msgid "Apply a series of patches from a mailbox." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:7 -#, no-wrap -msgid "linkgit:git-archive[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:9 -msgid "Create an archive of files from a named tree." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:10 -#, no-wrap -msgid "linkgit:git-bisect[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:12 -msgid "Use binary search to find the commit that introduced a bug." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:13 -#, no-wrap -msgid "linkgit:git-branch[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:15 -msgid "List, create, or delete branches." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:16 -#, no-wrap -msgid "linkgit:git-bundle[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:18 -msgid "Move objects and refs by archive." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:19 -#, no-wrap -msgid "linkgit:git-checkout[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:21 -msgid "Switch branches or restore working tree files." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:24 -msgid "Apply the changes introduced by some existing commits." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:25 -#, no-wrap -msgid "linkgit:git-citool[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:27 -msgid "Graphical alternative to git-commit." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:28 -#, no-wrap -msgid "linkgit:git-clean[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:30 -msgid "Remove untracked files from the working tree." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:31 -#, no-wrap -msgid "linkgit:git-clone[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:33 -msgid "Clone a repository into a new directory." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:34 -#, no-wrap -msgid "linkgit:git-commit[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:36 -msgid "Record changes to the repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:37 -#, no-wrap -msgid "linkgit:git-describe[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:39 -msgid "Give an object a human readable name based on an available ref." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:42 -msgid "Show changes between commits, commit and working tree, etc." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:45 -msgid "Download objects and refs from another repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:46 -#, no-wrap -msgid "linkgit:git-format-patch[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:48 -msgid "Prepare patches for e-mail submission." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:49 -#, no-wrap -msgid "linkgit:git-gc[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:51 -msgid "Cleanup unnecessary files and optimize the local repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:52 -#, no-wrap -msgid "linkgit:git-grep[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:54 -msgid "Print lines matching a pattern." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:55 -#, no-wrap -msgid "linkgit:git-gui[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:57 -msgid "A portable graphical interface to Git." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:58 -#, no-wrap -msgid "linkgit:git-init[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:60 -msgid "Create an empty Git repository or reinitialize an existing one." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:61 -#, no-wrap -msgid "linkgit:git-log[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:63 -msgid "Show commit logs." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:66 -msgid "Join two or more development histories together." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:67 -#, no-wrap -msgid "linkgit:git-mv[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:69 -msgid "Move or rename a file, a directory, or a symlink." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:70 -#, no-wrap -msgid "linkgit:git-notes[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:72 -msgid "Add or inspect object notes." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:75 -msgid "Fetch from and integrate with another repository or a local branch." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:76 -#, no-wrap -msgid "linkgit:git-push[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:78 -msgid "Update remote refs along with associated objects." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:81 -msgid "Reapply commits on top of another base tip." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:82 -#, no-wrap -msgid "linkgit:git-reset[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:84 -msgid "Reset current HEAD to the specified state." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:87 -msgid "Revert some existing commits." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:88 -#, no-wrap -msgid "linkgit:git-rm[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:90 -msgid "Remove files from the working tree and from the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:91 -#, no-wrap -msgid "linkgit:git-shortlog[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:93 -msgid "Summarize 'git log' output." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:94 -#, no-wrap -msgid "linkgit:git-show[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:96 -msgid "Show various types of objects." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:97 -#, no-wrap -msgid "linkgit:git-stash[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:99 -msgid "Stash the changes in a dirty working directory away." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:100 -#, no-wrap -msgid "linkgit:git-status[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:102 -msgid "Show the working tree status." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:103 -#, no-wrap -msgid "linkgit:git-submodule[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:105 -msgid "Initialize, update or inspect submodules." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:106 -#, no-wrap -msgid "linkgit:git-tag[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:108 -msgid "Create, list, delete or verify a tag object signed with GPG." -msgstr "" - -#. type: Labeled list -#: en/cmds-mainporcelain.txt:109 -#, no-wrap -msgid "linkgit:git-worktree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:111 -msgid "Manage multiple working trees." -msgstr "" - -#. type: Plain text -#: en/cmds-mainporcelain.txt:114 -msgid "The Git repository browser." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:3 -msgid "Get and set repository or global options." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:6 -msgid "Git data exporter." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:9 -msgid "Backend for fast Git data importers." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:10 -#, no-wrap -msgid "linkgit:git-filter-branch[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:12 -msgid "Rewrite branches." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:15 -msgid "Run merge conflict resolution tools to resolve merge conflicts." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:16 -#, no-wrap -msgid "linkgit:git-pack-refs[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:18 -msgid "Pack heads and tags for efficient repository access." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:19 -#, no-wrap -msgid "linkgit:git-prune[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:21 -msgid "Prune all unreachable objects from the object database." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:22 -#, no-wrap -msgid "linkgit:git-reflog[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:24 -msgid "Manage reflog information." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:25 -#, no-wrap -msgid "linkgit:git-remote[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:27 -msgid "Manage set of tracked repositories." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:28 -#, no-wrap -msgid "linkgit:git-repack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:30 -msgid "Pack unpacked objects in a repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillarymanipulators.txt:31 -#, no-wrap -msgid "linkgit:git-replace[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillarymanipulators.txt:33 -msgid "Create, list, delete refs to replace objects." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:3 -msgid "Annotate file lines with commit information." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:6 -msgid "Show what revision and author last modified each line of a file." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:7 -#, no-wrap -msgid "linkgit:git-cherry[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:9 -msgid "Find commits yet to be applied to upstream." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:10 -#, no-wrap -msgid "linkgit:git-count-objects[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:12 -msgid "Count unpacked number of objects and their disk consumption." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:13 -#, no-wrap -msgid "linkgit:git-difftool[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:15 -msgid "Show changes using common diff tools." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:16 -#, no-wrap -msgid "linkgit:git-fsck[1]" -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:19 -#, no-wrap -msgid "linkgit:git-get-tar-commit-id[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:21 -msgid "Extract commit ID from an archive created using git-archive." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:22 -#, no-wrap -msgid "linkgit:git-help[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:24 -msgid "Display help information about Git." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:25 -#, no-wrap -msgid "linkgit:git-instaweb[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:27 -msgid "Instantly browse your working repository in gitweb." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:28 -#, no-wrap -msgid "linkgit:git-merge-tree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:30 -msgid "Show three-way merge without touching index." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:31 -#, no-wrap -msgid "linkgit:git-rerere[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:33 -msgid "Reuse recorded resolution of conflicted merges." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:34 -#, no-wrap -msgid "linkgit:git-rev-parse[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:36 -msgid "Pick out and massage parameters." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:37 -#, no-wrap -msgid "linkgit:git-show-branch[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:39 -msgid "Show branches and their commits." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:40 -#, no-wrap -msgid "linkgit:git-verify-commit[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:42 -msgid "Check the GPG signature of commits." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:43 -#, no-wrap -msgid "linkgit:git-verify-tag[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:45 -msgid "Check the GPG signature of tags." -msgstr "" - -#. type: Labeled list -#: en/cmds-ancillaryinterrogators.txt:46 -#, no-wrap -msgid "linkgit:git-whatchanged[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:48 -msgid "Show logs with difference each commit introduces." -msgstr "" - -#. type: Plain text -#: en/cmds-ancillaryinterrogators.txt:51 -msgid "Git web interface (web frontend to Git repositories)." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:1 -#, no-wrap -msgid "linkgit:git-archimport[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:3 -msgid "Import an Arch repository into Git." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:4 -#, no-wrap -msgid "linkgit:git-cvsexportcommit[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:6 -msgid "Export a single commit to a CVS checkout." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:7 -#, no-wrap -msgid "linkgit:git-cvsimport[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:9 -msgid "Salvage your data out of another SCM people love to hate." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:10 -#, no-wrap -msgid "linkgit:git-cvsserver[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:12 -msgid "A CVS server emulator for Git." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:13 -#, no-wrap -msgid "linkgit:git-imap-send[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:15 -msgid "Send a collection of patches from stdin to an IMAP folder." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:16 -#, no-wrap -msgid "linkgit:git-p4[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:18 -msgid "Import from and submit to Perforce repositories." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:19 -#, no-wrap -msgid "linkgit:git-quiltimport[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:21 -msgid "Applies a quilt patchset onto the current branch." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:22 -#, no-wrap -msgid "linkgit:git-request-pull[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:24 -msgid "Generates a summary of pending changes." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:25 -#, no-wrap -msgid "linkgit:git-send-email[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:27 -msgid "Send a collection of patches as emails." -msgstr "" - -#. type: Labeled list -#: en/cmds-foreignscminterface.txt:28 -#, no-wrap -msgid "linkgit:git-svn[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-foreignscminterface.txt:30 -msgid "Bidirectional operation between a Subversion repository and Git." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:1 -#, no-wrap -msgid "linkgit:git-apply[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:3 -msgid "Apply a patch to files and/or to the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:4 -#, no-wrap -msgid "linkgit:git-checkout-index[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:6 -msgid "Copy files from the index to the working tree." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:7 -#, no-wrap -msgid "linkgit:git-commit-tree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:9 -msgid "Create a new commit object." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:10 -#, no-wrap -msgid "linkgit:git-hash-object[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:12 -msgid "Compute object ID and optionally creates a blob from a file." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:13 -#, no-wrap -msgid "linkgit:git-index-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:15 -msgid "Build pack index file for an existing packed archive." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:16 -#, no-wrap -msgid "linkgit:git-merge-file[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:18 -msgid "Run a three-way file merge." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:19 -#, no-wrap -msgid "linkgit:git-merge-index[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:21 -msgid "Run a merge for files needing merging." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:22 -#, no-wrap -msgid "linkgit:git-mktag[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:24 -msgid "Creates a tag object." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:25 -#, no-wrap -msgid "linkgit:git-mktree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:27 -msgid "Build a tree-object from ls-tree formatted text." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:28 -#, no-wrap -msgid "linkgit:git-pack-objects[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:30 -msgid "Create a packed archive of objects." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:31 -#, no-wrap -msgid "linkgit:git-prune-packed[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:33 -msgid "Remove extra objects that are already in pack files." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:34 -#, no-wrap -msgid "linkgit:git-read-tree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:36 -msgid "Reads tree information into the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:37 -#, no-wrap -msgid "linkgit:git-symbolic-ref[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:39 -msgid "Read, modify and delete symbolic refs." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:40 -#, no-wrap -msgid "linkgit:git-unpack-objects[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:42 -msgid "Unpack objects from a packed archive." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:43 -#, no-wrap -msgid "linkgit:git-update-index[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:45 -msgid "Register file contents in the working tree to the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbingmanipulators.txt:46 -#, no-wrap -msgid "linkgit:git-update-ref[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:48 -msgid "Update the object name stored in a ref safely." -msgstr "" - -#. type: Plain text -#: en/cmds-plumbingmanipulators.txt:51 -msgid "Create a tree object from the current index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:1 -#, no-wrap -msgid "linkgit:git-cat-file[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:3 -msgid "Provide content or type and size information for repository objects." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:4 -#, no-wrap -msgid "linkgit:git-diff-files[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:6 -msgid "Compares files in the working tree and the index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:7 -#, no-wrap -msgid "linkgit:git-diff-index[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:9 -msgid "Compare a tree to the working tree or index." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:10 -#, no-wrap -msgid "linkgit:git-diff-tree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:12 -msgid "Compares the content and mode of blobs found via two tree objects." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:13 -#, no-wrap -msgid "linkgit:git-for-each-ref[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:15 -msgid "Output information on each ref." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:16 -#, no-wrap -msgid "linkgit:git-ls-files[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:18 -msgid "Show information about files in the index and the working tree." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:19 -#, no-wrap -msgid "linkgit:git-ls-remote[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:21 -msgid "List references in a remote repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:22 -#, no-wrap -msgid "linkgit:git-ls-tree[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:24 -msgid "List the contents of a tree object." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:25 -#, no-wrap -msgid "linkgit:git-merge-base[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:27 -msgid "Find as good common ancestors as possible for a merge." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:28 -#, no-wrap -msgid "linkgit:git-name-rev[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:30 -msgid "Find symbolic names for given revs." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:31 -#, no-wrap -msgid "linkgit:git-pack-redundant[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:33 -msgid "Find redundant pack files." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:34 -#, no-wrap -msgid "linkgit:git-rev-list[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:36 -msgid "Lists commit objects in reverse chronological order." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:37 -#, no-wrap -msgid "linkgit:git-show-index[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:39 -msgid "Show packed archive index." -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:42 -msgid "List references in a local repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:43 -#, no-wrap -msgid "linkgit:git-unpack-file[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:45 -msgid "Creates a temporary file with a blob's contents." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:46 -#, no-wrap -msgid "linkgit:git-var[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:48 -msgid "Show a Git logical variable." -msgstr "" - -#. type: Labeled list -#: en/cmds-plumbinginterrogators.txt:49 -#, no-wrap -msgid "linkgit:git-verify-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-plumbinginterrogators.txt:51 -msgid "Validate packed Git archive files." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchingrepositories.txt:1 -#, no-wrap -msgid "linkgit:git-daemon[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchingrepositories.txt:3 -msgid "A really simple server for Git repositories." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchingrepositories.txt:4 -#, no-wrap -msgid "linkgit:git-fetch-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchingrepositories.txt:6 -msgid "Receive missing objects from another repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchingrepositories.txt:7 -#, no-wrap -msgid "linkgit:git-http-backend[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchingrepositories.txt:9 -msgid "Server side implementation of Git over HTTP." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchingrepositories.txt:10 -#, no-wrap -msgid "linkgit:git-send-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchingrepositories.txt:12 -msgid "Push objects over Git protocol to another repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchingrepositories.txt:13 -#, no-wrap -msgid "linkgit:git-update-server-info[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchingrepositories.txt:15 -msgid "Update auxiliary info file to help dumb servers." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:1 -#, no-wrap -msgid "linkgit:git-http-fetch[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:3 -msgid "Download from a remote Git repository via HTTP." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:4 -#, no-wrap -msgid "linkgit:git-http-push[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:6 -msgid "Push objects over HTTP/DAV to another repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:7 -#, no-wrap -msgid "linkgit:git-parse-remote[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:9 -msgid "Routines to help parsing remote repository access parameters." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:10 -#, no-wrap -msgid "linkgit:git-receive-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:12 -msgid "Receive what is pushed into the repository." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:13 -#, no-wrap -msgid "linkgit:git-shell[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:15 -msgid "Restricted login shell for Git-only SSH access." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:16 -#, no-wrap -msgid "linkgit:git-upload-archive[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:18 -msgid "Send archive back to git-archive." -msgstr "" - -#. type: Labeled list -#: en/cmds-synchelpers.txt:19 -#, no-wrap -msgid "linkgit:git-upload-pack[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-synchelpers.txt:21 -msgid "Send objects packed back to git-fetch-pack." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:1 -#, no-wrap -msgid "linkgit:git-check-attr[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:3 -msgid "Display gitattributes information." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:4 -#, no-wrap -msgid "linkgit:git-check-ignore[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:6 -msgid "Debug gitignore / exclude files." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:7 -#, no-wrap -msgid "linkgit:git-check-mailmap[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:9 -msgid "Show canonical names and email addresses of contacts." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:10 -#, no-wrap -msgid "linkgit:git-check-ref-format[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:12 -msgid "Ensures that a reference name is well formed." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:13 -#, no-wrap -msgid "linkgit:git-column[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:15 -msgid "Display data in columns." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:16 -#, no-wrap -msgid "linkgit:git-credential[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:18 -msgid "Retrieve and store user credentials." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:19 -#, no-wrap -msgid "linkgit:git-credential-cache[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:21 -msgid "Helper to temporarily store passwords in memory." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:22 -#, no-wrap -msgid "linkgit:git-credential-store[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:24 -msgid "Helper to store credentials on disk." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:25 -#, no-wrap -msgid "linkgit:git-fmt-merge-msg[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:27 -msgid "Produce a merge commit message." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:28 -#, no-wrap -msgid "linkgit:git-interpret-trailers[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:30 -msgid "add or parse structured information in commit messages." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:31 -#, no-wrap -msgid "linkgit:git-mailinfo[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:33 -msgid "Extracts patch and authorship from a single e-mail message." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:34 -#, no-wrap -msgid "linkgit:git-mailsplit[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:36 -msgid "Simple UNIX mbox splitter program." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:37 -#, no-wrap -msgid "linkgit:git-merge-one-file[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:39 -msgid "The standard helper program to use with git-merge-index." -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:42 -msgid "Compute unique ID for a patch." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:43 -#, no-wrap -msgid "linkgit:git-sh-i18n[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:45 -msgid "Git's i18n setup code for shell scripts." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:46 -#, no-wrap -msgid "linkgit:git-sh-setup[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:48 -msgid "Common Git shell script setup code." -msgstr "" - -#. type: Labeled list -#: en/cmds-purehelpers.txt:49 -#, no-wrap -msgid "linkgit:git-stripspace[1]" -msgstr "" - -#. type: Plain text -#: en/cmds-purehelpers.txt:51 -msgid "Remove unnecessary whitespace." -msgstr "" -- GitLab