1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-18 15:04:49 +01:00
git/Documentation
Junio C Hamano daebaa7813 upload/receive-pack: allow hiding ref hierarchies
A repository may have refs that are only used for its internal
bookkeeping purposes that should not be exposed to the others that
come over the network.

Teach upload-pack to omit some refs from its initial advertisement
by paying attention to the uploadpack.hiderefs multi-valued
configuration variable.  Do the same to receive-pack via the
receive.hiderefs variable.  As a convenient short-hand, allow using
transfer.hiderefs to set the value to both of these variables.

Any ref that is under the hierarchies listed on the value of these
variable is excluded from responses to requests made by "ls-remote",
"fetch", etc. (for upload-pack) and "push" (for receive-pack).

Because these hidden refs do not count as OUR_REF, an attempt to
fetch objects at the tip of them will be rejected, and because these
refs do not get advertised, "git push :" will not see local branches
that have the same name as them as "matching" ones to be sent.

An attempt to update/delete these hidden refs with an explicit
refspec, e.g. "git push origin :refs/hidden/22", is rejected.  This
is not a new restriction.  To the pusher, it would appear that there
is no such ref, so its push request will conclude with "Now that I
sent you all the data, it is time for you to update the refs.  I saw
that the ref did not exist when I started pushing, and I want the
result to point at this commit".  The receiving end will apply the
compare-and-swap rule to this request and rejects the push with
"Well, your update request conflicts with somebody else; I see there
is such a ref.", which is the right thing to do. Otherwise a push to
a hidden ref will always be "the last one wins", which is not a good
default.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-07 13:48:47 -08:00
..
howto Move ./technical/api-command.txt to ./howto/new-command.txt 2012-12-21 10:35:53 -08:00
RelNotes Update draft release notes to 1.8.2 2013-01-18 11:26:11 -08:00
technical Merge branch 'jk/unify-exit-code-by-receiving-signal' into maint 2013-01-14 08:01:27 -08:00
.gitattributes
.gitignore Documentation: ignore *.pdf files 2011-08-08 09:30:12 -07:00
asciidoc.conf Merge branch 'jk/docs-docbook-monospace-display' into maint-1.7.11 2012-09-11 11:08:40 -07:00
blame-options.txt use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
build-docdep.perl
cat-texi.perl
cmd-list.perl
CodingGuidelines Documentation: move support for old compilers to CodingGuidelines 2012-12-16 18:30:53 -08:00
config.txt upload/receive-pack: allow hiding ref hierarchies 2013-02-07 13:48:47 -08:00
date-formats.txt
diff-config.txt Documentation: move diff.wordRegex from config.txt to diff-config.txt 2012-12-27 15:21:46 -08:00
diff-format.txt
diff-generate-patch.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
diff-options.txt Sync with 'maint' 2012-12-18 10:51:22 -08:00
docbook-xsl.css
docbook.xsl Documentation: set a !DOCTYPE for user manual 2010-08-20 10:53:56 -07:00
everyday.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
fetch-options.txt fetch --tags: clarify documentation 2012-12-13 16:19:45 -08:00
fix-texi.perl
git-add.txt Doc add: link gitignore 2012-09-18 21:49:46 -07:00
git-am.txt Merge branch 'jb/am-include' 2012-04-20 15:49:16 -07:00
git-annotate.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-apply.txt apply: document --3way option 2012-07-09 14:40:03 -07:00
git-archimport.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-archive.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-bisect-lk2009.txt Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1 2012-10-16 16:09:09 -07:00
git-bisect.txt bisect: add support for bisecting bare repositories 2011-08-09 10:26:18 -07:00
git-blame.txt git blame: document that it always follows origin across whole-file renames 2012-09-21 12:14:19 -07:00
git-branch.txt Merge branch 'po/maint-docs' 2012-09-25 10:39:52 -07:00
git-bundle.txt Documentation: full-ness of a bundle is significant for cloning 2013-01-01 15:48:20 -08:00
git-cat-file.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-check-attr.txt Teach '--cached' option to check-attr 2011-09-22 16:38:22 -07:00
git-check-ref-format.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-checkout-index.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-checkout.txt Documentation/git-checkout.txt: document 70c9ac2 behavior 2012-12-18 11:07:44 -08:00
git-cherry-pick.txt Merge branch 'cw/cherry-pick-allow-empty-message' 2012-09-03 15:53:37 -07:00
git-cherry.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-citool.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-clean.txt Doc clean: add See Also link 2012-09-18 21:49:50 -07:00
git-clone.txt Documentation: remote tracking branch -> remote-tracking branch 2012-10-25 06:55:46 -04:00
git-column.txt Documentation: spelling fixes 2012-06-19 11:35:19 -07:00
git-commit-tree.txt git-commit-tree(1): correct description of defaults 2013-01-10 10:18:51 -08:00
git-commit.txt Merge branch 'tj/maint-doc-commit-sign' into maint 2012-12-27 15:25:03 -08:00
git-config.txt Merge branch 'jn/warn-on-inaccessible-loosen' into maint 2013-01-11 16:47:07 -08:00
git-count-objects.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-credential-cache--daemon.txt command-list: mention git-credential-* helpers 2012-08-08 12:11:54 -07:00
git-credential-cache.txt command-list: mention git-credential-* helpers 2012-08-08 12:11:54 -07:00
git-credential-store.txt command-list: mention git-credential-* helpers 2012-08-08 12:11:54 -07:00
git-credential.txt Documentation: list git-credential in plumbing commands 2012-08-08 09:59:17 -07:00
git-cvsexportcommit.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-cvsimport.txt Merge branch 'er/stop-recommending-parsecvs' 2013-01-09 08:25:36 -08:00
git-cvsserver.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-daemon.txt Merge branch 'jc/daemon-access-hook' 2012-09-03 15:54:03 -07:00
git-describe.txt Documentation: do not mention .git/refs/* directories 2012-08-06 14:04:16 -07:00
git-diff-files.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-diff-index.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-diff-tree.txt docs: fix some antique example output 2011-05-26 22:15:39 -07:00
git-diff.txt Documentation: Describe "git diff <blob> <blob>" separately 2012-12-18 11:35:28 -08:00
git-difftool.txt mergetool,difftool: Document --tool-help consistently 2012-08-10 08:07:41 -07:00
git-fast-export.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-fast-import.txt Merge branch 'jk/maint-fast-import-doc-reorder' into maint 2013-01-14 07:59:46 -08:00
git-fetch-pack.txt Split over-long synopsis in git-fetch-pack.txt into several lines 2012-10-16 16:09:09 -07:00
git-fetch.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-filter-branch.txt Documentation/git-filter-branch: Move note about effect of removing commits 2012-09-18 12:51:58 -07:00
git-fmt-merge-msg.txt Document merge.branchdesc configuration variable 2012-02-23 11:20:15 -08:00
git-for-each-ref.txt Documentation: describe subject more precisely 2012-09-13 21:30:21 -07:00
git-format-patch.txt Merge branch 'jc/format-patch-reroll' 2013-01-11 18:34:10 -08:00
git-fsck-objects.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-fsck.txt Merge branch 'jc/tag-doc' into maint-1.7.11 2012-08-24 12:05:30 -07:00
git-gc.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-get-tar-commit-id.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-grep.txt grep: add a grep.patternType configuration setting 2012-08-03 09:58:02 -07:00
git-gui.txt docs: put listed example commands in backticks 2011-08-04 15:49:13 -07:00
git-hash-object.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-help.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-http-backend.txt ref namespaces: documentation 2011-07-11 09:35:46 -07:00
git-http-fetch.txt Mark http-fetch without -a as deprecated 2011-08-23 21:36:20 -07:00
git-http-push.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-imap-send.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-index-pack.txt index-pack: support multithreaded delta resolving 2012-05-07 15:48:15 -07:00
git-init-db.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-init.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-instaweb.txt Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages 2011-10-16 11:09:35 -07:00
git-log.txt mailmap: fix some documentation loose-ends for mailmap.blob 2012-12-13 10:19:26 -08:00
git-lost-found.txt Documentation: do not mention .git/refs/* directories 2012-08-06 14:04:16 -07:00
git-ls-files.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-ls-remote.txt ls-remote: document the '--get-url' option 2012-09-07 10:58:35 -07:00
git-ls-tree.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-mailinfo.txt Merge branch 'tr/maint-mailinfo' 2012-01-12 23:34:26 -08:00
git-mailsplit.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-merge-base.txt merge-base: "--is-ancestor A B" 2012-08-31 11:45:33 -07:00
git-merge-file.txt docs: put listed example commands in backticks 2011-08-04 15:49:13 -07:00
git-merge-index.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-merge-one-file.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-merge-tree.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-merge.txt Documentation: remote tracking branch -> remote-tracking branch 2012-10-25 06:55:46 -04:00
git-mergetool--lib.txt Merge branch 'jn/doc-dashdash' into maint 2011-09-11 21:52:18 -07:00
git-mergetool.txt Merge branch 'da/difftool-updates' 2012-08-27 11:55:17 -07:00
git-mktag.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-mktree.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-mv.txt mv: honor --verbose flag 2011-12-12 11:52:31 -08:00
git-name-rev.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-notes.txt Doc notes: Include the format-patch --notes option 2012-10-25 06:15:56 -04:00
git-p4.txt git-p4: add submit --conflict option and config varaiable 2012-09-16 21:52:53 -07:00
git-pack-objects.txt remove doubled words, e.g., s/to to/to/, and fix related typos 2011-04-13 11:59:11 -07:00
git-pack-redundant.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-pack-refs.txt Merge branch 'jc/tag-doc' into maint-1.7.11 2012-08-24 12:05:30 -07:00
git-parse-remote.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-patch-id.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-peek-remote.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-prune-packed.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-prune.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-pull.txt man: git pull -r is a short for --rebase 2012-08-17 00:26:52 -07:00
git-push.txt Merge branch 'cr/push-force-tag-update' 2013-01-05 23:41:34 -08:00
git-quiltimport.txt doc: drop author/documentation sections from most pages 2011-03-11 10:59:16 -05:00
git-read-tree.txt Merge branch 'jh/fetch-head-update' 2012-01-06 12:44:01 -08:00
git-rebase.txt rebase -i: Teach "--edit-todo" action 2012-09-17 20:59:14 -07:00
git-receive-pack.txt Sync with 1.7.6.2 2011-09-06 11:42:12 -07:00
git-reflog.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-relink.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-remote-ext.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-remote-fd.txt docs: put listed example commands in backticks 2011-08-04 15:49:13 -07:00
git-remote-helpers.txt git-remote-helpers.txt: document invocation before input format 2012-12-27 15:30:14 -08:00
git-remote-testgit.txt Add new simplified git-remote-testgit 2012-11-29 12:18:45 -08:00
git-remote.txt remote: prefer subcommand name 'remove' to 'rm' 2012-09-06 13:23:22 -07:00
git-repack.txt fsck: --no-dangling omits "dangling object" information 2012-02-28 14:55:39 -08:00
git-replace.txt Documentation: do not mention .git/refs/* directories 2012-08-06 14:04:16 -07:00
git-repo-config.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-request-pull.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-rerere.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-reset.txt doc: git-reset: make "<mode>" optional 2012-10-29 01:37:07 -04:00
git-rev-list.txt show: --ignore-missing 2011-05-19 10:55:54 -07:00
git-rev-parse.txt Merge branch 'jc/sha1-name-more' 2012-07-22 12:55:07 -07:00
git-revert.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-rm.txt docs: move submodule section 2012-11-14 13:49:53 -08:00
git-send-email.txt git-send-email: introduce compose-encoding 2012-10-10 00:33:40 -07:00
git-send-pack.txt Revert "Merge branch 'cb/maint-quiet-push' into maint" 2011-09-06 11:10:41 -07:00
git-sh-i18n--envsubst.txt correct a few doubled-word nits in comments and documentation 2012-03-28 11:18:35 -07:00
git-sh-i18n.txt Merge branch 'jn/doc-dashdash' into maint 2011-09-11 21:52:18 -07:00
git-sh-setup.txt Merge branch 'tr/doc-sh-setup' into maint 2011-12-28 11:42:51 -08:00
git-shell.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-shortlog.txt Merge branch 'jk/shortlog-no-wrap-doc' into maint 2013-01-14 07:59:03 -08:00
git-show-branch.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-show-index.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-show-ref.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-show.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-stage.txt doc: add missing git footers 2011-03-11 10:59:16 -05:00
git-stash.txt Documentation/git-stash.txt: add a missing verb 2012-12-10 08:18:25 -08:00
git-status.txt status: add --long output format option 2012-10-18 15:01:35 -07:00
git-stripspace.txt Update documentation for stripspace 2011-12-12 16:48:54 -08:00
git-submodule.txt submodule add: If --branch is given, record it in .gitmodules 2012-12-19 09:40:51 -08:00
git-svn.txt git-svn: teach find-rev to find near matches 2013-01-17 23:28:12 +00:00
git-symbolic-ref.txt git symbolic-ref --delete $symref 2012-10-21 12:17:38 -07:00
git-tag.txt Documentation: don't link to example mail addresses 2012-12-16 17:59:07 -08:00
git-tar-tree.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-tools.txt
git-unpack-file.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-unpack-objects.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-update-index.txt update-index: upgrade/downgrade on-disk index version 2012-04-04 09:57:50 -07:00
git-update-ref.txt Merge branch 'bw/log-all-ref-updates-doc' into maint 2011-08-16 11:41:28 -07:00
git-update-server-info.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-upload-archive.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-upload-pack.txt Merge branch 'js/ref-namespaces' 2011-08-17 17:35:38 -07:00
git-var.txt ident: report passwd errors with a more friendly message 2012-05-22 09:08:20 -07:00
git-verify-pack.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-verify-tag.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git-web--browse.txt Merge branch 'jn/doc-dashdash' into maint 2011-09-11 21:52:18 -07:00
git-whatchanged.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
git-write-tree.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
git.txt Sync with 1.8.1.1 2013-01-14 08:22:27 -08:00
gitattributes.txt Merge branch 'nd/attr-match-optim-more' 2012-11-09 12:42:25 -05:00
gitcli.txt gitcli: parse-options lets you omit tail of long options 2012-10-04 20:30:27 -07:00
gitcore-tutorial.txt Documentation: describe subject more precisely 2012-09-13 21:30:21 -07:00
gitcredentials.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
gitcvs-migration.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
gitdiffcore.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
gitglossary.txt
githooks.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
gitignore.txt Merge branch 'nd/wildmatch' 2013-01-10 13:47:20 -08:00
gitk.txt Documentation: use [verse] for SYNOPSIS sections 2011-07-06 14:26:26 -07:00
gitmodules.txt submodule update: add --remote for submodule's upstream changes 2012-12-19 09:40:01 -08:00
gitnamespaces.txt Documentation/gitnamespaces.txt: cater to older asciidoc 2011-09-16 09:20:23 -07:00
gitrepository-layout.txt Doc repository-layout: Show refs/replace 2012-10-25 06:56:39 -04:00
gitrevisions.txt Documentation: gitrevisions 2010-07-05 13:39:02 -07:00
gittutorial-2.txt Use correct grammar in diffstat summary line 2012-02-03 23:19:42 -08:00
gittutorial.txt Documentation: describe subject more precisely 2012-09-13 21:30:21 -07:00
gitweb.conf.txt Documentation: spelling fixes 2012-06-19 11:35:19 -07:00
gitweb.txt Documentation/gitweb: trivial English fixes 2012-03-23 11:22:04 -07:00
gitworkflows.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
glossary-content.txt doc: A few minor copy edits. 2012-08-06 15:34:20 -07:00
howto-index.sh
i18n.txt
install-doc-quick.sh docs: Update install-doc-quick 2011-11-08 13:37:10 -08:00
install-webdoc.sh install-webdoc: keep installed RelNotes-*.txt 2010-09-09 16:17:59 -07:00
mailmap.txt Merge branch 'jk/mailmap-from-blob' 2013-01-05 23:41:42 -08:00
Makefile Merge branch 'jn/xml-depends-on-asciidoc-conf' into maint 2013-01-14 08:01:00 -08:00
manpage-1.72.xsl
manpage-base-url.xsl.in
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-quote-apos.xsl
manpage-suppress-sp.xsl
merge-config.txt Documentation: remote tracking branch -> remote-tracking branch 2012-10-25 06:55:46 -04:00
merge-options.txt merge: backport GIT_MERGE_AUTOEDIT support 2012-03-20 15:39:10 -07:00
merge-strategies.txt merge: teach -Xours/-Xtheirs to binary ll-merge driver 2012-09-08 21:27:19 -07:00
pretty-formats.txt log --format: teach %C(auto,black) to respect color config 2012-12-17 17:30:04 -08:00
pretty-options.txt Documentation: Document signature showing options 2012-09-20 10:28:51 -07:00
pull-fetch-param.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
rev-list-options.txt log --grep: accept --basic-regexp and --perl-regexp 2012-10-09 23:21:30 -07:00
revisions.txt Merge branch 'nd/branch-v-alignment' 2012-09-07 11:10:02 -07:00
sequencer.txt revert: introduce --abort to cancel a failed cherry-pick 2011-11-22 18:16:59 -08:00
SubmittingPatches Merge branch 'jc/submittingpatches' into maint 2013-01-11 16:48:54 -08:00
urls-remotes.txt
urls.txt Git url doc: mark ftp/ftps as read-only and deprecate them 2012-10-08 14:18:19 -07:00
user-manual.conf docs: monospace listings in docbook output 2012-08-07 14:30:52 -07:00
user-manual.txt Doc User-Manual: Patch cover letter, three dashes, and --notes 2012-10-26 10:31:38 -04:00