Subversion == totaler Schrott???
-
Hallo zusammen
Ich arbeite nun sei einem Jahr mit Subversion und Tortoise (Win7) und hatte immer wieder kleinere und grössere Probleme:Es scheint irgendwie extrem unzuverlässig zu sein. Ständige (Can't move... ...Die Datei ist beschädigt und nicht lesbar) Meldungen beim Versuch, etwas zu committen (beim 6. Versuch klappts dann manchmal doch noch, ist die entsprechende Datei auf wundersame Weise plötzlich doch lesbar). Ständige Meldungen ala "Commit failed... ...Working Copy locked. Please Execute CleanUp Command). Ich mache CleanUp -> CleanUp Succeeded. Dann wieder Commit -> Wieder die erste Meldung. 4 - 5mal wiederholen (Commit CleanUp Commit CleanUp Commit CleanUp...) und mit etwas Glück funktioniert es dann plötzlich doch noch. Nicht selten ist allerdings ein Neustart des Rechners erforderlich, bevor man in der Lage ist, eine Änderung zu comitten. (Was übrigens auch immer wieder vorkommt ist, dass einzelne Mitarbeiter dieselbe Revisionsnummer eines Repositories, aber dennoch unterschiedliche Daten in den lokalen Repositories haben
Was mich jtzt entgültig auf die Palme bringt ist folgende Situation. Ich habe ein Projekt (ca. 2.18GB (1564 Dateien)) und möchte dieses in ein neues Repository transferieren. Repository erstellt, checkout gemacht, Daten in entsprechenden Ordner kopiert und commit.
Can't move <path>\.svn\tmp\entries to <path>\.svn\entries
Ich habe es ca. 15 Mal versucht, immer die gleiche Meldung.
Ok, dann versuchen wir das Projekt Junkweise zum Repository hinzuzufügen anstatt das gesamte Projekt auf einmal (IMHO bereits ein Armutszeugnis dieser Software). Und siehe da, es funktionert, plötzlich sind die entsprechenden Verzeichnisse doch lesbar.Ach nein doch nicht:
Commit succeeded, but other errors follow ... ...Error dumping revision post-commit... ...Error processing command... usw...Ok, ich versuche einfach nochmal zu comitten
Server sent unexpected return value (405)... ...MKCOL request...Ok, cleanup??
Cleanup failed... ...Directory locked...Nestart und noch mal Commit
Working Copy ... ...locked. Please execute CleanUp CommandZu Befehl!
CleanUp failed Working Copy lockedAlso habt ihr auch solche Probleme, oder bin ich einfach unfähig? Aber was kann man beim Drücken auf den Commit Knopf genau falsch machen? :-p
Mfg Samuel
-
Ishildur schrieb:
Ich habe ein Projekt (ca. 2.18GB (1564 Dateien)) und möchte dieses in ein neues Repository transferieren. Repository erstellt, checkout gemacht, Daten in entsprechenden Ordner kopiert und commit.
Hast Du beim Kopieren zufällig die .svn Verzeichnisse mitkopiert?
-
@loks
Nein die habe ich alle entfernt!
-
"Can't move" etc. könnte evtl. nen Virenscanner oder sowas verursachen...
(Keine Probleme mit tortoise-svn bei mir, allerdings auch keine 2gb projekte)
-
@geeky
Ja am Anfang (die ersten 2 Monate funktionierte alles bestens, aber je umfangreicher das Projekt wurde, desto unzuverlässiger und fehleranfälliger wurde Subversion! Grosse Probleme haben wir auch mit allen Formen von Binärdaten (Texturen, Meshes usw...). Ein einziger Pixel verändert, die komplette Datei wird kopiert... ...hackts oder was??? :-p Nicht selten müssen wir nach einem einzigen Arbeitstag Gigaweise Daten vom zentralen Server kopieren (auf jede Arbeitsstation) um die lokalen Repositories aktuell zu halten.
-
Habe jtzt grad ne neue Fehlermeldung gekriegt:
Commit
Commit failed (details follow):
File not found: transaction '0-0', path '/GameArt/Development/GermanSub/imagesDie Date (Verzeichnis) existiert selbstverständlich!
-
Wie wäre es mit "Tortoise == totaler Schrott" oder "Win7 == totaler Schrott" oder gar "User == keine Ahnung".
Ich verwende svn auf Linux mit Kommandozeile und habe damit keine Probleme. Ein Kollege verwendet Eclipse unter Windows mit dem Repository auf Linux und auch da gibt es keine Probleme.
Wenn Du Probleme hast, solltest Du nicht gleich Subversion als totalen Schrott deklarieren. Eventuell reicht es ja, wenn Du sagst, dass Du mit Subversion oder Deinem Subversion client nicht klar kommst.
-
@Ishildur: Für binäre Dateien sind diese VC-Systeme aber afaik alle nicht wirklich geeignet.
Ganz abgesehen davon hatte ich auch immer solche Probleme mit Subversion bei größeren Projekten (vor allem Refactoring (= Verschibeen & Umbenennen) hat immer ganz furchtbare Probleme ausgelöst). Ich bin jetzt auf Grund meiner Universität auf Mercurial umgestiegen und bin bis jetzt sehr zufrieden. Habe das erste größere Projekt ganz ohne eine einzige Fehlermeldung durchgeführt. Und wir haben exzessiv gelöscht/umgebaut.
(Mangels IDE-Unterstützung fehlt uns aber wie bei CVS die Historie falls die Datei umbenennt wurde...)
MfG SideWinder
-
@ich bins
Desshalb habe es ja als Frage gestellt?
Und "User == keine Ahnung", dann sag mir doch jetzt bitte, was ich anstatt Commit machen muss? Ich mache Update, Commit, Reverse und CleanUp. Jede dieser Funktionen verursacht Fehler beim aktuellen Projekt. Ist das wirkliche Versagen des Users?
-
Dann also:
Nein, SVN nix totaler schrott. Arbeite damit seit geraumer Zeit, so gut wie keine probleme bisher. Man muss allerdings durchaus das eine oder andere beachten, besonders beim mergen.
Allerdings habe ich auch schon gehört, dass ab 2GB SVN kritisch wird. Aber mit ~1,5GB hatte ich noch keine probleme, das waren auch deutlich mehr als mickrige 1500 dateien.
-
Ishildur schrieb:
@ich bins
Desshalb habe es ja als Frage gestellt?
Und "User == keine Ahnung", dann sag mir doch jetzt bitte, was ich anstatt Commit machen muss? Ich mache Update, Commit, Reverse und CleanUp. Jede dieser Funktionen verursacht Fehler beim aktuellen Projekt. Ist das wirkliche Versagen des Users?Was passiert wenn du svn direkt verwendest? Kommen dann die selben Fehler?
-
@KuhTee
das waren auch deutlich mehr als mickrige 1500 dateien.
Hast du aber auch mal versucht, alle deine Dateien auf einmal zu committen?
Also ich erkläre noch einmal die Situation bei mir jtzt gerade.Ich habe eine leeres Repository auf meinem FreeBSD Server im Keller gemacht svnadmin create Serenity
chown -R www:www SerenityDanach auf der Win7 Kiste mit Tortoise 1.6.9 (heute heruntergeladen und installiert), ein neues Verzeichnis auf Desktop erstellt. Danach Rechtsklick->SVN Checkout...
Danach sämtliche Projektdaten vom Datenserver in dieses Verzeichnis kopiert (dieses Projekt war bisher nicht versioniert) (ca. 2.18 GB), danach wieder Rechtsklick auf das Verzeichnis->SVN Commit...Augenblicklich erscheint eine Fehlermeldung:
Can't move... ...Die Datei oder das Verzeichnis ist nicht lesbarIch klicke OK und mache gleich noch einmal ein commit. Jetzt funktionierts und er beginnt mit dem effektiven Datentransfer. Nach ca. 5min kommt:
Commit succeeded, but other errors follow.
Error bumping revision post-commit (details follow)... ... Error processing command.Ich sehe auch mit Hilfe von Windows Debugging Tools das einfach noch ca. 1000 Filelocks auf Tortoise offen sind, obwohl Tortoise längst beendet wurde (CreateFile ohne CloseHandle). Und tatsächlich, jeder weitere Versuch von Commit und CleanUp endet mit der Fehlermeldung von Tortoise:
Working Copy... ...Locked. Please execute CleanUp Command
CleanUp failed, Working Copy locked.Und das selbst nach einem Neustart des Rechners...
-
@Shade Of Mine
Was meinst du mit "direkt verwendest"? Irgend einen Client benötige ich doch?
-
nein du brauchst keinen client wie tortoise, einfach mal so svn verwenden - über die kommandozeile.
git wäre vielleicht auch mal einen blick wert
-
Ishildur schrieb:
@KuhTee
Hast du aber auch mal versucht, alle deine Dateien auf einmal zu committen?
Also ich erkläre noch einmal die Situation bei mir jtzt gerade.Ich habe eine leeres Repository auf meinem FreeBSD Server im Keller gemacht svnadmin create Serenity
chown -R www:www SerenityDanach auf der Win7 Kiste mit Tortoise 1.6.9 (heute heruntergeladen und installiert), ein neues Verzeichnis auf Desktop erstellt. Danach Rechtsklick->SVN Checkout...
Danach sämtliche Projektdaten vom Datenserver in dieses Verzeichnis kopiert (dieses Projekt war bisher nicht versioniert) (ca. 2.18 GB), danach wieder Rechtsklick auf das Verzeichnis->SVN Commit...Augenblicklich erscheint eine Fehlermeldung:
Can't move... ...Die Datei oder das Verzeichnis ist nicht lesbarIch klicke OK und mache gleich noch einmal ein commit. Jetzt funktionierts und er beginnt mit dem effektiven Datentransfer. Nach ca. 5min kommt:
Commit succeeded, but other errors follow.
Error bumping revision post-commit (details follow)... ... Error processing command.Ich sehe auch mit Hilfe von Windows Debugging Tools das einfach noch ca. 1000 Filelocks auf Tortoise offen sind, obwohl Tortoise längst beendet wurde (CreateFile ohne CloseHandle). Und tatsächlich, jeder weitere Versuch von Commit und CleanUp endet mit der Fehlermeldung von Tortoise:
Working Copy... ...Locked. Please execute CleanUp Command
CleanUp failed, Working Copy locked.Und das selbst nach einem Neustart des Rechners...
OT: cool dass deine Kiste Serenity heisst
Firefly-Fan?
-
Ich glaub sein Repository heisst Serenity.
Und ich schätze das wird der Name eines Spiels sein (er hat ja Texturen & Meshes erwähnt).
-
Schonmal dran gedacht das dein Computer im Arsch drinne sein könnte? :schland:
-
Subversion ist imo Schrott. Besser als *kein* VCS, aber immer noch Schrott.
Das Problem ist nicht unbedingt die grauenhafte Performance, die übertrieben großen Reposity-Folder oder das instabile TortoiseSVN.
Das größte Problem ist meiner Meinung nach, dass man so leicht Fehler machen kann und so sein Repository ganz leicht unbrauchbar machen kann. Mal eben nen Ordner in der IDE ohne VCS renamed, ne neue Date erstellt und ne alte geändert? Viel Spaß beim Committing - und noch mehr Spaß beim anschließenden merging des manuell hergestellten Sourcetrees mit dem neuen Code.
Mein Favorit ist ja ein Eclipse Java Projekt + SVN. Warum? Im .eclipse Folder werden immer neue Files hinzugefügt (und gelöscht) und die Class-Dateien sind ja erstmal auch alle im SVN. Ein simples commit - Feierabend geht in so einem Setup prinzipiell nicht.
Eine gute Alternative scheint Git zu sein (nman Fragen- habe ich aber noch nicht getestet.
-
Einige der Probleme mit Subversion sind auch BDB-spezifischer Natur. Wenn Du bei Subversion mal in den Sourcen herumgewühlt hast, wird Dir ganz schnell übel.
Könnte sein, dass das mit FSFS besser ist, ich persönlich habe das nie ernsthaft ausprobiert, weil es noch viel zu wackelig war, als ich noch Subversion verwendete, aber vielleicht hilft es Dir in diesem Fall ja sogar.
-
Ishildur schrieb:
Danach sämtliche Projektdaten vom Datenserver in dieses Verzeichnis kopiert (dieses Projekt war bisher nicht versioniert) (ca. 2.18 GB), danach wieder Rechtsklick auf das Verzeichnis->SVN Commit...
So wie Du es da beschreibst fehlt der Schritt SVN.Add vor dem SVN.Commit