Forum: Ausbildung, Studium & Beruf Verweigerungshaltung gegenüber Versionskontrolle


von Bernd K. (prof7bit)


Lesenswert?

Aus gegebenem Anlass: Wie ist am besten damit umzugehen wenn jemand im 
beruflichen Umfeld der auch mit Programmieren befasst ist vehement den 
Standpunkt vertritt es sei zu umständlich die Bedienung eines VCS zu 
erlernen, es "lohne" sich daher nicht. Wie geht Ihr mit sowas um?

Überzeugungsarbeit leisten? Auslachen, umdrehen und weggehen? Ignorieren 
und Thema wechseln? Ich bin echt am Ende mit meinem Latein, über den 
Chef kann ich nicht gehen (will ich auch nicht) denn der ist der selben 
Meinung ("lohnt" sich nicht [für ihn]) und fällt mir damit quasi auch 
noch öffentlich in den Rücken statt mit gutem Beispiel voranzugehen. 
Grad heute wieder so eine Situation gehabt wo das Gespräch zufällig das 
Thema gestreift hat und sie sich sofort gegenseitig angefangen haben mit 
ihrem Irrglauben den Rücken zu stärken, hab dann sofort das Thema 
umgebogen bevor es wieder ausartet und das Frühstück nicht mehr 
schmeckt.

Ich versteh das echt nicht, das sind alles hochintelligente Menschen und 
scheitern dennoch an so einer simplen Kosten-Nutzen-Rechnung. Ich 
vermute sie überschätzen den Aufwand und erkennen keinen Nutzen (so wie 
der Blinde keine Farben erkennen kann). Gibt es irgendeine Strategie wie 
man diese irrationale Blockade von außen überwinden kann, wie man z.B. 
den Nutzen auf eine Weise erkennbar machen kann die sie auch von 
innerhalb ihres augenblicklich eingeschränkten Denkmodells schon 
deutlich wahrnehmen können?

: Verschoben durch User
von Georg G. (df2au)


Lesenswert?

Uraltes Gebet, passt für jede Religion:
Gib mir die Kraft, zu ändern, was ich ändern muss.
Gib mir die Geduld, zu ertragen, was ich nicht ändern kann.
Gib mir die Weisheit, zwischen beidem zu unterscheiden.

VCS ist gut, wenn man damit umgehen kann, und relativ einfach zu lernen. 
Dein Umfeld ist aber anderer Meinung, insbesondere der Chef. Also wirst 
du damit leben müssen oder die Stelle wechseln müssen. Es gibt 
schlimmere Probleme.

von Jack (Gast)


Lesenswert?

Bernd K. schrieb:
> Auslachen, umdrehen und weggehen?

Das, oder

> Ignorieren und Thema wechseln?

von bitwurschtler (Gast)


Lesenswert?

Bernd K. schrieb:
> Aus gegebenem Anlass: Wie ist am besten damit umzugehen wenn jemand im
> beruflichen Umfeld der auch mit Programmieren befasst ist vehement den
> Standpunkt vertritt es sei zu umständlich die Bedienung eines VCS zu
> erlernen, es "lohne" sich daher nicht. Wie geht Ihr mit sowas um

Es gibt nicht ein VCS-Tool, es gibt viele. Und Computer-Tools sind nicht 
der einzige Weg Versionen zu verwalten, lass Dir doch vom VCS-Skeptiker 
seine preferierte Methode vorführen.

Du kannst ihn/ihr ja ein Reinschnuppern ermöglichen, indem du ihm mal 
eins installierst und damit arbeiten lässt. Wenn er/sie keinen Vorteil 
erkennt da versuchts halt mit einem andere Frontend. Tortoise wäre IMHO 
ein Versuch auch bei VCS-Muffeln wert.

Oder man lässt sich die Sourcen wie vom Muffel beliebt liefern und 
übernimmt das einchecken/builtflow selbst. Das da ja eh scripte machen 
ist der Extra-Aufwand gering und der Bürofrieden gerettet.

von Paul H. (powl)


Lesenswert?

Abgesehen von der Befriedigung, die du dabei erfährst, in dem du hier 
deinem Ärger ein wenig Luft machst, bist du ja sicher an einer Lösung 
interessiert, aber es gibt so wenige Optionen, dass du sie dir quasi 
auch schon selbst beantworten kannst ;-)

a) Ignorieren. Nimm es hin, du bekommst dein Geld trotzdem. Sieh es als 
teil deiner bezahlten Arbeit hin, gewisse Dinge einfach zu akzeptieren. 
Es hängt nicht allein an dir das Unternehmen groß zu machen!


Und nun die passioniertere Variante:

b) Versuche nachzuvollziehen, wo die Verständnisprobleme bei deinem Chef 
und deinen Kollegen bestehen. Versuche ihnen durch Beispiele zu 
erklären, wo, wann und warum eine Versionskontrolle sinnvoll ist. 
Untermauere das ganze ggf. mit einer kurzen Demonstration, wie einfach 
es ist, das zu erlernen. Letzendlich kannst du ja ganz klar darlegen, 
dass man einmal ein paar Stunden an Zeit investiert und dann dauerhaft 
von der Zeitersparnis profitieren kann. Am Ende der Diskussion hast du 
die beiden entweder überzeugt oder sie überzeugen dich, in dem sie 
stichhaltige Argumente bringen. Mach das ganze nicht in der Kaffeepause 
sondern bestelle sie zu einem Termin ein.

von Oliver S. (oliverso)


Lesenswert?

So ziemlich jede anständige IDE integriert doch heutzutage die 
Versionsverwaltung. Commit in Git oder SVN geht damit per Mausklick, 
ohne daß man sich in irgendwelche kruden Kommandozeilenbefehle 
einarbeiten muß. Und der Rest kommt dann ganz von alleine.

Einer muß dann natürlich den Verwaltungstools-Admin und -Poweruser 
machen ;)

Oliver

von Curby23523 N. (Gast)


Lesenswert?

Akzeptieren!

von Dr. Sommer (Gast)


Lesenswert?

bitwurschtler schrieb:
> Oder man lässt sich die Sourcen wie vom Muffel beliebt liefern und
> übernimmt das einchecken/builtflow selbst. Das da ja eh scripte machen
> ist der Extra-Aufwand gering und der Bürofrieden gerettet.
Dann ist man irgendwann der Depp für alles...

Wie wärs damit, für dich ein VCS zu benutzen, und so zu tun als würde 
der Kollege auch eins benutzen und als ob sein e-Mail Konto die 
Benutzeroberfläche wäre? Jedes Mal wenn du Einblick in eine alte Version 
brauchst, Versionen vergleichen oder mergen möchtest schreib ihm eine 
Mail dass er das für dich tun soll... Wenn er davon irgendwann genervt 
ist weise ihn freundlich darauf hin dass du das alles selbst tun 
könntest, wenn es ein zentrales Gitlab o.ä. gäbe!

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dann führe doch einfach ein VCS für Deine eigenen Arbeiten ein. Gerade 
Git lebt ja auch davon, dass eigentlich jeder Anwender seine eigenen 
Repositories verwendet, so dass man auch keinen "richtigen" Server 
aufsetzen muss. Eventuell stellen dann Deine Kollegen fest, dass Du 
damit tatsächlich viel bessere Auskünfte über Deine Arbeit liefern 
kannst und wollen dann irgendwann auch mitmachen.

Schwierig wird es nur, wenn der Chef Dir explizit verbieten sollte, ein 
VCS einzusetzen. Ebenso schwierig kann es werden, wenn Du das VCS 
einführen sollst und Deine Kollegen wie die Aasgeier nur darauf warten, 
dass Du dabei einen winzigen Fehler machst, um anschließend die 
Nichtverwendung eines VCS für alle Zeiten in Stein zu meißeln.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> Commit in Git oder SVN geht damit per Mausklick,
> ohne daß man sich in irgendwelche kruden Kommandozeilenbefehle
> einarbeiten muß.

Wenn es ein VCS gibt, dann braucht man aber auch jemanden, der das 
administriert.  Und das kann nur jemand sein, der sich richtig gut damit 
auskennt.

* Auch und gerade auf der Command-Line.

* Server-Seitig

* Den Anwender bei Problemen hilft
-- merge-Konflikte
-- aus Versehen nen branch gelöscht
-- was falsch eingecheckt
-- Soll --force erlaubt sein?
-- Wie wird committet / gepusht: wenn jemand nach jeder geänderten Zeile
   einen commit macht dann ist das für ihn lokal i.O., aber in der
   globalen Projekthistorie kann sowas zu sehr unübersuchtlich
   werden.  Die sollte unabhängig von den Präferenzen einzelner
   Mitarbeiter sein.
-- Wie werden Änderungen auf VCS-Ebene dokumentiert, und wie sind sie
   auuffindbar?

u.v.a.m.

Wenn man also vorschlägt, sowas wie GIT einzuführen, und es gibt 
niemanden, der als Administrator infrage kommt, dann ist der Vorschlag 
nicht sehr solide.

von Johann L. (gjlayde) Benutzerseite


Angehängte Dateien:

Lesenswert?


von Dumdi D. (dumdidum)


Lesenswert?

Frag doch Deinen Chef wie euer workflow sein soll. Wie viele Leute 
arbeiten gleichzeitig sm Code und wie werden derzeit die Ergebnisse 
zusammengesetzt?

Nicht immer ist ein vcs noetig.

von Strubi (Gast)


Lesenswert?

Moin,

ich dachte, die beratungsrenitente Spezies, was VCS angeht, sei langsam 
in Pension gegangen..
Ist nun über 10 Jahre her, da gabs beim damaligen Arbeitgeber div. 
Qualitätsprobleme und eine Menge Gewurschtel. Spätestens als man 
angefangen hat, sich um Zuordnung von Revisionen/Chargen/Seriennummern 
und Testreports kümmern musste (ISO 9000-Schiessmichtot), stand das 
Wasser an den Hälsen.
Das lässt sich dann bisschen als Druckmittel hernehmen, wenn auch 
schliesslich eine Menge Papier ausgedruckt wird, und die VCS keinen 
Zertifizierer interessiert (hat).
Wenn der Chef die einfache Amortisationsrechnung betr. VCS nicht 
hinbekommt, und sogar Tortoise für Windows als "zu kompliziert" gilt, 
würde ich einfach für meinen eigenen Code ein git-Tracking einrichten. 
Und renitente Kollegen kann man ruhig mal auflaufen lassen ("Nicht meine 
Baustelle"). Irgendwann muss dann auch ein Chef seine Aufgaben 
übernehmen, spätestens dann, wenn wochenlang nach einem Fehler gesucht 
werden muss, weil man irgendwo was verändert, aber vergessen hat.
Bei ner kleinen Bude kann man schon mal forsch sagen "Chef, ich will 
SOFORT ein SVN". Bei ner verkrusteten Abteilung hilft wohl nur: Klappe 
halten und rumpimmeln wie die andern :-)

von Michael B. (laberkopp)


Lesenswert?

Bernd K. schrieb:
> Wie ist am besten damit umzugehen wenn jemand im
> beruflichen Umfeld der auch mit Programmieren befasst ist vehement den
> Standpunkt vertritt es sei zu umständlich die Bedienung eines VCS zu
> erlernen, es "lohne" sich daher nicht. Wie geht Ihr mit sowas um?

Er hat recht.

Bernd K. schrieb:
> Überzeugungsarbeit leisten? Auslachen, umdrehen und weggehen? Ignorieren
> und Thema wechseln? Ich bin echt am Ende mit meinem Latein,

Bewundere ihn für seine Standhaftigkeit.

Nicht daß Versionskontrollsysteme und Archivierungssysteme schlecht 
wären, es ist super nützlich wenn die Arbeit gesichert ist und man 
jederzeit nachgucken kann welche Änderungen man wann gemacht hat.

Aber die aktuellen Implementationen, von SourceSafe über CVS und GIT 
sind

- extrem umständlich in der Bedienung, teilweise mit völlig hirnlosem 
Konzept (wie kommt man z.B. auf die krankte Idee, bei jedem Einchecken 
Kommentare schreiben zu müssne, Kommentare stehen schon im eingecheckten 
code, und damit dort wo sie hingehören und man sieht sie sofort beim 
Verleich und nicht nur dann)
- wimmeln vor Fehlern, sind also defekt
  - beliebt z.B. der Bug von CVS mit Gross/Kleinschreibung
  - beliebt bei Git die Eclipse Oberfläche die nur halb funktioniert
  - beliebt das Veränderung von Datei-timestamps
- langsam, es werden teilweise Dateien doppelt übertragen, oder 
übertragen obwohl nicht nötig
- bringen wenig Nutzen und machen viel Arbeit und erlauben oftmals mit 
wenigen 'unbedachten/verweifelten' Klicks eine komplette Zerstörung

Das müsste gar nicht sein, es gab mal ein schlicht und einfach gut 
funktionierendes System, das kopierte still und leise im Hintergrund die 
Arbeitsverzeichnisse weg, so daß in der täglichen Arbeit KEINERLEI 
Zusatzaufwand anfiel, und wenn man wirklich mal (was ja selten vorkommt) 
die Änderungshistorie und Altversionen haben wollte, konnte man die mit 
einem Tool jederzeit (leicht in ein anderes Verzeichnis) auschecken.
Leider unter DOS. Nur wenn wirklich mal 2 Leute gleichzeitig was 
geändert hatten, gab es eine Meldung. Branches hat man gemacht, in dem 
man im Arbeitsverzeichnis das Directory kopiert hat und später händisch 
zuückmergte, da hat sich also das System rausgehalten. Bloss den Namen 
hab ich vergessen, MVS ? Ich glaube mich zu erinnern, daß es Novell 
erforderte.

: Bearbeitet durch User
von Cyblord -. (Gast)


Lesenswert?

Michael B. schrieb:
> Er hat recht.

Was für Kraut baust du eigentlich in deinem Garten an? Oder ist die 
Chlordosierung in deinem Swimming Pool zu hoch eingestellt?

Michael B. schrieb:
> Aber die aktuellen Implementationen, von SourceSafe über CVS und GIT
> sind

Unglaublich, dass Millionen von Entwicklern auf dem Globus verteilt ohne 
Probleme damit umgehen können und große Softwarebuden Repositories mit 
10^9 LOC und mehr verwalten können. Aber der Öff Öff des Forums weiß es 
wie immer besser.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Michael B. schrieb:
> Aber die aktuellen Implementationen, von SourceSafe über CVS und GIT
> sind

... völlig veraltet. Visual SourceSafe wurde von Microsoft schon vor 
vielen Jahren ersatzlos in die Tonne gekloppt. Und CVS ist nun auch 
nicht mehr allzu frisch, d.h. seit etwa 15 Jahren setzt man damit keine 
neuen Repositories mehr auf, sofern es keinen zwingenden 
Kompatibilitätsgrund gibt. Allerdings setzt noch einer unseren Kunden 
tatsächlich CVS für viele Aufgaben ein, wobei dessen Projekte Schritt 
für Schritt nach Git migriert werden.

Subversion hat sich auch als CVS-Nachfolger sehr bewährt, wobei recht 
viele Leute diese Nachfolge einfach als neue Programmversion ansahen und 
sich dann lauthals beschwerten, als sie feststellen mussten, dass 
Subversion teilweise andere Kommandos und Konzepte als CVS hat.

Allerdings halte ich den verteilten Ansatz von Git auch nur dann für 
sinnvoll, wenn man tatsächlich verteilt arbeiten muss. Ansonsten bringt 
Git für viele Normalanwender nur einen unnötigen Overhead mit und ist 
erklärungsbedürftig. Der einzige Vorteil in zentralisierten Umgebungen 
besteht darin, dass man auch rein lokal einchecken kann, ohne dass alle 
Vorgänge gleich auf dem zentralen VCS sichtbar werden. Die ganz große 
Gefahren bestehen meines Erachtens aber darin, dass entweder vergessen 
wird, einen Push durchzuführen, oder ganze Entwicklungszweige auf einem 
nicht der zentralen Datensicherung unterworfenen Rechner liegen und bei 
einem Defekt oder einer Neuinstallation unwiederbringlich verlorengehen 
können.

von Wühlhase (Gast)


Lesenswert?

Wenn du die Möglichkeit hast:
-Verwalte deinen Kram in einem VCS deiner Wahl
-Lass deinen Kollegen seinen Kram halten wie er will
-Wenn dir der Kollege zuarbeitet, versioniere seinen Kram in einem 
Ordner bei dir, unabhängig von deinem

Du kannst in Ruhe arbeiten, und alles ist schick. Wenn es Probleme gibt 
und du von deinem Kollegen wissen willst was er vor drei Wochen geändert 
hat weil etwas nicht mehr läuft, läßt du ihm das dann auf die Füße 
fallen bzw. die Änderungen manuell suchen. Du wirst ihm NICHT deine 
VCS-Kopie seiner Arbeit zur Verfügung stellen-er darf sich dann selber 
seinen Mist zusammenreimen.

Wenn du die Möglichkeit nicht hast, würde ich mal den Arbeitsmarkt 
sondieren. Mir persönlich widerstrebt diese Art von Unprofessionalität. 
Und sowas wie SVN zu 'erlernen' sollte definitiv nicht zuviel verlangt 
sein, jedenfalls nicht von Ingenieuren. Für derlei Verweigerungshaltung 
fehlt mir das Verständnis.

Wir haben bei uns das gleiche Problem, allerdings zwischen 
Mechanikabteilung und Elektronikentwicklung. Die Mechaniker nutzen zur 
Versionssicherung lieber die Unterordnerfunktion des Windowsexplorers, 
während wir sämtliche Projektdateien (für Altium, LTSpice, ggb. Labview 
und wasweißichnichtnochalles) lieber in einem SVN-Repository halten und 
haben im letzten Jahr da unser eigens Ding aufgezogen.

von Possetitjel (Gast)


Lesenswert?

Bernd K. schrieb:

> Überzeugungsarbeit leisten?

Nur, wenn Diskussionsbereitschaft vorhanden ist. Sonst
nicht.


> Ich versteh das echt nicht, das sind alles hochintelligente
> Menschen

Das besagt gar nichts. C ist auch von hochintelligenten
Menschen entwickelt worden...


> Gibt es irgendeine Strategie wie man diese irrationale
> Blockade von außen überwinden kann,

Kurze Antwort: Nein.

Längere Antwort: Meine Mutter pflegte immer zu sagen
"Erziehung ist Beispiel und Liebe". Es hat sehr lange
gedauert, bis ich erkannt hatte, dass das nicht einfach
ein Spruch ist, sondern eine Weisheit (die übrigens von
Fröbel stammt).

Teilaspekt "Liebe":
* Verstehen, warum Deine Kollegen Vorbehalte haben.
  Scheuen sie wirklichen den Aufwand? Oder sehen sie
  den Nutzen nicht? Möchten sie sich evtl. nur nicht
  bloßgestellt fühlen, weil sie ja am Anfang keine
  Ahnung vom VCS haben und Hilfe benötigen werden?
* Alles vermeiden (aufrichtig! nicht nur zum Schein!),
  was nach Konfrontation, Eskalation, Sieg&Niederlage
  aussieht.
* Geduld haben.
  Ich habe früher dem kindlichen Irrglauben angehangen,
  eine Wirklich Gute Idee (tm) würde sofort von allen als
  solche erkannt und begeistert begrüßt. Normalerweise ist
  aber das genaue Gegenteil der Fall.


> wie man z.B. den Nutzen auf eine Weise erkennbar machen
> kann die sie auch von innerhalb ihres augenblicklich
> eingeschränkten Denkmodells schon deutlich wahrnehmen
> können?

Durch das persönliche Beispiel.

Niemand wird gern seine eigene Arbeitsweise ändern, nur weil
Du ihm klarzumachen versuchst, dass seine Arbeitsmethodik
veraltet und überholt ist.

Wenn Du aber ein VCS verwendest, gute Arbeit leistest und
die Kollegen gern mit Dir zusammenarbeiten, sind die
Vorbehalte nicht mehr ganz so groß. Wenn das VCS die Arbeit
WIRKLICH erleichtert, werden die Kollegen -- ganz ohne dass
Du ihnen das ständig unter die Nase reibst -- merken, dass
ein VCS etwas bringt. Im günstigsten Falle wollen sie es dann
selbst einsetzen, im nicht ganz so günstigen nehmen sie in
ihrer Arbeit Rücksicht auf Dich und Dein VCS (aber auch das
wäre ja ein Fortschritt).

Es hat letztlich wenig Sinn, von anderen Änderungen zu
verlangen -- wirksamer ist, selbst voranzugehen und zu
versuchen, die Anderen mitzunehmen.

von Possetitjel (Gast)


Lesenswert?

Wühlhase schrieb:

> Wenn es Probleme gibt und du von deinem Kollegen wissen
> willst was er vor drei Wochen geändert hat weil etwas
> nicht mehr läuft, läßt du ihm das dann auf die Füße
> fallen bzw. die Änderungen manuell suchen. Du wirst ihm
> NICHT deine VCS-Kopie seiner Arbeit zur Verfügung stellen -
> er darf sich dann selber seinen Mist zusammenreimen.

Ja, das ist der optimale Weg, sich als unkollegialer
Stänkerer zu profilieren.


> Wir haben bei uns das gleiche Problem, allerdings
> zwischen Mechanikabteilung und Elektronikentwicklung.

Das ist recht witzig.
Ich kenne die Reibereien zwischen Mechanik und Elektronik
auch.


> Die Mechaniker nutzen zur Versionssicherung lieber die
> Unterordnerfunktion des Windowsexplorers, während wir
> sämtliche Projektdateien (für Altium, LTSpice, ggb.
> Labview und wasweißichnichtnochalles) lieber in einem
> SVN-Repository halten und haben im letzten Jahr da unser
> eigens Ding aufgezogen.

Dass eure Mechaniker vielleicht eure kollegiale Hilfe statt
des Hochmutes gebraucht hätten, kommt Dir nicht in den Sinn?

von oszi40 (Gast)


Lesenswert?

Possetitjel schrieb:
> das ist der optimale Weg, sich als

Mit der ISO 9000-Geschichte sollte man eigentlich seine Arbeiten zur 
Qulitätssicherung dokumentieren müssen. Wahrscheinlich kämpft das obige 
Unternehmen noch mit der Zertifizierung?

von Dr. Sommer (Gast)


Lesenswert?

Possetitjel schrieb:
> Dass eure Mechaniker vielleicht eure kollegiale Hilfe statt
> des Hochmutes gebraucht hätten, kommt Dir nicht in den Sinn?

Die wollen die Ratschläge der Software-Experten doch offenbar nicht 
hören. Das kenn ich von Ingenieuren auch, die machen alles mit Excel und 
Dropbox und nehmen softwaretechnische Ratschläge von Informatikern am 
Allerwenigsten  an - es sei denn etwas funktioniert nicht, dann heißt es 
"Wie geht das in VBA"?

von Christopher J. (christopher_j23)


Lesenswert?

Bernd K. schrieb:
> Ich versteh das echt nicht, das sind alles hochintelligente Menschen und
> scheitern dennoch an so einer simplen Kosten-Nutzen-Rechnung. Ich
> vermute sie überschätzen den Aufwand und erkennen keinen Nutzen (so wie
> der Blinde keine Farben erkennen kann).

Ich denke genau das ist der springende Punkt. Dein Kollege denkt 
sich:"Git ist doch nur irgendein Kommandozeilenvodoo was kein Mensch 
versteht." (Siehe Johanns Post mit dem xkcd Comic) Und dein Chef denkt 
sich:"VCS, das ist doch nur wieder mit zusätzlichem Aufwand und damit 
Kosten verbunden. Da kann ich dann gleich noch einen 
Datenbankadministrator einstellen, der alles verwaltet."

Beide haben irgendwie ein bisschen Recht, obwohl sie eigentlich falsch 
liegen. Ich habe letztens zwei Kollegen ein bisschen mit Git vertraut 
gemacht, die davon schonmal etwas gehört hatten und grundsätzlich 
wissbegierig waren (was ja definitiv eine gute Voraussetzung ist). 
Beides waren jedoch typische Windowsnutzer und als ich anfing ihnen Git 
zu zeigen wie ich es hauptsächlich benutze (nämlich aus der Konsole 
heraus) haben beide nur mit den Augen gerollt. Zum Glück hat dann einer 
gefragt "ob es da nicht auch irgendwas mit einer GUI" gäbe und beide 
waren happy als ich ihnen dann den Rest anhand des Git-GUI erklärt habe. 
Das war definitiv ein Fehler meinerseits, das nicht gleich so zu machen 
und ich kann mir gut vorstellen, dass ich andere Leute in dem Moment 
schon "verloren" hätte. Was auch bei beiden sehr gut ankam (und ich 
erinnere mich, dass mich das selbst sehr positiv überrascht hatte als 
ich in deren Situation war), war die Tatsache, das die komplette 
Historie einfach lokal in einem .git-Ordner liegt und man somit den 
Projektordner wie man möchte kopieren, verschieben oder sichern kann, 
ohne das die Historie verloren geht. Außerdem fanden es beide sehr 
positiv, das man keinen Server oder ähnliches aufsetzen muss.

Was ich damit sagen will ist, dass man eben manchmal auch über den 
Tellerrand hinaus schauen muss und sich in den anderen hineinversetzen, 
so wie das Possetitjel ganz treffend beschrieben hat. Wenn du deinen 
Kollegen davon überzeugen kannst, das Git nicht weh tut und auch kein 
Hexenwerk in der Bedienung ist (sofern man denn nur ganz grundsätzliche 
Funktionen nutzt, also nur wie SVN ein Commit nach dem nächsten) und das 
es z.B. mit TortoiseGit auch für einen Anfänger sehr leicht bedienbar 
ist, dann hast du eventuell eine Chance. Was den Chef angeht fallen mir 
als erstes direkt die Stichworte "Kostenreduzierung" und 
"Risikominimierung" ein. Ich meine der absolute Klassiker ist doch, dass 
man irgendwo eine Änderung vornimmt und dann auf einmal nichts mehr 
funktioniert und man sich einen Wolf sucht, bis man wieder da ist, wo 
man ja eigentlich schon vorher war, was eindeutig unnötige Kosten 
verursacht. Der andere Vorteil ist, dass durch die Commit-Messages (wenn 
sie denn vernünftig sind) eine grundlegende Dokumentation vorhanden ist. 
Was passiert denn wenn ein Kollege morgen auf tragische Weise bei einem 
Autounfall stirbt? Ja, klingt vielleicht ein bisschen übertrieben aber 
ich denke, dass das die Sachen sind mit denen man einen typischen BWLer 
überzeugen kann.

von Bernd K. (prof7bit)


Lesenswert?

Andreas S. schrieb:
> Dann führe doch einfach ein VCS für Deine eigenen Arbeiten ein. Gerade
> Git lebt ja auch davon, dass eigentlich jeder Anwender seine eigenen
> Repositories verwendet, so dass man auch keinen "richtigen" Server
> aufsetzen muss.

Mach ich bereits seit 2 Jahren.

> Eventuell stellen dann Deine Kollegen fest, dass Du
> damit tatsächlich viel bessere Auskünfte über Deine Arbeit liefern
> kannst und wollen dann irgendwann auch mitmachen.

ALLE finden es natürlich vorteilhaft daß ich den irrsinnigen und 
wachsenden Berg von Code und Daten (noch) im Griff habe und aus dem 
Handgelenk ein dutzend Projekte mit teilweise unterschiedlichen 
Varianten und unterschiedlichen noch in Produktion befindlichen alten 
Zweigen noch pflegen kann und bei jeder popeligen Änderung der letzten 
Jahre exakt nachvollziehen kann wann ich sie gemacht habe, WARUM ich sie 
gemacht habe, wann sie in Produktion gegangen ist, auf welcher 
Hardwareversion das war (samt Schaltplan und Layout) und ob es geregnet 
oder geschneit hat an dem Tag, aber NIEMAND interessiert sich dafür wie 
ich das mache und warum ich es so mache wie ich es mache.

Ich erwarte nicht daß sich alle zu absoluten git-Experten entwickeln die 
mit einer Hand auf den Rücken gebunden 2 Kernel branches mergen konnten.

Wenn jemand Mergekonflikte hat komm ich gerne und biege das wieder 
gerade. Das zeigt mir wenigstens daß derjenige zumindest versucht das 
Tool zu benutzen, mithin also Interesse daran zeigt zu verstehen wie man 
das macht und was da vor sich geht!

