ifix when commit has no parent - stagit-gopher - A git gopher frontend. (mirror) Err bitreich.org 70 hgit clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ URL:git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ bitreich.org 70 1Log /scm/stagit-gopher/log.gph bitreich.org 70 1Files /scm/stagit-gopher/files.gph bitreich.org 70 1Refs /scm/stagit-gopher/refs.gph bitreich.org 70 1Tags /scm/stagit-gopher/tag bitreich.org 70 1README /scm/stagit-gopher/file/README.gph bitreich.org 70 1LICENSE /scm/stagit-gopher/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 55b823b226194cd25864f1b61bc5b4f343e4e822 /scm/stagit-gopher/commit/55b823b226194cd25864f1b61bc5b4f343e4e822.gph bitreich.org 70 1parent a523491d6cea4d7fff9b3bdeeb79842412dc31cd /scm/stagit-gopher/commit/a523491d6cea4d7fff9b3bdeeb79842412dc31cd.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Mon, 7 Dec 2015 21:16:28 +0100 Err bitreich.org 70 i Err bitreich.org 70 ifix when commit has no parent Err bitreich.org 70 i Err bitreich.org 70 ialso dont show parent when there is no id for it. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M urmoms.c | 41 ++++++++++++++++++++----------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 26 insertions(+), 15 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/urmoms.c b/urmoms.c /scm/stagit-gopher/file/urmoms.c.gph bitreich.org 70 i@@ -168,7 +168,7 @@ printcommit(FILE *fp, git_commit *commit) Err bitreich.org 70 i fprintf(fp, "commit %s\n", Err bitreich.org 70 i relpath, buf, buf); Err bitreich.org 70 i Err bitreich.org 70 i- if (git_oid_tostr(buf, sizeof(buf), git_commit_parent_id(commit, 0))) Err bitreich.org 70 i+ if (git_oid_tostr(buf, sizeof(buf), git_commit_parent_id(commit, 0)) && buf[0]) Err bitreich.org 70 i fprintf(fp, "parent %s\n", Err bitreich.org 70 i relpath, buf, buf); Err bitreich.org 70 i Err bitreich.org 70 i@@ -225,12 +225,15 @@ printshowfile(git_commit *commit) Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i printcommit(fp, commit); Err bitreich.org 70 i Err bitreich.org 70 i- if ((error = git_commit_parent(&parent, commit, 0))) Err bitreich.org 70 i- return; Err bitreich.org 70 i if ((error = git_commit_tree(&commit_tree, commit))) Err bitreich.org 70 i goto err; Err bitreich.org 70 i- if ((error = git_commit_tree(&parent_tree, parent))) Err bitreich.org 70 i- goto err; Err bitreich.org 70 i+ if (!(error = git_commit_parent(&parent, commit, 0))) { Err bitreich.org 70 i+ if ((error = git_commit_tree(&parent_tree, parent))) Err bitreich.org 70 i+ goto err; /* TODO: handle error */ Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ parent = NULL; Err bitreich.org 70 i+ parent_tree = NULL; Err bitreich.org 70 i+ } Err bitreich.org 70 i if ((error = git_diff_tree_to_tree(&diff, repo, parent_tree, commit_tree, NULL))) Err bitreich.org 70 i goto err; Err bitreich.org 70 i Err bitreich.org 70 i@@ -334,7 +337,7 @@ writelog(FILE *fp) Err bitreich.org 70 i size_t i, nfiles, ndel, nadd; Err bitreich.org 70 i const char *summary; Err bitreich.org 70 i char buf[GIT_OID_HEXSZ + 1]; Err bitreich.org 70 i- int error; Err bitreich.org 70 i+ int error, ret = 0; Err bitreich.org 70 i Err bitreich.org 70 i mkdir("commit", 0755); Err bitreich.org 70 i Err bitreich.org 70 i@@ -352,14 +355,20 @@ writelog(FILE *fp) Err bitreich.org 70 i Err bitreich.org 70 i relpath = ""; Err bitreich.org 70 i Err bitreich.org 70 i- if (git_commit_lookup(&commit, repo, &id)) Err bitreich.org 70 i- return 1; /* TODO: error */ Err bitreich.org 70 i- if ((error = git_commit_parent(&parent, commit, 0))) Err bitreich.org 70 i- continue; /* TODO: handle error */ Err bitreich.org 70 i+ if (git_commit_lookup(&commit, repo, &id)) { Err bitreich.org 70 i+ ret = 1; Err bitreich.org 70 i+ goto err; Err bitreich.org 70 i+ } Err bitreich.org 70 i if ((error = git_commit_tree(&commit_tree, commit))) Err bitreich.org 70 i- continue; /* TODO: handle error */ Err bitreich.org 70 i- if ((error = git_commit_tree(&parent_tree, parent))) Err bitreich.org 70 i- continue; /* TODO: handle error */ Err bitreich.org 70 i+ goto errdiff; /* TODO: handle error */ Err bitreich.org 70 i+ if (!(error = git_commit_parent(&parent, commit, 0))) { Err bitreich.org 70 i+ if ((error = git_commit_tree(&parent_tree, parent))) Err bitreich.org 70 i+ goto errdiff; /* TODO: handle error */ Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ parent = NULL; Err bitreich.org 70 i+ parent_tree = NULL; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ Err bitreich.org 70 i if ((error = git_diff_tree_to_tree(&diff, repo, parent_tree, commit_tree, NULL))) Err bitreich.org 70 i continue; /* TODO: handle error */ Err bitreich.org 70 i if (git_diff_get_stats(&stats, diff)) Err bitreich.org 70 i@@ -399,14 +408,16 @@ writelog(FILE *fp) Err bitreich.org 70 i relpath = "../"; Err bitreich.org 70 i printshowfile(commit); Err bitreich.org 70 i Err bitreich.org 70 i+errdiff: Err bitreich.org 70 i git_diff_free(diff); Err bitreich.org 70 i git_commit_free(commit); Err bitreich.org 70 i } Err bitreich.org 70 i fprintf(fp, ""); Err bitreich.org 70 i+err: Err bitreich.org 70 i git_revwalk_free(w); Err bitreich.org 70 i relpath = ""; Err bitreich.org 70 i Err bitreich.org 70 i- return 0; Err bitreich.org 70 i+ return ret; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i@@ -439,7 +450,7 @@ printcommitatom(FILE *fp, git_commit *commit) Err bitreich.org 70 i Err bitreich.org 70 i fputs("", fp); Err bitreich.org 70 i fprintf(fp, "commit %s\n", buf); Err bitreich.org 70 i- if (git_oid_tostr(buf, sizeof(buf), git_commit_parent_id(commit, 0))) Err bitreich.org 70 i+ if (git_oid_tostr(buf, sizeof(buf), git_commit_parent_id(commit, 0)) && buf[0]) Err bitreich.org 70 i fprintf(fp, "parent %s\n", buf); Err bitreich.org 70 i Err bitreich.org 70 i if ((count = (int)git_commit_parentcount(commit)) > 1) { Err bitreich.org 70 .