rolandschulz / PTP

Eclipse Parallel Tools Platform
http://www.eclipse.org/ptp/
6 stars 3 forks source link

Convert to Sync project wizard for Remote Projects #29

Open rolandschulz opened 13 years ago

rolandschulz commented 13 years ago

The convert to sync project wizard currently doesn't work.

The builder isn't changed to the Remote Sync Make Builder. Maybe other things have to be fixed too.

eblen commented 13 years ago

How is the conversion wizard added? If I right-click on the project and select "Convert To...", it says "There are no converters available..." Do we need to add an extension point? Also, I assume we need to convert both plain C/C++ projects and remote projects. So do we need two different extension points or two wizards or...?

rolandschulz commented 13 years ago

don't know - I just tested and it says the same if you try to convert a plain C to a remote C (std rdt). So they haven't done this either. You could ask Greg or on the list.

eblen commented 13 years ago

I think the wizard works for converting plain C/C++ projects. Converting remote projects, though, is much trickier. There is no local workspace for remote projects, so there is not even a local site for sync'ing. Fortunately, the user can easily "convert" by creating a new sync project and pointing it at the remote site. The only downside is having to make a new project and typing in the remote site again. Of course, I guess these steps could be automated...

rolandschulz commented 13 years ago

Well the User might have much set-up in the project. Settings and so on. If you create a new project you loose that. Why can't we just sync the files to local to have it in the local workspace before/during we convert?

Send from ASUS Tranformer On May 31, 2011 12:32 PM, "eblen" < reply@reply.github.com> wrote:

I think the wizard works for converting plain C/C++ projects. Converting remote projects, though, is much trickier. There is no local workspace for remote projects, so there is not even a local site for sync'ing. Fortunately, the user can easily "convert" by creating a new sync project and pointing it at the remote site. The only downside is having to make a new project and typing in the remote site again. Of course, I guess these steps could be automated...

Reply to this email directly or view it on GitHub: https://github.com/rolandschulz/PTP/issues/29#comment_1268261

eblen commented 13 years ago

Good point. I forgot about environment setup. There is no local site for sync'ing, though. We could create one, of course, but that site would need to become the project's main directory. Short of creating a new project, I don't know how to do this. (The .project and .cproject files and other Eclipse metadata would need to be updated.) I think we would need to use the project creation machinery and then import settings from the old project.

eblen commented 13 years ago

Another idea would be to have the new project wizard allow importing data from an existing remote project.

rolandschulz commented 13 years ago

if we can't get this for the release we should remember to (temporary) delete the converters from the wizard

eblen commented 13 years ago

We decided today to not do this for the release, so we should go ahead and disable the converters.

eblen commented 13 years ago

Converting a C/C++ project is much different from converting a Remote C/C++ project (from both the system standpoint and the user standpoint). So for commit 52115e2ca887f088038ea714982f2dbea4647265 I created two wizards. The wizard for converting a C/C++ project is done and seems to work.

The other wizard, though, has me perplexed. This wizard should ask the user to enter a location on the local machine, with a default location provided (somewhere in the Eclipse workspace). That part is simple. The harder part is handling the selected sync provider. The participant (say GitParticipant) must either not be used or used but without creating the GUI elements. Either way, I see no way for the wizard, which resides in sync.ui, to create the specific provider, such as the GitServiceProvider, without creating a dependency on sync.git.core, sync.rsync.core, etc. Without the user entering the remote location, the participant cannot create the provider. The wizard also cannot create it, though, because the ISynchronizeParticipant interface doesn't allow it.

eblen commented 13 years ago

This is now complete for local C/C++ projects and Fortran projects and committed to cvs. I'm lowering the priority but leaving this issue open since we still need a wizard for converting Remote C/C++ projects, which has proven quite a challenge but is not important enough to do immediately. I have changed the title accordingly.