SVN Repository Prüfung ob leer ist

JavaExpInc

Mitglied
Hallo liebe Javafans ;)

momentan komme ich an einer Stelle nicht weiter, sodass ich hier nun einmal mein Glück versuche.

Ich habe einen SVN Pfad, der den Ordner Tags, Branches und Trunk beinhaltet. Soweit so gut. Nun wird jedoch beim löschen direkt der Oberordner gelöscht und nicht geprüft ob in einem der Unterordner (trunk, tags, branches) etwas enthalten ist dann soll er nämlich diesen nicht löschen.

Nehmen wir an mein svn pfad heißt "project/projectname" so hätte dieser folgende Struktur:

project/projectname/trunk
project/projectname/tags
project/projectname/branches

Wenn trunk Dateien enthält und tags und branches leer sind sollen diese gelöscht werden. Ich weiß das es mit getDir() funktionieren soll, jedoch komme ich nicht dahinter. Ich muss irgendwie prüfen ob der Pfad den ich mir hole etwas beinhaltet oder nicht.

Momentan sieht es so aus:
Java:
final String TrunkPath = getSVNTrunkPath(localProjectFolder);

SVNURL svnURL = SVNURL.parseURIEncoded(TrunkPath);
SVNRepository repos = SVNRepositoryFactory.create(svnURL);

if(???){
pathsWhichWillBeDeleted.add(path);
}
-> Und in meiner If-Abfrage muss ich nun irgendwie prüfen ob der Pfad den ich mir hole also jetzt mein TrunkPath weitere Unterordner bzw. Dateien enthält dann soll er nämlich nicht hinzugefügt werden.

Ich hoffe ihr könnt mir weiterhelfen!
 
Zuletzt bearbeitet von einem Moderator:

JavaExpInc

Mitglied
Ja habe ich, deswegen hab ich meinen Beitrag auch schon abgeändert als ich das gesehen habe :) Da ich mich jedoch nicht im lokalen Verzeichnis befinde sondern im SVN trifft dies ja nicht zu, bzw kann ich dort auch kein neues File anlegen da keine Berechtigung.
 

JavaExpInc

Mitglied
Okay es funktioniert leider immernoch nicht. Wenn ich das richtig verstanden habe brauche ich ja nur
Java:
            Collection entries = repos.getDir( TagsPath, -1, null, (Collection) null );
            Iterator iterator = entries.iterator();
            while ( iterator.hasNext() ) {
                SVNDirEntry entry = (SVNDirEntry) iterator.next();

                if ( entry.getKind() == SVNNodeKind.DIR ) {
                      pathsWhichWillBeDeleted.add(path);
                }
oder sehe ich das falsch? Leider bekomme ich immer eine IllegalArgumentException bei repos.getDir und ich weiß nicht wieso und was das -1, null, (Collection) null) damit auf sich hat. Wäre schön wenn du mir da nochmal helfen könntest, ich verzweifle echt an so einer doofen If-Abfrage...
 
Zuletzt bearbeitet von einem Moderator:

JavaExpInc

Mitglied
Java:
final SVNProperties parentPathProperties = new SVNProperties();
            final List<SVNDirEntry> directoriesBelowPath = new ArrayList<>();

 Collection<?> entries = repos.getDir( ".", -1, parentPathProperties, directoriesBelowPath );
            Iterator<?> iterator = entries.iterator();
            while ( iterator.hasNext() ) {
                SVNDirEntry entry = (SVNDirEntry) iterator.next();

                if ( entry.getKind() == SVNNodeKind.DIR ) {
                pathsWhichWillBeDeleted.add(path);
                }

so habe ich es nun und er iteriert auch schon durch den Ordner, jedoch bin ich mir gerade nicht ganz sicher was überhaupt bei der if Abfrage gerade geprüft wird, dort muss aufjedenfall das abgeändert werden das er prüft ob in dem Ordner etwas drin ist weil momentan iteriert er auch durch leere Ordner und kommt in die If-Abfrage rein.

Weißt du wie die If-Abfrage hier aussehen müsste?
 
Zuletzt bearbeitet von einem Moderator:

JavaExpInc

Mitglied
Für Code bitte Code-Tags nutzen: [code=java]//...[/code] ;)
Wird das nächste mal gemacht :).

