Re: [Anjuta-devel] Gnome-VCS API discussion
Johannes Schmid <[email protected]>
| Newsgroups | gmane.comp.gnome.devtools |
|---|---|
| Message-ID | <[email protected]> |
Hi! > Here are some comments after looking at the source files: > > - Are the callbacks you have defined as part of the GnomeVCSClass > _really_ callbacks or are they signals? I'm asking because callbacks > shouldn't be part of the Class. Callbacks should be defined separately > and then added/registered to an object (see the GbfBuildCallback in > gbf-project.h). After looking at the implementation i see that they're > signals. You shouldn't use signals for these kinds of things. They > have > quite a large overhead. It's better to use a callback for stdout & > stderr output. They are signals in the moment (sorry that I confused you) but of course if it is better to have callbacks and we can use these. > - Do the file methods really need a message parameter? For CVS these > operations don't affect the repository. You only need to provide a > message once you commit the changes. See was Naba has written here. I think given the possiblity to get a signal it the message is NULL is the best. > - For file_commit, you want to be able to commit multiple files at > once. > So the const gchar *file parameter shouldn't either be a double > pointer > or a GList (i prefer the last one). This also applies to file_update. Do we really need that? If someone wants to commit multiple files he maybe wants to commit the whole project. > - A better naming scheme is to put the operation first, and then > whether > it applies to a project, file or files. So > s/project_commit/commit_project, s/file_add/add_file. I thought about this. But log_project or status_project does not sound very nice IMHO. > - Does file_update really need a branch parameter? Don't have you to > specify a branch when you checkout a module? Yes the Nabas mail. > - I assume file_status is supposed to return something? The current > method is void (returns nothing). Same applies to file_diff and > file_log. Not really. I assume that we have to use command line tools to access the VCS. They will just return a stream with the file log/status/diff. > - I'm missing some GUI virtual methods. For example to configure a > GnomeVCS project. Also, things like a commit and update dialog might > be > useful (since every VCS system has its different quirks). The backend > should provide these GUI elements, but the recipient should display > them. Perhaps you can have a callback parameter as part of the commit > & > update methods that gets callback with a GtkWidget that the recipient > can display? I have not worried about GUI. What should this callback parameter look like? What should the recipient display? > Has anyone ever done a basic comparison between various VCS systems to > determine which things they have in common? How can we add/show VCS > specific commands to an IDE? I looked at cvc, arch and SVN if it would be able to have a common interface. I haven't looked at any others. > Overall, this is a good first step. Keep it up! Well, today was my first school day in the graduation class has started and I do not know how much time I will have to work on anjuta/gnome-vcs but hopefully I will have some. > p.s. I'm CC'ing the devtools list as well. I get the same mail 4 time ;-). Yes I think it of interest for devtools, too. Thanks. Regards, Johannes