Merge branch 'master' of git://repo.or.cz/git/fastimport
authorJunio C Hamano <junkio@cox.net>
Wed, 25 Apr 2007 05:02:38 +0000 (22:02 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 25 Apr 2007 05:02:38 +0000 (22:02 -0700)
* 'master' of git://repo.or.cz/git/fastimport:
fast-import: size_t vs ssize_t
fix importing of subversion tars
Don't repack existing objects in fast-import

contrib/fast-import/import-tars.perl
fast-import.c
index 5585a8b2c575f92e6154e03641b467e5e54509f4..184214689dfd3f1204546b060adbffd3f6d79bbe 100755 (executable)
                }
                print FI "\n";
 
-               my $path = "$prefix$name";
+               my $path;
+               if ($prefix) {
+                       $path = "$prefix/$name";
+               } else {
+                       $path = "$name";
+               }
                $files{$path} = [$next_mark++, $mode];
 
                $commit_time = $mtime if $mtime > $commit_time;
index cdd629d6bc547609daabab6c1f3b73939fddb7b9..c4c8cb905e3bcdfb131af40da9f7e29ca86b4a01 100644 (file)
@@ -673,7 +673,7 @@ static void fixup_header_footer(void)
 
        buf = xmalloc(buf_sz);
        for (;;) {
-               size_t n = xread(pack_fd, buf, buf_sz);
+               ssize_t n = xread(pack_fd, buf, buf_sz);
                if (!n)
                        break;
                if (n < 0)
@@ -904,6 +904,12 @@ static int store_object(
        if (e->offset) {
                duplicate_count_by_type[type]++;
                return 1;
+       } else if (find_sha1_pack(sha1, packed_git)) {
+               e->type = type;
+               e->pack_id = MAX_PACK_ID;
+               e->offset = 1; /* just not zero! */
+               duplicate_count_by_type[type]++;
+               return 1;
        }
 
        if (last && last->data && last->depth < max_depth) {
@@ -2021,6 +2027,7 @@ static void import_marks(const char *input_file)
                        e = insert_object(sha1);
                        e->type = type;
                        e->pack_id = MAX_PACK_ID;
+                       e->offset = 1; /* just not zero! */
                }
                insert_mark(mark, e);
        }
@@ -2086,6 +2093,7 @@ int main(int argc, const char **argv)
        if (i != argc)
                usage(fast_import_usage);
 
+       prepare_packed_git();
        start_packfile();
        for (;;) {
                read_next_command();