Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development
SVN plugin
mandrav:
Thomas,
Let me start with many thanks for your hard work. From what you 're saying, I 'm expecting to see the most complete IDE-integrated cvs/svn solution (across all IDEs) :D .
--- Quote ---Another thing: I have not found anything like ProjectIsClean() in c::b. Is there anything like this except walking through all buildtargets? There is cbProject::GetModified(), but that only barks when files have been added or deleted, not when they're modified and saved.
--- End quote ---
You 're right, there isn't such a function. Let's think about it.
If we had a IsClean() method in cbProject, it could tell us if the project or any of its files were modified. Easy. But knowing if it needs building or not? Hard. The compiler is a plugin and it might not even be available.
What could be done is add a CompilerPlugin::IsBuildUpToDate() method. Combined with cbProject::IsClean() you could get all the info you need.
What do you think?
On another note, you haven't mentioned if you 're planning to open the source to your plugin. If it is so, I think it would be better if it was added in third-party plugins (in CVS). More eyes on it, more testers, more work done and all these in less time.
Your thoughts?
Keep up the good work,
Yiannis.
rickg22:
--- Quote from: thomas ---This is arguably wrong, but in my opinion, if something is not explicitely caught by an ignore pattern, then it either should be controlled or it should not be in the project directory.
--- End quote ---
I happen to have files in my project directories which MUST NOT be uploaded to CVS. Like configurations, etc. So adding files by default is a BAD idea. After all, people can choose to add the files manually, don't they?
Just because we can sometimes forget to add a couple of times (Right chief? :lol: ) doesn't mean it should be done.
But adding files to CVS when adding them to a *project* (not necessarily the directory), I approve, as long as you're asked first. "Do you want to add this file to cvs too?".
My 2 cents :)
thomas:
--- Quote from: mandrav ---I 'm expecting to see the most complete IDE-integrated cvs/svn solution (across all IDEs) :D .
--- End quote ---
Ah, but I haven't even spent a minute thinking about CVS yet. I hope, however, it will be not too bad to implement once SVN is done.
Only other integrated solution I know is in Dev-CPP, and that one does not do much really, does it.
BTW, sourceforge announced that they will soon offer SVN access. Maybe you can be convinced to migrate then, SVN is really an awful lot better ;)
--- Quote ---CompilerPlugin::IsBuildUpToDate()
--- End quote ---
Sounds great but might be quite hard work for you to get right (I guess).
What about saving the date/time of a successful build? When build returns no error, keep that date cached (or maybe just the last of these). Whenever a file is modified, it obviously gets a new modification time. One could either compare these, or cache the last time any project file was modified as well. If time_any_file_modified > time_last_successful_build then project is not clean. It is late and i am nearly sleeping, but is that correct? I think so.
--- Quote ---On another note, you haven't mentioned if you 're planning to open the source to your plugin.
--- End quote ---
I did not think about this at all. It seemed so obvious that a plugin to an open-source IDE must be open source, too. Otherwise, it would be quite absurd...
As soon as the plugin is in a state which I need no longer be ashamed of (i.e. usable without producing an error every few minutes), I will certainly make it open source. I've made a Berlios account the other day to host it (they provide both CVS and SVN), but having it in the main repo will be ok as well, no objections to that.
--- Quote ---I happen to have files in my project directories which MUST NOT be uploaded to CVS. Like configurations, etc. So adding files by default is a BAD idea. After all, people can choose to add the files manually, don't the
--- End quote ---
Rick, like I said, you do not need to use that feature. If you prefer doing things manually, you can do so. Different people have different needs. You do not need to click on the checkbox that says "auto" ;)
By the way, svn has a wonderful thing called properties. Among the many things you can do with these, you can define which files, file patterns, and paths are to be ignored (by setting the svn:ignore property). It works pretty much like .cvsignore except that it is 10,000 times cooler.
So if your config files must not be uploaded, then have their pattern ignored, so you can still blindly add everything and you never need to think about it.
mandrav:
--- Quote ---BTW, sourceforge announced that they will soon offer SVN access. Maybe you can be convinced to migrate then, SVN is really an awful lot better
--- End quote ---
Heh, me convinced? I love svn. I started C::B over at tigris.org because they offered svn access, but for low bandwidth reasons I moved it to sourceforge.
Yiannis.
thomas:
--- Quote from: mandrav ---Heh, me convinced? I love svn.
--- End quote ---
Maybe you love this, then:
http://developer.berlios.de/docman/display_doc.php?docid=28&group_id=2
Looks pretty much like sourceforge (they seem to even use the same web interface) but offers svn and a few other nifty things :)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version