Warum in aller Welt willst du manuell irgendwas in einem SVN Repository ändern? Das kann ja nur schief gehen..
Ich möchte ja nichts manuell ändern, ich möchte nur prüfen ob das Verzeichnis leer ist oder Dateien enthält. Ich bin nun soweit, dass er mit dem Code den ich hier reingestellt habe, die Ordner tags/branches/trunk durchgeht jedoch fehlt mir noch die Prüfung ob der Ordner Dateien enthält oder nicht. Könntest du mir da weiterhelfen?
 

mrBrown

Super-Moderator
Mitarbeiter
Ich möchte ja nichts manuell ändern, ich möchte nur prüfen ob das Verzeichnis leer ist oder Dateien enthält. Ich bin nun soweit, dass er mit dem Code den ich hier reingestellt habe, die Ordner tags/branches/trunk durchgeht jedoch fehlt mir noch die Prüfung ob der Ordner Dateien enthält oder nicht. Könntest du mir da weiterhelfen?
Geht es dir einfach nur um Dateien im Ordner oder nur um ins Remote-Repo eingecheckte Dateien?
 

JavaExpInc

Mitglied
Ich habe ein SVN Pfad von TortoiseSVN. Nun habe ich svn/projects/projectname als SVN Pfad. Hier liegen die Ordner Tags, Branches und Trunk und bevor ich das ganze Projekt aus dem SVN lösche möchte ich prüfen ob im SVN in dem Pfad svn/projects/projectname/tags + svn/projects/projectname/branches + svn/projects/projectname/trunk Dateien liegen. Wenn z.B. /branches & /trunk leer sind aber im /tags ordner Dateien enthalten sind sollen nur /branches & /trunk gelöscht werden jedoch nicht /tags.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich versteh ehrlich gesagt immer noch nicht, was du meinst.

Möchtest du *lokale* leere Ordner löschen oder leere Ordner auch Remote aus dem *Repo* löschen (und wenn ja, warum)?
 

JavaExpInc

Mitglied
Ich versteh ehrlich gesagt immer noch nicht, was du meinst.

Möchtest du *lokale* leere Ordner löschen oder leere Ordner auch Remote aus dem *Repo* löschen (und wenn ja, warum)?
Es dreht sich hier nur um das Repo also Remote. Wenn ich ein Projekt lösche soll halt die Abfrage im SVN dieses Projekt auch löschen (was es bisher auch macht) nur es löscht es ohne zu prüfen ob im SVN tags, trunk, branches leer sind oder wenn diese nicht leer sind soll es nicht gelöscht werden. Und genau diese Abfrage fehlt. Da momentan der Ordner im Remote Repo einfach gelöscht wird (was logischerweise nicht passieren soll wenn etwas darin enthalten ist). Ist das so verständlicher? :)
 

Thallius

Top Contributor
Warum nimmst du nicht einfach ein SVN Tool wenn du nicht mit SVN auf Kommando Ebene umgehen kannst in löst dir dort anzeigen was in welchem Repo ist?
 

JavaExpInc

Mitglied
Warum nimmst du nicht einfach ein SVN Tool wenn du nicht mit SVN auf Kommando Ebene umgehen kannst in löst dir dort anzeigen was in welchem Repo ist?

Ich benutzte nicht die Kommandozeile weil das alles eingebettet in einem GUI Programm steckt zur Hilfe vom Erstellen, löschen usw. von Maven Projekten. Verstehe nicht ganz wieso mir keiner helfen kann und nur fragen gestellt werden wieso ich das so machen möchte... Mir geht es ja nur noch um die If-Abfrage und dafür ein SVN Tool in meine Java Anwendung einbetten ist glaube ich mehr Arbeit.
 

Thallius

Top Contributor
Du Must doch nur deine Methode rekursiv machen und wenn es ein dir ist dann ruft sich die Methode wieder selber auf. Taucht irgendwo ein Eintrag auf der kein dir ist gibst du halt ein false zurück ansonsten true.
 

JavaExpInc

Mitglied
Du Must doch nur deine Methode rekursiv machen und wenn es ein dir ist dann ruft sich die Methode wieder selber auf. Taucht irgendwo ein Eintrag auf der kein dir ist gibst du halt ein false zurück ansonsten true.
So einfach ist es dann nicht zumindest nicht für mich sitze da ja schon mehrere Tage bzw. Wochen dran...
Bei der Prüfung auf Dir prüfe ich ja nur ob es ein Directory ist oder nicht. Wenn es ein Directory ist und sie sich rekursiv aufruft dann schaue ich ja immer nur nach Directory und sobald es einmal keins ist gebe ich false zurück? Macht das denn Sinn? Ich suche ja nach Files und wenn es leer ist müsste ich ja in die If-Bedingung rein und mein pathsWhichWillBeDeleted.add(path); aufrufen.

