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