Subversion Shelving developments to improve code review?

234 views
Skip to first unread message

Julian Foad

unread,
Nov 9, 2017, 9:57:42 AM11/9/17
to codereview-discuss
I am currently adding Shelving support to Apache Subversion [1,2]. I am not yet familiar with Rietveld.

While my concrete focus is on client-side shelving (similar to 'git stash' and 'hg shelve'), Paul Hammant suggested code review as an important direction that we should look to take Subversion in, and that support for shelving might provide a step on that road. Several platforms offer code review work flows for Subversion -- at least Rietveld, RhodeCode, and (my employer) Assembla. Surely we should be able to make Subversion work better with them.

What kind of developments in Svn do you think would benefit Rietveld, especially with regard to how I should shape the client-side Shelving feature with a view to being able to extend towards supporting remote code review apps later?

Thanks,
- Julian Foad

[1] Svn Shelving design doc, https://docs.google.com/document/d/1PVgw0BdPF7v67oxIK7B_Yjmr3p28ojabP5N1PfZTsHk/
[2] Svn Shelving JIRA issue, https://issues.apache.org/jira/browse/SVN-3625

Andi Albrecht

unread,
Nov 10, 2017, 2:05:26 AM11/10/17
to Julian Foad, codereview-discuss
Hi Julian,

thanks for asking for feedback on this mailing list!

Right now upload.py - the user script that generates the diff and uploads it to the review server - uses "svn diff" to output the changeset. Rietveld targets pre-commit reviews, so we primarily look for uncommitted changes. With shelves, which would be a great addition to svn IMO, the process would be very similar. Maybe we would need to introduce new command line options to allow upload.py to grab the changes from a shelved changeset rather than from uncommitted changes in the local checkout.

Would be interesting to hear suggestions for this improvement to svn from other members on this list!

Best regards,

Andi 

Julian Foad <jul...@assembla.com> schrieb am Do., 9. Nov. 2017 um 15:57 Uhr:

Julian Foad

unread,
Nov 10, 2017, 3:54:20 AM11/10/17
to codereview-discuss
Thanks, Andi.

Without wishing to constrain your thinking, some topics on my mind are:

* Patch format completeness
  - A diff/patch format to support all types of Svn modifications, including copies and moves, properties, binary files, etc. I already need to work on this for Shelving.

* 'Changelist' concept
  - Shelving is conceptually related to Subversion changelists [4]. The Svn 'changelist' is presently a weak concept, just a tag per path, and I am thinking how this might be developed into more of a first-class concept. Discussing on d...@subversion.apache.org [5].

* Communication
  - How to tell Svn to send changes to/from an arbitrary remote service. As a starting point, one could look at the Rietveld hg 'review' plugin [3]. (I have no current plans in this direction.)

With those things all in place, I envisage one should be able to push and pull a changelist directly between any supported locations including: shelved in the wc, applied in the WC, committed in Svn, stored on an external service e.g. Rietveld. For example: commit a shelved change without first needing to unshelve it; submit a shelved change for review (ditto); commit a reviewed change without first needing to fetch it from the review tool.

Other thoughts?

- Julian


[3] https://bitbucket.org/nicoe/hgreview/ and https://pypi.python.org/pypi/hgreview/
[4]
I see 'sffc' recently opened a pull request "Adding SVN Changelist option to upload.py" https://github.com/rietveld-codereview/rietveld/pull/558
[5] In thread "
Checkpointing v1 design -- terminology", 2017-11-06, https://lists.apache.org/thread.html/de830a9ffdb6033479578732c5a0f0313bd07b3967dfdc8b5cd4c9ac@%3Cdev.subversion.apache.org%3E

gordon...@gmail.com

unread,
Dec 10, 2017, 12:56:26 AM12/10/17
to codereview-discuss
On Friday, November 10, 2017 at 3:54:20 AM UTC-5, Julian Foad wrote:
> Thanks, Andi.
>
> Without wishing to constrain your thinking, some topics on my mind are:
>
> * Patch format completeness
>  
> - A diff/patch format to support all types of Svn modifications,
> including copies and moves, properties, binary files, etc. I already
> need to work on this for Shelving.
>
> * 'Changelist' concept
>   -
> Shelving is conceptually related to Subversion changelists [4]. The Svn
> 'changelist' is presently a weak concept, just a tag per path, and I am
> thinking how this might be developed into more of a first-class concept. Discussing on d...@subversion.apache.org [5].
>
> * Communication
>   - How to tell Svn to send changes to/from an
> arbitrary remote service. As a starting point, for a starting format the on the shelves are nice idea I think shelves and the format are a great collaboration so that you don't have to go through all the changes with the format in the shelves create such a good spacious and gives you so much more room to do more..
Reply all
Reply to author
Forward
0 new messages