Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Tue, 3 Jan 2012 21:48:00 +0000 (13:48 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Jan 2012 21:48:00 +0000 (13:48 -0800)
* maint:
docs: describe behavior of relative submodule URLs
fix hang in git fetch if pointed at a 0 length bundle
Documentation: read-tree --prefix works with existing subtrees
Add MYMETA.json to perl/.gitignore

Documentation/git-read-tree.txt
Documentation/git-submodule.txt
bundle.c
perl/.gitignore
t/t5704-bundle.sh
index 5375549820bd6b9fecf3540b1e60ae50e74da0e6..a43e87448ba035278b58b191ea7c1c04179985a6 100644 (file)
@@ -83,11 +83,10 @@ OPTIONS
 
 --prefix=<prefix>/::
        Keep the current index contents, and read the contents
-       of the named tree-ish under the directory at `<prefix>`. The
-       original index file cannot have anything at the path
-       `<prefix>` itself, nor anything in the `<prefix>/`
-       directory.  Note that the `<prefix>/` value must end
-       with a slash.
+       of the named tree-ish under the directory at `<prefix>`.
+       The command will refuse to overwrite entries that already
+       existed in the original index file. Note that the `<prefix>/`
+       value must end with a slash.
 
 --exclude-per-directory=<gitignore>::
        When running the command with `-u` and `-m` options, the
index 6ec3fef0799222e67cb176d00aae2f583004032d..b72964947afcc39af3b97c5b9eeb1969b44e0d05 100644 (file)
@@ -79,7 +79,12 @@ to exist in the superproject. If <path> is not given, the
 <repository> is the URL of the new submodule's origin repository.
 This may be either an absolute URL, or (if it begins with ./
 or ../), the location relative to the superproject's origin
-repository. If the superproject doesn't have an origin configured
+repository (Please note that to specify a repository 'foo.git'
+which is located right next to a superproject 'bar.git', you'll
+have to use '../foo.git' instead of './foo.git' - as one might expect
+when following the rules for relative URLs - because the evaluation
+of relative URLs in Git is identical to that of relative directories).
+If the superproject doesn't have an origin configured
 the superproject is its own authoritative upstream and the current
 working directory is used instead.
 +
index 4742f2734eeb3dee117ab02a422056cfee4f71ea..b8acf3c18b600f1f413f95744ad281e3879b3f6e 100644 (file)
--- a/bundle.c
+++ b/bundle.c
@@ -31,8 +31,8 @@ static int strbuf_readline_fd(struct strbuf *sb, int fd)
        while (1) {
                char ch;
                ssize_t len = xread(fd, &ch, 1);
-               if (len < 0)
-                       return -1;
+               if (len <= 0)
+                       return len;
                strbuf_addch(sb, ch);
                if (ch == '\n')
                        break;
index 9235e73163204593379cdf6367133b5b503423c2..d5c6e22d0f74e075a49dd50cde6cbee5049a336c 100644 (file)
@@ -1,5 +1,6 @@
 perl.mak
 perl.mak.old
+MYMETA.json
 MYMETA.yml
 blib
 blibdirs
index 728ccd88c3d69f06bff2c3593ddc325f9186402c..4ae127d106c4a8ada0cea928affeff933bf0dbaa 100755 (executable)
@@ -53,4 +53,10 @@ test_expect_failure 'bundle --stdin <rev-list options>' '
 
 '
 
+test_expect_success 'empty bundle file is rejected' '
+
+    >empty-bundle && test_must_fail git fetch empty-bundle
+
+'
+
 test_done