Frage

Ich programmiere jetzt seit mehr als 10 Jahren für denselben Arbeitgeber und die einzige Quellcodeverwaltung, die wir jemals verwendet haben, war VSS.(Entschuldigung – das hatten sie, als ich anfing).Es gab immer nur wenige von uns;Im Moment sind es zwei, und wir arbeiten normalerweise alleine, also hat VSS für uns gut funktioniert.Daher habe ich zwei Fragen:1) Sollten wir zu etwas anderem wie Subversion, Git, TFS usw. wechseln, was genau und warum (bitte)?2) Bin ich jenseits aller Hoffnung und zur ewigen Verdammnis verurteilt, weil VSS mich korrumpiert hat (wie Jeff sagt)?

Wow – vielen Dank für all die tollen Antworten!

Es hört sich so an, als ob ich ein paar Dinge klarstellen sollte.Wir sind ein MS-Shop (Gold-Partner) und erledigen hauptsächlich VB-, ASP.NET-, SQL Server-, Sharepoint- und Biztalk-Arbeiten.Ich habe einen CS-Abschluss, also habe ich x86-Assembly C, C++ auf DEC Unix und Slackware Linux in einer „unglaublichen Zeit“ durchgeführt ...

Meine Sorge bei VSS ist, dass ich jetzt viel mehr über ein VPN und die Leistung von VSS arbeite und befürchte, dass unsere über 10 Jahre alte VSS-Datenbank der Version 5 ausgelastet wird ...Es gibt den LAN-Dienst, der die Dinge beschleunigen soll, aber ich habe ihn nie verwendet und bin mir nicht sicher, ob er bei Korruption hilft. Hat jemand den VSS-LAN-Dienst verwendet?(neu mit VSS 2005)

War es hilfreich?

Lösung

An deiner Stelle würde ich mich wahrscheinlich für Subversion entscheiden.Ich bin derzeit ein absoluter Git-Fanatiker, aber Subversion hat sicherlich einige Vorteile:

  • Einfachheit
  • Fülle interoperabler Tools
  • aktive und unterstützende Gemeinschaft
  • tragbar
  • Verfügt über eine wirklich schöne Windows-Shell-Integration
  • lässt sich in Visual Studio integrieren (glaube ich – aber sicherlich über einen Drittanbieter)

Git hat viele, viele weitere Vorteile, aber die oben genannten sind in der Regel diejenigen, die Menschen interessieren, wenn sie allgemeine Fragen wie die oben genannten stellen.

Bearbeiten:Das Unternehmen, für das ich jetzt arbeite, verwendet den kostenlosen VisualSVN-Server.Es macht das Einrichten eines Subversion-Repositorys auf einem Windows-Server zum Kinderspiel, und auf dem Client verwenden wir TortoiseSVN (für die Shell-Integration) und AnkhSVN für die Visual Studio-Unterstützung.Es ist ziemlich gut und sollte selbst für VSS-Benutzer ziemlich einfach zu erlernen sein.

Letzte Bearbeitung:Also... fast acht Jahre später würde ich Subversion aus irgendeinem Grund niemandem empfehlen.Ich widerrufe nicht wirklich, an sich, weil ich denke, dass mein Rat damals gültig war.Allerdings behält Subversion im Jahr 2016 fast nichts mehr von den Vorteilen, die es früher gegenüber Git hatte.Die Tools für Git sind denen von früher überlegen (und viel vielfältiger), und insbesondere gibt es GitHub und andere gute Git-Hosting-Anbieter (BitBucket, Beanstalk, Visual Studio Online, die mir spontan eingefallen sind).Visual Studio verfügt jetzt standardmäßig über Git-Unterstützung, und die ist eigentlich ziemlich gut.Es gibt sogar PowerShell-Module, um Konsolenbenutzern ein nativeres Windows-Erlebnis zu bieten.Git ist noch einfacher einzurichten und zu verwenden als Subversion und erfordert keine Serverkomponente.Git ist so allgegenwärtig geworden, wie es jedes einzelne Tool sein kann, und Sie würden sich wirklich nur selbst betrügen, wenn Sie es nicht verwenden würden (es sei denn, Sie möchten einfach etwas verwenden, das nicht zu Git gehört).Verstehen Sie mich nicht falsch – das liegt nicht daran, dass ich Subversion hasse, sondern dass ich erkenne, dass es ein Werkzeug aus einer anderen Zeit ist, eher wie ein Rasiermesser zum Rasieren.

