anbindung an sourceforge's CVS

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 09:06

Wie einfach oder schwer ist es an sourceforge's CVS Daten herran zu kommen?

Ich fänd es nett, wenn man per CGI sich eine aktuelle build machen könnte. In meinem Fall ist das theoretisch recht einfach, weil ich nur alle Dateien auf dem letzten Stand vom CVS Server downloaden müßte. Dann das ganze zu einer ZIP zusammen packen und zum Client schicken...

Ist das CVS Protokoll kompliziert, oder gibt es da fertige Module für? Ich hab bisher nur CVStoys gefunden und schaue mir das mal an...

EDIT: CVSToys benötigt twisted, also kann ich das schonmal vergessen... Ich muß ja eigentlich auch keine gesicherte Verbindung zum CVS Server aufbauen, ein Anonymous Zugang würde doch reichen, oder?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Sonntag 18. September 2005, 11:43

Warum machst du es nicht einfach mit den CVS Commandozeilen Tools? Die müssen doch sowieso installiert sein.

Code: Alles auswählen

Python 2.3.5 (#1, Sep 10 2005, 19:23:30) 
[GCC 3.3.5-20050130 (Gentoo Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie- on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system( 'cvs co' )
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 12:24

Ich denke der befehl cvs export (oder lautet der anders), ist besser in dem Fall, da dann nicht in jedem Unterordner noch ein Ordner 'CVS' ist.

SVN hat von Haus aus Python-Bindings, noch ein Grund mehr, es einzusetzen :D
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Sonntag 18. September 2005, 12:39

Leonidas hat geschrieben:SVN hat von Haus aus Python-Bindings [...]
Was meinst du mit von Haus aus?!? Für mich sieht es ehr so aus, als wäre pysvn ein von Subversion unabhängiges Projekt. :roll:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 12:44

Ich meine dass auf Tigris.org die Python Bindings zu Subversion im gleichen Download-Bereich waren und daher habe ich sie als zu Sbversion zugehörig eingestuft.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 14:38

OK, die Kommandozeilen version wäre eine Möglichkeit... Direkt mit dem Server zu kommunizieren ist also nicht möglich?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 14:47

Doch, sicher, wenn du eine andere Implementation des pserver Protokolls findest, die man von Python nutzen kann.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 15:13

Hab rumgesucht, aber nix gefunden....
Hier ist das Protokoll beschrieben:
http://www.elegosoft.com/cvs/cvsclient.html

Werd mal versuchen das umzusetzten... Mal sehen wie weit ich komme :?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 15:16

Setz dir noch einen CVS Server auf zum testen und nimm dir nen Paketsniffer. Ist manchmal wahnsinnig praktisch.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 15:44

Hast recht, ich stolper schon über das Passwort :? Ich weiß nicht was ich als Passwort senden muß, wenn ich als anonymous rein gehe... Ich erhalte nur:
cvs [pserver aborted]: descramble: unknown scrambling method
Hier mein Code:
(EDIT: Source gelöscht. Neuere Version weiter unten...)

Schau mit gerade http://www.networkchemistry.com/products/packetyzer/ an...
Zuletzt geändert von jens am Sonntag 18. September 2005, 21:52, insgesamt 1-mal geändert.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 15:51

jens hat geschrieben:Hast recht, ich stolper schon über das Passwort :? Ich weiß nicht was ich als Passwort senden muß, wenn ich als anonymous rein gehe... Ich erhalte nur:
cvs [pserver aborted]: descramble: unknown scrambling method
Steht doch hier.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 15:54

Das hab ich auch schon gesehen... Ich wußte nur nicht, welches Passwort denn überhaupt bei anonymous genommen werden muß. Bei sf.net hab ich allerdings gerad nachgelesen das ein einfaches ENTER (also nix) genügt...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 16:07

Mal was ganz anderes: Warum schreibst du immer zwischen die Funktionsklammern Leerzeichen? Also zum Beispiel: self.sock.recv( 1024 ) statt self.sock.recv(1024). Ich kenne niemanden sonst, der das so schreibt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 18. September 2005, 16:09

Leonidas hat geschrieben:Mal was ganz anderes: Warum schreibst du immer zwischen die Funktionsklammern Leerzeichen? Also zum Beispiel: self.sock.recv( 1024 ) statt self.sock.recv(1024). Ich kenne niemanden sonst, der das so schreibt.
Hm... Weiß nicht... Hab ich mir so angewöhnt... Schlechter Stile?

Ich kann mich nun anmelden! Das Passwort wird anscheinend immer mit einem "A" eingeleitet. Also einfach "A\n" senden...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. September 2005, 16:24

jens hat geschrieben:
Leonidas hat geschrieben:Mal was ganz anderes: Warum schreibst du immer zwischen die Funktionsklammern Leerzeichen? Also zum Beispiel: self.sock.recv( 1024 ) statt self.sock.recv(1024). Ich kenne niemanden sonst, der das so schreibt.
Hm... Weiß nicht... Hab ich mir so angewöhnt... Schlechter Stile?
PEP 8 hat geschrieben:Guido hates whitespace in the following places:

- Immediately inside parentheses, brackets or braces, as in:
"spam( ham[ 1 ], { eggs: 2 } )". Always write this as
"spam(ham[1], {eggs: 2})".
Die meisten halten sich daran. Ich versuche mich auch an die meisten Sachen zu halten, nur eine Ausnahme mache ich mit voller Absicht (ich grupiere Module beim Import nach Herkuft, also stdlib, gtk usw. weil ich das sehr informativ finde, besonder für Leute die meinen Code lesen).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten