Merge branch 'lt/merge-tree'
authorJunio C Hamano <junkio@cox.net>
Thu, 13 Jul 2006 05:31:22 +0000 (22:31 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 13 Jul 2006 05:31:22 +0000 (22:31 -0700)
* lt/merge-tree:
Improved three-way blob merging code
Prepare "git-merge-tree" for future work
xdiff: generate "anti-diffs" aka what is common to two files

1  2 
Makefile
diff --combined Makefile
index e75fb133aab91253ff85c312a71a26f3a52f915c,e880457526ea2fa42eef9577294c9f539499e7f6..649ed4cdc2eb9be953efdda57fb2de7acbf47aa4
+++ b/Makefile
@@@ -33,10 -33,6 +33,10 @@@ all
  # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
  # Enable it on Windows.  By default, symrefs are still used.
  #
 +# Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability
 +# tests.  These tests take up a significant amount of the total test time
 +# but are not needed unless you plan to talk to SVN repos.
 +#
  # Define PPC_SHA1 environment variable when running make to make use of
  # a bundled SHA1 routine optimized for PowerPC.
  #
@@@ -64,7 -60,7 +64,7 @@@
  # Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
  # a missing newline at the end of the file.
  #
 -# Define NO_PYTHON if you want to loose all benefits of the recursive merge.
 +# Define NO_PYTHON if you want to lose all benefits of the recursive merge.
  #
  # Define COLLISION_CHECK below if you believe that SHA1's
  # 1461501637330902918203684832716283019655932542976 hashes do not give you
@@@ -135,10 -131,10 +135,10 @@@ SCRIPT_SH = 
  
  SCRIPT_PERL = \
        git-archimport.perl git-cvsimport.perl git-relink.perl \
 -      git-shortlog.perl git-fmt-merge-msg.perl git-rerere.perl \
 +      git-shortlog.perl git-rerere.perl \
        git-annotate.perl git-cvsserver.perl \
        git-svnimport.perl git-mv.perl git-cvsexportcommit.perl \
 -      git-send-email.perl
 +      git-send-email.perl git-svn.perl
  
  SCRIPT_PYTHON = \
        git-merge-recursive.py
  SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
          $(patsubst %.perl,%,$(SCRIPT_PERL)) \
          $(patsubst %.py,%,$(SCRIPT_PYTHON)) \
 -        git-cherry-pick git-status
 +        git-cherry-pick git-status git-instaweb
  
  # The ones that do not have to link with lcrypto, lz nor xdiff.
  SIMPLE_PROGRAMS = \
@@@ -177,8 -173,7 +177,8 @@@ BUILT_INS = git-log$X git-whatchanged$
        git-ls-files$X git-ls-tree$X git-get-tar-commit-id$X \
        git-read-tree$X git-commit-tree$X git-write-tree$X \
        git-apply$X git-show-branch$X git-diff-files$X git-update-index$X \
 -      git-diff-index$X git-diff-stages$X git-diff-tree$X git-cat-file$X
 +      git-diff-index$X git-diff-stages$X git-diff-tree$X git-cat-file$X \
 +      git-fmt-merge-msg$X
  
  # what 'all' will build and 'install' will install, in gitexecdir
  ALL_PROGRAMS = $(PROGRAMS) $(SIMPLE_PROGRAMS) $(SCRIPTS)
@@@ -222,7 -217,7 +222,7 @@@ LIB_OBJS = 
        server-info.o setup.o sha1_file.o sha1_name.o strbuf.o \
        tag.o tree.o usage.o config.o environment.o ctype.o copy.o \
        fetch-clone.o revision.o pager.o tree-walk.o xdiff-interface.o \
-       alloc.o $(DIFF_OBJS)
+       alloc.o merge-file.o $(DIFF_OBJS)
  
  BUILTIN_OBJS = \
        builtin-log.o builtin-help.o builtin-count.o builtin-diff.o builtin-push.o \
        builtin-apply.o builtin-show-branch.o builtin-diff-files.o \
        builtin-diff-index.o builtin-diff-stages.o builtin-diff-tree.o \
        builtin-cat-file.o builtin-mailsplit.o builtin-stripspace.o \
 -      builtin-update-ref.o
 +      builtin-update-ref.o builtin-fmt-merge-msg.o
  
  GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
  LIBS = $(GITLIBS) -lz
@@@ -473,7 -468,7 +473,7 @@@ ifdef NO_ACCURATE_DIF
        ALL_CFLAGS += -DNO_ACCURATE_DIFF
  endif
  
 -# Shell quote (do not use $(call) to accomodate ancient setups);
 +# Shell quote (do not use $(call) to accommodate ancient setups);
  
  SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
  
@@@ -518,7 -513,6 +518,7 @@@ common-cmds.h: Documentation/git-*.tx
  $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
        rm -f $@ $@+
        sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 +          -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
            -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
            -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
            -e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \
@@@ -551,20 -545,6 +551,20 @@@ git-status: git-commi
        cp $< $@+
        mv $@+ $@
  
 +git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
 +      rm -f $@ $@+
 +      sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 +          -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
 +          -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
 +          -e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \
 +          -e '/@@GITWEB_CGI@@/r gitweb/gitweb.cgi' \
 +          -e '/@@GITWEB_CGI@@/d' \
 +          -e '/@@GITWEB_CSS@@/r gitweb/gitweb.css' \
 +          -e '/@@GITWEB_CSS@@/d' \
 +          $@.sh > $@+
 +      chmod +x $@+
 +      mv $@+ $@
 +
  # These can record GIT_VERSION
  git$X git.spec \
        $(patsubst %.sh,%,$(SCRIPT_SH)) \
@@@ -607,11 -587,11 +607,11 @@@ git-ssh-push$X: rsh.
  git-imap-send$X: imap-send.o $(LIB_FILE)
  
  http.o http-fetch.o http-push.o: http.h
 -git-http-fetch$X: fetch.o http.o http-fetch.o $(LIB_FILE)
 +git-http-fetch$X: fetch.o http.o http-fetch.o $(GITLIBS)
        $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
  
 -git-http-push$X: revision.o http.o http-push.o $(LIB_FILE)
 +git-http-push$X: revision.o http.o http-push.o $(GITLIBS)
        $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
  
@@@ -657,7 -637,6 +657,7 @@@ GIT-CFLAGS: .FORCE-GIT-CFLAG
  # with that.
  
  export NO_PYTHON
 +export NO_SVN_TESTS
  
  test: all
        $(MAKE) -C t/ all
@@@ -671,12 -650,6 +671,12 @@@ test-delta$X: test-delta.c diff-delta.
  test-dump-cache-tree$X: dump-cache-tree.o $(GITLIBS)
        $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
  
 +test-sha1$X: test-sha1.o $(GITLIBS)
 +      $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
 +
 +check-sha1:: test-sha1$X
 +      ./test-sha1.sh
 +
  check:
        for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; done