Andere Tipps

Sieht so aus, als ob SubVersion hier der Gewinner ist.Ich würde dir selbst einen Gefallen tun und es nutzen VisualSVN-Server.Es ist kostenlos und erspart Ihnen eine Menge Installationsprobleme.

Wenn Sie mit der Funktionsweise von VSS vertraut sind, schauen Sie sich Folgendes an (kein Wortspiel beabsichtigt). Sourcegears Tresor.Es ist eine hervorragende Möglichkeit, von VSS abzuwandern, da es über eine IDE-Integration verfügt und das Auschecken/Einchecken unterstützt. Wenn Sie jedoch bereit sind und sich wohl fühlen, können Sie auch zum Programmierstil „Edit Update Commit“ wechseln, der in SVN zu finden ist.

Es ist für einzelne Entwickler kostenlos, läuft auf IIS und basiert auf .net, sodass es ein ziemlich vertrauter Stack sein sollte, zu dem Sie wechseln können.

Was auch immer Sie tun, ändern Sie sich nicht um der Veränderung willen.

Wenn es bei Ihnen funktioniert und Sie keine Probleme damit haben, sehe ich keinen Grund für einen Wechsel.

Für das, was es wert ist, ist Perforce eine potenzielle Option, wenn Sie sich wirklich auf einen oder zwei Benutzer beschränken.Aktuelle Perforce-Dokumente besagen, dass Sie über 2 Benutzer und 5 Clients verfügen, ohne mit dem Kauf von Lizenzen beginnen zu müssen.

Abhängig von Ihrem Arbeitsablauf und der Notwendigkeit einer Verzweigung auf die Art und Weise, wie Perforce dies tut, kann es Gründe geben, auf Perforce umzusteigen.Da ich mit einigen der anderen hier genannten Produkte nicht besonders vertraut bin, kann ich Ihnen nicht unbedingt sagen, wie sich die Feature-Abteilung bei Dingen wie Verzweigung usw. schlägt.

Es ist schnell und für uns (über 300 Entwickler auf einer über 10 Jahre alten Codebasis) absolut solide.Wir speichern mehrere T an Informationen und es hat recht schnell reagiert.Ich bezweifle, dass es bei einer kleinen Anzahl von Benutzern zu großen Leistungsproblemen kommen würde, vorausgesetzt, Sie hätten eine gute Hardware für Ihren Server.

Nachdem ich VSS schon einmal verwendet habe, glaube ich, dass Sie aus einem besseren SCM-System so viele Vorteile ziehen können, dass ein Wechsel in Betracht gezogen werden sollte, unabhängig davon, ob Sie beschädigt sind oder nicht.Allein die Verzweigung könnte sich für Sie lohnen.Ein echtes Client/Server-Modell, bessere Schnittstellen (programmgesteuert und über die Befehlszeile) sind einige andere Dinge, die wirklich dazu beitragen können, Ihren Arbeitsablauf zu verbessern und die Produktivität etwas zu steigern.

Zusammenfassend ist meine Meinung zu Perforce:

  • Es ist schnell und ziemlich zuverlässig
  • Zahlreiche plattformübergreifende Client-Tools (Windows, Unix, Mac usw.)
  • Es ist kostenlos für 2 Benutzer und 5 Kunden
  • Integriert in Developer Studio (und andere Tools)
  • Verfügt über ein leistungsstarkes Verzweigungssystem (das für Sie möglicherweise das Richtige ist oder auch nicht).
  • Verfügt über mehrere skriptfähige Schnittstellen (Python, Perl, Ruby, C++)

