Home » Developing U++ » U++ Developers corner » Ideas for an SVN addition to theide
Re: Ideas for an SVN addition to theide [message #16100 is a reply to message #16097] |
Tue, 27 May 2008 23:55  |
mdelfede
Messages: 1310 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 Aug 28 05:53:28 CEST 2025
Total time taken to generate the page: 0.06583 seconds
|