Zum Inhalt springen

Perl mit Subversion


Empfohlene Beiträge

Hi alle,

folgendes Problem: Ich habe eine Aufgabenstellung, in der ich ein subversion repository mit Hilfe von perl verwalten soll, heißt im endeffekt daten herausholen, updaten und wieder reinladen. Es gibt da schon fast fertigen code, den ich zur Verfügung habe, jedoch hat der ein relativ großes Problem.

Der Code verwendet das Modul SVN::Client (teil vom debian-package libsvn-core-perl). Wenn man damit einen Aufruf macht, funktioniert das einwandfrei, allerdings beendet sich der svn-serve prozess danach nicht mehr.

Heißt, dass pro anfrage ein Prozess forkt und ich somit ziemlich schnell den Speicher vollkrieg und die Kiste steht.

Meine Frage nun: Gibts dafür einen Fix? Gibts eine andere Möglichkeit SVN mit Perl anzusprechen?

Komischerweise finde ich zum perl modul SVN::Client fast gar nichts im Web, auf CPAN überhaupt nichts.

Ich finde nur was zu den sog. "Perl Bindings" und Begriffen wie SWIG, allerdings steht nirgends was konkretes (auch nicht im SVNbuch, dort steht nur ein Beispiel zu python) und wo man die herbekommt.

Vielleicht könnt ihr mir ja helfen.

LG

Matthias

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heißt, dass pro anfrage ein Prozess forkt und ich somit ziemlich schnell den Speicher vollkrieg und die Kiste steht.

Mh.. Das hoert sich aber boese an... Sicher, dass das an den Perlmodulen liegt?

Gibts eine andere Möglichkeit SVN mit Perl anzusprechen?

system("svn", ...); waere eine Moeglichkeit, allerdings waere ein XS Modul schon schoener.

Komischerweise finde ich zum perl modul SVN::Client fast gar nichts im Web, auf CPAN überhaupt nichts.

http://search.cpan.org/search?query=svn&mode=module - Da findest du genuegend Module, die funktionieren.

Ich finde nur was zu den sog. "Perl Bindings" und Begriffen wie SWIG, allerdings steht nirgends was konkretes (auch nicht im SVNbuch, dort steht nur ein Beispiel zu python) und wo man die herbekommt.

Ich glaub' du hast da was falsch verstanden. Die "Perl Bindings", per SWIG, sind in SVN::Client zu finden. So sieht das Paket subversion-perl bei mir aus:

/usr/lib/libsvn_swig_perl-1.so.0

/usr/lib/libsvn_swig_perl-1.so.0.0.0

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Base.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Client.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Core.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Delta.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Fs.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Ra.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Repos.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/SVN/Wc.pm

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Client

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Client/_Client.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Core

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Core/_Core.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Delta

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Delta/_Delta.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Fs

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Fs/_Fs.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Ra

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Ra/_Ra.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Repos

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Repos/_Repos.so

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Wc

/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/SVN/_Wc/_Wc.so

/usr/share/man/man3/SVN::Base.3pm.gz

/usr/share/man/man3/SVN::Client.3pm.gz

/usr/share/man/man3/SVN::Core.3pm.gz

/usr/share/man/man3/SVN:: Delta.3pm.gz

/usr/share/man/man3/SVN::Fs.3pm.gz

/usr/share/man/man3/SVN::Ra.3pm.gz

/usr/share/man/man3/SVN::Repos.3pm.gz

/usr/share/man/man3/SVN::Wc.3pm.gz

Hoffe, dass ich weiterhelfen konnte. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi!

danke für deine Antwort :)

Also das mit den Perl Bindings hab ich nun auch mitgekriegt, dass die in SVN::Base, SVN::Client usw untergebracht sind.

Das Problem, das ich habe gibts aber immer noch. Ich hab ja wie gesagt schon teilweise fertigen code bekommen, der funktioniert aber das problem mit dem svnserve prozess hat. Svnserve wird durch inetd aufgerufen, aber das Problem soll auch bestehen, wenn man svnserve als daemon laufen lässt. Ich werde das nocheinmal überprüfen.

Danke erstmal!

LG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht noch eine Ergänzung dazu: Das perl skript, das die svn checkouts/updates macht, wird über apache ausgeführt (ist ein cgi/mason skript). Es scheint so, als würde apache die connections zum svnserve prozess nicht mehr schließen. Erst wenn ich den apachen neustarte sind die prozesse und verbindungen weg.

Woran kanns liegen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...