Merge branch 'maint' to sync with GIT 1.5.2.2
authorJunio C Hamano <gitster@pobox.com>
Sat, 16 Jun 2007 08:22:10 +0000 (01:22 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 16 Jun 2007 08:22:10 +0000 (01:22 -0700)
.gitignore
Documentation/Makefile
Documentation/RelNotes-1.5.2.2.txt [new file with mode: 0644]
Documentation/asciidoc.conf
Documentation/git-cvsexportcommit.txt
Documentation/user-manual.txt
Makefile
compat/hstrerror.c [new file with mode: 0644]
git-compat-util.h
revision.c
index bd49cd4627a786d6dbcd7f0d17f0fddc2add7014..e8b060cbe43d13b82ad8686f7676a26ef559a609 100644 (file)
@@ -157,7 +157,7 @@ common-cmds.h
 *.tar.gz
 *.dsc
 *.deb
-git-core.spec
+git.spec
 *.exe
 *.[aos]
 *.py[co]
index 9cef4806d1a51bac670ebe192a4482fde95c9013..4edf788c3a8ddf39638028447ca78624305da778 100644 (file)
@@ -37,6 +37,9 @@ man7dir=$(mandir)/man7
 
 ASCIIDOC=asciidoc
 ASCIIDOC_EXTRA =
+ifdef ASCIIDOC8
+ASCIIDOC_EXTRA += -a asciidoc7compatible
+endif
 INSTALL?=install
 DOC_REF = origin/man
 
diff --git a/Documentation/RelNotes-1.5.2.2.txt b/Documentation/RelNotes-1.5.2.2.txt
new file mode 100644 (file)
index 0000000..f6393f8
--- /dev/null
@@ -0,0 +1,61 @@
+GIT v1.5.2.2 Release Notes
+==========================
+
+Fixes since v1.5.2.1
+--------------------
+
+* Usability fix
+
+  - git-gui is shipped with its updated blame interface.  It is
+    rumored that the older one was not just unusable but was
+    active health hazard, but this one is actually pretty.
+    Please see for yourself.
+
+* Bugfixes
+
+  - "git checkout fubar" was utterly confused when there is a
+    branch fubar and a tag fubar at the same time.  It correctly
+    checks out the branch fubar now.
+
+  - "git clone /path/foo" to clone a local /path/foo.git
+    repository left an incorrect configuration.
+
+  - "git send-email" correctly unquotes RFC 2047 quoted names in
+    the patch-email before using their values.
+
+  - We did not accept number of seconds since epoch older than
+    year 2000 as a valid timestamp.  We now interpret positive
+    integers more than 8 digits as such, which allows us to
+    express timestamps more recent than March 1973.
+
+  - git-cvsimport did not work when you have GIT_DIR to point
+    your repository at a nonstandard location.
+
+  - Some systems (notably, Solaris) lack hstrerror() to make
+    h_errno human readable; prepare a replacement
+    implementation.
+
+  - .gitignore file listed git-core.spec but what we generate is
+    git.spec, and nobody noticed for a long time.
+
+  - "git-merge-recursive" does not try to run file level merge
+    on binary files.
+
+  - "git-branch --track" did not create tracking configuration
+    correctly when the branch name had slash in it.
+
+  - The email address of the user specified with user.email
+    configuration was overriden by EMAIL environment variable.
+
+  - The tree parser did not warn about tree entries with
+    nonsense file modes, and assumed they must be blobs.
+
+  - "git log -z" without any other request to generate diff still
+    invoked the diff machinery, wasting cycles.
+
+* Documentation
+
+  - Many updates to fix stale or missing documentation.
+
+  - Although our documentation was primarily meant to be formatted
+    with AsciiDoc7, formatting with AsciiDoc8 is supported better.
index 99302c5bebb6017e34371bf12dafeab97447bda5..6b6220dfdbd6cacb8a05be4995279bbd0487fada 100644 (file)
@@ -8,7 +8,8 @@
 # the command.
 
 [attributes]
-caret=^
+plus=&#43;
+caret=&#94;
 startsb=&#91;
 endsb=&#93;
 tilde=&#126;
index 827711c3c9b8ad8c7ecb074c5ec1a9b887992526..6c423e3a2f1c69e523eeb9cc092126adc2691803 100644 (file)
@@ -76,7 +76,7 @@ $ git-cvsexportcommit -v <commit-sha1>
 $ cvs commit -F .mgs <files>
 ------------
 
-Merge pending patches into CVS automatically -- only if you really know what you are doing ::
+Merge pending patches into CVS automatically -- only if you really know what you are doing::
 +
 ------------
 $ export GIT_DIR=~/project/.git
index 0bfa21b3d2eddf2783890d880e3d5abc951b62fa..ff7c71d4fb73932dd0925cf9dd19c74544f68055 100644 (file)
@@ -2757,8 +2757,8 @@ As a result, the general consistency of an object can always be tested
 independently of the contents or the type of the object: all objects can
 be validated by verifying that (a) their hashes match the content of the
 file and (b) the object successfully inflates to a stream of bytes that
-forms a sequence of <ascii type without space> + <space> + <ascii decimal
-size> + <byte\0> + <binary object data>.
+forms a sequence of <ascii type without space> {plus} <space> {plus} <ascii decimal
+size> {plus} <byte\0> {plus} <binary object data>.
 
 The structured objects can further have their structure and
 connectivity to other objects verified. This is generally done with
index a70277b4417c8994156ff5c92e801791002ce069..c09dfaf3f094a4435e87a2ffcbe05f69a1f3ee3c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -107,6 +107,8 @@ all::
 # Define USE_STDEV below if you want git to care about the underlying device
 # change being considered an inode change from the update-cache perspective.
 #
+# Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8
+#
 # Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
 # MakeMaker (e.g. using ActiveState under Cygwin).
 #
@@ -410,6 +412,7 @@ ifeq ($(uname_S),SunOS)
        NEEDS_NSL = YesPlease
        SHELL_PATH = /bin/bash
        NO_STRCASESTR = YesPlease
+       NO_HSTRERROR = YesPlease
        ifeq ($(uname_R),5.8)
                NEEDS_LIBICONV = YesPlease
                NO_UNSETENV = YesPlease
@@ -654,6 +657,10 @@ endif
 ifdef NO_PERL_MAKEMAKER
        export NO_PERL_MAKEMAKER
 endif
+ifdef NO_HSTRERROR
+       COMPAT_CFLAGS += -DNO_HSTRERROR
+       COMPAT_OBJS += compat/hstrerror.o
+endif
 
 ifeq ($(TCLTK_PATH),)
 NO_TCLTK=NoThanks
@@ -684,6 +691,10 @@ ifndef V
 endif
 endif
 
+ifdef ASCIIDOC8
+       export ASCIIDOC8
+endif
+
 # Shell quote (do not use $(call) to accommodate ancient setups);
 
 SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
diff --git a/compat/hstrerror.c b/compat/hstrerror.c
new file mode 100644 (file)
index 0000000..069c555
--- /dev/null
@@ -0,0 +1,21 @@
+#include <string.h>
+#include <stdio.h>
+#include <netdb.h>
+
+const char *githstrerror(int err)
+{
+       static char buffer[48];
+       switch (err)
+       {
+       case HOST_NOT_FOUND:
+               return "Authoritative answer: host not found";
+       case NO_DATA:
+               return "Valid name, no data record of requested type";
+       case NO_RECOVERY:
+               return "Non recoverable errors, FORMERR, REFUSED, NOTIMP";
+       case TRY_AGAIN:
+               return "Non-authoritative \"host not found\", or SERVERFAIL";
+       }
+       sprintf(buffer, "Name resolution error %d", err);
+       return buffer;
+}
index 6bd8987b2774774fbbd3747a2b571b66ad78727b..b2ab3f82567d54607a07f4061153adae86854fa9 100644 (file)
@@ -167,6 +167,11 @@ extern size_t gitstrlcpy(char *, const char *, size_t);
 extern uintmax_t gitstrtoumax(const char *, char **, int);
 #endif
 
+#ifdef NO_HSTRERROR
+#define hstrerror githstrerror
+extern const char *githstrerror(int herror);
+#endif
+
 extern void release_pack_memory(size_t, int);
 
 static inline char* xstrdup(const char *str)
index b12c25e2b0c8e2c1d3bb097739f3c132a296c964..1f4590b89649a9d1397af2f35af142cc6ab36847 100644 (file)
@@ -1180,7 +1180,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
 
                        opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i);
                        if (opts > 0) {
-                               revs->diff = 1;
+                               if (strcmp(argv[i], "-z"))
+                                       revs->diff = 1;
                                i += opts - 1;
                                continue;
                        }