Aber ich erwarte zumindest daß wenn mich jemand fragt "wo ist denn dies 
oder jenes von xyz projekt" daß ich dann einfach antworten kann: "das 
findest du [wie immer] im xyz repository in diesem branch in jenem 
ordner" und dann nicht gleich noch als zweites eine Bitte kommt wie "Äh, 
das ist mir jetzt zu kompliziert, das kann ich doch nicht, kannst Du mir 
das bitte schnell auschecken und auf das netzlaufwerk legen und mir dann 
bescheid sagen? Danke!". Hallo?

Wenn alle die es wissen müssten wissen wie das funktioniert und wo was 
ist erleichtert es mir die Arbeit und ich kann entspannter in Urlaub 
fahren!

Wohlgemerkt, es geht um Leute die selbst auch mit Entwicklung befasst 
sind, nur von denen erwarte ich zumindest minimales Interesse daran was 
das für ein Ding ist das das alles noch zusammenhält und wie man es 
wenigstens grundlegend benutzt, das würde auch schon reichen.

Aber es ist immer gerade "jetzt" zu kompliziert. Jedesmal ist es genau 
jetzt zu kompliziert! Und danach ist es wieder "nicht nötig".

Wo ist der Wissensdrang geblieben? Was neues gesehen: rausfinden was das 
ist, was es macht, versuchen zu verstehen wie es funktioniert! 
Ausprobieren wollen! Wo ist das alles geblieben? Ich habs noch. Warum 
habens die anderen verloren?

von Schreiber (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Possetitjel schrieb:
>> Dass eure Mechaniker vielleicht eure kollegiale Hilfe statt
>> des Hochmutes gebraucht hätten, kommt Dir nicht in den Sinn?
>
> Die wollen die Ratschläge der Software-Experten doch offenbar nicht
> hören. Das kenn ich von Ingenieuren auch, die machen alles mit Excel und
> Dropbox und nehmen softwaretechnische Ratschläge von Informatikern am
> Allerwenigsten  an - es sei denn etwas funktioniert nicht, dann heißt es
> "Wie geht das in VBA"?

Oder einfach nur eine CAD-Software, die eine Versionskontrolle 
untrstützt?!
Wenn man eine Bohrung ändert, dann ändert, dann ändern sich bei manchen 
CAD-Programmen alle Dateien. Da treibt einen JEDE 
Versionskontrollsoftware zum Wahnsinn.

von oszi40 (Gast)


Lesenswert?

Bernd K. schrieb:
> Wo ist das alles geblieben? Ich habs noch. Warum
> habens die anderen verloren?

Sie haben bestimmt Angst alles in einen "Write Only-Speicher" zu 
versenken, wovor sie später hilflos stehen (weil SW od. DB defekt).

Eine irgendwasProjekt.txt in einem Ordner schieben wäre denen 
wahrscheinlich lieber. Frage ist bloß wer DORT Ordnung schafft. Solche 
Ordner sehen später schlimmer aus, als die Kaffeeküche zum Feierabend. 
Die KK kann jede Putzfrau aufräumen, für einen Ordner braucht es dagegen 
Sachkenntnis was man wirklich wegwerfen kann.

von Effe (Gast)


Lesenswert?

So einen Chef hatte ich auch mal. Habe dann einfach ein svn repository 
für mein Zeug aufgesetzt.

von o.O (Gast)


Lesenswert?

Für unsere alte Software (vb6) nutzen wir traditionell sourcesafe, für 
neue Projekte (Python) nutze ich (für mich) git. Ich habe auch schon Mal 
das sourcesafe Projekt nach git konvertiert, aber daran hatte niemand 
ein richtiges Interesse.

Hauptsächlich erstelle ich SPS Software (Siemens step7). Und da gibt es 
meines Wissens leider keins komfortable Möglichkeit zur Versionübung. 
Dafür wird in alter Ingenieursmanier good old Excel verwendet.
Ich kann nicht fassen, dass Siemens nicht Mal in der Neuentwicklung der 
SPS software (tia Portal) irgendeine Art der "modernen" Versionortung 
vorgesehen hat.

Eigentlich machen wir alles in Excel: To-Do, Projekttagebuch, 
Versionshistorie, Maschinenübersicht, flowcharts ... ALLES :(

Der Abteilungsleiter verlangt sogar zusätzlich zum sourcesafe eine 
versionierungsübersicht als ..... Richtig! Excel-Tabelle autsch das 
hat man, wenn der Chef aus der SPS Ecke kommt ..

von Wolfgang S. (ws01)


Lesenswert?

Christopher J. schrieb:
> Ich habe letztens zwei Kollegen ein bisschen mit Git vertraut
> gemacht, die davon schonmal etwas gehört hatten und grundsätzlich
> wissbegierig waren (was ja definitiv eine gute Voraussetzung ist).
> Beides waren jedoch typische Windowsnutzer und als ich anfing ihnen Git
> zu zeigen wie ich es hauptsächlich benutze (nämlich aus der Konsole
> heraus) haben beide nur mit den Augen gerollt. Zum Glück hat dann einer
> gefragt "ob es da nicht auch irgendwas mit einer GUI" gäbe und ....

Ich bin vor ziemlich genau zehn Jahren von CVS, das ich bis dahin über 
viele Jahre hinweg unter unixoiden OS sowie unter Windows per 
Kommandozeile benutzt hatte, auf Mercurial umgestiegen, genauer gesagt, 
auf das schon damals unter Windows sehr gut funktionierende GUI 
TortoiseHg.

Ein auch nur halbwegs brauchbares Git für Windows, insb. aber ein GUI 
dafür war damals noch Zukunftsmusik.  Auch heute ziehe ich Mercurial für 
eigene, kleine Projekte Git vor. Wenn es darum geht, 
plattformübergreifend ohne viele Umstände gleich mit einem DVCS starten 
zu können, ist das m.E. immer noch die bessere, weil genau so 
leistungsfähige, aber unkompliziertere Wahl.

Falls sich ein kleines Projekt dann auswächst und man deswegen dem Trend 
hinterherlaufen muß, kann man immer noch unter Erhalt der Historie 
konvertieren. Auch von meinen alten, nach Mercurial migrierten 
CVS-Projekten - die ich nur bei Bedarf konvertiere - habe ich deren 
Historie natürlich noch.

Zu dieser Herangehensweise habe ich in den vergangenen zehn Jahren 
ebenfalls den einen oder anderen Windows-Nutzer aus meinem Dunstkreis 
motivieren können.  Zu bedenken ist, daß viele Entwickler heutzutage 
keine Kernel-Entwickler sind, ja nicht mal wirklich Entwickler im 
Wortsinne - das Herumschrauben an Software ist ja häufig nur sekundäres 
Mittel zu einem primären Zweck - Bildbearbeitung, Konstruktion, 
Tonstudio, scientific computing etc. pp.  Da sind die Leute Experte, 
nicht, was Softwareentwicklungswerkzeuge angeht.

Erster Schritt war dann einfach der Vorschlag, aus einem 
Projektverzeichnis erst mal ein Repository zu machen, sich zu überlegen, 
welche Dateien man versionieren möchte und dann einfach mit einer 
linearen Historie loszulegen, d.h. zu einem geeigneten Zeitpunkt einen 
Commit zu starten.  Schon der im Gui präsentierte graphische Diff war 
für Neulinge auf diesem Terrain gelegentlich ein regelrechter Lichtblick 
und motivierend.  Manchmal ergibt sich dann auch die Gelegenheit, das D 
in DVCS zu demonstrieren, entlang von "da müsste ich mal genauer 
reinschauen, darf ich mir gerade mal einen Clone ziehen? Wenn ich den 
Fehler bzw. eine Lösung finde, schick' ich Dir den Patch".  Das zieht 
dann die Frage "was mach' ich denn dann damit?" nach sich und schon ist 
man bei der Frage, was ein "Merge" ist. Ab dem Punkt kommen die Leute 
dann meistens von ganz alleine zurecht. Motivation ist alles. :-)

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Possetitjel schrieb:
> Wühlhase schrieb:
>
>> Wenn es Probleme gibt und du von deinem Kollegen wissen
>> willst was er vor drei Wochen geändert hat weil etwas
>> nicht mehr läuft, läßt du ihm das dann auf die Füße
>> fallen bzw. die Änderungen manuell suchen. Du wirst ihm
>> NICHT deine VCS-Kopie seiner Arbeit zur Verfügung stellen -
>> er darf sich dann selber seinen Mist zusammenreimen.
>
> Ja, das ist der optimale Weg, sich als unkollegialer
> Stänkerer zu profilieren.
So unkollegial bin ich gar nicht wie das da oben rüberkam. Aber wie 
gesagt, für Stümperei und mangelndem Willen, etwaige Schmerzen 
abzustellen, hab ich wenig Verständnis. Wenn jemand unbedingt meint 
einen Faustkeil zu benutzen, obwohl andere ihm für wenig oder gar kein 
Geld einen prima Werkzeugkasten entwickelt haben...ich kann das nicht 
nachvollziehen.

Und durch Schmerz lernt der Mensch am intensivsten...zumindest intensiv. 
Und wenn ich lese was der TS weiter schreibt und Git fleißig für seine 
Kollegen bedient, dann scheint es höchste Zeit zu sein etwas zu ändern. 
Den Wert eines VCS scheinen seine Kollegen ja oft genug vorgeführt zu 
bekommen.


Possetitjel schrieb:
>> Wir haben bei uns das gleiche Problem, allerdings
>> zwischen Mechanikabteilung und Elektronikentwicklung.
>
> Das ist recht witzig.
> Ich kenne die Reibereien zwischen Mechanik und Elektronik
> auch.
>
>> Die Mechaniker nutzen zur Versionssicherung lieber die
>> Unterordnerfunktion des Windowsexplorers, während wir
>> sämtliche Projektdateien (für Altium, LTSpice, ggb.
>> Labview und wasweißichnichtnochalles) lieber in einem
>> SVN-Repository halten und haben im letzten Jahr da unser
>> eigens Ding aufgezogen.
>
> Dass eure Mechaniker vielleicht eure kollegiale Hilfe statt
> des Hochmutes gebraucht hätten, kommt Dir nicht in den Sinn?
An kollegialer Hilfe hätte es nicht gemangelt. Ich persönlich gebe mein 
Wissen gerne weiter, allerdings war das Thema schon durch bevor ich in 
dieser Firma angefangen habe. Und SVN zu bedienen ist nun wahrlich nicht 
so schwer. Das ist in wenigen Minuten erklärt.

von Christopher J. (christopher_j23)


Lesenswert?

Bernd K. schrieb:
> ALLE finden es natürlich vorteilhaft daß ich den irrsinnigen und
> wachsenden Berg von Code und Daten (noch) im Griff habe und aus dem
> Handgelenk ein dutzend Projekte mit teilweise unterschiedlichen
> Varianten und unterschiedlichen noch in Produktion befindlichen alten
> Zweigen noch pflegen kann und bei jeder popeligen Änderung der letzten
> Jahre exakt nachvollziehen kann wann ich sie gemacht habe, WARUM ich sie
> gemacht habe, wann sie in Produktion gegangen ist, auf welcher
> Hardwareversion das war (samt Schaltplan und Layout) und ob es geregnet
> oder geschneit hat an dem Tag, aber NIEMAND interessiert sich dafür wie
> ich das mache und warum ich es so mache wie ich es mache.

Na wenn die Sache so aussieht, dann sollte es doch ein leichtes sein, 
deinen Chef davon zu überzeugen. Frag ihn einfach mal ob er weiß was ein 
Busfaktor ist und erkläre ihm dann, das dieser bei euch ziemlich genau 
exakt 1 beträgt (in Worten EINS ;)


Bernd K. schrieb:
> Wenn jemand Mergekonflikte hat komm ich gerne und biege das wieder
> gerade. Das zeigt mir wenigstens daß derjenige zumindest versucht das
> Tool zu benutzen, mithin also Interesse daran zeigt zu verstehen wie man
> das macht und was da vor sich geht!

Ich denke der erste Schritt sollte sein, dass einfach jeder seinen Kram 
überhaupt versioniert. Wenn jeder vor der Mittagspause und vor 
Feierabend einen Commit mit einer vernünftigen Commit-Message macht, 
dann währe das meiner Meinung nach ein erster Schritt. Zwar ein ganz 
kleiner Schritt aber auch ein sehr wichtiger. Branch, Merge, Rebase und 
was Git sonst noch alles kann, das würde ich machen wenn der erste 
Schritt getan ist.


Wolfgang S. schrieb:
> Ein auch nur halbwegs brauchbares Git für Windows, insb. aber ein GUI
> dafür war damals noch Zukunftsmusik.  Auch heute ziehe ich Mercurial für
> eigene, kleine Projekte Git vor.

Mercurial habe ich selber nie benutzt aber ich kann mir gut vorstellen 
das es mit Git gut vergleichbar ist. Das einzige andere VCS was ich 
längere Zeit effektiv genutzt habe war SVN. Ist zwar sehr einfach zu 
bedienen, kann aber halt auch nicht so viel. Von CVS habe ich nur 
Schaudergeschichten gehört und von SourceSafe kannte ich nicht mal den 
Namen aber ich möchte allen die das beruflich nutzen müssen hiermit mein 
herzliches Beileid aussprechen ;)

von Oliver S. (oliverso)


Lesenswert?

Johann L. schrieb:
> Wenn man also vorschlägt, sowas wie GIT einzuführen, und es gibt
> niemanden, der als Administrator infrage kommt, dann ist der Vorschlag
> nicht sehr solide.

Du kannst ja mal raten, wenn ich dafür im Sinn hatte. Da muß der TO halt 
durch.

Oliver

von Arno (Gast)


Lesenswert?

Jupp. Und außerhalb der Softwerker-Welt nutzt "man" Office im 
"Änderungen nachverfolgen"-Modus (und hält das schon für absolut 
genial).

Irgendeine arme Sau verbringt dann Tage damit, die Änderungen von 20 
Leuten in das Master-Dokument einzupflegen, und ausgerechnet die 
wichtigste Änderung vom Chef geht verloren.

That's life. Aber Menschen verdienen Geld nicht damit, eine Aufgabe 
besonders effizient zu erledigen, sondern sie effektiv zu verkaufen.

MfG, Arno

von Possetitjel (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Possetitjel schrieb:
>> Dass eure Mechaniker vielleicht eure kollegiale
>> Hilfe statt des Hochmutes gebraucht hätten, kommt
>> Dir nicht in den Sinn?
>
> Die wollen die Ratschläge der Software-Experten doch
> offenbar nicht hören.

Aus bitterer Erfahrung. Was nützt ein Ratschlag in einer
hermetisch verschlossenen Geheimsprache?


> Das kenn ich von Ingenieuren auch, die machen alles
> mit Excel

Und warum ist das kritikwürdig?

Ich wollte mich vor Monaten doch mal einen Schritt weiter-
entwickeln und habe angefangen, mich mit LibreOffice Base
zu befassen. Wegen unbrauchbarer Dokumentation und störender
Bugs habe ich das bald wieder bleibenlassen. Der nächste
Versuch wird mit Tcl und sqlite stattfinden.

Könnte die Einstiegsschwelle nicht ETWAS niedriger sein?


> und Dropbox und nehmen softwaretechnische Ratschläge
> von Informatikern am Allerwenigsten an

Natürlich nicht. Informatiker leben in einer eigenen
Welt (viele wenigstens).

von Dr. Sommer (Gast)


Lesenswert?

Possetitjel schrieb:
> Aus bitterer Erfahrung. Was nützt ein Ratschlag in einer
> hermetisch verschlossenen Geheimsprache?
Alles erscheint wie eine Geheimsprache, wenn man nicht hinhört und 
"Lalala ich kann dich gar nicht hören" singt. Dies könnte einer 
grundlegenden Abneigung gegenüber dem Unbekannten entspringen:

Possetitjel schrieb:
> Natürlich nicht. Informatiker leben in einer eigenen
> Welt (viele wenigstens).

von Dumdi D. (dumdidum)


Lesenswert?

Arno schrieb:
> Irgendeine arme Sau verbringt dann Tage damit, die Änderungen von 20
> Leuten in das Master-Dokument einzupflegen,

Und welche Alternative gibt es? Word Dokument im svn von allrn 
gleichzeitig bearbeiten lassen? Bekommt man die Konflikte noch 
aufgeloest?

von Dr. Sommer (Gast)


Lesenswert?

Dumdi D. schrieb:
> Und welche Alternative gibt es? Word Dokument im svn von allrn
> gleichzeitig bearbeiten lassen? Bekommt man die Konflikte noch
> aufgeloest?

Word 365 kann das sogar glaube ich, ähnlich zu Google Documents. 
Alternativ LaTeX Code in git einchecken... ;-)

von Nop (Gast)


Lesenswert?

Kommt auf das VCS an. So einen kranken Schmarrn wie Git würde ich auch 
ablehnen. SVN mit Tortoise hingegen gerne.

von Possetitjel (Gast)


Lesenswert?

Wühlhase schrieb:

> Possetitjel schrieb:
>
>> Ja, das ist der optimale Weg, sich als unkollegialer
>> Stänkerer zu profilieren.
>
> So unkollegial bin ich gar nicht wie das da oben
> rüberkam.

Okay. Ich kenne Dich ja nicht.


> Wenn jemand unbedingt meint einen Faustkeil zu benutzen,
> obwohl andere ihm für wenig oder gar kein Geld einen
> prima Werkzeugkasten entwickelt haben...ich kann das
> nicht nachvollziehen.

Ich schon. Ein primitives Werkzeug, das man beherrscht,
ist wesentlich nützlicher als ein leistungsfähiges, das
man nicht beherrscht.


>>> Die Mechaniker nutzen zur Versionssicherung lieber
>>> die Unterordnerfunktion des Windowsexplorers, während
>>> wir sämtliche Projektdateien (für Altium, LTSpice,
>>> ggb. Labview und wasweißichnichtnochalles) lieber in
>>> einem SVN-Repository halten und haben im letzten Jahr
>>> da unser eigens Ding aufgezogen.
>>
>> Dass eure Mechaniker vielleicht eure kollegiale Hilfe
>> statt des Hochmutes gebraucht hätten, kommt Dir nicht
>> in den Sinn?
>
> An kollegialer Hilfe hätte es nicht gemangelt. Ich
> persönlich gebe mein Wissen gerne weiter, allerdings
> war das Thema schon durch bevor ich in dieser Firma
> angefangen habe.

Ja, naja... es hat ja wenig Sinn, wenn Du Partei in einer
Sache ergreifst, die lange vor Deiner Zeit versaut wurde.


> Und SVN zu bedienen ist nun wahrlich nicht
> so schwer. Das ist in wenigen Minuten erklärt.

Das ist nur ein Teil der Wahrheit.
Falls ein zentraler Server notwendig ist, muss der
administriert werden -- also werden die Mechaniker vom
Administrator (der "natürlich" ein Elektroniker sein
wird) abhängig. Nicht schön -- aus ihrer Sicht.

von Gerhard O. (gerhard_)


Lesenswert?

Ich könnte mir Leben ohne VCS nicht mehr vorstellen. In einem Team 
Environment wäre "Ohne" ein absoluter Horror. Ich finde es macht 
fruchtvolle Zusammenarbeit erst möglich. Nur meine 2 cents...

: Bearbeitet durch User
von Possetitjel (Gast)


Lesenswert?

Bernd K. schrieb:

> ALLE finden es natürlich vorteilhaft daß [...] aber
> NIEMAND interessiert sich dafür wie ich das mache
> und warum ich es so mache wie ich es mache.

Okay... das ist aber nicht (primär) ein technisches
Thema, sondern es betrifft eure Zusammenarbeit, eure
Arbeitsteilung.


> Wenn alle die es wissen müssten wissen wie das
> funktioniert und wo was ist erleichtert es mir
> die Arbeit und ich kann entspannter in Urlaub
> fahren!

Hmm. Das klingt danach, dass Du in eine Rolle hinein-
gewachsen bist, die Du nicht wirklich auf Dauer ausfüllen
willst, und in der Du auch keine Unterstützung durch den
Chef hast.
Keine guten Voraussetzungen.


> Wo ist der Wissensdrang geblieben?

Der hat sich zwischen nervtötenden Bugs, mangelhafter
Dokumentation, gräuslicher Ergonomie, Profitstreben und
ideologischen Grabenkämpfen totgelaufen.

von Nop (Gast)


Lesenswert?

Gerhard O. schrieb:
> Ich könnte mir Leben ohne VCS nicht mehr vorstellen. In einem Team
> Environment wäre "Ohne" ein absoluter Horror.

Nicht nur in einem Team, auch alleine. Typische Anwendungen:

- man bekommt aus dem Feld Rückmeldung, daß eine bestimmte 
Software-Version sich fehlerhaft verhält. Welcher Sourcecode gehört 
dazu?

- man erbt ein Projekt und setzt die Toolchain auf. Wie überprüft man 
deren Korrektheit? Indem man den Sourcecode auscheckt, das Binärfile 
baut und mit dem ebenfalls ausgecheckten vergleicht, modulo Zeitstempel 
und sowas.

- irgendein Feature geht nicht mehr, das fällt im Test auf. In der 
Vorversion ging das aber noch. Welcher Commit hat den Fehler 
reingebracht? Binäre Suche führt hier sehr schnell zum Ziel.

Wo ich VCS nicht besonders mag: mit mehreren Leuten auf denselben 
Codeteilen arbeiten. Mergekonflikte sind nicht nur nervig, sondern viel 
schlimmer ist, daß Automerge nicht zwangsläufig korrekt funktioniert. 
Abhilfe: sich verständigen, wer an welchen Teilen arbeitet. Geht 
jedenfalls in übersichtlichen Teams sehr gut.

von Version ist gut, Kontrolle besser (Gast)


Lesenswert?

Christopher J. schrieb:
>
> Von CVS habe ich nur
> Schaudergeschichten gehört und von SourceSafe kannte ich nicht mal den
> Namen aber ich möchte allen die das beruflich nutzen müssen hiermit mein
> herzliches Beileid aussprechen ;)

Sag mal, ist Dir das nicht selber peinlich, Dich mit Aussagen wie "ich 
habe zwar keine Ahnung, wovon ich rede, aber ich sage einfach mal... es 
MUSS Sch... sein" als absoluter Hohlblubberkopf zu outen?

Ich habe gerade mal nachgesehen. Bei uns läuft Source Safe mit einer 
Codebasis, die heute noch gepflegt wird, seit 2003. Jeder neue 
Mitarbeiter kann in weniger als einer Stunde komplett damit arbeiten. 
Wir haben niemals irgendwelche Probleme mit der Versionsdatenbank 
gehabt. Es gehört für uns Alle zum täglichen Handwerkszeug, und alle Use 
Cases, die Nop weiter oben geschildert hat, können damit abgehandelt 
werden.

Klar kann das System nicht dass, was ein "modernes" System kann, z.B. 
Integration in IDEs oder den Dateiexplorer, weltweit verteilte Projekte 
über die Cloud managen etc pp., und bekannte kleine Problemchen muss man 
halt solange umschiffen, bis das System irgendwann mal abgelöst wird. 
Lt. einem externen Integrator lässt sich eine bestehende VSS Datenbank 
komplett so in Git übernehmen, dass Alles in de Versionshistorie dann in 
Git genau so aussieht wie unter VSS.

Es ist halt wie der Lada im Firmenwagenpark, der zwar das hässliche 
kleine Entlein ist, aber dafür seit Ewigkeiten klaglos seinen Dienst 
tut, während um ihn herum die Glitzibunti supermodernen Autos verrecken 
und ständig ausgetauscht werden.

Für alle Microsoft Haters: MS hat das System damals gekauft und die 
Weiterentwicklung kurz nach dem Kauf eingestellt, d.h. es ist noch nicht 
allzu viel "Verschmutzung" drin. Die Nicht-weiterentwicklung eines 
Produktes kann also auch ein Segen sein, wenn etwas schlicht und einfach 
genau das tut, was es soll und Niemand auf die Idee kommt, noch einen 
"Added Value" dadrauf zu packen (der lt. einem noch nicht näher benamten 
Gesetz der Softwareentwicklung zwangsweise die gewohnte Robustheit 
bricht). Ein Handwerker, der schon seit 20 Jahren mit seiner bewährten 
Bohrmaschine arbeitet, wird die auch so lange benutzen, wie sie ihren 
Dienst tut und keine neuen Materialien auf den Markt kommen, durch die 
das Arbeitspferd nicht mehr durch kommt.

Ich sehe es übrigens wie Gerhard O.: Ein VCS ist absolut 
unverhandelbarer Mindestbestandteil im Werkzeugkoffer. Wer einmal 
verstanden hat, was man davon hat, wird Niemals mehr ohne auskommen 
wollen. Es ist eine Frage des Evangelismus, die Zweifler einfach nur 
durch praktische Demonstration eines Falles zu überzeugen.

von Sebastian S. (amateur)


Lesenswert?

Auch wenn etwas sinnvoll ist, heißt das noch lange nicht: Muss sein!

Nebenbei: Niemand hindert dich (wahrscheinlich) daran, trotzdem eine 
Versionsverwaltung zu initialisieren.
Auf diese Weise kannst Du jederzeit, zumindest bei Deinem Kram, den 
Rückwärtsgang einlegen.
Kommst Du an die Ergüsse der Kollegen heran - bei Projekten mit mehreren 
Teilnehmern normal - so kannst Du diese ja ebenfalls erfassen.
So frierst Du verschiedene Stati ein, nur halt nicht mit einem 
(anerkannten) Versionsnamen sondern mit einem Datum.

von H. E. (hobby_elektroniker)


Lesenswert?

Andreas S. schrieb:
> Dann führe doch einfach ein VCS für Deine eigenen Arbeiten ein. Gerade
> Git lebt ja auch davon, dass eigentlich jeder Anwender seine eigenen
> Repositories verwendet, so dass man auch keinen "richtigen" Server
> aufsetzen muss. Eventuell stellen dann Deine Kollegen fest, dass Du
> damit tatsächlich viel bessere Auskünfte über Deine Arbeit liefern
> kannst und wollen dann irgendwann auch mitmachen.
>

Der Vorschlag ist ein Widerspruch in sich. Es steckt enorm viel Aufwand 
in der Pflege des Repos und ist völlig unnütz, wenn er das als einziger 
macht. Wenn der Rest ohne Versionskontrolle in wilder Laufbahn das 
Dateisystem verändert wird er niemals in den Vorteil kommen bessere 
Auskünfte geben zu können. Wenn ich also der Chef und dagegen wäre, 
würde ich das untersagen weil es keinen Mehrwert hätte, Zeit- und 
Geldverschwendung wäre. Wenn, dann müssen alle mitmachen und das 
Git-Repo muss das führende System sein und nicht der FTP-Server 
(whatever).

@TO, sieht nach Kommunikationsfehler aus oder fehlende Argumente. 
Vielleicht falsches Umfeld? Dir bleibt nur selbst einen Vortrag zu 
halten. ;)

Vielleicht fehlt auch nur das Vertrauen zur Expertise in der Firma...

: Bearbeitet durch User
von Cyblord -. (Gast)


Lesenswert?

Sebastian S. schrieb:
> Stati

brr, mir rollen sich in jedem Meeting die Fußnägel hoch, wenn ich das 
höre, obwohl es mit das prominenteste Beispiel für u-Deklination ist.

von Michael B. (laberkopp)


Lesenswert?

H. E. schrieb:
> Es steckt enorm viel Aufwand in der Pflege des Repos

Nur bei schlechten Systemen, also den aktuell gehypten.

Gute wären im normalen Arbeitsablauf transparent und erfordern nach dem 
Einrichten vom Entwickler keinen Mehraufwand, nur bei 
Rausholen/Vergleich von Altversionen und dann sparen sie sogar Arbeit.

Leider gibt es aktuell keine guten VCS.

von Dr. Sommer (Gast)


Lesenswert?

Ich habe keine Ahnung was das für ein Aufwand sein soll. Ich verwalte 
selbst einen Gitlab Server für ein kleines Team, der ist super 
pflegeleicht. Ich musste noch nie etwas flicken, und konnte sogar eine 
eigene CI Funktion einbauen. Die Pflege des Repository beschränkt sich 
auf ein "commit" alle Paar Stunden, das dauert auch je nur 2 Minuten. 
Mergen geht damit definitiv schneller als ohne VCS.
Man kann die Pflege ja auch skalieren. Selbst wenn man nur am Feierabend 
einmal Commit&Push macht und sonst nix hat man immer noch eine bessere 
Struktur als ganz ohne VCS. Der nächste Schritt wäre dann nur 
kompilier-fähige Stände zu committen - der Nutzen ist selbsterklärend.

