Shelving v1 -- move to trunk?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Shelving v1 -- move to trunk?

Julian Foad-5
How would you all feel about moving the 'shelve' work to trunk?

Stefan Kueng today asked a good question in relation to my colleague's
enquiry about creating a 'shelve branch' version of TortoiseSVN [1]:

> Do we really need two versions?
>
> What's stopping you from merging the shelving stuff in the svn
> repository back to trunk? From what I can see, it's pretty stable
> already, and most importantly even if it's not stable it wouldn't
> affect any existing features.
>
> If you can't merge those back on the svn trunk, then maybe we could
> switch the TSVN trunk to link to the svn shelve branch instead, and
> you could merge your TSVN shelve branch back to trunk.
>
> The TSVN nightly builds are there for a reason: to test out new
> features and get feedback. And as I said: those are new commands
> which won't affect any existing features users might depend on. So
> it's safe to include those in the nightly builds.

 From initial experimentation, we have made a smooth transition to
something that we -- at least we at Assembla -- are ready to offer to
real users to try out the first step on this road.

It is currently my job to develop this so I can commit resources to
continuing it.

If I fix it up to meet our coding standards, and given that it has no
impact on other areas (so in the last resort is easy to pull out or
disable), is there any objection to continuing the 'shelving' work on
trunk? If not, I plan to do this in a few days.

I will do some "fixing up" in readiness right away, anyway.

- Julian


[1] The first reply to "Two installers for 'standard' TortoiseSVN and
Shelving version",
https://groups.google.com/d/msg/tortoisesvn-dev/OHwCA3PIs6Q/YvBve1KxBQAJ
Reply | Threaded
Open this post in threaded view
|

Re: Shelving v1 -- move to trunk?

Branko Čibej
On 03.11.2017 23:25, Julian Foad wrote:

> How would you all feel about moving the 'shelve' work to trunk?
>
> Stefan Kueng today asked a good question in relation to my colleague's
> enquiry about creating a 'shelve branch' version of TortoiseSVN [1]:
>
>> Do we really need two versions?
>>
>> What's stopping you from merging the shelving stuff in the svn
>> repository back to trunk? From what I can see, it's pretty stable
>> already, and most importantly even if it's not stable it wouldn't
>> affect any existing features.
>>
>> If you can't merge those back on the svn trunk, then maybe we could
>> switch the TSVN trunk to link to the svn shelve branch instead, and
>> you could merge your TSVN shelve branch back to trunk.
>>
>> The TSVN nightly builds are there for a reason: to test out new
>> features and get feedback. And as I said: those are new commands
>> which won't affect any existing features users might depend on. So
>> it's safe to include those in the nightly builds.
>
> From initial experimentation, we have made a smooth transition to
> something that we -- at least we at Assembla -- are ready to offer to
> real users to try out the first step on this road.
>
> It is currently my job to develop this so I can commit resources to
> continuing it.
>
> If I fix it up to meet our coding standards, and given that it has no
> impact on other areas (so in the last resort is easy to pull out or
> disable), is there any objection to continuing the 'shelving' work on
> trunk? If not, I plan to do this in a few days.
>
> I will do some "fixing up" in readiness right away, anyway.


Sure, if you're confident that trunk will still pass tests as before.
Please mark any new APIs experimental and possibly wrap the command-line
exposure in an #ifdef -- maybe off by default, or only on by default
only in maintainer mode?

-- Brane

P.S.: I see the svn_client__mtcc_ functions are still private in a
public header. We should do something about that for 1.10.
Reply | Threaded
Open this post in threaded view
|

Re: Shelving v1 -- move to trunk?

Julian Foad-5
Branko Čibej wrote:
> On 03.11.2017 23:25, Julian Foad wrote:
>> How would you all feel about moving the 'shelve' work to trunk?
[...]
>
> Sure, if you're confident that trunk will still pass tests as before.

Merged.

> Please mark any new APIs experimental

OK, I will do that soon.

> and possibly wrap the command-line
> exposure in an #ifdef -- maybe off by default, or only on by default
> only in maintainer mode?

I could do that. Does anyone else see the need?

- Julian

Reply | Threaded
Open this post in threaded view
|

Re: Shelving v1 -- move to trunk?

Julian Foad-5
Julian Foad wrote:
> Merged.
>
>> Please mark any new APIs experimental
>
> OK, I will do that soon.

r1815293, r1815294.

- Julian

>> and possibly wrap the command-line
>> exposure in an #ifdef -- maybe off by default, or only on by default
>> only in maintainer mode?
>
> I could do that. Does anyone else see the need?
Reply | Threaded
Open this post in threaded view
|

Re: Shelving v1 -- move to trunk?

Julian Foad-7
(To Subversion and TortoiseSVN lists.)

Subversion change r1815293 marks the shelving APIs with
SVN_EXPERIMENTAL. In TortoiseSVN this translates to
__declspec(deprecated("experimental function used")) which raises an
error when the functions are called from SVN.cpp.

The basic way to work around this, as used in Subversion r1815294 in
shelve-cmd.c and shelve.c, is to #define SVN_EXPERIMENTAL as nothing
before including Subversion header files.

In TortoiseSVN's, the Subversion headers are included not directly in
each file (e.g. SVN.cpp) but from inside the pre-compiled header stdafx.x.

I would have preferred to put '#define SVN_EXPERIMENTAL' just in SVN.cpp
which is the only file that calls the experimental functions. Putting
the #define directly in SVN.cpp, before #include stdafx.h, does NOT
work, even if followed by including svn_types.h and svn_client.h. The
compiler throws a warning about it and ignores it and still uses the
declarations from the precompiled header and so raises the same errors
in the end.

It looks like I need to put '#define SVN_EXPERIMENTAL' inside stdafx.h
(just before the Subversion includes).

If I do, it then builds OK.

Is that OK?

- Julian