Code

archive: refactor list of archive formats
[git.git] / archive-tar.c
index 1ab1a2caf53b01b5704cb9f61e9584d2ca3e553d..930375bf2101be2b25472afaddc192f3c8cf32f9 100644 (file)
@@ -234,12 +234,10 @@ static int git_tar_config(const char *var, const char *value, void *cb)
        return 0;
 }
 
-int write_tar_archive(struct archiver_args *args)
+static int write_tar_archive(struct archiver_args *args)
 {
        int err = 0;
 
-       git_config(git_tar_config, NULL);
-
        if (args->commit_sha1)
                err = write_global_extended_header(args);
        if (!err)
@@ -248,3 +246,15 @@ int write_tar_archive(struct archiver_args *args)
                write_trailer();
        return err;
 }
+
+static struct archiver tar_archiver = {
+       "tar",
+       write_tar_archive,
+       0
+};
+
+void init_tar_archiver(void)
+{
+       register_archiver(&tar_archiver);
+       git_config(git_tar_config, NULL);
+}