aboutsummaryrefslogtreecommitdiff
path: root/remote-testsvn.c
diff options
context:
space:
mode:
Diffstat (limited to 'remote-testsvn.c')
-rw-r--r--remote-testsvn.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/remote-testsvn.c b/remote-testsvn.c
index f87bf851b..0ff4a3126 100644
--- a/remote-testsvn.c
+++ b/remote-testsvn.c
@@ -51,23 +51,22 @@ static void terminate_batch(void)
}
/* NOTE: 'ref' refers to a git reference, while 'rev' refers to a svn revision. */
-static char *read_ref_note(const unsigned char sha1[20])
+static char *read_ref_note(const struct object_id *oid)
{
- const unsigned char *note_sha1;
+ const struct object_id *note_oid;
char *msg = NULL;
unsigned long msglen;
enum object_type type;
init_notes(NULL, notes_ref, NULL, 0);
- if (!(note_sha1 = get_note(NULL, sha1)))
+ if (!(note_oid = get_note(NULL, oid)))
return NULL; /* note tree not found */
- if (!(msg = read_sha1_file(note_sha1, &type, &msglen)))
+ if (!(msg = read_sha1_file(note_oid->hash, &type, &msglen)))
error("Empty notes tree. %s", notes_ref);
else if (!msglen || type != OBJ_BLOB) {
error("Note contains unusable content. "
"Is something else using this notes tree? %s", notes_ref);
- free(msg);
- msg = NULL;
+ FREE_AND_NULL(msg);
}
free_notes(NULL);
return msg;
@@ -99,8 +98,8 @@ static int parse_rev_note(const char *msg, struct rev_note *res)
return -1;
}
-static int note2mark_cb(const unsigned char *object_sha1,
- const unsigned char *note_sha1, char *note_path,
+static int note2mark_cb(const struct object_id *object_oid,
+ const struct object_id *note_oid, char *note_path,
void *cb_data)
{
FILE *file = (FILE *)cb_data;
@@ -109,14 +108,14 @@ static int note2mark_cb(const unsigned char *object_sha1,
enum object_type type;
struct rev_note note;
- if (!(msg = read_sha1_file(note_sha1, &type, &msglen)) ||
+ if (!(msg = read_sha1_file(note_oid->hash, &type, &msglen)) ||
!msglen || type != OBJ_BLOB) {
free(msg);
return 1;
}
if (parse_rev_note(msg, &note))
return 2;
- if (fprintf(file, ":%d %s\n", note.rev_nr, sha1_to_hex(object_sha1)) < 1)
+ if (fprintf(file, ":%d %s\n", note.rev_nr, oid_to_hex(object_oid)) < 1)
return 3;
return 0;
}
@@ -124,10 +123,8 @@ static int note2mark_cb(const unsigned char *object_sha1,
static void regenerate_marks(void)
{
int ret;
- FILE *marksfile = fopen(marksfilename, "w+");
+ FILE *marksfile = xfopen(marksfilename, "w+");
- if (!marksfile)
- die_errno("Couldn't create mark file %s.", marksfilename);
ret = for_each_note(NULL, 0, note2mark_cb, marksfile);
if (ret)
die("Regeneration of marks failed, returned %d.", ret);
@@ -148,9 +145,7 @@ static void check_or_regenerate_marks(int latestrev)
marksfile = fopen(marksfilename, "r");
if (!marksfile) {
regenerate_marks();
- marksfile = fopen(marksfilename, "r");
- if (!marksfile)
- die_errno("cannot read marks file %s!", marksfilename);
+ marksfile = xfopen(marksfilename, "r");
fclose(marksfile);
} else {
strbuf_addf(&sb, ":%d ", latestrev);
@@ -174,15 +169,15 @@ static int cmd_import(const char *line)
int code;
int dumpin_fd;
char *note_msg;
- unsigned char head_sha1[20];
+ struct object_id head_oid;
unsigned int startrev;
struct child_process svndump_proc = CHILD_PROCESS_INIT;
const char *command = "svnrdump";
- if (read_ref(private_ref, head_sha1))
+ if (read_ref(private_ref, head_oid.hash))
startrev = 0;
else {
- note_msg = read_ref_note(head_sha1);
+ note_msg = read_ref_note(&head_oid);
if(note_msg == NULL) {
warning("No note found for %s.", private_ref);
startrev = 0;