Auf jeden Fall YMMV – ich biete diese Alternative nur als etwas an, bei dem es sich lohnen könnte, es sich anzusehen.

Ich habe vor kurzem damit begonnen, es zu verwenden Mercurial für einige meiner Arbeiten.Es ist ein verteiltes System wie Git, scheint jedoch einfacher zu verwenden und wird unter Windows weitaus besser unterstützt, wobei letzteres für mich von entscheidender Bedeutung war.

Bei der verteilten Quellcodeverwaltung verfügt jeder Benutzer über eine vollständige lokale Kopie des Repositorys.Wenn Sie die einzige Person sind, die an einem Projekt arbeitet, was Sie oft sagen, kann dies die Dinge erheblich vereinfachen, da Sie einfach Ihr eigenes Repository erstellen und alle Ihre Commits usw. durchführen.örtlich.Wenn Sie später andere Entwickler hinzuziehen möchten, können Sie einfach den gesamten Inhalt Ihres Repositorys – aktuelle Versionen und den gesamten Verlauf – auf ein anderes System übertragen, entweder auf einen gemeinsam genutzten Server oder direkt auf die Workstation eines anderen Benutzers.

Wenn Sie nur mit einem lokalen Repository arbeiten, denken Sie daran, dass Sie auch eine Backup-Lösung benötigen, da sich auf einem gemeinsam genutzten Server keine Kopie Ihres gesamten Codes befindet.

Ich denke, dass Mercurial viele andere Vorteile gegenüber Subversion hat, aber es hat auch einen großen Nachteil, der bereits als Pluspunkt von Subversion erwähnt wurde:da ein viele von Tools und Integrationen Dritter für Subversion.Da es Mercurial noch nicht annähernd so lange gibt, ist die Auswahl viel geringer.Unter Windows scheint es, dass Sie entweder die Befehlszeile (meine Wahl) oder die verwenden müssen SchildkröteHg Windows Explorer-Integration.

VSS ist schrecklich.Ich kanalisiere vielleicht Spolsky (ich bin mir nicht sicher, ob er das gesagt hat), aber die Verwendung von VSS ist tatsächlich schlimmer, als überhaupt keine Quellcodeverwaltung zu verwenden.Trotz seines Namens ist es ist nicht sicher.Es erzeugt die Illusion von Sicherheit, ohne sie zu bieten.

Ohne VSS würden Sie wahrscheinlich regelmäßig Backups Ihres Codes erstellen.Bei VSS werden Sie denken: „Mensch, es steht bereits unter Quellcodeverwaltung.“Warum sollte man sich die Mühe machen, ein Backup zu erstellen?“ Großartig, bis dahin beschädigt Ihre gesamte Codebasis und du verlierst alles.(Dies geschah übrigens bei einer Firma, bei der ich gearbeitet habe.)

Befreien Sie sich so schnell wie möglich von VSS und wechseln Sie zu einer echten Quellcodeverwaltungslösung.

Machen Sie sich keine Sorgen, dass VSS Sie beschädigen könnte, sondern dass VSS Ihre Daten beschädigen könnte.Die Erfolgsbilanz in dieser Abteilung ist nicht besonders gut.

Führen Sie regelmäßig Backups durch, wenn Sie nicht zu einem anderen Versionskontrollsystem wechseln.Backups sollten auch bei anderen SCMs täglich durchgeführt werden, bei VSS ist dies jedoch doppelt wichtig.

Ich verwende Subversion gerne für meine persönlichen Projekte.Ich könnte die Liste der Funktionen durchgehen und so tun, als ob es viele Möglichkeiten bietet, die andere Versionsverwaltungssysteme nicht bieten, aber es gibt jede Menge gute davon und die richtige Wahl ist wirklich eine Frage des Stils.Wenn Sie nach jeder kleinen Änderung einchecken (d. h.ein Einchecken pro Funktionsänderung), dann können viele Leute an derselben Quelldatei arbeiten, wobei das Risiko von Zusammenführungskonflikten in praktisch allem sehr gering ist Aber VSS (Ich habe VSS seit Jahren nicht mehr verwendet, aber soweit ich mich erinnere, kann immer nur eine Person gleichzeitig an einer Datei arbeiten.) Wenn Ihnen das nie passieren wird, ist es meiner Meinung nach die beste Vorgehensweise Benutze, was du weißt.VSS ist besser als überhaupt keine Quellcodeverwaltung, kommt mir aber heutzutage restriktiv vor.

