About IBranchingVC...
Matt Rogers
mattr at kde.org
Thu May 17 21:06:04 UTC 2007
On Thursday 17 May 2007 14:24, Matthew Woehlke wrote:
> How exactly is branch() supposed to work? In perforce, a "tag" (label)
> requires the source files to be checked out, while a branch() requires
> the destination to be in the view (branch() == copy() except somewhat
> more sophisticated). Also there is a "branch" object that would
> (should?) be created in this case. Also labels in perforce need a name
> (no surprise here).
>
> In svn AFAIK both branch() and tag() are synonyms for copy(). I don't
> know how things work in CVS.
>
> Options:
> - move branch() to IRepositoryVC and drop tag()
nope, people need to tag and branch things for certain VCSs but not all of
them require branching or tagging. Branching and tagging need their own
interface.
> - perforce doesn't implement IBranchingVC
nope, because it obviously does some sort of branching
> - clarify what branch() and tag() do in a way that is favorable to a
> perforce implementation
hmm, also no. why should our interfaces favor perforce or any other version
control system, subversion and cvs included?
> - drop IBranchingVC altogether; plugins will expose the VCS's native flavor
nope. We can have an interface for branching, it's a universal task.
> - something else?
>
maybe
> In any case, "branches" can still be done using copy() from IBasicVC for
> the generic case, otherwise plugins are expected to expose the VCS's
> native flavor of this.
>
branching is a term that is universally understood. It has an equivalent for
nearly all version control systems. (the exceptions being the distributed
ones like git or darcs, which probably wouldn't implement the IBranchingVC
interface anyways). If needed, the VCS plugin should take the steps needed to
make a branch or a tag, even if we use a temporary directory for it.
> NOTE: Shouldn't copy(), etc in IRepositoryVC take lists?
probably.
--
Matt
More information about the KDevelop-devel
mailing list