Parallel habe ich noch eine Owncloud Instanz am Laufen hauptsächlich für 
CAD Daten - das ist viel aufwendiger, da ist ständig was kaputt. Ok, bei 
Dropbox hat man das nicht, aber möchte man seine internen Daten Dropbox 
anvertrauen?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Version ist gut, Kontrolle besser schrieb:
> Wir haben niemals irgendwelche Probleme mit der Versionsdatenbank
> gehabt.

Dann habt Ihr wohl sehr großes Glück gehabt. Leider basiert VSS ja auf 
einem Netzwerklaufwerk, auf dem die gemeinsamen Datenbankdateien liegen. 
Das kann über eine lange Zeit gut gehen, aber dann kracht es auf Grund 
irgendeines winzigen Fehlers auf einem der Clients. Es gibt leider auch 
noch andere VCS, die so funktionieren, z.B. RCS oder PVCS.

> Klar kann das System nicht dass, was ein "modernes" System kann, z.B.
> Integration in IDEs oder den Dateiexplorer,

Ähh...

Visual SourceSafe war doch gerade der Vorreiter, was die Integration 
in IDEs anging. Microsoft hat doch damals die sog. VCS Provider 
eingeführt, d.h. ein entsprechendes API, an das sich sowohl VCS als auch 
IDEs ankorken konnten. Microsoft Visual Studio war dann auf IDE-Seite 
das entsprechende Gegenstück. Somit gab es damals in den 1990er Jahren 
einen durchaus handfesten Vorteil bei der Verwendung von VSS und Visual 
Studio (bzw. den damals noch separat verkauften Produkten Visual C++, 
usw.).

von Gitter (Gast)


Lesenswert?

Abgesehen von der Sinnhaftigkeit eines VCS für den Einzelkämpfer, kommt 
es auch ein wenig auf eure Prozesse (Entwicklung, Integration, Test/QS, 
Freigabe) bzw. Größe des Projekts/Teamstruktur an, ob sich ein VCS 
lohnen kann.
Ein paar Argumente, um mit dem Chef/Kollegen darüber zu reden, falls die 
zutreffen:

- Entwicklung/Integration: Wie läuft gerade der Bauprozess eurer 
Software o.ä.? Neben einer binary Firmware bzw. darin kompiliert 
sämtliche beteiligten repository Versionsnummern (z.B. git commit IDs) 
zu haben und diese dann vom Produkt auslesen zu können, macht das 
Ergebnis wesentlich reproduzierbarer.

- QS/Freigabe: Mit einem vernünftigen System kann man den Stand über 
mehrere repositories taggen und so einen kompletten Produktstand 
versionieren.

- Entwicklung/Integration: Automatisiertes Bauen des aktuellen Stands 
(aka nightly build) macht sich mit repositories besser als mit datierten 
Ordnern.

- Integration/Test: Als Entwickler ist man dankbar, wenn der Tester 
einem zum Bug noch eine Version dazu schreiben kann, auf der er es 
getestet hat, damit man es selbst auf gleichem Stand reproduzieren kann 
(bzw. im VCS log schauen kann, was man seither gemacht hat).

- Entwicklung/Pflege: Entwicklung von neuen Features parallel zur Pflege 
des bestehenenden Produkts sind eine Stärke von Branches.

von Wolfgang S. (ws01)


Lesenswert?

H. E. schrieb:
> Andreas S. schrieb:
>> Dann führe doch einfach ein VCS für Deine eigenen Arbeiten ein. Gerade
>> Git lebt ja auch davon, dass eigentlich jeder Anwender seine eigenen
>> Repositories verwendet, so dass man auch keinen "richtigen" Server
>> aufsetzen muss. Eventuell stellen dann Deine Kollegen fest, dass Du
>> damit tatsächlich viel bessere Auskünfte über Deine Arbeit liefern
>> kannst und wollen dann irgendwann auch mitmachen.
>>
>
> Der Vorschlag ist ein Widerspruch in sich.

Nein. Andreas hat völlig recht.

> Es steckt enorm viel Aufwand
> in der Pflege des Repos

Keineswegs.

> und ist völlig unnütz, wenn er das als einziger
> macht.

Das ist falsch.

Ich vermute, Du verwechselst DVCS wie Git, Mercurial und andere mit 
GitHub, also einer zentralisierten Webplattform, die das D in DVCS - das 
steht für "distributed" wieder weitgehend eliminiert.

Ein Repository besteht einfach aus einem folder, in dem zu 
Verwaltungszwecken ein hidden folder angelegt wird. Mit Mercurial tut es 
dafür ein simples Kommando
1
hg init
in dem Verzeichnis. Bevorzugt man Git, so lautet der Befehl 
(Überraschung!) "git init".


Die Pflege besteht im einfachsten Fall in gelegentlichen Commits.


> Wenn der Rest ohne Versionskontrolle in wilder Laufbahn das
> Dateisystem verändert wird er niemals in den Vorteil kommen bessere
> Auskünfte geben zu können.

Du hast "für eigene Arbeiten" vergessen.

Wenn ich, was früher auch gelegentlich mal vorkam, liegengelassene 
Projekte aus vor-CVS-Zeiten versionieren wollte, stellte sich oft die 
Frage, wie die händisch archivierten Snapshots bzw. Kopien denn 
eigentlich einzuordnen seien.  Meine Vorgehensweise mit Mercurial - die 
mit Git dürfte analog funktionieren -: Die Snapshots in eine zeitliche 
Reihenfolge bringen, aus der ältesten Version ein Repository machen, 
alles, was nach versionierbarem Quellcode aussieht, in die 
Versionskontrolle aufnehmen und committen, dann die nächst jüngere 
Fassung drüberkopieren. Rinse and repeat, bis man bei der jüngsten Kopie 
angekommen ist. Dabei ein wenig mit dem Ignore-File spielen und neu 
hinzugekommene bzw. verschwundene Quellen genauer anschauen.  Hier ist 
ggfs. das GUI hilfreich.

Nachher hat man ohne viel Aufwand eine krude Historie rekonstriert, mit 
der man arbeiten kann.

Das Verfahren lässt sich übrigens auch anwenden, um Änderungen, die von 
außen ohne Versionskontrolle hereinkommen, zu tracken und hat insofern 
entgegen Deinen Vermutungen durchaus einen Mehrwert.

>Wenn ich also der Chef und dagegen wäre,
> würde ich das untersagen weil es keinen Mehrwert hätte, Zeit- und
> Geldverschwendung wäre. Wenn, dann müssen alle mitmachen und das
> Git-Repo muss das führende System sein und nicht der FTP-Server
> (whatever).

Nichts gegen den Wunsch, ein zentrales Repository zu etablieren, 
wenngleich ich einwenden muß, daß die Praxis oft komplizierter ist. Es 
gibt unterschiedliche, durchaus funktionierende Modelle und ein einziges 
zentrales Repository ist eher selten die Lösung.

Eher kontraproduktiv ist es aber der Ratschlag, statt lokaler 
Versionierung mit einem DVCS lieber ganz auf diese zu verzichten.

von Purzel H. (hacky)


Lesenswert?

Ein Source Control System muss zwingend ausserhalb der Sourcen laufen, 
die Sourcen nicht beruehren. Und sich selbst eine Datenbank mit 
Veraenderungen aufbauen.
Die Anfaenge waren nicht so. Wir haben mal RCS ausprobiert. Das hat 
alles reingezogen .. und nachher waren die Filenamen veraendert, usw. 
hat uns einige Tage gekostet.

von Dr. Sommer (Gast)


Lesenswert?

PS: Bei GitLab & Co hat man außerdem eine wunderschöne Web-Oberfläche, 
wo man sich bunt anzeigen lassen kann was so passiert. Das dürfte auch 
BWLer freuen, wenn sie die Früchte der Arbeit live eintrudeln sehen 
können (nur im Browser, ohne lokale Software-Installation), und da 
fragwürdige Kriterien zur Mitarbeiter-Bewertung ableiten können. Falls 
einem GitLab o.ä. zu aufwendig ist, kann man ja auch bei GitHub, 
Bitbucket & Co  private Repositories kaufen, was den Aufwand minimiert. 
Stellt sich natürlich wieder die Frage, ob man die Daten einem fremden 
Unternehmen anvertraut - aber das ist bei Dropbox & Co. ja auch der 
Fall.

Ein Problem wurde aber noch gar nicht angesprochen: Das Prinzip von VCS 
ist es ja, aufzuzeichnen, wer wann was gemacht hat. Diese Daten fallen 
aber unter das Datenschutzgesetz. Bei entsprechend großen Unternehmen 
braucht es daher einen Datenschutz-Beauftragten sowie ggf. Zustimmung 
vom Betriebsrat. Da andere Lösungen wie File-Server diese Daten ebenso 
sammeln, sollte das eigentlich keine größe Hürde sein - es braucht nur 
noch mehr Überzeugungsarbeit.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Zwölf M. schrieb:
> Ein Source Control System muss zwingend ausserhalb der Sourcen laufen,
> die Sourcen nicht beruehren. Und sich selbst eine Datenbank mit
> Veraenderungen aufbauen.

Das hängt ein bisschen vom Anwendungsfall ab.

> Die Anfaenge waren nicht so. Wir haben mal RCS ausprobiert.

RCS besitzt auch heute noch eine gewisse Daseinsberechtigung, allerdings 
nicht in Entwicklungsprojekten und/oder im Umgang mit vielen Dateien, 
und schon gar nicht im Mehrbenutzerbetrieb.

RCS ist äußerst praktisch, um Systemkonfigurationsdateien auf Servern 
o.ä. zu verwalten, insbesondere wenn keine Netzwerkverbindung zu einem 
zentralen VCS-Server besteht. Gerade bei Firewallkonfigurationen kommt 
es ja sehr schnell vor, dass eine winzige Konfigurationsaenderung 
gewaltige Auswirkungen haben kann. Und dann ist es hochgradig wichtig, 
eine lokale Versionsgeschichte der relevanten Dateien zu halten. Und die 
jeweilige Archivdatei liegt gleich nebenan, d.h. zu xyz.conf gibt es 
xyz.conf,v. Nachteilig ist bei RCS aber, dass das ci-Kommando 
standardmäßig die eingecheckte Datei lokal löscht; daher wird in solchen 
Fällen stets "ci -l" oder "ci -u" verwendet.

Um mich noch einmal zu wiederholen: RCS hat heutzutage wirklich nichts 
mehr in "richtigen" Projekten zu suchen, ebenso wie SCCS.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Andreas S. schrieb:
> RCS ist äußerst praktisch, um Systemkonfigurationsdateien auf Servern
> o.ä. zu verwalten, insbesondere wenn keine Netzwerkverbindung zu einem
> zentralen VCS-Server besteht
Genau das kann git auch ganz wunderbar... Und wenn die Verbindung dann 
steht, synchronisiert man sich mit push/pull mit dem Server, damit das 
Script auch schön gesichert/zugänglich ist.
Das ist auch einer der Gründe warum wir git im Formula Student Team 
nutzen - an der Renn/Test-Strecke hat man nicht immer Internet! Und wenn 
man doch mal Daten austauschen muss geht man per UMTS rein und trennt 
nach dem push/pull wieder, das spart eine Menge Daten im Gegensatz zu 
z.B. einer kompletten Owncloud-Synchronisierung.

von Wolfgang S. (ws01)


Angehängte Dateien:

Lesenswert?

Dr. Sommer schrieb:
> PS: Bei GitLab & Co hat man außerdem eine wunderschöne Web-Oberfläche,
> wo man sich bunt anzeigen lassen kann was so passiert. ...
> ... Falls
> einem GitLab o.ä. zu aufwendig ist, kann man ja auch bei GitHub,
> Bitbucket & Co  private Repositories kaufen, was den Aufwand minimiert.

Das geht auch einfacher. Eine Weboberfläche erhält man in Mercurial, 
indem man im lokalen Repository
1
hg serve
kommandiert. Das startet auf http://127.0.0.1:8000/ einen Webserver, der 
eine wunderschöne Web-Oberfläche zeigt. Natürlich ist das keine 
eierlegende Wollmilchsau wie GitLab, aber es ist simpel und es erlaubt 
komfortables Browsen im Repository, Drilldown auf einzelne Commits, 
einzelne Diffs oder einzelne Dateien darin, Checkout, fast alles, was 
man braucht, wenn man ansonsten kein GUI zur Hand hat, aber gerne eines 
hätte. Man kann das auch beispielsweise hinter einem Apache via 
reverse-proxy laufen lassen - so mache ich das @home - und damit mehrere 
Repositories im lokalen Netz zugänglich machen.

>
> Ein Problem wurde aber noch gar nicht angesprochen: Das Prinzip von VCS
> ist es ja, aufzuzeichnen, wer wann was gemacht hat. Diese Daten fallen
> aber unter das Datenschutzgesetz.

Nur dann, wenn der Workflow erzwingt, daß kleinteilige Commits in ein 
zentrales Repository fließen.  Davon ist aber eh' abzuraten.

> Bei entsprechend großen Unternehmen
> braucht es daher einen Datenschutz-Beauftragten sowie ggf. Zustimmung
> vom Betriebsrat.

Gute Idee. In dem Fall ist es aber wichtig, alle Beteiligten auch von 
der technischen Seite her mitzunehmen. M.E. sollte alle Parteien 
Interesse an Datensparsamkeit haben. Wer ein Versionskontrollsystem zur 
Mitarbeiterkontrolle einsetzt, macht etwas falsch.

von Dr. Sommer (Gast)


Lesenswert?

Wolfgang S. schrieb:
> Das geht auch einfacher. Eine Weboberfläche erhält man in Mercurial
Ah, das ist chic. Vor GitLab braucht man aber nicht zurückzuschrecken, 
das ist tatsächlich einfach einzurichten und zu bedienen und sehr 
leistungsfähig.

Wolfgang S. schrieb:
> Nur dann, wenn der Workflow erzwingt, daß kleinteilige Commits in ein
> zentrales Repository fließen.  Davon ist aber eh' abzuraten.
Wie soll man es denn sonst machen - einzelne Commits manuell in ein 
zentrales Repo kopieren? Der normale Workflow ist doch, öfter mal zu 
committen, und wenn das Feature fertig ist, das in den master-Branch zu 
mergen. Da sieht man dann aber auch alle einzel-Commits.

Wolfgang S. schrieb:
> Gute Idee.
Ist nicht meine, sondern deutsches Gesetz ;-)

Wolfgang S. schrieb:
> Wer ein Versionskontrollsystem zur
> Mitarbeiterkontrolle einsetzt, macht etwas falsch.
Das sowieso. Es ist hauptsächlich eine Formalität. Das gleiche Problem 
hast du ja auch bei E-Mail, Outlook-Kalendern usw - kein Mitarbeiter 
würde sich aus Datenschutzgründen gegen einen Mail-Server aussprechen - 
wenn schon nur weil die Mails nerven ;-)

von X4U (Gast)


Lesenswert?

Gitter schrieb:
> Abgesehen von der Sinnhaftigkeit eines VCS für den Einzelkämpfer,

Also ich nutze mercurial seit Jahren und will es nicht mehr missen.

Nicht nur für Software sondern auch für Hardware.
Allein die Versionshistorie würde schon reichen um dem Aufwand zu 
rechtfertigen. Dann kann man mit Subrepos wirklich jeden einzelne 
Entwicklungs- und Fertigungsaspekt versionieren usw. usf.

Hab mir z.B selber n Progrämmchen geschrieben das die Versionsnummer des 
Repos nach dem commit in die Leiterplatte einträgt. Auf alle sinnvollen 
Layer. Da kann man auch einfach ne Production Version branchen und 
munter weiter entwickeln. Die Prod. Version wird dann nach den 
Fertigungsänderungen manuell gemerged.

Dafür bastele ich zur Zeit ein visuelles diff. Schon der Prototype ist 
so hilfreich das ich auch das nicht mehr missen möchte.

Wolfgang S. schrieb:
> Das geht auch einfacher. Eine Weboberfläche erhält man in Mercurial,
> indem man im lokalen Repositoryhg serve

Super Tip, danke.

Funzt das auch mit mehreren repos lokal?

von Hans (Gast)


Lesenswert?

Im Grunde haben wir hier ein typisches Overhead- Problem. Die Frage 
also, ob ein bestimmter Mehraufwand in vernünftiger Relation zum Nutzen 
steht. Ob sich Versionierung oder der Einsatz von Scrum, ob sich ein 
Protokoll, der Einsatz einer ausgefeilten Hochsprache oder ein 
bestimmtes zugrundeliegendes Betriebssystem wirklich rechnet ist nicht 
pauschal zu sagen. In einer Diskussion wie dieser sollte immer auch die 
Möglichkeit im Blickfeld bleiben daß dem eben nicht so ist. Im 
Zweifelsfall wird der unbedarfte Anwender immer auch dem einfacheren 
Tool den Vorzug geben. Die Zeit steht nur einmal zur Verfügung und die 
ist grundsätzlich nunmal sinnvoller ins eigentliche Projekt als in 
dessen (eh man sich versieht schnell zu aufwendiger) Administrierung 
gesteckt. Zusätzliche Lernprozesse inklusive.

von Decius (Gast)


Lesenswert?

Wenn ihr eine kleine Firma mit 2 Entwicklern seid, verstehe ich Deinen 
Kollegen und Chef schon irgendwo. Wahrscheinlich wird noch viel manuell 
getestet, die Versionsverwaltung über unterschiedliche Verzeichnisse 
geregelt und es wird sich sicher um nicht sichere Software handeln.

Nicht dass das ein optimale Arbeitsweise ist, aber so richtig fängt 
Versionskontrollsoftware erst an ihre Vorteile auszuspielen wenn es um 
Begriffe wie automatisches Testen und Continuous Integration (siehe 
Jenkins) und so weiter geht.

von c.m. (Gast)


Lesenswert?

wie geht man damit um?

die leute feste auf die fresse fallen lassen - siehs als darwinismus.

wobei das natürlich leichter gesagt als getan ist. ich musste selbst von 
einem arschgeigen deppen der unser VCS nicht benutzte ein projekt 
übernehmen als er ging.
er hat dann schnell vor seinem abgang noch ein 700mb .zip eingescheckt, 
in das er seinen sauhaufen von code reingepackt hatte.

ich hab mich beim chef bedankt.

oh und entschuldigt die beschimpfungen, aber ich muss mich bei dem thema 
irgendwie abreagieren, und den verantwortlichen so die fresse zu 
polieren wie sie es eigentlich verdient hätten ist unter strafandrohung 
verboten. schade.

von Wolfgang S. (ws01)


Lesenswert?

Dr. Sommer schrieb:
> Wolfgang S. schrieb:
>> Das geht auch einfacher. Eine Weboberfläche erhält man in Mercurial
> Ah, das ist chic. Vor GitLab braucht man aber nicht zurückzuschrecken,
> das ist tatsächlich einfach einzurichten und zu bedienen und sehr
> leistungsfähig.

Wenn ich jemandem adhoc die Vorzüge eines DVCS demonstrieren möchte, 
werde ich auf dessen Laptop nicht eben mal GitLab installieren, schon 
gar nicht, wenn das ein mit Windows betriebener Laptop ist. Mercurial 
und - wenn nicht schon vorhanden - Python lokal zu installieren (oder 
alternativ TortoiseHg) ist hingegen auf den meisten Plattformen eine 
überschaubare Übung.

>
> Wolfgang S. schrieb:
>> Nur dann, wenn der Workflow erzwingt, daß kleinteilige Commits in ein
>> zentrales Repository fließen.  Davon ist aber eh' abzuraten.
> Wie soll man es denn sonst machen - einzelne Commits manuell in ein
> zentrales Repo kopieren?

Nein, sondern konsolidierte Commits in einem separaten Branch sammeln. 
Das kann man manuell machen, muß man aber nicht, das läßt sich auch 
automatisieren. In "entsprechend großen Unternehmen" - davon sprachst Du 
- wird man vermutlich eh separate Repositories für Entwicklung, 
freigegebene Versionen usw. pflegen müssen.

>Der normale Workflow ist doch, öfter mal zu
> committen, und wenn das Feature fertig ist, das in den master-Branch zu
> mergen.

In kleinen Gruppen wird man sicher so arbeiten. Wenn aber die Arbeit von 
mehrere Gruppen zusammengefasst wird, wird man nicht nur aus 
Datenschutzgründen nicht jeden Schreibfehler überallhin propagieren 
wollen. Mehr habe ich nicht gesagt.

>Da sieht man dann aber auch alle einzel-Commits.
>
> Wolfgang S. schrieb:
>> Gute Idee.
> Ist nicht meine, sondern deutsches Gesetz ;-)

Du hattest dies ja selber schon eingeschränkt.  Abgesehen davon gibt es 
in den besseren größeren Unternehmen eh schon 
Gesamtbetriebsratsvereinbarungen, die einige dieser Dinge flächendeckend 
regeln. Es ist gewiß nicht verkehrt, dort auch die DVCS zu behandeln, 
also festzulegen, ab welchem Punkt was separat zustimmungspflichtig ist 
etc.  Das bedeutet aber auch, daß man sich überlegen kann, daß es besser 
ist, manche Daten erst gar nicht zu sammeln.

von H. E. (hobby_elektroniker)


Lesenswert?

Wolfgang S. schrieb:
> H. E. schrieb:
>
>> Der Vorschlag ist ein Widerspruch in sich.
>
> Nein. Andreas hat völlig recht.

Der Zusammenhang wird hier auseinandergezogen. Es ist nur dann ein 
Widerspruch, wenn ein führendes System (irgendein Root-Verzeichnis) ohne 
Versionskontrolle verwaltet wird und nur ein einziger bei sich ständig 
Fremdeinwirkungen manuell mit ins VCS-System reinpflegt.

>
>> Es steckt enorm viel Aufwand
>> in der Pflege des Repos
>
> Keineswegs.

Doch, auch Sicht des geschilderten Falls schon. Der Chef sagt: VCS? Nö! 
Und dann fängt der Mitarbeiter an Zeit in VCS zu stecken obwohl 
eigentlich: nö! ;)

Es geht nicht darum was ich davon halte. Nicht das wir uns falsch 
verstehen, ich halte eine Versionskontrolle immer für sinnvoll, allein 
die Vorteile die sich daraus ergeben. Das war ausschließlich in Bezug 
auf die Kontroverse des geschilderten Falls bezogen.

>
>> und ist völlig unnütz, wenn er das als einziger
>> macht.
>
> Das ist falsch.
>
> Ich vermute, Du verwechselst DVCS wie Git, Mercurial und andere mit
> GitHub, also einer zentralisierten Webplattform, die das D in DVCS - das
> steht für "distributed" wieder weitgehend eliminiert.

Es geht mir immer noch darum, dass der Nutzen marginal ist, wenn der 
Rest der Firma das File-System bearbeitet, wie die Fingernägel gewachsen 
sind. In einer Versionskontrolle sollen ja alle Änderungen eines 
Zustands (Commits) aufgezeichnet werden. Das ist überhaupt nicht mehr 
gewährleistet, wenn der Rest am VCS vorbei arbeitet. Wenn überhaupt, 
lässt sich dann feststellen: Irgendeiner hat irgendwann seit dem letzten 
mal irgendwas an Stelle XYZ geändert. Zwischenstufen sind hier evtl. gar 
nicht aufgezeichnet. Ja, es ist besser als nichts, aber das wird den 
Chef nicht tangieren, wenn er gegenüber VCS abgeneigt ist.

>
>>Wenn ich also der Chef und dagegen wäre,
>> würde ich das untersagen weil es keinen Mehrwert hätte, Zeit- und
>> Geldverschwendung wäre. Wenn, dann müssen alle mitmachen und das
>> Git-Repo muss das führende System sein und nicht der FTP-Server
>> (whatever).
>
> Nichts gegen den Wunsch, ein zentrales Repository zu etablieren,
> wenngleich ich einwenden muß, daß die Praxis oft komplizierter ist. Es
> gibt unterschiedliche, durchaus funktionierende Modelle und ein einziges
> zentrales Repository ist eher selten die Lösung.

Am Ende soll alles zusammenlaufen. Deshalb gibt es ein Master-Repo und 
davon existieren lokale Kopien und deren Commits, Branches, Tags etc. 
pp.

> Eher kontraproduktiv ist es aber der Ratschlag, statt lokaler
> Versionierung mit einem DVCS lieber ganz auf diese zu verzichten.

In der Hinsicht wurden keine Ratschläge erteilt. Die Energie als 
Eigenbrötler kann man sich letzendes sparen und man sollte die Energie 
stattdessen in Argumente investieren und einen Vortrag halten anhand von 
Beispielen. Meine Erfahrung ist die, dass VCS-Verweigerer nicht 
überzeugt davon sind weil die Vorzüge nicht bewusst sind. Zudem 
dominiert die Angst, dass man mit dem Werkzeug nicht klar kommt und viel 
Zeit "verbraten" würde auf Grund von fehlendem Wissen (was eigentlich ja 
nicht mal so schlimm wäre, was man nicht kennt, kann sich ja noch 
ändern).

Zusammenfassend wie ich das sehe.

Versionskontrolle: Unbedingt
Eigenbrötler: besser als nichts
Besser noch: Spielraum für Überzeugen schaffen anstatt als einziger mit 
dem Kopf durch die Wand.

Es ging in meinem Bezug darauf, dass offensichtlich die Einstellung des 
Chefs die folgende ist: Was der Bauer nicht kennt, frisst er nicht.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Wolfgang S. schrieb:
> Wenn ich jemandem adhoc die Vorzüge eines DVCS demonstrieren möchte,
Ja ok, dafür ist GitLab overkill...

Wolfgang S. schrieb:
> Nein, sondern konsolidierte Commits in einem separaten Branch sammeln.
Dann werden da aber auch die Zwischen-Commits angezeigt, zumindest bei 
Git, wenn man die konsolidierten commits einfach in diesen Branch 
merged. Das ist aber IMO kein Problem, man sieht ja welche commits die 
wichtigen sind, und kann die ja auch noch explizit taggen.

Wolfgang S. schrieb:
> Das bedeutet aber auch, daß man sich überlegen kann, daß es besser
> ist, manche Daten erst gar nicht zu sammeln.
Das ist ja wie Gold auf dem Weg liegen zu lassen, denn diese Daten 
können sich als sehr wertvoll erweisen...

von Bernd K. (prof7bit)


Lesenswert?

Decius schrieb:
> aber so richtig fängt
> Versionskontrollsoftware erst an ihre Vorteile auszuspielen wenn es um
> Begriffe wie automatisches Testen und Continuous Integration (siehe
> Jenkins) und so weiter geht.

Nein, das seh ich anders: Die Nützlichkeit fängt viel früher an. Gerade 
bei leichtgewichtigen DVCS wie git oder hg deren Benutzung so gut wie 
keinen Overhead erzeugen.

von A. S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Standpunkt vertritt es sei zu umständlich die Bedienung eines VCS zu
> erlernen, es "lohne" sich daher nicht. Wie geht Ihr mit sowas um?
>

> Ich versteh das echt nicht, das sind alles hochintelligente Menschen und
> scheitern dennoch an so einer simplen Kosten-Nutzen-Rechnung.

Bernd K. schrieb:
> Ich erwarte nicht daß sich alle zu absoluten git-Experten entwickeln die
> mit einer Hand auf den Rücken gebunden 2 Kernel branches mergen konnten.


> "Äh das ist mir jetzt zu kompliziert, das kann ich doch nicht, kannst Du mir
> das bitte schnell auschecken und auf das netzlaufwerk legen und mir dann
> bescheid sagen? Danke!". Hallo?

> Wohlgemerkt, es geht um Leute die selbst auch mit Entwicklung befasst
> sind, nur von denen erwarte ich zumindest minimales Interesse daran was
> das für ein Ding ist das das alles noch zusammenhält und wie man es
> wenigstens grundlegend benutzt, das würde auch schon reichen.
>
> Aber es ist immer gerade "jetzt" zu kompliziert. Jedesmal ist es genau
> jetzt zu kompliziert! Und danach ist es wieder "nicht nötig".
>
> Wo ist der Wissensdrang geblieben? Was neues gesehen: rausfinden was das
> ist, was es macht, versuchen zu verstehen wie es funktioniert!
> Ausprobieren wollen! Wo ist das alles geblieben? Ich habs noch. Warum
> habens die anderen verloren?