Ich glaube nicht, dass Sie hoffnungslos sind, weil Sie fragen, ob es besser wäre, zu wechseln;Sie haben keine Hoffnung mehr, wenn die Antwort offensichtlich ist und Sie die Beweise ignorieren.

Selbst wenn Sie kein Versionsverwaltungssystem ändern, sollten Sie eines wie SVN oder Git auswählen und ein paar Wochen damit verbringen, darüber zu lesen und ein kleines Projekt damit zu erstellen;Es hilft immer, die Säge zu schärfen.

Ich stimme den Leuten nicht zu, die sagen, dass man besser nicht wechseln sollte, wenn man keine Probleme hat.

Ich denke, dass SCM zu den Disziplinen gehört, die ein guter Entwickler gut beherrschen sollte, und ehrlich gesagt, selbst wenn Sie VSS beherrschen, erleben Sie nur einen kleinen Teil der Vorteile, die ein gutes SCM-Tool und eine gute SCM-Strategie für Sie und Ihr Team bringen können.

Bewerten und testen Sie die Alternativen natürlich zunächst in einer Nicht-Produktionsumgebung.

Bei der Arbeit verwenden wir Subversion mit TortoiseSVN – funktioniert sehr gut, unterscheidet sich aber philosophisch von VSS (nicht wirklich ein Problem, wenn nur Sie da sind, aber es lohnt sich, sich darüber im Klaren zu sein).Mir gefällt die Tatsache sehr gut, dass das gesamte Repository eine Revisionsnummer hat.

Hätte ich die freie Wahl gehabt, hätte ich mich wahrscheinlich für den Tresor entschieden, aber damals hatte ich kein Budget.

Ich suche nach Dingen für den persönlichen Gebrauch.Es gibt Gründe, Subversion zu verwenden, und Gründe, etwas völlig anderes zu verwenden.Die Alternativen, die ich in Betracht ziehe, sind Vault (wie bisher kostenlos zur einmaligen Nutzung) und Bazaar.GIT musste ich ablehnen, da ich schamlos ein Windows-Benutzer bin, und GIT ist es im Moment einfach nicht.

Die verteilte Natur von GIT und die Option privater/temporärer Check-ins (vorausgesetzt, ich habe verstanden, was ich gelesen habe) Ist attraktiv – daher schaue ich mir Bazaar an.

Aktualisieren: Ich habe noch ein wenig recherchiert und gespielt und mich für den persönlichen Gebrauch tatsächlich für Mercurial entschieden. Die integrierte Installation mit TortoiseHg macht die Sache sehr einfach und es scheint gut angesehen zu sein.Ich versuche immer noch herauszufinden, wie ich eine automatische Spiegelung von Commits auf einem Server erzwingen kann, und es scheint einige geringfügige Einschränkungen bei der Ignorierfunktion zu geben, aber bisher erfüllt sie ihre Aufgabe gut ...

Murph

Ich würde sagen, bleiben Sie bei dem, was für Sie funktioniert.Warum sollten Sie wechseln, es sei denn, Sie haben Probleme mit VSS?Subversion ist gut, wenn auch ein wenig schwierig, wenn man damit anfängt.TFS ist weitaus besser als VSS, obwohl es für ein so kleines Team ziemlich teuer ist.Ich habe Git nicht verwendet, daher kann ich nicht wirklich damit sprechen.

Ich habe VSS jahrelang verwendet, bis ich vor etwa zwei Jahren zu SVN wechselte.Meine größten Beschwerden über vss waren die schlechte Netzwerkleistung (dieses Problem könnte jetzt gelöst sein) und das pessimistische Sperren von Dateien.svn hat beide Probleme gelöst und ist einfach einzurichten (ich verwende den Collabnet-Server und den Tortoisesvn-Client, obwohl es zwei gute Visual Studio-Plugins gibt:visualsvn – kommerziell und ankhsvn – Open Source), einfach zu verwenden und zu verwalten und gut dokumentiert.

Es ist verlockend zu sagen: „Wenn es nicht kaputt ist, reparieren Sie es nicht“, aber Sie würden ein moderneres Quellcodeverwaltungstool und, was vielleicht noch wichtiger ist, neue Möglichkeiten der Verwendung der Quellcodeverwaltung kennenlernen (z. B.häufigeres Verzweigen und Zusammenführen), die das neue Tool unterstützen würde.

Wenn Sie nur zwei Personen haben und größtenteils unabhängig arbeiten, bietet Ihnen Git viel mehr Flexibilität und Leistungsfähigkeit und ist mit Abstand der Schnellste, mit dem Sie zusammenarbeiten können.

Allerdings ist die Verwendung nervig.Mit VSS programmieren Sie offensichtlich für Windows – wenn Sie Win32-API-Sachen in C machen, wird Git eine Lernkurve sein, aber es wird ziemlich interessant sein.

Wenn Ihre Kenntnisse jedoch nur auf ASP und Visual Basic reichen, verwenden Sie einfach Subversion.Gehen Sie, bevor Sie rennen können.

** Ich versuche nicht zu sagen, dass man dumm oder so etwas ist, wenn man nur VB kennt, aber dieser Idiot kann sehr wählerisch und wählerisch in der Verwendung sein (wenn man die WinAPI in C verwendet hat, weiß man alles über wählerisch und wählerisch). heikel), und vielleicht möchten Sie eine schrittweisere Einführung in SCM, als Git bietet

Wenn Sie eine Ein-Mann-Show und ausschließlich ein Microsoft-Shop sind, dann SourceGear-Tresor ist definitiv auch ein Hauptkandidat für einen Wechsel.

Merkmale:

  • Kostenlos für Einzelbenutzer, ideal für Sie
  • Es verwendet SQL Server für sein Backend, daher ist die Datenzuverlässigkeit enorm
  • Es verfügt über atomare Check-ins. Alle gleichzeitig eingecheckten Dateien werden in einer Gruppe angeordnet und als Changeset bezeichnet.
  • VisualStudio-Integration.
  • Verfügt über ein Tool zum Importieren aus SourceSafe, sodass Sie Ihren Verlauf behalten können
  • Der Client kommuniziert mit dem Server über HTTP, daher kann der Fernzugriff auf die Quelle außerhalb des Büros sehr einfach eingerichtet werden und funktioniert gut, da nur die Deltas der übermittelten und empfangenen Änderungen übertragen werden.Sie können SSL verwenden, um die Verbindung zu sichern.

Ich würde dies auf jeden Fall als Option in Betracht ziehen.

Wenn Sie einen vollständigen Lebenszyklus in einem Paket wünschen, sollten Sie sich wahrscheinlich Visual Studio Team System ansehen.Es ist zwar ein Server erforderlich, aber Sie können von MS ein „Action Pack“ erhalten, das alle Lizenzen enthält, die Sie für „Team Foundation Server Workgroup Edition“ im Partnercenter benötigen.

Damit erhalten Sie Bug-, Risiko- und Problemverfolgung sowie viele andere Funktionen :)

  • Quellcodeverwaltung
  • Arbeitsaufgabenverfolgung (Anforderungen, Fehler, Probleme, Risiken und Aufgaben)
  • Berichterstellung zu Ihren Projektdaten (Work Item Tracking, Build, Checkins und mehr in einem Qube)
  • Code-Analyse
  • Unit-Tests
  • Belastungstest
  • Leistungsanalyse
  • Automatisierter Build
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top