git-commit-vandalism/Documentation
Junio C Hamano d23748a6af update-index: allow --index-info to add higher stages.
The new merge world order tells the merge strategies to leave
the cache unmerged and store the automerge result in the working
tree if automerge is not clean.  This was done for the resolve
strategy and recursive strategy when no rename is involved, but
recording a conflicting merge in the rename case could not
easily be done by the recursive strategy.

This commit adds a new input format, in addition to the exsting
two, to "update-index --index-info".

    (1) mode         SP sha1          TAB path
    The first format is what "git-apply --index-info"
    reports, and used to reconstruct a partial tree
    that is used for phony merge base tree when falling
    back on 3-way merge.

    (2) mode SP type SP sha1          TAB path
    The second format is to stuff git-ls-tree output
    into the index file.

    (3) mode         SP sha1 SP stage TAB path
    This format is to put higher order stages into the
    index file and matches git-ls-files --stage output.

To place a higher stage entry to the index, the path should
first be removed by feeding a mode=0 entry for the path, and
then feeding necessary input lines in the (3) format.

For example, starting with this index:

$ git ls-files -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0       frotz

$ git update-index --index-info ;# interactive session -- input follows...

0 0000000000000000000000000000000000000000	frotz
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1	frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2	frotz

The first line of the input feeds 0 as the mode to remove the
path; the SHA1 does not matter as long as it is well formatted.
Then the second and third line feeds stage 1 and stage 2 entries
for that path.  After the above, we would end up with this:

$ git ls-files -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1	frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2	frotz

