On Mon, 1 Jun 2020 at 13:20, Sam Ruby <ru...@intertwingly.net> wrote: > > My feeling is mixed. > > I am not a fan of emeritus-* directories littering the > private/documents directory. Making them subfolders of an Emeritus > folder appeals to me. > > Like Sebb, I'd also think twice before considering moving members.txt. > > That being said, the idea of a single, atomic, commit appeals to me. > > Currently the following command returns an Access forbidden violation: > > svn checkout https://svn.apache.org/repos/private --depth empty > > It should be possible to make that work, with an ACL set up for ASF > members. Whether it is implemented as a new library function or via > new arguments to the existing function, it should be possible to > checkout out an empty copy of the entire private repository to a > temporary folder, and within that folder run svn update commands to > get the latest contents for individual files, then change the contents > of those file as well as other related svn add, svn move, or svn > delete commands, and then do a single svn commit.
It looks like svn commit accepts multiple workspaces. I think that means we can use the current repo layout. However, _svn.update would need to adjusted to pass the additional workspace paths > - Sam Ruby > > On Mon, Jun 1, 2020 at 7:41 AM sebb <seb...@gmail.com> wrote: > > > > On Sun, 31 May 2020 at 20:03, Craig Russell <apache....@gmail.com> wrote: > > > > > > The following is excerpted from memstat.json.rb. It assumes that we have > > > moved all of the emeritus files from subdirectories of documents to > > > subdirectories of documents/Emeritus. > > > > > > EMERITUS_DIR = ASF::SVN['documents/Emeritus'] > > > ... after the update of members.txt > > > # update the emeritus files > > > if @action == 'emeritus' > > > _svn.update (EMERITUS_DIR, 'Update emeritus file', env, _ do || > > > _.system "svn mv emeritus-requests-received/{@emeritusfilename} > > > emeritus" > > > end > > > elsif @action == 'rescind_emeritus' > > > _svn.update (EMERITUS_DIR, 'Update emeritus file', env, _ do || > > > _.system "svn mv emeritus-requests-received/{@emeritusfilename} > > > emeritus-requests-rescinded" > > > end > > > end > > > > > > > > > WDYT? > > > > I am not keen on moving things around. > > In particular, members.txt is likely to be used in lots of places. > > > > Note also the currently the emeritus/ and emeritus-requests-received/ > > directories are not checked out; they are listings only. > > We should also avoid having such files checked out if possible. > > > > It may be harder to automate, but that is far preferable to making > > layout changes and adding unnecessary checkouts to Whimsy. > > > > > Craig > > > > > > > On May 31, 2020, at 10:44 AM, Craig Russell <apache....@gmail.com> > > > > wrote: > > > > > > > > > > > > > > > >> On May 31, 2020, at 10:36 AM, Craig Russell <apache....@gmail.com > > > >> <mailto:apache....@gmail.com>> wrote: > > > >> > > > >> > > > >> > > > >>> On May 31, 2020, at 5:55 AM, Sam Ruby <ru...@intertwingly.net > > > >>> <mailto:ru...@intertwingly.net>> wrote: > > > >>> > > > >>> On Sun, May 31, 2020 at 12:50 AM Craig Russell <apache....@gmail.com > > > >>> <mailto:apache....@gmail.com>> wrote: > > > >>>> > > > >>>> So now I just need an example of svn code executed with no update > > > >>>> block and some code executed inside the update block. > > > >>> > > > >>> Publishing minutes after a board meeting involves a number of updates > > > >>> to different svn repositories: > > > >>> > > > >>> https://github.com/apache/whimsy/blob/master/www/board/agenda/views/actions/publish.json.rb > > > >>> > > > >>> <https://github.com/apache/whimsy/blob/master/www/board/agenda/views/actions/publish.json.rb> > > > >>> > > > >>> This example shows issuing svn commands within the block. > > > >>> > > > >>> A few things to note: > > > >>> > > > >>> 1) If the block only takes one argument, then it is provided with a > > > >>> tmpdir only. It is up to you to do any and all svn commands except > > > >>> for the final commit. > > > >> > > > >>> > > > >>> 2) While you can spawn any command within the block (svn or otherwise) > > > >>> any way you like, wunderbar provides an _.system method that will > > > >>> capture the stdout and stderr and add it to the transcript provided in > > > >>> the response back to the client. > > > >>> > > > >>> 3) As sebb points out, a full temporary checkout of a directory like > > > >>> https://svn.apache.org/repos/private//documents > > > >>> <https://svn.apache.org/repos/private//documents> would be > > > >>> impractical. > > > >>> Perhaps instead of emeritus-rejoined, emeritus-requests-received, and > > > >>> emeritus-requests-rescinded directories that are sister directories to > > > >>> the emeritus directory, there could be a single emeritus directory > > > >>> which contains a number of subdirectories. An example of such a > > > >>> structure is https://svn.apache.org/repos/private/financials/Bills > > > >>> <https://svn.apache.org/repos/private/financials/Bills>. > > > >> > > > >> Here's a way forward that changes a lot but makes the technical > > > >> solution easier. > > > >> > > > >> svn mkdir foundation/Members > > > >> svn mv foundation/members.txt foundation/Members > > > >> svn mv documents/emeritus foundation/Members > > > >> svn mv documents/emeritus-requests-received foundation/Members > > > >> svn mv documents/emeritus-requests-rescinded foundation/Members > > > >> svn mv documents/emeritus-reinstated foundation/Members > > > >> > > > >> Then, the _svn.update would checkout the entire Members directory > > > >> which consists solely of the members.txt and the various emeritus > > > >> files. And the _svn.update function would commit everything or nothing. > > > >> > > > >> An alternative is to do the _svn.update of members.txt first and if > > > >> successful, do the move of the emeritus files, which unless something > > > >> is seriously messed up, will "always succeed". > > > > > > > > In order for this to work we also need to implement part of the above, > > > > moving everything but members.txt to a new directory, which could be in > > > > documents/Members instead of foundation/Members. Then, the directory > > > > checked out in the _svn.update would be the documents/Members directory > > > > which includes all of the emeritus files. > > > > > > > > This is probably my first choice because it's minimum disruption to the > > > > existing tools and will significantly help secretary in filing emeritus > > > > requests. > > > > > > > > > > > >> > > > >> Craig > > > >> > > > >> > > > >>> > > > >>>> Thanks, > > > >>>> Craig > > > >>> > > > >> > > > >> Craig L Russell > > > >> c...@apache.org <mailto:c...@apache.org> > > > >> > > > > > > > > Craig L Russell > > > > c...@apache.org <mailto:c...@apache.org> > > > Craig L Russell > > > c...@apache.org > > >