Problems with svncpp, what to do?

Andreas Pakulat apaku at gmx.de
Sat Apr 5 20:19:34 UTC 2008


On 05.04.08 12:23:12, Andreas Pakulat wrote:
> On 02.04.08 23:55:10, Andreas Pakulat wrote:
> > Hi,
> > 
> > Matt told me today that subversion support doesn't build for him. The
> > reason is that he's using svncpp (rapidsvn C++ client lib) 0.9.6, while
> > I used 0.9.4 while working on svn support. I also had that version
> > installed until today (did an upgrade). Apparently the rapidsvn devs
> > don't have any binary compatibility - or even source compat - policy and
> > simply reworked large parts of the API.
> > 
> > I'm not sure what to do now, unfortunately there's no way to do a
> > version check (as far as I can see), because they didn't feel like
> > increasing the SOVERSION of the library and there's also no header with
> > version information. 0.9.6 is relatively new, so I don't want to
> > introduce a dependency on it and thus keep everybody else out...
> 
> I haven't yet finalized my decision, there's one outstanding answer.
> Depending on that I'll either completely fork the library or I'll try to
> implement the missing pieces in a kdevelop specific client subclass (I
> just noticed, that the API now doesn't provide working copy information
> anymore for paths, i.e. wether a file is scheduled for add/update/delete
> and such thing)

After seeing this:
CMakeFiles/kdevsubversion.dir/svninfojob.o: In function `SvnInternalInfoJob::run()':
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:76: undefined reference to `svn::Info::path() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:78: undefined reference to `svn::Info::revision() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:80: undefined reference to `svn::Info::repos() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:81: undefined reference to `svn::Info::uuid() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:82: undefined reference to `svn::Info::lastChangedRev() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:83: undefined reference to `svn::Info::lastChangedDate() const'
/home/andreas/KDE-work/4.0/kdevplatform/plugins/subversion/svninfojob.cpp:84: undefined reference to `svn::Info::lastChangedAuthoer() const'
collect2: ld returned 1 exit status

(yes you guess right, they simply "forgot" to implement those methods in
the library, but expose them in the header!)

I made my decision. I'll develop our own C++ wrapper around the
subversion C API. I'll use svncpp as a starting base, but I'll introduce
Qt deps into the code as it makes some thing a lot nicer.

Until thats done (I'll do that in a branch or in playground) subversion
support will only work with rapidsvn <= 0.9.4.

Andreas

-- 
You are wise, witty, and wonderful, but you spend too much time reading
this sort of trash.




More information about the KDevelop-devel mailing list