git-commit-vandalism/Documentation
Junio C Hamano 3d5c418ff5 git-clone: aggressively optimize local clone behaviour.
This changes the behaviour of cloning from a repository on the
local machine, by defaulting to "-l" (use hardlinks to share
files under .git/objects) and making "-l" a no-op.  A new
option, --no-hardlinks, is also added to cause file-level copy
of files under .git/objects while still avoiding the normal
"pack to pipe, then receive and index pack" network transfer
overhead.  The old behaviour of local cloning without -l nor -s
is availble by specifying the source repository with the newly
introduced file:///path/to/repo.git/ syntax (i.e. "same as
network" cloning).

 * With --no-hardlinks (i.e. have all .git/objects/ copied via
   cpio) would not catch the source repository corruption, and
   also risks corrupted recipient repository if an
   alpha-particle hits memory cell while indexing and resolving
   deltas.  As long as the recipient is created uncorrupted, you
   have a good back-up.

 * same-as-network is expensive, but it would catch the breakage
   of the source repository.  It still risks corrupted recipient
   repository due to hardware failure.  As long as the recipient
   is created uncorrupted, you have a good back-up.

 * The new default on the same filesystem, as long as the source
   repository is healthy, it is very likely that the recipient
   would be, too.  Also it is very cheap.  You do not get any
   back-up benefit, though.

None of the method is resilient against the source repository
corruption, so let's discount that from the comparison.  Then
the difference with and without --no-hardlinks matters primarily
if you value the back-up benefit or not.  If you want to use the
cloned repository as a back-up, then it is cheaper to do a clone
with --no-hardlinks and two git-fsck (source before clone,
recipient after clone) than same-as-network clone, especially as
you are likely to do a git-fsck on the recipient if you are so
paranoid anyway.