Du bist also der GIT-Experte. Vielleicht noch ein paar Dinge Drumherum, 
die andere auch nicht nutzen? ivy, ant, maven, Hudson, ...?

Wenn es Dir darum geht, das andere Dir folgen, dann hast Du einen 
schweren Stand. Die Leute haben einfach keine Lust, private Zeit in 
"unnützes Zeug" zu investieren. Es dauert (wie eine neue Sprache lernen) 
einfach zu lang und die Leute haben ein Privatleben.

Wenn es Dir wirklich darum geht, dass andere ein CVS nutzen, dann 
springe über Deinen Schatten und versuche es mit einem wesentlich 
einfacheren VCS, z.B. Tortoise/SVN.

von Der Schwenn (Gast)


Lesenswert?

Selbst wenn man Einzelkämpfer ist macht ein VCS immer Sinn:
Es hält einfach den Code sauber. Wo man früher ne Menge auskommentierten 
Schrott drinn hatte ("das brauche ich vielleicht noch..." macht man 
heute ein commit wenns später nicht passt kann man wie schon jeman 
schrieb wunderbar Fehler eingrenzen. Ich mach für jedes kleine 
Furzscript ein git init, man weiss nie was aus dem Script noch wird, 
meist wirds doch grösser als geplant und behält mit git die Übersicht. 
So Gemurkse wie "ich mache alle  2h eine Vollkopie mit was 
selbergebasteltem" hat dann im Erstfall doch nicht den richtigen 
Snapshotzeitpunkt erwischt mit dem Code den man noch mal anschauen will 
muss sich durch redundanten Code wühlen.... einfach Murks und endlos 
Zeit fressend.

Wer für git,... zu doof ist soll sich nen anderen Job suchen. Wäre ich 
der Boss in dem Laden würde ich dem Typen ne Abmahnung wegen 
Arbeitsverweigerung
reindrücken.

von H. E. (hobby_elektroniker)


Lesenswert?

Bernd K. schrieb:
> Decius schrieb:
>> aber so richtig fängt
>> Versionskontrollsoftware erst an ihre Vorteile auszuspielen wenn es um
>> Begriffe wie automatisches Testen und Continuous Integration (siehe
>> Jenkins) und so weiter geht.
>
> Nein, das seh ich anders: Die Nützlichkeit fängt viel früher an. Gerade
> bei leichtgewichtigen DVCS wie git oder hg deren Benutzung so gut wie
> keinen Overhead erzeugen.

Oder der Klassiker -> Kollision.

Person A, erstellt die Datei Einkauf.txt mit der Zeile: Äpfel
-> Datei wird auf dem Produktivserver hochgeladen.

Person B, lädt die Datei herunter und fügt Birnen dazu.
-> Datei wird hochgeladen: Äpfel, Birnen

Person C, hat zeitgleich wie Person B die Datei heruntergeladen (Stand 
von Person A) und fügt Pflaumen hinzu.
Datei wird hochgeladen: Äpfel, Pflaumen und "Birnen" geht verloren.

Der Einkäufer lädt die Datei herunter und wird keine Birnen kaufen, wenn 
der Fehler nicht rechtzeitig von A,B oder C bemerkt wird.

Das wäre mit einer Versionskontrolle nur mit purer Ignoranz passiert. 
Denn diese hätte die Konflikte dargestellt und einer der Personen hätte 
den Konflikt auflösen müssen. :-)

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Achim S. schrieb:
> versuche es mit einem wesentlich
> einfacheren VCS, z.B. Tortoise/SVN.

SVN ist umständlicher als git und der Workflow ist schwerfälliger, das 
wäre also eher nachteilig. Tortoise gibts für beide.

von A. S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Tortoise gibts für beide.

Nutzt Du Tortoise git? Oder was willst Du damit sagen??

von Wolfgang S. (ws01)


Lesenswert?

X4U schrieb:

> Wolfgang S. schrieb:
>> Das geht auch einfacher. Eine Weboberfläche erhält man in Mercurial,
>> indem man im lokalen Repositoryhg serve
>
> Super Tip, danke.
>
> Funzt das auch mit mehreren repos lokal?

Auf diese Weise nicht, nein. Da ich, wie schon geschrieben,  den 
Mercurial-Webserver hinter einem Apache laufen lasse, weiß ich zwar, daß 
es prinzipiell gehen müsste, Mercurial weigert sich aber, den Server aus 
einem Verzeichnis heraus laufen zu lassen, das kein Repository ist.  Man 
kann mit einem hgrc und Subrepositories, die man da manuell einträgt, 
ein wenig tricksen, jedoch überspannt schon das den Bogen ein wenig.

hg help serve gibt ein paar Benutzungshinweise. Wie erwartet, kann man 
im Aufruf den Port festlegen.
1
hg serve -p 9000
benutzt den Port 9000, die Angabe von 0 veranlasst hg serve, sich einen 
freien Port zu suchen.

Auf diese Weise kann man, sollte das nötig sein, etwa um von einem 
anderen Arbeitsplatz aus schnell mal was zu clonen oder etwas 
nachzuschauen, das über mehrere Repositories verstreut ist, auch mehr 
als eines serven. Aber Vorsicht, wie die eingebaute Hilfe ja auch 
erläutert, eine Zugriffskontrolle gibt es hier nicht.

von Wolfgang S. (ws01)


Lesenswert?

H. E. schrieb:
> Zusammenfassend wie ich das sehe.
>
> Versionskontrolle: Unbedingt
> Eigenbrötler: besser als nichts
> Besser noch: Spielraum für Überzeugen schaffen anstatt als einziger mit
> dem Kopf durch die Wand.

Ich würde "besser als nichts" zwar in der Form "immerhin ein Anfang" ins 
Positive wenden wollen, ansonsten aber kein Einwand. "Mit dem Kopf durch 
die Wand" funktioniert nicht. Aber es gilt auch, besser vormachen als 
nur reden.

Darauf kann man sich einigen, denke ich.

von Nop (Gast)


Lesenswert?

Bernd K. schrieb:

> SVN ist umständlicher als git und der Workflow ist schwerfälliger, das
> wäre also eher nachteilig. Tortoise gibts für beide.

Dafür funktioniert Tortoise mit SVN sehr einfach, mit Git.. naja. Und 
CLI-Git ist indiskutabel. Merkregel: wenn ein Programm anfängt, den 
Anwender mit Implementationsdetails zuzuschütten, hat man ein 
Designproblem.

Zumal man in Firmen ohnehin meistens kein DVCS braucht, weil der Server 
eben da ist. Schon weil sonst die Netzwerklizenzen für den Compiler 
nicht gehen. Außerdem wird der Server zentralem Backup unterzogen.

von Wolfgang S. (ws01)


Lesenswert?

Dr. Sommer schrieb:
> Wolfgang S. schrieb:
>> Nein, sondern konsolidierte Commits in einem separaten Branch sammeln.

> Dann werden da aber auch die Zwischen-Commits angezeigt, zumindest bei
> Git, wenn man die konsolidierten commits einfach in diesen Branch
> merged.

Mercurial bietet andere Möglichkeiten, als einfach eine Serien von 
revsets als Patches zu exportieren, Git soweit ich weiß, auch. Ich 
denke, das geht jetzt aber ein wenig zu sehr ins Detail.

> Das ist aber IMO kein Problem, man sieht ja welche commits die
> wichtigen sind, und kann die ja auch noch explizit taggen.

Wenn es um schützenswerte Daten geht, ist es schon wichtig, ob die Daten 
tatsächlich weg sind oder nur versteckt werden.

>
> Wolfgang S. schrieb:
>> Das bedeutet aber auch, daß man sich überlegen kann, daß es besser
>> ist, manche Daten erst gar nicht zu sammeln.
> Das ist ja wie Gold auf dem Weg liegen zu lassen, denn diese Daten
> können sich als sehr wertvoll erweisen...

Eben.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> Andreas S. schrieb:
>> RCS ist äußerst praktisch, um Systemkonfigurationsdateien auf Servern
>> o.ä. zu verwalten, insbesondere wenn keine Netzwerkverbindung zu einem
>> zentralen VCS-Server besteht
> Genau das kann git auch ganz wunderbar... Und wenn die Verbindung dann
> steht, synchronisiert man sich mit push/pull mit dem Server, damit das
> Script auch schön gesichert/zugänglich ist.

Hä, welche Verbindung? Es gibt sehr viele Systeme, die niemals solch 
eine Verbindung bekommen werden, weil sie z.B. gar keinen Netzwerkzugang 
haben oder weil dieser eben keine Verbindung in beliebige Richtungen 
zulässt. Die Dateisicherung erfolgt dann z.B. durch das Anschließen (und 
anschließende Entfernen) einen physischen Datenträgers, auf den dann ein 
Backup geschrieben wird.

Git hätte hier sicherlich den Vorteil, dass man solch einen Datenträger 
auch als Remote eintragen und ein Push ausführen kann.

Aber der Vorteil von RCS ist eben der absolut minimalistische Ansatz: 
genau eine Archivdatei pro zu versionierender Datei. Keine 
Konfiguration, kein separates Verzeichnis. Außerdem wird es schon seit 
Jahrzehnten mit so ziemlich allen unixoiden Betriebssystemen 
standardmäßig mitgeliefert. Es gibt dann einfach keinen Grund, etwas 
anderes als dieses Hausmittel zu verwenden, wenn man wirklich nur eine 
einzelne Datei an beliebiger Stelle versionieren möchte. Man muss auch 
kein Repository anlegen, sondern dies geschieht automatisch beim ersten 
Checkin mittels "ci -l".

> Das ist auch einer der Gründe warum wir git im Formula Student Team
> nutzen - an der Renn/Test-Strecke hat man nicht immer Internet!

Wieso schaffen es Autofanatiker eigentlich niemals, über ihren eigenen 
Tellerrand bzw. das Lenkrad hinauszuschauen?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> SVN ist umständlicher als git und der Workflow ist schwerfälliger, das
> wäre also eher nachteilig.

Unsinn. Bei Git benötigt man spätestens dann etliche Repositories, wenn 
es um die Einrichtung von Zugriffsrechten geht. Bei SVN hingegen kann 
man - auch nachträglich - die Zugriffsrechte auf einzelne Pfade 
innerhalb eines Repositories sehr detailliert einstellen. SVN ist auch 
wesentlich mächtiger als Git, wenn es um die Restrukturierung von 
Repositories geht, insbesondere bei Verwendung eines einzigen für alle 
Projekte.

Und durch die Verwendung einer einzigen Revisionsnummer für das ganze 
Repository hat man eine vorzügliche Lamport-Uhr, wohingegen man den 
Commits eben nicht die Reihenfolge ansieht.

Git besitzt natürlich erhebliche Vorteile, wenn es um die verteilte 
Entwicklung geht. Für genau diesen Zweck wurde es ja schließlich auch 
entwickelt, ähnlich wie das anfänglich für die Linux-Kernelentwicklung 
genutzte und wesentlich ausgereiftere Bitkeeper. Allerdings gab es 
damals einen ziemlichen Streit wegen des Bitkeeper-Lizenzmodells, denn 
Bitkeeper ist ein normales kommerzielles Produkt. Interessanterweise 
habe ich neulich erfahren, dass Bitkeeper offenbar eine 
Weiterentwicklung von SCCS ist.

> Tortoise gibts für beide.

Es gibt nicht ein Program namens Tortoise, welches mit den 
unterschiedlichen VCS zurechtkommt. Tortoise SVN, Tortoise Git und 
Tortoise CVS sind völlig unterschiedliche Programme.

Leider bin ich auch schon darauf hereingefallen, dass mir im Explorer 
der falsche Dateistatus angezeigt wurde, z.B. bei irgendwelchen 
Dateiarchiven, die ein .git-Verzeichnis enthalten und in einem per SVN 
verwalteten Verzeichnis entpackt werden. Offenbar scheint Tortoise Git 
da dominanter als Tortoise SVN zu sein.

: Bearbeitet durch User
von Johannes O. (jojo_2)


Lesenswert?

Ohne Versionskontrolle würde ich nicht mehr arbeiten wollen.

Mittlerweile packe ich alles in ein Git rein. Früher hatte ich SVN 
verwendet, das skaliert allerdings nicht so schön bzw. kann manche 
Features nicht bieten, die es bei Git gibt.

Bei Software bietet sich Git natürlich an. Aber auch bei Hardware 
verwende ich es. KiCAD zum Beispiel speichert die Daten in Textfiles ab. 
Dadurch ist es sehr gut Git-Kompatibel.

Aber auch für Projektberichte und wissenschaftliche Arbeiten setze ich 
mittlerweile auf Git. Auch ein paar Kollegen habe ich überzeugt. Durch 
mehrere Branches kann Kollege A bereits nen Review eines Teilberichts 
durchführen während ich an einem anderen Teil des Berichts arbeite. 
Später wird dann alles in einem Merge zusammengeführt. Durch die 
Diff-Funktion sehe ich sehr schnell, welche Änderungswünsche bestehen. 
Bei Überschneidungen kann man das immer noch sehr schön manuell 
auflösen.

In Projekten arbeite ich meist auf einem eigenen Branch. Dadurch kommt 
es weniger zu Kollisionen und ich kann den aktuellen Stand auf Master 
zurückführen, sobald er bereit ist. D.h. halbfertige Sachen liegen 
erstmal nicht auf Master. (Ein Vorteil gegenüber SVN).

Ich kenne auch noch die "alte" Methode, wo es in manchem Ordner ca. 10 
Dateien mit ähnlichem Namen (_old, _asdf, ...) gab wo man nie wusste, 
was schon mit was zusammengeführt wurde und wo nun der aktuelle Stand 
ist. Nie wieder...

Seit Anfang meiner Berufstätigkeit setze ich SVN und Git ein, das ist 
jetzt auch schon ca. 10 Jahre her. Sogar meine Facharbeit(!) hatte ich 
damals als Schüler in einem eigenen SVN liegen. Zusätzlich hatte ich 
damit ein externes Backup und eine gute Übersicht darüber, was/wo/wie 
geändert wurde.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Johannes O. schrieb:
> [...] Projektberichte und wissenschaftliche Arbeiten [...]
> Später wird dann alles in einem Merge zusammengeführt.

merge und binary beisst sich doch meistens... außer du erstellst deine 
Projektberichte und wissenschaftliche Arbeiten in einem non-binary 
Format (TeX?)

von Possetitjel (Gast)


Lesenswert?

H. E. schrieb:

> Es ging in meinem Bezug darauf, dass offensichtlich
> die Einstellung des Chefs die folgende ist: Was der
> Bauer nicht kennt, frisst er nicht.

Naja, wie ich das verstanden habe, wird ja FAKTISCH
bereits ein VCS eingesetzt -- der Bauer frisst also
durchaus, was in kleinen Häppchen in seine Kartoffelsuppe
gemischt wird, solange er es nicht merkt.

Das Kernproblem ist nur: Änderungen in den Verantwortlich-
keiten kann man auf Dauer nicht gegen den Widerstand des
Chefs durchsetzen, das ist zumindest meine Erfahrung.

von H. E. (hobby_elektroniker)


Lesenswert?

Wolfgang S. schrieb:
> H. E. schrieb:
>> Zusammenfassend wie ich das sehe.
>>
>> Versionskontrolle: Unbedingt
>> Eigenbrötler: besser als nichts
>> Besser noch: Spielraum für Überzeugen schaffen anstatt als einziger mit
>> dem Kopf durch die Wand.
>
> Ich würde "besser als nichts" zwar in der Form "immerhin ein Anfang" ins
> Positive wenden wollen, ansonsten aber kein Einwand. "Mit dem Kopf durch
> die Wand" funktioniert nicht. Aber es gilt auch, besser vormachen als
> nur reden.
>
> Darauf kann man sich einigen, denke ich.

Ich bin bei dir! :)

von Christopher J. (christopher_j23)


Lesenswert?

Possetitjel schrieb:
> Naja, wie ich das verstanden habe, wird ja FAKTISCH
> bereits ein VCS eingesetzt -- der Bauer frisst also
> durchaus, was in kleinen Häppchen in seine Kartoffelsuppe
> gemischt wird, solange er es nicht merkt.

Anders gesagt schmeckt ihnen der anderen Leute Speck in der Suppe ganz 
hervorragend, bloß die eigene Sau, die wollen sie natürlich nicht 
schlachten.

von A. S. (Gast)


Lesenswert?

Christopher J. schrieb:
> Anders gesagt schmeckt ihnen der anderen Leute Speck in der Suppe ganz
> hervorragend, bloß die eigene Sau, die wollen sie natürlich nicht
> schlachten.

Nein, sie möchten nicht von jemandem abhängig sein, der zwei Schritte 
weiter ist, nicht bereit ist einen zurück zu gehen und für den

Bernd K. schrieb:
> Auslachen, umdrehen und weggehen?

zumindest eine Option ist.


Christopher J. schrieb:
> Frag ihn einfach mal ob er weiß was ein
> Busfaktor ist und erkläre ihm dann, das dieser bei euch ziemlich genau
> exakt 1 beträgt (in Worten EINS ;)

Naja, ich glaube der TO muss nicht mehr beweisen, wie klasse er ist und 
wie doof alle anderen.

von Johannes O. (jojo_2)


Lesenswert?

Michael R. schrieb:
> Johannes O. schrieb:
>> [...] Projektberichte und wissenschaftliche Arbeiten [...]
>> Später wird dann alles in einem Merge zusammengeführt.
>
> merge und binary beisst sich doch meistens... außer du erstellst deine
> Projektberichte und wissenschaftliche Arbeiten in einem non-binary
> Format (TeX?)

Ja, hatte ich vergessen zu erwähnen! Ist praktisch alles LaTeX, darum 
klappt das auch sehr gut.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Johannes O. schrieb:
> Michael R. schrieb:
>> Johannes O. schrieb:
>>> [...] Projektberichte und wissenschaftliche Arbeiten [...]
>>> Später wird dann alles in einem Merge zusammengeführt.
>>
>> merge und binary beisst sich doch meistens... außer du erstellst deine
>> Projektberichte und wissenschaftliche Arbeiten in einem non-binary
>> Format (TeX?)
>
> Ja, hatte ich vergessen zu erwähnen! Ist praktisch alles LaTeX, darum
> klappt das auch sehr gut.

ach du Glücklicher... ;-)

von Christopher J. (christopher_j23)


Lesenswert?

Achim S. schrieb:
> Christopher J. schrieb:
>> Anders gesagt schmeckt ihnen der anderen Leute Speck in der Suppe ganz
>> hervorragend, bloß die eigene Sau, die wollen sie natürlich nicht
>> schlachten.
>
> Nein, sie möchten nicht von jemandem abhängig sein, der zwei Schritte
> weiter ist, nicht bereit ist einen zurück zu gehen und für den
>
> Bernd K. schrieb:
>> Auslachen, umdrehen und weggehen?
>
> zumindest eine Option ist.

Die Abhängigkeit ist doch jetzt schon da. Der Chef sollte froh darüber 
sein, dass er jemanden hat, der bereit ist sein Wissen zu teilen und 
weiterzugeben. Es gibt genug Leute die so eine Situation schamlos 
ausnutzen und sich für unverzichtbar erklären. Sobald jemand in die Nähe 
kommt, der auch nur von weitem so aussieht als könnte er das 
Know-How-Monopol gefährden, wird dieser dann so schnell es geht aus dem 
Team, der Abteilung oder der Firma geekelt.

Was meinst du mit "nicht bereit ist einen [Schritt] zurück zu gehen"? 
Warum sollte der TO das machen? Sollte er die Versionsverwaltung 
komplett einstellen, den anderen Recht geben, sich heimlich die Hände 
reiben und voller Freude dabei zusehen wie es dann richtig knallt?

von Possetitjel (Gast)


Lesenswert?

Christopher J. schrieb:

> Die Abhängigkeit ist doch jetzt schon da.

Ja, und das ist das Problem: Der Chef könnte ihn rein
formaljuristisch abmahnen (oder Schlimmeres), weil er
der ausdrücklichen Anweisung "keine Versionsverwaltung"
zuwidergehandelt hat.

Keine gute Situation.


> Der Chef sollte froh darüber sein, dass er jemanden
> hat, der bereit ist sein Wissen zu teilen und
> weiterzugeben.

Das, was der TO will, beeinflusst die Aufteilung der
Kompetenzen im Team. Das wäre "eigentlich" Kernfeld
des Chefs -- und viele (schlechte) Chefs sind sehr
empfindlich, wenn sich dort ein Untergebener einmischt.


> Was meinst du mit "nicht bereit ist einen [Schritt]
> zurück zu gehen"?

Chef und Kollegen nicht vor vollendete Tatsachen stellen.
Mitstreiter suchen statt Konfrontation.


> Warum sollte der TO das machen?

Weil das der erfolgversprechendere Weg ist :)


> Sollte er die Versionsverwaltung komplett einstellen, den
> anderen Recht geben, sich heimlich die Hände reiben und
> voller Freude dabei zusehen wie es dann richtig knallt?

Nein.

von A. S. (Gast)


Lesenswert?

Christopher J. schrieb:
> Was meinst du mit "nicht bereit ist einen [Schritt] zurück zu gehen"?

Ein einfacheres VCS zum Einstieg,

Wir haben SVN, aber selbst Manager ohne jeden Entwickler-hintergrund 
nutzen es, weil tortoise den Einstiegs-aufwand auf ein paar Erklärungen 
reduziert und es für Windows-nutzer nathlos ist.Ich kenne kein 
nerdfreies git-äquivalent.

von Claqueur (Gast)


Lesenswert?

Christopher J. schrieb:

> Warum sollte der TO das machen? Sollte er die Versionsverwaltung
> komplett einstellen, den anderen Recht geben, sich heimlich die Hände
> reiben und voller Freude dabei zusehen wie es dann richtig knallt?

"VCS sind also spezialisierte BackupSysteme für Softwareentwickler".

"VCS sind Gedächtnisstützen und Rettungsanker für Programmierer."

"Als Entwickler können sie mithilfe eines VCS wesentlich angstfreier 
arbeiten"

aus ISBN: 978-3-89721-567-2 S.297

-> Man braucht kein VCS um den Knall zu verhindern, durchdachtes backup 
ist ne brauchbare Alternative. Je vergesslicher und ängstlicher der 
Coder, desto mehr verlangt er nach VCS.

von Bernd K. (prof7bit)


Lesenswert?

Claqueur schrieb:
> -> Man braucht kein VCS um den Knall zu verhindern, durchdachtes backup
> ist ne brauchbare Alternative. Je vergesslicher und ängstlicher der
> Coder, desto mehr verlangt er nach VCS.

Das ist also Deine Schlussfolgerung aus diesem Buch? Lass mich raten: Du 
gehörst auch zur Verweigererfraktion und suchst verzweifelt nach 
Argumenten, und seien sie auch noch so absurd?

von Nop (Gast)


Lesenswert?

Claqueur schrieb:

> -> Man braucht kein VCS um den Knall zu verhindern, durchdachtes backup
> ist ne brauchbare Alternative.

Nicht wirklich. Konkretes Beispiel: wie durchsuchst Du denn das Backup 
z.B. nach dem Commit, welcher einen Fehler reingebracht hat? Das wäre ja 
wohl in etwa so:

- nehme den Backup-Ordner in der Mitte zwischen dem letzten "OK"-Stand 
und jetzt
- prüfe, ob es geht oder nicht
- iteriere diese binäre Suche, bis der richtige Ordner gefunden ist
- mache ein Diff zwischen diesem Ordner und dem Backup davor (Winmerge)

Da es mangels VCS ja nun keine Commits mit brauchbarem Commit-Log gibt, 
sind die Änderungen auch nicht thematisch sortiert. Dann stehst Du da 
und kannst alle Änderungen im Ordner nacheinander händisch 
durchprobieren. Noch lustiger, wenn bestimmte Änderungen 
zusammengehören, weil sonst kein Build geht (das hätte man mi VCS in 
einem Commit zusammengefaßt).

Die Folge wäre außerdem, daß man manuell die Branches und Tags von SVN 
mit der richtigen Benennung von Ordnern nachbildet. Wie immer, wenn man 
einen Ablauf automatisieren kann, dauert die manuelle Variante aber 
länger und ist anfälliger für Fehler.

Übrigens braucht man bei VCS immer noch eine Backup-Startegie, 
schließlich kann ja auch die Platte im Server sich mal zerlegen, oder 
Wasserschaden, oder Blitzschaden.

von Gästchen (Gast)


Lesenswert?

Bernd K. schrieb:
> Überzeugungsarbeit leisten? Auslachen, umdrehen und weggehen?

Warum so aufwendig? Warte einfach ab bis es knallt und es zu einem 
Problem kommt weil die Versionskontrolle fehlt. Einfach etwas Geduld 
haben.

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Backup mit history.... Ich glaub der Grund warum man VCS erfunden hat 
war daß man davon weg wollte.

von Bernd K. (prof7bit)


Lesenswert?

Achim S. schrieb:
> Ein einfacheres VCS zum Einstieg,
>
> Wir haben SVN, aber selbst Manager ohne jeden Entwickler-hintergrund
> nutzen es, weil tortoise den Einstiegs-aufwand auf ein paar Erklärungen
> reduziert und es für Windows-nutzer nathlos ist.Ich kenne kein
> nerdfreies git-äquivalent

Es gibt TortoiseGit, was die GUI angeht herrscht da also Gleichstand.

Und es muss auch keineswegs "nerdfrei" oder Manager-kompatibel sein, 
alle beteiligten Personen beherrschen fließend mehrere 
Programmiersprachen, können hochkomplexe Zusammenhänge durchschauen, wir 
sprechen hier nicht von hilflosen BWL-Krawatten. Umsomehr erstaunt es 
mich daß ausgerechnet so eine vergleichsweise simples Idee wie einem 
Dateisystem noch eine Zeitdimension (und noch eine weitere für 
alternative Zeitlinien) hinzuzufügen durch die man dann genauso simpel 
navigieren kann wie durch die räumliche angeblich so eine 
unüberwindliche Verständnishürde sein soll an der fachliche Kapazitäten 
höchsten Kalibers inakzeptabel lange zu knabbern hätten während jeder 14 
jährige Nachwuchsprogrammierer nicht das geringste Problem damit hat.

Bezüglich SVN: das ist bereits aus dem Rennen, das ist vom Verständnis 
her auch nicht einfacher als git, da wäre also nichts gewonnen, aber vom 
technischen Standpunkt und der Usability verliert es haushoch, das fängt 
schon damit an daß es zwingend einen Server voraussetzt und jede 
Operation mit einer Gedenksekunde (oder Minute) bestraft wird. So ein 
veraltetes Zeug will ich im Jahre 2018 keinem ans Bein binden. Git ist 
ausgereift und hat sich großflächig als Stand der Technik etabliert, das 
hat es nicht ohne Grund geschafft, das ist also eine sinnvolle Wahl.

: Bearbeitet durch User
von Cyblord -. (Gast)


Lesenswert?

Bernd K. schrieb:
> und hat sich großflächig als Stand der Technik etabliert, das
> hat es nicht ohne Grund geschafft, das ist also eine sinnvolle Wahl.

Selbst MS hat das nun prominent im TFS Umfeld mit eingepflegt und im 
Studio integriert.

von michi42 (Gast)


Lesenswert?

ich würde einfach mal fragen, wie man derzeit Revisionssicherheit und 
Beweisführung in einem möglichen Klagefall erreicht.

von MaWin (Gast)


Lesenswert?

Bernd K. schrieb:
> Gerade bei leichtgewichtigen DVCS wie git oder hg deren Benutzung so gut
> wie keinen Overhead erzeugen.

Von welchem Git redest du ?


https://git-scm.com/ ist keineswegs ein Leichtgewicht und zwingt bei 
jedem commit zu unendlichem Arbeitsaufwand.

Ein gutes VCS erfordert seitens des Entwicklers KEINEN Arbeitsaufwand 
beim einchecken.
Nicht mal den Aufruf eines Batch-Skriptes.

Git erfordert fetch, merge (hoffentlich geht alles glatt, den anderen 
Fall will ich gar nicht ansprechen mit den durch Diff-Marker 
zerschossenen Source-Dateien), commit, commit-Kommentar, push, für jede 
winzige Änderung (Semikolon vergessen...), schlicht kranker Wahnsinn.

von Nop (Gast)


Lesenswert?

Bernd K. schrieb:

> Es gibt TortoiseGit, was die GUI angeht herrscht da also Gleichstand.