Könntest du mir das eventuell mal zeigen wie du das meinst? Meinen bisherigen Code habe ich ja hier reingeschickt und immernoch keine Lösung trotz wieder 4 Stunden heute dransitzen. Ich wäre echt froh!
 

Thallius

Top Contributor
Also den fertigen Code werde ich hier nicht liefern aber so ungefähr soilte es aussehen

Code:
private boolean isDirEmpty(String path)
{
    Collection entries = repos.getDir( path, -1, null, (Collection) null );
    Iterator iterator = entries.iterator();
    while ( iterator.hasNext() ) 
    {
        SVNDirEntry entry = (SVNDirEntry) iterator.next();
        if ( entry.getKind() == SVNNodeKind.DIR ) 
             if(isDirEmpty(entry.getKind()) == false)
                 return false;
        else
            return false;
}
 

JavaExpInc

Mitglied
Okay vielen dank Thallius! Jetzt kann ich mir die Methode schon deutlich besser vorstellen :). Ich werde das morgen direkt einmal ausprobieren jetzt weiß ich aufjedenfall in welche Richtung das geht!
 

JavaExpInc

Mitglied
Also den fertigen Code werde ich hier nicht liefern aber so ungefähr soilte es aussehen

Code:
private boolean isDirEmpty(String path)
{
    Collection entries = repos.getDir( path, -1, null, (Collection) null );
    Iterator iterator = entries.iterator();
    while ( iterator.hasNext() )
    {
        SVNDirEntry entry = (SVNDirEntry) iterator.next();
        if ( entry.getKind() == SVNNodeKind.DIR )
             if(isDirEmpty(entry.getKind()) == false)
                 return false;
        else
            return false;
}


Leider habe ich hierzu doch noch einmal eine frage. Zu aller erst müsste man doch hier
Code:
        else
            return false;
true returnen oder?
Und bei
Code:
 if(isDirEmpty(entry.getKind()) == false)
dies funktioniert ja nicht, da mein isDirEmpty einen String path erwartet und nicht ein SVNNodeKind, nun ist die Frage wie bekomme ich den Pfad von dem entry.getKind().
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
K Probleme mit Repository Java Basics - Anfänger-Themen 2
L Eclipse->SVN Repository Problem Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
T Prüfung auf Existenz eines Dialogfensters Java Basics - Anfänger-Themen 5
E equals Prüfung fehlgeschlagen Java Basics - Anfänger-Themen 3
B Serial Key - Prüfung ob Software gekauft Java Basics - Anfänger-Themen 1
U Prüfung, ob Datei vollständig vorhanden Java Basics - Anfänger-Themen 8
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
T Prüfung in 2 Tagen Java Basics - Anfänger-Themen 4
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
J Prüfung einer Schleife mit Eingabefeldern Java Basics - Anfänger-Themen 3
B Prüfung auf erfolgreiche Connection? Java Basics - Anfänger-Themen 2
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
F TicTacTo Prüfung + Ergebnisausgabe Java Basics - Anfänger-Themen 10
M Calendar-Prüfung funktioniert nicht korrekt Java Basics - Anfänger-Themen 6
D Prüfung zur korrekten Ausgabe einer Methode Java Basics - Anfänger-Themen 2
O String-Prüfung: Was ist besser/schneller? Java Basics - Anfänger-Themen 15
M Prüfung beim Erzeugen eines Objektes Java Basics - Anfänger-Themen 4
N Scanner next() oder nextLine() zur prüfung auf leere Eingabe... Java Basics - Anfänger-Themen 6
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
G Prüfung ob GUI möglich? Java Basics - Anfänger-Themen 2
M Prüfung simulieren Java Basics - Anfänger-Themen 4
Semox Ganzzahlentyp- morgen Prüfung Java Basics - Anfänger-Themen 2
S Ordner prüfung Java Basics - Anfänger-Themen 2
C Parameter rückgabe nach Prüfung an Klasse/Methode Java Basics - Anfänger-Themen 2
C Datum prüfung geht nicht? Java Basics - Anfänger-Themen 9
F Objekt vom Typ Interfaces: Prüfung von welcher Unterklasse? Java Basics - Anfänger-Themen 7
W vertrackst ? brauchbare prüfung auf NULL ? Java Basics - Anfänger-Themen 7
Z Prüfung auf existenz einer Variablen Java Basics - Anfänger-Themen 4
Z Problem der Prüfung auf ein leeres Formularfeld Java Basics - Anfänger-Themen 3
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
L Enumeration Wetter - leer initialiseren? Java Basics - Anfänger-Themen 5
D Warum nicht true wenn Array leer ist? Java Basics - Anfänger-Themen 8
Aruetiise Variablen Array ist leer? Java Basics - Anfänger-Themen 6
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
MiMa Leere Datei ist nicht Leer ?? Java Basics - Anfänger-Themen 6
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
M Ausgabe eines txt Dokuments, Dokument leer Java Basics - Anfänger-Themen 1
M Felder leer - überprüfen? Java Basics - Anfänger-Themen 2
D In Arrayfeld schreiben wenn leer Java Basics - Anfänger-Themen 8
K Methoden ResultSet als Methodenübergabewert kommt leer an Java Basics - Anfänger-Themen 0
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
S TextFieldFilter - Wenn Textfeld leer dann setze 0 Java Basics - Anfänger-Themen 9
W Erste Schritte Array[0] ist leer ? Java Basics - Anfänger-Themen 4
M Falls ---.getText == leer Problem! Java Basics - Anfänger-Themen 9
A Klassen JTextField eigtl leer aber es werden Methoden ect. angezeigt Java Basics - Anfänger-Themen 9
F JNumberField leer? Java Basics - Anfänger-Themen 16
X Array leer Java Basics - Anfänger-Themen 15
H Input/Output Testen ob Datei leer Java Basics - Anfänger-Themen 14
B getInputStream() - auslesen bleibt leer Java Basics - Anfänger-Themen 2
P While schleife: Konsole bleibt leer :D Java Basics - Anfänger-Themen 5
S Prüfen,ob array leer ist Java Basics - Anfänger-Themen 15
B Process.getInputStream immer leer Java Basics - Anfänger-Themen 3
F Eigene Exception StackTrace und Message ist leer warum??? Java Basics - Anfänger-Themen 3
R Adjazenzliste leer Java Basics - Anfänger-Themen 3
G Integer auf Leer überprüfen Java Basics - Anfänger-Themen 44
reno Testen ob String leer ist Java Basics - Anfänger-Themen 12
D Drucken - Seite leer Java Basics - Anfänger-Themen 2
U Animation bleibt leer (weiß) Java Basics - Anfänger-Themen 5
P Prüfen ob alle zellen der tabelle leer sind Java Basics - Anfänger-Themen 9
H Datei nach serialisieren leer ? Java Basics - Anfänger-Themen 10
G jede 2te zeile in vector leer einfügen, wie? Java Basics - Anfänger-Themen 4
G Table bleibt leer :( Java Basics - Anfänger-Themen 12
M Feststellen, das Textboxen leer sind! Java Basics - Anfänger-Themen 3
M String ist leer Java Basics - Anfänger-Themen 14
B Zip ist leer Java Basics - Anfänger-Themen 5
B Datei leer? Java Basics - Anfänger-Themen 6
E Probleme bei Stringvergleich, leer String = gefülltem String Java Basics - Anfänger-Themen 2
S Array bleibt leer, wo liegt mein Fehler? Verzeichnisinhalt s Java Basics - Anfänger-Themen 8
K Variable leer oder nicht Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
A Fenster bleibt leer und schließt sich nicht Java Basics - Anfänger-Themen 26
P Fragen, ob Eingabefeld leer ist oder nicht Java Basics - Anfänger-Themen 2
G jComboBox zunächst leer Java Basics - Anfänger-Themen 6
R Zeile leer lassen Java Basics - Anfänger-Themen 2
V JList(s) leer sobald ein Eintrag in 2+ Listen gewählt wird Java Basics - Anfänger-Themen 3
H Übergabe eines Wertes an eine Bean --> Bean leer Java Basics - Anfänger-Themen 6
K Prüfen, ob Queue leer ist Java Basics - Anfänger-Themen 5
G Mein Array bleibt immer leer????????? Java Basics - Anfänger-Themen 8
S Datei nach FileOutputStrem leer, warum ? Java Basics - Anfänger-Themen 2
G Variablen werden leer ausgelesen (Wert wurde zugewiesen) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben