|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.
SVN Client Plug-in Commands
Requirement: Upload my current changes, or shelved changes, to a code review system such as Rietveld.
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.
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.
What hackathon is complete without a discussion of obliterate?