repoman: add --digest=<y|n> option, bug #406875
authorZac Medico <zmedico@gentoo.org>
Sat, 17 Mar 2012 21:31:55 +0000 (14:31 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 17 Mar 2012 21:31:55 +0000 (14:31 -0700)
bin/repoman
man/repoman.1

index 80fcde29f68cb9b4645e9ea028c6c4b3fabaef1d..c5db1865f75e061601ef8502fe9a86b66a1c18a5 100755 (executable)
@@ -188,6 +188,10 @@ def ParseArgs(argv, qahelp):
        parser.add_option('-M', '--commitmsgfile', dest='commitmsgfile',
                help='specify a path to a file that contains a commit message')
 
+       parser.add_option('--digest',
+               type='choice', choices=('y', 'n'), metavar='<y|n>',
+               help='Automatically update Manifest digests for modified files')
+
        parser.add_option('-p', '--pretend', dest='pretend', default=False,
                action='store_true', help='don\'t commit or fix anything; just show what would be done')
        
@@ -656,6 +660,9 @@ if vcs is None:
 # TODO: shouldn't this just be switched on the repo, iso the VCS?
 check_changelog = options.echangelog not in ('y', 'force') and vcs in ('cvs', 'svn')
 
+if 'digest' in repoman_settings.features and options.digest != 'n':
+       options.digest = 'y'
+
 logging.debug("vcs: %s" % (vcs,))
 logging.debug("repo config: %s" % (repo_config,))
 logging.debug("options: %s" % (options,))
@@ -1236,8 +1243,7 @@ for x in effective_scanlist:
        generated_manifest = False
 
        if options.mode == "manifest" or \
-         (options.mode != 'manifest-check' and \
-         'digest' in repoman_settings.features) or \
+         (options.mode != 'manifest-check' and options.digest == 'y') or \
          options.mode in ('commit', 'fix') and not options.pretend:
                auto_assumed = set()
                fetchlist_dict = portage.FetchlistDict(checkdir,
index ddabbbb5bb87e7dd68444b0a58e6322fe16d97b6..37babcd4bf7fd4a4db0ea7bc884d94d5dfcb52a9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "REPOMAN" "1" "Feb 2012" "Portage VERSION" "Portage"
+.TH "REPOMAN" "1" "Mar 2012" "Portage VERSION" "Portage"
 .SH NAME
 repoman \- Gentoo's program to enforce a minimal level of quality assurance in packages added to the portage tree
 .SH SYNOPSIS
@@ -15,6 +15,21 @@ Note: \fBrepoman commit\fR only works \fIinside local\fR cvs, git, or subversion
 \fB-a\fR, \fB--ask\fR
 Request a confirmation before commiting
 .TP
+\fB\-\-digest=<y|n>\fR
+Automatically update Manifest digests for modified files. This
+option triggers a behavior that is very similar to that enabled
+by FEATURES="digest" in \fBmake.conf\fR(5). In order to enable
+this behavior by default for repoman alone, add
+\fB\-\-digest=y\fR to the \fIREPOMAN_DEFAULT_OPTS\fR variable in
+\fBmake.conf\fR(5). The \fBmanifest\-check\fR mode will
+automatically ignore the \-\-digest option.
+
+\fBNOTE:\fR
+This option does not trigger update of digests for Manifest DIST
+entries that already exist. Replacement of existing Manifest
+DIST entries can be forced by using the \fBmanifest\fR mode
+together with the \fB\-\-force\fR option.
+.TP
 \fB--force\fR
 Force commit to proceed, regardless of QA issues. For convenience, this option
 causes the most time consuming QA checks to be skipped. The commit message will