diff --git a/builtin-pack-refs.c b/builtin-pack-refs.c
index 09df4e1..a62f06b 100644
--- a/builtin-pack-refs.c
+++ b/builtin-pack-refs.c
@@ -3,9 +3,7 @@
 #include "refs.h"
 #include "object.h"
 #include "tag.h"
-
-static const char builtin_pack_refs_usage[] =
-"git-pack-refs [--all] [--prune | --no-prune]";
+#include "parse-options.h"
 
 struct ref_to_prune {
 	struct ref_to_prune *next;
@@ -117,31 +115,26 @@
 	return 0;
 }
 
+static char const * const pack_refs_usage[] = {
+	"git-pack-refs [options]",
+	NULL
+};
+
 int cmd_pack_refs(int argc, const char **argv, const char *prefix)
 {
-	int i;
-	unsigned int flags;
+	int all = 0, prune = 1;
+	unsigned int flags = 0;
+	struct option opts[] = {
+		OPT_BOOLEAN(0, "all", &all, "pack everything"),
+		OPT_BOOLEAN(0, "prune", &prune, "prune loose refs (default)"),
+		OPT_END(),
+	};
 
-	flags = PACK_REFS_PRUNE;
-	for (i = 1; i < argc; i++) {
-		const char *arg = argv[i];
-		if (!strcmp(arg, "--prune")) {
-			flags |= PACK_REFS_PRUNE; /* now the default */
-			continue;
-		}
-		if (!strcmp(arg, "--no-prune")) {
-			flags &= ~PACK_REFS_PRUNE;
-			continue;
-		}
-		if (!strcmp(arg, "--all")) {
-			flags |= PACK_REFS_ALL;
-			continue;
-		}
-		/* perhaps other parameters later... */
-		break;
-	}
-	if (i != argc)
-		usage(builtin_pack_refs_usage);
-
+	if (parse_options(argc, argv, opts, pack_refs_usage, 0))
+		usage_with_options(pack_refs_usage, opts);
+	if (prune)
+		flags |= PACK_REFS_PRUNE;
+	if (all)
+		flags |= PACK_REFS_ALL;
 	return pack_refs(flags);
 }
