A fork of Git containing Microsoft-specific patches.
Перейти к файлу
Junio C Hamano 83133740d9 xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less
When showing a conflicting merge result, and "--diff3 -m" style is asked
for, this patch makes sure that the merge reduction level does not exceed
XDL_MERGE_EAGER.  This is because "diff3 -m" style output would not make
sense for anything more aggressive than XDL_MERGE_EAGER, because of the
way how the merge reduction works.

"git merge-file" no longer has to force MERGE_EAGER when "--diff3" is
asked for because of this change.

Suppose a common ancestor (shared preimage) is modified to postimage #1
and #2 (each letter represents one line):

                     #####
    postimage#1: 1234ABCDE789
                    |    /
                    |   /
    preimage:    123456789
                    |   \
    postimage#2: 1234AXYE789
                     ####

XDL_MERGE_MINIMAL and XDL_MERGE_EAGER would:

 (1) find the s/56/ABCDE/ done on one side and s/56/AXYE/ done on the
     other side,

 (2) notice that they touch an overlapping area, and

 (3) mark it as a conflict, "ABCDE vs AXYE".

The difference between the two algorithms is that EAGER drops the hunk
altogether if the postimages match (i.e. both sides modified the same
way), while MINIMAL keeps it.  There is no other operation performed to
the hunk.  As the result, lines marked with "#" in the above picure will
be in the RCS merge style output like this (letters <, = and > represent
conflict marker lines):

    output:      1234<ABCDE=AXYE>789    ; with MINIMAL/EAGER

The part from the preimage that corresponds to these conflicting changes
is "56", which is what "diff3 -m" style output adds to it:

    output:      1234<ABCDE|56=AXYE>789 ; in "diff3 -m" style

Now, XDL_MERGE_ZEALOUS looks at the differences between the changes two
postimages made in order to reduce the number of lines in the conflicting
regions.  It notices that both sides start their new contents with "A",
and excludes it from the output (it also excludes "E" for the same
reason).  The conflict that used to be "ABCDE vs AXYE" is now "BCD vs XY":

    output:      1234A<BCD=XY>E789      ; with ZEALOUS

There could even be matching parts between two postimages in the middle.
Instead of one side rewriting the shared "56" to "ABCDE" and the other
side to "AXYE", imagine the case where the postimages are "ABCDE" and
"AXCYE", in which case instead of having one conflicted hunk "BCD vs XY",
you would have two conflicting hunks "B vs X" and "D vs Y".

