svn: Could not open the requested SVN filesystem

Die Fehlermeldung „svn: Could not open the requested SVN filesystem“ tritt auf, wenn versucht wird ein SVN-Kommando auf eine URL oder einen Pfad auszuführen, auf den SVN keinen Zugriff hat -oder der schlichtweg einfach falsch ist. Mir ist der Fehler begegnet, als ich versucht habe mit svn -v log http://localhost/svn/my_repository -r 40 auf ein Repository zuzugreifen, das überhaupt nicht existiert hat (die URL war falsch).

Ob ein Repository gültig ist, kann mit folgendem Befehl geprüft werden (funktioniert nur mit Dateisystem-Pfaden):

svnadmin verify C:/apache/svn/my_repository

SVN post-commit hook for Windows and Linux

For demonstration purposes I have rewritten a post-commit hook (which was originally developed for Linux) for Windows.

post-commit (Linux version)

#!/bin/sh
# POST-COMMIT HOOK
# The post-commit hook is invoked after a commit.
#
#   [1] REPOS-PATH   (the path to this repository)
#   [2] REV          (the number of the revision just committed)
#
REPOS="$1"
REV="$2"
 
echo $REPOS $REV >> /tmp/test.txt

post-commit.bat (Windows version)

@echo off
:: POST-COMMIT HOOK
:: The post-commit hook is invoked after a commit.
::
::  [1] REPOS-PATH   (the path to this repository)
::  [2] REV          (the number of the revision just committed)
::
@echo off  
 
set REPOS=%1
set REV=%2   
 
echo %REPOS% %REV% > C:/Temp/test.txt

Windows Batch Datei zum Entfernen von .svn Ordnern

Apache Subversion legt bei der Versionierung in jedem Ordner des versionierten Projektes einen Unterordner namens „.svn“ an, in welchem die Historie der Codeänderungen gespeichert wird. Möchte man sein Projekt produktiv einsetzen und veröffentlichen, dann sind diese Unterordner störend. Mit einem svn export-Befehl können diese Ordner zwar entfernt -und das Projekt sauber ausgegeben werden, jedoch muss man dazu ein SVN-Tool installiert haben.

Unter Windows lassen sich die „.svn“-Ordner auch mit einer Batch-Datei rekursiv löschen. Dazu muss man nur folgendes tun:

  1. Eine Textdatei anlegen (z.B. remove-svn.txt)
  2. In diese Textdatei folgenden Inhalt schreiben:
    FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q %%G
  3. Die Endung der Textdatei von „.txt“ auf „.bat“ ändern (z.B. remove-svn.bat)
  4. Die Batch-Datei in den Ordner verschieben, in dem die svn-Ordner gelöscht werden sollen und dann durch einen Doppelklick ausführen

SVN SSH post-commit checkout hook

Wenn man mit SVN ein Webprojekt versioniert, dann ist es wünschenswert, den aktuellen Stand auch live auf einem Webserver im Internet zu haben. Dieser Wunsch lässt sich mit sogenannten „hooks“ realisieren. In jedem SVN Projektordner gibt es einen Unterordner namens „hooks“. In diesem Ordner sind Shell-Skripte für verschiedene Momente abgelegt. Diese Scripte werden zum jeweiligen Zeitpunkt automatisch vom SVN Server aufgerufen.

Das post-commit-Skript wird direkt nach einem Commit ausgeführt und bietet sich hervorragend an, um direkt nach einer Projekt-Änderung den aktuellen Stand für den Webserver zur Verfügung zu stellen. Dazu muss man im Skript nur festlegen, dass ein checkout in das gewünschte Web-Verzeichnis ausgeführt werden soll. Wie das geht, zeige ich im folgenden Artikel.
SVN SSH post-commit checkout hook weiterlesen

SVN mit SSH über NetBeans

NetBeans 6.9 hat standardmäßig einen Subversion-Client integriert. Dadurch wird die Arbeit mit einem SVN-Server sehr angenehm. NetBeans unterstützt dabei sogar eine SSH-verschlüsselte Verbindung.

Um diese Vorzüge zu nutzen, muss sich auf einem Windows-Computer das Kommandozeilen-Tool plink.exe befinden. Auf 64-Bit Systemen muss außerdem der CollabNet Subversion Command-Line Client installiert werden, damit die Verwendung von SVN überhaupt möglich wird.

Befinden sich beide Programme auf dem System, so muss „plink.exe“ noch den Systemvariablen hinzugefügt werden. Wenn die „plink.exe“ nicht über die Systemvariablen verfügbar ist, kommt es zum Fehler: „Can’t create tunnel: Das System kann die angegebene Datei nicht finden.„.
SVN mit SSH über NetBeans weiterlesen

Neuen SSH-Benutzer anlegen

Im Beitrag „[post id=1463]Debian mit OpenSSH administrieren[/post]“ habe ich gezeigt, wie man seinen Server mit SSH verwaltet. Nun möchte ich darauf eingehen, wie man einen neuen SSH-Benutzer anlegen kann.

Das ist besonders wichtig, wenn man zum Beispiel Subversion (SVN) auf seinem Server installiert hat und seine Benutzer über das gesicherte SSH-Protokoll zulassen möchte. Mir liegt dabei besonders die Authentifizierung über private Schlüssel am Herzen, da diese im Allgemeinen sicherer sind als Passwörter.
Neuen SSH-Benutzer anlegen weiterlesen