summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore41
-rw-r--r--.mailmap241
-rw-r--r--Documentation/.gitignore1
-rw-r--r--Documentation/CodingGuidelines364
-rw-r--r--Documentation/Makefile252
-rw-r--r--Documentation/RelNotes/1.5.2.1.txt6
-rw-r--r--Documentation/RelNotes/1.6.0.2.txt6
-rw-r--r--Documentation/RelNotes/1.6.1.3.txt4
-rw-r--r--Documentation/RelNotes/1.6.1.4.txt3
-rw-r--r--Documentation/RelNotes/1.6.1.txt6
-rw-r--r--Documentation/RelNotes/1.7.10.1.txt78
-rw-r--r--Documentation/RelNotes/1.7.10.2.txt85
-rw-r--r--Documentation/RelNotes/1.7.10.3.txt43
-rw-r--r--Documentation/RelNotes/1.7.10.4.txt29
-rw-r--r--Documentation/RelNotes/1.7.10.5.txt12
-rw-r--r--Documentation/RelNotes/1.7.10.txt219
-rw-r--r--Documentation/RelNotes/1.7.11.1.txt9
-rw-r--r--Documentation/RelNotes/1.7.11.2.txt53
-rw-r--r--Documentation/RelNotes/1.7.11.3.txt53
-rw-r--r--Documentation/RelNotes/1.7.11.4.txt31
-rw-r--r--Documentation/RelNotes/1.7.11.5.txt36
-rw-r--r--Documentation/RelNotes/1.7.11.6.txt84
-rw-r--r--Documentation/RelNotes/1.7.11.7.txt46
-rw-r--r--Documentation/RelNotes/1.7.11.txt139
-rw-r--r--Documentation/RelNotes/1.7.12.1.txt134
-rw-r--r--Documentation/RelNotes/1.7.12.2.txt40
-rw-r--r--Documentation/RelNotes/1.7.12.3.txt34
-rw-r--r--Documentation/RelNotes/1.7.12.4.txt23
-rw-r--r--Documentation/RelNotes/1.7.12.txt136
-rw-r--r--Documentation/RelNotes/1.7.5.4.txt2
-rw-r--r--Documentation/RelNotes/1.7.6.5.txt26
-rw-r--r--Documentation/RelNotes/1.7.6.6.txt16
-rw-r--r--Documentation/RelNotes/1.7.7.1.txt60
-rw-r--r--Documentation/RelNotes/1.7.7.2.txt44
-rw-r--r--Documentation/RelNotes/1.7.7.3.txt19
-rw-r--r--Documentation/RelNotes/1.7.7.4.txt14
-rw-r--r--Documentation/RelNotes/1.7.7.5.txt14
-rw-r--r--Documentation/RelNotes/1.7.7.6.txt20
-rw-r--r--Documentation/RelNotes/1.7.7.7.txt13
-rw-r--r--Documentation/RelNotes/1.7.8.1.txt38
-rw-r--r--Documentation/RelNotes/1.7.8.2.txt71
-rw-r--r--Documentation/RelNotes/1.7.8.3.txt16
-rw-r--r--Documentation/RelNotes/1.7.8.4.txt23
-rw-r--r--Documentation/RelNotes/1.7.8.5.txt19
-rw-r--r--Documentation/RelNotes/1.7.8.6.txt22
-rw-r--r--Documentation/RelNotes/1.7.8.txt161
-rw-r--r--Documentation/RelNotes/1.7.9.1.txt63
-rw-r--r--Documentation/RelNotes/1.7.9.2.txt69
-rw-r--r--Documentation/RelNotes/1.7.9.3.txt51
-rw-r--r--Documentation/RelNotes/1.7.9.4.txt24
-rw-r--r--Documentation/RelNotes/1.7.9.5.txt23
-rw-r--r--Documentation/RelNotes/1.7.9.6.txt12
-rw-r--r--Documentation/RelNotes/1.7.9.7.txt13
-rw-r--r--Documentation/RelNotes/1.7.9.txt112
-rw-r--r--Documentation/RelNotes/1.8.0.1.txt64
-rw-r--r--Documentation/RelNotes/1.8.0.2.txt34
-rw-r--r--Documentation/RelNotes/1.8.0.3.txt14
-rw-r--r--Documentation/RelNotes/1.8.0.txt267
-rw-r--r--Documentation/RelNotes/1.8.1.1.txt87
-rw-r--r--Documentation/RelNotes/1.8.1.2.txt25
-rw-r--r--Documentation/RelNotes/1.8.1.3.txt47
-rw-r--r--Documentation/RelNotes/1.8.1.4.txt11
-rw-r--r--Documentation/RelNotes/1.8.1.5.txt47
-rw-r--r--Documentation/RelNotes/1.8.1.6.txt39
-rw-r--r--Documentation/RelNotes/1.8.1.txt241
-rw-r--r--Documentation/RelNotes/1.8.2.1.txt115
-rw-r--r--Documentation/RelNotes/1.8.2.2.txt61
-rw-r--r--Documentation/RelNotes/1.8.2.3.txt19
-rw-r--r--Documentation/RelNotes/1.8.2.txt495
-rw-r--r--Documentation/RelNotes/1.8.3.1.txt14
-rw-r--r--Documentation/RelNotes/1.8.3.2.txt59
-rw-r--r--Documentation/RelNotes/1.8.3.3.txt47
-rw-r--r--Documentation/RelNotes/1.8.3.4.txt20
-rw-r--r--Documentation/RelNotes/1.8.3.txt436
-rw-r--r--Documentation/RelNotes/1.8.4.1.txt71
-rw-r--r--Documentation/RelNotes/1.8.4.2.txt77
-rw-r--r--Documentation/RelNotes/1.8.4.3.txt54
-rw-r--r--Documentation/RelNotes/1.8.4.4.txt10
-rw-r--r--Documentation/RelNotes/1.8.4.5.txt13
-rw-r--r--Documentation/RelNotes/1.8.4.txt486
-rw-r--r--Documentation/RelNotes/1.8.5.1.txt9
-rw-r--r--Documentation/RelNotes/1.8.5.2.txt20
-rw-r--r--Documentation/RelNotes/1.8.5.3.txt27
-rw-r--r--Documentation/RelNotes/1.8.5.4.txt48
-rw-r--r--Documentation/RelNotes/1.8.5.5.txt37
-rw-r--r--Documentation/RelNotes/1.8.5.6.txt34
-rw-r--r--Documentation/RelNotes/1.8.5.txt456
-rw-r--r--Documentation/RelNotes/1.9.0.txt345
-rw-r--r--Documentation/RelNotes/1.9.1.txt59
-rw-r--r--Documentation/RelNotes/1.9.2.txt67
-rw-r--r--Documentation/RelNotes/1.9.3.txt21
-rw-r--r--Documentation/RelNotes/1.9.4.txt16
-rw-r--r--Documentation/RelNotes/1.9.5.txt34
-rw-r--r--Documentation/RelNotes/2.0.0.txt364
-rw-r--r--Documentation/RelNotes/2.0.1.txt115
-rw-r--r--Documentation/RelNotes/2.0.2.txt32
-rw-r--r--Documentation/RelNotes/2.0.3.txt17
-rw-r--r--Documentation/RelNotes/2.0.4.txt5
-rw-r--r--Documentation/RelNotes/2.0.5.txt34
-rw-r--r--Documentation/RelNotes/2.1.0.txt391
-rw-r--r--Documentation/RelNotes/2.1.1.txt44
-rw-r--r--Documentation/RelNotes/2.1.2.txt20
-rw-r--r--Documentation/RelNotes/2.1.3.txt26
-rw-r--r--Documentation/RelNotes/2.1.4.txt34
-rw-r--r--Documentation/RelNotes/2.2.0.txt313
-rw-r--r--Documentation/RelNotes/2.2.1.txt34
-rw-r--r--Documentation/RelNotes/2.2.2.txt63
-rw-r--r--Documentation/RelNotes/2.3.0.txt300
-rw-r--r--Documentation/RelNotes/2.3.1.txt52
-rw-r--r--Documentation/RelNotes/2.3.2.txt79
-rw-r--r--Documentation/RelNotes/2.3.3.txt39
-rw-r--r--Documentation/RelNotes/2.3.4.txt32
-rw-r--r--Documentation/RelNotes/2.3.5.txt44
-rw-r--r--Documentation/SubmittingPatches230
-rw-r--r--Documentation/asciidoc.conf10
-rw-r--r--Documentation/blame-options.txt30
-rwxr-xr-xDocumentation/cat-texi.perl1
-rw-r--r--Documentation/config.txt1238
-rw-r--r--Documentation/date-formats.txt4
-rw-r--r--Documentation/diff-config.txt64
-rw-r--r--Documentation/diff-format.txt3
-rw-r--r--Documentation/diff-generate-patch.txt4
-rw-r--r--Documentation/diff-options.txt132
-rw-r--r--Documentation/everyday.txto9
-rw-r--r--Documentation/fetch-options.txt56
-rw-r--r--Documentation/git-add.txt67
-rw-r--r--Documentation/git-am.txt47
-rw-r--r--Documentation/git-apply.txt27
-rw-r--r--Documentation/git-archimport.txt16
-rw-r--r--Documentation/git-archive.txt15
-rw-r--r--Documentation/git-bisect-lk2009.txt32
-rw-r--r--Documentation/git-bisect.txt13
-rw-r--r--Documentation/git-blame.txt29
-rw-r--r--Documentation/git-branch.txt92
-rw-r--r--Documentation/git-bundle.txt19
-rw-r--r--Documentation/git-cat-file.txt89
-rw-r--r--Documentation/git-check-attr.txt17
-rw-r--r--Documentation/git-check-ignore.txt119
-rw-r--r--Documentation/git-check-mailmap.txt47
-rw-r--r--Documentation/git-check-ref-format.txt62
-rw-r--r--Documentation/git-checkout.txt99
-rw-r--r--Documentation/git-cherry-pick.txt56
-rw-r--r--Documentation/git-cherry.txt144
-rw-r--r--Documentation/git-clean.txt87
-rw-r--r--Documentation/git-clone.txt92
-rw-r--r--Documentation/git-column.txt48
-rw-r--r--Documentation/git-commit-tree.txt47
-rw-r--r--Documentation/git-commit.txt125
-rw-r--r--Documentation/git-config.txt131
-rw-r--r--Documentation/git-count-objects.txt30
-rw-r--r--Documentation/git-credential-cache--daemon.txt30
-rw-r--r--Documentation/git-credential-cache.txt77
-rw-r--r--Documentation/git-credential-store.txt75
-rw-r--r--Documentation/git-credential.txt154
-rw-r--r--Documentation/git-cvsexportcommit.txt6
-rw-r--r--Documentation/git-cvsimport.txt30
-rw-r--r--Documentation/git-cvsserver.txt69
-rw-r--r--Documentation/git-daemon.txt54
-rw-r--r--Documentation/git-describe.txt32
-rw-r--r--Documentation/git-diff-index.txt12
-rw-r--r--Documentation/git-diff.txt34
-rw-r--r--Documentation/git-difftool.txt41
-rw-r--r--Documentation/git-fast-export.txt93
-rw-r--r--Documentation/git-fast-import.txt220
-rw-r--r--Documentation/git-fetch-pack.txt34
-rw-r--r--Documentation/git-fetch.txt101
-rw-r--r--Documentation/git-filter-branch.txt120
-rw-r--r--Documentation/git-fmt-merge-msg.txt8
-rw-r--r--Documentation/git-for-each-ref.txt34
-rw-r--r--Documentation/git-format-patch.txt74
-rw-r--r--Documentation/git-fsck.txt48
-rw-r--r--Documentation/git-gc.txt16
-rw-r--r--Documentation/git-grep.txt52
-rw-r--r--Documentation/git-gui.txt2
-rw-r--r--Documentation/git-hash-object.txt2
-rw-r--r--Documentation/git-help.txt44
-rw-r--r--Documentation/git-http-backend.txt92
-rw-r--r--Documentation/git-http-fetch.txt4
-rw-r--r--Documentation/git-imap-send.txt40
-rw-r--r--Documentation/git-index-pack.txt19
-rw-r--r--Documentation/git-init-db.txt2
-rw-r--r--Documentation/git-init.txt95
-rw-r--r--Documentation/git-instaweb.txt4
-rw-r--r--Documentation/git-interpret-trailers.txt314
-rw-r--r--Documentation/git-log.txt105
-rw-r--r--Documentation/git-lost-found.txt73
-rw-r--r--Documentation/git-ls-files.txt10
-rw-r--r--Documentation/git-ls-remote.txt16
-rw-r--r--Documentation/git-mailinfo.txt32
-rw-r--r--Documentation/git-merge-base.txt66
-rw-r--r--Documentation/git-merge-file.txt5
-rw-r--r--Documentation/git-merge-index.txt6
-rw-r--r--Documentation/git-merge-tree.txt2
-rw-r--r--Documentation/git-merge.txt48
-rw-r--r--Documentation/git-mergetool--lib.txt4
-rw-r--r--Documentation/git-mergetool.txt26
-rw-r--r--Documentation/git-mktag.txt4
-rw-r--r--Documentation/git-mv.txt32
-rw-r--r--Documentation/git-name-rev.txt11
-rw-r--r--Documentation/git-notes.txt30
-rw-r--r--Documentation/git-p4.txt574
-rw-r--r--Documentation/git-pack-objects.txt26
-rw-r--r--Documentation/git-pack-refs.txt23
-rw-r--r--Documentation/git-patch-id.txt37
-rw-r--r--Documentation/git-peek-remote.txt43
-rw-r--r--Documentation/git-prune-packed.txt4
-rw-r--r--Documentation/git-prune.txt6
-rw-r--r--Documentation/git-pull.txt42
-rw-r--r--Documentation/git-push.txt217
-rw-r--r--Documentation/git-quiltimport.txt6
-rw-r--r--Documentation/git-read-tree.txt63
-rw-r--r--Documentation/git-rebase.txt146
-rw-r--r--Documentation/git-receive-pack.txt65
-rw-r--r--Documentation/git-reflog.txt17
-rw-r--r--Documentation/git-remote-ext.txt21
-rw-r--r--Documentation/git-remote-fd.txt12
-rw-r--r--Documentation/git-remote-helpers.txto9
-rw-r--r--Documentation/git-remote-testgit.txt4
-rw-r--r--Documentation/git-remote.txt73
-rw-r--r--Documentation/git-repack.txt21
-rw-r--r--Documentation/git-replace.txt91
-rw-r--r--Documentation/git-repo-config.txt23
-rw-r--r--Documentation/git-request-pull.txt55
-rw-r--r--Documentation/git-rerere.txt25
-rw-r--r--Documentation/git-reset.txt35
-rw-r--r--Documentation/git-rev-list.txt10
-rw-r--r--Documentation/git-rev-parse.txt208
-rw-r--r--Documentation/git-revert.txt19
-rw-r--r--Documentation/git-rm.txt41
-rw-r--r--Documentation/git-send-email.txt61
-rw-r--r--Documentation/git-send-pack.txt15
-rw-r--r--Documentation/git-sh-i18n--envsubst.txt2
-rw-r--r--Documentation/git-sh-setup.txt28
-rw-r--r--Documentation/git-shell.txt82
-rw-r--r--Documentation/git-shortlog.txt33
-rw-r--r--Documentation/git-show-branch.txt6
-rw-r--r--Documentation/git-show-index.txt4
-rw-r--r--Documentation/git-show-ref.txt23
-rw-r--r--Documentation/git-show.txt13
-rw-r--r--Documentation/git-stage.txt2
-rw-r--r--Documentation/git-stash.txt35
-rw-r--r--Documentation/git-status.txt52
-rw-r--r--Documentation/git-stripspace.txt76
-rw-r--r--Documentation/git-submodule.txt164
-rw-r--r--Documentation/git-svn.txt395
-rw-r--r--Documentation/git-symbolic-ref.txt26
-rw-r--r--Documentation/git-tag.txt80
-rw-r--r--Documentation/git-tar-tree.txt82
-rw-r--r--Documentation/git-tools.txt44
-rw-r--r--Documentation/git-unpack-objects.txt2
-rw-r--r--Documentation/git-update-index.txt84
-rw-r--r--Documentation/git-update-ref.txt62
-rw-r--r--Documentation/git-upload-archive.txt34
-rw-r--r--Documentation/git-upload-pack.txt2
-rw-r--r--Documentation/git-var.txt33
-rw-r--r--Documentation/git-verify-commit.txt28
-rw-r--r--Documentation/git-verify-pack.txt8
-rw-r--r--Documentation/git-verify-tag.txt2
-rw-r--r--Documentation/git-web--browse.txt10
-rw-r--r--Documentation/git-whatchanged.txt42
-rw-r--r--Documentation/git.txt552
-rw-r--r--Documentation/gitattributes.txt140
-rw-r--r--Documentation/gitcli.txt88
-rw-r--r--Documentation/gitcore-tutorial.txt236
-rw-r--r--Documentation/gitcredentials.txt183
-rw-r--r--Documentation/gitcvs-migration.txt28
-rw-r--r--Documentation/gitdiffcore.txt53
-rw-r--r--Documentation/giteveryday.txt (renamed from Documentation/everyday.txt)290
-rw-r--r--Documentation/gitglossary.txt4
-rw-r--r--Documentation/githooks.txt59
-rw-r--r--Documentation/gitignore.txt107
-rw-r--r--Documentation/gitk.txt139
-rw-r--r--Documentation/gitmodules.txt44
-rw-r--r--Documentation/gitnamespaces.txt2
-rw-r--r--Documentation/gitremote-helpers.txt (renamed from Documentation/git-remote-helpers.txt)308
-rw-r--r--Documentation/gitrepository-layout.txt51
-rw-r--r--Documentation/gitrevisions.txt2
-rw-r--r--Documentation/gittutorial-2.txt79
-rw-r--r--Documentation/gittutorial.txt69
-rw-r--r--Documentation/gitweb.conf.txt151
-rw-r--r--Documentation/gitweb.txt704
-rw-r--r--Documentation/gitworkflows.txt10
-rw-r--r--Documentation/glossary-content.txt259
-rwxr-xr-xDocumentation/howto-index.sh16
-rw-r--r--Documentation/howto/keep-canonical-history-correct.txt216
-rw-r--r--Documentation/howto/maintain-git.txt375
-rw-r--r--Documentation/howto/new-command.txt104
-rw-r--r--Documentation/howto/rebase-from-internal-branch.txt19
-rw-r--r--Documentation/howto/rebuild-from-update-hook.txt12
-rw-r--r--Documentation/howto/recover-corrupted-blob-object.txt20
-rw-r--r--Documentation/howto/recover-corrupted-object-harder.txt479
-rw-r--r--Documentation/howto/revert-a-faulty-merge.txt18
-rw-r--r--Documentation/howto/revert-branch-rebase.txt12
-rw-r--r--Documentation/howto/separating-topic-branches.txt4
-rw-r--r--Documentation/howto/setup-git-server-over-http.txt30
-rw-r--r--Documentation/howto/update-hook-example.txt50
-rw-r--r--Documentation/howto/use-git-daemon.txt5
-rw-r--r--Documentation/howto/using-merge-subtree.txt2
-rw-r--r--Documentation/howto/using-signed-tag-in-pull-request.txt217
-rw-r--r--Documentation/i18n.txt8
-rwxr-xr-xDocumentation/install-doc-quick.sh44
-rwxr-xr-xDocumentation/install-webdoc.sh6
-rw-r--r--Documentation/line-range-format.txt29
-rw-r--r--Documentation/mailmap.txt5
-rw-r--r--Documentation/merge-config.txt24
-rw-r--r--Documentation/merge-options.txt63
-rw-r--r--Documentation/merge-strategies.txt23
-rw-r--r--Documentation/pretty-formats.txt70
-rw-r--r--Documentation/pretty-options.txt8
-rw-r--r--Documentation/pt_BR/gittutorial.txt675
-rw-r--r--Documentation/pull-fetch-param.txt78
-rw-r--r--Documentation/rev-list-options.txt442
-rw-r--r--Documentation/revisions.txt97
-rw-r--r--Documentation/sequencer.txt12
-rw-r--r--Documentation/technical/api-allocation-growing.txt17
-rw-r--r--Documentation/technical/api-argv-array.txt55
-rw-r--r--Documentation/technical/api-builtin.txt19
-rw-r--r--Documentation/technical/api-config.txt324
-rw-r--r--Documentation/technical/api-credentials.txt271
-rw-r--r--Documentation/technical/api-diff.txt10
-rw-r--r--Documentation/technical/api-directory-listing.txt60
-rw-r--r--Documentation/technical/api-gitattributes.txt2
-rw-r--r--Documentation/technical/api-hash.txt52
-rw-r--r--Documentation/technical/api-hashmap.txt280
-rw-r--r--Documentation/technical/api-history-graph.txt10
-rw-r--r--Documentation/technical/api-index-skel.txt6
-rw-r--r--Documentation/technical/api-lockfile.txt254
-rw-r--r--Documentation/technical/api-parse-options.txt86
-rw-r--r--Documentation/technical/api-ref-iteration.txt6
-rw-r--r--Documentation/technical/api-remote.txt22
-rw-r--r--Documentation/technical/api-revision-walking.txt5
-rw-r--r--Documentation/technical/api-run-command.txt26
-rw-r--r--Documentation/technical/api-setup.txt38
-rw-r--r--Documentation/technical/api-sha1-array.txt76
-rw-r--r--Documentation/technical/api-strbuf.txt91
-rw-r--r--Documentation/technical/api-string-list.txt89
-rw-r--r--Documentation/technical/api-trace.txt97
-rw-r--r--Documentation/technical/bitmap-format.txt164
-rw-r--r--Documentation/technical/http-protocol.txt506
-rw-r--r--Documentation/technical/index-format.txt69
-rw-r--r--Documentation/technical/pack-format.txt30
-rw-r--r--Documentation/technical/pack-heuristics.txt32
-rw-r--r--Documentation/technical/pack-protocol.txt92
-rw-r--r--Documentation/technical/protocol-capabilities.txt98
-rw-r--r--Documentation/technical/protocol-common.txt4
-rw-r--r--Documentation/technical/racy-git.txt34
-rw-r--r--Documentation/technical/send-pack-pipeline.txt4
-rw-r--r--Documentation/technical/shallow.txt15
-rw-r--r--Documentation/technical/trivial-merge.txt36
-rw-r--r--Documentation/urls-remotes.txt2
-rw-r--r--Documentation/urls.txt25
-rw-r--r--Documentation/user-manual.conf2
-rw-r--r--Documentation/user-manual.txt984
-rwxr-xr-xGIT-VERSION-GEN6
-rw-r--r--INSTALL101
-rw-r--r--Makefile1656
-rw-r--r--README32
l---------RelNotes2
-rw-r--r--abspath.c186
-rw-r--r--advice.c80
-rw-r--r--advice.h16
-rw-r--r--alias.c35
-rw-r--r--alloc.c106
-rw-r--r--archive-tar.c228
-rw-r--r--archive-zip.c259
-rw-r--r--archive.c223
-rw-r--r--archive.h14
-rw-r--r--argv-array.c70
-rw-r--r--argv-array.h23
-rw-r--r--attr.c276
-rw-r--r--attr.h2
-rw-r--r--base85.c2
-rw-r--r--bisect.c143
-rw-r--r--bisect.h9
-rw-r--r--blob.c11
-rw-r--r--block-sha1/sha1.c44
-rw-r--r--branch.c171
-rw-r--r--branch.h8
-rw-r--r--builtin.h43
-rw-r--r--builtin/add.c318
-rw-r--r--builtin/annotate.c12
-rw-r--r--builtin/apply.c1622
-rw-r--r--builtin/archive.c29
-rw-r--r--builtin/bisect--helper.c10
-rw-r--r--builtin/blame.c1700
-rw-r--r--builtin/branch.c638
-rw-r--r--builtin/bundle.c2
-rw-r--r--builtin/cat-file.c397
-rw-r--r--builtin/check-attr.c38
-rw-r--r--builtin/check-ignore.c187
-rw-r--r--builtin/check-mailmap.c66
-rw-r--r--builtin/check-ref-format.c61
-rw-r--r--builtin/checkout-index.c56
-rw-r--r--builtin/checkout.c822
-rw-r--r--builtin/clean.c989
-rw-r--r--builtin/clone.c693
-rw-r--r--builtin/column.c59
-rw-r--r--builtin/commit-tree.c106
-rw-r--r--builtin/commit.c1102
-rw-r--r--builtin/config.c489
-rw-r--r--builtin/count-objects.c157
-rw-r--r--builtin/credential.c31
-rw-r--r--builtin/describe.c179
-rw-r--r--builtin/diff-files.c2
-rw-r--r--builtin/diff-index.c8
-rw-r--r--builtin/diff-tree.c12
-rw-r--r--builtin/diff.c194
-rw-r--r--builtin/fast-export.c565
-rw-r--r--builtin/fetch-pack.c1121
-rw-r--r--builtin/fetch.c1023
-rw-r--r--builtin/fmt-merge-msg.c478
-rw-r--r--builtin/for-each-ref.c319
-rw-r--r--builtin/fsck.c163
-rw-r--r--builtin/gc.c280
-rw-r--r--builtin/get-tar-commit-id.c41
-rw-r--r--builtin/grep.c574
-rw-r--r--builtin/hash-object.c103
-rw-r--r--builtin/help.c181
-rw-r--r--builtin/index-pack.c987
-rw-r--r--builtin/init-db.c92
-rw-r--r--builtin/interpret-trailers.c44
-rw-r--r--builtin/log.c532
-rw-r--r--builtin/ls-files.c252
-rw-r--r--builtin/ls-remote.c13
-rw-r--r--builtin/ls-tree.c57
-rw-r--r--builtin/mailinfo.c122
-rw-r--r--builtin/mailsplit.c39
-rw-r--r--builtin/merge-base.c195
-rw-r--r--builtin/merge-file.c27
-rw-r--r--builtin/merge-index.c8
-rw-r--r--builtin/merge-recursive.c4
-rw-r--r--builtin/merge-tree.c104
-rw-r--r--builtin/merge.c881
-rw-r--r--builtin/mktree.c14
-rw-r--r--builtin/mv.c209
-rw-r--r--builtin/name-rev.c185
-rw-r--r--builtin/notes.c561
-rw-r--r--builtin/pack-objects.c1514
-rw-r--r--builtin/pack-redundant.c6
-rw-r--r--builtin/pack-refs.c8
-rw-r--r--builtin/patch-id.c80
-rw-r--r--builtin/prune-packed.c83
-rw-r--r--builtin/prune.c124
-rw-r--r--builtin/push.c397
-rw-r--r--builtin/read-tree.c64
-rw-r--r--builtin/receive-pack.c1160
-rw-r--r--builtin/reflog.c54
-rw-r--r--builtin/remote-ext.c13
-rw-r--r--builtin/remote.c677
-rw-r--r--builtin/repack.c407
-rw-r--r--builtin/replace.c455
-rw-r--r--builtin/rerere.c14
-rw-r--r--builtin/reset.c352
-rw-r--r--builtin/rev-list.c160
-rw-r--r--builtin/rev-parse.c211
-rw-r--r--builtin/revert.c668
-rw-r--r--builtin/rm.c275
-rw-r--r--builtin/send-pack.c434
-rw-r--r--builtin/shortlog.c92
-rw-r--r--builtin/show-branch.c138
-rw-r--r--builtin/show-ref.c72
-rw-r--r--builtin/stripspace.c51
-rw-r--r--builtin/symbolic-ref.c44
-rw-r--r--builtin/tag.c560
-rw-r--r--builtin/tar-tree.c103
-rw-r--r--builtin/unpack-objects.c24
-rw-r--r--builtin/update-index.c217
-rw-r--r--builtin/update-ref.c382
-rw-r--r--builtin/update-server-info.c5
-rw-r--r--builtin/upload-archive.c88
-rw-r--r--builtin/var.c4
-rw-r--r--builtin/verify-commit.c93
-rw-r--r--builtin/verify-pack.c16
-rw-r--r--builtin/verify-tag.c51
-rw-r--r--builtin/write-tree.c10
-rw-r--r--bulk-checkin.c277
-rw-r--r--bulk-checkin.h14
-rw-r--r--bundle.c396
-rw-r--r--bundle.h4
-rw-r--r--cache-tree.c184
-rw-r--r--cache-tree.h12
-rw-r--r--cache.h969
-rwxr-xr-xcheck-builtins.sh4
-rwxr-xr-xcheck_bindir2
-rw-r--r--color.c188
-rw-r--r--color.h12
-rw-r--r--column.c416
-rw-r--r--column.h45
-rw-r--r--combine-diff.c636
-rw-r--r--command-list.txt15
-rw-r--r--commit-slab.h131
-rw-r--r--commit.c1315
-rw-r--r--commit.h252
-rw-r--r--compat/apple-common-crypto.h86
-rw-r--r--compat/bswap.h131
-rw-r--r--compat/cygwin.c142
-rw-r--r--compat/cygwin.h9
-rw-r--r--compat/fnmatch/fnmatch.c492
-rw-r--r--compat/fnmatch/fnmatch.h84
-rw-r--r--compat/gmtime.c29
-rw-r--r--compat/inet_ntop.c8
-rw-r--r--compat/inet_pton.c6
-rw-r--r--compat/mingw.c844
-rw-r--r--compat/mingw.h233
-rw-r--r--compat/mkdir.c24
-rw-r--r--compat/mmap.c4
-rw-r--r--compat/msvc.h18
-rw-r--r--compat/nedmalloc/Readme.txt4
-rw-r--r--compat/nedmalloc/malloc.c.h18
-rw-r--r--compat/nedmalloc/nedmalloc.c9
-rw-r--r--compat/obstack.c15
-rw-r--r--compat/obstack.h2
-rw-r--r--compat/poll/poll.c (renamed from compat/win32/sys/poll.c)37
-rw-r--r--compat/poll/poll.h (renamed from compat/win32/sys/poll.h)0
-rw-r--r--compat/precompose_utf8.c181
-rw-r--r--compat/precompose_utf8.h45
-rw-r--r--compat/qsort.c2
-rw-r--r--compat/regex/regcomp.c22
-rw-r--r--compat/regex/regex.c2
-rw-r--r--compat/regex/regex_internal.c6
-rw-r--r--compat/regex/regexec.c12
-rw-r--r--compat/setenv.c10
-rw-r--r--compat/snprintf.c9
-rw-r--r--compat/stat.c48
-rw-r--r--compat/strtoimax.c10
-rw-r--r--compat/strtok_r.c61
-rw-r--r--compat/terminal.c147
-rw-r--r--compat/terminal.h6
-rw-r--r--compat/unsetenv.c2
-rw-r--r--compat/vcbuild/include/arpa/inet.h1
-rw-r--r--compat/vcbuild/include/grp.h1
-rw-r--r--compat/vcbuild/include/inttypes.h1
-rw-r--r--compat/vcbuild/include/netdb.h1
-rw-r--r--compat/vcbuild/include/netinet/in.h1
-rw-r--r--compat/vcbuild/include/netinet/tcp.h1
-rw-r--r--compat/vcbuild/include/pwd.h1
-rw-r--r--compat/vcbuild/include/sys/ioctl.h1
-rw-r--r--compat/vcbuild/include/sys/poll.h1
-rw-r--r--compat/vcbuild/include/sys/select.h1
-rw-r--r--compat/vcbuild/include/sys/socket.h1
-rw-r--r--compat/vcbuild/include/sys/wait.h1
-rw-r--r--compat/vcbuild/include/termios.h1
-rw-r--r--compat/vcbuild/include/unistd.h3
-rwxr-xr-x[-rw-r--r--]compat/vcbuild/scripts/clink.pl2
-rwxr-xr-x[-rw-r--r--]compat/vcbuild/scripts/lib.pl0
-rw-r--r--compat/win32.h2
-rw-r--r--compat/win32/alloca.h (renamed from compat/vcbuild/include/alloca.h)0
-rw-r--r--compat/win32/dirent.c116
-rw-r--r--compat/win32/dirent.h8
-rw-r--r--compat/win32/pthread.c2
-rw-r--r--compat/win32/pthread.h5
-rw-r--r--compat/win32/syslog.c30
-rw-r--r--compat/win32mmap.c6
-rw-r--r--compat/winansi.c450
-rw-r--r--config.c1222
-rw-r--r--config.mak.in57
-rw-r--r--config.mak.uname557
-rw-r--r--configure.ac559
-rw-r--r--connect.c593
-rw-r--r--connect.h14
-rw-r--r--connected.c119
-rw-r--r--connected.h27
-rw-r--r--contrib/blameview/README9
-rwxr-xr-xcontrib/blameview/blameview.perl155
-rwxr-xr-x[-rw-r--r--]contrib/buildsystems/engine.pl0
-rwxr-xr-x[-rw-r--r--]contrib/buildsystems/generate0
-rwxr-xr-x[-rw-r--r--]contrib/buildsystems/parse.pl0
-rw-r--r--contrib/ciabot/README12
-rwxr-xr-xcontrib/ciabot/ciabot.py222
-rwxr-xr-xcontrib/ciabot/ciabot.sh192
-rw-r--r--[-rwxr-xr-x]contrib/completion/git-completion.bash1227
-rw-r--r--contrib/completion/git-completion.tcsh126
-rw-r--r--contrib/completion/git-completion.zsh225
-rw-r--r--contrib/completion/git-prompt.sh528
-rw-r--r--contrib/contacts/.gitignore3
-rw-r--r--contrib/contacts/Makefile71
-rwxr-xr-xcontrib/contacts/git-contacts203
-rw-r--r--contrib/contacts/git-contacts.txt94
-rw-r--r--contrib/continuous/cidaemon503
-rw-r--r--contrib/continuous/post-receive-cinotify104
-rwxr-xr-xcontrib/convert-grafts-to-replace-refs.sh28
-rw-r--r--contrib/convert-objects/git-convert-objects.txt2
-rw-r--r--contrib/credential/gnome-keyring/.gitignore1
-rw-r--r--contrib/credential/gnome-keyring/Makefile24
-rw-r--r--contrib/credential/gnome-keyring/git-credential-gnome-keyring.c471
-rw-r--r--contrib/credential/netrc/Makefile5
-rwxr-xr-xcontrib/credential/netrc/git-credential-netrc423
-rw-r--r--contrib/credential/netrc/test.netrc13
-rwxr-xr-xcontrib/credential/netrc/test.pl106
-rw-r--r--contrib/credential/osxkeychain/.gitignore1
-rw-r--r--contrib/credential/osxkeychain/Makefile17
-rw-r--r--contrib/credential/osxkeychain/git-credential-osxkeychain.c183
-rw-r--r--contrib/credential/wincred/Makefile22
-rw-r--r--contrib/credential/wincred/git-credential-wincred.c320
-rw-r--r--contrib/diff-highlight/README193
-rwxr-xr-xcontrib/diff-highlight/diff-highlight213
-rw-r--r--contrib/emacs/git-blame.el75
-rw-r--r--contrib/emacs/git.el2
-rw-r--r--contrib/examples/builtin-fetch--tool.c9
-rwxr-xr-xcontrib/examples/git-checkout.sh10
-rwxr-xr-xcontrib/examples/git-clone.sh22
-rwxr-xr-xcontrib/examples/git-commit.sh16
-rwxr-xr-xcontrib/examples/git-fetch.sh6
-rwxr-xr-xcontrib/examples/git-log.sh15
-rwxr-xr-xcontrib/examples/git-ls-remote.sh4
-rwxr-xr-xcontrib/examples/git-merge.sh10
-rwxr-xr-xcontrib/examples/git-remote.perl10
-rwxr-xr-xcontrib/examples/git-repack.sh (renamed from git-repack.sh)16
-rwxr-xr-xcontrib/examples/git-reset.sh4
-rwxr-xr-xcontrib/examples/git-resolve.sh4
-rwxr-xr-xcontrib/examples/git-revert.sh2
-rwxr-xr-xcontrib/examples/git-svnimport.perl2
-rw-r--r--contrib/examples/git-svnimport.txt2
-rwxr-xr-xcontrib/examples/git-tag.sh2
-rwxr-xr-xcontrib/examples/git-whatchanged.sh28
-rwxr-xr-xcontrib/fast-import/git-import.perl2
-rwxr-xr-xcontrib/fast-import/git-import.sh2
-rwxr-xr-xcontrib/fast-import/git-p42243
-rw-r--r--contrib/fast-import/git-p4.README12
-rw-r--r--contrib/fast-import/git-p4.bat1
-rw-r--r--contrib/fast-import/git-p4.txt289
-rwxr-xr-xcontrib/fast-import/import-directories.perl4
-rwxr-xr-xcontrib/fast-import/import-zips.py99
-rw-r--r--contrib/git-jump/README92
-rwxr-xr-xcontrib/git-jump/git-jump69
-rwxr-xr-xcontrib/git-resurrect.sh1
-rwxr-xr-xcontrib/gitview/gitview2
-rw-r--r--contrib/gitview/gitview.txt2
-rwxr-xr-xcontrib/hg-to-git/hg-to-git.py7
-rw-r--r--contrib/hooks/multimail/CHANGES33
-rw-r--r--contrib/hooks/multimail/README500
-rw-r--r--contrib/hooks/multimail/README.Git15
-rw-r--r--contrib/hooks/multimail/README.migrate-from-post-receive-email145
-rwxr-xr-xcontrib/hooks/multimail/git_multimail.py2539
-rwxr-xr-xcontrib/hooks/multimail/migrate-mailhook-config269
-rwxr-xr-xcontrib/hooks/multimail/post-receive90
-rwxr-xr-xcontrib/hooks/post-receive-email43
-rwxr-xr-x[-rw-r--r--]contrib/hooks/pre-auto-gc-battery1
-rwxr-xr-x[-rw-r--r--]contrib/hooks/setgitperms.perl2
-rwxr-xr-x[-rw-r--r--]contrib/hooks/update-paranoid0
-rw-r--r--contrib/mw-to-git/.gitignore2
-rw-r--r--contrib/mw-to-git/.perlcriticrc28
-rw-r--r--contrib/mw-to-git/Git/Mediawiki.pm100
-rw-r--r--contrib/mw-to-git/Makefile57
-rwxr-xr-xcontrib/mw-to-git/bin-wrapper/git14
-rwxr-xr-xcontrib/mw-to-git/git-mw.perl368
-rwxr-xr-xcontrib/mw-to-git/git-remote-mediawiki.perl1338
-rw-r--r--contrib/mw-to-git/git-remote-mediawiki.txt7
-rw-r--r--contrib/mw-to-git/t/.gitignore4
-rw-r--r--contrib/mw-to-git/t/Makefile31
-rw-r--r--contrib/mw-to-git/t/README124
-rwxr-xr-xcontrib/mw-to-git/t/install-wiki.sh55
-rw-r--r--contrib/mw-to-git/t/install-wiki/.gitignore1
-rw-r--r--contrib/mw-to-git/t/install-wiki/LocalSettings.php129
-rw-r--r--contrib/mw-to-git/t/install-wiki/db_install.php120
-rw-r--r--contrib/mw-to-git/t/push-pull-tests.sh144
-rwxr-xr-xcontrib/mw-to-git/t/t9360-mw-to-git-clone.sh257
-rwxr-xr-xcontrib/mw-to-git/t/t9361-mw-to-git-push-pull.sh24
-rwxr-xr-xcontrib/mw-to-git/t/t9362-mw-to-git-utf8.sh347
-rwxr-xr-xcontrib/mw-to-git/t/t9363-mw-to-git-export-import.sh217
-rwxr-xr-xcontrib/mw-to-git/t/t9364-pull-by-rev.sh17
-rwxr-xr-xcontrib/mw-to-git/t/t9365-continuing-queries.sh23
-rwxr-xr-xcontrib/mw-to-git/t/test-gitmw-lib.sh432
-rwxr-xr-xcontrib/mw-to-git/t/test-gitmw.pl225
-rw-r--r--contrib/mw-to-git/t/test.config37
-rw-r--r--contrib/p4import/README1
-rw-r--r--contrib/p4import/git-p4import.py360
-rw-r--r--contrib/p4import/git-p4import.txt167
-rw-r--r--contrib/patches/docbook-xsl-manpages-charmap.patch21
-rw-r--r--contrib/persistent-https/LICENSE202
-rw-r--r--contrib/persistent-https/Makefile38
-rw-r--r--contrib/persistent-https/README62
-rw-r--r--contrib/persistent-https/client.go189
-rw-r--r--contrib/persistent-https/main.go82
-rw-r--r--contrib/persistent-https/proxy.go190
-rw-r--r--contrib/persistent-https/socket.go97
-rw-r--r--contrib/remote-helpers/README15
-rwxr-xr-xcontrib/remote-helpers/git-remote-bzr13
-rwxr-xr-xcontrib/remote-helpers/git-remote-hg13
-rwxr-xr-xcontrib/rerere-train.sh2
-rwxr-xr-xcontrib/stats/mailmap.pl96
-rw-r--r--contrib/subtree/.gitignore7
-rw-r--r--contrib/subtree/COPYING339
-rw-r--r--contrib/subtree/INSTALL28
-rw-r--r--contrib/subtree/Makefile81
-rw-r--r--contrib/subtree/README8
-rwxr-xr-xcontrib/subtree/git-subtree.sh737
-rw-r--r--contrib/subtree/git-subtree.txt351
-rw-r--r--contrib/subtree/t/Makefile69
-rwxr-xr-xcontrib/subtree/t/t7900-subtree.sh469
-rw-r--r--contrib/subtree/todo50
-rw-r--r--contrib/svn-fe/Makefile60
-rw-r--r--contrib/svn-fe/svn-fe.c3
-rw-r--r--contrib/svn-fe/svn-fe.txt14
-rwxr-xr-xcontrib/svn-fe/svnrdump_sim.py68
-rwxr-xr-xcontrib/thunderbird-patch-inline/appp.sh14
-rw-r--r--contrib/vim/README32
-rwxr-xr-xcontrib/workdir/git-new-workdir53
-rw-r--r--convert.c265
-rw-r--r--convert.h11
-rw-r--r--copy.c26
-rw-r--r--credential-cache--daemon.c284
-rw-r--r--credential-cache.c122
-rw-r--r--credential-store.c158
-rw-r--r--credential.c370
-rw-r--r--credential.h35
-rw-r--r--csum-file.c37
-rw-r--r--csum-file.h22
-rw-r--r--ctype.c53
-rw-r--r--daemon.c468
-rw-r--r--date.c266
-rw-r--r--decorate.c7
-rw-r--r--delta.h2
-rw-r--r--diff-delta.c2
-rw-r--r--diff-lib.c93
-rw-r--r--diff-no-index.c210
-rw-r--r--diff.c1369
-rw-r--r--diff.h65
-rw-r--r--diffcore-break.c10
-rw-r--r--diffcore-order.c85
-rw-r--r--diffcore-pickaxe.c321
-rw-r--r--diffcore-rename.c253
-rw-r--r--diffcore.h29
-rw-r--r--dir.c1424
-rw-r--r--dir.h174
-rw-r--r--editor.c21
-rw-r--r--entry.c143
-rw-r--r--environment.c95
-rw-r--r--ewah/bitmap.c221
-rw-r--r--ewah/ewah_bitmap.c714
-rw-r--r--ewah/ewah_io.c204
-rw-r--r--ewah/ewah_rlw.c115
-rw-r--r--ewah/ewok.h233
-rw-r--r--ewah/ewok_rlw.h114
-rw-r--r--exec_cmd.c15
-rw-r--r--exec_cmd.h3
-rw-r--r--fast-import.c717
-rw-r--r--fetch-pack.c1037
-rw-r--r--fetch-pack.h47
-rwxr-xr-xfixup-builtins16
-rw-r--r--fmt-merge-msg.h7
-rw-r--r--fsck.c222
-rw-r--r--fsck.h4
-rwxr-xr-xgenerate-cmdlist.sh2
-rw-r--r--gettext.c139
-rw-r--r--gettext.h32
-rwxr-xr-xgit-add--interactive.perl71
-rwxr-xr-xgit-am.sh275
-rwxr-xr-xgit-archimport.perl2
-rwxr-xr-xgit-bisect.sh48
-rw-r--r--git-compat-util.h379
-rwxr-xr-xgit-cvsexportcommit.perl9
-rwxr-xr-xgit-cvsimport.perl73
-rwxr-xr-xgit-cvsserver.perl2407
-rwxr-xr-xgit-difftool--helper.sh40
-rwxr-xr-xgit-difftool.perl532
-rwxr-xr-xgit-filter-branch.sh72
-rw-r--r--git-gui/.gitattributes1
-rwxr-xr-xgit-gui/GIT-VERSION-GEN2
-rw-r--r--git-gui/Makefile8
-rwxr-xr-xgit-gui/git-gui.sh175
-rw-r--r--git-gui/lib/blame.tcl60
-rw-r--r--git-gui/lib/browser.tcl8
-rw-r--r--git-gui/lib/choose_repository.tcl16
-rw-r--r--git-gui/lib/choose_rev.tcl5
-rw-r--r--git-gui/lib/class.tcl1
-rw-r--r--git-gui/lib/commit.tcl18
-rw-r--r--git-gui/lib/diff.tcl19
-rw-r--r--git-gui/lib/index.tcl23
-rw-r--r--git-gui/lib/line.tcl81
-rw-r--r--git-gui/lib/mergetool.tcl4
-rw-r--r--git-gui/lib/option.tcl22
-rw-r--r--git-gui/lib/remote.tcl6
-rw-r--r--git-gui/lib/search.tcl127
-rw-r--r--git-gui/lib/spellcheck.tcl4
-rw-r--r--git-gui/lib/sshkey.tcl2
-rw-r--r--git-gui/lib/status_bar.tcl1
-rw-r--r--git-gui/lib/themed.tcl99
-rw-r--r--git-gui/lib/tools.tcl10
-rw-r--r--git-gui/lib/transport.tcl1
-rw-r--r--git-gui/macosx/AppMain.tcl4
-rw-r--r--git-gui/macosx/Info.plist2
-rw-r--r--git-gui/po/README39
-rw-r--r--git-gui/po/bg.po2694
-rw-r--r--git-gui/po/de.po38
-rw-r--r--git-gui/po/fr.po4
-rw-r--r--git-gui/po/git-gui.pot2
-rw-r--r--git-gui/po/glossary/bg.po287
-rw-r--r--git-gui/po/glossary/git-gui-glossary.txt29
-rw-r--r--git-gui/po/hu.po2
-rw-r--r--git-gui/po/it.po2
-rw-r--r--git-gui/po/ja.po2
-rw-r--r--git-gui/po/nb.po2
-rwxr-xr-x[-rw-r--r--]git-gui/po/po2msg.sh0
-rw-r--r--git-gui/po/pt_br.po2
-rw-r--r--git-gui/po/ru.po2
-rw-r--r--git-gui/po/sv.po4
-rwxr-xr-x[-rw-r--r--]git-gui/windows/git-gui.sh0
-rwxr-xr-xgit-instaweb.sh15
-rwxr-xr-xgit-lost-found.sh33
-rwxr-xr-xgit-merge-one-file.sh63
-rw-r--r--git-mergetool--lib.sh266
-rwxr-xr-xgit-mergetool.sh666
-rwxr-xr-xgit-p4.py3297
-rw-r--r--git-parse-remote.sh47
-rwxr-xr-xgit-pull.sh114
-rwxr-xr-xgit-quiltimport.sh3
-rw-r--r--git-rebase--am.sh97
-rw-r--r--git-rebase--interactive.sh461
-rw-r--r--git-rebase--merge.sh48
-rwxr-xr-xgit-rebase.sh299
-rwxr-xr-xgit-relink.perl4
-rw-r--r--git-remote-testgit.py265
-rwxr-xr-xgit-remote-testgit.sh147
-rwxr-xr-xgit-request-pull.sh137
-rwxr-xr-xgit-send-email.perl495
-rw-r--r--git-sh-i18n.sh95
-rw-r--r--git-sh-setup.sh204
-rwxr-xr-xgit-stash.sh106
-rwxr-xr-xgit-submodule.sh729
-rwxr-xr-xgit-svn.perl5300
-rwxr-xr-xgit-web--browse.sh33
-rw-r--r--git.c463
-rw-r--r--git.rc22
-rw-r--r--git.spec.in9
-rw-r--r--git_remote_helpers/.gitignore2
-rw-r--r--git_remote_helpers/Makefile39
-rw-r--r--git_remote_helpers/__init__.py16
-rw-r--r--git_remote_helpers/git/__init__.py0
-rw-r--r--git_remote_helpers/git/exporter.py58
-rw-r--r--git_remote_helpers/git/git.py678
-rw-r--r--git_remote_helpers/git/importer.py66
-rw-r--r--git_remote_helpers/git/non_local.py61
-rw-r--r--git_remote_helpers/git/repo.py76
-rw-r--r--git_remote_helpers/setup.cfg3
-rw-r--r--git_remote_helpers/setup.py17
-rw-r--r--git_remote_helpers/util.py275
-rw-r--r--gitk-git/.gitignore2
-rw-r--r--gitk-git/Makefile16
-rwxr-xr-xgitk-git/gitk1683
-rw-r--r--gitk-git/po/bg.po1340
-rwxr-xr-x[-rw-r--r--]gitk-git/po/po2msg.sh0
-rw-r--r--gitk-git/po/sv.po720
-rw-r--r--gitk-git/po/vi.po1351
-rw-r--r--gitweb/INSTALL111
-rw-r--r--gitweb/Makefile6
-rw-r--r--gitweb/README281
-rwxr-xr-xgitweb/gitweb.perl1283
-rw-r--r--gitweb/static/gitweb.css56
-rw-r--r--gitweb/static/js/javascript-detection.js8
-rw-r--r--gitweb/static/js/lib/cookies.js2
-rw-r--r--gpg-interface.c223
-rw-r--r--gpg-interface.h31
-rw-r--r--graph.c53
-rw-r--r--graph.h6
-rw-r--r--grep.c810
-rw-r--r--grep.h91
-rw-r--r--hash.c110
-rw-r--r--hash.h43
-rw-r--r--hashmap.c266
-rw-r--r--hashmap.h98
-rw-r--r--help.c225
-rw-r--r--help.h9
-rw-r--r--hex.c12
-rw-r--r--http-backend.c116
-rw-r--r--http-fetch.c4
-rw-r--r--http-push.c157
-rw-r--r--http-walker.c25
-rw-r--r--http.c636
-rw-r--r--http.h72
-rw-r--r--ident.c410
-rw-r--r--imap-send.c949
-rw-r--r--khash.h327
-rw-r--r--kwset.c24
-rw-r--r--kwset.h2
-rw-r--r--line-log.c1255
-rw-r--r--line-log.h65
-rw-r--r--line-range.c290
-rw-r--r--line-range.h39
-rw-r--r--list-objects.c81
-rw-r--r--list-objects.h7
-rw-r--r--ll-merge.c65
-rw-r--r--lockfile.c368
-rw-r--r--lockfile.h87
-rw-r--r--log-tree.c469
-rw-r--r--log-tree.h13
-rw-r--r--mailmap.c320
-rw-r--r--mailmap.h4
-rw-r--r--match-trees.c132
-rw-r--r--merge-blobs.c (renamed from merge-file.c)4
-rw-r--r--merge-blobs.h8
-rw-r--r--merge-file.h7
-rw-r--r--merge-recursive.c382
-rw-r--r--merge-recursive.h5
-rw-r--r--merge.c96
-rw-r--r--mergesort.c73
-rw-r--r--mergesort.h17
-rw-r--r--mergetools/bc25
-rw-r--r--mergetools/bc321
-rw-r--r--mergetools/codecompare25
-rw-r--r--mergetools/defaults46
-rw-r--r--mergetools/deltawalker21
-rw-r--r--mergetools/diffmerge14
-rw-r--r--mergetools/emerge1
-rw-r--r--mergetools/gvimdiff1
-rw-r--r--mergetools/gvimdiff21
-rw-r--r--mergetools/gvimdiff31
-rw-r--r--mergetools/kdiff33
-rw-r--r--mergetools/meld9
-rw-r--r--mergetools/p4merge32
-rw-r--r--mergetools/tortoisemerge25
-rw-r--r--mergetools/vimdiff (renamed from mergetools/vim)26
-rw-r--r--mergetools/vimdiff21
-rw-r--r--mergetools/vimdiff31
-rw-r--r--name-hash.c230
-rw-r--r--notes-cache.c5
-rw-r--r--notes-merge.c217
-rw-r--r--notes-merge.h14
-rw-r--r--notes-utils.c158
-rw-r--r--notes-utils.h37
-rw-r--r--notes.c115
-rw-r--r--notes.h22
-rw-r--r--object.c254
-rw-r--r--object.h76
-rw-r--r--pack-bitmap-write.c549
-rw-r--r--pack-bitmap.c1081
-rw-r--r--pack-bitmap.h58
-rw-r--r--pack-check.c28
-rw-r--r--pack-objects.c109
-rw-r--r--pack-objects.h68
-rw-r--r--pack-refs.c149
-rw-r--r--pack-refs.h18
-rw-r--r--pack-revindex.c151
-rw-r--r--pack-revindex.h9
-rw-r--r--pack-write.c85
-rw-r--r--pack.h17
-rw-r--r--pager.c99
-rw-r--r--parse-options-cb.c11
-rw-r--r--parse-options.c180
-rw-r--r--parse-options.h66
-rw-r--r--patch-ids.c8
-rw-r--r--path.c442
-rw-r--r--pathspec.c495
-rw-r--r--pathspec.h102
-rw-r--r--perl/.gitignore3
-rw-r--r--perl/Git.pm420
-rw-r--r--perl/Git/I18N.pm98
-rw-r--r--perl/Git/IndexInfo.pm33
-rw-r--r--perl/Git/SVN.pm2454
-rw-r--r--perl/Git/SVN/Editor.pm606
-rw-r--r--perl/Git/SVN/Fetcher.pm628
-rw-r--r--perl/Git/SVN/GlobSpec.pm61
-rw-r--r--perl/Git/SVN/Log.pm400
-rw-r--r--perl/Git/SVN/Memoize/YAML.pm93
-rw-r--r--perl/Git/SVN/Migration.pm258
-rw-r--r--perl/Git/SVN/Prompt.pm184
-rw-r--r--perl/Git/SVN/Ra.pm701
-rw-r--r--perl/Git/SVN/Utils.pm232
-rw-r--r--perl/Makefile54
-rw-r--r--perl/Makefile.PL30
-rw-r--r--perl/private-Error.pm6
-rw-r--r--pkt-line.c176
-rw-r--r--pkt-line.h71
-rw-r--r--po/.gitignore2
-rw-r--r--po/README292
-rw-r--r--po/TEAMS57
-rw-r--r--po/bg.po11680
-rw-r--r--po/ca.po11207
-rw-r--r--po/de.po11784
-rw-r--r--po/fr.po11575
-rw-r--r--po/git.pot10561
-rw-r--r--po/is.po93
-rw-r--r--po/it.po5367
-rw-r--r--po/pt_PT.po4980
-rw-r--r--po/sv.po11466
-rw-r--r--po/vi.po11554
-rw-r--r--po/zh_CN.po11365
-rw-r--r--preload-index.c26
-rw-r--r--pretty.c996
-rw-r--r--prio-queue.c90
-rw-r--r--prio-queue.h54
-rw-r--r--progress.c109
-rw-r--r--prompt.c80
-rw-r--r--prompt.h10
-rw-r--r--quote.c170
-rw-r--r--quote.h30
-rw-r--r--reachable.c282
-rw-r--r--reachable.h6
-rw-r--r--read-cache.c1099
-rw-r--r--reflog-walk.c77
-rw-r--r--reflog-walk.h7
-rw-r--r--refs.c3995
-rw-r--r--refs.h313
-rw-r--r--remote-curl.c578
-rw-r--r--remote-testsvn.c341
-rw-r--r--remote.c1274
-rw-r--r--remote.h111
-rw-r--r--replace_object.c37
-rw-r--r--rerere.c123
-rw-r--r--rerere.h7
-rw-r--r--resolve-undo.c36
-rw-r--r--resolve-undo.h3
-rw-r--r--revision.c1544
-rw-r--r--revision.h149
-rw-r--r--run-command.c371
-rw-r--r--run-command.h15
-rw-r--r--send-pack.c477
-rw-r--r--send-pack.h4
-rw-r--r--sequencer.c1189
-rw-r--r--sequencer.h58
-rw-r--r--server-info.c123
-rw-r--r--setup.c565
-rw-r--r--sh-i18n--envsubst.c21
-rw-r--r--sha1-array.c2
-rw-r--r--sha1-array.h1
-rw-r--r--sha1-lookup.c49
-rw-r--r--sha1_file.c1751
-rw-r--r--sha1_name.c1016
-rw-r--r--shallow.c618
-rw-r--r--shell.c35
-rw-r--r--show-index.c4
-rw-r--r--sideband.c13
-rw-r--r--sideband.h3
-rw-r--r--sigchain.c2
-rw-r--r--split-index.c328
-rw-r--r--split-index.h35
-rw-r--r--strbuf.c356
-rw-r--r--strbuf.h120
-rw-r--r--streaming.c77
-rw-r--r--streaming.h4
-rw-r--r--string-list.c150
-rw-r--r--string-list.h93
-rw-r--r--submodule.c507
-rw-r--r--submodule.h21
-rw-r--r--symlinks.c94
-rw-r--r--t/.gitattributes1
-rwxr-xr-xt/Git-SVN/00compile.t14
-rwxr-xr-xt/Git-SVN/Utils/add_path_to_url.t27
-rwxr-xr-xt/Git-SVN/Utils/can_compress.t11
-rwxr-xr-xt/Git-SVN/Utils/canonicalize_url.t26
-rwxr-xr-xt/Git-SVN/Utils/collapse_dotdot.t23
-rwxr-xr-xt/Git-SVN/Utils/fatal.t34
-rwxr-xr-xt/Git-SVN/Utils/join_paths.t32
-rw-r--r--t/Makefile80
-rw-r--r--t/README314
-rw-r--r--t/annotate-tests.sh642
-rwxr-xr-xt/check-non-portable-shell.pl28
-rw-r--r--t/diff-lib.sh2
-rw-r--r--t/diff-lib/COPYING361
-rw-r--r--t/diff-lib/README46
-rw-r--r--t/gitweb-lib.sh6
-rwxr-xr-xt/harness21
-rw-r--r--t/lib-bash.sh17
-rwxr-xr-xt/lib-credential.sh287
-rw-r--r--t/lib-cvs.sh4
-rw-r--r--t/lib-diff-alternative.sh3
-rw-r--r--t/lib-gettext.sh58
-rw-r--r--t/lib-git-daemon.sh87
-rw-r--r--t/lib-git-p4.sh183
-rw-r--r--t/lib-git-svn.sh6
-rwxr-xr-xt/lib-gpg.sh58
-rw-r--r--t/lib-gpg/keyring.gpg142
-rw-r--r--t/lib-gpg/ownertrust4
-rw-r--r--t/lib-httpd.sh150
-rw-r--r--t/lib-httpd/apache.conf104
-rw-r--r--t/lib-httpd/broken-smart-http.sh10
-rwxr-xr-xt/lib-httpd/error.sh31
-rw-r--r--t/lib-httpd/passwd2
-rw-r--r--t/lib-pack.sh98
-rw-r--r--t/lib-pager.sh2
-rw-r--r--t/lib-prereq-FILEMODE.sh11
-rw-r--r--t/lib-read-tree.sh54
-rw-r--r--t/lib-rebase.sh125
-rwxr-xr-xt/lib-submodule-update.sh680
-rw-r--r--t/lib-t6000.sh106
-rw-r--r--t/lib-terminal.sh39
-rw-r--r--t/perf/.gitignore3
-rw-r--r--t/perf/Makefile15
-rw-r--r--t/perf/README146
-rwxr-xr-xt/perf/aggregate.perl166
-rwxr-xr-xt/perf/min_time.perl21
-rwxr-xr-xt/perf/p0000-perf-lib-sanity.sh55
-rwxr-xr-xt/perf/p0001-rev-list.sh29
-rwxr-xr-xt/perf/p0002-read-cache.sh14
-rwxr-xr-xt/perf/p4000-diff-algorithms.sh29
-rwxr-xr-xt/perf/p4001-diff-no-index.sh22
-rwxr-xr-xt/perf/p4211-line-log.sh34
-rwxr-xr-xt/perf/p5302-pack-index.sh40
-rwxr-xr-xt/perf/p5310-pack-bitmaps.sh60
-rwxr-xr-xt/perf/p7810-grep.sh23
-rw-r--r--t/perf/perf-lib.sh206
-rwxr-xr-xt/perf/run82
-rwxr-xr-xt/t0000-basic.sh1218
-rwxr-xr-xt/t0001-init.sh238
-rwxr-xr-xt/t0002-gitfile.sh3
-rwxr-xr-xt/t0003-attributes.sh241
-rwxr-xr-xt/t0005-signals.sh29
-rwxr-xr-xt/t0006-date.sh11
-rwxr-xr-xt/t0007-git-var.sh49
-rwxr-xr-xt/t0008-ignores.sh834
-rwxr-xr-xt/t0009-prio-queue.sh50
-rwxr-xr-xt/t0010-racy-git.sh4
-rwxr-xr-xt/t0011-hashmap.sh253
-rwxr-xr-xt/t0020-crlf.sh50
-rwxr-xr-xt/t0021-conversion.sh63
-rwxr-xr-xt/t0023-crlf-am.sh2
-rwxr-xr-xt/t0024-crlf-archive.sh10
-rwxr-xr-xt/t0025-crlf-auto.sh122
-rwxr-xr-xt/t0026-eol-config.sh48
-rwxr-xr-xt/t0027-auto-crlf.sh335
-rwxr-xr-xt/t0030-stripspace.sh61
-rwxr-xr-xt/t0040-parse-options.sh145
-rwxr-xr-xt/t0050-filesystem.sh119
-rwxr-xr-xt/t0056-git-C.sh94
-rwxr-xr-xt/t0060-path-utils.sh197
-rwxr-xr-xt/t0061-run-command.sh13
-rwxr-xr-xt/t0062-revision-walking.sh33
-rwxr-xr-xt/t0063-string-list.sh91
-rwxr-xr-xt/t0064-sha1-array.sh94
-rwxr-xr-xt/t0070-fundamental.sh11
-rwxr-xr-xt/t0080-vcs-svn.sh117
-rwxr-xr-xt/t0081-line-buffer.sh2
-rwxr-xr-xt/t0090-cache-tree.sh221
-rwxr-xr-xt/t0100-previous.sh15
-rwxr-xr-xt/t0110-urlmatch-normalization.sh180
-rw-r--r--t/t0110/README9
-rw-r--r--t/t0110/url-11
-rw-r--r--t/t0110/url-101
-rw-r--r--t/t0110/url-111
-rw-r--r--t/t0110/url-21
-rw-r--r--t/t0110/url-31
-rw-r--r--t/t0110/url-41
-rw-r--r--t/t0110/url-51
-rw-r--r--t/t0110/url-61
-rw-r--r--t/t0110/url-71
-rw-r--r--t/t0110/url-81
-rw-r--r--t/t0110/url-91
-rwxr-xr-xt/t0200-gettext-basic.sh108
-rw-r--r--t/t0200/test.c23
-rw-r--r--t/t0200/test.perl14
-rw-r--r--t/t0200/test.sh14
-rwxr-xr-xt/t0201-gettext-fallbacks.sh28
-rwxr-xr-xt/t0202-gettext-perl.sh27
-rwxr-xr-xt/t0202/test.pl110
-rwxr-xr-xt/t0203-gettext-setlocale-sanity.sh26
-rwxr-xr-xt/t0204-gettext-reencode-sanity.sh87
-rwxr-xr-xt/t0205-gettext-poison.sh36
-rwxr-xr-xt/t0300-credentials.sh301
-rwxr-xr-xt/t0301-credential-cache.sh23
-rwxr-xr-xt/t0302-credential-store.sh9
-rwxr-xr-xt/t0303-credential-external.sh60
-rwxr-xr-xt/t1000-read-tree-m-3way.sh4
-rwxr-xr-xt/t1001-read-tree-m-2way.sh20
-rwxr-xr-xt/t1002-read-tree-m-u-2way.sh10
-rwxr-xr-xt/t1003-read-tree-prefix.sh2
-rwxr-xr-xt/t1004-read-tree-m-u-wf.sh15
-rwxr-xr-xt/t1005-read-tree-reset.sh141
-rwxr-xr-xt/t1006-cat-file.sh153
-rwxr-xr-xt/t1007-hash-object.sh2
-rwxr-xr-xt/t1011-read-tree-sparse-checkout.sh40
-rwxr-xr-xt/t1013-loose-object-format.sh66
-rwxr-xr-xt/t1013-read-tree-submodule.sh12
-rw-r--r--t/t1013/objects/14/9cedb5c46929d18e0f118e9fa31927487af3b6bin117 -> 0 bytes
-rw-r--r--t/t1013/objects/16/56f9233d999f61ef23ef390b9c71d75399f435bin17 -> 0 bytes
-rw-r--r--t/t1013/objects/1e/72a6b2c4a577ab0338860fa9fe87f761fc9bbdbin18 -> 0 bytes
-rw-r--r--t/t1013/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99bin19 -> 0 bytes
-rw-r--r--t/t1013/objects/2e/65efe2a145dda7ee51d1741299f848e5bf752ebin10 -> 0 bytes
-rw-r--r--t/t1013/objects/6b/aee0540ea990d9761a3eb9ab183003a71c3696bin181 -> 0 bytes
-rw-r--r--t/t1013/objects/70/e6a83d8dcb26fc8bc0cf702e2ddeb6adca18fdbin26 -> 0 bytes
-rw-r--r--t/t1013/objects/76/e7fa9941f4d5f97f64fea65a2cba436bc79cbb2
-rw-r--r--t/t1013/objects/78/75c6237d3fcdd0ac2f0decc7d3fa6a50b66c09bin139 -> 0 bytes
-rw-r--r--t/t1013/objects/7a/37b887a73791d12d26c0d3e39568a8fb0fa6e8bin54 -> 0 bytes
-rw-r--r--t/t1013/objects/85/df50785d62d3b05ab03d9cbf7e4a0b49449730bin13 -> 0 bytes
-rw-r--r--t/t1013/objects/8d/4e360d6c70fbd72411991c02a09c442cf7a9fabin156 -> 0 bytes
-rw-r--r--t/t1013/objects/95/b1625de3ba8b2214d1e0d0591138aea733f64fbin252 -> 0 bytes
-rw-r--r--t/t1013/objects/9a/e9e86b7bd6cb1472d9373702d8249973da0832bin11 -> 0 bytes
-rw-r--r--t/t1013/objects/bd/15045f6ce8ff75747562173640456a394412c8bin34 -> 0 bytes
-rw-r--r--t/t1013/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391bin9 -> 0 bytes
-rw-r--r--t/t1013/objects/f8/16d5255855ac160652ee5253b06cd8ee14165a1
-rwxr-xr-xt/t1014-read-tree-confusing.sh62
-rwxr-xr-xt/t1020-subdirectory.sh38
-rwxr-xr-xt/t1050-large.sh179
-rwxr-xr-xt/t1051-large-conversion.sh86
-rwxr-xr-xt/t1060-object-corruption.sh104
-rwxr-xr-xt/t1100-commit-tree-options.sh18
-rwxr-xr-xt/t1200-tutorial.sh6
-rwxr-xr-xt/t1300-repo-config.sh721
-rwxr-xr-xt/t1301-shared-repo.sh11
-rwxr-xr-xt/t1302-repo-version.sh2
-rwxr-xr-xt/t1303-wacky-config.sh84
-rwxr-xr-xt/t1304-default-acl.sh18
-rwxr-xr-xt/t1305-config-include.sh172
-rwxr-xr-xt/t1306-xdg-files.sh197
-rwxr-xr-xt/t1307-config-blob.sh79
-rwxr-xr-xt/t1308-config-set.sh221
-rwxr-xr-xt/t1400-update-ref.sh785
-rwxr-xr-xt/t1401-symbolic-ref.sh30
-rwxr-xr-xt/t1402-check-ref-format.sh147
-rwxr-xr-xt/t1403-show-ref.sh167
-rwxr-xr-xt/t1410-reflog.sh98
-rwxr-xr-xt/t1411-reflog-show.sh83
-rwxr-xr-xt/t1412-reflog-loop.sh2
-rwxr-xr-xt/t1413-reflog-detach.sh70
-rwxr-xr-xt/t1430-bad-ref-name.sh207
-rwxr-xr-xt/t1450-fsck.sh253
-rwxr-xr-xt/t1501-worktree.sh8
-rwxr-xr-xt/t1502-rev-parse-parseopt.sh128
-rwxr-xr-xt/t1503-rev-parse-verify.sh37
-rwxr-xr-xt/t1504-ceiling-dirs.sh17
-rwxr-xr-xt/t1505-rev-parse-last.sh18
-rwxr-xr-xt/t1506-rev-parse-diagnosis.sh49
-rwxr-xr-xt/t1507-rev-parse-upstream.sh119
-rwxr-xr-xt/t1508-at-combinations.sh87
-rwxr-xr-xt/t1509-root-worktree.sh17
-rwxr-xr-xt/t1509/prepare-chroot.sh2
-rwxr-xr-xt/t1510-repo-setup.sh27
-rwxr-xr-xt/t1511-rev-parse-caret.sh9
-rwxr-xr-xt/t1512-rev-parse-disambiguation.sh294
-rwxr-xr-xt/t1513-rev-parse-prefix.sh96
-rwxr-xr-xt/t1600-index.sh76
-rwxr-xr-xt/t1700-split-index.sh203
-rwxr-xr-xt/t2001-checkout-cache-clash.sh7
-rwxr-xr-xt/t2003-checkout-cache-mkdir.sh169
-rwxr-xr-xt/t2004-checkout-cache-temp.sh401
-rwxr-xr-xt/t2006-checkout-index-basic.sh4
-rwxr-xr-xt/t2007-checkout-symlink.sh12
-rwxr-xr-xt/t2008-checkout-subdir.sh14
-rwxr-xr-xt/t2010-checkout-ambiguous.sh6
-rwxr-xr-xt/t2012-checkout-last.sh34
-rwxr-xr-xt/t2013-checkout-submodule.sh7
-rwxr-xr-xt/t2015-checkout-unborn.sh22
-rwxr-xr-xt/t2017-checkout-orphan.sh6
-rwxr-xr-xt/t2018-checkout-branch.sh9
-rwxr-xr-xt/t2020-checkout-detach.sh27
-rwxr-xr-xt/t2021-checkout-overwrite.sh12
-rwxr-xr-xt/t2022-checkout-paths.sh81
-rwxr-xr-xt/t2023-checkout-m.sh49
-rwxr-xr-xt/t2024-checkout-dwim.sh206
-rwxr-xr-xt/t2030-unresolve-info.sh27
-rwxr-xr-xt/t2104-update-index-skip-worktree.sh4
-rwxr-xr-xt/t2107-update-index-basic.sh55
-rwxr-xr-xt/t2200-add-update.sh22
-rwxr-xr-xt/t2202-add-addremove.sh10
-rwxr-xr-xt/t2203-add-intent.sh28
-rwxr-xr-xt/t3000-ls-files-others.sh19
-rwxr-xr-xt/t3001-ls-files-others-exclude.sh95
-rwxr-xr-xt/t3004-ls-files-basic.sh21
-rwxr-xr-xt/t3006-ls-files-long.sh39
-rwxr-xr-xt/t3010-ls-files-killed-modified.sh160
-rwxr-xr-xt/t3030-merge-recursive.sh181
-rwxr-xr-xt/t3032-merge-recursive-options.sh6
-rwxr-xr-xt/t3040-subprojects-basic.sh144
-rwxr-xr-xt/t3070-wildmatch.sh268
-rwxr-xr-xt/t3100-ls-tree-restrict.sh42
-rwxr-xr-xt/t3102-ls-tree-wildcards.sh22
-rwxr-xr-xt/t3200-branch.sh733
-rwxr-xr-xt/t3201-branch-contains.sh64
-rwxr-xr-xt/t3203-branch-output.sh32
-rwxr-xr-xt/t3210-pack-refs.sh71
-rwxr-xr-xt/t3211-peel-ref.sh73
-rwxr-xr-xt/t3300-funny-names.sh358
-rwxr-xr-xt/t3301-notes.sh1364
-rwxr-xr-xt/t3302-notes-index-expensive.sh130
-rwxr-xr-xt/t3310-notes-merge-manual-resolve.sh37
-rwxr-xr-xt/t3400-rebase.sh145
-rwxr-xr-xt/t3401-rebase-partial.sh61
-rwxr-xr-xt/t3402-rebase-merge.sh15
-rwxr-xr-xt/t3403-rebase-skip.sh7
-rwxr-xr-xt/t3404-rebase-interactive.sh453
-rwxr-xr-xt/t3405-rebase-malformed.sh32
-rwxr-xr-xt/t3406-rebase-message.sh62
-rwxr-xr-xt/t3409-rebase-preserve-merges.sh62
-rwxr-xr-xt/t3411-rebase-preserve-around-merges.sh1
-rwxr-xr-xt/t3412-rebase-root.sh7
-rwxr-xr-xt/t3413-rebase-hook.sh6
-rwxr-xr-xt/t3415-rebase-autosquash.sh73
-rwxr-xr-xt/t3418-rebase-continue.sh4
-rwxr-xr-xt/t3419-rebase-patch-id.sh27
-rwxr-xr-xt/t3420-rebase-autostash.sh185
-rwxr-xr-xt/t3421-rebase-topology-linear.sh350
-rwxr-xr-xt/t3425-rebase-topology-merges.sh258
-rwxr-xr-xt/t3426-rebase-submodule.sh46
-rwxr-xr-xt/t3501-revert-cherry-pick.sh45
-rwxr-xr-xt/t3502-cherry-pick-merge.sh2
-rwxr-xr-xt/t3505-cherry-pick-empty.sh74
-rwxr-xr-xt/t3506-cherry-pick-ff.sh8
-rwxr-xr-xt/t3507-cherry-pick-conflict.sh147
-rwxr-xr-xt/t3508-cherry-pick-many-commits.sh77
-rwxr-xr-xt/t3509-cherry-pick-merge-df.sh14
-rwxr-xr-xt/t3510-cherry-pick-sequence.sh514
-rwxr-xr-xt/t3511-cherry-pick-x.sh219
-rwxr-xr-xt/t3512-cherry-pick-submodule.sh13
-rwxr-xr-xt/t3513-revert-submodule.sh32
-rwxr-xr-xt/t3600-rm.sh633
-rwxr-xr-xt/t3700-add.sh57
-rwxr-xr-xt/t3701-add-interactive.sh105
-rwxr-xr-xt/t3900-i18n-commit.sh44
-rw-r--r--t/t3900/UTF-16.txtbin0 -> 146 bytes
-rwxr-xr-xt/t3901-i18n-patch.sh19
-rwxr-xr-xt/t3902-quoted.sh31
-rwxr-xr-xt/t3903-stash.sh174
-rwxr-xr-xt/t3904-stash-patch.sh47
-rwxr-xr-xt/t3905-stash-include-untracked.sh75
-rwxr-xr-xt/t3906-stash-submodule.sh24
-rwxr-xr-xt/t3910-mac-os-precompose.sh163
-rwxr-xr-xt/t4000-diff-format.sh48
-rwxr-xr-xt/t4001-diff-rename.sh54
-rwxr-xr-xt/t4003-diff-rename-1.sh4
-rwxr-xr-xt/t4005-diff-rename-2.sh6
-rwxr-xr-xt/t4006-diff-mode.sh65
-rwxr-xr-xt/t4007-rename-3.sh2
-rwxr-xr-xt/t4008-diff-break-rewrite.sh292
-rwxr-xr-xt/t4009-diff-rename-4.sh6
-rwxr-xr-xt/t4010-diff-pathspec.sh48
-rwxr-xr-xt/t4011-diff-symlink.sh206
-rwxr-xr-xt/t4012-diff-binary.sh146
-rwxr-xr-xt/t4013-diff-various.sh23
-rw-r--r--t/t4013/diff.diff-tree_--cc_--patch-with-stat_--summary_master6
-rw-r--r--t/t4013/diff.diff-tree_--cc_--patch-with-stat_--summary_side8
-rw-r--r--t/t4013/diff.diff-tree_--cc_--patch-with-stat_master6
-rw-r--r--t/t4013/diff.diff-tree_--cc_--stat_--summary_master6
-rw-r--r--t/t4013/diff.diff-tree_--cc_--stat_--summary_side8
-rw-r--r--t/t4013/diff.diff-tree_--cc_--stat_master6
-rw-r--r--t/t4013/diff.diff-tree_--pretty=oneline_--root_--patch-with-stat_initial8
-rw-r--r--t/t4013/diff.diff-tree_--pretty_--patch-with-stat_side8
-rw-r--r--t/t4013/diff.diff-tree_--pretty_--root_--patch-with-stat_initial8
-rw-r--r--t/t4013/diff.diff-tree_--pretty_--root_--stat_--summary_initial8
-rw-r--r--t/t4013/diff.diff-tree_--pretty_--root_--stat_initial8
-rw-r--r--t/t4013/diff.diff-tree_--root_--patch-with-stat_initial8
-rw-r--r--t/t4013/diff.diff-tree_-c_--stat_--summary_master6
-rw-r--r--t/t4013/diff.diff-tree_-c_--stat_--summary_side8
-rw-r--r--t/t4013/diff.diff-tree_-c_--stat_master6
-rw-r--r--t/t4013/diff.diff_--patch-with-stat_-r_initial..side8
-rw-r--r--t/t4013/diff.diff_--patch-with-stat_initial..side8
-rw-r--r--t/t4013/diff.diff_--stat_initial..side8
-rw-r--r--t/t4013/diff.diff_-r_--stat_initial..side8
-rw-r--r--t/t4013/diff.format-patch_--attach_--stdout_--suffix=.diff_initial..side8
-rw-r--r--t/t4013/diff.format-patch_--attach_--stdout_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--attach_--stdout_initial..master^12
-rw-r--r--t/t4013/diff.format-patch_--attach_--stdout_initial..side8
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_--numbered-files_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_--subject-prefix=TESTCASE_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_initial..master^12
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_initial..master^^6
-rw-r--r--t/t4013/diff.format-patch_--inline_--stdout_initial..side8
-rw-r--r--t/t4013/diff.format-patch_--stdout_--cover-letter_-n_initial..master^20
-rw-r--r--t/t4013/diff.format-patch_--stdout_--no-numbered_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--stdout_--numbered_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--stdout_initial..master20
-rw-r--r--t/t4013/diff.format-patch_--stdout_initial..master^12
-rw-r--r--t/t4013/diff.format-patch_--stdout_initial..side8
-rw-r--r--t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_12
-rw-r--r--t/t4013/diff.log_--patch-with-stat_master20
-rw-r--r--t/t4013/diff.log_--patch-with-stat_master_--_dir_12
-rw-r--r--t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master34
-rw-r--r--t/t4013/diff.log_--root_--patch-with-stat_--summary_master28
-rw-r--r--t/t4013/diff.log_--root_--patch-with-stat_master28
-rw-r--r--t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master34
-rw-r--r--t/t4013/diff.show_--patch-with-stat_--summary_side8
-rw-r--r--t/t4013/diff.show_--patch-with-stat_side8
-rw-r--r--t/t4013/diff.show_--stat_--summary_side8
-rw-r--r--t/t4013/diff.show_--stat_side8
-rw-r--r--t/t4013/diff.whatchanged_--patch-with-stat_--summary_master_--_dir_12
-rw-r--r--t/t4013/diff.whatchanged_--patch-with-stat_master20
-rw-r--r--t/t4013/diff.whatchanged_--patch-with-stat_master_--_dir_12
-rw-r--r--t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master34
-rw-r--r--t/t4013/diff.whatchanged_--root_--patch-with-stat_--summary_master28
-rw-r--r--t/t4013/diff.whatchanged_--root_--patch-with-stat_master28
-rw-r--r--t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master34
-rwxr-xr-xt/t4014-format-patch.sh757
-rwxr-xr-xt/t4015-diff-whitespace.sh360
-rwxr-xr-xt/t4016-diff-quote.sh53
-rwxr-xr-xt/t4018-diff-funcname.sh235
-rw-r--r--t/t4018/README18
-rw-r--r--t/t4018/cpp-c++-function4
-rw-r--r--t/t4018/cpp-class-constructor4
-rw-r--r--t/t4018/cpp-class-constructor-mem-init5
-rw-r--r--t/t4018/cpp-class-definition4
-rw-r--r--t/t4018/cpp-class-definition-derived5
-rw-r--r--t/t4018/cpp-class-destructor4
-rw-r--r--t/t4018/cpp-function-returning-global-type4
-rw-r--r--t/t4018/cpp-function-returning-nested5
-rw-r--r--t/t4018/cpp-function-returning-pointer4
-rw-r--r--t/t4018/cpp-function-returning-reference4
-rw-r--r--t/t4018/cpp-gnu-style-function5
-rw-r--r--t/t4018/cpp-namespace-definition4
-rw-r--r--t/t4018/cpp-operator-definition4
-rw-r--r--t/t4018/cpp-skip-access-specifiers8
-rw-r--r--t/t4018/cpp-skip-comment-block9
-rw-r--r--t/t4018/cpp-skip-labels8
-rw-r--r--t/t4018/cpp-struct-definition9
-rw-r--r--t/t4018/cpp-struct-single-line7
-rw-r--r--t/t4018/cpp-template-function-definition4
-rw-r--r--t/t4018/cpp-union-definition4
-rw-r--r--t/t4018/cpp-void-c-function4
-rw-r--r--t/t4018/custom1-pattern17
-rw-r--r--t/t4018/custom2-match-to-end-of-line8
-rw-r--r--t/t4018/custom3-alternation-in-pattern17
-rw-r--r--t/t4018/java-class-member-function8
-rw-r--r--t/t4018/perl-skip-end-of-heredoc8
-rw-r--r--t/t4018/perl-skip-forward-decl10
-rw-r--r--t/t4018/perl-skip-sub-in-pod18
-rw-r--r--t/t4018/perl-sub-definition4
-rw-r--r--t/t4018/perl-sub-definition-kr-brace4
-rwxr-xr-xt/t4020-diff-external.sh102
-rwxr-xr-xt/t4022-diff-rewrite.sh30
-rwxr-xr-xt/t4023-diff-rename-typechange.sh31
-rwxr-xr-xt/t4026-color.sh27
-rwxr-xr-xt/t4030-diff-textconv.sh68
-rwxr-xr-xt/t4031-diff-rewrite-binary.sh12
-rwxr-xr-xt/t4034-diff-words.sh57
-rw-r--r--t/t4034/ada/expect27
-rw-r--r--t/t4034/ada/post13
-rw-r--r--t/t4034/ada/pre13
-rw-r--r--t/t4034/matlab/expect14
-rw-r--r--t/t4034/matlab/post9
-rw-r--r--t/t4034/matlab/pre9
-rwxr-xr-xt/t4035-diff-quiet.sh105
-rwxr-xr-xt/t4036-format-patch-signer-mime.sh2
-rwxr-xr-xt/t4038-diff-combined.sh346
-rwxr-xr-xt/t4039-diff-assume-unchanged.sh11
-rwxr-xr-xt/t4041-diff-submodule-option.sh553
-rwxr-xr-xt/t4042-diff-textconv-caching.sh8
-rwxr-xr-xt/t4043-diff-rename-binary.sh8
-rwxr-xr-xt/t4045-diff-relative.sh20
-rwxr-xr-xt/t4047-diff-dirstat.sh83
-rwxr-xr-xt/t4049-diff-stat-count.sh55
-rwxr-xr-xt/t4051-diff-function-context.sh92
-rwxr-xr-xt/t4052-stat-output.sh336
-rwxr-xr-xt/t4053-diff-no-index.sh58
-rwxr-xr-xt/t4054-diff-bogus-tree.sh83
-rwxr-xr-xt/t4055-diff-context.sh92
-rwxr-xr-xt/t4056-diff-order.sh121
-rwxr-xr-xt/t4057-diff-combined-paths.sh106
-rwxr-xr-xt/t4058-diff-duplicates.sh79
-rwxr-xr-xt/t4100-apply-stat.sh4
-rw-r--r--t/t4100/t-apply-8.expect2
-rw-r--r--t/t4100/t-apply-9.expect2
-rwxr-xr-xt/t4102-apply-rename.sh3
-rwxr-xr-xt/t4103-apply-binary.sh54
-rwxr-xr-xt/t4107-apply-ignore-whitespace.sh12
-rwxr-xr-xt/t4108-apply-threeway.sh157
-rwxr-xr-xt/t4111-apply-subdir.sh14
-rwxr-xr-xt/t4114-apply-typechange.sh29
-rwxr-xr-xt/t4115-apply-symlink.sh10
-rwxr-xr-xt/t4116-apply-reverse.sh16
-rwxr-xr-xt/t4117-apply-reject.sh8
-rwxr-xr-xt/t4119-apply-config.sh19
-rwxr-xr-xt/t4120-apply-popt.sh5
-rwxr-xr-xt/t4122-apply-symlink-inside.sh114
-rwxr-xr-xt/t4124-apply-ws-rule.sh39
-rwxr-xr-xt/t4129-apply-samemode.sh1
-rwxr-xr-xt/t4131-apply-fake-ancestor.sh2
-rwxr-xr-xt/t4133-apply-filenames.sh4
-rwxr-xr-xt/t4136-apply-check.sh19
-rwxr-xr-xt/t4137-apply-submodule.sh20
-rwxr-xr-xt/t4138-apply-ws-expansion.sh121
-rwxr-xr-xt/t4139-apply-escape.sh141
-rwxr-xr-xt/t4150-am.sh102
-rwxr-xr-xt/t4200-rerere.sh6
-rwxr-xr-xt/t4201-shortlog.sh52
-rwxr-xr-xt/t4202-log.sh404
-rwxr-xr-xt/t4203-mailmap.sh240
-rwxr-xr-xt/t4204-patch-id.sh106
-rwxr-xr-xt/t4205-log-pretty-formats.sh409
-rwxr-xr-xt/t4207-log-decoration-colors.sh16
-rwxr-xr-xt/t4208-log-magic-pathspec.sh32
-rwxr-xr-xt/t4209-log-pickaxe.sh109
-rwxr-xr-xt/t4210-log-i18n.sh58
-rwxr-xr-xt/t4211-line-log.sh102
-rw-r--r--t/t4211/expect.beginning-of-file43
-rw-r--r--t/t4211/expect.end-of-file62
-rw-r--r--t/t4211/expect.move-support-f80
-rw-r--r--t/t4211/expect.multiple104
-rw-r--r--t/t4211/expect.multiple-overlapping187
-rw-r--r--t/t4211/expect.multiple-superset187
-rw-r--r--t/t4211/expect.parallel-change-f-to-main160
-rw-r--r--t/t4211/expect.simple-f59
-rw-r--r--t/t4211/expect.simple-f-to-main100
-rw-r--r--t/t4211/expect.simple-main68
-rw-r--r--t/t4211/expect.simple-main-to-end70
-rw-r--r--t/t4211/expect.two-ranges102
-rw-r--r--t/t4211/expect.vanishes-early39
-rw-r--r--t/t4211/history.export406
-rwxr-xr-xt/t4212-log-corrupt.sh90
-rwxr-xr-xt/t4253-am-keep-cr-dos.sh4
-rwxr-xr-xt/t4254-am-corrupt.sh37
-rwxr-xr-xt/t4255-am-submodule.sh93
-rwxr-xr-xt/t4300-merge-tree.sh114
-rwxr-xr-xt/t5000-tar-tree.sh343
-rw-r--r--t/t5000/pax.tarbin0 -> 10240 bytes
-rwxr-xr-xt/t5001-archive-attr.sh21
-rwxr-xr-xt/t5002-archive-attr-pattern.sh84
-rwxr-xr-xt/t5003-archive-zip.sh127
-rw-r--r--t/t5003/infozip-symlinks.zipbin0 -> 328 bytes
-rwxr-xr-xt/t5004-archive-corner-cases.sh116
-rw-r--r--t/t5004/empty-with-pax-header.tarbin0 -> 10240 bytes
-rw-r--r--t/t5004/empty.zipbin0 -> 62 bytes
-rwxr-xr-xt/t5100-mailinfo.sh26
-rw-r--r--t/t5100/embed-from.expect5
-rw-r--r--t/t5100/embed-from.in13
-rw-r--r--t/t5100/info0012--message-id5
-rw-r--r--t/t5100/info00175
-rw-r--r--t/t5100/msg0012--message-id8
-rw-r--r--t/t5100/msg00172
-rw-r--r--t/t5100/patch00012
-rw-r--r--t/t5100/patch00022
-rw-r--r--t/t5100/patch00032
-rw-r--r--t/t5100/patch00054
-rw-r--r--t/t5100/patch00062
-rw-r--r--t/t5100/patch00102
-rw-r--r--t/t5100/patch00112
-rw-r--r--t/t5100/patch0012--message-id30
-rw-r--r--t/t5100/patch00142
-rw-r--r--t/t5100/patch0014--scissors2
-rw-r--r--t/t5100/patch00176
-rw-r--r--t/t5100/quoted-from.expect3
-rw-r--r--t/t5100/quoted-from.in10
-rw-r--r--t/t5100/sample.mbox34
-rwxr-xr-xt/t5150-request-pull.sh49
-rwxr-xr-xt/t5300-pack-object.sh21
-rwxr-xr-xt/t5302-pack-index.sh27
-rwxr-xr-xt/t5303-pack-corruption-resilience.sh29
-rwxr-xr-xt/t5304-prune.sh124
-rwxr-xr-xt/t5305-include-tag.sh4
-rwxr-xr-xt/t5308-pack-detect-duplicates.sh80
-rwxr-xr-xt/t5309-pack-delta-cycles.sh77
-rwxr-xr-xt/t5310-pack-bitmaps.sh182
-rwxr-xr-xt/t5311-pack-bitmaps-shallow.sh39
-rwxr-xr-xt/t5312-prune-corruption.sh114
-rwxr-xr-xt/t5400-send-pack.sh51
-rwxr-xr-xt/t5401-update-hooks.sh13
-rwxr-xr-xt/t5403-post-checkout-hook.sh46
-rwxr-xr-xt/t5404-tracking-branches.sh2
-rwxr-xr-xt/t5407-post-rewrite-hook.sh4
-rwxr-xr-xt/t5408-send-pack-stdin.sh92
-rwxr-xr-xt/t5500-fetch-pack.sh398
-rwxr-xr-xt/t5501-fetch-push-alternates.sh2
-rwxr-xr-xt/t5503-tagfollow.sh64
-rwxr-xr-xt/t5504-fetch-receive-strict.sh118
-rwxr-xr-xt/t5505-remote.sh884
-rwxr-xr-xt/t5510-fetch.sh378
-rwxr-xr-xt/t5511-refspec.sh6
-rwxr-xr-xt/t5512-ls-remote.sh53
-rwxr-xr-xt/t5514-fetch-multiple.sh30
-rw-r--r--t/t5515/fetch.br-branches-default6
-rw-r--r--t/t5515/fetch.br-branches-default-merge8
-rw-r--r--t/t5515/fetch.br-branches-default-merge_branches-default8
-rw-r--r--t/t5515/fetch.br-branches-default-octopus8
-rw-r--r--t/t5515/fetch.br-branches-default-octopus_branches-default8
-rw-r--r--t/t5515/fetch.br-branches-default_branches-default6
-rw-r--r--t/t5515/fetch.br-branches-one6
-rw-r--r--t/t5515/fetch.br-branches-one-merge8
-rw-r--r--t/t5515/fetch.br-branches-one-merge_branches-one8
-rw-r--r--t/t5515/fetch.br-branches-one-octopus6
-rw-r--r--t/t5515/fetch.br-branches-one-octopus_branches-one6
-rw-r--r--t/t5515/fetch.br-branches-one_branches-one6
-rw-r--r--t/t5515/fetch.br-config-explicit6
-rw-r--r--t/t5515/fetch.br-config-explicit-merge8
-rw-r--r--t/t5515/fetch.br-config-explicit-merge_config-explicit8
-rw-r--r--t/t5515/fetch.br-config-explicit-octopus8
-rw-r--r--t/t5515/fetch.br-config-explicit-octopus_config-explicit8
-rw-r--r--t/t5515/fetch.br-config-explicit_config-explicit6
-rw-r--r--t/t5515/fetch.br-config-glob6
-rw-r--r--t/t5515/fetch.br-config-glob-merge8
-rw-r--r--t/t5515/fetch.br-config-glob-merge_config-glob8
-rw-r--r--t/t5515/fetch.br-config-glob-octopus10
-rw-r--r--t/t5515/fetch.br-config-glob-octopus_config-glob10
-rw-r--r--t/t5515/fetch.br-config-glob_config-glob6
-rw-r--r--t/t5515/fetch.br-remote-explicit6
-rw-r--r--t/t5515/fetch.br-remote-explicit-merge8
-rw-r--r--t/t5515/fetch.br-remote-explicit-merge_remote-explicit8
-rw-r--r--t/t5515/fetch.br-remote-explicit-octopus8
-rw-r--r--t/t5515/fetch.br-remote-explicit-octopus_remote-explicit8
-rw-r--r--t/t5515/fetch.br-remote-explicit_remote-explicit6
-rw-r--r--t/t5515/fetch.br-remote-glob6
-rw-r--r--t/t5515/fetch.br-remote-glob-merge8
-rw-r--r--t/t5515/fetch.br-remote-glob-merge_remote-glob8
-rw-r--r--t/t5515/fetch.br-remote-glob-octopus10
-rw-r--r--t/t5515/fetch.br-remote-glob-octopus_remote-glob10
-rw-r--r--t/t5515/fetch.br-remote-glob_remote-glob6
-rw-r--r--t/t5515/fetch.br-unconfig6
-rw-r--r--t/t5515/fetch.br-unconfig_--tags_.._.git7
-rw-r--r--t/t5515/fetch.br-unconfig_.._.git_one_tag_tag-one_tag_tag-three-file6
-rw-r--r--t/t5515/fetch.br-unconfig_.._.git_tag_tag-one-tree_tag_tag-three-file6
-rw-r--r--t/t5515/fetch.br-unconfig_.._.git_tag_tag-one_tag_tag-three6
-rw-r--r--t/t5515/fetch.br-unconfig_branches-default6
-rw-r--r--t/t5515/fetch.br-unconfig_branches-one6
-rw-r--r--t/t5515/fetch.br-unconfig_config-explicit6
-rw-r--r--t/t5515/fetch.br-unconfig_config-glob6
-rw-r--r--t/t5515/fetch.br-unconfig_remote-explicit6
-rw-r--r--t/t5515/fetch.br-unconfig_remote-glob6
-rw-r--r--t/t5515/fetch.master6
-rw-r--r--t/t5515/fetch.master_--tags_.._.git7
-rw-r--r--t/t5515/fetch.master_.._.git_one_tag_tag-one_tag_tag-three-file6
-rw-r--r--t/t5515/fetch.master_.._.git_tag_tag-one-tree_tag_tag-three-file6
-rw-r--r--t/t5515/fetch.master_.._.git_tag_tag-one_tag_tag-three6
-rw-r--r--t/t5515/fetch.master_branches-default6
-rw-r--r--t/t5515/fetch.master_branches-one6
-rw-r--r--t/t5515/fetch.master_config-explicit6
-rw-r--r--t/t5515/fetch.master_config-glob6
-rw-r--r--t/t5515/fetch.master_remote-explicit6
-rw-r--r--t/t5515/fetch.master_remote-glob6
-rwxr-xr-xt/t5516-fetch-push.sh1065
-rwxr-xr-xt/t5517-push-mirror.sh2
-rwxr-xr-xt/t5519-push-alternates.sh12
-rwxr-xr-xt/t5520-pull.sh143
-rwxr-xr-xt/t5521-pull-options.sh41
-rwxr-xr-xt/t5523-push-upstream.sh10
-rwxr-xr-xt/t5525-fetch-tagopt.sh23
-rwxr-xr-xt/t5527-fetch-odd-refs.sh62
-rwxr-xr-xt/t5528-push-default.sh203
-rwxr-xr-xt/t5529-push-errors.sh48
-rwxr-xr-xt/t5530-upload-pack-error.sh7
-rwxr-xr-xt/t5531-deep-submodule-push.sh96
-rwxr-xr-xt/t5532-fetch-proxy.sh2
-rwxr-xr-xt/t5533-push-cas.sh189
-rwxr-xr-xt/t5534-push-signed.sh171
-rwxr-xr-xt/t5535-fetch-push-symref.sh42
-rwxr-xr-xt/t5536-fetch-conflicts.sh100
-rwxr-xr-xt/t5537-fetch-shallow.sh189
-rwxr-xr-xt/t5538-push-shallow.sh123
-rwxr-xr-xt/t5539-fetch-http-shallow.sh83
-rwxr-xr-xt/t5540-http-push-webdav.sh (renamed from t/t5540-http-push.sh)36
-rwxr-xr-xt/t5541-http-push-smart.sh383
-rwxr-xr-xt/t5541-http-push.sh158
-rwxr-xr-xt/t5542-push-http-shallow.sh100
-rwxr-xr-xt/t5550-http-fetch-dumb.sh218
-rwxr-xr-xt/t5550-http-fetch.sh121
-rwxr-xr-xt/t5551-http-fetch-smart.sh260
-rwxr-xr-xt/t5551-http-fetch.sh113
-rwxr-xr-xt/t5560-http-backend-noserver.sh16
-rwxr-xr-xt/t5561-http-backend.sh1
-rwxr-xr-xt/t5570-git-daemon.sh172
-rwxr-xr-xt/t5571-pre-push-hook.sh131
-rwxr-xr-xt/t5572-pull-submodule.sh45
-rwxr-xr-xt/t5600-clone-fail-cleanup.sh12
-rwxr-xr-xt/t5601-clone.sh236
-rwxr-xr-xt/t5602-clone-remote-exec.sh13
-rwxr-xr-xt/t5700-clone-reference.sh83
-rwxr-xr-xt/t5701-clone-local.sh93
-rwxr-xr-xt/t5702-clone-options.sh10
-rwxr-xr-xt/t5704-bundle.sh62
-rwxr-xr-xt/t5705-clone-2gb.sh2
-rwxr-xr-xt/t5706-clone-branch.sh16
-rwxr-xr-xt/t5709-clone-refspec.sh156
-rwxr-xr-xt/t5710-info-alternate.sh4
-rwxr-xr-xt/t5800-remote-helpers.sh135
-rwxr-xr-xt/t5801-remote-helpers.sh308
-rwxr-xr-xt/t5802-connect-helper.sh72
-rwxr-xr-xt/t5900-repo-selection.sh100
-rwxr-xr-xt/t6000-rev-list-misc.sh48
-rwxr-xr-xt/t6002-rev-list-bisect.sh84
-rwxr-xr-xt/t6003-rev-list-topo-order.sh101
-rwxr-xr-xt/t6006-rev-list-format.sh378
-rwxr-xr-xt/t6009-rev-list-parent.sh13
-rwxr-xr-xt/t6010-merge-base.sh67
-rwxr-xr-xt/t6012-rev-list-simplify.sh72
-rwxr-xr-xt/t6018-rev-list-glob.sh54
-rwxr-xr-xt/t6019-rev-list-ancestry-path.sh86
-rwxr-xr-xt/t6021-merge-criss-cross.sh2
-rwxr-xr-xt/t6022-merge-rename.sh46
-rwxr-xr-xt/t6023-merge-file.sh94
-rwxr-xr-xt/t6028-merge-up-to-date.sh17
-rwxr-xr-xt/t6030-bisect-porcelain.sh57
-rwxr-xr-xt/t6031-merge-recursive.sh2
-rwxr-xr-xt/t6032-merge-large-rename.sh4
-rwxr-xr-xt/t6035-merge-dir-to-symlink.sh73
-rwxr-xr-xt/t6036-recursive-corner-cases.sh2
-rwxr-xr-xt/t6037-merge-ours-theirs.sh14
-rwxr-xr-xt/t6038-merge-text-auto.sh54
-rwxr-xr-xt/t6039-merge-ignorecase.sh53
-rwxr-xr-xt/t6040-tracking-info.sh127
-rwxr-xr-xt/t6041-bisect-submodule.sh32
-rwxr-xr-xt/t6042-merge-rename-corner-cases.sh4
-rwxr-xr-xt/t6050-replace.sh238
-rwxr-xr-xt/t6101-rev-parse-parents.sh127
-rwxr-xr-xt/t6111-rev-list-treesame.sh196
-rwxr-xr-xt/t6120-describe.sh27
-rwxr-xr-xt/t6130-pathspec-noglob.sh162
-rwxr-xr-xt/t6131-pathspec-icase.sh109
-rwxr-xr-xt/t6132-pathspec-exclude.sh184
-rwxr-xr-xt/t6200-fmt-merge-msg.sh145
-rwxr-xr-xt/t6300-for-each-ref.sh191
-rwxr-xr-xt/t6500-gc.sh9
-rwxr-xr-xt/t6501-freshen-objects.sh132
-rwxr-xr-xt/t7001-mv.sh237
-rwxr-xr-xt/t7003-filter-branch.sh33
-rwxr-xr-xt/t7004-tag.sh259
-rw-r--r--t/t7004/pubring.gpgbin1164 -> 0 bytes
-rw-r--r--t/t7004/random_seedbin600 -> 0 bytes
-rw-r--r--t/t7004/secring.gpgbin1237 -> 0 bytes
-rw-r--r--t/t7004/trustdb.gpgbin1280 -> 0 bytes
-rwxr-xr-xt/t7006-pager.sh103
-rwxr-xr-xt/t7007-show.sh107
-rwxr-xr-xt/t7008-grep-binary.sh77
-rwxr-xr-xt/t7009-filter-branch-null-sha1.sh49
-rwxr-xr-xt/t7011-skip-worktree-reading.sh4
-rwxr-xr-xt/t7060-wtstatus.sh114
-rwxr-xr-xt/t7061-wtstatus-ignore.sh265
-rwxr-xr-xt/t7062-wtstatus-ignorecase.sh20
-rwxr-xr-xt/t7101-reset-empty-subdirs.sh (renamed from t/t7101-reset.sh)0
-rwxr-xr-xt/t7102-reset.sh139
-rwxr-xr-xt/t7104-reset-hard.sh (renamed from t/t7104-reset.sh)2
-rwxr-xr-xt/t7105-reset-patch.sh10
-rwxr-xr-xt/t7106-reset-unborn-branch.sh70
-rwxr-xr-xt/t7112-reset-submodule.sh14
-rwxr-xr-xt/t7201-co.sh22
-rwxr-xr-xt/t7300-clean.sh81
-rwxr-xr-xt/t7301-clean-interactive.sh475
-rwxr-xr-xt/t7400-submodule-basic.sh538
-rwxr-xr-xt/t7401-submodule-summary.sh146
-rwxr-xr-xt/t7402-submodule-rebase.sh30
-rwxr-xr-xt/t7403-submodule-sync.sh342
-rwxr-xr-xt/t7405-submodule-merge.sh51
-rwxr-xr-xt/t7406-submodule-update.sh348
-rwxr-xr-xt/t7407-submodule-foreach.sh136
-rwxr-xr-xt/t7408-submodule-reference.sh8
-rwxr-xr-xt/t7409-submodule-detached-worktree.sh84
-rwxr-xr-xt/t7500-commit.sh23
-rwxr-xr-xt/t7500/add-content-and-comment5
-rwxr-xr-xt/t7501-commit.sh437
-rwxr-xr-xt/t7502-commit.sh294
-rwxr-xr-xt/t7503-pre-commit-hook.sh18
-rwxr-xr-xt/t7505-prepare-commit-msg-hook.sh43
-rwxr-xr-xt/t7507-commit-verbose.sh28
-rwxr-xr-xt/t7508-status.sh1206
-rwxr-xr-xt/t7509-commit.sh1
-rwxr-xr-xt/t7510-signed-commit.sh168
-rwxr-xr-xt/t7511-status-index.sh50
-rwxr-xr-xt/t7512-status-help.sh748
-rwxr-xr-xt/t7513-interpret-trailers.sh895
-rwxr-xr-xt/t7514-commit-patch.sh34
-rwxr-xr-xt/t7515-status-symlinks.sh43
-rwxr-xr-xt/t7600-merge.sh145
-rwxr-xr-xt/t7601-merge-pull-config.sh23
-rwxr-xr-xt/t7602-merge-octopus-many.sh32
-rwxr-xr-xt/t7603-merge-reduce-heads.sh50
-rwxr-xr-xt/t7604-merge-custom-message.sh2
-rwxr-xr-xt/t7607-merge-overwrite.sh15
-rwxr-xr-xt/t7608-merge-messages.sh4
-rwxr-xr-xt/t7609-merge-co-error-msgs.sh5
-rwxr-xr-xt/t7610-mergetool.sh858
-rwxr-xr-xt/t7612-merge-verify-signatures.sh61
-rwxr-xr-xt/t7613-merge-submodule.sh19
-rwxr-xr-xt/t7700-repack.sh34
-rwxr-xr-xt/t7701-repack-unpack-unreachable.sh27
-rwxr-xr-xt/t7702-repack-cyclic-alternate.sh24
-rwxr-xr-xt/t7800-difftool.sh545
-rwxr-xr-xt/t7810-grep.sh541
-rwxr-xr-xt/t7811-grep-open.sh5
-rwxr-xr-xt/t8001-annotate.sh6
-rwxr-xr-xt/t8002-blame.sh12
-rwxr-xr-xt/t8003-blame-corner-cases.sh15
-rwxr-xr-xt/t8004-blame-with-conflicts.sh2
-rwxr-xr-xt/t8005-blame-i18n.sh8
-rwxr-xr-xt/t8006-blame-textconv.sh27
-rwxr-xr-xt/t8007-cat-file-textconv.sh30
-rwxr-xr-xt/t9001-send-email.sh857
-rwxr-xr-xt/t9002-column.sh180
-rwxr-xr-xt/t9010-svn-fe.sh357
-rwxr-xr-xt/t9011-svn-da.sh248
-rwxr-xr-xt/t9020-remote-svn.sh89
-rwxr-xr-xt/t9100-git-svn-basic.sh53
-rwxr-xr-xt/t9107-git-svn-migrate.sh60
-rwxr-xr-xt/t9112-git-svn-md5less-file.sh2
-rwxr-xr-xt/t9114-git-svn-dcommit-merge.sh6
-rwxr-xr-xt/t9116-git-svn-log.sh46
-rwxr-xr-xt/t9117-git-svn-init-clone.sh67
-rwxr-xr-xt/t9118-git-svn-funky-branch-names.sh27
-rwxr-xr-xt/t9119-git-svn-info.sh30
-rwxr-xr-xt/t9120-git-svn-clone-with-percent-escapes.sh14
-rwxr-xr-xt/t9125-git-svn-multi-glob-branch-names.sh6
-rwxr-xr-xt/t9128-git-svn-cmd-branch.sh18
-rwxr-xr-xt/t9130-git-svn-authors-file.sh5
-rwxr-xr-xt/t9135-git-svn-moved-branch-empty-file.sh2
-rwxr-xr-xt/t9138-git-svn-authors-prog.sh35
-rwxr-xr-xt/t9141-git-svn-multiple-branches.sh28
-rwxr-xr-xt/t9145-git-svn-master-branch.sh2
-rwxr-xr-xt/t9147-git-svn-include-paths.sh149
-rwxr-xr-xt/t9148-git-svn-propset.sh95
-rwxr-xr-x[-rw-r--r--]t/t9150/make-svk-dump0
-rwxr-xr-x[-rw-r--r--]t/t9151/make-svnmerge-dump0
-rwxr-xr-xt/t9154-git-svn-fancy-glob.sh13
-rwxr-xr-xt/t9155-git-svn-fetch-deleted-tag.sh4
-rwxr-xr-xt/t9156-git-svn-fetch-deleted-tag-2.sh6
-rwxr-xr-xt/t9159-git-svn-no-parent-mergeinfo.sh8
-rwxr-xr-xt/t9161-git-svn-mergeinfo-push.sh23
-rwxr-xr-xt/t9162-git-svn-dcommit-interactive.sh64
-rwxr-xr-xt/t9163-git-svn-reset-clears-caches.sh78
-rwxr-xr-xt/t9164-git-svn-dcommit-concurrent.sh216
-rwxr-xr-xt/t9165-git-svn-fetch-merge-branch-of-branch.sh60
-rwxr-xr-xt/t9166-git-svn-fetch-merge-branch-of-branch2.sh53
-rwxr-xr-xt/t9167-git-svn-cmd-branch-subproject.sh48
-rwxr-xr-xt/t9200-git-cvsexportcommit.sh12
-rwxr-xr-xt/t9300-fast-import.sh686
-rwxr-xr-xt/t9301-fast-import-notes.sh63
-rwxr-xr-xt/t9350-fast-export.sh100
-rwxr-xr-xt/t9351-fast-export-anonymize.sh112
-rwxr-xr-xt/t9400-git-cvsserver-server.sh84
-rwxr-xr-xt/t9401-git-cvsserver-crlf.sh38
-rwxr-xr-xt/t9402-git-cvsserver-refs.sh551
-rwxr-xr-xt/t9500-gitweb-standalone-no-errors.sh153
-rwxr-xr-xt/t9501-gitweb-standalone-http-status.sh82
-rwxr-xr-xt/t9502-gitweb-standalone-parse-output.sh17
-rwxr-xr-xt/t9603-cvsimport-patchsets.sh2
-rwxr-xr-xt/t9604-cvsimport-timestamps.sh71
-rw-r--r--t/t9604/cvsroot/.gitattributes1
-rw-r--r--t/t9604/cvsroot/CVSROOT/.gitignore2
-rw-r--r--t/t9604/cvsroot/module/a,v264
-rwxr-xr-xt/t9700-perl-git.sh10
-rwxr-xr-xt/t9700/test.pl10
-rwxr-xr-xt/t9800-git-p4-basic.sh210
-rwxr-xr-xt/t9800-git-p4.sh476
-rwxr-xr-xt/t9801-git-p4-branch.sh511
-rwxr-xr-xt/t9802-git-p4-filetype.sh340
-rwxr-xr-xt/t9803-git-p4-shell-metachars.sh112
-rwxr-xr-xt/t9804-git-p4-label.sh115
-rwxr-xr-xt/t9805-git-p4-skip-submit-edit.sh105
-rwxr-xr-xt/t9806-git-p4-options.sh276
-rwxr-xr-xt/t9807-git-p4-submit.sh420
-rwxr-xr-xt/t9808-git-p4-chdir.sh90
-rwxr-xr-xt/t9809-git-p4-client-view.sh843
-rwxr-xr-xt/t9810-git-p4-rcs.sh367
-rwxr-xr-xt/t9811-git-p4-label-import.sh222
-rwxr-xr-xt/t9812-git-p4-wildcards.sh218
-rwxr-xr-xt/t9813-git-p4-preserve-users.sh143
-rwxr-xr-xt/t9814-git-p4-rename.sh247
-rwxr-xr-xt/t9815-git-p4-submit-fail.sh432
-rwxr-xr-xt/t9816-git-p4-locked.sh145
-rwxr-xr-xt/t9901-git-web--browse.sh63
-rwxr-xr-xt/t9902-completion.sh617
-rwxr-xr-xt/t9903-bash-prompt.sh708
-rw-r--r--t/test-lib-functions.sh885
-rw-r--r--t/test-lib.sh1216
-rwxr-xr-xt/test-terminal.perl6
-rwxr-xr-xt/valgrind/analyze.sh8
-rwxr-xr-xt/valgrind/valgrind.sh30
-rw-r--r--tag.c44
-rw-r--r--tag.h2
-rwxr-xr-xtemplates/hooks--pre-commit.sample37
-rwxr-xr-xtemplates/hooks--pre-push.sample53
-rwxr-xr-xtemplates/hooks--update.sample2
-rw-r--r--test-chmtime.c16
-rw-r--r--test-config.c152
-rw-r--r--test-ctype.c80
-rw-r--r--test-date.c17
-rw-r--r--test-delta.c2
-rw-r--r--test-dump-cache-tree.c9
-rw-r--r--test-dump-split-index.c34
-rw-r--r--test-genrandom.c2
-rw-r--r--test-hashmap.c264
-rw-r--r--test-index-version.c2
-rw-r--r--test-line-buffer.c7
-rw-r--r--test-match-trees.c4
-rw-r--r--test-mergesort.c52
-rw-r--r--test-obj-pool.c116
-rw-r--r--test-parse-options.c19
-rw-r--r--test-path-utils.c83
-rw-r--r--test-prio-queue.c39
-rw-r--r--test-read-cache.c13
-rw-r--r--test-regex.c20
-rw-r--r--test-revision-walking.c66
-rw-r--r--test-run-command.c4
-rw-r--r--test-scrap-cache-tree.c17
-rw-r--r--test-sha1-array.c34
-rw-r--r--test-sha1.c15
-rw-r--r--test-sigchain.c2
-rw-r--r--test-string-list.c103
-rw-r--r--test-string-pool.c31
-rw-r--r--test-subprocess.c7
-rw-r--r--test-svn-fe.c48
-rw-r--r--test-treap.c70
-rw-r--r--test-urlmatch-normalization.c50
-rw-r--r--test-wildmatch.c21
-rw-r--r--thread-utils.c2
-rw-r--r--thread-utils.h4
-rw-r--r--trace.c373
-rw-r--r--trace.h113
-rw-r--r--trailer.c873
-rw-r--r--trailer.h6
-rw-r--r--transport-helper.c391
-rw-r--r--transport.c373
-rw-r--r--transport.h48
-rw-r--r--tree-diff.c729
-rw-r--r--tree-walk.c356
-rw-r--r--tree-walk.h23
-rw-r--r--tree.c59
-rw-r--r--tree.h6
-rw-r--r--unicode_width.h323
-rw-r--r--unix-socket.c123
-rw-r--r--unix-socket.h7
-rw-r--r--unpack-trees.c418
-rw-r--r--unpack-trees.h15
-rwxr-xr-xupdate_unicode.sh40
-rw-r--r--upload-pack.c406
-rw-r--r--url.c60
-rw-r--r--url.h1
-rw-r--r--urlmatch.c538
-rw-r--r--urlmatch.h54
-rw-r--r--usage.c24
-rw-r--r--userdiff.c101
-rw-r--r--utf8.c387
-rw-r--r--utf8.h39
-rw-r--r--varint.c30
-rw-r--r--varint.h7
-rw-r--r--vcs-svn/LICENSE3
-rw-r--r--vcs-svn/fast_export.c276
-rw-r--r--vcs-svn/fast_export.h33
-rw-r--r--vcs-svn/line_buffer.c10
-rw-r--r--vcs-svn/line_buffer.h3
-rw-r--r--vcs-svn/obj_pool.h61
-rw-r--r--vcs-svn/repo_tree.c330
-rw-r--r--vcs-svn/repo_tree.h12
-rw-r--r--vcs-svn/sliding_window.c79
-rw-r--r--vcs-svn/sliding_window.h18
-rw-r--r--vcs-svn/string_pool.c102
-rw-r--r--vcs-svn/string_pool.h11
-rw-r--r--vcs-svn/string_pool.txt43
-rw-r--r--vcs-svn/svndiff.c309
-rw-r--r--vcs-svn/svndiff.h10
-rw-r--r--vcs-svn/svndump.c204
-rw-r--r--vcs-svn/svndump.h3
-rw-r--r--vcs-svn/trp.h237
-rw-r--r--vcs-svn/trp.txt109
-rw-r--r--version.c38
-rw-r--r--version.h9
-rw-r--r--versioncmp.c93
-rw-r--r--walker.c91
-rw-r--r--wildmatch.c279
-rw-r--r--wildmatch.h18
-rw-r--r--wrap-for-bin.sh5
-rw-r--r--wrapper.c213
-rw-r--r--write_or_die.c39
-rw-r--r--ws.c7
-rw-r--r--wt-status.c986
-rw-r--r--wt-status.h43
-rw-r--r--xdiff-interface.c44
-rw-r--r--xdiff-interface.h4
-rw-r--r--xdiff/xdiff.h17
-rw-r--r--xdiff/xdiffi.c50
-rw-r--r--xdiff/xdiffi.h1
-rw-r--r--xdiff/xemit.c148
-rw-r--r--xdiff/xemit.h2
-rw-r--r--xdiff/xhistogram.c4
-rw-r--r--xdiff/xmerge.c4
-rw-r--r--xdiff/xpatience.c2
-rw-r--r--xdiff/xprepare.c31
-rw-r--r--xdiff/xutils.c162
-rw-r--r--xdiff/xutils.h4
-rw-r--r--zlib.c36
1952 files changed, 298579 insertions, 60349 deletions
diff --git a/.gitignore b/.gitignore
index 8572c8c..a052419 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,11 @@
/GIT-BUILD-OPTIONS
/GIT-CFLAGS
/GIT-LDFLAGS
-/GIT-GUI-VARS
+/GIT-PREFIX
+/GIT-PERL-DEFINES
+/GIT-PYTHON-VARS
+/GIT-SCRIPT-DEFINES
+/GIT-USER-AGENT
/GIT-VERSION-FILE
/bin-wrappers/
/git
@@ -19,6 +23,8 @@
/git-bundle
/git-cat-file
/git-check-attr
+/git-check-ignore
+/git-check-mailmap
/git-check-ref-format
/git-checkout
/git-checkout-index
@@ -26,10 +32,15 @@
/git-cherry-pick
/git-clean
/git-clone
+/git-column
/git-commit
/git-commit-tree
/git-config
/git-count-objects
+/git-credential
+/git-credential-cache
+/git-credential-cache--daemon
+/git-credential-store
/git-cvsexportcommit
/git-cvsimport
/git-cvsserver
@@ -63,9 +74,9 @@
/git-index-pack
/git-init
/git-init-db
+/git-interpret-trailers
/git-instaweb
/git-log
-/git-lost-found
/git-ls-files
/git-ls-remote
/git-ls-tree
@@ -89,12 +100,12 @@
/git-name-rev
/git-mv
/git-notes
+/git-p4
/git-pack-redundant
/git-pack-objects
/git-pack-refs
/git-parse-remote
/git-patch-id
-/git-peek-remote
/git-prune
/git-prune-packed
/git-pull
@@ -116,9 +127,10 @@
/git-remote-fd
/git-remote-ext
/git-remote-testgit
+/git-remote-testpy
+/git-remote-testsvn
/git-repack
/git-replace
-/git-repo-config
/git-request-pull
/git-rerere
/git-reset
@@ -146,7 +158,6 @@
/git-svn
/git-symbolic-ref
/git-tag
-/git-tar-tree
/git-unpack-file
/git-unpack-objects
/git-update-index
@@ -155,37 +166,47 @@
/git-upload-archive
/git-upload-pack
/git-var
+/git-verify-commit
/git-verify-pack
/git-verify-tag
/git-web--browse
/git-whatchanged
/git-write-tree
/git-core-*/?*
-/gitk-git/gitk-wish
/gitweb/GITWEB-BUILD-OPTIONS
/gitweb/gitweb.cgi
/gitweb/static/gitweb.js
/gitweb/static/gitweb.min.*
/test-chmtime
/test-ctype
+/test-config
/test-date
/test-delta
/test-dump-cache-tree
+/test-dump-split-index
+/test-scrap-cache-tree
/test-genrandom
+/test-hashmap
/test-index-version
/test-line-buffer
/test-match-trees
+/test-mergesort
/test-mktemp
-/test-obj-pool
/test-parse-options
/test-path-utils
+/test-prio-queue
+/test-read-cache
+/test-regex
+/test-revision-walking
/test-run-command
/test-sha1
+/test-sha1-array
/test-sigchain
-/test-string-pool
+/test-string-list
/test-subprocess
/test-svn-fe
-/test-treap
+/test-urlmatch-normalization
+/test-wildmatch
/common-cmds.h
*.tar.gz
*.dsc
@@ -210,11 +231,13 @@
/config.mak.autogen
/config.mak.append
/configure
+/unicode
/tags
/TAGS
/cscope*
*.obj
*.lib
+*.res
*.sln
*.suo
*.ncb
diff --git a/.mailmap b/.mailmap
index 19c8726..ece2951 100644
--- a/.mailmap
+++ b/.mailmap
@@ -5,65 +5,250 @@
# same person appearing not to be so.
#
+<nico@fluxnic.net> <nico@cam.org>
+Alejandro R. Sedeño <asedeno@MIT.EDU> <asedeno@mit.edu>
Alex Bennée <kernel-hacker@bennee.com>
+Alex Riesen <raa.lkml@gmail.com> <fork0@t-online.de>
+Alex Riesen <raa.lkml@gmail.com> <raa@limbo.localdomain>
+Alex Riesen <raa.lkml@gmail.com> <raa@steel.home>
+Alex Vandiver <alex@chmrr.net> <alexmv@MIT.EDU>
Alexander Gavrilov <angavrilov@gmail.com>
+Alexander Kuleshov <kuleshovmail@gmail.com>
+Alexey Shumkin <alex.crezoff@gmail.com> <zapped@mail.ru>
+Alexey Shumkin <alex.crezoff@gmail.com> <Alex.Crezoff@gmail.com>
+Anders Kaseorg <andersk@MIT.EDU> <andersk@ksplice.com>
+Anders Kaseorg <andersk@MIT.EDU> <andersk@mit.edu>
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
-Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
+Amos Waterland <apw@debian.org> <apw@rossby.metr.ou.edu>
+Amos Waterland <apw@debian.org> <apw@us.ibm.com>
+Ben Walton <bdwalton@gmail.com> <bwalton@artsci.utoronto.ca>
+Benoit Sigoure <tsunanet@gmail.com> <tsuna@lrde.epita.fr>
+Bernt Hansen <bernt@norang.ca> <bernt@alumni.uwaterloo.ca>
+Brandon Casey <drafnel@gmail.com> <casey@nrlssc.navy.mil>
+brian m. carlson <sandals@crustytoothpaste.ath.cx> Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
+brian m. carlson <sandals@crustytoothpaste.ath.cx> <sandals@crustytoothpaste.net>
+Bryan Larsen <bryan@larsen.st> <bryan.larsen@gmail.com>
+Bryan Larsen <bryan@larsen.st> <bryanlarsen@yahoo.com>
+Cheng Renquan <crquan@gmail.com>
Chris Shoemaker <c.shoemaker@cox.net>
-Dana L. How <danahow@gmail.com>
-Dana L. How <how@deathvalley.cswitch.com>
+Chris Wright <chrisw@sous-sol.org> <chrisw@osdl.org>
+Cord Seele <cowose@gmail.com> <cowose@googlemail.com>
+Christian Stimming <stimming@tuhh.de> <chs@ckiste.goetheallee>
+Csaba Henk <csaba@gluster.com> <csaba@lowlife.hu>
+Dan Johnson <computerdruid@gmail.com>
+Dana L. How <danahow@gmail.com> <how@deathvalley.cswitch.com>
+Dana L. How <danahow@gmail.com> Dana How
Daniel Barkalow <barkalow@iabervon.org>
+Daniel Trstenjak <daniel.trstenjak@gmail.com> <daniel.trstenjak@online.de>
+Daniel Trstenjak <daniel.trstenjak@gmail.com> <trsten@science-computing.de>
+David Brown <git@davidb.org> <davidb@quicinc.com>
David D. Kilzer <ddkilzer@kilzer.net>
David Kågedal <davidk@lysator.liu.se>
+David Reiss <dreiss@facebook.com> <dreiss@dreiss-vmware.(none)>
David S. Miller <davem@davemloft.net>
Deskin Miller <deskinm@umich.edu>
Dirk Süsserott <newsletter@dirk.my1.cc>
-Fredrik Kuivinen <freku045@student.liu.se>
-H. Peter Anvin <hpa@bonde.sc.orionmulti.com>
-H. Peter Anvin <hpa@tazenda.sc.orionmulti.com>
-H. Peter Anvin <hpa@trantor.hos.anvin.org>
+Eric Blake <eblake@redhat.com> <ebb9@byu.net>
+Eric Hanchrow <eric.hanchrow@gmail.com> <offby1@blarg.net>
+Eric S. Raymond <esr@thyrsus.com>
+Erik Faye-Lund <kusmabite@gmail.com> <kusmabite@googlemail.com>
+Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> <eyvind-git@orakel.ntnu.no>
+Florian Achleitner <florian.achleitner.2.6.31@gmail.com> <florian.achleitner2.6.31@gmail.com>
+Franck Bui-Huu <vagabon.xyz@gmail.com> <fbuihuu@gmail.com>
+Frank Lichtenheld <frank@lichtenheld.de> <djpig@debian.org>
+Frank Lichtenheld <frank@lichtenheld.de> <flichtenheld@astaro.com>
+Fredrik Kuivinen <frekui@gmail.com> <freku045@student.liu.se>
+Frédéric Heitzmann <frederic.heitzmann@gmail.com>
+Garry Dolley <gdolley@ucla.edu> <gdolley@arpnetworks.com>
+Greg Price <price@mit.edu> <price@MIT.EDU>
+Greg Price <price@mit.edu> <price@ksplice.com>
+Heiko Voigt <hvoigt@hvoigt.net> <git-list@hvoigt.net>
+H. Merijn Brand <h.m.brand@xs4all.nl> H.Merijn Brand <h.m.brand@xs4all.nl>
+H. Peter Anvin <hpa@zytor.com> <hpa@bonde.sc.orionmulti.com>
+H. Peter Anvin <hpa@zytor.com> <hpa@smyrno.hos.anvin.org>
+H. Peter Anvin <hpa@zytor.com> <hpa@tazenda.sc.orionmulti.com>
+H. Peter Anvin <hpa@zytor.com> <hpa@trantor.hos.anvin.org>
+Han-Wen Nienhuys <hanwen@google.com> Han-Wen Nienhuys <hanwen@xs4all.nl>
Horst H. von Brand <vonbrand@inf.utfsm.cl>
-İsmail Dönmez <ismail@pardus.org.tr>
-Jay Soffian <jaysoffian+git@gmail.com>
+J. Bruce Fields <bfields@citi.umich.edu> <bfields@fieldses.org>
+J. Bruce Fields <bfields@citi.umich.edu> <bfields@pig.linuxdev.us.dell.com>
+J. Bruce Fields <bfields@citi.umich.edu> <bfields@puzzle.fieldses.org>
+Jakub Narębski <jnareb@gmail.com>
+James Y Knight <jknight@itasoftware.com> <foom@fuhm.net>
+# The 2 following authors are probably the same person,
+# but both emails bounce.
+Jason McMullan <jason.mcmullan@timesys.com>
+Jason McMullan <mcmullan@netapp.com>
+Jason Riedy <ejr@eecs.berkeley.edu> <ejr@EECS.Berkeley.EDU>
+Jason Riedy <ejr@eecs.berkeley.edu> <ejr@cs.berkeley.edu>
+Jay Soffian <jaysoffian@gmail.com> <jaysoffian+git@gmail.com>
+Jeff King <peff@peff.net> <peff@github.com>
+Jeff Muizelaar <jmuizelaar@mozilla.com> <jeff@infidigm.net>
+Jens Axboe <axboe@kernel.dk> <axboe@suse.de>
+Jens Axboe <axboe@kernel.dk> <jens.axboe@oracle.com>
+Jens Lindström <jl@opera.com> Jens Lindstrom <jl@opera.com>
+Jim Meyering <jim@meyering.net> <meyering@redhat.com>
Joachim Berdal Haga <cjhaga@fys.uio.no>
-Jon Loeliger <jdl@freescale.com>
-Jon Seymour <jon@blackcubes.dyndns.org>
-Jonathan Nieder <jrnieder@uchicago.edu>
-Junio C Hamano <junio@twinsun.com>
-Karl Hasselström <kha@treskal.com>
+Johannes Schindelin <Johannes.Schindelin@gmx.de> <johannes.schindelin@gmx.de>
+Johannes Sixt <j6t@kdbg.org> <J.Sixt@eudaptics.com>
+Johannes Sixt <j6t@kdbg.org> <j.sixt@viscovery.net>
+Johannes Sixt <j6t@kdbg.org> <johannes.sixt@telecom.at>
+John 'Warthog9' Hawley <warthog9@kernel.org> <warthog9@eaglescrag.net>
+Jon Loeliger <jdl@jdl.com> <jdl@freescale.com>
+Jon Loeliger <jdl@jdl.com> <jdl@freescale.org>
+Jon Seymour <jon.seymour@gmail.com> <jon@blackcubes.dyndns.org>
+Jonathan Nieder <jrnieder@gmail.com> <jrnieder@uchicago.edu>
+Jonathan del Strother <jon.delStrother@bestbefore.tv> <maillist@steelskies.com>
+Josh Triplett <josh@joshtriplett.org> <josh@freedesktop.org>
+Josh Triplett <josh@joshtriplett.org> <josht@us.ibm.com>
+Julian Phillips <julian@quantumfyre.co.uk> <jp3@quantumfyre.co.uk>
+Junio C Hamano <gitster@pobox.com> <gitster@pobox.com>
+Junio C Hamano <gitster@pobox.com> <junio@hera.kernel.org>
+Junio C Hamano <gitster@pobox.com> <junio@kernel.org>
+Junio C Hamano <gitster@pobox.com> <junio@pobox.com>
+Junio C Hamano <gitster@pobox.com> <junio@twinsun.com>
+Junio C Hamano <gitster@pobox.com> <junkio@cox.net>
+Junio C Hamano <gitster@pobox.com> <junkio@twinsun.com>
+Karl Wiberg <kha@treskal.com> Karl Hasselström
+Karl Wiberg <kha@treskal.com> <kha@yoghurt.hemma.treskal.com>
+Karsten Blees <blees@dcon.de> <karsten.blees@dcon.de>
+Karsten Blees <blees@dcon.de> <karsten.blees@gmail.com>
+Kay Sievers <kay.sievers@vrfy.org> <kay.sievers@suse.de>
+Kay Sievers <kay.sievers@vrfy.org> <kay@mam.(none)>
+Kazuki Saitoh <ksaitoh560@gmail.com> kazuki saitoh <ksaitoh560@gmail.com>
+Keith Cascio <keith@CS.UCLA.EDU> <keith@cs.ucla.edu>
Kent Engstrom <kent@lysator.liu.se>
+Kevin Leung <kevinlsk@gmail.com>
+Kirill Smelkov <kirr@navytux.spb.ru> <kirr@landau.phys.spbu.ru>
+Kirill Smelkov <kirr@navytux.spb.ru> <kirr@mns.spb.ru>
+Knut Franke <Knut.Franke@gmx.de> <k.franke@science-computing.de>
Lars Doelle <lars.doelle@on-line ! de>
Lars Doelle <lars.doelle@on-line.de>
+Lars Noschinski <lars@public.noschinski.de> <lars.noschinski@rwth-aachen.de>
Li Hong <leehong@pku.edu.cn>
-Lukas Sandström <lukass@etek.chalmers.se>
-Martin Langhoff <martin@laptop.org>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@evo.osdl.org>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@g5.osdl.org>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@osdl.org>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@ppc970.osdl.org.(none)>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@ppc970.osdl.org>
+Linus Torvalds <torvalds@linux-foundation.org> <torvalds@woody.linux-foundation.org>
+Lukas Sandström <luksan@gmail.com> <lukass@etek.chalmers.se>
+Marc Khouzam <marc.khouzam@ericsson.com> <marc.khouzam@gmail.com>
+Marc-André Lureau <marcandre.lureau@gmail.com>
+Marco Costalba <mcostalba@gmail.com> <mcostalba@yahoo.it>
+Mark Levedahl <mdl123@verizon.net> <mlevedahl@gmail.com>
+Mark Rada <marada@uwaterloo.ca>
+Martin Langhoff <martin@laptop.org> <martin@catalyst.net.nz>
+Martin von Zweigbergk <martinvonz@gmail.com> <martin.von.zweigbergk@gmail.com>
+Matt Draisey <matt@draisey.ca> <mattdraisey@sympatico.ca>
+Matt Kraai <kraai@ftbfs.org> <matt.kraai@amo.abbott.com>
+Matt McCutchen <matt@mattmccutchen.net> <hashproduct@gmail.com>
+Matthias Kestenholz <matthias@spinlock.ch> <mk@spinlock.ch>
+Matthias Urlichs <matthias@urlichs.de> <smurf@kiste.(none)>
+Matthias Urlichs <matthias@urlichs.de> <smurf@smurf.noris.de>
Michael Coleman <tutufan@gmail.com>
Michael J Gruber <git@drmicha.warpmail.net> <michaeljgruber+gmane@fastmail.fm>
+Michael S. Tsirkin <mst@kernel.org> <mst@redhat.com>
+Michael S. Tsirkin <mst@kernel.org> <mst@mellanox.co.il>
+Michael S. Tsirkin <mst@kernel.org> <mst@dev.mellanox.co.il>
Michael W. Olson <mwolson@gnu.org>
+Michael Witten <mfwitten@gmail.com> <mfwitten@MIT.EDU>
+Michael Witten <mfwitten@gmail.com> <mfwitten@mit.edu>
+Michal Rokos <michal.rokos@nextsoft.cz> <rokos@nextsoft.cz>
Michele Ballabio <barra_cuda@katamail.com>
-Nanako Shiraishi <nanako3@bluebottle.com>
+Miklos Vajna <vmiklos@frugalware.org> <vmiklos@suse.cz>
+Namhyung Kim <namhyung@gmail.com> <namhyung.kim@lge.com>
+Namhyung Kim <namhyung@gmail.com> <namhyung@kernel.org>
+Nanako Shiraishi <nanako3@lavabit.com> <nanako3@bluebottle.com>
Nanako Shiraishi <nanako3@lavabit.com>
+Nelson Elhage <nelhage@mit.edu> <nelhage@MIT.EDU>
+Nelson Elhage <nelhage@mit.edu> <nelhage@ksplice.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-<nico@fluxnic.net> <nico@cam.org>
+Nick Stokoe <nick@noodlefactory.co.uk> Nick Woolley <nick@noodlefactory.co.uk>
+Nick Stokoe <nick@noodlefactory.co.uk> Nick Woolley <nickwoolley@yahoo.co.uk>
+Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nicolas.morey@free.fr>
+Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nmorey@kalray.eu>
+Nicolas Sebrecht <nicolas.s.dev@gmx.fr> <ni.s@laposte.net>
+Paolo Bonzini <bonzini@gnu.org> <paolo.bonzini@lu.unisi.ch>
+Pascal Obry <pascal@obry.net> <pascal.obry@gmail.com>
+Pascal Obry <pascal@obry.net> <pascal.obry@wanadoo.fr>
+Pat Notz <patnotz@gmail.com> <pknotz@sandia.gov>
+Paul Mackerras <paulus@samba.org> <paulus@dorrigo.(none)>
+Paul Mackerras <paulus@samba.org> <paulus@pogo.(none)>
+Peter Baumann <waste.manager@gmx.de> <Peter.B.Baumann@stud.informatik.uni-erlangen.de>
+Peter Baumann <waste.manager@gmx.de> <siprbaum@stud.informatik.uni-erlangen.de>
+Peter Krefting <peter@softwolves.pp.se> <peter@softwolves.pp.se>
+Peter Krefting <peter@softwolves.pp.se> <peter@svarten.intern.softwolves.pp.se>
+Petr Baudis <pasky@ucw.cz> <pasky@suse.cz>
+Petr Baudis <pasky@ucw.cz> <xpasky@machine>
+Phil Hord <hordp@cisco.com> <phil.hord@gmail.com>
+Philip Jägenstedt <philip@foolip.org> <philip.jagenstedt@gmail.com>
+Philipp A. Hartmann <pah@qo.cx> <ph@sorgh.de>
Philippe Bruhat <book@cpan.org>
+Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk>
-René Scharfe <rene.scharfe@lsrfire.ath.cx>
+René Scharfe <l.s.r@web.de> <rene.scharfe@lsrfire.ath.cx>
Robert Fitzsimons <robfitz@273k.net>
-Sam Vilain <sam@vilain.net>
-Santi Béjar <sbejar@gmail.com>
+Robert Shearman <robertshearman@gmail.com> <rob@codeweavers.com>
+Robert Zeh <robert.a.zeh@gmail.com>
+Robin Rosenberg <robin.rosenberg@dewire.com> <robin.rosenberg.lists@dewire.com>
+Rutger Nijlunsing <rutger.nijlunsing@gmail.com> <rutger@nospam.com>
+Rutger Nijlunsing <rutger.nijlunsing@gmail.com> <git@tux.tmfweb.nl>
+Ryan Anderson <ryan@michonline.com> <rda@google.com>
+Salikh Zakirov <salikh.zakirov@gmail.com> <Salikh.Zakirov@Intel.com>
+Sam Vilain <sam@vilain.net> <sam.vilain@catalyst.net.nz>
+Sam Vilain <sam@vilain.net> sam@vilain.net
+Santi Béjar <santi@agolina.net> <sbejar@gmail.com>
Sean Estabrooks <seanlkml@sympatico.ca>
+Sebastian Schuberth <sschuberth@gmail.com> <sschuberth@visageimaging.com>
+Seth Falcon <seth@userprimary.net> <sfalcon@fhcrc.org>
Shawn O. Pearce <spearce@spearce.org>
-Steven Grimm <koreth@midwinter.com>
+Simon Hausmann <hausmann@kde.org> <simon@lst.de>
+Simon Hausmann <hausmann@kde.org> <shausman@trolltech.com>
+Stefan Beller <stefanbeller@gmail.com> <stefanbeller@googlemail.com>
+Stefan Beller <stefanbeller@gmail.com> <sbeller@google.com>
+Stefan Naewe <stefan.naewe@gmail.com> <stefan.naewe@atlas-elektronik.com>
+Stefan Naewe <stefan.naewe@gmail.com> <stefan.naewe@googlemail.com>
+Stefan Sperling <stsp@elego.de> <stsp@stsp.name>
+Štěpán Němec <stepnem@gmail.com> <stepan.nemec@gmail.com>
+Stephen Boyd <bebarino@gmail.com> <sboyd@codeaurora.org>
+Steven Drake <sdrake@xnet.co.nz> <sdrake@ihug.co.nz>
+Steven Grimm <koreth@midwinter.com> <sgrimm@sgrimm-mbp.local>
+Steven Grimm <koreth@midwinter.com> koreth@midwinter.com
+Steven Walter <stevenrwalter@gmail.com> <swalter@lexmark.com>
+Steven Walter <stevenrwalter@gmail.com> <swalter@lpdev.prtdev.lexmark.com>
+Sven Verdoolaege <skimo@kotnet.org> <Sven.Verdoolaege@cs.kuleuven.ac.be>
+Sven Verdoolaege <skimo@kotnet.org> <skimo@liacs.nl>
+Tay Ray Chuan <rctay89@gmail.com>
+Ted Percival <ted@midg3t.net> <ted.percival@quest.com>
Theodore Ts'o <tytso@mit.edu>
+Thomas Ackermann <th.acker@arcor.de> <th.acker66@arcor.de>
+Thomas Rast <tr@thomasrast.ch> <trast@student.ethz.ch>
+Thomas Rast <tr@thomasrast.ch> <trast@inf.ethz.ch>
+Thomas Rast <tr@thomasrast.ch> <trast@google.com>
+Timo Hirvonen <tihirvon@gmail.com> <tihirvon@ee.oulu.fi>
+Toby Allsopp <Toby.Allsopp@navman.co.nz> <toby.allsopp@navman.co.nz>
+Tom Grennan <tmgrennan@gmail.com> <tgrennan@redback.com>
+Tommi Virtanen <tv@debian.org> <tv@eagain.net>
+Tommi Virtanen <tv@debian.org> <tv@inoi.fi>
+Tommy Thorn <tommy-git@thorn.ws> <tt1729@yahoo.com>
Tony Luck <tony.luck@intel.com>
-Uwe Kleine-König <Uwe_Zeisberger@digi.com>
-Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
-Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
-Uwe Kleine-König <uzeisberger@io.fsforth.de>
-Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de>
-Ville Skyttä <scop@xemacs.org>
+Tor Arne Vestbø <torarnv@gmail.com> <tavestbo@trolltech.com>
+Trần Ngọc Quân <vnwildman@gmail.com> Tran Ngoc Quan <vnwildman@gmail.com>
+Trent Piepho <tpiepho@gmail.com> <tpiepho@freescale.com>
+Trent Piepho <tpiepho@gmail.com> <xyzzy@speakeasy.org>
+Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <Uwe.Kleine-Koenig@digi.com>
+Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <ukleinek@informatik.uni-freiburg.de>
+Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <uzeisberger@io.fsforth.de>
+Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <zeisberg@informatik.uni-freiburg.de>
+Ville Skyttä <ville.skytta@iki.fi> <scop@xemacs.org>
Vitaly "_Vi" Shukela <public_vi@tut.by>
+W. Trevor King <wking@tremily.us> <wking@drexel.edu>
William Pursell <bill.pursell@gmail.com>
+YONETANI Tomokazu <y0n3t4n1@gmail.com> <qhwt+git@les.ath.cx>
+YONETANI Tomokazu <y0n3t4n1@gmail.com> <y0netan1@dragonflybsd.org>
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+# the two anonymous contributors are different persons:
anonymous <linux@horizon.com>
anonymous <linux@horizon.net>
+İsmail Dönmez <ismail@pardus.org.tr>
diff --git a/Documentation/.gitignore b/Documentation/.gitignore
index d62aebd..2c8b2d6 100644
--- a/Documentation/.gitignore
+++ b/Documentation/.gitignore
@@ -9,4 +9,5 @@ gitman.info
howto-index.txt
doc.dep
cmds-*.txt
+mergetools-*.txt
manpage-base-url.xsl
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index fe1c1e5..2dd35bd 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -1,5 +1,5 @@
Like other projects, we also have some guidelines to keep to the
-code. For git in general, three rough rules are:
+code. For Git in general, a few rough rules are:
- Most importantly, we never say "It's in POSIX; we'll happily
ignore your needs should your system not conform to it."
@@ -18,11 +18,20 @@ code. For git in general, three rough rules are:
judgement call, the decision based more on real world
constraints people face than what the paper standard says.
+ - Fixing style violations while working on a real change as a
+ preparatory clean-up step is good, but otherwise avoid useless code
+ churn for the sake of conforming to the style.
+
+ "Once it _is_ in the tree, it's not really worth the patch noise to
+ go and fix it up."
+ Cf. http://article.gmane.org/gmane.linux.kernel/943020
+
+Make your code readable and sensible, and don't try to be clever.
As for more concrete guidelines, just imitate the existing code
(this is a good guideline, no matter which project you are
contributing to). It is always preferable to match the _local_
-convention. New code added to git suite is expected to match
+convention. New code added to Git suite is expected to match
the overall style of existing code. Modifications to existing
code is expected to match the style the surrounding code already
uses (even if it doesn't match the overall style of existing code).
@@ -33,12 +42,42 @@ For shell scripts specifically (not exhaustive):
- We use tabs for indentation.
- - Case arms are indented at the same depth as case and esac lines.
+ - Case arms are indented at the same depth as case and esac lines,
+ like this:
+
+ case "$variable" in
+ pattern1)
+ do this
+ ;;
+ pattern2)
+ do that
+ ;;
+ esac
+
+ - Redirection operators should be written with space before, but no
+ space after them. In other words, write 'echo test >"$file"'
+ instead of 'echo test> $file' or 'echo test > $file'. Note that
+ even though it is not required by POSIX to double-quote the
+ redirection target in a variable (as shown above), our code does so
+ because some versions of bash issue a warning without the quotes.
+
+ (incorrect)
+ cat hello > world < universe
+ echo hello >$world
+
+ (correct)
+ cat hello >world <universe
+ echo hello >"$world"
- We prefer $( ... ) for command substitution; unlike ``, it
properly nests. It should have been the way Bourne spelled
it from day one, but unfortunately isn't.
+ - If you want to find out if a command is available on the user's
+ $PATH, you should use 'type <command>', instead of 'which <command>'.
+ The output of 'which' is not machine parseable and its exit code
+ is not reliable across platforms.
+
- We use POSIX compliant parameter substitutions and avoid bashisms;
namely:
@@ -64,23 +103,67 @@ For shell scripts specifically (not exhaustive):
- We do not use Process Substitution <(list) or >(list).
+ - Do not write control structures on a single line with semicolon.
+ "then" should be on the next line for if statements, and "do"
+ should be on the next line for "while" and "for".
+
+ (incorrect)
+ if test -f hello; then
+ do this
+ fi
+
+ (correct)
+ if test -f hello
+ then
+ do this
+ fi
+
- We prefer "test" over "[ ... ]".
- We do not write the noiseword "function" in front of shell
functions.
+ - We prefer a space between the function name and the parentheses,
+ and no space inside the parentheses. The opening "{" should also
+ be on the same line.
+
+ (incorrect)
+ my_function(){
+ ...
+
+ (correct)
+ my_function () {
+ ...
+
- As to use of grep, stick to a subset of BRE (namely, no \{m,n\},
- [::], [==], nor [..]) for portability.
+ [::], [==], or [..]) for portability.
- We do not use \{m,n\};
- We do not use -E;
- - We do not use ? nor + (which are \{0,1\} and \{1,\}
+ - We do not use ? or + (which are \{0,1\} and \{1,\}
respectively in BRE) but that goes without saying as these
are ERE elements not BRE (note that \? and \+ are not even part
of BRE -- making them accessible from BRE is a GNU extension).
+ - Use Git's gettext wrappers in git-sh-i18n to make the user
+ interface translatable. See "Marking strings for translation" in
+ po/README.
+
+ - We do not write our "test" command with "-a" and "-o" and use "&&"
+ or "||" to concatenate multiple "test" commands instead, because
+ the use of "-a/-o" is often error-prone. E.g.
+
+ test -n "$x" -a "$a" = "$b"
+
+ is buggy and breaks when $x is "=", but
+
+ test -n "$x" && test "$a" = "$b"
+
+ does not have such a problem.
+
+
For C programs:
- We use tabs to indent, and interpret tabs as taking up to
@@ -88,11 +171,30 @@ For C programs:
- We try to keep to at most 80 characters per line.
+ - We try to support a wide range of C compilers to compile Git with,
+ including old ones. That means that you should not use C99
+ initializers, even if a lot of compilers grok it.
+
+ - Variables have to be declared at the beginning of the block.
+
+ - NULL pointers shall be written as NULL, not as 0.
+
- When declaring pointers, the star sides with the variable
name, i.e. "char *string", not "char* string" or
"char * string". This makes it easier to understand code
like "char *string, c;".
+ - Use whitespace around operators and keywords, but not inside
+ parentheses and not around functions. So:
+
+ while (condition)
+ func(bar + 1);
+
+ and not:
+
+ while( condition )
+ func (bar+1);
+
- We avoid using braces unnecessarily. I.e.
if (bla) {
@@ -105,16 +207,116 @@ For C programs:
of "else if" statements, it can make sense to add braces to
single line blocks.
- - We try to avoid assignments inside if().
+ - We try to avoid assignments in the condition of an "if" statement.
- Try to make your code understandable. You may put comments
in, but comments invariably tend to stale out when the code
they were describing changes. Often splitting a function
into two makes the intention of the code much clearer.
+ - Multi-line comments include their delimiters on separate lines from
+ the text. E.g.
+
+ /*
+ * A very long
+ * multi-line comment.
+ */
+
+ Note however that a comment that explains a translatable string to
+ translators uses a convention of starting with a magic token
+ "TRANSLATORS: " immediately after the opening delimiter, even when
+ it spans multiple lines. We do not add an asterisk at the beginning
+ of each line, either. E.g.
+
+ /* TRANSLATORS: here is a comment that explains the string
+ to be translated, that follows immediately after it */
+ _("Here is a translatable string explained by the above.");
+
- Double negation is often harder to understand than no negation
at all.
+ - There are two schools of thought when it comes to comparison,
+ especially inside a loop. Some people prefer to have the less stable
+ value on the left hand side and the more stable value on the right hand
+ side, e.g. if you have a loop that counts variable i down to the
+ lower bound,
+
+ while (i > lower_bound) {
+ do something;
+ i--;
+ }
+
+ Other people prefer to have the textual order of values match the
+ actual order of values in their comparison, so that they can
+ mentally draw a number line from left to right and place these
+ values in order, i.e.
+
+ while (lower_bound < i) {
+ do something;
+ i--;
+ }
+
+ Both are valid, and we use both. However, the more "stable" the
+ stable side becomes, the more we tend to prefer the former
+ (comparison with a constant, "i > 0", is an extreme example).
+ Just do not mix styles in the same part of the code and mimic
+ existing styles in the neighbourhood.
+
+ - There are two schools of thought when it comes to splitting a long
+ logical line into multiple lines. Some people push the second and
+ subsequent lines far enough to the right with tabs and align them:
+
+ if (the_beginning_of_a_very_long_expression_that_has_to ||
+ span_more_than_a_single_line_of ||
+ the_source_text) {
+ ...
+
+ while other people prefer to align the second and the subsequent
+ lines with the column immediately inside the opening parenthesis,
+ with tabs and spaces, following our "tabstop is always a multiple
+ of 8" convention:
+
+ if (the_beginning_of_a_very_long_expression_that_has_to ||
+ span_more_than_a_single_line_of ||
+ the_source_text) {
+ ...
+
+ Both are valid, and we use both. Again, just do not mix styles in
+ the same part of the code and mimic existing styles in the
+ neighbourhood.
+
+ - When splitting a long logical line, some people change line before
+ a binary operator, so that the result looks like a parse tree when
+ you turn your head 90-degrees counterclockwise:
+
+ if (the_beginning_of_a_very_long_expression_that_has_to
+ || span_more_than_a_single_line_of_the_source_text) {
+
+ while other people prefer to leave the operator at the end of the
+ line:
+
+ if (the_beginning_of_a_very_long_expression_that_has_to ||
+ span_more_than_a_single_line_of_the_source_text) {
+
+ Both are valid, but we tend to use the latter more, unless the
+ expression gets fairly complex, in which case the former tends to
+ be easier to read. Again, just do not mix styles in the same part
+ of the code and mimic existing styles in the neighbourhood.
+
+ - When splitting a long logical line, with everything else being
+ equal, it is preferable to split after the operator at higher
+ level in the parse tree. That is, this is more preferable:
+
+ if (a_very_long_variable * that_is_used_in +
+ a_very_long_expression) {
+ ...
+
+ than
+
+ if (a_very_long_variable *
+ that_is_used_in + a_very_long_expression) {
+ ...
+
- Some clever tricks, like using the !! operator with arithmetic
constructs, can be extremely confusing to others. Avoid them,
unless there is a compelling reason to use them.
@@ -132,25 +334,130 @@ For C programs:
- If you are planning a new command, consider writing it in shell
or perl first, so that changes in semantics can be easily
- changed and discussed. Many git commands started out like
+ changed and discussed. Many Git commands started out like
that, and a few are still scripts.
- - Avoid introducing a new dependency into git. This means you
+ - Avoid introducing a new dependency into Git. This means you
usually should stay away from scripting languages not already
- used in the git core command set (unless your command is clearly
+ used in the Git core command set (unless your command is clearly
separate from it, such as an importer to convert random-scm-X
- repositories to git).
+ repositories to Git).
- When we pass <string, length> pair to functions, we should try to
pass them in that order.
+ - Use Git's gettext wrappers to make the user interface
+ translatable. See "Marking strings for translation" in po/README.
+
+For Perl programs:
+
+ - Most of the C guidelines above apply.
+
+ - We try to support Perl 5.8 and later ("use Perl 5.008").
+
+ - use strict and use warnings are strongly preferred.
+
+ - Don't overuse statement modifiers unless using them makes the
+ result easier to follow.
+
+ ... do something ...
+ do_this() unless (condition);
+ ... do something else ...
+
+ is more readable than:
+
+ ... do something ...
+ unless (condition) {
+ do_this();
+ }
+ ... do something else ...
+
+ *only* when the condition is so rare that do_this() will be almost
+ always called.
+
+ - We try to avoid assignments inside "if ()" conditions.
+
+ - Learn and use Git.pm if you need that functionality.
+
+ - For Emacs, it's useful to put the following in
+ GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
+
+ ;; note the first part is useful for C editing, too
+ ((nil . ((indent-tabs-mode . t)
+ (tab-width . 8)
+ (fill-column . 80)))
+ (cperl-mode . ((cperl-indent-level . 8)
+ (cperl-extra-newline-before-brace . nil)
+ (cperl-merge-trailing-else . t))))
+
+For Python scripts:
+
+ - We follow PEP-8 (http://www.python.org/dev/peps/pep-0008/).
+
+ - As a minimum, we aim to be compatible with Python 2.6 and 2.7.
+
+ - Where required libraries do not restrict us to Python 2, we try to
+ also be compatible with Python 3.1 and later.
+
+ - When you must differentiate between Unicode literals and byte string
+ literals, it is OK to use the 'b' prefix. Even though the Python
+ documentation for version 2.6 does not mention this prefix, it has
+ been supported since version 2.6.0.
+
+Error Messages
+
+ - Do not end error messages with a full stop.
+
+ - Do not capitalize ("unable to open %s", not "Unable to open %s")
+
+ - Say what the error is first ("cannot open %s", not "%s: cannot open")
+
+
+Externally Visible Names
+
+ - For configuration variable names, follow the existing convention:
+
+ . The section name indicates the affected subsystem.
+
+ . The subsection name, if any, indicates which of an unbounded set
+ of things to set the value for.
+
+ . The variable name describes the effect of tweaking this knob.
+
+ The section and variable names that consist of multiple words are
+ formed by concatenating the words without punctuations (e.g. `-`),
+ and are broken using bumpyCaps in documentation as a hint to the
+ reader.
+
+ When choosing the variable namespace, do not use variable name for
+ specifying possibly unbounded set of things, most notably anything
+ an end user can freely come up with (e.g. branch names). Instead,
+ use subsection names or variable values, like the existing variable
+ branch.<name>.description does.
+
+
Writing Documentation:
+ Most (if not all) of the documentation pages are written in the
+ AsciiDoc format in *.txt files (e.g. Documentation/git.txt), and
+ processed into HTML and manpages (e.g. git.html and git.1 in the
+ same directory).
+
+ The documentation liberally mixes US and UK English (en_US/UK)
+ norms for spelling and grammar, which is somewhat unfortunate.
+ In an ideal world, it would have been better if it consistently
+ used only one and not the other, and we would have picked en_US
+ (if you wish to correct the English of some of the existing
+ documentation, please see the documentation-related advice in the
+ Documentation/SubmittingPatches file).
+
Every user-visible change should be reflected in the documentation.
The same general rule as for code applies -- imitate the existing
- conventions. A few commented examples follow to provide reference
- when writing or modifying command usage strings and synopsis sections
- in the manual pages:
+ conventions.
+
+ A few commented examples follow to provide reference when writing or
+ modifying command usage strings and synopsis sections in the manual
+ pages:
Placeholders are spelled in lowercase and enclosed in angle brackets:
<file>
@@ -195,3 +502,34 @@ Writing Documentation:
valid usage. "*" has its own pair of brackets, because it can
(optionally) be specified only when one or more of the letters is
also provided.
+
+ A note on notation:
+ Use 'git' (all lowercase) when talking about commands i.e. something
+ the user would type into a shell and use 'Git' (uppercase first letter)
+ when talking about the version control system and its properties.
+
+ A few commented examples follow to provide reference when writing or
+ modifying paragraphs or option/command explanations that contain options
+ or commands:
+
+ Literal examples (e.g. use of command-line options, command names, and
+ configuration variables) are typeset in monospace, and if you can use
+ `backticks around word phrases`, do so.
+ `--pretty=oneline`
+ `git rev-list`
+ `remote.pushdefault`
+
+ Word phrases enclosed in `backtick characters` are rendered literally
+ and will not be further expanded. The use of `backticks` to achieve the
+ previous rule means that literal examples should not use AsciiDoc
+ escapes.
+ Correct:
+ `--pretty=oneline`
+ Incorrect:
+ `\--pretty=oneline`
+
+ If some place in the documentation needs to typeset a command usage
+ example with inline substitutions, it is fine to use +monospaced and
+ inline substituted text+ instead of `monospaced literal text`, and with
+ the former, the part that should not get substituted must be
+ quoted/escaped.
diff --git a/Documentation/Makefile b/Documentation/Makefile
index c631da8..3e39e28 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,59 +1,124 @@
-MAN1_TXT= \
- $(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
- $(wildcard git-*.txt)) \
- gitk.txt git.txt
-MAN5_TXT=gitattributes.txt gitignore.txt gitmodules.txt githooks.txt \
- gitrepository-layout.txt gitweb.conf.txt
-MAN7_TXT=gitcli.txt gittutorial.txt gittutorial-2.txt \
- gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \
- gitdiffcore.txt gitnamespaces.txt gitrevisions.txt gitworkflows.txt
+# Guard against environment variables
+MAN1_TXT =
+MAN5_TXT =
+MAN7_TXT =
+TECH_DOCS =
+ARTICLES =
+SP_ARTICLES =
+OBSOLETE_HTML =
+
+MAN1_TXT += $(filter-out \
+ $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
+ $(wildcard git-*.txt))
+MAN1_TXT += git.txt
+MAN1_TXT += gitk.txt
+MAN1_TXT += gitremote-helpers.txt
+MAN1_TXT += gitweb.txt
+
+MAN5_TXT += gitattributes.txt
+MAN5_TXT += githooks.txt
+MAN5_TXT += gitignore.txt
+MAN5_TXT += gitmodules.txt
+MAN5_TXT += gitrepository-layout.txt
+MAN5_TXT += gitweb.conf.txt
+
+MAN7_TXT += gitcli.txt
+MAN7_TXT += gitcore-tutorial.txt
+MAN7_TXT += gitcredentials.txt
+MAN7_TXT += gitcvs-migration.txt
+MAN7_TXT += gitdiffcore.txt
+MAN7_TXT += giteveryday.txt
+MAN7_TXT += gitglossary.txt
+MAN7_TXT += gitnamespaces.txt
+MAN7_TXT += gitrevisions.txt
+MAN7_TXT += gittutorial-2.txt
+MAN7_TXT += gittutorial.txt
+MAN7_TXT += gitworkflows.txt
MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
-MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
-MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
+MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
+MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
-DOC_HTML=$(MAN_HTML)
+OBSOLETE_HTML += everyday.html
+OBSOLETE_HTML += git-remote-helpers.html
+DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
-ARTICLES = howto-index
-ARTICLES += everyday
+ARTICLES += howto-index
ARTICLES += git-tools
ARTICLES += git-bisect-lk2009
# with their own formatting rules.
-SP_ARTICLES = howto/revert-branch-rebase howto/using-merge-subtree user-manual
+SP_ARTICLES += user-manual
+SP_ARTICLES += howto/new-command
+SP_ARTICLES += howto/revert-branch-rebase
+SP_ARTICLES += howto/using-merge-subtree
+SP_ARTICLES += howto/using-signed-tag-in-pull-request
+SP_ARTICLES += howto/use-git-daemon
+SP_ARTICLES += howto/update-hook-example
+SP_ARTICLES += howto/setup-git-server-over-http
+SP_ARTICLES += howto/separating-topic-branches
+SP_ARTICLES += howto/revert-a-faulty-merge
+SP_ARTICLES += howto/recover-corrupted-blob-object
+SP_ARTICLES += howto/recover-corrupted-object-harder
+SP_ARTICLES += howto/rebuild-from-update-hook
+SP_ARTICLES += howto/rebase-from-internal-branch
+SP_ARTICLES += howto/keep-canonical-history-correct
+SP_ARTICLES += howto/maintain-git
API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
SP_ARTICLES += $(API_DOCS)
+
+TECH_DOCS += technical/http-protocol
+TECH_DOCS += technical/index-format
+TECH_DOCS += technical/pack-format
+TECH_DOCS += technical/pack-heuristics
+TECH_DOCS += technical/pack-protocol
+TECH_DOCS += technical/protocol-capabilities
+TECH_DOCS += technical/protocol-common
+TECH_DOCS += technical/racy-git
+TECH_DOCS += technical/send-pack-pipeline
+TECH_DOCS += technical/shallow
+TECH_DOCS += technical/trivial-merge
+SP_ARTICLES += $(TECH_DOCS)
SP_ARTICLES += technical/api-index
DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
-DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
-DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
-DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
-
-prefix?=$(HOME)
-bindir?=$(prefix)/bin
-htmldir?=$(prefix)/share/doc/git-doc
-pdfdir?=$(prefix)/share/doc/git-doc
-mandir?=$(prefix)/share/man
-man1dir=$(mandir)/man1
-man5dir=$(mandir)/man5
-man7dir=$(mandir)/man7
-# DESTDIR=
-
-ASCIIDOC=asciidoc
+DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
+DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))
+DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))
+
+prefix ?= $(HOME)
+bindir ?= $(prefix)/bin
+htmldir ?= $(prefix)/share/doc/git-doc
+infodir ?= $(prefix)/share/info
+pdfdir ?= $(prefix)/share/doc/git-doc
+mandir ?= $(prefix)/share/man
+man1dir = $(mandir)/man1
+man5dir = $(mandir)/man5
+man7dir = $(mandir)/man7
+# DESTDIR =
+
+ASCIIDOC = asciidoc
ASCIIDOC_EXTRA =
+ASCIIDOC_HTML = xhtml11
+ASCIIDOC_DOCBOOK = docbook
+ASCIIDOC_CONF = -f asciidoc.conf
+ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
+ -agit_version=$(GIT_VERSION)
+TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
+TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
MANPAGE_XSL = manpage-normal.xsl
+XMLTO = xmlto
XMLTO_EXTRA =
-INSTALL?=install
+INSTALL ?= install
RM ?= rm -f
-DOC_REF = origin/man
-HTML_REF = origin/html
-
-infodir?=$(prefix)/share/info
-MAKEINFO=makeinfo
-INSTALL_INFO=install-info
-DOCBOOK2X_TEXI=docbook2x-texi
-DBLATEX=dblatex
+MAN_REPO = ../../git-manpages
+HTML_REPO = ../../git-htmldocs
+
+MAKEINFO = makeinfo
+INSTALL_INFO = install-info
+DOCBOOK2X_TEXI = docbook2x-texi
+DBLATEX = dblatex
+ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
ifndef PERL_PATH
PERL_PATH = /usr/bin/perl
endif
@@ -62,12 +127,6 @@ endif
-include ../config.mak
#
-# For asciidoc ...
-# -7.1.2, set ASCIIDOC7
-# 8.0-, no extra settings are needed
-#
-
-#
# For docbook-xsl ...
# -1.68.1, no extra settings are needed?
# 1.69.0, set ASCIIDOC_ROFF?
@@ -77,9 +136,6 @@ endif
# 1.73.0-, no extra settings are needed
#
-ifndef ASCIIDOC7
-ASCIIDOC_EXTRA += -a asciidoc7compatible -a no-inline-literal
-endif
ifdef DOCBOOK_XSL_172
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
MANPAGE_XSL = manpage-1.72.xsl
@@ -120,14 +176,15 @@ SHELL_PATH ?= $(SHELL)
# Shell quote;
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
-#
-# Please note that there is a minor bug in asciidoc.
-# The version after 6.0.3 _will_ include the patch found here:
-# http://marc.theaimsgroup.com/?l=git&m=111558757202243&w=2
-#
-# Until that version is released you may have to apply the patch
-# yourself - yes, all 6 characters of it!
-#
+ifdef DEFAULT_PAGER
+DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER))
+ASCIIDOC_EXTRA += -a 'git-default-pager=$(DEFAULT_PAGER_SQ)'
+endif
+
+ifdef DEFAULT_EDITOR
+DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
+ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)'
+endif
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
QUIET_SUBDIR1 =
@@ -159,8 +216,6 @@ all: html man
html: $(DOC_HTML)
-$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
-
man: man1 man5 man7
man1: $(DOC_MAN1)
man5: $(DOC_MAN5)
@@ -205,7 +260,11 @@ install-html: html
#
# Determine "include::" file references in asciidoc files.
#
-doc.dep : $(wildcard *.txt) build-docdep.perl
+docdep_prereqs = \
+ mergetools-list.made $(mergetools_txt) \
+ cmd-list.made $(cmds_txt)
+
+doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl
$(QUIET_GEN)$(RM) $@+ $@ && \
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
mv $@+ $@
@@ -229,19 +288,37 @@ cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
date >$@
+mergetools_txt = mergetools-diff.txt mergetools-merge.txt
+
+$(mergetools_txt): mergetools-list.made
+
+mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
+ $(QUIET_GEN)$(RM) $@ && \
+ $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
+ . ../git-mergetool--lib.sh && \
+ show_tool_names can_diff "* " || :' >mergetools-diff.txt && \
+ $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
+ . ../git-mergetool--lib.sh && \
+ show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
+ date >$@
+
clean:
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
$(RM) *.pdf
$(RM) howto-index.txt howto/*.html doc.dep
- $(RM) technical/api-*.html technical/api-index.txt
- $(RM) $(cmds_txt) *.made
+ $(RM) technical/*.html technical/api-index.txt
+ $(RM) $(cmds_txt) $(mergetools_txt) *.made
$(RM) manpage-base-url.xsl
-$(MAN_HTML): %.html : %.txt
+$(MAN_HTML): %.html : %.txt asciidoc.conf
+ $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
+ $(TXT_TO_HTML) -d manpage -o $@+ $< && \
+ mv $@+ $@
+
+$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
- $(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
+ $(TXT_TO_HTML) -o $@+ $< && \
mv $@+ $@
manpage-base-url.xsl: manpage-base-url.xsl.in
@@ -249,26 +326,25 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
%.1 %.5 %.7 : %.xml manpage-base-url.xsl
$(QUIET_XMLTO)$(RM) $@ && \
- xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
+ $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
-%.xml : %.txt
+%.xml : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
- $(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
+ $(TXT_TO_XML) -d manpage -o $@+ $< && \
mv $@+ $@
user-manual.xml: user-manual.txt user-manual.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book -o $@+ $< && \
+ $(TXT_TO_XML) -d article -o $@+ $< && \
mv $@+ $@
technical/api-index.txt: technical/api-index-skel.txt \
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
-$(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt
- $(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 -f asciidoc.conf \
- $(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) $*.txt
+technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
+$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.txt asciidoc.conf
+ $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
XSLT = docbook.xsl
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
@@ -290,7 +366,7 @@ user-manual.texi: user-manual.xml
user-manual.pdf: user-manual.xml
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
- $(DBLATEX) -o $@+ -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
+ $(DBLATEX) -o $@+ -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty $< && \
mv $@+ $@
gitman.texi: $(MAN_XML) cat-texi.perl
@@ -311,28 +387,44 @@ $(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
$(QUIET_GEN)$(RM) $@+ $@ && \
- '$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
+ '$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
mv $@+ $@
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
- $(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 $*.txt
+ $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
WEBDOC_DEST = /pub/software/scm/git/docs
+howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- sed -e '1,/^$$/d' $< | $(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 - >$@+ && \
+ sed -e '1,/^$$/d' $< | \
+ $(TXT_TO_HTML) - >$@+ && \
mv $@+ $@
install-webdoc : html
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
+# You must have a clone of 'git-htmldocs' and 'git-manpages' repositories
+# next to the 'git' repository itself for the following to work.
+
quick-install: quick-install-man
-quick-install-man:
- '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
+require-manrepo::
+ @if test ! -d $(MAN_REPO); \
+ then echo "git-manpages repository must exist at $(MAN_REPO)"; exit 1; fi
+
+quick-install-man: require-manrepo
+ '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir)
+
+require-htmlrepo::
+ @if test ! -d $(HTML_REPO); \
+ then echo "git-htmldocs repository must exist at $(HTML_REPO)"; exit 1; fi
+
+quick-install-html: require-htmlrepo
+ '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(htmldir)
-quick-install-html:
- '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
+print-man1:
+ @for i in $(MAN1_TXT); do echo $$i; done
.PHONY: FORCE
diff --git a/Documentation/RelNotes/1.5.2.1.txt b/Documentation/RelNotes/1.5.2.1.txt
index ebf20e2..d41984d 100644
--- a/Documentation/RelNotes/1.5.2.1.txt
+++ b/Documentation/RelNotes/1.5.2.1.txt
@@ -45,9 +45,3 @@ Fixes since v1.5.2
- git-fastimport --import-marks was broken; fixed.
- A lot of documentation updates, clarifications and fixes.
-
---
-exec >/var/tmp/1
-O=v1.5.2-65-g996e2d6
-echo O=`git describe refs/heads/maint`
-git shortlog --no-merges $O..refs/heads/maint
diff --git a/Documentation/RelNotes/1.6.0.2.txt b/Documentation/RelNotes/1.6.0.2.txt
index e1e24b3..7d8fb85 100644
--- a/Documentation/RelNotes/1.6.0.2.txt
+++ b/Documentation/RelNotes/1.6.0.2.txt
@@ -79,9 +79,3 @@ Fixes since v1.6.0.1
packfile.
Also contains many documentation updates.
-
---
-exec >/var/tmp/1
-O=v1.6.0.1-78-g3632cfc
-echo O=$(git describe maint)
-git shortlog --no-merges $O..maint
diff --git a/Documentation/RelNotes/1.6.1.3.txt b/Documentation/RelNotes/1.6.1.3.txt
index 6f0bde1..cd08d81 100644
--- a/Documentation/RelNotes/1.6.1.3.txt
+++ b/Documentation/RelNotes/1.6.1.3.txt
@@ -26,7 +26,3 @@ Fixes since v1.6.1.2
* RPM binary package installed the html manpages in a wrong place.
Also includes minor documentation fixes and updates.
-
-
---
-git shortlog --no-merges v1.6.1.2-33-gc789350..
diff --git a/Documentation/RelNotes/1.6.1.4.txt b/Documentation/RelNotes/1.6.1.4.txt
index 0ce6316..ccbad79 100644
--- a/Documentation/RelNotes/1.6.1.4.txt
+++ b/Documentation/RelNotes/1.6.1.4.txt
@@ -39,6 +39,3 @@ Fixes since v1.6.1.3
This fix was first merged to 1.6.2.3.
Also includes minor documentation fixes and updates.
-
---
-git shortlog --no-merges v1.6.1.3..
diff --git a/Documentation/RelNotes/1.6.1.txt b/Documentation/RelNotes/1.6.1.txt
index adb7cca..7b152a6 100644
--- a/Documentation/RelNotes/1.6.1.txt
+++ b/Documentation/RelNotes/1.6.1.txt
@@ -278,9 +278,3 @@ release, unless otherwise noted.
* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
correctly.
-
---
-exec >/var/tmp/1
-O=v1.6.1-rc3-74-gf66bc5f
-echo O=$(git describe master)
-git shortlog --no-merges $O..master ^maint
diff --git a/Documentation/RelNotes/1.7.10.1.txt b/Documentation/RelNotes/1.7.10.1.txt
new file mode 100644
index 0000000..be68524
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.1.txt
@@ -0,0 +1,78 @@
+Git v1.7.10.1 Release Notes
+===========================
+
+Additions since v1.7.10
+-----------------------
+
+Localization message files for Danish and German have been added.
+
+
+Fixes since v1.7.10
+-------------------
+
+ * "git add -p" is not designed to deal with unmerged paths but did
+ not exclude them and tried to apply funny patches only to fail.
+
+ * "git blame" started missing quite a few changes from the origin
+ since we stopped using the diff minimization by default in v1.7.2
+ era.
+
+ * When PATH contains an unreadable directory, alias expansion code
+ did not kick in, and failed with an error that said "git-subcmd"
+ was not found.
+
+ * "git clean -d -f" (not "-d -f -f") is supposed to protect nested
+ working trees of independent git repositories that exist in the
+ current project working tree from getting removed, but the
+ protection applied only to such working trees that are at the
+ top-level of the current project by mistake.
+
+ * "git commit --author=$name" did not tell the name that was being
+ recorded in the resulting commit to hooks, even though it does do
+ so when the end user overrode the authorship via the
+ "GIT_AUTHOR_NAME" environment variable.
+
+ * When "git commit --template F" errors out because the user did not
+ touch the message, it claimed that it aborts due to "empty
+ message", which was utterly wrong.
+
+ * The regexp configured with diff.wordregex was incorrectly reused
+ across files.
+
+ * An age-old corner case bug in combine diff (only triggered with -U0
+ and the hunk at the beginning of the file needs to be shown) has
+ been fixed.
+
+ * Rename detection logic used to match two empty files as renames
+ during merge-recursive, leading to unnatural mismerges.
+
+ * The parser in "fast-import" did not diagnose ":9" style references
+ that is not followed by required SP/LF as an error.
+
+ * When "git fetch" encounters repositories with too many references,
+ the command line of "fetch-pack" that is run by a helper
+ e.g. remote-curl, may fail to hold all of them. Now such an
+ internal invocation can feed the references through the standard
+ input of "fetch-pack".
+
+ * "git fetch" that recurses into submodules on demand did not check
+ if it needs to go into submodules when non branches (most notably,
+ tags) are fetched.
+
+ * "log -p --graph" used with "--stat" had a few formatting error.
+
+ * Running "notes merge --commit" failed to perform correctly when run
+ from any directory inside $GIT_DIR/. When "notes merge" stops with
+ conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
+ to resolve it.
+
+ * The 'push to upstream' implementation was broken in some corner
+ cases. "git push $there" without refspec, when the current branch
+ is set to push to a remote different from $there, used to push to
+ $there using the upstream information to a remote unreleated to
+ $there.
+
+ * Giving "--continue" to a conflicted "rebase -i" session skipped a
+ commit that only results in changes to submodules.
+
+Also contains minor fixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.10.2.txt b/Documentation/RelNotes/1.7.10.2.txt
new file mode 100644
index 0000000..7a7e9d6
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.2.txt
@@ -0,0 +1,85 @@
+Git v1.7.10.2 Release Notes
+===========================
+
+Fixes since v1.7.10.1
+---------------------
+
+ * The test scaffolding for git-daemon was flaky.
+
+ * The test scaffolding for fast-import was flaky.
+
+ * The filesystem boundary was not correctly reported when .git directory
+ discovery stopped at a mount point.
+
+ * HTTP transport that requires authentication did not work correctly when
+ multiple connections are used simultaneously.
+
+ * Minor memory leak during unpack_trees (hence "merge" and "checkout"
+ to check out another branch) has been plugged.
+
+ * In the older days, the header "Conflicts:" in "cherry-pick" and "merge"
+ was separated by a blank line from the list of paths that follow for
+ readability, but when "merge" was rewritten in C, we lost it by
+ mistake. Remove the newline from "cherry-pick" to make them match
+ again.
+
+ * The command line parser choked "git cherry-pick $name" when $name can
+ be both revision name and a pathname, even though $name can never be a
+ path in the context of the command.
+
+ * The "include.path" facility in the configuration mechanism added in
+ 1.7.10 forgot to interpret "~/path" and "~user/path" as it should.
+
+ * "git config --rename-section" to rename an existing section into a
+ bogus one did not check the new name.
+
+ * The "diff --no-index" codepath used limited-length buffers, risking
+ pathnames getting truncated. Update it to use the strbuf API.
+
+ * The report from "git fetch" said "new branch" even for a non branch
+ ref.
+
+ * The http-backend (the server side of the smart http transfer) used
+ to overwrite GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL with the
+ value obtained from REMOTE_USER unconditionally, making it
+ impossible for the server side site-specific customization to use
+ different identity sources to affect the names logged. It now uses
+ REMOTE_USER only as a fallback value.
+
+ * "log --graph" was not very friendly with "--stat" option and its
+ output had line breaks at wrong places.
+
+ * Octopus merge strategy did not reduce heads that are recorded in the
+ final commit correctly.
+
+ * "git push" over smart-http lost progress output a few releases ago;
+ this release resurrects it.
+
+ * The error and advice messages given by "git push" when it fails due
+ to non-ff were not very helpful to new users; it has been broken
+ into three cases, and each is given a separate advice message.
+
+ * The insn sheet given by "rebase -i" did not make it clear that the
+ insn lines can be re-ordered to affect the order of the commits in
+ the resulting history.
+
+ * "git repack" used to write out unreachable objects as loose objects
+ when repacking, even if such loose objects will immediately pruned
+ due to its age.
+
+ * A contrib script "rerere-train" did not work out of the box unless
+ user futzed with her $PATH.
+
+ * "git rev-parse --show-prefix" used to emit nothing when run at the
+ top-level of the working tree, but now it gives a blank line.
+
+ * The i18n of error message "git stash save" was not properly done.
+
+ * "git submodule" used a sed script that some platforms mishandled.
+
+ * When using a Perl script on a system where "perl" found on user's
+ $PATH could be ancient or otherwise broken, we allow builders to
+ specify the path to a good copy of Perl with $PERL_PATH. The
+ gitweb test forgot to use that Perl when running its test.
+
+Also contains minor fixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.10.3.txt b/Documentation/RelNotes/1.7.10.3.txt
new file mode 100644
index 0000000..703fbf1
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.3.txt
@@ -0,0 +1,43 @@
+Git v1.7.10.3 Release Notes
+===========================
+
+Fixes since v1.7.10.2
+---------------------
+
+ * The message file for German translation has been updated a bit.
+
+ * Running "git checkout" on an unborn branch used to corrupt HEAD.
+
+ * When checking out another commit from an already detached state, we
+ used to report all commits that are not reachable from any of the
+ refs as lossage, but some of them might be reachable from the new
+ HEAD, and there is no need to warn about them.
+
+ * Some time ago, "git clone" lost the progress output for its
+ "checkout" phase; when run without any "--quiet" option, it should
+ give progress to the lengthy operation.
+
+ * The directory path used in "git diff --no-index", when it recurses
+ down, was broken with a recent update after v1.7.10.1 release.
+
+ * "log -z --pretty=tformat:..." did not terminate each record with
+ NUL. The fix is not entirely correct when the output also asks for
+ --patch and/or --stat, though.
+
+ * The DWIM behaviour for "log --pretty=format:%gd -g" was somewhat
+ broken and gave undue precedence to configured log.date, causing
+ "git stash list" to show "stash@{time stamp string}".
+
+ * "git status --porcelain" ignored "--branch" option by mistake. The
+ output for "git status --branch -z" was also incorrect and did not
+ terminate the record for the current branch name with NUL as asked.
+
+ * When a submodule repository uses alternate object store mechanism,
+ some commands that were started from the superproject did not
+ notice it and failed with "No such object" errors. The subcommands
+ of "git submodule" command that recursed into the submodule in a
+ separate process were OK; only the ones that cheated and peeked
+ directly into the submodule's repository from the primary process
+ were affected.
+
+Also contains minor fixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.10.4.txt b/Documentation/RelNotes/1.7.10.4.txt
new file mode 100644
index 0000000..326670d
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.4.txt
@@ -0,0 +1,29 @@
+Git v1.7.10.4 Release Notes
+===========================
+
+Fixes since v1.7.10.3
+---------------------
+
+ * The message file for Swedish translation has been updated a bit.
+
+ * A name taken from mailmap was copied into an internal buffer
+ incorrectly and could overun the buffer if it is too long.
+
+ * A malformed commit object that has a header line chomped in the
+ middle could kill git with a NULL pointer dereference.
+
+ * An author/committer name that is a single character was mishandled
+ as an invalid name by mistake.
+
+ * The progress indicator for a large "git checkout" was sent to
+ stderr even if it is not a terminal.
+
+ * "git grep -e '$pattern'", unlike the case where the patterns are
+ read from a file, did not treat individual lines in the given
+ pattern argument as separate regular expressions as it should.
+
+ * When "git rebase" was given a bad commit to replay the history on,
+ its error message did not correctly give the command line argument
+ it had trouble parsing.
+
+Also contains minor fixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.10.5.txt b/Documentation/RelNotes/1.7.10.5.txt
new file mode 100644
index 0000000..4db1770
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.5.txt
@@ -0,0 +1,12 @@
+Git v1.7.10.5 Release Notes
+===========================
+
+Fixes since v1.7.10.4
+---------------------
+
+ * "git fast-export" did not give a readable error message when the
+ same mark erroneously appeared twice in the --import-marks input.
+
+ * "git rebase -p" used to pay attention to rebase.autosquash which
+ was wrong. "git rebase -p -i" should, but "git rebase -p" by
+ itself should not.
diff --git a/Documentation/RelNotes/1.7.10.txt b/Documentation/RelNotes/1.7.10.txt
new file mode 100644
index 0000000..58100bf
--- /dev/null
+++ b/Documentation/RelNotes/1.7.10.txt
@@ -0,0 +1,219 @@
+Git v1.7.10 Release Notes
+=========================
+
+Compatibility Notes
+-------------------
+
+ * From this release on, the "git merge" command in an interactive
+ session will start an editor when it automatically resolves the
+ merge for the user to explain the resulting commit, just like the
+ "git commit" command does when it wasn't given a commit message.
+
+ If you have a script that runs "git merge" and keeps its standard
+ input and output attached to the user's terminal, and if you do not
+ want the user to explain the resulting merge commits, you can
+ export GIT_MERGE_AUTOEDIT environment variable set to "no", like
+ this:
+
+ #!/bin/sh
+ GIT_MERGE_AUTOEDIT=no
+ export GIT_MERGE_AUTOEDIT
+
+ to disable this behavior (if you want your users to explain their
+ merge commits, you do not have to do anything). Alternatively, you
+ can give the "--no-edit" option to individual invocations of the
+ "git merge" command if you know everybody who uses your script has
+ Git v1.7.8 or newer.
+
+ * The "--binary/-b" options to "git am" have been a no-op for quite a
+ while and were deprecated in mid 2008 (v1.6.0). When you give these
+ options to "git am", it will now warn and ask you not to use them.
+
+ * When you do not tell which branches and tags to push to the "git
+ push" command in any way, the command used "matching refs" rule to
+ update remote branches and tags with branches and tags with the
+ same name you locally have. In future versions of Git, this will
+ change to push out only your current branch according to either the
+ "upstream" or the "current" rule. Although "upstream" may be more
+ powerful once the user understands Git better, the semantics
+ "current" gives is simpler and easier to understand for beginners
+ and may be a safer and better default option. We haven't decided
+ yet which one to switch to.
+
+
+Updates since v1.7.9
+--------------------
+
+UI, Workflows & Features
+
+ * various "gitk" updates.
+ - show the path to the top level directory in the window title
+ - update preference edit dialog
+ - display file list correctly when directories are given on command line
+ - make "git-describe" output in the log message into a clickable link
+ - avoid matching the UNIX timestamp part when searching all fields
+ - give preference to symbolic font names like sans & monospace
+ - allow comparing two commits using a mark
+ - "gitk" honors log.showroot configuration.
+
+ * Teams for localizing the messages from the Porcelain layer of
+ commands are starting to form, thanks to Jiang Xin who volunteered
+ to be the localization coordinator. Translated messages for
+ simplified Chinese, Swedish and Portuguese are available.
+
+ * The configuration mechanism learned an "include" facility; an
+ assignment to the include.path pseudo-variable causes the named
+ file to be included in-place when Git looks up configuration
+ variables.
+
+ * A content filter (clean/smudge) used to be just a way to make the
+ recorded contents "more useful", and allowed to fail; a filter can
+ now optionally be marked as "required".
+
+ * Options whose names begin with "--no-" (e.g. the "--no-verify"
+ option of the "git commit" command) can be negated by omitting
+ "no-" from its name, e.g. "git commit --verify".
+
+ * "git am" learned to pass "-b" option to underlying "git mailinfo", so
+ that a bracketed string other than "PATCH" at the beginning can be kept.
+
+ * "git clone" learned "--single-branch" option to limit cloning to a
+ single branch (surprise!); tags that do not point into the history
+ of the branch are not fetched.
+
+ * "git clone" learned to detach the HEAD in the resulting repository
+ when the user specifies a tag with "--branch" (e.g., "--branch=v1.0").
+ Clone also learned to print the usual "detached HEAD" advice in such
+ a case, similar to "git checkout v1.0".
+
+ * When showing a patch while ignoring whitespace changes, the context
+ lines are taken from the postimage, in order to make it easier to
+ view the output.
+
+ * "git diff --stat" learned to adjust the width of the output on
+ wider terminals, and give more columns to pathnames as needed.
+
+ * "diff-highlight" filter (in contrib/) was updated to produce more
+ aesthetically pleasing output.
+
+ * "fsck" learned "--no-dangling" option to omit dangling object
+ information.
+
+ * "git log -G" and "git log -S" learned to pay attention to the "-i"
+ option. With "-i", "log -G" ignores the case when finding patch
+ hunks that introduce or remove a string that matches the given
+ pattern. Similarly with "-i", "log -S" ignores the case when
+ finding the commit the given block of text appears or disappears
+ from the file.
+
+ * "git merge" in an interactive session learned to spawn the editor
+ by default to let the user edit the auto-generated merge message,
+ to encourage people to explain their merges better. Legacy scripts
+ can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
+ Both "git merge" and "git pull" can be given --no-edit from the
+ command line to accept the auto-generated merge message.
+
+ * The advice message given when the user didn't give enough clue on
+ what to merge to "git pull" and "git merge" has been updated to
+ be more concise and easier to understand.
+
+ * "git push" learned the "--prune" option, similar to "git fetch".
+
+ * The whole directory that houses a top-level superproject managed by
+ "git submodule" can be moved to another place.
+
+ * "git symbolic-ref" learned the "--short" option to abbreviate the
+ refname it shows unambiguously.
+
+ * "git tag --list" can be given "--points-at <object>" to limit its
+ output to those that point at the given object.
+
+ * "gitweb" allows intermediate entries in the directory hierarchy
+ that leads to a project to be clicked, which in turn shows the
+ list of projects inside that directory.
+
+ * "gitweb" learned to read various pieces of information for the
+ repositories lazily, instead of reading everything that could be
+ needed (including the ones that are not necessary for a specific
+ task).
+
+ * Project search in "gitweb" shows the substring that matched in the
+ project name and description highlighted.
+
+ * HTTP transport learned to authenticate with a proxy if needed.
+
+ * A new script "diffall" is added to contrib/; it drives an
+ external tool to perform a directory diff of two Git revisions
+ in one go, unlike "difftool" that compares one file at a time.
+
+Foreign Interface
+
+ * Improved handling of views, labels and branches in "git-p4" (in contrib).
+
+ * "git-p4" (in contrib) suffered from unnecessary merge conflicts when
+ p4 expanded the embedded $RCS$-like keywords; it can be now told to
+ unexpand them.
+
+ * Some "git-svn" updates.
+
+ * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
+ support incremental imports.
+
+ * "git difftool/mergetool" learned to drive DeltaWalker.
+
+Performance
+
+ * Unnecessary calls to parse_object() "git upload-pack" makes in
+ response to "git fetch", have been eliminated, to help performance
+ in repositories with excessive number of refs.
+
+Internal Implementation (please report possible regressions)
+
+ * Recursive call chains in "git index-pack" to deal with long delta
+ chains have been flattened, to reduce the stack footprint.
+
+ * Use of add_extra_ref() API is now gone, to make it possible to
+ cleanly restructure the overall refs API.
+
+ * The command line parser of "git pack-objects" now uses parse-options
+ API.
+
+ * The test suite supports the new "test_pause" helper function.
+
+ * Parallel to the test suite, there is a beginning of performance
+ benchmarking framework.
+
+ * t/Makefile is adjusted to prevent newer versions of GNU make from
+ running tests in seemingly random order.
+
+ * The code to check if a path points at a file beyond a symbolic link
+ has been restructured to be thread-safe.
+
+ * When pruning directories that has become empty during "git prune"
+ and "git prune-packed", call closedir() that iterates over a
+ directory before rmdir() it.
+
+Also contains minor documentation updates and code clean-ups.
+
+
+Fixes since v1.7.9
+------------------
+
+Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
+releases are contained in this release (see release notes to them for
+details).
+
+ * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
+ with versions of Perl older than 5.8.3.
+ (merge 5eb660e ab/perl-i18n later to maint).
+
+ * "git tag -s" honored "gpg.program" configuration variable since
+ 1.7.9, but "git tag -v" and "git verify-tag" didn't.
+ (merge a2c2506 az/verify-tag-use-gpg-config later to maint).
+
+ * "configure" script learned to take "--with-sane-tool-path" from the
+ command line to record SANE_TOOL_PATH (used to avoid broken platform
+ tools in /usr/bin) in config.mak.autogen. This may be useful for
+ people on Solaris who have saner tools outside /usr/xpg[46]/bin.
+
+ * zsh port of bash completion script needed another workaround.
diff --git a/Documentation/RelNotes/1.7.11.1.txt b/Documentation/RelNotes/1.7.11.1.txt
new file mode 100644
index 0000000..577ecca
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.1.txt
@@ -0,0 +1,9 @@
+Git v1.7.11.1 Release Notes
+===========================
+
+Fixes since v1.7.11
+-------------------
+
+ * The cross links in the HTML version of manual pages were broken.
+
+Also contains minor typofixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.11.2.txt b/Documentation/RelNotes/1.7.11.2.txt
new file mode 100644
index 0000000..f0cfd02
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.2.txt
@@ -0,0 +1,53 @@
+Git v1.7.11.2 Release Notes
+===========================
+
+Fixes since v1.7.11.1
+---------------------
+
+ * On Cygwin, the platform pread(2) is not thread safe, just like our
+ own compat/ emulation, and cannot be used in the index-pack
+ program. Makefile variable NO_THREAD_SAFE_PREAD can be defined to
+ avoid use of this function in a threaded program.
+
+ * "git add" allows adding a regular file to the path where a
+ submodule used to exist, but "git update-index" does not allow an
+ equivalent operation to Porcelain writers.
+
+ * "git archive" incorrectly computed the header checksum; the symptom
+ was observed only when using pathnames with hi-bit set.
+
+ * "git blame" did not try to make sure that the abbreviated commit
+ object names in its output are unique.
+
+ * Running "git bundle verify" on a bundle that records a complete
+ history said "it requires these 0 commits".
+
+ * "git clone --single-branch" to clone a single branch did not limit
+ the cloning to the specified branch.
+
+ * "git diff --no-index" did not correctly handle relative paths and
+ did not correctly give exit codes when run under "--quiet" option.
+
+ * "git diff --no-index" did not work with pagers correctly.
+
+ * "git diff COPYING HEAD:COPYING" gave a nonsense error message that
+ claimed that the tree-ish HEAD did not have COPYING in it.
+
+ * When "git log" gets "--simplify-merges/by-decoration" together with
+ "--first-parent", the combination of these options makes the
+ simplification logic to use in-core commit objects that haven't
+ been examined for relevance, either producing incorrect result or
+ taking too long to produce any output. Teach the simplification
+ logic to ignore commits that the first-parent traversal logic
+ ignored when both are in effect to work around the issue.
+
+ * "git ls-files --exclude=t -i" did not consider anything under t/ as
+ excluded, as it did not pay attention to exclusion of leading paths
+ while walking the index. Other two users of excluded() are also
+ updated.
+
+ * "git request-pull $url dev" when the tip of "dev" branch was tagged
+ with "ext4-for-linus" used the contents from the tag in the output
+ but still asked the "dev" branch to be pulled, not the tag.
+
+Also contains minor typofixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.11.3.txt b/Documentation/RelNotes/1.7.11.3.txt
new file mode 100644
index 0000000..64494f8
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.3.txt
@@ -0,0 +1,53 @@
+Git v1.7.11.3 Release Notes
+===========================
+
+Fixes since v1.7.11.3
+---------------------
+
+ * The error message from "git push $there :bogo" (and its equivalent
+ "git push $there --delete bogo") mentioned that we tried and failed
+ to guess what ref is being deleted based on the LHS of the refspec,
+ which we don't.
+
+ * A handful of files and directories we create had tighter than
+ necessary permission bits when the user wanted to have group
+ writability (e.g. by setting "umask 002").
+
+ * "commit --amend" used to refuse amending a commit with an empty log
+ message, with or without "--allow-empty-message".
+
+ * "git commit --amend --only --" was meant to allow "Clever" people to
+ rewrite the commit message without making any change even when they
+ have already changes for the next commit added to their index, but
+ it never worked as advertised since it was introduced in 1.3.0 era.
+
+ * Even though the index can record pathnames longer than 1<<12 bytes,
+ in some places we were not comparing them in full, potentially
+ replacing index entries instead of adding.
+
+ * "git show"'s auto-walking behaviour was an unreliable and
+ unpredictable hack; it now behaves just like "git log" does when it
+ walks.
+
+ * "git diff", "git status" and anything that internally uses the
+ comparison machinery was utterly broken when the difference
+ involved a file with "-" as its name. This was due to the way "git
+ diff --no-index" was incorrectly bolted on to the system, making
+ any comparison that involves a file "-" at the root level
+ incorrectly read from the standard input.
+
+ * We did not have test to make sure "git rebase" without extra options
+ filters out an empty commit in the original history.
+
+ * "git fast-export" produced an input stream for fast-import without
+ properly quoting pathnames when they contain SPs in them.
+
+ * "git checkout --detach", when you are still on an unborn branch,
+ should be forbidden, but it wasn't.
+
+ * Some implementations of Perl terminates "lines" with CRLF even when
+ the script is operating on just a sequence of bytes. Make sure to
+ use "$PERL_PATH", the version of Perl the user told Git to use, in
+ our tests to avoid unnecessary breakages in tests.
+
+Also contains minor typofixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.11.4.txt b/Documentation/RelNotes/1.7.11.4.txt
new file mode 100644
index 0000000..3a640c2
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.4.txt
@@ -0,0 +1,31 @@
+Git v1.7.11.4 Release Notes
+===========================
+
+Fixes since v1.7.11.3
+---------------------
+
+ * "$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
+ message user edits was not documented.
+
+ * The advise() function did not use varargs correctly to format
+ its message.
+
+ * When "git am" failed, old timers knew to check .git/rebase-apply/patch
+ to see what went wrong, but we never told the users about it.
+
+ * "git commit-tree" learned a more natural "-p <parent> <tree>" order
+ of arguments long time ago, but recently forgot it by mistake.
+
+ * "git diff --no-ext-diff" did not output anything for a typechange
+ filepair when GIT_EXTERNAL_DIFF is in effect.
+
+ * In 1.7.9 era, we taught "git rebase" about the raw timestamp format
+ but we did not teach the same trick to "filter-branch", which rolled
+ a similar logic on its own.
+
+ * When "git submodule add" clones a submodule repository, it can get
+ confused where to store the resulting submodule repository in the
+ superproject's .git/ directory when there is a symbolic link in the
+ path to the current directory.
+
+Also contains minor typofixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.11.5.txt b/Documentation/RelNotes/1.7.11.5.txt
new file mode 100644
index 0000000..0a2ed85
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.5.txt
@@ -0,0 +1,36 @@
+Git v1.7.11.5 Release Notes
+===========================
+
+Fixes since v1.7.11.4
+---------------------
+
+ * The Makefile rule to create assembly output (primarily for
+ debugging purposes) did not create it next to the source.
+
+ * The code to avoid mistaken attempt to add the object directory
+ itself as its own alternate could read beyond end of a string while
+ comparison.
+
+ * On some architectures, "block-sha1" did not compile correctly
+ when compilers inferred alignment guarantees from our source we
+ did not intend to make.
+
+ * When talking to a remote running ssh on IPv6 enabled host, whose
+ address is spelled as "[HOST]:PORT", we did not parse the address
+ correctly and failed to connect.
+
+ * git-blame.el (in compat/) have been updated to use Elisp more
+ correctly.
+
+ * "git checkout <branchname>" to come back from a detached HEAD state
+ incorrectly computed reachability of the detached HEAD, resulting
+ in unnecessary warnings.
+
+ * "git mergetool" did not support --tool-help option to give the list
+ of supported backends, like "git difftool" does.
+
+ * "git grep" stopped spawning an external "grep" long time ago, but a
+ duplicated test to check internal and external "grep" was left
+ behind.
+
+Also contains minor typofixes and documentation updates.
diff --git a/Documentation/RelNotes/1.7.11.6.txt b/Documentation/RelNotes/1.7.11.6.txt
new file mode 100644
index 0000000..ba7d3c3
--- /dev/null
+++ b/Documentation/RelNotes/1.7.11.6.txt
@@ -0,0 +1,84 @@
+Git v1.7.11.6 Release Notes