In either case, once you reduce "ABCDE vs AXYE" to "BCD vs XY" (or "ABCDE
vs AXCYE" to "B vs X" and "D vs Y"), there is no part from the preimage
that corresponds to the conflicting change made in both postimages
anymore.  In other words, conflict reduced by ZEALOUS algorithm cannot be
expressed in "diff3 -m" style.  Representing the last illustration like
this is misleading to say the least:

    output:      1234A<BCD|56=XY>E789   ; broken "diff3 -m" style

because the preimage was not ...4A56E... to begin with.  "A" and "E" are
common only between the postimages.

Even worse, once a single conflicting hunk is split into multiple ones
(recall the example of breaking "ABCDE vs AXCYE" to "B vs X" and "D vs
Y"), there is no sane way to distribute the preimage text across split
conflicting hunks.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-30 19:41:43 -07:00
Documentation tutorial: gentler illustration of Alice/Bob workflow using gitk 2008-08-29 00:14:30 -07:00
arm War on whitespace 2007-06-07 00:04:01 -07:00
compat compat/snprintf.c: handle snprintf's that always return the # chars transmitted 2008-08-21 01:53:44 -07:00
contrib Clean up the git-p4 documentation 2008-08-24 12:00:14 -07:00
git-gui Merge git-gui 0.11.0 2008-08-17 11:41:19 -07:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-08-16 23:21:07 -07:00
gitweb gitweb: More about how gitweb gets 'owner' of repository 2008-07-27 14:14:01 -07:00
mozilla-sha1 War on whitespace 2007-06-07 00:04:01 -07:00
perl Git.pm: Make File::Spec and File::Temp requirement lazy 2008-08-16 02:58:22 -07:00
ppc War on whitespace 2007-06-07 00:04:01 -07:00
t xdiff-merge: optionally show conflicts in "diff3 -m" style 2008-08-30 19:41:43 -07:00
templates Install templates with the user and group of the installing personality 2008-08-20 16:01:45 -07:00
xdiff xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less 2008-08-30 19:41:43 -07:00
.gitattributes Define the project whitespace policy 2008-02-11 13:23:15 -08:00
.gitignore Merge branch 'dr/ceiling' 2008-07-07 02:17:23 -07:00
.mailmap .mailmap update 2008-07-19 11:25:51 -07:00
COPYING Add a COPYING notice, making it explicit that the license is GPLv2. 2005-04-11 10:18:16 -07:00
GIT-VERSION-GEN GIT 1.6.0 2008-08-17 11:42:10 -07:00
INSTALL Fix typos in INSTALL 2008-08-04 21:52:08 -07:00
Makefile Makefile: enable SNPRINTF_RETURNS_BOGUS for HP-UX 2008-08-23 21:53:35 -07:00
README Update README to point at a few key periodical messages to the list 2007-03-25 17:42:32 -07:00
RelNotes Start 1.6.0.X maintenance series 2008-08-17 15:44:11 -07:00
abspath.c Allow add_path() to add non-existent directories to the path 2008-07-25 17:41:13 -07:00
alias.c Move split_cmdline() to alias.c 2008-06-30 22:45:50 -07:00
alloc.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
archive-tar.c archive: remove unused headers 2008-07-19 11:17:43 -07:00
archive-zip.c archive: remove unused headers 2008-07-19 11:17:43 -07:00
archive.c pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
archive.h archive: declare struct archiver where it's needed 2008-07-25 17:21:04 -07:00
attr.c Fix buffer overflow in prepare_attr_stack 2008-07-16 14:05:50 -07:00
attr.h Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
base85.c decode_85(): fix missing return. 2007-05-30 15:03:50 -07:00
blob.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
blob.h [PATCH] Anal retentive 'const unsigned char *sha1' 2005-06-08 13:04:53 -07:00
branch.c Move MERGE_RR from .git/rr-cache/ into .git/ 2008-07-13 01:03:10 -07:00
branch.h branch: optionally setup branch.*.merge from upstream local branches 2008-02-19 21:17:45 -08:00
builtin-add.c Merge branch 'jc/add-addremove' 2008-07-20 17:53:17 -07:00
builtin-annotate.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-apply.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-archive.c archive: allow --exec and --remote without equal sign 2008-07-25 17:28:40 -07:00
builtin-blame.c Teach --find-copies-harder to "git blame" 2008-07-31 11:22:12 -07:00
builtin-branch.c builtin-branch: fix -v for --[no-]merged 2008-07-27 14:14:01 -07:00
builtin-bundle.c Always set *nongit_ok in setup_git_directory_gently() 2008-03-26 15:41:35 -07:00
builtin-cat-file.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-check-attr.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-check-ref-format.c Further clean-up: usage() vs die() 2006-08-03 21:55:41 -07:00
builtin-checkout-index.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-checkout.c git-checkout: improve error messages, detect ambiguities. 2008-07-24 23:24:00 -07:00
builtin-clean.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-clone.c clone --mirror: avoid storing repeated tags 2008-08-07 21:25:27 -07:00
builtin-commit-tree.c git-commit-tree: make it usable from other builtins 2008-07-06 19:23:00 -07:00
builtin-commit.c pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
builtin-config.c Make non-static functions, that may be static, static 2008-07-23 18:38:14 -07:00
builtin-count-objects.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-describe.c Merge branch 'sb/dashless' 2008-07-16 17:22:50 -07:00
builtin-diff-files.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-diff-index.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-diff-tree.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-diff.c Allow pager of diff command be enabled/disabled 2008-07-23 11:14:47 -07:00
builtin-fast-export.c Fix a warning (on cygwin) to allow -Werror 2008-08-26 16:22:00 -07:00
builtin-fetch--tool.c Error out when user doesn't have access permission to the repository 2007-11-30 13:10:11 -08:00
builtin-fetch-pack.c git fetch-pack: do not complain about "no common commits" in an empty repo 2008-07-16 15:53:43 -07:00
builtin-fetch.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-fmt-merge-msg.c Merge branch 'sb/dashless' 2008-07-16 17:22:50 -07:00
builtin-for-each-ref.c for-each-ref: Allow a trailing slash in the patterns 2008-08-29 00:14:06 -07:00
builtin-fsck.c Teach fsck and prune that tmp_obj_ file names may not be 14 bytes long 2008-08-05 21:21:20 -07:00
builtin-gc.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-grep.c Merge branch 'maint' 2008-07-20 17:16:29 -07:00
builtin-http-fetch.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-init-db.c init: handle empty "template" parameter 2008-08-01 22:41:07 -07:00
builtin-log.c git format-patch: avoid underrun when format.headers is empty or all NLs 2008-08-19 18:08:00 -07:00
builtin-ls-files.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-ls-remote.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-ls-tree.c Add output flushing before fork() 2008-08-04 21:46:42 -07:00
builtin-mailinfo.c mailinfo: avoid violating strbuf assertion 2008-08-19 19:36:56 -07:00
builtin-mailsplit.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-merge-base.c merge-base: die with an error message if not passed a commit ref 2008-07-28 23:02:12 -07:00
builtin-merge-file.c xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less 2008-08-30 19:41:43 -07:00
builtin-merge-ours.c git-merge-ours: make it a builtin. 2007-11-22 14:21:59 -08:00
builtin-merge-recursive.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-merge.c merge: fix numerus bugs around "trivial merge" area 2008-08-23 18:17:22 -07:00
builtin-mv.c git-mv: Keep moved index entries inact 2008-07-27 15:05:19 -07:00
builtin-name-rev.c Merge branch 'maint' 2008-08-03 14:14:10 -07:00
builtin-pack-objects.c index-pack: be careful after fixing up the header/footer 2008-08-27 13:33:56 -07:00
builtin-pack-refs.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-prune-packed.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-prune.c Teach fsck and prune that tmp_obj_ file names may not be 14 bytes long 2008-08-05 21:21:20 -07:00
builtin-push.c builtin-push.c: Cleanup - use OPT_BIT() and remove some variables 2008-07-20 14:41:49 -07:00
builtin-read-tree.c Move read_cache_unmerged() to read-cache.c 2008-06-30 22:45:51 -07:00
builtin-reflog.c Merge branch 'maint' 2008-08-11 00:53:31 -07:00
builtin-remote.c clone: Add an option to set up a mirror 2008-08-02 15:21:59 -07:00
builtin-rerere.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-reset.c git-reset: Let -q hush "locally modified" messages 2008-07-25 17:57:22 -07:00
builtin-rev-list.c Fix "git log -i --grep" 2008-08-24 23:28:02 -07:00
builtin-rev-parse.c rev-parse: Add support for the ^! and ^@ syntax 2008-07-27 14:14:01 -07:00
builtin-revert.c Merge branch 'maint' 2008-08-01 23:55:51 -07:00
builtin-rm.c builtin-rm: Add a --force flag 2008-08-08 18:27:19 -07:00
builtin-send-pack.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-shortlog.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-show-branch.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-show-ref.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-stripspace.c Clean up stripspace a bit, use strbuf even more. 2007-09-27 00:33:33 -07:00
builtin-symbolic-ref.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-tag.c Sync with 1.5.6.5 2008-08-06 13:50:48 -07:00
builtin-tar-tree.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-unpack-objects.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-update-index.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-update-ref.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-upload-archive.c archive: define MAX_ARGS where it's needed 2008-07-25 17:20:55 -07:00
builtin-verify-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-verify-tag.c builtin-verify-tag: fix -v option parsing 2008-07-28 23:02:11 -07:00
builtin-write-tree.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin.h Allow pager of diff command be enabled/disabled 2008-07-23 11:14:47 -07:00
bundle.c Teach git-bundle to read revision arguments from stdin like git-rev-list. 2008-07-07 01:31:24 -07:00
bundle.h Move bundle specific stuff into bundle.[ch] 2007-09-19 03:22:30 -07:00
cache-tree.c cache-tree.c: make cache_tree_find() static 2008-07-16 08:50:27 -07:00
cache-tree.h cache-tree.c: make cache_tree_find() static 2008-07-16 08:50:27 -07:00
cache.h unpack_trees(): protect the handcrafted in-core index from read_cache() 2008-08-23 18:09:27 -07:00
check-builtins.sh cherry is built-in, do not ship git-cherry.sh 2006-11-05 11:26:21 -08:00
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability 2007-11-10 00:24:51 -08:00
check_bindir Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
color.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
color.h Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
combine-diff.c Respect core.autocrlf in combined diff 2008-08-23 23:59:20 -07:00
command-list.txt Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
commit.c sort_in_topological_order(): avoid setting a commit flag 2008-08-01 23:14:22 -07:00
commit.h pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
config.c Make use of stat.ctime configurable 2008-07-28 23:26:25 -07:00
config.mak.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
configure.ac Consistency: Use "libcurl" instead of "cURL library" and "curl" 2008-06-15 13:35:10 -07:00
connect.c Windows: Disambiguate DOS style paths from SSH URLs. 2008-06-26 08:45:08 +02:00
convert.c Fixed text file auto-detection: treat EOF character 032 at the end of file as printable 2008-07-11 21:14:27 -07:00
copy.c copy.c: copy_fd - correctly report write errors 2008-04-22 21:21:08 -07:00
csum-file.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
csum-file.h Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
ctype.c ctype.c: protect tiny C preprocessor constants 2008-08-27 16:14:22 -07:00
daemon.c git-daemon: SysV needs the signal handler reinstated. 2008-08-12 15:41:08 -07:00
date.c Make my_mktime() public and rename it to tm_to_time_t() 2008-06-23 13:40:29 +02:00
decorate.c decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
decorate.h decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
delta.h Support fetching the memory usage of a delta index 2007-07-12 14:32:35 -07:00
diff-delta.c fix style of a few comments in diff-delta.c 2007-12-18 15:22:28 -08:00
diff-lib.c Fix buffer overflow in git diff 2008-07-16 14:03:24 -07:00
diff-no-index.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
diff.c Fix '--dirstat' with cross-directory renaming 2008-08-29 00:14:29 -07:00
diff.h Fix buffer overflow in git diff 2008-07-16 14:03:24 -07:00
diffcore-break.c rename: Break filepairs with different types. 2007-12-02 02:24:46 -08:00
diffcore-delta.c optimize diffcore-delta by sorting hash entries. 2007-10-04 00:05:36 -07:00
diffcore-order.c Use xmemdupz() in many places. 2007-09-18 17:42:17 -07:00
diffcore-pickaxe.c War on whitespace 2007-06-07 00:04:01 -07:00
diffcore-rename.c diff: make "too many files" rename warning optional 2008-05-03 13:40:43 -07:00
diffcore.h copy vs rename detection: avoid unnecessary O(n*m) loops 2007-10-26 23:18:06 -07:00
dir.c Fix escaping of glob special characters in pathspecs 2008-08-13 17:11:03 -07:00
dir.h gitignore: lazily find dtype 2008-02-05 00:46:49 -08:00
dump-cache-tree.c Do not use memcmp(sha1_1, sha1_2, 20) with hardcoded length. 2006-08-17 14:23:53 -07:00
editor.c editor.c: Libify launch_editor() 2008-07-25 17:09:38 -07:00
entry.c Fix possible Solaris problem in 'checkout_entry()' 2008-03-18 22:18:57 -07:00
environment.c Make use of stat.ctime configurable 2008-07-28 23:26:25 -07:00
exec_cmd.c Refactor, adding prepare_git_cmd(const char **argv) 2008-07-28 23:02:11 -07:00
exec_cmd.h Refactor, adding prepare_git_cmd(const char **argv) 2008-07-28 23:02:11 -07:00
fast-import.c Support gitlinks in fast-import. 2008-07-19 11:25:51 -07:00
fetch-pack.h Teach fetch-pack/upload-pack about --include-tag 2008-03-04 23:28:14 -08:00
fixup-builtins make remove-dashes: apply to scripts and programs as well, not just to builtins 2008-07-11 21:13:17 -07:00
fsck.c fsck.c: fix bogus "empty tree" check 2008-03-05 10:32:01 -08:00
fsck.h add common fsck error printing function 2008-02-25 23:57:35 -08:00
generate-cmdlist.sh Consolidate command list to one. 2007-12-01 23:48:28 -08:00
git-add--interactive.perl Make git-add -i accept ranges like 7- 2008-08-01 23:26:40 -07:00
git-am.sh git-am: ignore --binary option 2008-08-16 02:32:36 -07:00
git-archimport.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-bisect.sh Merge branch 'maint' 2008-08-11 19:24:28 -07:00
git-compat-util.h Merge branch 'mv/merge-in-c' 2008-07-15 19:09:46 -07:00
git-cvsexportcommit.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-cvsimport.perl Merge branch 'maint' 2008-08-05 21:21:08 -07:00
git-cvsserver.perl cvsserver: Add cvs co -c support 2008-07-19 11:17:43 -07:00
git-filter-branch.sh filter-branch: be more helpful when an annotated tag changes 2008-08-08 16:19:51 -07:00
git-instaweb.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-lost-found.sh Merge branch 'ph/parseopt-sh' 2007-11-17 21:39:37 -08:00
git-merge-octopus.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-one-file.sh git-merge-one-file: fix longstanding stupid thinko 2008-03-18 22:17:17 -07:00
git-merge-resolve.sh Fixing comment in merge strategies 2007-08-30 17:18:22 -07:00
git-mergetool.sh Remove the use of '--' in merge program invocation 2008-06-19 14:13:55 -07:00
git-parse-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-pull.sh Ignore dirty submodule states in "git pull --rebase" 2008-07-23 11:36:56 -07:00
git-quiltimport.sh Rename .git/rebase to .git/rebase-apply 2008-07-21 18:51:47 -07:00
git-rebase--interactive.sh rebase -i -p: fix parent rewriting 2008-08-13 15:17:10 -07:00
git-rebase.sh Improve error output of git-rebase 2008-08-16 23:21:18 -07:00
git-relink.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-repack.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-request-pull.sh git-request-pull: replace call to deprecated peek-remote 2008-07-13 16:08:27 -07:00
git-send-email.perl Merge branch 'maint' 2008-07-25 13:56:36 -07:00
git-sh-setup.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-stash.sh git-stash: improve synopsis in help and manual page 2008-08-16 02:58:18 -07:00
git-submodule.sh git-submodule: move ill placed shift. 2008-08-01 23:16:38 -07:00
git-svn.perl git-svn: fix dcommit to urls with embedded usernames 2008-08-20 23:48:07 -07:00
git-web--browse.sh web--browse: use custom commands defined at config time 2008-03-14 00:31:06 -07:00
git.c Record the command invocation path early 2008-07-25 17:41:13 -07:00
git.spec.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
graph.c git log --graph: print '*' for all commits, including merges 2008-06-06 11:56:43 -07:00
graph.h log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
grep.c Move buffer_is_binary() to xdiff-interface.h 2007-06-15 23:27:23 -07:00
grep.h grep --all-match 2006-09-27 23:59:09 -07:00
hash-object.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
hash.c Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
hash.h Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
help.c Fix 'git help help' 2008-08-21 22:18:21 -07:00
http-push.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
http-walker.c Merge branch 'maint' 2008-07-19 11:28:06 -07:00
http.c http.c: Use 'git_config_string' to clean up SSL config. 2008-07-05 17:42:46 -07:00
http.h Work around gcc warnings from curl headers 2008-07-04 00:37:40 -07:00
ident.c Replace uses of "git-var" with "git var" 2008-07-30 11:42:01 -07:00
imap-send.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
index-pack.c index-pack: setup git repository 2008-08-26 16:25:48 -07:00
interpolate.c Avoid unnecessary "if-before-free" tests. 2008-02-22 14:14:40 -08:00
interpolate.h Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
list-objects.c list-objects.c::process_tree/blob: check for NULL 2008-02-18 19:25:26 -08:00
list-objects.h pack-objects: further work on internal rev-list logic. 2006-09-07 02:46:02 -07:00
ll-merge.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
ll-merge.h merge-recursive: split low-level merge functions out. 2008-02-18 00:46:13 -08:00
lockfile.c rollback lock files on more signals than just SIGINT 2008-05-31 14:33:59 -07:00
log-tree.c format-patch: Produce better output with --inline or --attach 2008-07-29 23:18:15 -07:00
log-tree.h Remove dead code: show_log() sep argument and diff_options.msg_sep 2008-05-03 11:48:03 -07:00
mailmap.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
mailmap.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
match-trees.c Improved const correctness for strings 2007-10-21 01:43:27 -04:00
merge-file.c xdl_diff: identify call sites. 2007-12-13 23:04:26 -08:00
merge-index.c git-merge-index documentation: clarify synopsis 2008-02-22 07:02:40 -08:00
merge-recursive.h Build-in merge-recursive 2008-02-09 23:16:51 -08:00
merge-tree.c Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
mktag.c mktag.c: tweak validation of tagger field and adjust test script 2008-03-31 22:43:34 -07:00
mktree.c Rework unquote_c_style to work on a strbuf. 2007-09-20 23:32:18 -07:00
name-hash.c Make hash_name_lookup able to do case-independent lookups 2008-04-09 01:22:25 -07:00
object.c parse_object_buffer: don't ignore errors from the object specific parsing functions 2008-02-03 16:04:57 -08:00
object.h Remove unused object-ref code 2008-02-25 23:57:35 -08:00
pack-check.c verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pack-redundant.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
pack-refs.c Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-revindex.h call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-write.c index-pack: be careful after fixing up the header/footer 2008-08-27 13:33:56 -07:00
pack.h verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pager.c Windows: Make the pager work. 2008-06-26 08:47:15 +02:00
parse-options.c Sync with 1.5.6.5 2008-08-06 13:50:48 -07:00
parse-options.h Sync with 1.5.6.5 2008-08-06 13:50:48 -07:00
patch-delta.c make patch_delta() error cases a bit more verbose 2006-12-18 15:30:17 -08:00
patch-id.c War on whitespace 2007-06-07 00:04:01 -07:00
patch-ids.c Make the diff_options bitfields be an unsigned with explicit masks. 2007-11-11 16:54:15 -08:00
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
path.c Fix typo in comments of longest_ancestor_length() 2008-08-11 16:44:54 -07:00
pkt-line.c Cleanup xread() loops to use read_in_full() 2008-05-03 22:15:25 -07:00
pkt-line.h Fix pkt-line.h to compile with a non-GCC compiler 2006-06-26 02:11:53 -07:00
pretty.c pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
quote.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
quote.h Make private quote_path() in wt-status.c available as quote_path_relative() 2008-03-07 21:22:25 -08:00
reachable.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
reachable.h Move traversal of reachable objects into a separate library. 2007-01-06 22:57:34 -08:00
read-cache.c unpack_trees(): protect the handcrafted in-core index from read_cache() 2008-08-23 18:09:27 -07:00
receive-pack.c Record the command invocation path early 2008-07-25 17:41:13 -07:00
reflog-walk.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
reflog-walk.h git log -g: Complain, but do not fail, when no reflogs are there 2007-07-24 17:28:10 -07:00
refs.c Merge branch 'maint' 2008-07-09 00:19:50 -07:00
refs.h Allow for having for_each_ref() list extra refs 2008-05-04 17:41:44 -07:00
remote.c remote.c: remove useless if-before-free test 2008-08-19 21:09:30 -07:00
remote.h Refactor "tracking statistics" code used by "git checkout" 2008-07-02 23:32:25 -07:00
rerere.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
rerere.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
revision.c Fix "git log -i --grep" 2008-08-24 23:28:02 -07:00
revision.h Fix "git log -i --grep" 2008-08-24 23:28:02 -07:00
run-command.c Add output flushing before fork() 2008-08-04 21:46:42 -07:00
run-command.h Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
send-pack.h Teach send-pack a mirror mode 2007-11-09 21:14:10 -08:00
server-info.c Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
setup.c Merge branch 'dr/ceiling' 2008-07-07 02:17:23 -07:00
sha1-lookup.c sha1-lookup: make selection of 'middle' less aggressive 2008-04-09 01:30:18 -07:00
sha1-lookup.h sha1-lookup: more memory efficient search in sorted list of SHA-1 2008-04-09 01:23:52 -07:00
sha1_file.c Merge branch 'lt/config-fsync' into maint 2008-08-07 11:40:29 -07:00
sha1_name.c ignore non-existent refs in dwim_log() 2008-07-23 18:11:04 -07:00
shallow.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
shell.c make git-shell paranoid about closed stdin/stdout/stderr 2008-08-29 00:14:29 -07:00
shortlog.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
show-index.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sideband.c recv_sideband: Do not use ANSI escape sequence on dumb terminals. 2008-01-09 12:23:59 -08:00
sideband.h atomic write for sideband remote messages 2006-10-11 11:13:01 -07:00
strbuf.c Add some useful functions for strbuf manipulation. 2008-07-13 14:04:04 -07:00
strbuf.h editor.c: Libify launch_editor() 2008-07-25 17:09:38 -07:00
string-list.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
string-list.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
symlinks.c Optimize symlink/directory detection 2008-05-10 18:16:31 -07:00
tag.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
tag.h Be careful when dereferencing tags. 2005-11-02 16:50:58 -08:00
tar.h tar-tree: Introduce write_entry() 2006-03-25 16:35:43 -08:00
test-chmtime.c Add test-chmtime: a utility to change mtime on files 2007-02-25 11:09:56 -08:00
test-date.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
test-delta.c Fix compilation of test-delta 2007-05-01 02:59:08 -07:00
test-genrandom.c simple random data generator for tests 2007-04-11 19:23:32 -07:00
test-match-trees.c A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
test-parse-options.c test-parse-options: use appropriate cast in length_callback 2008-08-13 18:11:44 -07:00
test-path-utils.c Add support for GIT_CEILING_DIRECTORIES 2008-05-23 14:15:01 -07:00
test-sha1.c test-sha1: test hashing large buffer 2006-06-24 02:59:20 -07:00
test-sha1.sh more tr portability test script fixes 2008-03-13 00:57:52 -07:00
thread-utils.c pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
thread-utils.h pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
trace.c Trace and quote with argv: get rid of unneeded count argument. 2007-12-03 22:11:53 -08:00
transport.c Merge branch 'maint' 2008-08-09 01:40:08 -07:00
transport.h Mark the list of refs to fetch as const 2008-05-04 17:41:44 -07:00
tree-diff.c Fix buffer overflow in git diff 2008-07-16 14:03:24 -07:00
tree-walk.c Fix tree-walking compare_entry() in the presense of --prefix 2008-03-09 00:43:47 -08:00
tree-walk.h Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
tree.c add context pointer to read_tree_recursive() 2008-07-15 07:17:59 -07:00
tree.h add context pointer to read_tree_recursive() 2008-07-15 07:17:59 -07:00
unpack-file.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
unpack-trees.c unpack_trees(): protect the handcrafted in-core index from read_cache() 2008-08-23 18:09:27 -07:00
unpack-trees.h unpack-trees: allow Porcelain to give different error messages 2008-05-19 19:30:13 -07:00
update-server-info.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
upload-pack.c Record the command invocation path early 2008-07-25 17:41:13 -07:00
usage.c print warning/error/fatal messages in one shot 2007-11-09 22:25:36 -08:00
utf8.c utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
utf8.h utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
var.c Replace uses of "git-var" with "git var" 2008-07-30 11:42:01 -07:00
walker.c Fix "git clone http://$URL" to check out the worktree when asked 2008-06-04 13:33:25 -07:00
walker.h Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
wrapper.c Move read_in_full() and write_in_full() to wrapper.c 2008-07-20 17:17:09 -07:00
write_or_die.c Move read_in_full() and write_in_full() to wrapper.c 2008-07-20 17:17:09 -07:00
ws.c Teach "diff --check" about new blank lines at end 2008-06-26 22:07:26 -07:00
wt-status.c Merge branch 'jc/report-tracking' 2008-07-13 15:15:23 -07:00
wt-status.h Add argument 'no' commit/status option -u|--untracked-files 2008-06-09 15:48:19 -07:00
xdiff-interface.c Merge branch 'maint' 2008-03-14 00:16:42 -07:00
xdiff-interface.h xdl_diff: identify call sites. 2007-12-13 23:04:26 -08:00

README

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public License.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/tutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org. To subscribe
to the list, send an email with just "subscribe git" in the body to
majordomo@vger.kernel.org. The mailing list archives are available at
http://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.