Nein, ist es nicht. Tortoise-Git ohne CLI-Gehacke geht auf Dauer nicht, 
und Git hat ein ohne Sinn und Verstand wüst zusammengewürfeltes CLI. Es 
hat außerdem keine Abstraktion, weswegen man sich mit den 
Implementationsdetails von Git herumschlagen muß, ein typisches 
Kennzeichen schlechter Nutzerschnittstellen.

Die Anforderung, daß Programmierer gefälligst leidensfähig genug zu sein 
haben, um schlechte UIs zu tolerieren, ist vollkommen daneben. Schlechte 
UIs kosten nämlich auch mehr Zeit.

Git hat genau dann seine Stärken, wenn man mit 1000 Leuten global 
verteilt am selben Projekt arbeitet, das ist mit SVN einfach nicht 
sinnvoll möglich. Für typische Industrieprojekte mit einer Handvoll 
Entwickler, die sowieso im Intranet sind, ist Git unnötiger Overkill und 
allenfalls aus Hipstergründen vorzuziehen. Zudem möchte man sowieso ein 
zentrales Repo auf dem Server haben, was auch korrekt gebackupt wird.

Tortoise-SVN funktioniert im Gegensatz zu Tortoise-Git so, wie man sich 
das denkt. Es wird auch nie ein gutes GUI für Git geben, weil der 
Designfehler von Git der ist, daß keine Workflows definiert wurden, 
sondern Features. Ein typisches Rezept, was für Server, Protokolle usw. 
gut ist, für Anwendungssoftware aber immer schon versagt hat.

Die paar Gedenksekunden von SVN werden hundertfach wieder wettgemacht, 
sobald jemand das erstemal stundenlang rumgoogelt, wie man Git jetzt 
dazu kriegt, das zu tun, was man erwartet. Alternativ drückt man diese 
Aufgabe kurzerhand dem vehemenesten Git-Supporter in der Firma auf. 
Zusätzlich zu seinen bisherigen Aufgaben, versteht sich.

Übrigens sollte Dir die Beliebtheit von Github sehr zu denken geben. 
Wieso setzt sich ein Service durch, der das D in DVCS großteils wieder 
zunichte macht? Und wieso ist dieser nicht-Opensource-Dienst sogar bei 
Opensource-Entwicklern so beliebt bis hin zum Quasi-Monopol? Könnte es 
an der unterirdischen Benutzbarkeit liegen, die durch diese Abstimmung 
mit Füßen empirisch bestätigt wurde?

Zudem ist der Mehrwert von "kein VCS" auch nur zu CVS riesig, von CVS zu 
SVN mäßig, und (mit Ausnahme des genannten Falles von 1000 Leuten 
global) von SVN zu Git vernachlässigbar.

von Sebastian S. (amateur)


Lesenswert?

Gerade dann, wenn man alleingelassen wird, ist - nach meiner Meinung - 
Mercurial prima.

Es ist jederzeit möglich, auch ohne Netz zu arbeiten, Dein/ein 
"privates" Reposity zu nutzen und trotzdem - falls gewünscht - mit einem 
zentralen zu arbeiten. Passende Befehle sind implementiert.

Ich habe alles, was ich brauche, auf einen Stick geklatscht und mache 
nur - relativ regelmäßig - eine (Sicherheits-)Kopie. Bzw. synchronisiere 
es mit einer zweiten Version.

Dank ständig steigender Stickgrößen, habe ich bisher auch keine Probleme 
meinen Kram unterzubringen. Normalerweise reicht sogar ein etwas 
älterer.

von Martin S. (strubi)


Lesenswert?

Moin,

mal wieder bezeichnend, wie hier wieder eine Menge Laberköppe und Trolle 
die Diskussion stören. Oder sind es doch nur renitente 
Wohlfühlprogrammierer?

Bernd K. schrieb:
> Und es muss auch keineswegs "nerdfrei" oder Manager-kompatibel sein,
> alle beteiligten Personen beherrschen fließend mehrere
> Programmiersprachen, können hochkomplexe Zusammenhänge durchschauen

Das verstehe ich immer wieder nicht: Wie kann jemand, der eine Menge 
Codezeilen schreibt, auf einer IDE beharren und sich weigern, in einer 
CLI ein paar Kommandos zu tippen? Es ist auch nichts weiteres als eine 
Sprache.
Das sind für mich die Wohlfühlprogrammierer, die sich dann oft als nicht 
teamfähig rausstellen.

Ok, sind wir uns einig, das Problem ist NICHT technischer Art. Und es 
gibt nach wie vor eine Menge Firmen, die sehenden Auges auf den Abgrund 
zusteuern, weil der Chef nicht über sein Ego springen kann.

Dementsprechend würde ich mir auch anhand der Managementstrukturen und 
Arbeitsweise des Teams das richtige VCS aussuchen. DAS allgemein 
richtige VCS gibt es nicht und es nimmt einem auch nicht idiotische 
Commit-Strategien ab.

SVN hat schon noch seine Vorteile gegenüber git, aber setzt ein recht 
disziplinierte Entwicklungsstrategie voraus, die kaum einer konsequent 
durchzieht. Ab einem gewissen Schwellwert des aligen Entwickelns oder 
sowas komplexem wie Linux-Kernel-Source kommt man halt nur an git kaum 
vorbei.
Für das hybride Arbeiten gibts's halt dann noch git-svn.

Prinzipiell würde ich behaupten, dass es jeder hinbekommt, seinen 
(getesteten!) Code schlicht per
1
git pull
2
git add -u .
3
git commit -m "Hab ich geändert"

einzuchecken. Alle fortgeschrittenen Operationen sollten dann dem 
Release-Manager ('prof7bit' ? :-) ) zumutbar sein, und auch so, dass er 
sich nicht mit seinem VCS-Vorstoss zusätzliche Arbeit ans Bein bindet.

Wohlfühlcoder, die diesen pragmatischen Schritt nicht vollziehen, 
haben's in agilen Entwicklungsfirmen nach meiner Erfahrung längerfristig 
schwer.
Denn schlussendlich gilt: Zeit ist Geld.

von Steffen R. (steffen_rose)


Lesenswert?

Man sollte nicht nur den Normalfall berücksichtigen.
Gerade auch, wenn man mal etwas falsch macht, muss man aus dieser Falle 
auch wieder rauskommen. Da bin ich immer wieder froh Kollegen zu haben, 
die mir aus der Patsche helfen.

Und ich finde dies sind die Situationen, bei denen sich der Lernaufwand 
zeigt.

von Johannes S. (Gast)


Lesenswert?

für einfache Workflows reicht mir für git auch der GitHub Desktop. Damit 
zum Beispiel mal eben die Versionen und Konfigexperimente für die 
3D-Drucker Software zu verwalten bekommt man auch ohne Informatik 
Studium hin. Und es ist um Längen übersichtlicher als jede Menge 
kopierter und auskommentierter Codezeilen.
Mit so einfachen Beispielen und einem einfachen Workflow kann man sich 
gut da rein arbeiten und mit git anfreunden. Das Gute daran ist das eben 
keine externen DB Tools nötig sind, wenn GitHub nicht reicht (weil es 
das sehr mächtige git nur eingeschränkt visualisiert) kann man auch mit 
dem CLI oder anderen Tools parallel arbeiten, das sehe ich als grossen 
Vorteil.

von Paul B. (paul_baumann)


Lesenswert?

Dr. Sommer schrieb:
> Der normale Workflow ist doch, öfter mal zu
> committen, und wenn das Feature fertig ist, das in den master-Branch zu
> mergen.

Richtig. Ich versteh gar nicht, wie Leute auf die Idee kommen, nicht zu 
comitten ,vor Allem dann nicht, wenn das feature noch nicht fertig 
ist.
Wenn man das dann noch nicht einmal in den Master-Branch mergen 
will, dann ist der Workflow kaputt.

Im Ernst: Gibt es wirklich Leute, die im "normalen" Leben SO sprechen?

Irrsinn.

-Paul-

von Cyblord -. (cyblord)


Lesenswert?

Paul B. schrieb:
> Im Ernst: Gibt es wirklich Leute, die im "normalen" Leben SO sprechen?

Bitte übersetze die Aussage doch mal in ein für dich ordentliches 
Deutsch. Das Resultat wäre, dass niemand mehr versteht wovon man redet. 
Die quasi-genormten Fachbegriffe dienen einer exakten Bezeichnung ohne 
Missverständnisse. Das ist in anderen Branchen (z.B. Luftfahrt) nicht 
anders.

Aber keine Sorge, dich betrifft das sowieso nicht, außer Sprüchen hast 
du nichts drauf und als ewig gestriger kannst und willst du auch nichts 
dazulernen. Also vernüge dich mit deinen unlustigen Schmähungen. Mehr 
bleibt dir ja gar nicht.

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

MaWin schrieb:
> https://git-scm.com/ ist keineswegs ein Leichtgewicht und zwingt bei
> jedem commit zu unendlichem Arbeitsaufwand.

Bullshit! Der Windowsnutzer macht im einfachsten Falle:

Rechtsklick -> commit -> Meldung reinschreiben -> [commit] klicken.

oder wenn er nur Teile committen will:

Rechtsklick -> commit -> Häkchen wegmachen bei denen die man jetzt noch 
nicht committen will -> Meldung reinschreiben -> [commit] klicken.

Erzähl doch mal wo das einfacher gelöst ist.

Klar, auf der Kommandozeile gehts noch einfacher aber wir orientieren 
uns ja am Windows-Nutzer und die haben meist eine abweichende Definition 
von "Einfach".

: Bearbeitet durch User
von Steffen R. (steffen_rose)


Lesenswert?

Martin S. schrieb:
> Alle fortgeschrittenen Operationen sollten dann dem
> Release-Manager ('prof7bit' ? :-) ) zumutbar sein,

Richtig. Nur gibts diesen wohl in einer Firma ohne bestehender 
Versionsverwaltung noch nicht. Und die, die lernwillig sind, scheinen 
noch nicht auf einer Position zu sein, diesen Posten zu übernehmen.

von Steffen R. (steffen_rose)


Lesenswert?

Bernd K. schrieb:
> Der Windowsnutzer macht im einfachsten Falle:

Der Stress beginnt, wenn er etwas eingecheckt hat, was nicht rein 
sollte.

Alles lösbar. Brauchst du mir nicht zu erklären. Es sind aber die Fälle, 
bei denen die Neulingen Probleme haben.

von Dr. Sommer (Gast)


Lesenswert?

Bernd K. schrieb:
> alle beteiligten Personen ... können hochkomplexe Zusammenhänge
> durchschauen... . Umsomehr erstaunt es
> mich daß ausgerechnet so eine vergleichsweise simples Idee ... so eine
> unüberwindliche Verständnishürde sein soll an der fachliche Kapazitäten
> höchsten Kalibers inakzeptabel lange zu knabbern hätten während jeder 14
> jährige Nachwuchsprogrammierer nicht das geringste Problem damit hat.

Ist genauso wie mit Matlab/Simulink - für jeden Ingenieur eine 
Selbstverständlichkeit, während die programmiererfahrenen superschlauen 
Informatiker lieber mit ihren umständlichen textbasierten 
Programmiersprachen rumkrebsen!
-Duck und Wech-

von Hobby-Programmierer (Gast)


Lesenswert?

Also ich als durchaus ernsthaft programmierender Hobbyist versteh hier 
nur Bahnhof. Was zum Teufel soll Git & Co, für die es allein schon dicke 
Handbücher gibt, mir noch bringen als nur zusätzlich Aufwand? Mein Code 
für ein Projekt entwickelt sich von ersten Anfängen bis zu einer 
Endversion, da sind nicht endlos Zwischenstände separat festzuhalten und 
(im Team) zu verwalten. Mit den zwei simplen Elementen Auskommentierung 
und Windows-Ordnerstruktur bin ich doch hinreichendst bedient ?!
Ich finde man sollte sich das Leben nicht unnötig schwer machen!

von Steffen R. (steffen_rose)


Lesenswert?

Hobby-Programmierer schrieb:
> Ich finde man sollte sich das Leben nicht unnötig schwer machen!

Ich denke mal, es ist kein ernstgemeinter Beitrag.

Für Neulinge sehe ich den Vorteil, dass sie nicht ausversehen, wie bei 
den Kopierorgien, sich mal schnell eine alter Version überschreiben.

von xxx (Gast)


Lesenswert?

Martin S. schrieb:
> Das verstehe ich immer wieder nicht: Wie kann jemand, der eine Menge
> Codezeilen schreibt, auf einer IDE beharren und sich weigern, in einer
> CLI ein paar Kommandos zu tippen? Es ist auch nichts weiteres als eine
> Sprache.
> Das sind für mich die Wohlfühlprogrammierer, die sich dann oft als nicht
> teamfähig rausstellen.
>
Das ist jemand, der auch lieber Visual-Studio oder Eclipse oder ... 
nimmt anstatt vi oder was anderes uraltes.

> Denn schlussendlich gilt: Zeit ist Geld.
Dann sollte man lieber nicht git nehmen, was ich schon an komischen 
Fehlermeldungen gesehen habe, für die es letztendlich keine Lösung gab 
(ja -> Workspace neu anlegen, Änderungen einpflegen, und dann mit git 
einchecken war dann beim zweiten mal merkwürdigerweise möglich).

von Dr. Sommer (Gast)


Lesenswert?

Hobby-Programmierer schrieb:
> Mit den zwei simplen Elementen Auskommentierung
> und Windows-Ordnerstruktur bin ich doch hinreichendst bedient ?!
> Ich finde man sollte sich das Leben nicht unnötig schwer machen!
Probier's einfach mal aus, und lass dir die Versionsstände und 
Unterschiede mal mit eclipse darstellen. Es ist einfach befreiend, alle 
alten auskommentierten Codestellen furchtlos löschen zu können, weil sie 
ja in der Historie noch drin sind. Bei kniffligen Aufgaben hat man davon 
eine Menge. Gleiches gilt für radikale Umbauten des Codes - man kann 
einfach fröhlich dran rum basteln, ohne befürchten zu müssen, etwas zu 
verlieren.
Ich benutze git auch für jedes Mini-Projekt, es kostet ja nix einmal 
"git init" einzugeben.

Andreas S. schrieb:
> Wieso schaffen es Autofanatiker eigentlich niemals, über ihren eigenen
> Tellerrand bzw. das Lenkrad hinauszuschauen?
Wie kommst du auf sowas? Ich habe schon CVS, SVN und git benutzt, warum 
sollte ich mich jetzt noch extra mit Uralt-Systemen wie RCS 
auseinandersetzen? Außerdem hat FS nichts mit Autofanatikern zu tun, die 
sind mehr in Tuning-Werkstätten zu finden. FS ist teilweise innovativer 
als die Industrie...

von Johannes S. (Gast)


Lesenswert?

Hobby-Programmierer schrieb:
> Ich finde man sollte sich das Leben nicht unnötig schwer machen!

ich finde man sollte mittlerweile vor dem Programmieren lernen erstmal 
ein VCS zu Nutzen lernen.

von Nop (Gast)


Lesenswert?

xxx schrieb:

> Das ist jemand, der auch lieber Visual-Studio oder Eclipse oder ...
> nimmt anstatt vi oder was anderes uraltes.

Ach, in der MS-Welt hatte man das mit der CLI-Phase auch mal, so in den 
80ern unter DOS. Manche finden das heute noch cool. Das ist so ein 
bißchen wie Spoiler an nem Golf: die einzigen, die das cool finden, sind 
welche, die selber einen Spoiler am Golf haben. Der Rest der Welt sagt 
nur "oh mann".

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> Wie kommst du auf sowas? Ich habe schon CVS, SVN und git benutzt, warum
> sollte ich mich jetzt noch extra mit Uralt-Systemen wie RCS
> auseinandersetzen?

Ich habe nicht gesagt, dass Du mit RCS arbeiten sollst, sondern 
welches auch heute noch der Anwendungsfall für RCS ist: einzelne 
Konfigurationsdateien auf Systemen zu versionieren. Wenn Du solche 
Anforderungen nicht hast, musst Du sie auch nicht berücksichtigen. Es 
wäre aber Unsinn, zwigend Git auf einem System zum Laufen zu bringen, 
auf dem ein RCS vorhanden ist und bei dem man überhaupt keine weiteren 
Features von Git o.ä. benötigt.

> Außerdem hat FS nichts mit Autofanatikern zu tun, die
> sind mehr in Tuning-Werkstätten zu finden. FS ist teilweise innovativer
> als die Industrie...

Genau das meine ich doch. Die Arroganz und Engstirnigkeit der 
Autofanatiker. Und Formula Student gehört definitiv dazu.

von Dr. Sommer (Gast)


Lesenswert?

Andreas S. schrieb:
> Es
> wäre aber Unsinn, zwigend Git auf einem System zum Laufen zu bringen,
> auf dem ein RCS vorhanden ist und bei dem man überhaupt keine weiteren
> Features von Git o.ä. benötigt.
Es sei denn, man hat keine Lust mehrere VCS zu lernen. Die meisten 
Server z.B. sollten genug Leistung haben auch git zu verkraften.

Andreas S. schrieb:
> Genau das meine ich doch. Die Arroganz und Engstirnigkeit der
> Autofanatiker. Und Formula Student gehört definitiv dazu.
Stimmt allerdings, FS ist an vielen Hochschulen einfach das 
anspruchsvollste Projekt. Das ist nichts für Party-Studenten die einmal 
im Monat an der Hochschule sind und ohne Schritt-für-Schritt-Anleitung 
nichts zuwege bringen.

von Klartexter (Gast)


Lesenswert?

Johannes S. schrieb:
> Hobby-Programmierer schrieb:
>> Ich finde man sollte sich das Leben nicht unnötig schwer machen!
>
> ich finde man sollte mittlerweile vor dem Programmieren lernen erstmal
> ein VCS zu Nutzen lernen.

Och man kann auch gut mit Versionen arbeiten ohne ein computergestütztes 
Versionssystem einzusetzen.
Schon die Maschinenbauer vor hundert Jahren konnten easy verschiedenen 
Musterständer verwalten und zwischen diesen Up und Downgraden. das haben 
sie sich wohl von den Militärs mit Mark1, Mark2, Mark3, ... abgeschaut 
und die Olivgrünen machen das schon seit dem 19. Jahrhundert. 
Wahrscheinlich ein Kind der industriellen Massenproduktion

von A. S. (Gast)


Lesenswert?

Christopher J. schrieb:
> Was meinst du mit "nicht bereit ist einen [Schritt] zurück zu gehen"?

Ok, hier lag ich falsch. Der TO ist wohl mit git groß geworden, sicher 
auch Linux-Experte und kennt gar nichts anderes, siehe:

Bernd K. schrieb:
> Es gibt TortoiseGit, was die GUI angeht herrscht da also Gleichstand.

> Und es muss auch keineswegs "nerdfrei" oder Manager-kompatibel sein,

> aber vom technischen Standpunkt und der Usability verliert [SVN] haushoch

> zwingend einen Server voraussetzt

> Git [..] hat sich großflächig als Stand der Technik etabliert

von Johannes S. (Gast)


Lesenswert?

Klartexter schrieb:
> Schon die Maschinenbauer vor hundert Jahren

die haben auch noch mit Tusche auf Papyrus gezeichnet, wer will das 
heute noch?

von Possetitjel (Gast)


Lesenswert?

Achim S. schrieb:

> Christopher J. schrieb:
>> Was meinst du mit "nicht bereit ist einen [Schritt]
>> zurück zu gehen"?
>
> Ok, hier lag ich falsch.

???

> Der TO ist wohl mit git groß geworden, sicher
> auch Linux-Experte und kennt gar nichts anderes, siehe:

Vielleicht ist das ein Teil des Problems?

von Michael B. (laberkopp)


Lesenswert?

Hobby-Programmierer schrieb:
> Also ich als durchaus ernsthaft programmierender Hobbyist versteh hier
> nur Bahnhof. Was zum Teufel soll Git & Co, für die es allein schon dicke
> Handbücher gibt, mir noch bringen als nur zusätzlich Aufwand?

Na ja, stell dir vor, du entwickelst mit einer IDE,
da trägst du alle Quelldateien zusammen die das Projekt ausmachen und 
die IDE weiss was sie temporär und als Ergebnis daraus erzeugt.

Du überarbeitest den Code, und entdeckst irgendwann einen Fehler, und du 
fragst dich, seit wann der drin ist, das ging doch früher.

Wie einfach wäre es, jetzt in jeder Datei nachsehen zu können wann und 
welche Änderungen es gab, wie einfach wäre es, zu jedem älteren Kompilat 
automatisch die damaligen Quelldateien im Debugger zu Hand zu haben und 
nicht ein blöde IDE die rumschimpft daß sie dir den Quelltext nicht mehr 
anzeigen kann, wie einfach wäre es wenn du ein neues Programmteil 
ausprobierst, feststellst daß es Unsinn war und du gehst einfach zurück 
zum Anfang, verwirfst alle Änderungen seit dem.

Das alles kann ein Versionsverwaltungssystem sogar für den Einzelnutzer, 
der sich zudem nicht mit dem mergen von Änderungen von anderen Leuten 
rumplagen muss.

Leider funktionieren aktuelle VCS nicht so. Die haben nicht nur dicke 
Handbücher, sondern fordern von dir VOR jeder später mal möglichen 
Aktion  daß du vorauseilend und in 99% der Fälle umsonst heftig Arbeit 
aufhalst. Du musst definieren was eingecheckt wird und was nicht, obwohl 
die IDE das schon weiss. Die fordern daß jede Änderung nochmal 
eingecheckt wird, obwohl die IDE vor dem kompilieren schon automatisch 
speichert, die fordern von dir bei jedem einchecken einen Kommentar 
einzugeben obwohl der Kommentar was-warum-geändert-wurde schon im 
Quelltext steht den sie einchecken, und die fordern von dir TAGs 
anzugeben, damit du auf solche Versionen zurückgehen kannst, obwohl die 
IDE bei jedem Kompilat eigentlich von selbst einen snapshot machen 
könnte.

Aktuelle VCS sind unsäglicher Schrott, und die open source Entwickler 
sind zu dumm sich überhaupt vorstellen zu können wie es programmiert 
sein könnte. Mindestbedingung ist, daß sie in der laufenden Arbeit 
keinerlei zusätzliche Arbeit erfordern, sondern nur dann, wenn du 
wirklich mal Nutzen aus ihnen ziehen willst, also Altversionen angucken 
oder Änderungen verwerfen, und dann sollten sie die Arbeit einfacher 
machen als du es ohne sie hättest.

Das erinnert an ISAM und SQL: Beim einen Datenbanksystem musst du VORHER 
überlegen welche Abfragen hinterher mal stattfinden könnten, bei anderen 
kannst du dann wenn du musst schon die passende Anfrage formulieren und 
musst dich vorher nicht um eine eventuell mal in 2 Jahren nötige Sache 
kümmern und dich hinterher in den Arsch beissen wenn du vorher nicht 
dran gedacht hattest.

Bei Eclipse beispielsweise hätte man Compiler und VCS in einer IDE. Aber 
sie funktioniert nicht so. Sie erfordert trotzdem, jede Arbeit doppelt 
und dreifach zu machen. Ganz nebenbei ist EGit einfach nur kaputt und 
voller Bugs. Bei VSS war es etwas besser integriert.

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

Michael B. schrieb:
> Du musst definieren was eingecheckt wird und was nicht, obwohl
> die IDE das schon weiss. Die fordern daß jede Änderung nochmal
> eingecheckt wird, obwohl die IDE vor dem kompilieren schon automatisch
> speichert,

OMG, jeder fehlgeschlagene Kompilierversuch soll kommentarlos 
protokolliert werden? Nicht dein Ernst, oder?
Eingecheckt wird was funktioniert und das kann man auch in einem Satz 
kommentieren.

von Klartexter (Gast)


Lesenswert?

Johannes S. schrieb:
> Eingecheckt wird was funktioniert und das kann man auch in einem Satz
> kommentieren.

Härter: Nur was funktioniert resp "compiliert ohne Abbruch" wird 
eingecheckt,. Einfach mal einchecken weil 5 vor Feierabend macht keinen 
Sinn.

>Klartexter schrieb:
>> Schon die Maschinenbauer vor hundert Jahren

>die haben auch noch mit Tusche auf Papyrus gezeichnet, wer will das
>heute noch?

Nee, die haben die Zeichnungen für die Diesellok die deinen Arsch durch 
die Gegend schaukelt übern Plotter gejagt und die Versionsnummer 
säuberlich in das dafür gedachte Zeichnungsfeld gesetzt. 
Versionsverwaltung macht auch für nicht Codierschweine Sinn. Die sollen 
mal nicht glauben die hätten die Ingenieurskunst erfunden - haben sie 
nicht, sie äffen sie nur auf digitale Art und Weise nach. Und ob sie die 
Philosophie dahinter verstanden haben, wäre auch zu hinterfragen.

von xxx (Gast)


Lesenswert?

Michael B. schrieb:
> Leider funktionieren aktuelle VCS nicht so. Die haben nicht nur dicke
> Handbücher, sondern fordern von dir VOR jeder später mal möglichen
> Aktion  daß du vorauseilend und in 99% der Fälle umsonst heftig Arbeit
> aufhalst. Du musst definieren was eingecheckt wird und was nicht, obwohl
> die IDE das schon weiss.
(bin aber kein git Profi, ist evtl. auch falsch): git commit -a

> Die fordern daß jede Änderung nochmal
> eingecheckt wird, obwohl die IDE vor dem kompilieren schon automatisch
> speichert,
Also ich fasse mehrere Änderungen zusammen und checke dann ein, jede 
Änderung einchecken ... um Gottes willen

> die fordern von dir bei jedem einchecken einen Kommentar
Wenn man keine Lust dazu hat, gibt man halt ein Leerzeichen ein. Manche 
VCS können diesen Zwang auch übergehen mit einer - zugegeben - obskuren 
Kommandozeilenoption.

> einzugeben obwohl der Kommentar was-warum-geändert-wurde schon im
> Quelltext steht den sie einchecken, und die fordern von dir TAGs
TAGs sind immer optional und nur sinnvoll wenn man ein Release erstellt 
hat das man herausgibt. Immer TAGs machen wäre nicht sinnvoll

> anzugeben, damit du auf solche Versionen zurückgehen kannst, obwohl die
> IDE bei jedem Kompilat eigentlich von selbst einen snapshot machen
> könnte.

Warum Versionsverwaltung so sehr schlecht reden? Bei meinen Ex-Kollegen 
fand ich es am ANfang meiner "Karriere" auch schrecklich wie die Ihre 
Sourcen sicherten: Auf dem Netzwerklaufwerk ein BAK Verzeichnis, dort 
dann die Sourcen und wieder ein BAK Verzeichnis usw. Überhaupt keine 
Übersicht! Auch selbst hatten die keine Übersicht mehr nach längerer 
Zeit.
Ich hatte damals einfach für mich dann CVS verwendet (Repository auf dem 
Netzwerklaufwerk). Ein- auschecken und Versionen vergleichen, war super 
einfach. Die damaligen Kollegen hatten das dann nach und nach einfach 
übernommen (ohne Zwang und ohne meckern).

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

ich muss gestehen, ich bin einigermaßen überrascht, was manche hier von 
sich geben, im Jahr 2018...

ich wäre eigentlich davon ausgegangen, dass die (konsequente) Verwendung 
eines SCM im beruflichen Umfeld eigentlich seit 15 Jahren eine 
Selbstverständlichkeit ist... war wohl ein Irrtum. Wie kommt man ohne 
sowas an Kunden, und behält diese?

ich denke, ich muss "Musings about SCM" auf die Agenda meiner 
Bewerbergespräche setzen ;-)

und nein, ich rede nicht von supply chain management

: Bearbeitet durch User
von Possetitjel (Gast)


Lesenswert?

xxx schrieb:

> Warum Versionsverwaltung so sehr schlecht reden?

Tut er nicht. Genauer hinhören.

Er kritisiert des Userinterface, nicht Ziel, Zweck
und Leistungsumfang.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> Es sei denn, man hat keine Lust mehrere VCS zu lernen. Die meisten
> Server z.B. sollten genug Leistung haben auch git zu verkraften.