Which leads me to believe that being able to use file:/// is
probably a good idea, if only for testability, but probably of
little practical value.  We default to hardlinked clone for
everyday use, and paranoids can use --no-hardlinks as a way to
make a back-up.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-01 23:42:36 -07:00
..
howto War on whitespace 2007-06-07 00:04:01 -07:00
technical War on whitespace 2007-06-07 00:04:01 -07:00
.gitignore Ignore all man sections as they are generated files. 2007-04-23 22:19:36 -07:00
asciidoc.conf Merge branch 'maint' 2007-07-18 17:00:36 -07:00
blame-options.txt Update -L documentation for git-blame/git-annotate 2007-04-26 22:43:10 -07:00
build-docdep.perl Documentation/build-docdep.perl: Fix dependencies for included asciidoc files 2007-03-01 13:24:54 -08:00
callouts.xsl spurious .sp in manpages 2006-12-13 09:41:18 -08:00
cmd-list.perl Document git-filter-branch 2007-07-03 19:04:49 -07:00
config.txt Document commit.template configuration variable. 2007-07-26 16:57:24 -07:00
core-intro.txt Change "added.moved or removed" to "added, moved or removed" in 2007-07-06 18:56:34 -07:00
core-tutorial.txt War on whitespace 2007-06-07 00:04:01 -07:00
cvs-migration.txt Documentation: mention module option to git-cvsimport 2007-03-04 16:47:32 -08:00
diff-format.txt diff: round down similarity index 2007-06-25 01:51:21 -07:00
diff-options.txt Update description of -z option. 2007-07-25 23:45:42 -07:00
diffcore.txt War on whitespace 2007-06-07 00:04:01 -07:00
docbook-xsl.css War on whitespace 2007-06-07 00:04:01 -07:00
docbook.xsl Mark user-manual as UTF-8 2007-07-24 00:47:05 -07:00
everyday.txt git-fsck-objects is now synonym to git-fsck 2007-01-28 16:33:58 -08:00
fetch-options.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-add.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-am.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-annotate.txt Update git-annotate/git-blame documentation 2007-04-16 01:14:46 -07:00
git-apply.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-archimport.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-archive.txt Make command description imperative statement, not third-person present. 2007-06-09 10:42:48 -07:00
git-bisect.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-blame.txt git-blame -w: ignore whitespace 2007-06-09 18:34:58 -07:00
git-branch.txt Try to be consistent with capitalization in the documentation 2007-08-01 18:15:43 -07:00
git-bundle.txt Documentation: Added [verse] to SYNOPSIS where necessary 2007-05-18 21:47:40 -07:00
git-cat-file.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-check-attr.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-check-ref-format.txt Some doc typo fixes 2006-06-07 11:49:35 -07:00
git-checkout-index.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-checkout.txt branch --track: code cleanup and saner handling of local branches 2007-07-11 16:03:58 -07:00
git-cherry-pick.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-cherry.txt Merge branch 'maint' 2007-06-12 00:15:16 -07:00
git-citool.txt Document git-gui, git-citool as mainporcelain manual pages 2007-06-22 22:32:32 -07:00
git-clean.txt Fix minor documentation errors 2007-05-07 15:39:57 -07:00
git-clone.txt git-clone: aggressively optimize local clone behaviour. 2007-08-01 23:42:36 -07:00
git-commit-tree.txt Documentation/git-commit-tree: remove description of a nonexistent limitation 2007-07-14 22:56:47 -07:00
git-commit.txt Document commit.template configuration variable. 2007-07-26 16:57:24 -07:00
git-config.txt Make verse of git-config manpage more readable 2007-07-31 22:56:15 -07:00
git-convert-objects.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-count-objects.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-cvsexportcommit.txt Merge branch 'maint' to sync with GIT 1.5.2.2 2007-06-16 01:22:10 -07:00
git-cvsimport.txt Merge branch 'aw/cvs' 2007-06-12 21:04:52 -07:00
git-cvsserver.txt cvsserver: Actually implement --export-all 2007-06-15 22:38:48 -07:00
git-daemon.txt --base-path-relaxed option 2007-08-01 00:37:23 -07:00
git-describe.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-diff-files.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-diff-index.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-diff-tree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-diff.txt Try to be consistent with capitalization in the documentation 2007-08-01 18:15:43 -07:00
git-fast-import.txt Teach fast-import to recursively copy files/directories 2007-07-15 01:41:23 -04:00
git-fetch-pack.txt fetch & clone: do not output progress when not on a tty 2007-02-19 19:20:05 -08:00
git-fetch.txt Add urls.txt to git-clone man page 2007-07-05 21:43:48 -07:00
git-filter-branch.txt filter-branch: Big syntax change; support rewriting multiple refs 2007-07-23 23:15:09 -07:00
git-fmt-merge-msg.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-for-each-ref.txt Documentation: Reformatted SYNOPSIS for several commands 2007-05-18 21:47:45 -07:00
git-format-patch.txt Merge branch 'maint' 2007-07-03 22:56:59 -07:00
git-fsck-objects.txt git-fsck-objects is now synonym to git-fsck 2007-01-28 16:33:58 -08:00
git-fsck.txt fsck --lost-found: write blob's contents, not their SHA-1 2007-07-22 15:59:27 -07:00
git-gc.txt Fix minor grammatical typos in the git-gc man page 2007-05-31 16:22:28 -07:00
git-get-tar-commit-id.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-grep.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-gui.txt Document git-gui, git-citool as mainporcelain manual pages 2007-06-22 22:32:32 -07:00
git-hash-object.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-http-fetch.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-http-push.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-imap-send.txt Several trivial documentation touch ups. 2006-05-05 14:21:18 -07:00
git-index-pack.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-init-db.txt Add an option to quiet git-init. 2007-06-27 22:22:17 -07:00
git-init.txt Add an option to quiet git-init. 2007-06-27 22:22:17 -07:00
git-instaweb.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-local-fetch.txt Mark disused commit walkers officially deprecated. 2007-07-02 23:29:54 -07:00
git-log.txt Documentation for git-log --follow 2007-07-12 14:36:41 -07:00
git-lost-found.txt Documentation: minor edits of git-lost-found manpage 2007-04-16 01:10:28 -07:00
git-ls-files.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-ls-remote.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-ls-tree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-mailinfo.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-mailsplit.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-merge-base.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-merge-file.txt Documentation: sync git.txt command list and manual page title 2007-01-18 15:53:37 -08:00
git-merge-index.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-merge-one-file.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-merge-tree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-merge.txt Try to be consistent with capitalization in the documentation 2007-08-01 18:15:43 -07:00
git-mergetool.txt [PATCH] git-mergetool: Allow gvimdiff to be used as a mergetool 2007-06-10 08:27:29 -04:00
git-mktag.txt mktag: minimally update the description. 2007-06-10 16:00:36 -07:00
git-mktree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-mv.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-name-rev.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-pack-objects.txt Add documentation for --window-memory, pack.windowMemory 2007-07-12 14:32:35 -07:00
git-pack-redundant.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-pack-refs.txt Documentation: pack-refs --all vs default behaviour 2007-01-26 00:02:51 -08:00
git-parse-remote.txt Documentation: sync git.txt command list and manual page title 2007-01-18 15:53:37 -08:00
git-patch-id.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-peek-remote.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-prune-packed.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-prune.txt Merge branch 'maint' 2007-06-09 11:52:43 -07:00
git-pull.txt Add urls.txt to git-clone man page 2007-07-05 21:43:48 -07:00
git-push.txt Add urls.txt to git-clone man page 2007-07-05 21:43:48 -07:00
git-quiltimport.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-read-tree.txt Document git read-tree --trivial 2007-06-16 13:08:09 -07:00
git-rebase.txt Teach rebase -i about --preserve-merges 2007-06-26 18:58:59 -07:00
git-receive-pack.txt Documentation: quote {non-attributes} for asciidoc 2007-07-02 01:33:44 -07:00
git-reflog.txt Document git reflog --stale-fix 2007-06-16 13:08:12 -07:00
git-relink.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-remote.txt Merge branch 'maint' 2007-06-30 11:17:19 -07:00
git-repack.txt Add documentation for --window-memory, pack.windowMemory 2007-07-12 14:32:35 -07:00
git-repo-config.txt [PATCH] Rename git-repo-config to git-config. 2007-01-28 16:16:53 -08:00
git-request-pull.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-rerere.txt Enable "git rerere" by the config variable rerere.enabled 2007-07-06 22:39:15 -07:00
git-reset.txt Try to be consistent with capitalization in the documentation 2007-08-01 18:15:43 -07:00
git-rev-list.txt Teach revision machinery about --no-walk 2007-07-23 23:57:50 -07:00
git-rev-parse.txt Merge branch 'ei/worktree+filter' 2007-07-01 13:10:42 -07:00
git-revert.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-rm.txt More permissive "git-rm --cached" behavior without -f. 2007-07-13 23:52:46 -07:00
git-runstatus.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-send-email.txt Add GIT_EDITOR environment and core.editor configuration variables 2007-07-20 00:46:34 -07:00
git-send-pack.txt Assorted typo fixes 2007-02-03 21:49:54 -08:00
git-sh-setup.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-shell.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-shortlog.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-show-branch.txt show-branch -g: default to the current branch. 2007-02-03 23:34:22 -08:00
git-show-index.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-show-ref.txt Documentation: show-ref: document --exclude-existing 2007-04-09 18:54:52 -07:00
git-show.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-ssh-fetch.txt Mark disused commit walkers officially deprecated. 2007-07-02 23:29:54 -07:00
git-ssh-upload.txt Mark disused commit walkers officially deprecated. 2007-07-02 23:29:54 -07:00
git-stash.txt Document "git stash message..." 2007-07-18 17:01:10 -07:00
git-status.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-stripspace.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-submodule.txt git-submodule(1): update description and key names 2007-07-06 22:39:23 -07:00
git-svn.txt git-svn: trailing slash in prefix is mandatory with --branches/-b 2007-06-24 02:37:40 -07:00
git-svnimport.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-symbolic-ref.txt add logref support to git-symbolic-ref 2007-01-28 02:16:46 -08:00
git-tag.txt Teach git-tag about showing tag annotations. 2007-06-02 20:04:14 -07:00
git-tar-tree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-tools.txt Add hg-to-git conversion utility. 2007-02-05 13:52:45 -08:00
git-unpack-file.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-unpack-objects.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-update-index.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-update-ref.txt git-update-ref: add --no-deref option for overwriting/detaching ref 2007-05-10 15:24:44 -07:00
git-update-server-info.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-upload-archive.txt Documentation: sync git.txt command list and manual page title 2007-01-18 15:53:37 -08:00
git-upload-pack.txt Fixup no-progress for fetch & clone 2007-02-24 00:26:18 -08:00
git-var.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-verify-pack.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-verify-tag.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-whatchanged.txt War on whitespace 2007-06-07 00:04:01 -07:00
git-write-tree.txt War on whitespace 2007-06-07 00:04:01 -07:00
git.txt Document how to tell git to not launch a pager 2007-07-20 00:01:26 -07:00
gitattributes.txt Documentation/gitattributes.txt: typofix 2007-07-30 01:27:34 -07:00
gitignore.txt Documentation/gitignore.txt: Fix the seriously misleading priority explanation 2007-07-21 23:04:20 -07:00
gitk.txt War on whitespace 2007-06-07 00:04:01 -07:00
gitmodules.txt gitmodules(5): remove leading period from synopsis 2007-06-15 22:46:04 -07:00
glossary.txt glossary: add 'reflog' 2007-07-03 13:56:07 -07:00
hooks.txt Remove git-applypatch 2007-05-24 21:36:53 -07:00
howto-index.sh Allow asciidoc formatted documentation in howto/ 2005-08-29 22:38:12 -07:00
i18n.txt Documentation/i18n.txt: it is i18n.commitencoding not core.commitencoding 2007-02-18 15:58:20 -08:00
install-doc-quick.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
install-webdoc.sh user-manual: install user manual stylesheet with other web documents 2007-03-10 23:05:02 -05:00
Makefile When generating manpages, delete outdated targets first. 2007-08-01 19:52:17 -07:00
merge-options.txt War on whitespace 2007-06-07 00:04:01 -07:00
merge-strategies.txt Documentation: recursive is the default strategy these days. 2005-12-08 14:04:33 -08:00
pretty-formats.txt Support output ISO 8601 format dates 2007-07-13 22:47:49 -07:00
pretty-options.txt pretty-options.txt: tiny doc fix 2007-07-25 00:06:38 -07:00
pull-fetch-param.txt War on whitespace 2007-06-07 00:04:01 -07:00
RelNotes-1.5.0.1.txt GIT 1.5.0.1 2007-02-18 16:18:43 -08:00
RelNotes-1.5.0.2.txt GIT 1.5.0.2 2007-02-26 00:26:06 -08:00
RelNotes-1.5.0.3.txt GIT 1.5.0.3 2007-03-04 17:20:38 -08:00
RelNotes-1.5.0.4.txt War on whitespace 2007-06-07 00:04:01 -07:00
RelNotes-1.5.0.5.txt War on whitespace 2007-06-07 00:04:01 -07:00
RelNotes-1.5.0.6.txt War on whitespace 2007-06-07 00:04:01 -07:00
RelNotes-1.5.0.7.txt GIT 1.5.0.7 2007-04-03 19:27:41 -07:00
RelNotes-1.5.0.txt git-clone: Sync documentation to usage note. 2007-02-19 18:14:29 -08:00
RelNotes-1.5.1.1.txt git-svn: don't allow globs to match regular files 2007-04-18 12:39:04 -07:00
RelNotes-1.5.1.2.txt GIT 1.5.1.2 2007-04-21 13:57:07 -07:00
RelNotes-1.5.1.3.txt War on whitespace 2007-06-07 00:04:01 -07:00
RelNotes-1.5.1.4.txt GIT v1.5.1.4 2007-05-08 22:11:17 -07:00
RelNotes-1.5.1.5.txt GIT 1.5.1.6 2007-05-20 00:15:53 -07:00
RelNotes-1.5.1.6.txt GIT 1.5.1.6 2007-05-20 00:15:53 -07:00
RelNotes-1.5.1.txt GIT 1.5.1 2007-04-03 22:47:01 -07:00
RelNotes-1.5.2.1.txt GIT 1.5.2.1 2007-06-02 16:02:49 -07:00
RelNotes-1.5.2.2.txt GIT 1.5.2.2 2007-06-16 01:13:35 -07:00
RelNotes-1.5.2.3.txt GIT 1.5.2.3 2007-07-02 00:35:58 -07:00
RelNotes-1.5.2.4.txt GIT 1.5.2.4 2007-07-12 12:01:47 -07:00
RelNotes-1.5.2.txt GIT 1.5.2 2007-05-20 00:30:39 -07:00
RelNotes-1.5.3.txt GIT 1.5.3-rc3 2007-07-25 00:06:53 -07:00
repository-layout.txt War on whitespace 2007-06-07 00:04:01 -07:00
SubmittingPatches War on whitespace 2007-06-07 00:04:01 -07:00
tutorial-2.txt tutorials: add user-manual links 2007-05-19 00:57:19 -04:00
tutorial.txt Merge branch 'maint' 2007-07-08 18:28:31 -07:00
urls-remotes.txt Add urls.txt to git-clone man page 2007-07-05 21:43:48 -07:00
urls.txt git-clone: aggressively optimize local clone behaviour. 2007-08-01 23:42:36 -07:00
user-manual.conf Documentation: add git user's manual 2007-01-07 20:33:06 -05:00
user-manual.txt user-manual: fix typolets. 2007-07-24 01:58:56 -07:00