Entwickler-Ecke

Programmierwerkzeuge - Versionsverwaltung


NOS1971 - Mi 05.11.14 10:46
Titel: Versionsverwaltung
Hallo,

ich habe vor Jahren mal mit SourceSafe gearbeitet und frage mich ob es so etwas auch im lokalen Bereich gibt. GIT und SVN sind ja webbasierend. Gibt es soetwas ? Was nutzt Ihr ?

Grüße,
Andreas


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mi 05.11.2014 um 11:20


jaenicke - Mi 05.11.14 11:51

Was heißt webbasiert? Meinst du serverbasiert?

Du kannst den Server ja auch z.B. einfach auf deinem lokalen PC installieren. Insbesondere SVN mit dem VisualSVNServer bietet sich da an, wenn es einfach sein soll.

Mittlerweile gibt es mit z.B. dem Bonobo Server auch einfache Lösungen für Git, aber die kenne ich noch nicht genauer. Das sieht aber sehr interessant aus:
http://bonobogitserver.com/


NOS1971 - Mi 05.11.14 11:58

Supi .... wußte nicht das es sowas als lokalen Server gibt ... vielen Dank Sebastian


Narses - Mi 05.11.14 12:20

Moin!

Für (Tortoise-)SVN braucht man keinen Server, da kann man auch ein File-Repository verwenden (machen wir hier so mit diversen internen Projekten [und das sind nichtmal alles Softwareentwicklungs-Projekte! :idea:]). :nixweiss:

cu
Narses


NOS1971 - Mi 05.11.14 12:36

Funktioniert das denn direkt mit Delphi bzw. integriert sich ?


Narses - Mi 05.11.14 12:58

Moin!

user profile iconNOS1971 hat folgendes geschrieben Zum zitierten Posting springen:
Funktioniert das denn direkt mit Delphi bzw. integriert sich ?
In Ermangelung von XE7 kann ich das leider nicht sagen. :nixweiss: Wir machen hier manuelle Commits (also keine Integration in die IDE).

cu
Narses


NOS1971 - Mi 05.11.14 13:02

Ok ... ich checke das mal ... :-) ist selbst manuell zumindest besser als jeden abend packen und aufs NAS schieben


Lemmy - Mi 05.11.14 13:07

Hi,

eine SVN-Integration gibt es schon länger in Delphi, an git wird imho gerade gewerkelt.

Allerdings habe ich das noch nie verwendet, die Explorerintegration (svn) bzw. die Kommandozeile (git) ist der Integration in manchen FÄllen einfach überlegen... Aber das kann man ja recht einfach selbst schnell raus finden was einem besser liegt...


jaenicke - Mi 05.11.14 15:43

user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings habe ich das noch nie verwendet, die Explorerintegration (svn) bzw. die Kommandozeile (git) ist der Integration in manchen FÄllen einfach überlegen... Aber das kann man ja recht einfach selbst schnell raus finden was einem besser liegt...
Ein entscheidender Vorteil ist, dass die Integration in Delphi relativ einfach angepasst werden kann.
Wir haben da z.B. eigene Felder in die Oberfläche eingebaut usw.

Einen echten Server zu verwenden halte ich für am Sinnvollsten. Mit den lokalen Repositories (die auch in Delphi via file:// gehen sollten) habe ich recht schlechte Erfahrungen gemacht. Insbesondere die Geschwindigkeit war massiv geringer und die Netzwerkbelastung war höher (bei der Arbeit auf Freigaben).

Noch schneller ist allerdings Git, da dort die übertragenen Daten zu einem Paket zusammengefasst und komprimiert werden.


Martok - Sa 15.11.14 23:02

Warum steht hier unwidersprochen, dass Git serverbasiert wäre? :gruebel:

Moderne VCS wie Git oder Mercurial zeichnen sich ja grade dadurch aus, dass sie keinen Server brauchen und (da eben alles lokal ist) sie wesentlich schneller sind.

user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings habe ich das noch nie verwendet, die Explorerintegration (svn) bzw. die Kommandozeile (git) ist der Integration in manchen FÄllen einfach überlegen... Aber das kann man ja recht einfach selbst schnell raus finden was einem besser liegt...
Das kann ich bestätigen, die in IDEs verfügbare Integration ist eigentlich durchweg schlechter als dezidierte Programme dafür. Wobei die von Delphi noch relativ schmerzfrei ist, was auch immer das für SVN bedeutet ;)


