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
> > >

Reply via email to