VCS Interfaces, round 3

Matthew Woehlke mw_triad at users.sourceforge.net
Fri May 4 15:48:31 UTC 2007


dukju ahn wrote:
> 2007/5/4, Andreas Pakulat <apaku at gmx.de>:
>> On 04.05.07 09:00:40, dukju ahn wrote:
>>> Detailed operations of plugins should be reserved to each plugin,
>>> to keep the maximal flexibility each Vcs systems offer.
>> I disagree. Commit() can easily commit everything within that directory
>> as it will also take a commit message. If I call
>> commit("/home/andreas/KDE-work/4.0/kdevelop/buildtools/managers/qmake","Applied
>> Patch to make QMake Manager follow users mind") in a script thats what I
>> want, commit everything in that dir. commit() and log() shouldn't open a
>> GUI at all, thats what showLog() and showCommit() are for.
> 
> I understand. But then there is no way to specify every detailed options
> each Vcs's provide. For example, subversion takes 2~3 extra flags
> that are very useful (such as limit the number of log, don't show before
> branching point..etc). These flags are unique in subversion but other
> Vcs's such as CVS/perforce may have their own unique options.
> Then How can we specify these options? Do we just discard them?

In methods from IBasicVC, unless you can think of a way to expose them 
generically, then yes, but you can always implement an overload of e.g. 
commit() in ISubversionVersionControl. In show*(), the plugin is 
implementing the dialog and so can add whatever it wants.

That said, I disagree with your examples for log; both are artificial 
limitations. Limiting the number of entries is unnecessary for the 
scripted version, and for the UI version we have scroll bars :-). 
Stopping at copying I don't see the utility of /at all/, except that svn 
seems to be missing the copy-source and repo-path in its log output. IMO 
it is much higher priority to figure out how to retrieve this 
information (svn clearly /has/ it) in order to present complete 
information, in which case it will be clear where a copy happened and 
the option becomes pointless. In fact this may mean we /have/ to use the 
svn API as I so far can't figure out how to get the information out of 
the CLI.

Note: I am thinking that showCommit() should also allow 
selecting/deselecting of files for /all/ VCS's.

-- 
Matthew
Current geek index: 62%





More information about the KDevelop-devel mailing list