Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Perl mit Subversion

Empfohlene Antworten

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

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. :)

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

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?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.