Index: /trunk/ippTools/share/releasetool_pendingrelgroup.sql
===================================================================
--- /trunk/ippTools/share/releasetool_pendingrelgroup.sql	(revision 35357)
+++ /trunk/ippTools/share/releasetool_pendingrelgroup.sql	(revision 35358)
@@ -5,2 +5,3 @@
     JOIN ippRelease USING(rel_id)
 WHERE relGroup.state = 'new'
+    AND relGroup.fault = 0
Index: /trunk/ippTools/src/releasetool.c
===================================================================
--- /trunk/ippTools/src/releasetool.c	(revision 35357)
+++ /trunk/ippTools/src/releasetool.c	(revision 35358)
@@ -832,4 +832,5 @@
     PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     PXOPT_LOOKUP_BOOL(simple, config->args,  "-simple", false);
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
 
     // find the parameters of all the exposures that we want to add to the release
@@ -852,4 +853,10 @@
 
     psFree(where);
+
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
 
     if (!p_psDBRunQuery(config->dbh, query)) {
@@ -1331,5 +1338,10 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    PXOPT_LOOKUP_S32(group_id, config->args,      "-group_id", true, false);
+    PXOPT_LOOKUP_S32(group_id, config->args,      "-group_id", false, false);
+    PXOPT_LOOKUP_STR(group_name, config->args,    "-group_name",  false, false);
+    if (!group_id && !group_name) {
+        psError(PXTOOLS_ERR_CONFIG, true, "either group_id or group_name is required\n");
+        return false;
+    }
 
     PXOPT_LOOKUP_STR(state,    config->args,    "-set_state",  false, false);
@@ -1352,4 +1364,5 @@
 
     PXOPT_COPY_S64(config->args, where, "-group_id", "relGroup.group_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-group_name", "relGroup.group_name", "==");
     // XXX TODO if label is enabled (for changing label or state for a block) we should
     // disallow setting some parameters such as exp_list_path
Index: /trunk/ippTools/src/releasetoolConfig.c
===================================================================
--- /trunk/ippTools/src/releasetoolConfig.c	(revision 35357)
+++ /trunk/ippTools/src/releasetoolConfig.c	(revision 35358)
@@ -195,9 +195,10 @@
     psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_zpt_stdev", 0,  "define zero point stdev", NAN);
     psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_fwhm_major", 0, "define fwhm_major", NAN);
-    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state (required)", NULL);
+    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state", NULL);
     psMetadataAddS16(definerelstackArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define fault", 0);
 
-    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
+    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-pretend", 0, "do not actually modify the database", false);
     psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
+    psMetadataAddU64(definerelstackArgs, PS_LIST_TAIL,  "-limit",   0, "limit result set to N items", 0);
 
     // -definerelgroup
@@ -240,5 +241,6 @@
     psMetadata *updaterelgroupArgs = psMetadataAlloc();
 
-    psMetadataAddS32(updaterelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID (required)", 0);
+    psMetadataAddS32(updaterelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID",  0);
+    psMetadataAddStr(updaterelgroupArgs,  PS_LIST_TAIL, "-group_name", 0, "select by group name", 0);
 
         // parameters of the relGroup
