]> git.armaanb.net Git - stagit.git/blobdiff - stagit.c
simplify example.sh, thanks emg for the suggestion!
[stagit.git] / stagit.c
index f97ade984f8a08cbd370f4d39e878f999e0e9d56..c2ff96632c113349fbbc84191ac24edd733917ea 100644 (file)
--- a/stagit.c
+++ b/stagit.c
@@ -883,13 +883,10 @@ refs_cmp(const void *v1, const void *v2)
 {
        git_reference *r1 = (*(git_reference **)v1);
        git_reference *r2 = (*(git_reference **)v2);
-       int t1, t2;
-
-       t1 = git_reference_is_branch(r1);
-       t2 = git_reference_is_branch(r2);
+       int r;
 
-       if (t1 != t2)
-               return t1 - t2;
+       if ((r = git_reference_is_branch(r1) - git_reference_is_branch(r2)))
+               return r;
 
        return strcmp(git_reference_shorthand(r1),
                      git_reference_shorthand(r2));
@@ -1041,11 +1038,14 @@ main(int argc, char *argv[])
        }
 
        /* find HEAD */
-       if (git_revparse_single(&obj, repo, "HEAD"))
-               return 1;
-       head = git_object_id(obj);
+       if (!git_revparse_single(&obj, repo, "HEAD"))
+               head = git_object_id(obj);
        git_object_free(obj);
 
+       /* don't cache if there is no HEAD */
+       if (!head)
+               cachefile = NULL;
+
        /* use directory name as name */
        if ((name = strrchr(repodirabs, '/')))
                name++;
@@ -1141,7 +1141,8 @@ main(int argc, char *argv[])
                }
                fclose(wcachefp);
        } else {
-               writelog(fp, head);
+               if (head)
+                       writelog(fp, head);
        }
 
        fputs("</tbody></table>", fp);
@@ -1151,7 +1152,8 @@ main(int argc, char *argv[])
        /* files for HEAD */
        fp = efopen("files.html", "w");
        writeheader(fp, "Files");
-       writefiles(fp, head, "HEAD");
+       if (head)
+               writefiles(fp, head, "HEAD");
        writefooter(fp);
        fclose(fp);