]> git.ipfire.org Git - thirdparty/git.git/blobdiff - remote-testsvn.c
Merge branch 'rs/preserve-merges-unused-code-removal'
[thirdparty/git.git] / remote-testsvn.c
index bcebb4c789567eb4017a3a0132ba55c59c427991..636b2b62a60276920614cd14cdbcb34232d88573 100644 (file)
@@ -1,18 +1,19 @@
 #include "cache.h"
 #include "refs.h"
 #include "remote.h"
+#include "object-store.h"
 #include "strbuf.h"
 #include "url.h"
-#include "exec_cmd.h"
+#include "exec-cmd.h"
 #include "run-command.h"
 #include "vcs-svn/svndump.h"
 #include "notes.h"
-#include "argv-array.h"
+#include "strvec.h"
 
 static const char *url;
 static int dump_from_file;
 static const char *private_ref;
-static const char *remote_ref = "refs/heads/master";
+static char *remote_ref;
 static const char *marksfilename, *notes_ref;
 struct rev_note { unsigned int rev_nr; };
 
@@ -61,7 +62,7 @@ static char *read_ref_note(const struct object_id *oid)
        init_notes(NULL, notes_ref, NULL, 0);
        if (!(note_oid = get_note(NULL, oid)))
                return NULL;    /* note tree not found */
-       if (!(msg = read_sha1_file(note_oid->hash, &type, &msglen)))
+       if (!(msg = read_object_file(note_oid, &type, &msglen)))
                error("Empty notes tree. %s", notes_ref);
        else if (!msglen || type != OBJ_BLOB) {
                error("Note contains unusable content. "
@@ -108,7 +109,7 @@ static int note2mark_cb(const struct object_id *object_oid,
        enum object_type type;
        struct rev_note note;
 
-       if (!(msg = read_sha1_file(note_oid->hash, &type, &msglen)) ||
+       if (!(msg = read_object_file(note_oid, &type, &msglen)) ||
                        !msglen || type != OBJ_BLOB) {
                free(msg);
                return 1;
@@ -197,10 +198,10 @@ static int cmd_import(const char *line)
                        die_errno("Couldn't open svn dump file %s.", url);
        } else {
                svndump_proc.out = -1;
-               argv_array_push(&svndump_proc.args, command);
-               argv_array_push(&svndump_proc.args, "dump");
-               argv_array_push(&svndump_proc.args, url);
-               argv_array_pushf(&svndump_proc.args, "-r%u:HEAD", startrev);
+               strvec_push(&svndump_proc.args, command);
+               strvec_push(&svndump_proc.args, "dump");
+               strvec_push(&svndump_proc.args, url);
+               strvec_pushf(&svndump_proc.args, "-r%u:HEAD", startrev);
 
                code = start_command(&svndump_proc);
                if (code)
@@ -285,7 +286,7 @@ int cmd_main(int argc, const char **argv)
                        private_ref_sb = STRBUF_INIT, marksfilename_sb = STRBUF_INIT,
                        notes_ref_sb = STRBUF_INIT;
        static struct remote *remote;
-       const char *url_in;
+       const char *url_in, *remote_ref_short;
 
        setup_git_directory();
        if (argc < 2 || argc > 3) {
@@ -293,6 +294,9 @@ int cmd_main(int argc, const char **argv)
                return 1;
        }
 
+       remote_ref_short = git_default_branch_name();
+       remote_ref = xstrfmt("refs/heads/%s", remote_ref_short);
+
        remote = remote_get(argv[1]);
        url_in = (argc == 3) ? argv[2] : remote->url[0];
 
@@ -305,7 +309,8 @@ int cmd_main(int argc, const char **argv)
                url = url_sb.buf;
        }
 
-       strbuf_addf(&private_ref_sb, "refs/svn/%s/master", remote->name);
+       strbuf_addf(&private_ref_sb, "refs/svn/%s/%s",
+                   remote->name, remote_ref_short);
        private_ref = private_ref_sb.buf;
 
        strbuf_addf(&notes_ref_sb, "refs/notes/%s/revs", remote->name);