Verbindung zu einem Repository (SVN) aufbauen in der Anwendung

Hallo Leute,

hat jemand schon probiert eine Verbindung zum Repository aufzubauen und dann Daten zu ziehen?

Mein Ziel wäre: Beim starten der Anwendung wird eine Verbindung zu einem Repository (Pfad, Benutzername und Passwort bekannt) aufgebaut. IN dem repository sind xslt Dateien. Auf meinem Rechner habe ich lokal auch diese Dateien. Es soll nun überprüft werden ob die Dateien auf dem rechner noch aktuell sind, wenn nicht sollen die Dateien vom Repository gezogen werden.

Kann mir jemand weiter helfen? Vielelicht mit nem Codebeispiel?

Viele Grüße Stephan
 
Hallo,

Mit svnkit (http://svnkit.com/) ist das ganz easy:

Java:
/**
 * 
 */
package de.tutorials;

import org.tigris.subversion.javahl.Revision;
import org.tigris.subversion.javahl.SVNClient;

/**
 * @author Thomas.Darimont
 * 
 */
public class JavaSVNAccessExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        SVNClient client = new SVNClient();
        client.username("username");
        client.password("password");

        client.checkout("http://pathtoyourrepository/someproduct/trunk", "d:/temp/svntest/someproduct/trunk", Revision.HEAD, true);
        //client.update("d:/temp/svntest/someproduct/trunk", Revision.HEAD, true);
    }

}

Über javahl (Subversion Bindungs für Java)
http://svn.collab.net/repos/svn/trunk/subversion/bindings/javahl/ geht das ähnlich.

Gruß Tom
 
Mh was muß ich mir denn da runter laden? Die Sourcen? Standalone? Muß ich das dan normal einbinden? Wird denn dann auch überprüft, ob die aktuellste Version schon geladen ist?
 
Zuletzt bearbeitet:
Ok hab es selber hin bekommen :) Danke nochmal. Aber eine Frage habe ich noch, wegen der versionierung. Wie bekomme ich raus, welche Version ich lokal habe? und welche auf dem Server liegt? Und ich würde gerne einen Fortschrittsbalken haben, der läuft während er lädt, oder ne anzeige "2 von 5 Dateien geladen..."

Geht das irgendwie?
 
Hallo,

ich denke mal mit:
client.getVersionInfo(path, trailUrl, lastChanged) bekommst du die letzte Version des lokalen Pfades.

und wenn du vor deinem Update / Checkout mit
client.notification2(new Notify2(){
@Override
public void onNotify(NotifyInformation arg0) {

}
});

bzw. Notify einen entsprechenden Listener registrierst, wirst du wohl auch über Ereignisse Informiert werden.

Mehr infos gibts im Source:
http://svn.collab.net/repos/svn/tru...c/org/tigris/subversion/javahl/SVNClient.java

Gruß Tom
 
Zurück