This completes the groundwork for the new merge world order.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 01:53:50 -08:00
..
howto Documentation: shared repository management in tutorial. 2005-12-05 00:58:23 -08:00
technical [PATCH] Finish documenting trivial merge rules 2005-09-24 22:05:55 -07:00
.gitignore Fix documentation dependency generation. 2005-11-07 18:21:51 -08:00
asciidoc.conf Fix usage of carets in git-rev-parse(1) 2005-10-05 16:56:31 -07:00
build-docdep.perl Clean build annoyance. 2005-11-08 08:58:52 -08:00
cvs-migration.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
diff-format.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
diff-options.txt diff: --full-index 2005-11-16 16:20:40 -08:00
diffcore.txt Fix recent documentation format breakage. 2005-10-29 00:50:42 -07:00
fetch-options.txt Documentation: describe '-f' option to git-fetch. 2005-12-01 12:24:51 -08:00
git-add.txt Documentation: git-add -- do not say "cache", add examples. 2005-11-04 00:04:17 -08:00
git-am.txt git-am: --binary; document --resume and --binary. 2005-11-17 22:36:31 -08:00
git-apply.txt apply: allow-binary-replacement. 2005-11-16 16:20:40 -08:00
git-applymbox.txt Brief documentation for the mysterious git-am script 2005-10-20 22:32:07 -07:00
git-applypatch.txt [PATCH] Random documentation fixes 2005-10-03 13:23:47 -07:00
git-archimport.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-bisect.txt Documentation: talk about pathspec in bisect. 2005-12-05 00:15:24 -08:00
git-branch.txt git-branch: Mention -d and -D in man-page. 2005-11-14 14:16:37 -08:00
git-cat-file.txt A few more options for git-cat-file 2005-12-03 23:07:17 -08:00
git-check-ref-format.txt ref-format documentation. 2005-10-16 22:41:59 -07:00
git-checkout-index.txt checkout-index: allow checking out from higher stages. 2005-12-07 00:44:30 -08:00
git-checkout.txt git-checkout: revert specific paths to either index or a given tree-ish. 2005-10-18 01:29:27 -07:00
git-cherry-pick.txt Documentation: rebase does not use cherry-pick anymore. 2005-12-04 16:38:40 -08:00
git-cherry.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-clone-pack.txt git-clone: always keep pack sent from remote (documentation). 2005-10-19 14:43:43 -07:00
git-clone.txt git-clone: Keep remote names when cloning unless explicitly told not to. 2005-11-11 01:34:26 -08:00
git-commit-tree.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
git-commit.txt The synopsis of the manpages should use the hyphenated version 2005-10-10 16:01:32 -07:00
git-convert-objects.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-count-objects.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-cvsexportcommit.txt Documentation: asciidoc formatting fix for git-cvsexportcommit doc. 2005-11-07 17:53:06 -08:00
git-cvsimport.txt Change 'cache' to 'index' in the docs 2005-11-11 15:12:29 -08:00
git-daemon.txt daemon: further tweaks. 2005-11-21 13:47:00 -08:00
git-diff-files.txt diff-files: show diffs with stage0 and unmerged stage at the same time. 2005-11-30 02:17:51 -08:00
git-diff-index.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
git-diff-stages.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-diff-tree.txt Add --no-commit-id option for git-diff-tree, use it in gitk 2005-11-11 01:13:05 -08:00
git-diff.txt Documentation: git-diff asciidoc table workaround. 2005-12-05 00:22:01 -08:00
git-fetch-pack.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-fetch.txt Refactored merge options into separate merge-options.txt. 2005-11-06 23:32:04 -08:00
git-fmt-merge-msg.txt Documentation for git-fmt-merge-msg 2005-11-01 14:45:49 -08:00
git-format-patch.txt Documentation: format-patch 2005-11-05 02:55:18 -08:00
git-fsck-objects.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
git-get-tar-commit-id.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-grep.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-hash-object.txt Documentation: hash-object. 2005-12-05 22:36:22 -08:00
git-http-fetch.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-http-push.txt Add support for pushing to a remote repository using HTTP/DAV 2005-11-06 01:14:44 -08:00
git-index-pack.txt Add git-index-pack utility 2005-10-12 18:32:02 -07:00
git-init-db.txt Added documentation for few missing options. 2005-12-05 21:47:16 -08:00
git-local-fetch.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-log.txt Documentation/git-log.txt: trivial typo fix. 2005-11-16 13:19:37 -08:00
git-lost-found.txt Rename lost+found to lost-found. 2005-11-13 02:07:02 -08:00
git-ls-files.txt Change 'cache' to 'index' in the docs 2005-11-11 15:12:29 -08:00
git-ls-remote.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-ls-tree.txt Update the git-ls-tree documentation 2005-12-04 16:02:16 -08:00
git-mailinfo.txt mailinfo: Do not use -u=<encoding>; say --encoding=<encoding> 2005-11-28 01:29:52 -08:00
git-mailsplit.txt mailsplit: allow feeding mbox from standard input. 2005-10-06 15:55:43 -07:00
git-merge-base.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-merge-index.txt Change 'cache' to 'index' in the docs 2005-11-11 15:12:29 -08:00
git-merge-one-file.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-merge.txt git-merge documentation: conflicting merge leaves higher stages in index 2005-12-02 01:08:14 -08:00
git-mktag.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-mv.txt Documentation: git-mv manpage workaround. 2005-12-05 00:15:44 -08:00
git-name-rev.txt Add git-name-rev 2005-10-26 16:31:58 -07:00
git-octopus.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-pack-objects.txt Update git-pack-objects documentation. 2005-10-30 17:28:03 -08:00
git-pack-redundant.txt Document the "ignore objects" feature of git-pack-redundant 2005-11-18 15:34:19 -08:00
git-parse-remote.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-patch-id.txt Document git-patch-id a bit better. 2005-10-28 02:39:56 -07:00
git-peek-remote.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-prune-packed.txt Added documentation for few missing options. 2005-12-05 21:47:16 -08:00
git-prune.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-pull.txt Refactored merge options into separate merge-options.txt. 2005-11-06 23:32:04 -08:00
git-push.txt Documentation: push/receive hook references. 2005-12-05 00:58:23 -08:00
git-read-tree.txt Documentaiton (read-tree): update description of 3-way 2005-12-05 23:26:10 -08:00
git-rebase.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-receive-pack.txt Documentation: push/receive hook references. 2005-12-05 00:58:23 -08:00
git-relink.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-repack.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-repo-config.txt Rename git-config-set to git-repo-config 2005-11-24 11:10:40 -08:00
git-request-pull.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-reset.txt git-reset.txt: Small fix + clarifications. 2005-11-20 22:19:58 -08:00
git-resolve.txt The synopsis of the manpages should use the hyphenated version 2005-10-10 16:01:32 -07:00
git-rev-list.txt Fix rev-list documentation again (--sparse and pathspec) 2005-10-30 17:28:03 -08:00
git-rev-parse.txt Illustration: "Commit DAG Revision Naming" 2005-11-03 14:55:49 -08:00
git-revert.txt Document the --(no-)edit switch of git-revert and git-cherry-pick 2005-12-04 16:34:35 -08:00
git-send-email.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-send-pack.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-sh-setup.txt [PATCH] Random documentation fixes 2005-10-03 13:23:47 -07:00
git-shell.txt Documentation for git-shell 2005-10-25 22:51:13 -07:00
git-shortlog.txt The synopsis of the manpages should use the hyphenated version 2005-10-10 16:01:32 -07:00
git-show-branch.txt show-branch: allow glob pattern to name branches to show. 2005-12-04 16:06:35 -08:00
git-show-index.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-ssh-fetch.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-ssh-upload.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-status.txt The synopsis of the manpages should use the hyphenated version 2005-10-10 16:01:32 -07:00
git-stripspace.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-svnimport.txt SVN import: Use one log call 2005-11-29 10:51:43 -08:00
git-symbolic-ref.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
git-tag.txt documentation: git-tag 2005-12-02 12:20:34 -08:00
git-tar-tree.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-unpack-file.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-unpack-objects.txt Document the -n command-line option to git-unpack-objects 2005-11-14 17:15:32 -08:00
git-update-index.txt update-index: allow --index-info to add higher stages. 2005-12-07 01:53:50 -08:00
git-update-ref.txt Add missing documentation. 2005-10-04 17:04:03 -07:00
git-update-server-info.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-upload-pack.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-var.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-verify-pack.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-verify-tag.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-whatchanged.txt Add examples for git-log documentation and others. 2005-10-30 22:54:39 -08:00
git-write-tree.txt Added documentation for few missing options. 2005-12-05 21:47:16 -08:00
git.txt Rename git-config-set to git-repo-config 2005-11-24 11:10:40 -08:00
gitk.txt Add examples for git-log documentation and others. 2005-10-30 22:54:39 -08:00
glossary.txt Change 'cache' to 'index' in the docs 2005-11-11 15:12:29 -08:00
hooks.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
howto-index.sh Allow asciidoc formatted documentation in howto/ 2005-08-29 22:38:12 -07:00
install-webdoc.sh Install asciidoc sources as well. 2005-11-06 01:12:32 -08:00
Makefile Documentation: fix dependency generation. 2005-11-08 00:23:12 -08:00
merge-options.txt Refactored merge options into separate merge-options.txt. 2005-11-06 23:32:04 -08:00
merge-strategies.txt Refactor merge strategies into separate includable file. 2005-11-06 10:31:48 -08:00
pack-protocol.txt [PATCH] Document two pack push-pull protocols. 2005-07-13 20:42:26 -07:00
pull-fetch-param.txt Fix typos and minor format issues. 2005-11-29 10:51:41 -08:00
repository-layout.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
sort_glossary.pl [PATCH] Add Makefile target glossary.html 2005-08-18 10:25:52 -07:00
SubmittingPatches Add Pine 4.63 help from Daniel. 2005-08-31 11:48:41 -07:00
tutorial.txt Documentation: shared repository management in tutorial. 2005-12-05 00:58:23 -08:00