Julian Foad wrote on Wed, Oct 01, 2014 at 10:52:42 +0100: > Daniel Shahaf wrote in the thread "No no-op changes": > > Should we provide an "official" way to create an empty revision? That > > is, a revision whose changed-paths list is empty? > > > > Use-cases: > > > > 1. Suppose last backup is r100 and revisions r101:r105 were lost; then > > after restoring the backup, the admin would create 5 empty revisions. > > > > 2. Force an empty revision for whatever reason, such as to make the > > revnums sync to something: > > 2.1. See r3 of the regression test merge_tests.py#125 svnmucc_abuse_1(). > > 2.2. W hen loading our repository to the ASF repository, if Joe had > > created 26 empty revisions, then The Offset would have been 840100 > > rather than 840074, which would make our mental math easier. > > What should the author and log message be on the empty revs? I suppose > these need to be optionally specified, defaulting to blank? >
The log message should default to a stock log message (like SVNAutoversioning and 'svndumpfilter exclude' without --renumber-revs), not to an empty one. As in SVNAutoversioning, we might want an svn:empty-revision boolean revprop. The author of a revision created by svnadmin is "the administrator"; we have not defined a way to represent this value in an svn:author revprop. > What should the date stamps be on the empty revs? A thought: it seems > cleaner to specify that they should all have the same date stamp than > that they do/don't/may all have different date stamps. (Imagine a > future back-end in which we can create millions of 'virtual' empty > revs in O(1) time and space as long as their rev-props are all > identical.) The default for 'svnadmin load --prefix-empty-revs' > without '--ignore-dates' ("ignore revision date stamps found in the > stream") should, I suppose, be that all the prefix empty revs have the > same date stamp as the first revision loaded. > I don't see what API-consumer-level purpose having the same svn:date would serve; it seems to me it would suffice to guarantee r100 < r101 ≤ r102 ≤ r103 ≤ r104 ≤ r105 < r106 (where "x < y" ⇔ "svn:date value of y is younger than that of x", and the promise regarding r106 is conditional upon that revision being a "normal" commit ( load operation)). If the purpose of the same-dateness was to make detecting the range easier, we could achieve that explicitly by setting svn:empty-revisions-start=101 and svn:empty-revisions-end=105 revprops on each revision in the range (r101:r105). Thanks for your feedback, Julian. I've filed issue #4521 to track this: http://subversion.tigris.org/issues/show_bug.cgi?id=4521 "svnadmin should provide a way to create empty revisions" Daniel > - Julian > > [1] > <http://www.timj.co.uk/2011/09/generating-emptypadding-revisions-in-an-svn-dump/> > [2] > <http://stackoverflow.com/questions/7030041/can-i-create-a-subversion-repository-starting-at-another-number>