Es interessiert überhaupt nicht, dass die meisten Server hinreichend 
leistungsfähig sind, wenn das ganz konkrete System, auf dem man eine 
Versionierung von Konfigurationsdateien durchführen will, dies nicht 
bietet. Ich rede hierbei nicht von "normalen" Servern oder 
Arbeitsplatzrechnern mit einer vollwertigen Linux- oder 
Windowsinstallation, sondern (wie oben schon erwähnt) z.B. Firewalls 
oder vom Netzwerk isolierten Rechnern. Gerade bei letzteren müsste man 
ggf. einen gewaltigen bürokratischen Aufwand betreiben, um eine 
Drittsoftware zu installieren. Und warum, wenn ggf. RCS schon vorhanden 
ist, wie bei sehr vielen (Embedded) Linux oder UNIX-Derivaten.

Natürlich kann man von Party-Studenten nicht die Flexibilität erwarten, 
sich für den Alltagsgebrauch die Kommandos "ci -l", "co" und "rlog" zu 
merken.

> Stimmt allerdings, FS ist an vielen Hochschulen einfach das
> anspruchsvollste Projekt.

Das mag sicherlich zutreffen. Daraus jedoch zu schließen, dass es außer 
Autobasteln keinerlei andere Arbeitsgebiete geben darf, ist jedoch 
reichlich vermessen.

von Klartexter (Gast)


Lesenswert?

Michael R. schrieb:
> ich wäre eigentlich davon ausgegangen, dass die (konsequente) Verwendung
> eines SCM im beruflichen Umfeld eigentlich seit 15 Jahren eine
> Selbstverständlichkeit ist

"Konsequente Verwendung"?!? -OMG- ich dachte es geht um Sinnvolle 
Verwendung!

Und wenn es um Sinn und Unsinn geht, dann gibt es seit 25 Jahren keinen 
sinnvollen Grund eine neuartige Versionsverwaltungphilosophier samt 
tools auf den markt zu bringen. Trotzdem geschieht genau dass und 
irgendwelche Milchbärte drohen dann den alten Hasen mit Konsequenzen 
wenn sie nicht wie die anderen Codierschweine in der Herde auf das 
"einzig Wahre" KlickiKacki-tool setzen. Kein Wunder wenn erfahrenene 
Programmierer ihre eigenen tools/Ablagesysteme benutzen und das 
Company-tool nur zum "über die Mauer werfen" einsetzen, damit das 
Projektleiterhansel endlich Ruhe gibt.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Klartexter schrieb:
> Kein Wunder wenn erfahrenene
> Programmierer ihre eigenen tools/Ablagesysteme benutzen und das
> Company-tool nur zum "über die Mauer werfen" einsetzen, damit das
> Projektleiterhansel endlich Ruhe gibt.

Genau deswegen möchte ich...

Michael R. schrieb:
> "Musings about SCM" auf die Agenda meiner
> Bewerbergespräche setzen ;-)

diese Art "erfahrene Programmierer" möchte ich nämlich gerne 
identifizieren...

von Steffen R. (steffen_rose)


Lesenswert?

Michael R. schrieb:
> Wie kommt man ohne
> sowas an Kunden, und behält diese?

Von welchem Umfeld redest du? Ich kenne das Vorgehen ohne 
Versionsverwaltung überwiegend von Geräteherstellern mit kleiner 
Softwareabteilung. Im allgemeinen werden die älteren Versionen später 
nicht mehr benötigt.

von Possetitjel (Gast)


Lesenswert?

Michael R. schrieb:

> Genau deswegen möchte ich...
>
> Michael R. schrieb:
>> "Musings about SCM" auf die Agenda meiner
>> Bewerbergespräche setzen ;-)
>
> diese Art "erfahrene Programmierer" möchte ich nämlich
> gerne identifizieren...

...um sie dann abzulehnen, schätzungsweise. Das kann aber
auch nach hinten losgehen.

von Cyblord -. (cyblord)


Lesenswert?

Possetitjel schrieb:
> Michael R. schrieb:
>
>> Genau deswegen möchte ich...
>>
>> Michael R. schrieb:
>>> "Musings about SCM" auf die Agenda meiner
>>> Bewerbergespräche setzen ;-)
>>
>> diese Art "erfahrene Programmierer" möchte ich nämlich
>> gerne identifizieren...
>
> ...um sie dann abzulehnen, schätzungsweise. Das kann aber
> auch nach hinten losgehen.

Nein. "Diese Art" agiert in höchstem Maße unprofessionell und man kann 
sich nur versuchen so weit wie möglich von denen fern zu halten.

von Possetitjel (Gast)


Lesenswert?

Steffen R. schrieb:

> Ich kenne das Vorgehen ohne Versionsverwaltung
> überwiegend von Geräteherstellern mit kleiner
> Softwareabteilung. Im allgemeinen werden die älteren
> Versionen später nicht mehr benötigt.

Ich habe mal bei einem (sehr) kleinen Gerätehersteller
gearbeitet.

VCS wäre schon sinnvoll gewesen -- aber vielleicht
hätte man erstmal damit anfangen sollen, für JEDEN
angenommenen Auftrag ein SCHRIFTLICHES Angebot und
eine SCHRIFTLICHE Bestellung zu formulieren und an
die Bearbeiter weiterzuleiten.

Es ist nämlich nicht witzig, wenn man kurz vor dem
Versand merkt, dass man gar nicht so ganz genau
weiss, was eigentlich zu liefern ist. :/

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Steffen R. schrieb:
> Von welchem Umfeld redest du?

Guter Einwand!

Steffen R. schrieb:
> Ich kenne das Vorgehen ohne
> Versionsverwaltung überwiegend von Geräteherstellern mit kleiner
> Softwareabteilung. Im allgemeinen werden die älteren Versionen später
> nicht mehr benötigt.

Abgesehen davon dass SCM etwas mehr bietet als "alte Versionen 
aufbewahren", werden auch Gerätehersteller mit Qualitätsanforderungen 
konfrontiert sein (nehme ich zumindest mal an). SCM ist für mich in 
erster Linie ein Tool zur Qualitätssicherung (welche zumindest in meinem 
Umfeld auch auditiert wird).

Jetzt werden sich die "erfahrenen Programmierer" gleich mit Graus 
abwenden, weil die Jungs aus der QS, die mögen wir ja gar nicht... 
bringen null Umsatz, und nur Ärger...

Possetitjel schrieb:
> ...um sie dann abzulehnen, schätzungsweise. Das kann aber
> auch nach hinten losgehen.

kann sein. vielleicht hatte ich Glück, aber ich kenne niemanden der ohne 
SCM arbeiten will

von Cyblord -. (Gast)


Lesenswert?

Possetitjel schrieb:
> ...um sie dann abzulehnen, schätzungsweise. Das kann aber
> auch nach hinten losgehen.

Nein, ewiggestrige Nörgler braucht kein Mensch. Solche Leute gehören so 
gut wie nie zu den Leistungsträgern oder bringen nennenswerte Ergebnisse 
zustande und bilden sich auf ihre Mindererzeugnisse wunderwas ein. 
Gottseidank, sind solche Typen in der Minderheit, sonst wären wir ein 
übles Dritte-Welt-Land, die sollen froh sein, dass man sie mit 
durchschleppt.
Wenn das git interface so ein Graus wäre, dann hätte sich so ein 
laberkopp schon längst mal hinsetzen können und es nach seinen 
Vorstellungen verbessern, aber offensichtlich ist das für Millionen 
von Entwicklern mit unterschiedlichem Können (vom Anfänger bis zum 
Experten) und Alter kein Problem.
Der Profi kennt und nutzt das Tool was zum jeweiligen Problem am besten 
passt.

von Dr. Sommer (Gast)


Lesenswert?

Andreas S. schrieb:
> Ich rede hierbei nicht von "normalen" Servern oder Arbeitsplatzrechnern
> mit einer vollwertigen Linux- oder Windowsinstallation

Ja, das ist ein ziemlicher Sonderfall. Ich verwalte alle Konfig Dateien 
meines Servers in einem zentralen git Repo, welches dann im Gitlab auf 
selbigem Server liegt...

Andreas S. schrieb:
> Daraus jedoch zu schließen, dass es außer Autobasteln keinerlei andere
> Arbeitsgebiete geben darf, ist jedoch reichlich vermessen.

Wer tut sowas?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Possetitjel schrieb:
>> diese Art "erfahrene Programmierer" möchte ich nämlich
>> gerne identifizieren...
>
> ...um sie dann abzulehnen, schätzungsweise.

Ganz genau dafür ist diese Identifikation gedacht.

> Das kann aber auch nach hinten losgehen.

Deswegen gilt es ja, im Vorstellungsgespräch nicht nur herauszufinden, 
dass derjenige diese oder jene Methoden ablehnt, sondern warum er das 
tut. Es kann in seiner bisherigen Position ja durchaus wichtige Gründe 
geben, die den Einsatz einer bestimmten Methode verhindern. Jedoch 
sollte derjenige schon auf einer eher abstrakten Ebene erklären können, 
wo die Einsatzgebiete von Methoden liegen.

Interessanterweise ist Verbohrtheit bei solchen Dingen keine Frage des 
biologischen Alters. Bei Anfängern basiert sie darauf, dass sie noch 
nicht den Überblick über die Grenzen ihrer präferierten Methoden haben 
und die in der Ausbildung mühsam erlernten Methoden für universell 
gültig halten. Und bei Älteren liegt es häufig daran, dass sie an 
ehemals sehr erfolgreichen Methoden festhalten und nicht merken, dass 
die früheren Rahmenbedingungen nicht mehr zutreffen. Allen Altersgruppen 
gemein ist aber ggf. die mangelnde Bereitschaft, sich mit neuen Themen 
zu beschäftigen.

Ich hatte vor etlichen Jahren einen jungen promovierten Kollegen, der 
sich nach nur ca. 8 Monaten Arbeit an einem eher exotischen Thema 
(GSM-Protokollstack, Schicht 3, Supplementary Services) so sehr darauf 
fixiert hatte, dass für ihn die Welt zusammenbrach, als sein Projekt 
eingestellt wurde und er fortan an anderen Themen 
(ISDN-Protokollstackentwicklung) arbeiten sollte. Er erhob den Anspruch, 
bis zur Rente nur noch an seinem Thema arbeiten wollen. Letztendlich 
verließ er das Unternehmen, um zu einem bekannten finnischen Unternehmen 
zu wechseln. Mir ist nicht bekannt, wie er die Sache verkraftete, als 
dort auch die Telefone ausgeschaltet wurden. Womöglich musste er dort 
aber auch bei seinem Einstieg schmerzhaft lernen, dass GSM zu dem 
Zeitpunkt entwicklungsmäßig schon abgeschlossen, UMTS aktuell und LTE in 
den Startlöchern befindlich war.

von xxx (Gast)


Lesenswert?

Abradolf L. schrieb:
> Der Profi kennt und nutzt das Tool was zum jeweiligen Problem am besten
> passt.

Das passt ja eigentlich zu dem, was Andreas Schweigstill schreibt.

Problem: Bürokratie
Tool: was halt schon da ist, darf dann auch was altes sein (solange es 
nicht MKS heisst :-))

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> Ja, das ist ein ziemlicher Sonderfall. Ich verwalte alle Konfig Dateien
> meines Servers in einem zentralen git Repo, welches dann im Gitlab auf
> selbigem Server liegt...

Befindet sich das Git-Repository womöglich auf einem anderen Dateisystem 
als die wichtigsten Konfigurationsdateien (/etc o.ä.)? Wie kommst Du an 
das Repository heran, wenn sich z.B. in /etc/fstab oder der 
LVM-Konfiguration ein Fehler befindet, der dafür sorgt, dass das 
betreffende Dateisystem nicht angebunden wird?

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Andreas S. schrieb:
> GSM zu dem Zeitpunkt entwicklungsmäßig schon abgeschlossen

Nachdem er bei den Finnen ist, wird er wohl mit GSM-R bis zur Persion 
durchkommen (einer meiner größeren Kunden macht damit immer noch gutes 
Geld)

von Dr. Sommer (Gast)


Lesenswert?

Andreas S. schrieb:
> Befindet sich das Git-Repository womöglich auf einem anderen Dateisystem
> als die wichtigsten Konfigurationsdateien (/etc o.ä.)?
Nein.

Andreas S. schrieb:
> Wie kommst Du an
> das Repository heran, wenn sich z.B. in /etc/fstab oder der
> LVM-Konfiguration ein Fehler befindet, der dafür sorgt, dass das
> betreffende Dateisystem nicht angebunden wird?
Manuelles Mounten oder im allerschlimmsten Fall, über das Backup. 
Außerdem habe ich eine Working Copy in /root, welches ja normalerweise 
kein separates Dateisystem ist.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Michael R. schrieb:
> kann sein. vielleicht hatte ich Glück, aber ich kenne niemanden der ohne
> SCM arbeiten will

Vor nicht allzu langer Zeit unterhielt ich mich mit zwei Bekannten, die 
ebenfall ein Ingenieurbüro im Elektronikbereich hatten, über das Thema. 
Denen sagte Versionskontrolle usw. überhaupt nichts und prahlten damit, 
jeden Abend eine ZIP-Datei ihrer Arbeit zu erzeugen und abzulegen. Aber 
auch bei anderen Themen waren sie (vorsichtig ausgedrückt) nicht 
unbedingt auf dem neuesten Stand.

Recht unverständlich fand ich es daher, dass sie etlichen Kunden hatten, 
die den teilweise technisch veralteten und dilletantisch angefertigten 
Kram auch noch abnahmen.

von Possetitjel (Gast)


Lesenswert?

Michael R. schrieb:

> Jetzt werden sich die "erfahrenen Programmierer" gleich
> mit Graus abwenden, weil die Jungs aus der QS, die mögen
> wir ja gar nicht... bringen null Umsatz, und nur Ärger...

Naja, aber das kann doch tatsächlich die persönliche
Erfahrung der "alten Hasen" sein.

Dass sie auf die Jungs aus der QS nicht gut zu sprechen
sind, heißt doch nicht, dass sie keine Qualitätsarbeit
leisten wollen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Possetitjel schrieb:
> Michael R. schrieb:
>
>> Jetzt werden sich die "erfahrenen Programmierer" gleich
>> mit Graus abwenden, weil die Jungs aus der QS, die mögen
>> wir ja gar nicht... bringen null Umsatz, und nur Ärger...
>
> Naja, aber das kann doch tatsächlich die persönliche
> Erfahrung der "alten Hasen" sein.
>
> Dass sie auf die Jungs aus der QS nicht gut zu sprechen
> sind, heißt doch nicht, dass sie keine Qualitätsarbeit
> leisten wollen.

Es gibt einen großen Unterschied zwischen "Qualitätsarbeit leisten" und 
"Qualität messbar machen", letzteres kann durchaus lästig sein.

Eine Anekdote eines Kunden: Wir haben dort den Reklamationsprozess 
überarbeitet, und auch das Tool dafür neu entwickelt. Das Tool stand 
außer Frage, aber der neue Prozess war mit Mehraufwand verbunden. Die PA 
(=QS) hat dann (ängstlich) zu einer Vorstellung eingeladen, adressiert 
an "PA und Freunde", weil laut PA-Leiter "dann kommt keiner, weil wir 
haben keine Freunde" ;-)

von Michael B. (laberkopp)


Lesenswert?

Possetitjel schrieb:
> xxx schrieb:
>
>> Warum Versionsverwaltung so sehr schlecht reden?
>
> Tut er nicht. Genauer hinhören.
>
> Er kritisiert des Userinterface, nicht Ziel, Zweck und Leistungsumfang.

Es ist als Programmierer ganz wichtig auf keinen Fall hinzuhören und die 
begründete Kritik der (teilweise zwangsweisen) User zu verstehen, sonst 
könnte man sich nicht jeden Tag auf die Schulter klopfen welche 
grandiose Nerd-Idee man heute wieder passend zum Modetrend abliefert, 
garantiert unpassend zu allem was die User brauchen und haben wollen. 
Ganz wichtig ist auch, niemals die Software selbst zu verwenden die man 
so programmiert hat, nur das bringt den nötigen Abstand zum eigenen 
Produkt.

von NichtWichtig (Gast)


Lesenswert?

Undenkbar...

Bei uns wäre die SVN Verweigerung definitiv ein Kündigungsgrund!

1. Warnung
2. Abmahnung
3. Kündigung

ratz fatz

von Possetitjel (Gast)


Lesenswert?

Andreas S. schrieb:

>> Das kann aber auch nach hinten losgehen.
>
> Deswegen gilt es ja, im Vorstellungsgespräch nicht
> nur herauszufinden, dass derjenige diese oder jene
> Methoden ablehnt, sondern warum er das tut.

Darauf wollte ich hinaus; das kam mir bisher ein wenig
zu kurz.


> Allen Altersgruppen gemein ist aber ggf. die mangelnde
> Bereitschaft, sich mit neuen Themen zu beschäftigen.

Hmm, naja, ich will ja gerade darauf hinaus, dass es
durchaus unterschiedliche Gründe für diese mangelnde
Bereitschaft gibt.

"Neu" bedeutet in der IT leider nicht unbedingt "besser"
oder "nachhaltiger". Auch an sich nützliche neue Software
kann z.B. ein derart grausames Userinterface haben, dass
man sich damit nicht weiter beschäftigen will.


> Er erhob den Anspruch, bis zur Rente nur noch an seinem
> Thema arbeiten wollen.

Ich verstehe; ich kenne das duraus auch von mir selbst. Der
Punkt ist aber: Das hat nicht unbedingt damit zu tun, dass
man generell NEUEM gegenüber nicht aufgeschlossen wäre,
sondern sondern damit, dass man seine Begeisterung für ein
Thema nicht beliebig an- und ausknipsen kann.

von Michael B. (laberkopp)


Lesenswert?

Johannes S. schrieb:
> OMG, jeder fehlgeschlagene Kompilierversuch soll kommentarlos
> protokolliert werden? Nicht dein Ernst, oder?

Nicht nur Ernst, sondern selbstverständlich.
Bei einem guten System fällt das gar nicht auf, was er eincheckt und es 
spielt auch keine Rolle. So viel wie möglich, kann man nur sagen.

Erst beim auschecken ist relevant was man auschecken kann. Da zeichnet 
ein gutes System natürlich die erfolgreichen builds besonders: Schon 
alleienn weil sie wie es für seriöse Programmier erfoderlich ist eine 
eindeutige build-ID tragen, die natürlich eingecheckt ist, und es 
natürlich immer möglich sein muss, zu jedem gebuildeten auch die 
dazugehörigen Sourcen jederzeit wiederholen zu können. Richtig ist: Man 
braucht vermtulich niemand Zwischenstände zwischen den builds. Aber das 
ist egal ob sie drin sind, wenn das einchecken keinerlei Mühe macht.

Wir hatten sogar ein System, bei dem man bei jeder Datei undo-mässig 
jede Edieraktion bis hin zur leeren Datei rückgängig machen konnte als 
komplette Versionshistorie, die Speicheraktionen tauchten darin mit 
timestamp besonders hervorgehoben auf.

xxx schrieb:
> Also ich fasse mehrere Änderungen zusammen und checke dann ein, jede
> Änderung einchecken ... um Gottes willen
> Wenn man keine Lust dazu hat, gibt man halt ein Leerzeichen ein.

Tja ja, wenn das VCS Extraaufwand bedeutet, wird man halt nachlässig und 
umgeht es wo man nur kann.

von Possetitjel (Gast)


Lesenswert?

Abradolf L. schrieb:

> Nein, ewiggestrige Nörgler braucht kein Mensch.

Ein gefährlicher Irrtum.

von Sebastian S. (amateur)


Lesenswert?

@Andreas
>Denen sagte Versionskontrolle usw. überhaupt nichts und prahlten damit,
>jeden Abend eine ZIP-Datei ihrer Arbeit zu erzeugen und abzulegen. Aber
>auch bei anderen Themen waren sie (vorsichtig ausgedrückt) nicht
>unbedingt auf dem neuesten Stand.
Regelmäßig ein Zip-Archiv erstellen ist auch eine Art der 
Versionskontrolle. Wahrscheinlich ist der Hauptunterschied die zeitliche 
Abhängigkeit.

>Recht unverständlich fand ich es daher, dass sie etlichen Kunden hatten,
>die den teilweise technisch veralteten und dilletantisch angefertigten
>Kram auch noch abnahmen.
Ich kann nur für Mercurial sprechen, aber bisher habe ich noch kein 
einziges mal die Meldung: "Behalt doch Deinen Sch** für Dich", bekommen.

Ich gehe davon aus, das auch für die anderen Versionsverwaltungen gilt:
Was Du speicherst wird gespeichert. Ob Schei* oder Qualitätscode, ist 
wohl gleichwertig.

von Christopher J. (christopher_j23)


Lesenswert?

Possetitjel schrieb:
> xxx schrieb:
>
>> Warum Versionsverwaltung so sehr schlecht reden?
>
> Tut er nicht. Genauer hinhören.

Das sehe ich anders:

Michael B. schrieb:
> Aktuelle VCS sind unsäglicher Schrott, und die open source Entwickler
> sind zu dumm sich überhaupt vorstellen zu können wie es programmiert
> sein könnte.

Übrigens könnte man alle diese Dinge die gefordert waren, d.h. 
automatisches einchecken nach (erfolgreicher) Kompilierung, etc. ohne 
weiteres in jedes x-beliebige Makefile einbauen, so dass man das aus 
Eclipse, XYZ-Studio oder was auch immer, vollautomagisch macht. Dazu 
würde natürlich gehören, sich von seiner Verweigerungshaltung etwas frei 
zu machen, sich mit der Materie auseinanderzusetzen und das selber zu 
implementieren (mit git, hg, was auch immer), wozu die "open source 
Entwickler zu dumm sind". Mit git wäre das ein Zweizeiler, in etwa:
1
$(TARGET).elf: $(OBJ)
2
  gcc $^ -o $@
3
  git add -A .
4
  git commit -am "Ich mag keine commit-messages!"
und wenn du willst kommt eben noch ein "git push" hinzu, dann sind es 
drei Zeilen. Jetzt kannst du mit irgendeiner grafischen Oberfläche dir 
die Versionshistorie jeder Datei anschauen, zu einem alten Stand 
zurückkehren, bestimmte Revisionen (optional!) mit Tags versehen, etc. 
Ich bin zwar der Meinung, das Commit-Messages durchaus sehr sinnvoll 
sind und das "git add -A ." nicht sinnvoll ist aber soll jeder machen 
wie er meint.

von Klartexter (Gast)


Lesenswert?

Christopher J. schrieb:
> Übrigens könnte man alle diese Dinge die gefordert waren, d.h.
> automatisches einchecken
...
> etwa:$(TARGET).elf: $(OBJ)
>   gcc $^ -o $@
>   git add -A .
>   git commit -am "Ich mag keine commit-messages!"


Automatische commits ohne Kommentar sind IMHO eine Perversion der 
Versionsverwaltung.

Sinn der Vesrionsverwaltung ist doch nach Bedarf einen identifizierbaren 
Stand aus dem Archiv zurückzuholen.
Wie will man einen Stand als zurückholenswert erkennen, wenn es an einem 
Tag 20 Stände ohne erklärenden Kommentar gibt?
Warum einen Stand archivieren den niemals irgendjemand zurück holen wird 
und dessen diff zu Vorgänger und Nachfolger so aussagekräftig ist wie 
die Anzahl von halben Körnern in einem Sack Reis?

von Christopher J. (christopher_j23)


Lesenswert?

Klartexter schrieb:
> Automatische commits ohne Kommentar sind IMHO eine Perversion der
> Versionsverwaltung.

Gebe ich dir vollkommen recht und wenn ich irgendwelche Commit-Messages 
wie "first", "second", etc lese wird mir ganz übel. Deswegen schrieb ich 
ja auch

Christopher J. schrieb:
> Ich bin zwar der Meinung, das Commit-Messages durchaus sehr sinnvoll
> sind und das "git add -A ." nicht sinnvoll ist aber soll jeder machen
> wie er meint.

Es ging mir nur darum zu zeigen, dass die von Michael Bertrandt 
skizzierte Funktionsweise des (seiner Meinung nach!) bestmöglichen VCS, 
absolut problemlos mit Git nachzustellen ist und er sich daher mit der 
Aussage

Michael B. schrieb:
> Aktuelle VCS sind unsäglicher Schrott

selbst widerspricht.

von Wühlhase (Gast)


Lesenswert?

Andreas S. schrieb:
>> Stimmt allerdings, FS ist an vielen Hochschulen einfach das
>> anspruchsvollste Projekt.
>
> Das mag sicherlich zutreffen. Daraus jedoch zu schließen, dass es außer
> Autobasteln keinerlei andere Arbeitsgebiete geben darf, ist jedoch
> reichlich vermessen.

Völliger Schwachsinn...gerade wer in seinem Studium in der FS mitgemacht 
hat, weiß ganz genau wieviel mehr Arbeitsgebiete es noch gibt. Dir 
hätten ein paar Semester in so einem Projekt gutgetan-man merkt, daß du 
das nicht hattest. Schade.

Um nicht ganz OT zu sein: In der FS hatte ich überhaupt das erste Mal 
Kontakt mit Versionskontrolle. Wir haben allerdings SVN benutzt.

von Michael B. (laberkopp)


Lesenswert?

Christopher J. schrieb:
> Übrigens könnte man alle diese Dinge die gefordert waren, d.h.
> automatisches einchecken nach (erfolgreicher) Kompilierung, etc. ohne
> weiteres in jedes x-beliebige Makefile einbauen

Na ja, all die Dinge die ich für gute Useability genannt habe nicht, du 
hast dir nur ein einfaches, aber unzureichend realisiertes, rausgepickt.

Du musst bei VCS erst mal festlegen, welche Dateien eingecheckt werden, 
obwohl das ja schon im IDE Projekt steht. Also doppelte Arbeit. Auch die 
kann man automatisieren, ja, aber den Skript möchtest du bestimmt nicht 
bauen, selbst wen man sich auf eine einzige Plattform "nur Visual Studio 
Projekte" beschränkt.

Dann checkst du nach dem build alles ein, gut, aber ich schrieb schon 
"Kommentare stehen schon in code" und der sollte natürlich in der VCS 
Übersicht dann sichtbar sein. Das zu automatisieren bedeutet, in den 
geänderten Zeilen die Kommentare zu finden, mehrfach denselben nur 1 mal 
zu nutzen, eventuell von Tara zu befreien, und kompakt ins Kommentarfeld 
zu bekommen. Wenn mehr als 1 Datei und mehr als 1 Änderung dabei ist, 
macht ein häufiges Einchecken schon Sinn, und xxx Vorgehensweise "Also 
ich fasse mehrere Änderungen zusammen" eher nicht. Auch hier könnte man 
mit AWK&Co. extrahieren, viel Spass bei Erstellung der Skripte.

Kennzeichnend ist bei deinem Sktipt auch, daß kein fetch gemacht wird, 
aber vielleicht ein push. Das geht i.A. in die Hose. Ich bestehe nicht 
darauf, bei merge-Kollisionen automatisch zu branchen, obwohl ich das 
arbeitsangemessen finde, denn niemand will sich ZU DIESEM ZEITPUNKT ums 
manuelle mergen kümmern.

Aber, man wäre ja schion glücklich, wenn CVS und EGit bloss nicht so vor 
Programmierfehlern wimmeln würden, und bei EGit hat man den Eindruck als 
ob die Ersteller das Konzept nie verstanden haben, weil die 
Benutzerführung durch die Menükommandos/Dialoge eher in die Irre und zur 
Fehlbedienung verleiten, als hilfreich zu sein.

von Dr. Sommer (Gast)


Lesenswert?

Michael B. schrieb:
> Du musst bei VCS erst mal festlegen, welche Dateien eingecheckt werden,
> obwohl das ja schon im IDE Projekt steht. Also doppelte Arbeit.

Vernünftige IDE's wie Eclipse oder MSVC legen automatisch .gitignore 
Dateien an. Wenn du dann einfach alles hinzufügst, ist alles da außer 
den Build-Daten. Außerdem weiß z.B. Eclipse nicht explizit, was zum 
Projekt gehört - das nimmt einfach alle Dateien, die im Verzeichnis 
sind.

Michael B. schrieb:
> Aber, man wäre ja schion glücklich, wenn CVS und EGit bloss nicht so vor
> Programmierfehlern wimmeln würden,
Was hast du denn da für Probleme? Das einzige Problem was ich mit EGit 
je hatte war Java schuld...

von Michael B. (laberkopp)


Lesenswert?

Dr. Sommer schrieb:
> Was hast du denn da für Probleme?

