Home » Developing U++ » U++ Developers corner » Ideas for an SVN addition to theide
Ideas for an SVN addition to theide [message #16081] |
Tue, 27 May 2008 11:25 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
I'm coding on those days a class encapsulating SVN behaviour.
It should be able (when finished) to do by code all SVN command do, so checking out code, committing it, updatin, diff versions and so.
Next step would be to try an integration in theide, and I was thinking about the way on how to do it.
My idea is the following :
1) bring to user some directory trees corresponding to nests in current project's assembly.
2) give the ability to connect them (individually) to svn repositories. I mean, if we have following nest :
and MyApps contains :
/...MyApps/App1/
/...MyApps/App2/
we could give user the ability to connect to svn repo all MyApps nest or just MyApps/App1, for example. Or even just uppsrc if user don't need svn on his apps.
Connection would mean merging current user's nest with SVN repo one. From then, user's nest will stay connected to svn repo until manually disconnected.
3) On each svn connected nest, bring a contextual menu with all relevant svn commands, so the ability to check wether files are modified locally or on repo, visually diff them with repo or diff different version on repo, patch them and/or bring back previous file's versions.
4) give users the ability to re-export nests as normal (non svn) trees or even detach them from svn repository, and maybe to pack them on tar/zip files for deploying, or even (with some more work...) to build installable packages from them.
Help and suggestions welcome !
Ciao
Max
|
|
|
|
Re: Ideas for an SVN addition to theide [message #16095 is a reply to message #16084] |
Tue, 27 May 2008 20:39 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
cocob wrote on Tue, 27 May 2008 13:18 | I can't give on opinion because for me it is not the ide's role to manage SVN.
|
why not ? I don't see the point of coding inside theide, close it (because if you don't do so, you'll surely get some modified files overwrote by it because of autosave...), launch an external svn gui (or use a command line tool), maybe launch some gui diff/merge app id needed, restart theide... where's the advantage ?
Quote: |
I think this functionality will not be complete like smartSVN or command line svn tools can be.
|
That depends only on how much of svn features are brought inside theide. I don't know smartsvn, but I tried tortoisesvn. Fancy app, but what you do with svn 99% of time ? commits and updates.
Quote: |
How about creating branchs/tags, merging branchs, add non upp files, rename/move directories ?
|
all that stuffs could be managed easily inside theide. I mean to start *simple*, then extend it if people finds it useful.
Quote: |
Sorry it is not the most important feature to implement in TheIDE for me. But if it can be useful for others : good courage !
|
Well, the most important stuff surely not... but this is very subjective. For my point of view, the most annoyng stuffs by now are the poor debugger and the lack of documentation. But I place at third place a good embedded versioning system. I'm not a fan of "all gui apps", I usually use svn on command line and MELD as diff gui (yes, that one IS good!), but I'd find far more comfortable to do all that inside theide.
Ciao
Max
|
|
|
Re: Ideas for an SVN addition to theide [message #16097 is a reply to message #16095] |
Tue, 27 May 2008 23:03 |
Oblivion
Messages: 1092 Registered: August 2007
|
Senior Contributor |
|
|
Quote: |
I'm coding on those days a class encapsulating SVN behaviour.
It should be able (when finished) to do by code all SVN command do, so checking out code, committing it, updatin, diff versions and so.
Next step would be to try an integration in theide, and I was thinking about the way on how to do it.
|
I think it would be great have some SVN functionality on TheIDE. Although I am happy with tortoise on Win32, IMHO a cross-platform (assuming that you are going to use standard U++ code) SVN which comes with the development enviroment itself by default will make theIDE more complete and desirable.
Quote: |
That depends only on how much of svn features are brought inside theide. I don't know smartsvn, but I tried tortoisesvn. Fancy app, but what you do with svn 99% of time ? commits and updates.
|
I agree, tortoise have a hell lot of functions that I didn't ever use. The basic functionality will be sufficient for the crucial operations. And I don't think that the hardest part will be theIDE integration. As far as I know the structure of theIDE source code, It should be relatively easy. The harder part will be -- probably -- the SVN class code. What is your road map anyway?
Also, Imho, this SVN++ or whatever you name it should be able to download the updated standard U++ SVN source code without confusing the the U++ newbie (of course after a confirmation prompt) with "one click" button and have a switch on TheIDE settings panel. Honestly, this type of source code update is something I would like to see on an IDE which depends on a custom class kit (and AFAIK, something they all lack about).
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Tue, 27 May 2008 23:16] Report message to a moderator
|
|
|
Re: Ideas for an SVN addition to theide [message #16100 is a reply to message #16097] |
Tue, 27 May 2008 23:55 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
Oblivion wrote on Tue, 27 May 2008 23:03 |
I agree, tortoise have a hell lot of functions that I didn't ever use. The basic functionality will be sufficient for the crucial operations. And I don't think that the hardest part will be theIDE integration. As far as I know the structure of theIDE source code, It should be relatively easy. The harder part will be -- probably -- the SVN class code. What is your road map anyway?
|
Well... I already wrote the skeleton and tested some functionality.
I'm NOT using svnlib, on linux it would be quite easy (besides having to learn it...), just an 'apt-get install svnlib' and that's all done. On windows, I've seen quite a lot of dll, and I don't want to loose time on it. Also making it as a plugin would be quite time consuming. So, I'm simply running SVN executable (see class SysExec on Bazaar) which, by luck, has as an option a very comfortable XML output. So, just exec svn(.exe), (done), gather its xml output (done for 2 commands, quite easy) and report to user. SVN command line is available also for windows and could be even deployed with theide installer. On linux is a standard command.
My class by now can do a checkout, an update and the commit stuffs are about ready.
Adding new commands is really easy, just few codelines on svn launcher.
Quote: |
Also, Imho, this SVN++ or whatever you name it should be able to download the updated standard U++ SVN source code without confusing the the U++ newbie (of course after a confirmation prompt) with "one click" button and have a switch on TheIDE settings panel.
|
I think that will be the "hard" part of all app. When you want to sync for the first time with svn, you've got an UPP folder (without svn inside) and the remote repo. App should be able to merge the user folder (in case he changed it..) with svn repo. That's done just once, first time the repository is connected.
I could ask user to choose between just wipe local copy and fetch svn or try to merge local copy with svn... I'm not too sure about it. Maybe just backup user nest, wipe it, fetch from svn and then overwrite fetched one with user one... so user will have svn repo plus its last changes kept.
After first sync, upp (and user) nests will behave like an ordinary svn ones, so you can change files, commit, revert, merge and so on. Adding, removing and renaming files will have to be synced from upp to svn, but that's easy task too.
If user don't like svn anymore, just another click and he can wipe all svn data and have a 'clean' nest.
I see as the 'difficult' part of all that a good ide integration, not the svn class
About using 'svn.exe' (which is simple), that don't block us to migrate in future to svnlib as a plugin, my svn class encapsulates all low-level behaviour, so it'll be just a matter of replacing it, theide integration will be unchanged.
Quote: |
Honestly, this type of source code update is something I would like to see on an IDE which depends on a custom class kit (and AFAIK, something they all lack about).
|
Me too
And that will not be limited to upp sources, you could connect any package you wish with its own svn repository.
Another nice addon would be a visual diff/merge, as MELD does for linux (I don't know an analog app on windows). Maybe taking some code from MELD sources would help....
Ciao
Max
|
|
|
Goto Forum:
Current Time: Thu Apr 18 12:44:55 CEST 2024
Total time taken to generate the page: 0.02328 seconds
|