Differences between revisions 8 and 9
Revision 8 as of 2017-11-23 23:34:34
Size: 2663
Editor: JulianFoad
Comment:
Revision 9 as of 2017-11-24 00:04:28
Size: 2707
Editor: JulianFoad
Comment:
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:

=== ... ===

=== Shelve/Checkpoint ===

Aachen2017MeetAndGreet -- meet-and-greet event, 23rd November 2017

Aachen2017Practicalities -- location, schedule, etc.


Topics Discussed/Fixed/Developed

Releasing 1.10

...

Shelve/Checkpoint

...

SVN Client Plug-in Commands

Requirement: Upload my current changes, or shelved changes, to a code review system such as Rietveld.

Rietveld provides the upload.py script for this, to be run in a Subversion (or other) WC. For Mercurial, there is the hgreview plug-in which makes the command "hg review [...]".

We could of course release a version of Svn with an initial (experimental) "review" subcommand to do this, but a plug-in has advantages of (1) able to release independently; (2) if it is useful only for users who have a review server, other users don't need to see it.

Advantage (1) also applies to certain other feature developments including shelving.

Solution: We could pretty easily hack up plug-in top-level subcommands. Inspiration from hg and git. The plug-in script would have access to at least the command-line 'svn'. We might want to promise one or more of our bindings are available to it too. We might do some argument pre-processing, such as expanding "^/" notation, before passing to the plug-in.

View Specs

Requirement (Johan): Export the sparse configuration of one WC and make another one match it.

Solution (Bert): We can use the WC-state 'Reporter' to find all the info we need -- including depth changes, switched URLs (if wanted), and mixed revisions (if wanted) -- and write this to a simple text format output. For a first hack, the output format could even be a series of "svn update --set-depth=..." lines which could be executed directly by a shell, avoiding the need to write any parse-and-execute code at all.

Also this output is just what we need to record the WC base state of a shelved patch.

Problem: The "update --set-depth" approach doesn't perform well. To apply the desired depths, it would first set the WC root to its desired recorded depth (typically empty or depth-infinity), even if most of the children are going to be excluded; then exclude each child that is to be excluded and expand each that is to be included, and so on. Inefficient. Local mods probably not handled properly.

Solution: TBD

Obliterate

What hackathon is complete without a discussion of obliterate?


Thanks to Assembla for sponsoring SVN Hackathon 2017.

Aachen2017 (last edited 2018-02-23 09:04:38 by JulianFoad)