Bei EGit funktioniert eine ganze Reihe der Menü-Kommandos nicht
und CVS hat ein Problem mit Gross/Kleinschreibung Dateinamen.

Dr. Sommer schrieb:
> Vernünftige IDE's wie MSVC legen automatisch .gitignore Dateien an.

https://stackoverflow.com/questions/2143956/gitignore-for-visual-studio-projects-and-solutions 
??

von Dr. Sommer (Gast)


Lesenswert?

Michael B. schrieb:
> Bei EGit funktioniert eine ganze Reihe der Menü-Kommandos nicht
Dann ist bei dir was kaputt. Mal ne aktuelle Eclipse-Version 
installiert? Das tut bei mir alles gut. Besonders hübsch find ich die 
History-Anzeige, insb. wenn "Show all Branches and Tags" an ist.

Michael B. schrieb:
> 
https://stackoverflow.com/questions/2143956/gitignore-for-visual-studio-projects-and-solutions
> ??
Wie hier schon geschrieben ist: https://stackoverflow.com/a/19625167
"here's the default one which Visual Studio 2013 RTM automatically 
generates when creating a new Git-Repository:" ... MSVC legt eine 
.gitignore an. Wenn man die nicht mag, kann man da ein 
Standard-gitignore runterladen.

Was an einer gepflegten .gitignore vorteilhaft ist: git kann automatisch 
alles löschen, was nicht zum Repo gehört (EGit: Team->Advanced->Clean) - 
so erhält man auf einen Rutsch einen sauberen Stand. Man bräuchte 
nichtmal "make clean" und das löscht auch alle anderen manuell 
angelegten Dateien.

von Christopher J. (christopher_j23)


Lesenswert?

Michael B. schrieb:
> Dann checkst du nach dem build alles ein

Das hattest du für besonders sinnvoll erachtet:

Michael B. schrieb:
> Bei einem guten System fällt das gar nicht auf, was er eincheckt und es
> spielt auch keine Rolle. So viel wie möglich, kann man nur sagen.

Was die Commit-Message angeht:
Michael B. schrieb:
> aber ich schrieb schon
> "Kommentare stehen schon in code" und der sollte natürlich in der VCS
> Übersicht dann sichtbar sein. Das zu automatisieren bedeutet, in den
> geänderten Zeilen die Kommentare zu finden, mehrfach denselben nur 1 mal
> zu nutzen, eventuell von Tara zu befreien, und kompakt ins Kommentarfeld
> zu bekommen.

Das hattest du nicht so genau beschrieben bzw. ich habe es nicht so 
verstanden wie du es meintest. Klar ist das möglich aber ich halte es 
für nicht sinnvoll, weil du nämlich in deinem Quelltext eher 
dokumentierst was du machst und warum und eben nicht, was sich zur 
letzten Revision geändert hat. Das gehört eben in die Commit-Message und 
deswegen ist es konträr zu deiner Anforderung:

Michael B. schrieb:
> Mindestbedingung ist, daß sie in der laufenden Arbeit
> keinerlei zusätzliche Arbeit erfordern, sondern nur dann, wenn du
> wirklich mal Nutzen aus ihnen ziehen willst, also Altversionen angucken
> oder Änderungen verwerfen, und dann sollten sie die Arbeit einfacher
> machen als du es ohne sie hättest.

Achja und

> Kennzeichnend ist bei deinem Sktipt auch, daß kein fetch gemacht wird,
> aber vielleicht ein push.

war bezogen auf

> Das alles kann ein Versionsverwaltungssystem sogar für den Einzelnutzer,
> der sich zudem nicht mit dem mergen von Änderungen von anderen Leuten
> rumplagen muss.

Das muss dann natürlich klar sein, dass an dem externen Repo von keiner 
anderen Person bzw. anderen Maschine etwas geändert wird, jedenfalls 
nicht in der gleichen Branch. Du kannst nicht sagen "Ich hätte gerne die 
komplette Funktionalität von Git aber bitte ohne das ich einen Finger 
krumm machen muss." Das ist wie "Wasch mich aber mach mich nicht nass."


Michael B. schrieb:
> Aber, man wäre ja schion glücklich, wenn CVS und EGit bloss nicht so vor
> Programmierfehlern wimmeln würden, und bei EGit hat man den Eindruck als
> ob die Ersteller das Konzept nie verstanden haben, weil die
> Benutzerführung durch die Menükommandos/Dialoge eher in die Irre und zur
> Fehlbedienung verleiten, als hilfreich zu sein.

Das sind alles Open-Source Projekte. Hilf den Leuten mit deinem Feedback 
und deinen Verbesserungsvorschlägen, dann werden deine Wünsche eventuell 
erhört. Die Entwickler als Idioten zu diffamieren bringt hingegen 
überhaupt nichts.

von Johannes S. (Gast)


Lesenswert?

Christopher J. schrieb:
...

wenn jemand ein Haar in der Suppe finden will dann konstruiert er sich 
es eben. (Stammt nicht von mir, Zitat C. Tönnies)

Ich denke MBs Anforderungen sind da sehr exklusiv, ich habe sowas 
jedenfalls noch nie gehört. Sowas wie git hätte ich mir schon vor 30 
Jahren gewünscht allein um mein eigenes Chaos besser in den Griff zu 
kriegen, von einer ganzen Entwicklungsabteilung ganz zu schweigen.

von Claus M. (energy)


Lesenswert?

Klartexter schrieb:
> Automatische commits ohne Kommentar sind IMHO eine Perversion der
> Versionsverwaltung.
>
> Sinn der Vesrionsverwaltung ist doch nach Bedarf einen identifizierbaren
> Stand aus dem Archiv zurückzuholen.
> Wie will man einen Stand als zurückholenswert erkennen, wenn es an einem
> Tag 20 Stände ohne erklärenden Kommentar gibt?

Sehe ich genauso.

Sinn hinter dem dauereinchecken könnte sein, dass mit Trial- und Error 
gefrickel programmiert wird. Frei nach dem Motto, tut´s nicht, probier 
ich mal was anderes. Ach jetzt geht's gar nicht mehr, schnell zurück zum 
vorherigen Stand.

von Peter Pan (Gast)


Lesenswert?

Meine Erfahrung: Ich habe es am Arbeitsplatz konsequent eingesetzt mit 
der Folge das mehr und mehr Kollegen dieses übernommen haben bzw. auf 
der Verwendung derartiger Tools aufsetzten ( Prozesse  Dokumentation  
Normen  Anforderungen  62304 etc. ).
Der alte Greis konnte irgendwann nicht mehr anders als zuzugeben das die 
Nutzung eines VCS nicht die schlechteste Idee ist.

von Sheeva P. (sheevaplug)


Lesenswert?

Bernd K. schrieb:
> Aus gegebenem Anlass: Wie ist am besten damit umzugehen wenn jemand im
> beruflichen Umfeld der auch mit Programmieren befasst ist vehement den
> Standpunkt vertritt es sei zu umständlich die Bedienung eines VCS zu
> erlernen, es "lohne" sich daher nicht. Wie geht Ihr mit sowas um?

Souverän! (SCNR)

Nein, im Ernst: bei uns käme zwar niemand auf die Idee, sich einem VCS 
zu verweigern, aber wir haben genügend andere Themen mit ähnlich 
gelagerten Verweigerungshaltungen. Es hat mich jeweils Monate an 
Überzeugungsarbeit gekostet, Valgrind, SonarCube und Selenium im Testing 
durchzusetzen, für Jenkins hatte ich glücklicherweise die Unterstützung 
einer wundervollen Kollegin. Im Moment arbeite ich daran, meine Kollegen 
davon zu überzeugen, Linuxpakete und Docker-Images für unsere 
Softwaredistribution, Redis als hochverfügbaren und horizontal 
skalierbaren Key-Value-Store zu benutzen, und hernach wird es um 
Elasticsearch, Kibana sowie Apache Storm gehen.

Meine Methode, damit umzugehen, ist eine mehrgleisige Strategie: ich 
rede zunächst mit Kollegen, die für diese Themen offen und selbst 
interessiert sind, unsere Software, QA und Methodik zu verbessern. 
Gleichzeitig spreche ich mit unseren Vertrieblern und Beratern, wo es, 
und was sie drückt. Um Probleme lösen zu können, muß ich sie möglichst 
gut verstanden haben.

Im zweiten Schritt spreche ich mit Skeptikern und Verweigerern über ihre 
Befürchtungen. Dabei ist es besonders wichtig, ihnen zuzuhören und genau 
wahrzunehmen, wo ihre Probleme liegen. Kaum weniger wichtig ist es aber, 
ihnen dabei zu kommunizieren, daß sie ernst genommen und ihre Probleme 
gelöst werden sollen, sollte es zum Einsatz der gewählten Tools kommen.

Aus den so erworbenen (Er)Kenntnissen ergibt sich, wo es an Kenntnissen 
mangelt, welche rationalen und irrationalen Befürchtungen es gibt, sowie 
welche Probleme die von mir vorgeschlagenen Lösungen lösen können, quasi 
meine "unique selling points".

Danach entwickle ich einen oder mehrere kleine, überschaubare und leicht 
verständliche Prototypen zur Demonstration, mit denen ich im Bedarfsfall 
zeigen kann: a) was ich will, funktioniert, b) es löst die Probleme X, Y 
und Z wie gewünscht, c) den Impact auf Performance und Stabilität können 
wir beherrschen, und d) der Nutzen ist größer als der Aufwand.

Nach dieser durchaus aufwändigen, zeitraubenden und häufig wegen ihres 
hohen Zeit- und Geduldsbedarfs frustrierenden Vorarbeit entwickle ich 
daraufhin zwei Präsentationen, eine nichttechnische für die GL und die 
Vertriebler und eine deutlich technischer orientierte für das mittlere 
Management und die Berater und Entwickler. Und die halte ich dann, im 
Bedarfsfalle gern auch mehrmals und in jeder gewünschten Detailtiefe.

Danach kann ich mich meistens zurücklehnen und die Kollegen 
untereinander diskutieren und kämpfen lassen. Natürlich kommen 
unterdessen immer wieder Rückfragen und oft auch gute Ideen, die ich 
noch gar nicht bedacht hatte. Hier sind vor allem Souveränität und 
Selbstbeherrschung wichtig: es gibt keine dummen Fragen, manche Dinge 
muß man eben zehnmal sagen oder gleich verständlich demonstrieren 
können.

Bisher war ich mit dieser Strategie ziemlich erfolgreich. Sie 
funktioniert allerdings nur, wenn man eine gute Vertrauensbasis zu 
seinen Kollegen hat, interne Politik eine untergeordnete Rolle spielt 
und man wirklich fit mit der vorgeschlagenen Technologie ist. Und diese 
Strategie ist wirklich sehr zeitaufwändig, oft frustrierend, und es gibt 
keine Erfolgsgarantie.

Aber am Ende ist es so, wie mein Schulfreund Jörn sagt: Menschen kann 
man nicht mit rein technischen Argumenten überzeugen, sondern nur 
emotional. Manchmal ist es ganz gut, einen studierten Sozialpädagogen zu 
haben. ;-)

Ach ja, am Rande bemerkt: steter Tropen höhlt den Stein. Es hilft, immer 
wieder über das anliegende Thema zu sprechen und dabei immer wieder die 
Vorteile der gewünschten Lösung herauszustellen. ;-)

von Sheeva P. (sheevaplug)


Lesenswert?

Abradolf L. schrieb:
> Michael B. schrieb:
> Was für Kraut baust du eigentlich in deinem Garten an?

Das kann kein Kraut sein, eher Pilze oder Chemie.

> Michael B. schrieb:
>> Aber die aktuellen Implementationen, von SourceSafe über CVS und GIT
>> sind
>
> Unglaublich, dass Millionen von Entwicklern auf dem Globus verteilt ohne
> Probleme damit umgehen können

Sein Nickname ist ja kein Zufall. ;-)

von Roland F. (rhf)


Lesenswert?

Hallo,

Sheeva P. schrieb:
> Bernd K. schrieb:
>> Wie geht Ihr mit sowas um?
>
> Souverän! (SCNR)
>
> Nein, im Ernst: bei uns käme zwar niemand auf die Idee, sich einem VCS
> zu verweigern, aber wir haben genügend andere Themen mit ähnlich
> gelagerten Verweigerungshaltungen.
> ...
> Ach ja, am Rande bemerkt: steter Tropen höhlt den Stein. Es hilft,
> immer wieder über das anliegende Thema zu sprechen und dabei immer
> wieder die Vorteile der gewünschten Lösung herauszustellen. ;-)

Beeindruckend!
Bleibt dir dann eigentlich auch noch Zeit für deine "normale" Arbeit?

rhf

von Wolfram D. (muttikaputti)


Lesenswert?

Da ist die Firmenkultur schwer im Argen. Hat dein Chef noch einen Chef?

1. Mache auf das Problem aufmerksam.
2. Halte das schriftlich fest.
3. Sei nicht diplomatisch, aber auch nicht unverschämt. Halte in jedem 
Falle ungeschminkt fest: Das Fehlen eines Versionskontrollsystem macht 
das Unternehmen zur Klitsche.

Bewirb dich aber vorher noch woanders und mache nichts ohne Fallnetz. 
Und wenn sich nichts ändern sollte, dann verlasse das Unternehmen, denn 
da ist Hopfen und Malz verloren.

Bei uns wird Versionsverwaltung seit Anbeginn genutzt, ich schätze, da 
wurde schon in den 80ern mit begonnen. Und es ist wirklich alles drin, 
was zum Projekt gehört. Das Unternehmen, in dem ich arbeite, ist zwar 
etwas chaotisch, aber in diesem Punkte wird doch ein gewisser Standard 
erhalten. Sogar das Projektmanagement legt seine Word- und 
Excel-Dokumente im CVS/SVN/Git ab. Bei ganz alten Projekten wird CVS 
genutzt, bei mittelalten SVN und bei den neuen Git.

Selbst das Unternehmen, in dem ich vorher war, hatte sein 
SVN-Repository, obwohl das Unternehmen sonst schlecht geführt war. Aber 
die haben erkannt: Die Software ist das Kapital des Unternehmens.

von Wolfram D. (muttikaputti)


Lesenswert?

Paul H. schrieb:
> b) Versuche nachzuvollziehen, wo die Verständnisprobleme bei deinem Chef
> und deinen Kollegen bestehen. Versuche ihnen durch Beispiele zu
> erklären, wo, wann und warum eine Versionskontrolle sinnvoll ist.
> Untermauere das ganze ggf. mit einer kurzen Demonstration, wie einfach
> es ist, das zu erlernen. Letzendlich kannst du ja ganz klar darlegen,
> dass man einmal ein paar Stunden an Zeit investiert und dann dauerhaft
> von der Zeitersparnis profitieren kann. Am Ende der Diskussion hast du
> die beiden entweder überzeugt oder sie überzeugen dich, in dem sie
> stichhaltige Argumente bringen. Mach das ganze nicht in der Kaffeepause
> sondern bestelle sie zu einem Termin ein.

Ich frage mich, was in dem Repository denn abgelegt werden soll. 
Dokumente an denen viele Menschen arbeiten? Software? In beiden Fällen 
braucht man ein Repository. Hat man im Unternehmen nur Dokumente, die 
man exklusiv bearbeitet, würde schon eine Backup-Lösung wie rsync 
reichen. Das Stichwort ist gemeinsam.

Ein Vorteil eines Repositories ist, dass man sehr schnell 
Backup-Lösungen entwickeln kann, denn man muss nur noch das Repository 
sichern.

Ein Vorteil einer Versionsverwaltung ist, dass man sehr schnell Rechner 
neu aufsetzen kann. Ich bekam vor einem halben Jahr einen neuen Rechner, 
der megaschnell eingerichtet war, weil das damals gegenwärtige Projekt 
in Nullkommanix auf der Platte hatte. Ich musste nur "git clone" 
aufrufen.

von Rudolf (Gast)


Lesenswert?

Sheeva P. schrieb:
> Im Moment arbeite ich daran, meine Kollegen
> davon zu überzeugen, Linuxpakete und Docker-Images für unsere
> Softwaredistribution, Redis als hochverfügbaren und horizontal
> skalierbaren Key-Value-Store zu benutzen, und hernach wird es um
> Elasticsearch, Kibana sowie Apache Storm gehen.

Was gibt Dir eigentlich die Sicherheit, daß -Du- mit Deinen Ansinnen auf 
dem richtigen Weg bist?

von Wolfram D. (muttikaputti)


Lesenswert?

Michael B. schrieb:
> Aber die aktuellen Implementationen, von SourceSafe über CVS und GIT
> sind

CVS mag ich nicht besonders im Handling, aber SVN ist doch kinderlicht, 
genauso wie Git, wobei SVN leichter zu verstehen ist.

Ich möchte noch das Augenmerk auf Mercurial legen. Finde ich einfacher 
als Git. Git ist MacGyver, Mercurial James Bond.

von ... (Gast)


Lesenswert?

Es ist interessant zu lesen, dass offenbar viele die gleichen Probleme 
haben. Wie sagt mein Chef so schön: egal in welcher Firma man arbeitet, 
die Summe der Scheiße ist konstant.

Normalerweise verstehen 90% unserer Programmierer nach 15 Minuten 
Einweisung wie Tortoise SVN funktioniert und warum es gut ist das zu 
verwenden.

Aber es gibt immer wieder "Experten", vor allem Ältere, die es so machen 
wollen, wie sie es schon immer gemacht haben. Da ersetzen dann dutzende 
Verzeichniskopien und ZIP-Files die Versionsverwaltung. Die begreifen es 
selbst dann nicht, wenn sie zu dritt an einem Projekt arbeiten und schon 
x mal Daten verloren gegangen sind, weil Änderungen nicht von allen 
kopiert wurden.

Noch härter sind dann die Programmierer, die ihre "Versionsverwaltung" 
mit ZIP-Files auf USB-Stick machen. Weil ein USB-Stick ist ja so super 
sicher.

Das "beste" was ich bisher erlebt habe war eine "Projektverwaltung" mit 
PCs. Das heißt, es wurde für jedes Projekt ein neuer PC eingerichtet und 
die Daten blieben am Ende des Projekts auf dem PC und dieser wurde dann 
ins Regal gestellt. Bis mal wieder an dem Projekt gearbeitet werden 
musste. Dann wurde der Projekt PC aus dem Regal geholt.

von Nop (Gast)


Lesenswert?

Sheeva P. schrieb:
> Im Moment arbeite ich daran, meine Kollegen
> davon zu überzeugen, Linuxpakete und Docker-Images für unsere
> Softwaredistribution, Redis als hochverfügbaren und horizontal
> skalierbaren Key-Value-Store zu benutzen, und hernach wird es um
> Elasticsearch, Kibana sowie Apache Storm gehen.

Bis man sich zu 90% mit den Tools beschäftigt und nicht mehr zum 
Arbeiten kommt. Es kann auch einen Overkill an Tools geben.

von Claqueur (Gast)


Lesenswert?

Claus M. schrieb:
> Klartexter schrieb:
>> Automatische commits ohne Kommentar sind IMHO eine Perversion der
>> Versionsverwaltung.
...
> Sehe ich genauso.
>
> Sinn hinter dem dauereinchecken könnte sein, dass mit Trial- und Error
> gefrickel programmiert wird. Frei nach dem Motto, tut´s nicht, probier
> ich mal was anderes. Ach jetzt geht's gar nicht mehr, schnell zurück zum
> vorherigen Stand.

OK, ich glaub jetztz nähert man sich dem Kern des Problems: Man kann 
eine Versionsverwaltung so benutzen das es keine Probleme löst sondern 
weitermachen lässt wie bisher aber denoch Cheffe beruhigt.

Um einen solchen sinnfreien Umgang zu verhindern, tut der TO IMHO gut 
daran eine Selbsterfahrungsübung anzusetzen und ein paar Tips 
mitzugeben:

Aufgabe:
"Hier ist ein neuer Laptop, die IT spielt die Entwicklungsumgebung auf. 
Du bearbeitest jetzt das Projekt des Kollegen der schon auf 
Versionsverwaltung ist. Zieh die Sourcen des vovorletzen Lieferstand auf 
den neuen Rechner, compilier es und mache einen binärvergleich des 
erzeugte binaries mit dem damals geliefert.en"

Umgangsregeln mit Quellcodeverwaltung:
1) Nur Sourcen und buildscripte einchecken, keine Compilate/Compiler.
(Bemerkung: Compilate insbes. Lieferstände müssen aber auch gesichert 
werden, aber nicht im SourceVerwaltungssystem. Dafür gibt es ein 
seperates Backup-System)
2) Nur compilierfähige Sourcen/Scripte einchecken
3) Aussagekräftige Commitkommentare verfassen
(Bemerkung: dazu ist es hilfreich zur Gedächtnisauffrischung vor dem 
Commit ein diff laufen zu lassen)
4) Tags/Labels nach Namensrichtlinien vergeben, Tags umfassen nicht nur 
sourcen, sondern auch zugehörige scripte/configs/versionsbeschreibende 
Doku
5) Regelmäßig (vor Lieferung sonst einmal im Monat) die Arbeitskopien 
löschen und die Sourcen mittels des pasenden Tags/Labels frisch aus der 
Versionsverwaltung holen und die oben beschriebene Aufgabe nachstellen.

Übrigens, ich bin mir sicher das auch von denen die die 
Versionsverwaltung bereits nutzen, an der Aufgabenstellung scheitern. Es 
genügt nicht vom Verhindern des "Knalls" zu sprechen, man muss den 
"Knall" auch regelmäßig als Übung durchspielen. So wie bei einem 
Feueralarm.

von Dumdi D. (dumdidum)


Lesenswert?

Claqueur schrieb:
> 5) Regelmäßig (vor Lieferung sonst einmal im Monat) die Arbeitskopien
> löschen und die Sourcen mittels des pasenden Tags/Labels frisch aus der
> Versionsverwaltung holen und die oben beschriebene Aufgabe nachstellen.

Warum solltedas gut sein? Was anderes als bei 'update' sollte da 
herauskommen?

von Claqueur (Gast)


Lesenswert?

... schrieb:

> Das "beste" was ich bisher erlebt habe war eine "Projektverwaltung" mit
> PCs. Das heißt, es wurde für jedes Projekt ein neuer PC eingerichtet und
> die Daten blieben am Ende des Projekts auf dem PC und dieser wurde dann
> ins Regal gestellt. Bis mal wieder an dem Projekt gearbeitet werden
> musste. Dann wurde der Projekt PC aus dem Regal geholt.

So macht es auch die NASA, da war mal ein Bericht über das Voyager oder 
was Pioneer boden Team - da haben aller Rechner nen Aufkleber "Nicht 
wegwerfen".
Heutige Software ist halt imkopatibel zu den Sun-Kisten von damals.

Also "Ganzen Rechner Archivieren" ist die dümmste Idee nicht. Der böser 
Hacker Kim kann sich zwar aus der Ferne in nen Server hacken und Source 
korumpieren, aber Verfahren "Regalsicherung" scheitert er schon mit 
seiner Wampe am Überklettern des Hofzaunes.

von Claqueur (Gast)


Lesenswert?

Dumdi D. schrieb:
> Claqueur schrieb:
>> 5) Regelmäßig (vor Lieferung sonst einmal im Monat) die Arbeitskopien
>> löschen und die Sourcen mittels des pasenden Tags/Labels frisch aus der
>> Versionsverwaltung holen und die oben beschriebene Aufgabe nachstellen.
>
> Warum solltedas gut sein? Was anderes als bei 'update' sollte da
> herauskommen?

Es deckt halt auf was bei "update" fehlt, nicht geht, aber nicht 
auffällt weil es lokal verhanden oder modifiziert ist.
-Nicht einegecheckte dateien,
-filelocks wegen vermeintlichen merge oder sonstige Konflikten,
-Begrenzungen des Filessystems (zu lange Pfadnamen),
-Konflikte mit fileowner
-Änderungen im Buildprozess wegen unterschiedlichen fileattributen oder 
Dateerstellungszeiten.
-ausgechecktes shellscript läuft nicht weil die Fileendung (/LF versus 
/LF /CR) modifiziert wurde
...

Auch bei der Arbeit mit Versioensmanagment gilt: "Was nicht getestete 
wurde - tut nicht".

von Wolfgang S. (ws01)


Lesenswert?

Wolfram D. schrieb:
> Ein Vorteil einer Versionsverwaltung ist, dass man sehr schnell Rechner
> neu aufsetzen kann. Ich bekam vor einem halben Jahr einen neuen Rechner,
> der megaschnell eingerichtet war, weil das damals gegenwärtige Projekt
> in Nullkommanix auf der Platte hatte. Ich musste nur "git clone"
> aufrufen.

Ich wäre der Letzte, der originelle Nutzungen von Mercurial oder Git 
kritisieren würde.  Aber genau so, wie es bessere Backuptools als 
ausgerechnet die DVCS gibt - man denke nur an die Probleme mit größeren 
Dateien und mit nicht textuell diffbaren -, gibt es auch für diese 
Aufgabe bessere und einfachere.  Konkret, wenn ich sehr schnell Rechner 
neu aufsetzen möchte, dann benutze ich Ansible.

Da gibt es sogar Module für die meisten (D)VCS

http://docs.ansible.com/ansible/latest/list_of_source_control_modules.html

Beispiel aus 
http://docs.ansible.com/ansible/latest/hg_module.html#examples
1
# Example just get information about the repository whether or not it has
2
# already been cloned locally.
3
- hg:
4
    repo: git://bitbucket.org/user/repo
5
    dest: /srv/checkout
6
    clone: no
7
    update: no

von Nop (Gast)


Lesenswert?

Dumdi D. schrieb:

> Warum solltedas gut sein? Was anderes als bei 'update' sollte da
> herauskommen?

Ich hab's schon erlebt, daß so ein Vorhaben gescheitert ist, weil jemand 
die Projekt-Settings der IDE vergessen hat mit einzuchecken. Dummerweise 
hat die verwendete IDE aus diesen Settings den Startupcode automatisch 
generiert.


Claqueur schrieb:
> 1) Nur Sourcen und buildscripte einchecken, keine Compilate/Compiler.

Man kann auch die Compilate mit einchecken, das ist Geschmackssache. Das 
macht man aber nur bei Lieferständen, die an irgendwen gehen, und sei es 
ans Testfeld.

> 2) Nur compilierfähige Sourcen/Scripte einchecken

Unbedingt. Ich krieg nen Hals, wenn ich "update" mache und dann nichtmal 
ein Build geht, weil der Kollege das nicht getestet hat.

> 3) Aussagekräftige Commitkommentare verfassen

Das hilft spätestens, wenn man tracken will, mit welchem Commit ein 
Fehler reingekommen ist. Daher bin ich auch gegen automatische Commits, 
weil dann kein brauchbares Log mehr da ist.

Man muß nur aufpassen, daß man nicht aus Faulheit zu Monster-Commits 
neigt. Ich mach das so, daß ich committe, wenn ich ein Feature 
implementiert oder einen Bug behoben habe und bevor ich mich ans nächste 
mache. Daher können zu einem Commit auch mehrere Dateien gehören.

von Michael B. (laberkopp)


Lesenswert?

Claqueur schrieb:
> Umgangsregeln mit Quellcodeverwaltung

Irgendwo hab ich das schon mal gelesen, lass mich nachdenken, das muss 
in einer Werbebroschüre über das theoretische Phantasieleben gewesen 
sein.

Claqueur schrieb:
> 1) Nur Sourcen und buildscripte einchecken, keine Compilate/Compiler.
Geil, geht spätestens in die Hose, wenn mal wieder ein Auto-Update den 
Compiler so erneuert hat, daß er alte Sourcen nicht kann. Sehr schön 
z.B. bei Java, auf der Insel leben bekanntlich die Wahnsinnigsten. 
Richtig ist: Normalerweise ändert sich die Arbeitsumgebung seltendst. 
Also ist gerade dabei ein einchecken unproblematisch, weil nur seltendst 
Daten übertragen werden. Da man aber auch altes mit neuem Comöiler 
bearbeiten will, müssen das 2 verschiedene Repositories sein. Damit man 
dann aber doch das zusammengehörige erkennt, ist ein TIMESTAMP die 
wichtigste Orientierung.

> 2) Nur compilierfähige Sourcen/Scripte einchecken
Für Laien die nur auf einer Plattform entwickeln mag man denken daß das 
reicht. Andere wissen nicht, was der nightly build heute auf den 5 
anderen PLattformen daraus macht und zu bemeckern hat.