jaenicke - So 16.11.14 13:33

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Warum steht hier unwidersprochen, dass Git serverbasiert wäre? :gruebel:

Moderne VCS wie Git oder Mercurial zeichnen sich ja grade dadurch aus, dass sie keinen Server brauchen und (da eben alles lokal ist) sie wesentlich schneller sind.
Es ist nicht serverbasiert, aber solange man nicht rein lokal arbeitet, sondern auch übers Netzwerk, macht ein echter Server auf jeden Fall Sinn. Das ist ja genau ein Grund weshalb Git deutlich schneller ist: Es wird alles als komprimiertes Paket abgerufen usw. statt wie bei SVN jede Datei einzeln.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Das kann ich bestätigen, die in IDEs verfügbare Integration ist eigentlich durchweg schlechter als dezidierte Programme dafür.
Sehe ich nicht ganz so. Die in Delphi integrierte Lösung kombiniert z.B. in der Dateiversionshistorie die Versionsstände, die Delphi automatisch speichert, mit denen aus dem Repository. Zudem kann ich direkt in Delphi zeilenweise sehen wann dort die letzte Änderung war und kann direkt die Änderungen der Revision abrufen.
Zudem werden neue Dateien, die ich zu einem eingecheckten Projekt hinzufüge, automatisch dem Repository hinzugefügt.


Martok - So 16.11.14 17:43

Naja, "brauchen" und "unterstützen" ist ja nicht das gleiche ;) SVN "braucht" einen Server, der darf aber auch gern lokal laufen. Git macht alles lokal, und "unterstützt" dich dabei dein lokales mit einem entfernten Repository abzugleichen (wenn du eins brauchst - der TE fragte ja explizit nach lokal). So meinte ich das.

Was das integrierte angeht: neue Units automatisch hinzufügen ist gar nicht so dumm (auch wenn ich mir vorstellen könnte, dass das ganz schön Revisionsclutter erzeugt, da wäre git besser dran).


jaenicke - So 16.11.14 19:00

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Was das integrierte angeht: neue Units automatisch hinzufügen ist gar nicht so dumm (auch wenn ich mir vorstellen könnte, dass das ganz schön Revisionsclutter erzeugt, da wäre git besser dran).
Die werden ja nicht automatisch committed, sondern nur hinzugefügt. Man vergisst sie aber danach beim Einchecken nicht wie es ohne das automatische Hinzufügen schon gerne mal passiert. ;-)


baka0815 - Mo 15.12.14 16:21

Zu Delphi und SVN verweise ich hier mal ganz uneigennützig auf mein OpenSource Projekt für die Integration von TortoiseSVN [http://tortoisesvn.net/] in Delphi:

http://sourceforge.net/projects/delphitsvnaddin/


jaenicke - Mo 15.12.14 23:11

Soweit ich weiß gibt es darin keine so gute Integration wie bei Version Insight Plus, oder?

Die wichtigsten Features, die wir stark nutzen, sind die Leiste links, die anzeigt wann die entsprechende Zeile in welcher Revision zuletzt geändert wurde inkl. Link zum Vergleich der Änderungen dieser Revision, sowie die Integration der Revisionen in den History-Tab.

Die anderen Features sind allerdings sehr schön. ;-)


baka0815 - Di 16.12.14 12:29

Integration in die History-Tabs ist mit mit der TortoiseSVN-Erweiterung nicht gegeben, das stimmt (ist auch nicht geplant).

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
[...]die Leiste links, die anzeigt wann die entsprechende Zeile in welcher Revision zuletzt geändert wurde inkl. Link zum Vergleich der Änderungen dieser Revision[...]

Hierzu kann man jedoch eine beliebige Zeile im Quelltext anklicken und sich per "Blame" (bzw. "Annotieren") die entsprechende Ansicht aufrufen - je nach Anzahl der Revisionen kann dies jedoch eine ganze Weile dauern.
Hier [http://tortoisesvn.net/docs/nightly/TortoiseSVN_de/tsvn-dug-blame.html] gibt's die Doku zum entsprechenden Dialog von TortoiseSVN.