> 3) Aussagekräftige Commitkommentare verfassen
Supi. Du bist der Überflieger, der heuite weiss nach was morgen gesucht 
wird. Nein, auch du bist das nicht, also merken: Du weisst heute nicht, 
was morgen wichtig ist, daher KANN man hier nicht das später gesuchte 
schreiben. Es steht dir aber frei, vor jedem commit 2 Tage brainstorming 
nach der aussagekräftigsten Kommentarzeile zu machen.

> 4) Tags/Labels nach Namensrichtlinien vergeben
Geil-o-mat. Wer nie ein langlebiges Projekt hatte, weiss nicht, daß sich 
Richtlinien wie Säue in Dörfern verhalten.

> 5) Regelmäßig
Sich regelmässig Arbeit machen ? Hast du nichts wirkliches zu tun ? Wenn 
das nicht automatisiert ist, hat der Anwender wohl den Schuss nicht 
gehört.

: Bearbeitet durch User
von Wolfgang S. (ws01)


Lesenswert?

Nop schrieb:

> Daher können zu einem Commit auch mehrere Dateien gehören.

Nur zur Ergänzung: Das würde ich als Fazit nicht so formulieren, weil 
das so klingt, als würde es eine Ausnahme beschreiben.

Denn es ist ja eine der wichtigen Neuerungen moderner VCS, daß sie nicht 
dateiorientiert arbeiten, sondern auf Changesets basieren, die i.d.R. 
alle versionierten, modifizierten Dateien des Directorytrees in einem 
atomaren Commit zusammenfassen, was dann eben einen neuen Changeset in 
der Historie des Repositories ergibt.

Ideal, wenn auch nicht immer so sauber durchzuhalten, ist es, wenn sich 
Commits auf vollständige - zumindest theoretisch funktionsfähige, lokal 
getestete ... - in sich logisch geschlossen Veränderungen beziehen. Also 
etwas, das man mit einer Commit-Message beschreiben kann, was sich auf 
einen Fehler oder eine separat implementierbare Funktion etc. 
beschränkt. Commits, die unfertige Zwischenzustände darstellen, sollte 
man zu vermeiden versuchen.

von M. S. (nickfisher)


Lesenswert?

naja wenn die leute kein VCS benutzen: mach einfach code kaputt und dann 
such nach dem schuldigen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Wolfgang S. schrieb:
> Commits, die unfertige Zwischenzustände darstellen, sollte
> man zu vermeiden versuchen.

Das würde ich so nicht unterschreiben: es könnte falsch verstanden 
werden.

Grundsätzlich hast du recht, ein Commit sollte eine Erweiterung, eine 
Fehlerkorrektur, ein abgearbeitetes "Ticket" darstellen.

ABER: sobald die Arbeit daran die "Tagesgrenze" überschreitet, würde ich 
committen (mit entsprechendem Log-Eintrag, "Ticket 4711: Enhancement of 
xy (in progress)")

Ein weiterer Fall, der mich leider recht häufig trifft: Man arbeitet 
seit 4 Stunden an einem Prio-3-Ticket, dann kommt eins mit Prio 1 rein, 
dummerweise sind dieselben Dateien betroffen. Dann mach ich einen 
"progress" commit, arbeite mein Prio-1-Ticket ab, committe dieses (und 
hab damit ein sauberes Changeset, welches sich auch portieren lässt) und 
arbeite dann am anderen Ticket weiter.

Das ist auch der Grund, warum ich mit der heutigen Bedeutung von 
"Changeset" nicht ganz glücklich bin: Heute meint man "ein Commit" wenn 
man Changeset sagt. Für mich kann ein Changeset auch mehrere Commits 
umfassen, diese mehreren Commits werden dann beim Portieren zwischen 
branches (development, 1st/2nd level test, production) gemeinsam 
behandelt. Üblicherweise nimmt dann die Anzahl der Commits pro Changeset 
auch ab, je näher zum Produktivsystem man sich befindet.

von Dumdi D. (dumdidum)


Lesenswert?

Claqueur schrieb:
> Es deckt halt auf was bei "update" fehlt, nicht geht, aber nicht
> auffällt weil es lokal verhanden oder modifiziert ist. -Nicht
> einegecheckte dateien, -

Wobei die dann ja vorher geloescht werden (vermutlich meinyest Du 
backupen vor loeschen?)

von M. S. (nickfisher)


Lesenswert?

@fisa: ein branc pro ticket und dann Squashen. Dann kannst du schön Work 
in progress commits machen und die am ende als einen vollständigen 
commit in den master mergen (oder wohin auch immer). Das hält das 
Commitlog ordentlich und sorgt dafür, das der haupt branch immer 
funktionsfähig ist!

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Simon S. schrieb:
> @fisa: ein branc pro ticket und dann Squashen. Dann kannst du schön Work
> in progress commits machen und die am ende als einen vollständigen
> commit in den master mergen (oder wohin auch immer). Das hält das
> Commitlog ordentlich und sorgt dafür, das der haupt branch immer
> funktionsfähig ist!

"squash" scheint ein git-Begriff zu sein, damit kann ich grad nichts 
anfangen (wir setzen Subversion ein)

ein branch pro Ticket ist unrealistisch, dafür gibts a) zu viele Tickets 
b) zu viele long-term Tickets mit Laufzeiten von mehreren Monaten c) zu 
viele beteiligte Systeme/Umgebungen d) zu viele Abhängigkeiten zwischen 
den Tickets.

Wir machen keine (bzw. wenig) "klassische" SW-Entwicklung, sondern 
primär Customizing / Erweiterung einer Standardlösung. "Source-Code" 
sind bei uns Skripte, C#, SQL-Procedures/Scripts/Trigger, Konfig-Files, 
JSON, XML, ...

Definiere "master" oder "haupt-branch". Wie ich schon angedeutet habe: 
Es gibt ein oder mehrere Entwicklungssysteme, ein bis zwei Testsysteme 
(zumindest eins beim Kunden) und (in der Regel) ein Produktivsystem. 
Welches ist deiner Meinung nach der "Haupt-Branch" und der "Master"?

Grundsätzlich haben wir die Prozesse gut im Griff, aber das bessere ist 
der Feind des Guten :-)

von Wolfgang S. (ws01)


Lesenswert?

Michael R. schrieb:
> Wolfgang S. schrieb:
>> Commits, die unfertige Zwischenzustände darstellen, sollte
>> man zu vermeiden versuchen.
>
> Das würde ich so nicht unterschreiben: es könnte falsch verstanden
> werden.
>
> Grundsätzlich hast du recht, ein Commit sollte eine Erweiterung, eine
> Fehlerkorrektur, ein abgearbeitetes "Ticket" darstellen.
>
> ABER: sobald die Arbeit daran die "Tagesgrenze" überschreitet, würde ich
> committen (mit entsprechendem Log-Eintrag, "Ticket 4711: Enhancement of
> xy (in progress)")

Danke für die Ergänzung. Tatsächlich arbeite ich auch so, wenn es sich 
nicht vermeiden läßt. Selbst dann versuche ich aber, so etwas wie einen 
verständlichen Zwischenzustand zu erreichen, und sei es, indem ich für 
den Commit dann einzelne Änderungen nicht in den Commit übernehme.

Etwas verallgemeinert, ein (D)VCS hilft enorm, die vielen Fäden, die man 
in der Hand hat, besser zu überblicken.  Es hilft aber auch, sein 
Vorgehen, konkret die Aufteilung der bearbeiteten Software in was immer 
die verwendeten Sprachen als Sprachmittel für die Aufteilung in Dateien 
und in Zeilen zuläßt, so zu strukturieren, daß diese mit dem VCS und 
nicht gegen es arbeitet. Disclaimer: niemand behauptet, daß das trivial 
sei.


>
> Ein weiterer Fall, der mich leider recht häufig trifft: Man arbeitet
> seit 4 Stunden an einem Prio-3-Ticket, dann kommt eins mit Prio 1 rein,
> dummerweise sind dieselben Dateien betroffen. Dann mach ich einen
> "progress" commit, arbeite mein Prio-1-Ticket ab, committe dieses (und
> hab damit ein sauberes Changeset, welches sich auch portieren lässt) und
> arbeite dann am anderen Ticket weiter.

Da sich beide Tickets ja auf einen bereits vorhandenen und publizierten 
Changeset beziehen dürften, wäre es ggfs. einfacher, in einem weiteren 
Clone des Repository diesen Stand auszuchecken, den Fehler dort zu 
korrigieren, das dann - je nach Projektorganisation - zu 
testen/publizieren/weiterzugeben und nachher seine Arbeit an dem 
Prio-3-Ticket im alten Clone wieder aufzunehmen. Wie man nachher den 
notwendigen Merge macht, hängt von unbekannten Details ab.

M.a.W. Du wirst, wenn mehrere Leute am gleichen Code arbeiten, nach 
Abarbeiten des einen Tickets eh' erst den Stand des oder der anderen 
Repositories (i.d.R. wohl ein zentrales) importieren und mergen müssen, 
bevor Du Dir das nächste vornimmst.  Genau so kannst Du auch vorgehen, 
wenn ein vordringliches Ticket Deine Arbeit unterbricht.

>
> Das ist auch der Grund, warum ich mit der heutigen Bedeutung von
> "Changeset" nicht ganz glücklich bin: Heute meint man "ein Commit" wenn
> man Changeset sagt. Für mich kann ein Changeset auch mehrere Commits
> umfassen, diese mehreren Commits werden dann beim Portieren zwischen
> branches (development, 1st/2nd level test, production) gemeinsam
> behandelt. Üblicherweise nimmt dann die Anzahl der Commits pro Changeset
> auch ab, je näher zum Produktivsystem man sich befindet.

Es gibt - in Mercurial, vermutlich aber auch in Git - eine ganze Reihe 
von Erweiterungen, es gibt Plattformen wie GitHub,  die m.E. ein Indiz 
dafür sind, daß die z.Zt. populären DVCS noch reichlich Luft nach oben 
haben. Andererseits kommen wir dann bald in den Bereich, der im Jargon 
"Change Management" genannt wird, und irgendwann dann auch 
"Configuration Management". Mir sind ehrlich gesagt die Tools lieber, 
die nur eine Problemstellung behandeln, die aber richtig und so, daß sie 
leicht für lokale Workflows einerseits gut erweiterbar und andererseits 
einbaubar sind.

Wirklich gute Versionskontrollsysteme müssten auch die Syntax und 
Semantik der Sprachen verstehen, in denen die verwalteten Items 
formuliert sind, incl. der verwendeten Typen, der irgendwie in den 
Metadaten abgelegten Datenflüsse. Und das sprachübergreifend.   Ich 
glaube nicht, daß wir in den nächsten zehn Jahren dergl. haben werden, 
insofern bin ich ganz glücklich, daß sich immerhin ein paar VCS 
durchgesetzt haben, die das ganze wenigstens agnostisch auf der Ebene 
von Zeilen, Dateien und Mengen von Dateien ganz gut hinbekommen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Wolfgang S. schrieb:
> Danke für die Ergänzung. Tatsächlich arbeite ich auch so, wenn es sich
> nicht vermeiden läßt. Selbst dann versuche ich aber, so etwas wie einen
> verständlichen Zwischenzustand zu erreichen

Bis hierher sind wir uns einig...

Wolfgang S. schrieb:
> indem ich für
> den Commit dann einzelne Änderungen nicht in den Commit übernehme.

Darauf steht bei uns "hanged, drawn and quartered" ;-) Hauptsächlich 
deswegen, weil man (leider) mal für länger raugerissen sein kann, und 
ein Kollege übernimmt.

Wolfgang S. schrieb:
> Andererseits kommen wir dann bald in den Bereich, der im Jargon
> "Change Management" genannt wird, und irgendwann dann auch
> "Configuration Management"

Da hab ich gewisse Vorteile: genau diese CM-Prozesse entwickeln und 
implementieren wir mit und für unsere Kunden. Da gibts ganz ganz 
spannende Synergie-Effekte: Warum macht der Kunde das so und so, warum 
der nächste anders, was kann ich für uns (und den dritten Kunden) daraus 
lernen?

Es ist unheimlich spannend wie sich verschiedene Branchen (zB Railway 
und Luftfahrt) hier auf den ersten Blick grundlegend unterscheiden, auf 
den zweiten Blick dann aber doch wieder eine ähnliche Denke haben.

Aus meiner Sicht bieten genau diese Erfahrungen des "CMII" unheimlich 
viel Potential für die SW-Branche. Das ist aber eine Prozess-Frage, und 
keine Tool-Frage.

Nichtsdestotrotz: ohne ein SCM-Tool geht erstmal gar nichts.

von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Überzeugungsarbeit leisten? Auslachen, umdrehen und weggehen? Ignorieren
> und Thema wechseln? Ich bin echt am Ende mit meinem Latein, über den
> Chef kann ich nicht gehen (will ich auch nicht) denn der ist der selben
> Meinung ("lohnt" sich nicht [für ihn]) und fällt mir damit quasi auch
> noch öffentlich in den Rücken statt mit gutem Beispiel voranzugehen.

So, der Rest der Welt will nicht so, wie du es willst?

Könntest du eventuell den Gedanken ins Auge fassen, daß dein Chef 
möglicherweise einen weiteren Horizont hat als du und daß er genau 
deswegen dir sagt, daß es sich nicht lohnt?

Ich kann solche Meinungen wie "ein Versionskontrollsystem ist IMMER!! 
gut und wer das nicht sofort einsieht, ist ein Idiot!" nicht leiden, 
weil es einen Mangel an Intellekt desjenigen erkennen läßt, der sowas 
sagt.

Du schriebest: "wenn jemand im beruflichen Umfeld der auch mit 
Programmieren befasst ist vehement den Standpunkt vertritt es sei zu 
umständlich die Bedienung eines VCS zu erlernen..."

Daraus schließe ich, daß derjenige nicht nur mit Programmieren, sondern 
vornehmlich mit ganz anderen Dingen in der Firma befaßt ist - und zwar 
mit Dingen, von denen DU zu wenig weißt und verstehst, um darüber so 
hochnäsig zu urteilen, wie du es in Eröffnungspost getan hast.

Also:
1. Gehört das Programmieren nun zu den Kernpflichten des Kollegen?

2. Ist es im konkreten Falle wirklich nachrechenbar, daß ein VCS einen 
wirtschaftlichen Vorteil hat, oder ist es lediglich etwas künstlich 
Draufgesetztes, was außer deine persönlichen Ansichten zu befriedigen, 
nichts wirklich bringt? Was sagt der BWL'ler (und nicht der 
Programmierer) dazu?

3. Wärest DU nicht vielleicht derjenige, der sich um ein VCS zu 
kümmern hätte und nicht dein Kollege?

4. Warum gibt es bei euch in der Firma kein sauberes Agreement über die 
hoffentlich ebenso saubere Aufteilung der Arbeit? Das würde nämlich 
bedeuten, daß es verläßliche und gutdokumentierte Schnittstellen 
zwischen den Arbeiten der einzelnen Mitarbeiter gibt, anhand deren man 
sich sicher sein kann, daß das, was man an Funktionalität aus der Arbeit 
des Kollegen benutzt, eben sauber funktioniert und basta! Und wenn es 
irgendwo eine Erweiterung geben muß, dann wird diese zuerst 
durchdiskutiert und auf Probleme abgeklopft, dann so dokumentiert, daß 
man sich drauf verlassen kann und erst dann vom zuständigen Kollegen 
implementiert. Für sowas ist ein VCS herzlich überflüssig, stattdessen 
braucht es ein wohlgeführtes Projektmanagement und das ist was ganz 
Anderes.

Ich habe eher den Eindruck, daß du dich hier ziemlich verrannt hast, 
bloß weil irgend etwas nicht ganz so läuft, wie deine eigene Nase zeigt. 
Versuche daher mal, dir die obigen Fragen in aller Ruhe selbst zu 
beantworten. Bedenke mal, daß du auch hier im Forum des Öfteren schon 
herumgemotzt hast, ohne dabei die Argumente anderer gebührend abzuwägen.

W.S.

von Nikolas (Gast)


Lesenswert?

Ich bin mal ein wenig neugierig: Welche Versionsverwaltungssysteme 
werden denn bei euch im Unternehmen eingesetzt? Git und SVN wurden ja 
schon als Systeme genannt, aber vielleicht gibt es ja auch "exotische" 
Systeme?

Was nutzt man denn beispielhaft im Automotive oder Medizin-Bereich? Git 
kann ich mir da ja schwer vorstellen...

Nikolas

von Cyblord -. (Gast)


Lesenswert?

Nikolas schrieb:
> Medizin-Bereich? Git
> kann ich mir da ja schwer vorstellen...

TFS (TFVC), wird aber vermutlich langfristig in TFS mit Git statt TFVC 
wandern, da letzteres einen langsamen Tod zugunsten von Git stirbt. 
Ältere Projekte liegen und bleiben in ClearCase.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

... schrieb:
> Das "beste" was ich bisher erlebt habe war eine "Projektverwaltung" mit
> PCs. Das heißt, es wurde für jedes Projekt ein neuer PC eingerichtet und
> die Daten blieben am Ende des Projekts auf dem PC und dieser wurde dann
> ins Regal gestellt. Bis mal wieder an dem Projekt gearbeitet werden
> musste. Dann wurde der Projekt PC aus dem Regal geholt.

In der Zeit vor Programmen wie VMware o.ä. war das leider ein durchaus 
praktikabler Weg, weil man nur so für eine einigermaßen konsistente 
Buildumgebung sorgen konnte.

von Claqueur (Gast)


Lesenswert?

Nikolas schrieb:

> Was nutzt man denn beispielhaft im Automotive oder Medizin-Bereich? Git
> kann ich mir da ja schwer vorstellen...


So mein Erfahrungsbereich:
Rational Clearcase    -> Avionic
Perforce              -> Automotive
PTC (ehemals PTC) Integrity -> Automotive, Medizin


svn, rcs, cvs kennt man von Firmen, die kein geld vür Versionsverwaltung 
locker machen.

von Claqueur (Gast)


Lesenswert?

Claqueur schrieb:

> PTC (ehemals PTC) Integrity -> Automotive, Medizin

soll heissen:

PTC (ehemals MKS) Integrity -> Automotive, Medizin


Da mal die wiki-links für diese:
https://en.wikipedia.org/wiki/MKS_Integrity
https://de.wikipedia.org/wiki/Rational_ClearCase
https://de.wikipedia.org/wiki/Perforce

von Nikolas (Gast)


Lesenswert?

Claqueur schrieb:
> PTC (ehemals MKS) Integrity -> Automotive, Medizin

Wird bei mir im Unternehmen (Defence-Bereich) verwendet. Von den 
Kollegen und mir wird es gerne als MehrKostenSystem bezeichnet, weil 
einfache Arbeitsabläufe dort schwierig durchzuführen sind. Das liegt 
aber sicherlich nicht an dem Tool selbst, sondern daran, dass die 
betreuende Abteilung versucht (hat) im Tool ein Schema aus dem 
Vorgängersystem abzubilden, welches das Tool nicht wirklich hergibt.

Etwas nervig ist, dass man Dateien wie in CVS auschecken muss, damit man 
sie bearbeiten kann oder man nimmt manuell das Schreibgeschützt-Attribut 
für die entsprechende Datei über den Windows-Explorer weg.

von Sheeva P. (sheevaplug)


Lesenswert?

Roland F. schrieb:
> Beeindruckend!
> Bleibt dir dann eigentlich auch noch Zeit für deine "normale" Arbeit?

Ja, natürlich. Zudem ist das ein Teil meines Arbeitsauftrages und somit 
Teil meiner normalen Arbeit. Zum Glück habe ich nämlich einen Chefchef, 
der sehr genau weiß, daß wir in manchen Bereichen etwas rückständig 
sind.

von Sheeva P. (sheevaplug)


Lesenswert?

Rudolf schrieb:
> Sheeva P. schrieb:
>> Im Moment arbeite ich daran, meine Kollegen
>> davon zu überzeugen, Linuxpakete und Docker-Images für unsere
>> Softwaredistribution, Redis als hochverfügbaren und horizontal
>> skalierbaren Key-Value-Store zu benutzen, und hernach wird es um
>> Elasticsearch, Kibana sowie Apache Storm gehen.
>
> Was gibt Dir eigentlich die Sicherheit, daß -Du- mit Deinen Ansinnen auf
> dem richtigen Weg bist?

Die Tatsache, daß wir von unseren Kunden zwar immer wieder auf diese 
Themen angesprochen werden -- Paketierung, Docker, Hochverfügbarkeit, 
horizontale Skalierbarkeit -- aber bislang entweder nichts oder nur 
unprofessionelle Bastellösungen liefern können. Und natürlich mein 
Chefchef, der sehr genau weiß, daß wir in manchen Bereichen Aufholbedarf 
haben, und mich deswegen ausdrücklich damit beauftragt hat, etwas 
dagegen zu tun.

Um der nächsten Rückfrage gleich vorzubeugen: natürlich könnte mein 
Chefchef einfach anordnen, daß dies oder jenes Werkzeug benutzt wird. 
Aber irgendwer müßte die in Frage kommenden Werkzeuge ja trotzdem 
evaluieren und dann das Passende empfehlen -- und zudem gehört es zu 
unserer Firmenkultur, mit Überzeugung statt mit Anordnungen zu arbeiten, 
zumal meine Kollegen ja alle keine Dummköpfe oder Faulpelze sind.

von Sheeva P. (sheevaplug)


Lesenswert?

Nop schrieb:
> Sheeva P. schrieb:
>> Im Moment arbeite ich daran, meine Kollegen
>> davon zu überzeugen, Linuxpakete und Docker-Images für unsere
>> Softwaredistribution, Redis als hochverfügbaren und horizontal
>> skalierbaren Key-Value-Store zu benutzen, und hernach wird es um
>> Elasticsearch, Kibana sowie Apache Storm gehen.
>
> Bis man sich zu 90% mit den Tools beschäftigt und nicht mehr zum
> Arbeiten kommt. Es kann auch einen Overkill an Tools geben.

Für manche Entwickler mag es eine ganz neue Erkenntnis sein, aber 
letztlich kann man eine Software nur dann verkaufen, wenn sie die 
Bedürfnisse des Kunden befriedigt und dessen Probleme löst. Da wir das 
in einigen Bereichen derzeit noch nicht oder nur sehr rudimentär können, 
haben wir genau zwei Optionen: entweder, selbst etwas zu entwickeln 
(klassisches NIH), oder auf etablierte Industrielösungen zu setzen. 
Rate, was mehr Aufwand ist. ;-)

von M. S. (nickfisher)


Lesenswert?

Michael R. schrieb:
> Definiere "master" oder "haupt-branch". Wie ich schon angedeutet habe:
> Es gibt ein oder mehrere Entwicklungssysteme, ein bis zwei Testsysteme
> (zumindest eins beim Kunden) und (in der Regel) ein Produktivsystem.
> Welches ist deiner Meinung nach der "Haupt-Branch" und der "Master"?
>
> Grundsätzlich haben wir die Prozesse gut im Griff, aber das bessere ist
> der Feind des Guten :-)

http://nvie.com/posts/a-successful-git-branching-model/

Sowas in der art passt denke ich.

Master=Produktivsystem
Release=Testsystem bei euch und beim kunden
Develop=Testsystem bei euch
Feature=Entwicklungssysteme

von Nop (Gast)


Lesenswert?

Claqueur schrieb:

> svn, rcs, cvs kennt man von Firmen, die kein geld vür Versionsverwaltung
> locker machen.

Wenn SVN für den Aufgabenbereich paßt, gibt es auch keinen Grund, Geld 
auszugeben. Was da bei Git übrigens ein ziemlicher Blocker sein kann: 
man kann damit die History "bereinigen".


Sheeva P. schrieb:
>  Da wir das
> in einigen Bereichen derzeit noch nicht oder nur sehr rudimentär können,
> haben wir genau zwei Optionen: entweder, selbst etwas zu entwickeln
> (klassisches NIH), oder auf etablierte Industrielösungen zu setzen.
> Rate, was mehr Aufwand ist. ;-)

Klar, wenn die Tools Features abbilden, die der Kunde anfordert und 
bezahlt (bzw. ansonsten abspränge), ist das was ne andere Hausnummer. 
Und klar ist das NIH-Syndrom dann ein Problem - man kriegt nach Abzug 
der natürlichen Fluktuation für hausinterne Tools immer so schwer Leute 
am Markt. ;-)

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Simon S. schrieb:
> Master=Produktivsystem
> Release=Testsystem bei euch und beim kunden
> Develop=Testsystem bei euch
> Feature=Entwicklungssysteme

Danke!

Im Wesentlichen arbeiten wir eh genau so, nur die benamselung ist 
anders...

von Sheeva P. (sheevaplug)


Lesenswert?

Nop schrieb:
> Klar, wenn die Tools Features abbilden, die der Kunde anfordert und
> bezahlt (bzw. ansonsten abspränge), ist das was ne andere Hausnummer.

Da mache ich ja nicht aus Spaß an der Freude, sondern um reale Probleme 
zu lösen. Daß mir das trotzdem Spaß macht, ist dabei kein Widerspruch. 
;-)

> Und klar ist das NIH-Syndrom dann ein Problem - man kriegt nach Abzug
> der natürlichen Fluktuation für hausinterne Tools immer so schwer Leute
> am Markt. ;-)

Für interne Werkzeuge bekommt man auch keinen kommerziellen Support, 
sondern man muß ihn selbst leisten.

von Claqueur (Gast)


Lesenswert?

Nop schrieb:

> Claqueur schrieb:
>> 1) Nur Sourcen und buildscripte einchecken, keine Compilate/Compiler.
>
> Man kann auch die Compilate mit einchecken, das ist Geschmackssache. Das
> macht man aber nur bei Lieferständen, die an irgendwen gehen, und sei es
> ans Testfeld.

Ja, kann man, aber dann nutzt man eine Sourceverwaltung nicht als 
Sourceverwaltung sondern als BackUp oder Konfigurationsmanagmentsystem. 
Ich weiss das hört sich nach Krümelkackerei an.
Aber Aufgabe von Sourcemanagment ist es nun mal, immer die Quelltexte 
bereitzuhalten um aus denen jederzeit aufs letzte bit genau den selben 
Stand/Compilat erzeugen zu können.
Und um das 100% zu garantieren ist es eigentlich nötig das Compilat 
nicht aus der Arbeitsversionen also die von denen man meint commited zu 
haben oder nach dem Comilieren commiten zu werden. Sondern aus den 
wieder ausgecheckten Sourcen in einem anderen Verzeichniss. Sonst kann 
sowas passieren:
> Ich hab's schon erlebt, daß so ein Vorhaben gescheitert ist, weil jemand
> die Projekt-Settings der IDE vergessen hat mit einzuchecken. Dummerweise
> hat die verwendete IDE aus diesen Settings den Startupcode automatisch
> generiert.

Es ist halt ne Art "Selbsterziehung", Checke ich die Sorucen nicht in 
die "Sourceverwaltung" ein, zwinge ich mich selbst dazu wirklich 
sicherzustellen das aus den aus der Sourceverwaltung zurückgeholten 
Sourcen jederzeit das Compilat erzeugbar ist. Andernfalls kann 
irgendwann der Bezug zwischen Sourcen und Compilat unbemerkt verloren 
gehen.

Zum Zeitpunkt der Ausöieferung braucht man den bezug nicht, aber 
spätestens bein ersten Bugreport wird harig wenn man nicht die zum 
report passenden (Bug-) Quellen aus dem Archiv ziehen kann.

von Claqueur (Gast)


Lesenswert?

Claqueur schrieb:

> Checke ich die Sorucen nicht in
> die "Sourceverwaltung" ein, zwinge ich mich selbst dazu wirklich
> sicherzustellen das aus den aus der Sourceverwaltung zurückgeholten
> Sourcen jederzeit das Compilat erzeugbar ist. Andernfalls kann
> irgendwann der Bezug zwischen Sourcen und Compilat unbemerkt verloren
> gehen.
Grmm, der Typo machts voll daneben! :-( Schreiben wollt ich:

Checked man die Compilate bewusst nicht in
die "Sourceverwaltung" ein, zwingt man sich, selbst Sicherzustellen das 
mit den aus der Sourceverwaltung zurückgeholten Sourcen jederzeit ein 
identisches Compilat erzeugbar ist. Andernfalls kann irgendwann der 
Bezug zwischen Sourcen und Compilat unbemerkt verloren gehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.