Git Clients

Pagina: 1 2 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 10:26
kraades schreef op zaterdag 4 februari 2017 @ 20:13:
Ook is het raadzaam om de documentatie en het boek op https://git-scm.com door te nemen.
Echt heel verhelderd.

👉🏻 Blog 👈🏻


Acties:
  • +3 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op zaterdag 11 februari 2017 @ 11:26:
Ja, da's dus een beetje het punt: ik heb git niet voor het dagelijks gebruik, dat gaat inderdaad prima, als alles volgens plan verloopt. Maar git is een veiligheidsnet, dus vooral nuttig en nodig als het mis gaat. En dan worden de zaken exponentieel snel complex. Misschien dat de git-theorie goed past bij hoe jouw hersenen werken, de mijne vinden ze knap ingewikkeld. Zolang ik binnen de lijntjes blijf is er niets aan de hand, maar juist voor de complexe zaken biedt het geen veiligheid.
Welke complexe zaken heb je het over? Wat je meldde over een detached head is gewoon user error. Dan kun je gewoon terug naar je HEAD (git checkout HEAD). Je hebt iets verkeerd gedaan maar dat kan eigenlijk altijd gefixt worden.

Daarnaast is version control niet alleen "voor als iets misgaat". Het is gewoon een onderdeel van je workflow; je werkt in een aparte branch zodat je teamgenoten geen last hebben van je werk. Je kunt doen wat je wil op je eigen branch, die je ook kunt pushen zodat 'ie veilig gesteld is, en deze pas naar een gedeelde branch mergen als je klaar bent.

Daarbij levert het je ook nog eens een history op; je kunt altijd terugkijken wie een bepaalde change gedaan heeft. Gebeurt me regelmatig dat ik die persoon vragen stel over het waarom van z'n oplossing.
En dat staat mij dan weer tegen, want dat is precies waarom we zo'n ongelofelijke hoeveelheid aan gebruiksonvriendelijke software hebben: het idee dat het logischer is om een enorme commitment te vragen van je gebruikers (en ze voor dom, pebcak, whatever uit te maken als ze iets niet snappen) dan om die dingen voor te zijn.
Sorry maar er is echt niks gebruikersonvriendelijk aan git. Git add, commit, push, pull, merge en branch zijn eigenlijk de enige die je in een workflow echt nodig hebt. Daar is toch niks complex aan? Je moet alleen ff weten wat die commando's doen. Of gebruik je alleen maar for-loops omdat while en do-while "gebruiksonvriendlijk" zijn? Die heb je toch ook leren gebruiken? Je weet wat het verschil is tussen een interface en een abstract class toch? Allemaal gewoon een onderdeel van je werk kunnen doen.
Uiteindelijk is het pure inefficientie dat de miljoenen developers over de wereld allemaal uren per persoon moeten investeren in het leren van een veiligheidsnet dat wel belangrijk en nuttig is, maar tegelijkertijd geen deel uitmaakt van de core.
Versiebeheer is net zo goed een core skill als het schrijven van tests bijvoorbeeld. Dat jij het daar niet mee eens bent is je goed recht; maar je gaat je hiermee in interviews in je voet schieten als je niet uitkijkt.
(En extra probleem daarbij is dat het dus een grote drempel geeft voor veel mensen die best op bepaalde deelgebieden enige expertise hebben maar geen fullstack developer zijn of willen zijn, en dus ook niet uren tijd willen verspillen aan zo'n systeem.)
We zitten hier in PRG en ik ga er dan even vanuit dat ik te maken heb met iemand die code produceert. Dat een PO git niet snapt begrijp ik best. Maar die snapt de code in een git repo net zo goed niet.

Kijk ik snap best dat ik jouw mening waarschijnlijk niet ga veranderen (en da's je goed recht) maar ik hoop vooral te voorkomen dat beginners denken dat het acceptabel is nooit met git te werken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
incaz schreef op zaterdag 11 februari 2017 @ 11:26:
Ja, da's dus een beetje het punt: ik heb git niet voor het dagelijks gebruik, dat gaat inderdaad prima, als alles volgens plan verloopt. Maar git is een veiligheidsnet, dus vooral nuttig en nodig als het mis gaat. En dan worden de zaken exponentieel snel complex. Misschien dat de git-theorie goed past bij hoe jouw hersenen werken, de mijne vinden ze knap ingewikkeld. Zolang ik binnen de lijntjes blijf is er niets aan de hand, maar juist voor de complexe zaken biedt het geen veiligheid.
Git is versiebeheer, geen veiligheidsnet. Versiebeheer is vooral nuttig om met mensen samen te werken en je project te managen. Dat je dingen kan terugdraaien is een leuke (en soms nuttige) feature, maar niet waar Git primair om draait.

En hoewel je van mij geen Git hoeft te gebruiken is versiebeheer iets waar je als dev gewoon niet om heen komt. Het is heel leuk dat jij in je hoekje code kan kloppen, maar daar heeft de rest van de wereld niets aan als je het niet fatsoenlijk deelt.

Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Hydra schreef op zaterdag 11 februari 2017 @ 13:33:
[...]


Welke complexe zaken heb je het over? Wat je meldde over een detached head is gewoon user error.
Hier stuiten we denk ik op een belangrijk verschil in filosofie. Als dev, juist als dev, vind ik vrijwel iedere user error die veelvuldig voorkomt een fout in het design van de software. Het is leuk dat het gefixt kan worden, maar het blijft neerkomen op dat ik een heleboel van mijn tijd, energie, en aandacht moet besteden aan het bedenken wat git van mij wil, in plaats van dat het al werkt op een manier die aansluit bij mijn manier van doen.

Nou wil ik best erkennen dat het niet eenvoudig is om iets te maken dat goed aansluit bij de gebruikers... maar er zijn wel mogelijkheden.
Daarnaast is version control niet alleen "voor als iets misgaat". Het is gewoon een onderdeel van je workflow; je werkt in een aparte branch zodat je teamgenoten geen last hebben van je werk. Je kunt doen wat je wil op je eigen branch, die je ook kunt pushen zodat 'ie veilig gesteld is, en deze pas naar een gedeelde branch mergen als je klaar bent.
Sla de aanmatigendheid maar over, ik weet best waar version control voor is. Maar ook history, blame en dat soort dingen zijn vooral nuttig in contexten waar dingen mis gaan. (Bovendien heb je voor dergelijke basis dingen niet zoveel complexiteit nodig.
Zeker, het helpt ook wel om af en toe de code van anderen door te kijken als preventief middel, en soms is de geschiedenis ook best interessant op zich, maar dat is toch echt een stuk minder in tijd en een stuk minder in belangrijkheid.
Sorry maar er is echt niks gebruikersonvriendelijk aan git. Git add, commit, push, pull, merge en branch zijn eigenlijk de enige die je in een workflow echt nodig hebt. Daar is toch niks complex aan?
Nogmaals: blijkbaar dus niet. Ik denk niet dat je hier zonder checkout kunt.
Je moet alleen ff weten wat die commando's doen. Of gebruik je alleen maar for-loops omdat while en do-while "gebruiksonvriendlijk" zijn? Die heb je toch ook leren gebruiken? Je weet wat het verschil is tussen een interface en een abstract class toch? Allemaal gewoon een onderdeel van je werk kunnen doen.
Nee, dat is het dus niet. Want interfaces en abstract classes zijn dingen die mijn doel zijn (nou ja, niet echt, omdat mijn focus op wat andere terreinen zijn) maar ze zijn deel zeg maar van de 'productie', van het eindresultaat. Git is een tool, geen doel op zich. Dat is een fundamenteel verschil.

(Maar ook wat code betreft heb ik de neiging om te gaan voor saai en degelijk, en niet voor de meest esoterische flexibele mogelijkheden van een taal.)
Versiebeheer is net zo goed een core skill als het schrijven van tests bijvoorbeeld. Dat jij het daar niet mee eens bent is je goed recht; maar je gaat je hiermee in interviews in je voet schieten als je niet uitkijkt.
}:O Het is aanmatigend en het blijft aanmatigend.
Kijk ik snap best dat ik jouw mening waarschijnlijk niet ga veranderen (en da's je goed recht) maar ik hoop vooral te voorkomen dat beginners denken dat het acceptabel is nooit met git te werken.
Mooie stropop . Maar eh, beginners die meelezen: version control is nuttig en belangrijk, maar laat je niet aanpraten dat het altijd aan jou ligt als software complex is en veel tijd kost en een gigantische learning curve heeft. Soms is dat gewoon een resultaat van slecht design (of van design met hele andere prioriteiten dan die jij hebt.)
Dat maakt je niet minderwaardig, geen mindere ontwikkelaar, niet gek - helaas is de sfeer in de IT nogal eens erg gericht op het op een voetstuk plaatsen van kunstmatige en onnodige barrieres als een soort test van geschiktheid.

En daarom kijgen we veel software die weinig snapt van gebruikers, want daar kijkt men nogal op neer.

Hydra, ik ben bang dat ik je mening niet kan veranderen, maar ik hoop hiermee te voorkomen dat toekomstige IT'ers die rare houding internaliseren.

Never explain with stupidity where malice is a better explanation


Acties:
  • +1 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 10:26
incaz schreef op zondag 12 februari 2017 @ 14:04:
}:O Het is aanmatigend en het blijft aanmatigend.
Waarom? Een dev die in teamverband niet met versiebeheer kan of wil werken heeft een manco en niet de voorkeur. Dat is toch de realiteit? Dan kies ik liever iemand die er wel fatsoenlijk mee kan werken.

👉🏻 Blog 👈🏻


Acties:
  • +1 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
kraades schreef op zondag 12 februari 2017 @ 14:23:
[...]

Waarom? Een dev die in teamverband niet met versiebeheer kan of wil werken heeft een manco en niet de voorkeur. Dat is toch de realiteit? Dan kies ik liever iemand die er wel fatsoenlijk mee kan werken.
Ja, dat is de realiteit. Voor een ontwikkelaar is ervaring met een VCS (niet eens persé Git) wat mij betreft meer dan een pré, zeker als je in teamverband wil werken. Het is een kerncompetentie en ook zeker niet de enige. Je kan er niet mee wegkomen om met oogkleppen op alles wat niet binnen de scope van een bepaalde taal of een IDE valt af te serveren, omdat het complex is (wat best waar kan zijn) en tijd kost om onder de knie te krijgen. Softwareontwikkeling is inherent een complexe aangelegenheid en die complexiteit kan je simpelweg niet altijd vangen in een GUI of DSL en als ontwikkelaar zal je dat moeten accepteren. Ik vind het persoonlijk juist een van de leuke aspecten van het vak.
Beheersing van andere talen naast de taal waarin je ontwikkelt is ook zoiets. Meer dan relevant als je het mij vraagt. SQL is daar misschien wel een aardig voorbeeld. Leuk dat je een ORM oplossing kan inzetten om die complexiteit af te schermen - hoewel zo goed als altijd een lekker abstractie is - toch hoor je wat mij betreft als ontwikkelaar met SQL uit de voeten te kunnen.

Acties:
  • +1 Henk 'm!

Verwijderd

incaz schreef op zaterdag 11 februari 2017 @ 11:26:
Maar git is een veiligheidsnet, dus vooral nuttig en nodig als het mis gaat.
Git is geen veiligheidsnet, punt. Git is bedoeld om samen aan een project te werken. En Git is ook handig om (met behulp van andere tools) te deployen.
En dan worden de zaken exponentieel snel complex.
Gebruik je git? git was gemaakt, omdat ze snel een interface voor Git moesten hebben en zodat ze nieuwe features van Git snel uit kunnen testen, waardoor het zaken direct aan de gebruiker presenteerd op de manier dat het intern wordt afgehandeld. De bedoeling was dat andere mensen een betere interface voor Git maken en tot die tijd tijdelijk git gebruiken. git is dus nooit bedoeld geweest om echt gebruikt te worden door gebruikers.

[ Voor 9% gewijzigd door Verwijderd op 12-02-2017 15:33 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op zondag 12 februari 2017 @ 14:04:
Hydra, ik ben bang dat ik je mening niet kan veranderen, maar ik hoop hiermee te voorkomen dat toekomstige IT'ers die rare houding internaliseren.
Tja. Blijf jezelf gerust aanpraten dat het "te complex" is. Het is uiteindelijk jouw carriere. In bedrijven met een hoog maturity level is version control zoals git gewoon verplichte kost. In een team samenwerken aan dezelfde software zonder fatsoenlijke version control is onbegonnen werk. En distributed version control is gewoon de defacto standaard tegenwoordig, en daarin is git veruit de grootste. Bedrijven met die maturity zijn ook de bedrijven die over 't algemeen 't beste betalen.

Je koppigheid om Git "te complex" te vinden schaadt uiteindelijk maar een persoon; jezelf. Nu kun je met een dergelijke kinderachtige sneer eindigen maar het is uiteindelijk gewoon heel erg niet mijn probleem.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 10:26
Verwijderd schreef op zondag 12 februari 2017 @ 15:31:
git is dus nooit bedoeld geweest om echt gebruikt te worden door gebruikers.
?

Ik denk dat het er eerder iets mee te maken heeft dat Linus Torvalds er iets mee te maken heeft. Briljant maar... ;)

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Waarom dat aanmatigend is? Omdat Hydra zich ongevraagd gaat bemoeien met carriere-advies.

Maar ik maak me geen zorgen hoor. Ik zou namelijk gewoon benadrukken dat ik goed met de client mee kan denken, het ook leuk vind om uit te vinden wat gebruikers nodig hebben en hoe dingen makkelijker gemaakt kunnen worden zodat software niet iets is wat ergens tussenin staat maar juist zoveel mogelijk faciliterend. Ook dat is een kwaliteit die gewaardeerd kan worden op de juiste plek :j
Verwijderd schreef op zondag 12 februari 2017 @ 15:31:
[...]
Git is geen veiligheidsnet, punt. Git is bedoeld om samen aan een project te werken. En Git is ook handig om (met behulp van andere tools) te deployen.
Wellicht verklaart dat veel van de frustratie: het is dus blijkbaar geen tool voor devs maar meer voor program managers en sysadmins. Da's prima. Ik ben er altijd vrij eerlijk over dat daar mijn talenten niet liggen.

Dan maar eens op zoek naar iets anders dat dan wel als fijn veiligheidsnet kan dienen - want dat is iets waar ik als ontwikkelaar met regelmaat behoefte aan heb.

(Dat maakt de tijd die ik aan git besteed wel nog inefficienter moet ik zeggen - uiteindelijk is het toch een vorm van overhead - en zoals veel overhead kan het nuttig zijn, maar er komt altijd een breekpunt. Hoe minder nuttig de output van git is, zoals geen veiligheidsnet zijn voor coders, maar vooral een workflow-tool, des te meer dat punt opschuift naar inefficient.)
De bedoeling was dat andere mensen een betere interface voor Git maken en tot die tijd tijdelijk git gebruiken. git is dus nooit bedoeld geweest om echt gebruikt te worden door gebruikers.
Zou leuk zijn als ze dat er ooit nog van komt (maar gezien de minachting voor toegankelijke software ga ik er niet vanuit.) De andere gitclients zijn voor een groot deel 1-op-1-implementatie van de commands, niet een andere vorm met meer gebruiksvriendelijke logica, helaas.

Ik had er wel een gezien (dat was een commandline tool meen ik me te herinneren) dat een paar veelgebruikte scenario's had geimplementeerd. Alleen zou ik echt werkelijk niet meer weten hoe het heet.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

Verwijderd

kraades schreef op zondag 12 februari 2017 @ 16:30:
[...]


?

Ik denk dat het er eerder iets mee te maken heeft dat Linus Torvalds er iets mee te maken heeft. Briljant maar... ;)

[video]
Ik zei alleen maar wat mij ooit is verteld, maar met Linus Torvalds is het logisch inderdaad…

[ Voor 6% gewijzigd door Verwijderd op 12-02-2017 21:27 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op zondag 12 februari 2017 @ 17:11:
Wellicht verklaart dat veel van de frustratie: het is dus blijkbaar geen tool voor devs maar meer voor program managers en sysadmins. Da's prima. Ik ben er altijd vrij eerlijk over dat daar mijn talenten niet liggen.
|:( |:( |:(

https://niels.nu


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
incaz schreef op zondag 12 februari 2017 @ 17:11:
[...]
Wellicht verklaart dat veel van de frustratie: het is dus blijkbaar geen tool voor devs maar meer voor program managers en sysadmins. Da's prima. Ik ben er altijd vrij eerlijk over dat daar mijn talenten niet liggen.

Dan maar eens op zoek naar iets anders dat dan wel als fijn veiligheidsnet kan dienen - want dat is iets waar ik als ontwikkelaar met regelmaat behoefte aan heb.

(Dat maakt de tijd die ik aan git besteed wel nog inefficienter moet ik zeggen - uiteindelijk is het toch een vorm van overhead - en zoals veel overhead kan het nuttig zijn, maar er komt altijd een breekpunt. Hoe minder nuttig de output van git is, zoals geen veiligheidsnet zijn voor coders, maar vooral een workflow-tool, des te meer dat punt opschuift naar inefficient.)
Errrr. misschien mis ik iets, maar wat zoek jij dan precies in een "veiligheidsnet" ?

Op je lokale tree ben je heer en meester dus er is geen enkele veiligheid ten opzichte van je eigen falen.
Als je Torvalds heet of een ander geweldig project hebt dan heb je wellicht "backups-a-la-torvalds" doordat andere je repo gecloned hebben. Als je dat als nog wilt vernaggelen met je eigen falen dan kan ook dat maar moet je eerst meer mensen er van overtuigen en is er dus toch een zekere rem.

Verder houdt git prima de schiedenis bij, stelt je in staat in de history heen en weer te gaan etc.
Ja je kunt je tree prima vernaggelen met de wat geavanceerdere zaken, dan kan het op zich geen kwaad om dat eerst op een kopietje van je tree te doen en goed te verifieren, zodat het eenvoudig te herstellen is.

Acties:
  • 0 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Je kunt je met Git aardig in je voet schieten, maar dankzij de eenvoudige opzet kun je je werk altijd weer herstellen met commando's als git reflog.

Het is voor elke dev de moeite waard om het Git Internals hoofdstuk door te lezen. Het is moeilijk om geen waardering te hebben voor de elegante eenvoud die ten grondslag ligt aan Git. Bovendien snap je dan ook beter _waarom_ bepaalde dingen mis gaan.

On-topic: HIer Sourcetree (macOS). Gebruik het alleen om een complexe deelcommit te doen ('stage selected lines') en om wat overzicht te krijgen. Daarvoor voldoet het prima. Verder gebruik ik voornamelijk de command line, fugitive.vim en de standaard difftool die git mergetool op macOS gebruikt.

[ Voor 26% gewijzigd door Bigs op 12-02-2017 20:57 ]


Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
gekkie schreef op zondag 12 februari 2017 @ 19:46:
[...]

Errrr. misschien mis ik iets, maar wat zoek jij dan precies in een "veiligheidsnet" ?
Voornamelijk dat ik makkelijk iets terug kan zetten als ik bedenk dat iets niet is zoals ik wil, maar ik ook niet meteen al mijn code weg wil gooien. Volgens mij treden conflicten en problemen bv op (maar ik heb nu niet een kant-en-klare lijst met problemen paraat) als je git commit v3 doet, dan git commit v4, en dan git checkout v3 en dat dan weer wilt committen.

(Ah, nee, kijk: http://stackoverflow.com/...tory-to-a-previous-commit
Dan ben ik er in elk geval achter waar de verwarring vandaan komt: in mijn hoofd is het inhoudelijk vrijwel hetzelfde om uncommitted en committed changes te veranderen. Gewoon: je gaat voorwaarts in de tijd, je construeert je nieuwe werkelijkheid en dat is het nieuwe normaal. Dus commit en be done with it. Maar bij committed changes moet je reverten maar kun je niet checkout gebruiken, en bij uncommitted changes kun je niet reverten en moet je checkout gebruiken, en als je een combinatie van beide hebt, dan.... eerst checkout en dan revert misschien?)

Misschien dat het vanuit het model van git bezien logisch is, maar ik vind zelf dus dat je model altijd zo dicht mogelijk bij de werkelijkheid moet blijven, en niet andersom.

De merge-problemen uit https://reprog.wordpress....ith-added-actual-reasons/ ben ik trouwens ook al eens tegengekomen.

En tegelijkertijd kom ik deze problemen dus niet vaak genoeg tegen om precies te onthouden hoe dat allemaal werkt (of om een actueel lijstje te kunnen geven op het moment dat de discussie optreedt.)

Dat is ten eerste een kwestie van herhaling: om complexe dingen actueel te houden, heb je oefening nodig. Als ik maanden geen mysql doe, heb ik echt weer even nodig om het tot in detail te snappen. Idem voor javascript - een deel ervan zit er nog wel, maar ligt niet meer aan de oppervlakte als ik het een tijd niet gebruik.

Ten tweede is er het punt van context switching: als ik in mijn hoofd de code actueel heb, dan verdwijnt het git mental model even naar de achtergrond. Dat is waarom het als ik er dedicated tijd aan besteed en bijvoorbeeld een testrepo doe veel minder problemen heb: dan staat git front en center. Maar bij het programmeren heb ik die mentale ruimte dus al voor iets anders actief.

Het punt is: ik heb geen zin om (bv wekelijks) oefensessies te gaan houden om mijn git-complexe-situaties-skill up-to-date te houden. Want javascript en mysql zijn onderdeel van wat ik daadwerkelijk doe, het programmeren zelf, maar git is een tool die vooral faciliterend moet zijn. Als ik moet kiezen waar ik mijn studietijd aan wil besteden, dan is het iedere keer weer het vakinhoudelijke deel.

Ik heb me er voor de gein overigens in verdiept, en ik ben blijkbaar zeker niet de enige die het zo vindt. En ik denk dat het deels gewoon jammer is dat er te vaak wordt herhaald dat git fantastisch is als je het eenmaal weet - en dat dat voor veel mensen (/situaties) gewoon niet zo is wordt te snel op de persoon gespeeld.

Als ik me daar jaren terug bewust van was geweest had ik beslist meer druk gezet op het kiezen van een ander vcs, omdat het gewoon niet echt de mogelijkheid heeft om het op een simpele manier te gebruiken.
Je komt al heel snel in de buurt van de complexe dingen: een detached head bv is simpel gecreerd, en uitvogelen hoe je dat herstelt zonder code loss is niet echt zo simpel als add-commit-push. (En ik dacht dus echt iets heel onschuldigs te doen.)

Maar daarmee is het eigenlijk niet de beste oplossing ons scenario, en het is jammer dat dat niet eerder duidelijk was. (En je weet pas dat het blijkbaar niet lukt om dingen na een steile learning curve te leren als het niet gelukt is en het dus al heel veel uren heeft gekost. Het is vrijwel onmogelijk om dat soort dingen vooraf realistisch in te schatten omdat je niet weet wat je nog niet weet.)
Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
incaz schreef op zondag 12 februari 2017 @ 20:21:
[...]
Voornamelijk dat ik makkelijk iets terug kan zetten als ik bedenk dat iets niet is zoals ik wil, maar ik ook niet meteen al mijn code weg wil gooien. Volgens mij treden conflicten en problemen bv op (maar ik heb nu niet een kant-en-klare lijst met problemen paraat) als je git commit v3 doet, dan git commit v4, en dan git checkout v3 en dat dan weer wilt committen.

(Ah, nee, kijk: http://stackoverflow.com/...tory-to-a-previous-commit
Dan ben ik er in elk geval achter waar de verwarring vandaan komt: in mijn hoofd is het inhoudelijk vrijwel hetzelfde om uncommitted en committed changes te veranderen. Gewoon: je gaat voorwaarts in de tijd, je construeert je nieuwe werkelijkheid en dat is het nieuwe normaal. Dus commit en be done with it. Maar bij committed changes moet je reverten maar kun je niet checkout gebruiken, en bij uncommitted changes kun je niet reverten en moet je checkout gebruiken, en als je een combinatie van beide hebt, dan.... eerst checkout en dan revert misschien?)

Misschien dat het vanuit het model van git bezien logisch is, maar ik vind zelf dus dat je model altijd zo dicht mogelijk bij de werkelijkheid moet blijven, en niet andersom.

De merge-problemen uit https://reprog.wordpress....ith-added-actual-reasons/ ben ik trouwens ook al eens tegengekomen.

En tegelijkertijd kom ik deze problemen dus niet vaak genoeg tegen om precies te onthouden hoe dat allemaal werkt (of om een actueel lijstje te kunnen geven op het moment dat de discussie optreedt.)

Dat is ten eerste een kwestie van herhaling: om complexe dingen actueel te houden, heb je oefening nodig. Als ik maanden geen mysql doe, heb ik echt weer even nodig om het tot in detail te snappen. Idem voor javascript - een deel ervan zit er nog wel, maar ligt niet meer aan de oppervlakte als ik het een tijd niet gebruik.

Ten tweede is er het punt van context switching: als ik in mijn hoofd de code actueel heb, dan verdwijnt het git mental model even naar de achtergrond. Dat is waarom het als ik er dedicated tijd aan besteed en bijvoorbeeld een testrepo doe veel minder problemen heb: dan staat git front en center. Maar bij het programmeren heb ik die mentale ruimte dus al voor iets anders actief.

Het punt is: ik heb geen zin om (bv wekelijks) oefensessies te gaan houden om mijn git-complexe-situaties-skill up-to-date te houden. Want javascript en mysql zijn onderdeel van wat ik daadwerkelijk doe, het programmeren zelf, maar git is een tool die vooral faciliterend moet zijn. Als ik moet kiezen waar ik mijn studietijd aan wil besteden, dan is het iedere keer weer het vakinhoudelijke deel.

Ik heb me er voor de gein overigens in verdiept, en ik ben blijkbaar zeker niet de enige die het zo vindt. En ik denk dat het deels gewoon jammer is dat er te vaak wordt herhaald dat git fantastisch is als je het eenmaal weet - en dat dat voor veel mensen (/situaties) gewoon niet zo is wordt te snel op de persoon gespeeld.

Als ik me daar jaren terug bewust van was geweest had ik beslist meer druk gezet op het kiezen van een ander vcs, omdat het gewoon niet echt de mogelijkheid heeft om het op een simpele manier te gebruiken.
Je komt al heel snel in de buurt van de complexe dingen: een detached head bv is simpel gecreerd, en uitvogelen hoe je dat herstelt zonder code loss is niet echt zo simpel als add-commit-push. (En ik dacht dus echt iets heel onschuldigs te doen.)

Maar daarmee is het eigenlijk niet de beste oplossing ons scenario, en het is jammer dat dat niet eerder duidelijk was. (En je weet pas dat het blijkbaar niet lukt om dingen na een steile learning curve te leren als het niet gelukt is en het dus al heel veel uren heeft gekost. Het is vrijwel onmogelijk om dat soort dingen vooraf realistisch in te schatten omdat je niet weet wat je nog niet weet.)
Het is kennelijk vooral de opdeling en benaming van de verschillende commando's (en opties) wat je dwars zit ?
Misschien dat mecurial je dan meer ligt (opzich wel vaker ergens gelezen dat er mensen waren die dat gebruikersvriendelijker vonden).
Het blijft semi-low-level annoteren en hacken van een graph, maar als het goed is doet een revert op een
uncommitted file daar wel wat je wilt.
Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.
Achja een hele briljante opmerking was het dan misschien ook wel niet, of denk je werkelijk dat bijvb. de linux-kernel in elkaar geklooid wordt door een aantal managers en een stel sys-admins ?

Maarja ... forum is net als git, lastig om de history nu nog te rewriten :+

Overigens vraag ik me dan af of mysql ook niet een martelgang moet zijn. Je krijgt of de verkeerde data terug omdat je de verkeerde vraag gesteld had, of een ook niet altijd even duidelijke foutmelding, of in het geval van Mysql ook nog eens de kans op arbitraire data (er vanuitgaande dat ze bij groupby's er nog steeds potentieel een zooitje van maken). Dan ben je uiteindelijk misschien toch ondanks dat het ook niet ideaal is, beter af met een horkerige tool die iets weigert uit te voeren omdat het wellicht ambigu is wat je bedoeld.

Er zijn best zaken die gebruiksvriendelijker zouden kunnen, sommige daarvan worden al geadresseerd in third party GUI's, andere zijn misschien ook gewoon niet zo eenvoudig als het lijkt (zeker niet in het niet generieke non-lineaire history geval).

[ Voor 11% gewijzigd door gekkie op 12-02-2017 22:30 ]


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 27-09 00:06

ZaZ

Tweakers abonnee

Ik snap wel wat Hydra bedoelt en ben ook van mening dat een beetje investeren de moeite waard is, maar wat incaz zegt volg ik ook wel een beetje.
Ik vind het te makkelijk om te zeggen met dingen zoals een detached head van "dan doe je gewoon iets fout"
Ik heb flink wat ervaring met git en er zijn tig situaties te bedenken waar je toch zomaar op 'gevaarlijk' terrein komt.
Een detached head kan je zomaar te pakken hebben als je bijvoorbeeld met submodules werkt.
Als je dat dan niet door hebt en je gaat lekker door met commiten en je switched naar een andere branch dan zijn de commits 'weg'
Dan moet je gaan neuzen met reflog om te kijken waar ze zijn (als je op tijd bent), maar genoeg mensen die niet verder gaan dan commit en push en die niet weten hoe de ingewanden van git eruitzien en die hebben dan al opgegeven en gaan op een andere manier de fout herstellen.

Of een rebase waar je een conflict niet goed oplost en daardoor bijvoorbeeld alleen maar extra conflicten om je oren krijgt gedurende rebase actie.
Als je dan de boel abort kom je in niemandsland.
Tuurlijk; reset op de oude SHA en je kan het weer proberen.
Zeg dat eens tegen iemand met minder ervaring. Ook daar al vaker gezien dat mensen dan gaan googlen en voor je het weet zijn ze merges en cherry picks aan het doen omdat ze zo hun branch weer een beetje terug proberen te krijgen. Of gewoon het verlies nemen en de code maar opnieuw gaan schrijven.

Of een long living branch die up to date wordt gehouden door periodieke merges.
Een werknemer krijgt conflicten op een van de merges en snapt het niet meer en wil het gewoon 'weg' hebben.
Dus die discard vervolgens alles en kan nog steeds niet verder omdat dat stomme systeem toch wil dat er een commit wordt uitgevoerd. Nou, dan maar een lege commit, da's vast niet zo erg.
Daarna gewoon verder gaan met werken en commits doen op de long living branch en dan erachter komen dat die 'lege' merge toch wel behoorlijk wat schade heeft aangericht.
Heel veel succes met oplossen! Een revert van de merge gaat hier niet werken kan ik je zeggen en veel plezier met het doorvoeren van alle cherry picks waar je regelmatig conflicten kan gaan oplossen.

Als je dan van mening bent dat versiebeheer eigenlijk meer alleen maar een tijdslijn moet zijn zodat je terugkan naar gisteren en van daar weer naar morgen zonder dat je de repository 'sloopt', dan is git misschien inderdaad geen goede keuze.
Ik denk dat je dan zelfs nog beter voor subversion kan kiezen.

Lekker op de bank


Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op zondag 12 februari 2017 @ 20:21:
Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.
Sorry maar met een opmerking als "het is dus blijkbaar geen tool voor devs maar meer voor program managers en sysadmins." maak je jezelf behoorlijk belachelijk.

Wat jij doet is gewoon een term voor: expert beginner.
ZaZ schreef op maandag 13 februari 2017 @ 00:21:
Tuurlijk; reset op de oude SHA en je kan het weer proberen.
Maar dat is dus het hele punt. Het is extreem moeilijk om in Git iets permanent te verkloten. Rebase heb je bijvoorbeeld helemaal niet nodig. Als je een rebase gebaseerde workflow gaat gebruiken (ben er zelf geen fan van, zie liever de originele history) dan lijkt het me dat je je ook een beetje gaat verdiepen in hoe rebase werkt.

En zelf als je een fuck-up in een merge of rebase maakt; je kunt altijd terug. Commits kun je altijd in je reflog terug vinden.

Ik heb vroeger nog met Visual Source Safe gewerkt en hoewel de user interface simpel was, kon je ook echt makkelijk shit kwijtraken. Met git is dat praktisch onmogelijk. En als je dan een keer iets verkeerd doet kun je de oplossing simpel googlen. Ik krijg een beetje het idee dat sommige mensen dan maar willekeurige git commando's in gaan typen zonder te snappen wat ze aan 't doen zijn. Da's een beetje zoals na een rm -rf data heen en weer gaan moven in de hoop dat je data terugkomt.

Git is enorm uitgebreid (wat fantastisch is, ik heb een pre-commit hook gemaakt die een commit afwijst als hij niet begint met de branch-naam of de branchnaam niet volgens een bepaald patroon is) maar dat maakt het niet complex. Een basale feature-branch workflow heb je maar een paar commandos voor nodig. En het is gewoon kennis die je als dev op moet doen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Hydra schreef op maandag 13 februari 2017 @ 08:06:
[...]


Sorry maar met een opmerking als "het is dus blijkbaar geen tool voor devs maar meer voor program managers en sysadmins." maak je jezelf behoorlijk belachelijk.
Vind je het echt zo moeilijk om je voor te stellen dat er diverse dev-functies zijn die nauwelijks bestaan uit integratie van branches en uit deployment, waar dat gewoon niet tot de dagelijkse of zelfs maar wekelijkse activiteiten van de betreffende dev behoort?
Maar dat is dus het hele punt. Het is extreem moeilijk om in Git iets permanent te verkloten. [...]
Met git is dat praktisch onmogelijk. En als je dan een keer iets verkeerd doet kun je de oplossing simpel googlen.
Nou, blijkbaar dus niet. Wees blij dat je de manier van denken van Linus deelt, zo te lezen zowel in zijn manier van software bedenken als in je visie op mensen/gebruikers. Tegelijkerijtd jammer dat je je wel bekwaamd hebt in technische zaken, maar zo te lezen niet echt in het verplaatsen in andere gezichtspunten en gebruikservaringen. (Als dat vaker zou gebeuren zou de softwareindustrie daar volgens mij een stuk beter van worden.)
Ik krijg een beetje het idee dat sommige mensen dan maar willekeurige git commando's in gaan typen zonder te snappen wat ze aan 't doen zijn.
Tsja, dat is je eigen fantasie - al snap ik die wel als je echt niet kunt begrijpen tegen welke problemen andere gebruikers aanlopen, dan is in het wilde weg proberen inderdaad ongeveer de enige verklaring mogelijk.

Maar in werkelijkheid blijkt (bijvoorbeeld) dat een deel van die zo makkelijk bij elkaar te googlen oplossingen gewoon ronduit fout zijn, en je van de wal in de sloot helpen. Die herken je wel als je heel veel met git bezig bent en het helemaal goed kent, maar nou net niet in de situatie waarin je (blijkbaar) bent uitgegaan van verkeerde aannamen, daardoor iets verkeerds hebt gedaan maar niet precies weet wat of waarom het verkeerd was, en dan bij een verkeerd advies uitkomt.

Jammer verder dat je niet ingaat op mijn argumenten van context switchting en retention. Dat zijn namelijk beide belangrijke bezwaren voor mij. Dat is extra nadrukkelijk een probleem als ik iets lastigs aan het bouwen ben, halverwege merk dat ik een probleem verkeerd aan het oplossen ben, en daarom opnieuw wil beginnen met de code zoals die was (maar liefst met behoudt van toegang tot code die ik al geschreven heb.)
Dat is niet alleen een situatie die voor git iets lastiger is dan een simpele commit, het is vooral ook een situatie waarin IK een complex probleem in mijn hoofd heb dat mijn aandacht vraagt, wat het overzicht op git wegdrukt. Maak ik dan een task switch naar git, dan raak ik in elk geval een deel kwijt van wat er aan dat moment in mijn hoofd zit over het probleem waar ik mee bezig was.

Als jij daar geen last van hebt: fijn, wees blij, tel je zegeningen. Maar voor mij is het een groot probleem, en het maakt het gebruik van git enorm verspillend en frustrerend.
Een basale feature-branch workflow heb je maar een paar commandos voor nodig. En het is gewoon kennis die je als dev op moet doen.
Ja, als je git alleen maar gebruikt voor workflow, en nooit verkeerde paden op dwaalt, dan is het simpel. En je hebt er weinig aan, maar moeilijk is het dan inderdaad niet. Er is hier 1 project dat eigenlijk nogal verkeerd is opgebouwd, wat iets zou moeten doen met submodules of shared repositories ofzo, wat nu nog niet gebeurt, en waar de prioriteit om het te veranderen laag is.
Daar staat toch Git zodat er in elk geval iets gelogd is, en vragen als 'goh, was dat altijd al zo' beantwoord kunnen worden. Dat werkt echt perfect simpel, want ik hoef alleen maar git add en git commit te gebruiken. Heel misschien heb ik wel eens voorzichtig iets geprobeerd met git blame, maar dan heb je het wel zo'n beetje gehad. En lo and behold: geen merge conflicts, geen detached heads, geen branches die niet willen switchen... Dan is het inderdaad simpel.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 10:26
Volgens mij mis je de de big picture van software development.

Heb je het artikel "expert beginner" van hierboven gelezen? :)

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Ik vemoed dat incaz (of zijn organisatie) ook niet heel hoog scoort in de 12 steps to better code test.

Jeetje, bij ons werken zelfs niet-devs als vertalers in Git om hun vertalingen te laten mergen. Voor testers is branches wisselen ook dagelijkse kost. Gaat prima.

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-10 15:13

TheNephilim

Wtfuzzle

Wij werken hier met SourceTree in combinatie met Bitbucket. Over het algemeen doe ik voor Git niet veel in de commandline. Heel af en toe hebben we een project wat naar een server moet zonder remote, waardoor ik dan op de server in de commandline de masterbranch pull.

Het gros van de projecten hier zijn kleine (informatieve) bedrijfswebsites. Enkele projecten zijn kleine webshops en soms komt er een grotere (meer interactieve) website voorbij. Met twee developers is het vaak zo dat we toch aan ons eigen project werken en dus niet verder komen dan ontwikkelen in 'develop' en na een merge met 'master' wordt er automatisch gedeployed (via FTP) naar de server. Voor sommige projecten is er een git-remote op de productie server aanwezig, waar we 'master' naartoe pushen en op die manier deployen.

Meestal is het met die bedrijfswebsites een kwestie van ontwikkelen -> preview -> oplevering en is het project daarmee afgerond. Voor kleine wijzigingen als in feedback van vormgever; "knopje aanpassen" of "tekstuele aanpassing" gaan we hier geen feature-branches aanmaken, maar bij grotere changesets doen we dat wel. Alleen al om te voorkomen dat je bezig met met een wijziging die nog niet mee moet van 'develop' naar 'master' en dus productie.

Persoonlijk zou ik niet zeggen dat ik Git helemaal beheers, maar ik kan me goed redden. Commit/merge/checkout/pull/push is allemaal geen probleem. Aan rebase heb ik me overigens nog nooit gewaagd. Eigenlijk wil ik nog wat contributen aan open-source repo's om ook de workflow met meerdere ontwikkelaars een beetje beter te beheersen. Met twee developers kun je nog te makkelijk overleggen; "kun je even helpen?" "ja is goed, ik pull je project wel even", waarna ik dan aanpassingen doe en aangeef aan mijn collega dat ik klaar ben, waarna hij het verder oppakt.

Acties:
  • 0 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
TheNephilim schreef op maandag 13 februari 2017 @ 11:21:
Wij werken hier met SourceTree in combinatie met Bitbucket. Over het algemeen doe ik voor Git niet veel in de commandline. Heel af en toe hebben we een project wat naar een server moet zonder remote, waardoor ik dan op de server in de commandline de masterbranch pull.

[..]
Je kunt ook het repository op die server als remote op je lokale station instellen, dan kun je er gewoon naar pushen. DVCS FTW :)

Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
kraades schreef op maandag 13 februari 2017 @ 10:46:
Volgens mij mis je de de big picture van software development.
Wat is de big picture volgens jou? (Mij lijkt het dat het ligt op het ontwikkelen van software die goed te gebruiken is, maar misschien heb ik dat mis.)
Heb je het artikel "expert beginner" van hierboven gelezen? :)
Ja. Ik ben geen 'expert beginner', ik ben zeker ook geen expert - ik ben slechts iemand die vind dat de prioriteiten in de IT te vaak liggen op een soort van morele tests en het aangeven waarom anderen minderwaardig zijn (als dev, als gebruiker...)

Ik zie een steile learning curve, en vind dat mogelijk slecht design. Ik vind het mijn vak om dat - in de software waar ik bij betrokken ben - beter te doen waar ik kan. Anderen zien een steile learning curve en zien dat als iets van waarde, als iets om anderen mee neer te halen, 'dat je dat niet eens kunt, dan verdien je het niet om dev te zijn! Je bent expert beginner die niet meer wil leren! Je bent dom, iedereen kan dat! Je werkomgeving is slecht!'

Ik vind het nogal tekenend - en zorgelijker dan die 12 stappen.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op maandag 13 februari 2017 @ 11:37:
Ja. Ik ben geen 'expert beginner', ik ben zeker ook geen expert - ik ben slechts iemand die vind dat de prioriteiten in de IT te vaak liggen op een soort van morele tests en het aangeven waarom anderen minderwaardig zijn (als dev, als gebruiker...)
Hebben jullie peer reviews en zo ja, hoe doen jullie die?
incaz schreef op maandag 13 februari 2017 @ 10:10:
Nou, blijkbaar dus niet. Wees blij dat je de manier van denken van Linus deelt, zo te lezen zowel in zijn manier van software bedenken als in je visie op mensen/gebruikers. Tegelijkerijtd jammer dat je je wel bekwaamd hebt in technische zaken, maar zo te lezen niet echt in het verplaatsen in andere gezichtspunten en gebruikservaringen. (Als dat vaker zou gebeuren zou de softwareindustrie daar volgens mij een stuk beter van worden.)
Hou eens op met deze nauwelijks verdekte beledigingen. Ik werk al tijden als consultant en heb daarbij ook zowel commerciele als technische rollen gehad. Ik neem het vak software engineer serieus; dat betekent dus ook luisteren naar gebruikers en hun wensen vertalen in software die waarde toevoegt. Daarbij werk ik meestal in teams en heb dus jaren ervaring met welk nut source control heeft.

Jij bent als dev gewoon buitengewoon moeilijk serieus te nemen met je claims over git en hoe het een tool zou zijn die niet voor devs is. Heel de fucking wereld is ondertussen aan de github en jij denkt dat je er als dev mee weg komt het niet te leren? Als je de rest van je leven wordpress templates wil knutselen prima, maar dat is geen software engineering.

[ Voor 61% gewijzigd door Hydra op 13-02-2017 11:43 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Hydra schreef op maandag 13 februari 2017 @ 11:39:
[...]
Hebben jullie peer reviews en zo ja, hoe doen jullie die?
Waarom wil je dat weten?

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Waarom geef je niet gewoon antwoord? Ik vraag mij af hoe het bedrijf waar jij werkt intern werkt kwa processen.

[ Voor 17% gewijzigd door Hydra op 13-02-2017 11:45 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Hydra schreef op maandag 13 februari 2017 @ 11:43:
[...]
Waarom geef je niet gewoon antwoord?
Omdat het niet echt ingegeven lijkt te zijn als basis voor een fijn en gelijkwaardig gesprek. Waarom zou ik dat soort vragen beantwoorden aan iemand die het eerder nodig vond om op aanmatigende toon mij van ongevraagd carriereadvies te voorzien, iets constructiefs als |:( |:( |:( plaatste, en schreef dat ik mezelf enorm belachelijk maakte?

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-10 15:13

TheNephilim

Wtfuzzle

Wat ik overigens nog wel mis, of misschien weet ik gewoon niet hoe dat moet :+...

Stel ik pas wat dingen aan heb binnen SourceTree dan netjes de 'unstashed' files. Alleen heb ik dat in de 'develop' branch gedaan en wil eigenlijk een nieuwe branch maken (git-flow -> start new feature) dan moet ik eerst deze bestanden 'stashen' (en committen dacht ik).

Nu heeft PhpStorm een 'shelf' functie, waardoor ik de wijzigingen even in PhpStorm kan opslaan, dan een nieuwe branch aan kan maken en die changes dan 'unshelf' in de nieuwe branch.

Maar kan dat ook gewoon in SourceTree? :o

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
TheNephilim schreef op maandag 13 februari 2017 @ 11:57:
Maar kan dat ook gewoon in SourceTree? :o
Ik ken sourcetree niet maar je kunt een changeset gewoon met "git stash" opbergen, een andere branch uitcheckken (git checkout dev), updaten (git pull), daarop een nieuwe feature branch maken (git checkout -b <naam>) en dan de changes terugzetten ("git stash pop").

Ik weet niet wat het sourcetree equivalent daarvan is maar ik neem aan dat dat ook allemaal kan. Ik vind het alleen zelf gewoon efficienter 't in te typen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
incaz schreef op maandag 13 februari 2017 @ 11:37:
[...]
Ja. Ik ben geen 'expert beginner', ik ben zeker ook geen expert - ik ben slechts iemand die vind dat de prioriteiten in de IT te vaak liggen op een soort van morele tests en het aangeven waarom anderen minderwaardig zijn (als dev, als gebruiker...)

Anderen zien een steile learning curve en zien dat als iets van waarde, als iets om anderen mee neer te halen, 'dat je dat niet eens kunt, dan verdien je het niet om dev te zijn! Je bent expert beginner die niet meer wil leren! Je bent dom, iedereen kan dat! Je werkomgeving is slecht!'

Ik vind het nogal tekenend - en zorgelijker dan die 12 stappen.
Misschien heb ik het verkeerd, maar in veel van je posts komen dit soort dingen naar boven : je hebt slechte ervaringen (gehad) en generaliseert dit vervolgens naar 'de hele IT'. (Je doet dit bijvoorbeeld ook als reactie op Hydra)

Ik vraag me af of dat wel terecht is.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
TheNephilim schreef op maandag 13 februari 2017 @ 11:21:
Eigenlijk wil ik nog wat contributen aan open-source repo's om ook de workflow met meerdere ontwikkelaars een beetje beter te beheersen. Met twee developers kun je nog te makkelijk overleggen; "kun je even helpen?" "ja is goed, ik pull je project wel even", waarna ik dan aanpassingen doe en aangeef aan mijn collega dat ik klaar ben, waarna hij het verder oppakt.
Meestal niet heel veel anders dan je nu doet.
Hooguit dat sommige projecten (die niet op github staan) alles (eerst) via mailinglists doen ter review en soms ook het committen via deze patches doen ipv git pulls, zeker voor het kleinbier.
Kortom git-format-patch en git send-email worden dan handig.
En uiteraard een signed-off-by ..

En verder blijven er 2 kansen, het wordt geaccepteerd of niet en het zou kunnen dat je bij conflicten gevraagd wordt het zelf te mergen, maar soms ook niet.

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
incaz schreef op maandag 13 februari 2017 @ 11:37:
Ik zie een steile learning curve, en vind dat mogelijk slecht design. Ik vind het mijn vak om dat - in de software waar ik bij betrokken ben - beter te doen waar ik kan. Anderen zien een steile learning curve en zien dat als iets van waarde, als iets om anderen mee neer te halen, 'dat je dat niet eens kunt, dan verdien je het niet om dev te zijn! Je bent expert beginner die niet meer wil leren! Je bent dom, iedereen kan dat! Je werkomgeving is slecht!'
Proberen te solliciteren bij een van de GUI git clients dan maar ?
Je zou dan toch verwachten dat het een gat in de markt is, als alle tools op dit moment dermate beroerd zijn dat er zoveel mensen hun weg echt niet mee kunnen vinden.

En je voorbeeld van overnieuw beginnen, lijkt me toch niet zo'n punt.
Commit al je werk in een devel branch, checkout een nieuwe branch op het punt waar je opnieuw op wilt beginnen. Afhankelijk van of je nog stukken kunt hergebruiken cherrypick je die, of je copy en paste gewoon delen en gaat gewoon weer fijn delen opnieuw commiten.

Wat is het probleem er mee, conceptueel toch gewoon hoe je een breiwerkje ook uithaald en opnieuw begint, met als bonus een manier om stukken te cherrypicken ?

*whoops* dit had nog in in de vorige post erbij gemogen .. ahwel gemiste kans.

[ Voor 3% gewijzigd door gekkie op 13-02-2017 12:31 ]


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 08-10 11:08
Vraag me toch af hoe dit topic heeft kunnen ontsporen om het nut van versie beheer aan te tonen 8)7

Ik gebruik zelfs Git voor mijn persoonlijke hobby projecten, tuurlijk kom ik ook bij klanten waar geen Git gebruikt wordt maar er is ALTIJD een VCS. Vaak bij Microsoft georiënteerde projecten is het TFS (of in het ergste geval SVN :( )

Maar Git is absoluut niet alleen een veiligheidsnet, integendeel, het is een essentieel onderdeel van je workflow als developer.

Verder dient Git ook niet als een backup van je code, daar heb je backups van je Git repo voor :)

Acties:
  • 0 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
GrooV schreef op dinsdag 14 februari 2017 @ 09:09:
Vraag me toch af hoe dit topic heeft kunnen ontsporen om het nut van versie beheer aan te tonen 8)7
Misschien omdat mensen denken dat het gaat om het nut van versiebeheer aan te tonen, terwijl volgens mij niemand het daarmee oneens is.

Ik ben helemaal voor versiebeheer. Ik heb het alleen graag in een vriendelijk, behulpzaam pakket ipv iets dat enorme overhead kost aan investeringen in de learning curve en het up-to-date houden van vaardigheden.

Als daar wat aan te doen is, dan zou ik helemaal gelukkig zijn. (Dus een cursus Git gegeven door mensen die iets weten van verschillende leerstijlen van mensen en hoe je daarbij aan kunt sluiten, en die kunnen helpen met hoe je de impact van context switching en retention kunt minimaliseren? Graag!)

Wel vraag ik me dus af waarom een versiebeheer niet zou dienen als veiligheidsnet. Uit het git handbook nota bene:
[A VCS] allows you to revert files back to a previous state, revert the entire project back to a previous state, compare changes over time, see who last modified something that might be causing a problem, who introduced an issue and when, and more. Using a VCS also generally means that if you screw things up or lose files, you can easily recover. In addition, you get all this for very little overhead.
Onderdeel van de vele redenen om VCS te gebruiken. Alleen ik ben het dus niet eens met de laatste statement: dat je dat allemaal krijgt door erg weinig overhead. Voor mij is de overhead (namelijk de tijd die ik moet besteden aan het verkrijgen en onderhouden van vaardigheden voor git) niet 'very little' maar behoorlijk.
En in de tussentijd heeft het gebruik van Git vaker tot het verlies van code geleid dan het dat heeft voorkomen. En dat is wel degelijk een probleem want dat is in elk geval niet waar ik het voor gebruik.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
incaz schreef op dinsdag 14 februari 2017 @ 10:35:
[...]
Onderdeel van de vele redenen om VCS te gebruiken. Alleen ik ben het dus niet eens met de laatste statement: dat je dat allemaal krijgt door erg weinig overhead. Voor mij is de overhead (namelijk de tijd die ik moet besteden aan het verkrijgen en onderhouden van vaardigheden voor git) niet 'very little' maar behoorlijk.
En in de tussentijd heeft het gebruik van Git vaker tot het verlies van code geleid dan het dat heeft voorkomen. En dat is wel degelijk een probleem want dat is in elk geval niet waar ik het voor gebruik.
Ik vraag me dan toch af wat je allemaal doet in zeg 80 a 90% van de tijd dat je git gebruikt.

Bij mij is 80 a 90% van de tijd een git commit, waarbij de tijd besteed aan git nagenoeg 0 is.
De tijd besteed aan welke files of eventueel welke hunks/lines in een bepaalde commit moeten zeg 10% en wat een duidelijke commit beschrijving is zijn zo ongeveer hier weer 90% van de tijd.

Ik zie hier niet echt een "context switch" in, behalve dat je een moment neemt om heel oppervlakkig je code nog eens zelf te reviewen.

Acties:
  • +2 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 08-10 11:08
incaz schreef op dinsdag 14 februari 2017 @ 10:35:
[...]


Misschien omdat mensen denken dat het gaat om het nut van versiebeheer aan te tonen, terwijl volgens mij niemand het daarmee oneens is.

Ik ben helemaal voor versiebeheer. Ik heb het alleen graag in een vriendelijk, behulpzaam pakket ipv iets dat enorme overhead kost aan investeringen in de learning curve en het up-to-date houden van vaardigheden.

Als daar wat aan te doen is, dan zou ik helemaal gelukkig zijn. (Dus een cursus Git gegeven door mensen die iets weten van verschillende leerstijlen van mensen en hoe je daarbij aan kunt sluiten, en die kunnen helpen met hoe je de impact van context switching en retention kunt minimaliseren? Graag!)

Wel vraag ik me dus af waarom een versiebeheer niet zou dienen als veiligheidsnet. Uit het git handbook nota bene:

[...]


Onderdeel van de vele redenen om VCS te gebruiken. Alleen ik ben het dus niet eens met de laatste statement: dat je dat allemaal krijgt door erg weinig overhead. Voor mij is de overhead (namelijk de tijd die ik moet besteden aan het verkrijgen en onderhouden van vaardigheden voor git) niet 'very little' maar behoorlijk.
En in de tussentijd heeft het gebruik van Git vaker tot het verlies van code geleid dan het dat heeft voorkomen. En dat is wel degelijk een probleem want dat is in elk geval niet waar ik het voor gebruik.
Selectief lezen is ook een vak, ik zeg dat Git niet alleen een veiligheidsnet is. Het is veel meer dan dat. Als je code verlies wil voorkomen kan je ook rsync gebruiken.

Het lijkt me beter dat je de tijd die je gebruikte om te reageren in dit topic had kunnen besteden om Git te leren ipv in een Git client topic te reageren dat je Git niet snapt en vervolgens er niks mee wil doen

Acties:
  • +1 Henk 'm!

  • Rushleader
  • Registratie: November 2011
  • Laatst online: 19-07 11:06
incaz schreef op dinsdag 14 februari 2017 @ 10:35:
[...]
... snip ...
En in de tussentijd heeft het gebruik van Git vaker tot het verlies van code geleid dan het dat heeft voorkomen. En dat is wel degelijk een probleem want dat is in elk geval niet waar ik het voor gebruik.
Mag ik vragen hoe je dat voor elkaar gekregen hebt? Want hoeveel ik ook probeer, is er altijd wel een staat van de file/change terug te vinden :|

Enige wat ik me kan indenken is dat je voor de lol een force-push doet over een [x behind] heen ... waardoor je indd oude changes gewoon weg kan gooien. Probleem daarmee is alleen dat een standaard git setup gewoon een warning gooit als je dat doet. (Buiten het feit dat je zelfs dan nog via je working copy terug kan maar dat is een andere discussie).

Zoals ik het nu namelijk lees probeer je een VCS te gebruiken als backup van je code... het is een mooie extra functie maar niet het hoofddoel
Using a VCS also generally means that if you screw things up or lose files, you can easily recover. In addition, you get all this for very little overhead.
"Generally", nogal een sleutelwoord hier... als je het dus niet zo inricht dat het mogelijk is ben je inderdaad alsnog je files kwijt (moet je wel wat moeite voor doen ...)

Edit: Hoeft niet specifiek HEAD te zijn 8)7

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
GrooV schreef op dinsdag 14 februari 2017 @ 10:55:
Het lijkt me beter dat je de tijd die je gebruikte om te reageren in dit topic had kunnen besteden om Git te leren ipv in een Git client topic te reageren dat je Git niet snapt en vervolgens er niks mee wil doen
_/-\o_

https://niels.nu


Acties:
  • +1 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 08-10 21:29
Heel eerlijk: ik herken de reactie van incaz wel. Ik denk ook dat het behoorlijk afhangt van de omgeving waarin je werkt, welke tools je gebruikt en wat de bedrijfscultuur is.

Zelf werk ik bij een bedrijf wat in enkele jaren veranderd is van volledig monolith .NET + workflow op basis van TFS, naar een omgeving die veel variatie bevat (verschillende programmeertalen, verschillende soort data storage, micro-services, cloud, etc) gecombineerd met een workflow op basis van Git. Destijds was een van de eerste stappen om van TFS over te gaan naar Git en dit leidde tot exact dezelfde discussies. Er waren binnen alle teams wel mensen die niet zomaar uit zichzelf Git aanleerden en ook gemotiveerd moesten worden om over te stappen. Naarmate meer collegas git leerden verspreidde de kennis en het git gebruik zich als een olievlek. En ja, dan gebeurde dus ook deze dingen:
* "Ik ben mijn code kwijt"
* "Ik zie mijn code niet in het centrale repository"
* "Ik deed force push en nu is xyz kapot"
* "Hoe maak ik een branch?"
* "Ik doe een checkout en alle files zijn gewijzigd" (cross-platform en LF vs CRLF)
Ja, met Git kun je dingen kapot maken en er is een bepaalde leercurve.

Tegenwoordig zie binnen het bedrijf echt helemaal niemand problemen hebben met Git. 99.5% van de tijd zijn het ook alleen simpele operaties (pull, branch, commit, push, checkout master), deels omdat de workflow er om heen complexiteit vermijd. Alle teams gebruiken pull requests om code te reviewen (ook van mensen buiten het team), merges vinden binnen BitBucket/GitHub plaats. CI/CD is geautomatiseerd (typisch Gitflow of golden master aanpak). Op onze GitHub repositories doen we squash & merge, op BitBucket staan we toe dat de commit history 'lelijk' is omdat de onvoldoende mensen snappen wat een rebase nu eigenlijk is. Laat staan het kunnen uitvoeren. We hebben meer dan 700 repos. Ik heb de CVs van de laatste 10 sollicitanten bekeken: 9 van de 10 hebben al met Git gewerkt. Geen ervaring met Git is geen breekpunt, maar we maken wel duidelijk dat dit onze standaard is.

Het leren van Git kost inderdaad een aantal uur per persoon, plus effort voor de conversie, aanpassingen in tooling, etc. Tegelijk krijg je de mogelijkheid (niet gratis, kost ook tijd) om de workflow dusdanig te stroomlijnen. Niet zozeer de flow van het daadwerkelijke committen, maar juist de flow van code reviews, het wegnemen van de constante verbinding met TFS/SVN, de uitgebreidere scripting/integratie mogelijkheden. Daarom denk ik juist dat de omgeving heel belangrijk is: als je in een relatief kleine omgeving werkt, met slechts enkele vaste repos, met een bestaande workflow, de TFS server onder je bureau, geen reden om deel te nemen in bijv. open source... ja, ik kan me dan best wel voorstellen dat het veranderen van deze zaken geen prioriteit heeft en het gebruik van Git juist een complexere manier van werken is. Ik kan me ook voorstellen dat dit naar anderen toe over kan komen als 'vastgeroest zitten'. Misschien wel, misschien niet.

Fun fact: ik heb een collega die nog steeds bij iedere story eerst in BitBucket een branch maakt, vervolgens lokaal het repo ophaalt en naar die branch wisselt. Ach ja, als het voor hem werkt...

Wat betreft het oorspronkelijke topic: command line voor alles, behalve commit/merge/diff. Die doe ik met TortoiseGit, omdat ik juist die tool (net zoals SubversionGit) een hele goede conflict resolution vind hebben. Ik weet niet precies waarom, maar waar andere tooling bij sommige zaken een merge conflict geven, kan TortoiseGit deze juist zonder problemen mergen. Heeft me tot nu toe veel tijd bespaard :)

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • Rushleader
  • Registratie: November 2011
  • Laatst online: 19-07 11:06
Brainstorm schreef op dinsdag 14 februari 2017 @ 12:35:
... snip ...
En ja, dan gebeurde dus ook deze dingen:
* "Ik ben mijn code kwijt"
* "Ik zie mijn code niet in het centrale repository"
* "Ik deed force push en nu is xyz kapot"
* "Hoe maak ik een branch?"
* "Ik doe een checkout en alle files zijn gewijzigd" (cross-platform en LF vs CRLF)
Ja, met Git kun je dingen kapot maken en er is een bepaalde leercurve.
Klopt, er is een leer curve. Dat is met alles zo. Tevens is alleen het laatste punt een algemene irritatie vwb cross platform programming :P Denk dat we daar nooit vanaf komen tot iedereen dezelfde code standaard hanteert :P

Maar kan je dat eerste punt is uitlichten, Bij mij op kantoor hebben we dat eigenlijk nooit gehad (na transfer van SVN --> Git). De rest is wel te begrijpen, hoort bij de leercurve
Brainstorm schreef op dinsdag 14 februari 2017 @ 12:35:
Wat betreft het oorspronkelijke topic: command line voor alles, behalve commit/merge/diff. Die doe ik met TortoiseGit, omdat ik juist die tool (net zoals SubversionGit) een hele goede conflict resolution vind hebben. Ik weet niet precies waarom, maar waar andere tooling bij sommige zaken een merge conflict geven, kan TortoiseGit deze juist zonder problemen mergen. Heeft me tot nu toe veel tijd bespaard :)
Voor CLI kan je is kijken naar OhMyZsh, heeft een mooie lijst aan aliases voor makkelijk gebruik van Git.
En ik vind persoonlijk de diff tools eigenlijk allemaal ontoereikend, kan via CLI het sneller doorlezen dan via GUI |:(

[ Voor 0% gewijzigd door Rushleader op 14-02-2017 13:11 . Reden: Typos =.= ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Brainstorm schreef op dinsdag 14 februari 2017 @ 12:35:
Het leren van Git kost inderdaad een aantal uur per persoon
Ik licht dit er even uit omdat dit nu precies het punt is; het kost je ff een paar uur. Dit itt tot een hoop andere zaken in ons vak. Ik ben afgelopen week bijvoorbeeld twee dagen bezig geweest om m'n blog volledig in docker te laten draaien (inclusief automatisch getriggerde Jenkins container build en deploy) puur om te leren. En dan is Git wat bij betreft wel een enorm stuk belangrijker dan Docker.

Ik snap best dat er een learning curve is, maar daar heb je je als dev gewoon maar even doorheen te werken. In plaats daarvan allerhande domme redenaties aanhalen waarom Git niet 'goed' is, is gewoon je eigen falen goedpraten wat mij betreft.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 08-10 21:29
Rushleader schreef op dinsdag 14 februari 2017 @ 13:01:
Maar kan je dat eerste punt is uitlichten, Bij mij op kantoor hebben we dat eigenlijk nooit gehad (na transfer van SVN --> Git). De rest is wel te begrijpen, hoort bij de leercurve
Code kwijt, bedoel je? Dat waren altijd fouten van de user zelf, meestal een combinatie van gebrek aan kennis en dan het verkeerde commando geven. Bijvoorbeeld een branch -D deleten. Ik kan me niet herinneren dat de code ooit ook echt verloren is gegaan, het is dan inderdaad even puzzelen om de juiste commando's te achterhalen.

De LR/CRLF fout werd trouwens gedeeltelijk veroorzaakt doordat de migratie TFS -> Git eerst gedeeltelijk via Windows nodes verliep, maar later via Linux nodes (het complete verhaal: TFS werd enkele maanden naar Git repos gesynchroniseerd om de nieuwe CI/CD stack op te bouwen. Synchronisatie ging per commit. Aan het einde van de rit TFS uitgezet en waren we over). Na de migratie hebben we met de juiste settings en gitattribute files het wel opgelost in de getroffen repos.
Rushleader schreef op dinsdag 14 februari 2017 @ 13:01:
Voor CLI kan je is kijken naar OhMyZsh, heeft een mooie lijst aan aliases voor makkelijk gebruik van Git.
En ik vind persoonlijk de diff tools eigenlijk allemaal ontoereikend, kan via CLI het sneller doorlezen dan via GUI |:(
Thx, zal er eens naar kijken :)

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Ik herken de reactie van Incaz ook wel.

Op mijn werk geef ik eens in de zoveel tijd collega's een training Git om gewoon eens de voor- en nadelen te benoemen. En ja, dan geef ik ook aan dat de terminologie van Git inconsistent is, de manpage's wel door robots geschreven te lijken zijn (serieus, als mensen zoiets als dit https://git-man-page-generator.lokaltog.net/ maken zegt het wel het een en ander) en de commandline syntax met alle parameters nogal eens voor verwarring kan zorgen.

Zie bijvoorbeeld de termen 'index' en 'staging area' die door elkaar heen gebruikt worden maar precies hetzelfde betekenen.

Of de syntax om met git checkout totaal verschillende dingen te doen: het wisselen van een branch, het aanmaken van een branch, het uitchecken van een oudere commit en tenslotte een oudere versie van een bestand (of pathspec) ophalen.

Dat gezegd hebbende vind ik het achterliggende datamodel van Git (de DAG) zo sterk dat je een enorme flexibele tool in handen hebt. Ik zou persoonlijk niet terug willen naar een tool als Subversion. Dan maar wat extra tijd besteden aan de nukken van Git.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Geweldig die hele discussie over git :P

Ik werk in een bedrijf dat vrijwel helemaal bouwt op Microsoft .NET en wij gebruiken nog steeds *trommelgeroffel* SourceSafe :')

Zelf heb ik al meerdere malen uitgezocht hoe we over kunnen naar git en thuis gebruik ik git (en github) sowieso.

De redenen dat we nog niet zover zijn:
- Mensen zijn gewend aan het checkout en locken systeem. Mergen vinden ze eng.
- Mergen werkt ook voor geen meter met de huidige projecten (Visual Studio projectfiles mergen niet lekker, zeker niet bij gigantische Windows Forms applicaties met tig dependencies). Dit zou in Visual Studio 2017 beter moeten worden, als we eindelijk met wildcards kunnen werken voor bestanden.
- Mensen zijn gewend aan een centrale repository. Waar ze nu gewoon iets uitchecken, editen en weer inchecken... zullen ze bij git het eerst lokaal moeten committen en daarna - na eventueel te mergen - het moeten pushen naar een bare repository. Dit vergt meer kennis. Ook van collega's die 60+ zijn, maar nog wel belangrijk werk doen.
- Last but not least: we werken veel met project references, zodat we code snel kunnen aanpassen in verschillende lagen van onze pakketten. Onze code is daardoor niet netjes volgens een boomstructuur ingericht, wat het moeilijk maakt om duidelijke "projecten voor git" in te richten. Dit is wel op te lossen door gedeelde libraries in aparte git repositories te plaatsen, en NuGet te gaan gebruiken om deze te referencen (dus stoppen met project references voor cross solution libraries), en vervolgens de specifieke projecten voor bepaalde solutions wel netjes onder te brengen in dezelfde tree.

Dit laatste zou grote voordelen voor ons kunnen bieden (eindelijk duidelijke changesets per solution), maar is ook tering veel werk.

Onze workflow is vooral erg ad hoc overigens.

Om dan toch weer on topic te gaan, welke git clients gebruik ik het liefste?

Ik heb voldoende kennis van git om gewoon de command line te gebruiken. Daarnaast gebruik ik gewoon de geïntegreerde clients van Visual Studio en VS Code.

PS:
Zelf ben ik ook fan van de GO Git Service (gogs.io). Die gebruik ik om thuis mijn eigen github achtige server te hebben :) Super handig voor projecten die je niet met de wereld wil delen.

Ask yourself if you are happy and then you cease to be.


Acties:
  • +1 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Lethalis schreef op dinsdag 14 februari 2017 @ 14:13:
Geweldig die hele discussie over git :P

Ik werk in een bedrijf dat vrijwel helemaal bouwt op Microsoft .NET en wij gebruiken nog steeds *trommelgeroffel* SourceSafe :')
SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. Gecondoleerd :X

Het engste vond ik altijd dat er bij grote databases werd aangeraden om regelmatig een 'ss analyze' te draaien om problemen te detecteren/op te lossen. We deden dit tijdens een nachtelijke batch en elke ochtend zag ik in de log wel enge meldingen voorbij komen. Ik had nooit het vertrouwen dat ik altijd terug kon gaan naar elke voorgaande commit.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Sardaukar schreef op dinsdag 14 februari 2017 @ 14:18:
[...]


SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. Gecondoleerd :X

Het engste vond ik altijd dat er bij grote databases werd aangeraden om regelmatig een 'ss analyze' te draaien om problemen te detecteren/op te lossen. We deden dit tijdens een nachtelijke batch en elke ochtend zag ik in de log wel enge meldingen voorbij komen. Ik had nooit het vertrouwen dat ik altijd terug kon gaan naar elke voorgaande commit.
Tsja, dit is typisch een voorbeeld van iets dat zo gegroeid is en wat gewoon een enorme hoeveelheid werk zou kosten om vanaf te komen. En die energie kunnen we beter aan onze producten besteden.

Wel maken we elke nacht back-ups van SourceSafe. En ja, we maken ons ook zorgen om de betrouwbaarheid.

Ik ben wel begonnen met een eerste opzet om NuGet intern te gaan gebruiken om projecten los te koppelen van elkaar. Zodra we zover zijn, zouden we langzamerhand wat projecten kunnen verhuizen naar git.

Maar ik ben wel bang dat we dan vrij lang in zo'n situatie blijven hangen waarbij niet alle code bij elkaar staat en dat is ook vervelend.

Overigens hebben we ook nog een groot VB6 project draaien bij klanten ;)

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Lethalis schreef op dinsdag 14 februari 2017 @ 14:13:
Super handig voor projecten die je niet met de wereld wil delen.
Ik gebruik gewoon Bitbucket. Hoef ik zelf de hosting niet te regelen en met webhooks/pipelines kun je ook builds op je serveer triggeren bijvoorbeeld.
Sardaukar schreef op dinsdag 14 februari 2017 @ 14:18:
SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. Gecondoleerd :X
Idem. We hadden ook de regel ingesteld dat je als je vergat een file te unlocken chocolade mee moest nemen :D

Fink aangekomen toen :(
Lethalis schreef op dinsdag 14 februari 2017 @ 14:24:
Tsja, dit is typisch een voorbeeld van iets dat zo gegroeid is en wat gewoon een enorme hoeveelheid werk zou kosten om vanaf te komen. En die energie kunnen we beter aan onze producten besteden.
Tja. Ik vind dat gewoon een slap excuus. Als je met de developers vindt dat je over moet, moet het gewoon gebeuren. Kun je het beter eerder dan later doen, dan heb je er sneller profijt van. Daarnaast kost het maken van een git-repo gewoon geen tijd. Het importeren van SS history is misschien lastiger maar dan kun je ook gewoon die SS repo laten bestaan in een read-only mode. Iets minder handig misschien, maar een git repo maken is een paar minuten werk,

[ Voor 36% gewijzigd door Hydra op 14-02-2017 14:52 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Hydra schreef op dinsdag 14 februari 2017 @ 14:51:
[...]
Idem. We hadden ook de regel ingesteld dat je als je vergat een file te unlocken chocolade mee moest nemen :D
Ja, mensen die op vakantie gingen en nog ergens een lock hadden staan. Altijd leuk! _/-\o_

Gelukkig had ik ook het wachtwoord om die lock weer genadeloos te verwijderen.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Sardaukar schreef op dinsdag 14 februari 2017 @ 14:52:
Gelukkig had ik ook het wachtwoord om die lock weer genadeloos te verwijderen.
Had iedere developer bij ons idd. Wat een dramasysteem was dat zeg.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Hydra schreef op dinsdag 14 februari 2017 @ 14:51:
[...]
Tja. Ik vind dat gewoon een slap excuus.
Redelijk kort door de bocht. Een organisatie met een monolitische applicatie waarbij alles in 1 versiebeheer systeem zit is niet in een ochtend overgezet naar een git workflow waarbij netjes dat hele project is omgezet in losse dependencies.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op dinsdag 14 februari 2017 @ 14:51:
[...]
Tja. Ik vind dat gewoon een slap excuus. Als je met de developers vindt dat je over moet, moet het gewoon gebeuren. Kun je het beter eerder dan later doen, dan heb je er sneller profijt van. Daarnaast kost het maken van een git-repo gewoon geen tijd. Het importeren van SS history is misschien lastiger maar dan kun je ook gewoon die SS repo laten bestaan in een read-only mode. Iets minder handig misschien, maar een git repo maken is een paar minuten werk,
Het aanmaken van een git repo is idd een paar minuten werk, ervoor zorgen dat onze projecten zo ingericht zijn dat we ook optimaal gebruik van git kunnen maken daarentegen is heel veel werk :)

We hebben zelfs hybride VB6 / .NET applicaties.

Maar het grootste probleem zijn dus die libraries die overal en nergens gebruikt worden. We hebben dus een dependency hell die we eerst moeten oplossen (vandaar dat ik intern NuGet wil gaan gebruiken). Daarnaast moeten de projecten netjes in boomstructuren worden ingericht, zodat we ze ook netjes in git kunnen onderbrengen. Zodat we daarna ook duidelijke commits voor project X hebben.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Lethalis schreef op dinsdag 14 februari 2017 @ 14:58:
[...]
We hebben zelfs hybride VB6 / .NET applicaties.
Wat maken jullie dan voor software als ik vragen mag?

Acties:
  • +1 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
Sardaukar schreef op dinsdag 14 februari 2017 @ 14:55:
[...]


Redelijk kort door de bocht. Een organisatie met een monolitische applicatie waarbij alles in 1 versiebeheer systeem zit is niet in een ochtend overgezet naar een git workflow waarbij netjes dat hele project is omgezet in losse dependencies.
Dat hoef ook niet in één keer.
Je kan die monoliet toch ook overpompen in Git, zodat je in ieder geval a) SourceSafe een nekschot kan geven en b) als developers alvast aan de Git basics kan wennen. Dat de workflow dan alsnog verre van optimaal is, dat is dan voorlopig nog maar even een feit. Je kan vanuit dat punt in ieder geval wel verder optimaliseren. Baby steps.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Sardaukar schreef op dinsdag 14 februari 2017 @ 14:55:
Redelijk kort door de bocht. Een organisatie met een monolitische applicatie waarbij alles in 1 versiebeheer systeem zit is niet in een ochtend overgezet naar een git workflow waarbij netjes dat hele project is omgezet in losse dependencies.
Dan snap ik, maar het blijft gewoon zo dat je dit een keer moet gaan doen. Het blijven vooruitschuiven is gewoon meer technische schuld opbouwen. Vandaar vind ik het een slap excuus. Wees dan eerlijk en zeg gewoon dat het je als bedrijf niet boeit dat je aan 't prutsen bent ;)
Lethalis schreef op dinsdag 14 februari 2017 @ 14:58:
Maar het grootste probleem zijn dus die libraries die overal en nergens gebruikt worden. We hebben dus een dependency hell die we eerst moeten oplossen (vandaar dat ik intern NuGet wil gaan gebruiken). Daarnaast moeten de projecten netjes in boomstructuren worden ingericht, zodat we ze ook netjes in git kunnen onderbrengen. Zodat we daarna ook duidelijke commits voor project X hebben.
Jullie gebruiken geen tool voor je dependencies? Holy crap. Dat je dat volhoudt!
Kwistnix schreef op dinsdag 14 februari 2017 @ 15:07:
Dat hoef ook niet in één keer.
Je kan die monoliet toch ook overpompen in Git, zodat je in ieder geval a) SourceSafe een nekschot kan geven en b) als developers alvast aan de Git basics kan wennen. Dat de workflow dan alsnog verre van optimaal is, dat is dan voorlopig nog maar even een feit. Je kan vanuit dat punt in ieder geval wel verder optimaliseren. Baby steps.
Exact!

[ Voor 47% gewijzigd door Hydra op 14-02-2017 15:10 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Hydra schreef op dinsdag 14 februari 2017 @ 15:08:
[...]
Dan snap ik, maar het blijft gewoon zo dat je dit een keer moet gaan doen. Het blijven vooruitschuiven is gewoon meer technische schuld opbouwen. Vandaar vind ik het een slap excuus. Wees dan eerlijk en zeg gewoon dat het je als bedrijf niet boeit dat je aan 't prutsen bent ;)
Er zijn bedrijven genoeg die een product in zo'n structuur hebben zitten en daar blijkbaar nog mee kunnen werken ook. Zelfs Windows zelf zit in één gigantische repository waarvan de dependencies blijkbaar (nog) niet duidelijk te scheiden zijn. Mooi artikel daarover hier.

Microsoft is dan blijkbaar ook maar aan het prutsen volgens jou?

Beslissingen, zeker die met bedrijfs-economische impact worden nu eenmaal niet altijd alleen maar op basis van techniek genomen.

Dat gezegd hebbende: ik zou ook een traject in gang zetten om eens te kijken hoe je hier nu verder mee wilt gaan.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op dinsdag 14 februari 2017 @ 15:08:
[...]
Dan snap ik, maar het blijft gewoon zo dat je dit een keer moet gaan doen. Het blijven vooruitschuiven is gewoon meer technische schuld opbouwen. Vandaar vind ik het een slap excuus. Wees dan eerlijk en zeg gewoon dat het je als bedrijf niet boeit dat je aan 't prutsen bent ;)
Hoewel ik het theoretisch gezien met je eens ben, is de praktijk helaas wat minder rooskleurig.

Alles overharken naar git in 1 keer is niet te doen. Dan gaat er zoveel kapot dat wil je niet weten.

Een jaartje of 8 geleden heb ik zoiets dergelijks geprobeerd met Team Foundation Server. Dit leidde toen tot zoveel ellende dat we noodgedwongen terug moesten migreren naar SourceSafe. En sindsdien is het een moeilijk onderwerp.

En eerlijk is eerlijk, veel collega's boeit het echt niet. Die willen er zelf dan ook weinig tijd aan kwijt zijn.
Jullie gebruiken geen tool voor je dependencies? Holy crap. Dat je dat volhoudt!
Visual Studio stelt je in staat om dit heel lang vol te houden met project references. Je voegt simpelweg een bestaand project toe aan je solution (ook al staat dit project helemaal ergens anders op jouw schijf) en voegt daarna een directe reference toe aan deze project node. Bij het builden wordt de boel dan automatisch gecompileerd en meegenomen.

Met andere woorden, Visual Studio maakt het je heel makkelijk om te prutsen :)

Anyways, omdat de vorige migratie naar TFS een enorme afgang was, lijkt het mij veel verstandiger om dit in kleine stappen aan te pakken.

Mijn insteek is dan ook om eerst te beginnen met het gebruiken van NuGet en daarna de projecten stapsgewijs te ordenen, zodat ze daarna wel stuk voor stuk naar git kunnen. Eerst afsplitsen en dan verhuizen dus.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Sardaukar schreef op dinsdag 14 februari 2017 @ 15:20:
Microsoft is dan blijkbaar ook maar aan het prutsen volgens jou?
Absoluut.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sardaukar
  • Registratie: Januari 2003
  • Laatst online: 09:43
Niet eens een smiley? Disappointed ;)

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Sardaukar schreef op dinsdag 14 februari 2017 @ 15:01:
[...]
Wat maken jullie dan voor software als ik vragen mag?
Branchespecifieke software die bij aardig wat klanten in Nederland draait waar ze hun volledige administratie en bedrijfsprocessen mee ondersteunen. In grote lijnen software waar je orders intikt, voorraden in bijhoudt, facturatie mee doet, volledige boekhouding inzit, koppelingen met een hele reeks externe leveranciers, rapportages enzovoorts.

De eerste versie van de software was ooit een DOS pakket ;) Daarna kwam de eerste Windows versie in VB6. En ik werk vooral aan de derde generatie die volledig in .NET geschreven is.

Maar de vorige versie heeft dus ook al wat .NET modules die via interop forms worden getoond :) Alles om te voorkomen dat je nieuwe VB6 code moet schrijven ;)

[ Voor 9% gewijzigd door Lethalis op 14-02-2017 16:23 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • +1 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Hydra schreef op dinsdag 14 februari 2017 @ 13:29:
[...]
Ik licht dit er even uit omdat dit nu precies het punt is; het kost je ff een paar uur.
Alleen is dit dus niet zomaar waar. Het kostte jou een paar uur. Mooi voor jou. Het kost veel anderen een paar uur - mooi voor hen. Het betekent zeker niet dat het iedereen een paar uur kost en dat het dan lukt en werkt, vooral niet omdat het heel erg gericht is op een bepaalde groep gebruikers met een bepaalde denkcultuur. Er zijn ook genoeg voorbeelden te vinden van ervaren developers die wel degelijk veel tijd hebben geinvesteerd in git en nog steeds tot dezelfde conclusies komen.

En ik hoor blijkbaar tot de mensen die niet het niet zomaar volgt. Mijn talenten liggen ergens anders: ik vind het daarom makkelijk om aan te sluiten bij veel gebruikers en hun intuities, maar moeilijk om aan te sluiten bij de structuur van git.

Dan kun je wel heel trots zeggen: 'jij faalt en ik deug' maar... het is nogal onaardig, vind je niet? Volgens mij zijn er heel veel verschillende eigenschappen die nuttig kunnen zijn in software development. En daarnaast is een beetje medemenselijkheid en respect eigenlijk ook nooit verkeerd. Zelfs al doet Linus het anders voorkomen.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
incaz schreef op dinsdag 14 februari 2017 @ 16:53:
[...]


Alleen is dit dus niet zomaar waar. Het kostte jou een paar uur. Mooi voor jou. Het kost veel anderen een paar uur - mooi voor hen. Het betekent zeker niet dat het iedereen een paar uur kost en dat het dan lukt en werkt, vooral niet omdat het heel erg gericht is op een bepaalde groep gebruikers met een bepaalde denkcultuur. Er zijn ook genoeg voorbeelden te vinden van ervaren developers die wel degelijk veel tijd hebben geinvesteerd in git en nog steeds tot dezelfde conclusies komen.

En ik hoor blijkbaar tot de mensen die niet het niet zomaar volgt. Mijn talenten liggen ergens anders: ik vind het daarom makkelijk om aan te sluiten bij veel gebruikers en hun intuities, maar moeilijk om aan te sluiten bij de structuur van git.
En wat bedoel je dan met "structuur", het zal waarschijnlijk niet over de innerworkings gaan, maar over de commando structuur ? best werkbare workflow ?

Mjah niet alles is even consequent, maar goed dat komt wel vaker voor, kennelijk bezit je soms toch de gave om je er te erg over opwinden dat je vindt dat het anders had gemoeten, maar niet bij machten bent om het zelf anders te maken, maar vervolgens je er wel tegen blijft verzetten.

Tevens ben ik nog steeds benieuwd hoe je git dan voornamelijk gebruikt.
Enerzijds meen ik dat je had aangegeven dat je het incidenteel gebruikt en daardoor niet echt routine krijgt en de ingewikkelde dingen onthoudt.
Maar anderzijds raak je ogenschijnlijk allerlei dingen kwijt, wat met de basis commando's en een vrij basic flow toch ook een bepaalde gave moet zijn. Kortom spaar je dan enorm veel uncommited werk op waar je dan in een brei verzuipt en tijdens committen gekke dingen mee doet, of wat doe je dan die keren dat je het wel gebruikt na zo'n grote tijdsspanne ?

Misschien werkt soms "go with the flow" toch wel beter in sommige gevallen, of uitkijken naar een alternatieve tool (mercurial, svn, cvs) of naar een alternatieve werkwijze.

offtopic:
PS. Overigens werkt "opensource" over het algemeen volgens het principe van "scratch your own itch". Als je mazzel hebt is er iemand met een zelfde itch (of er brood in ziet voor een semi commercieel product) en krijg je die feature, of heb je een zak geld en huur je een ontwikkelaar die het voor je maakt als je het zelf niet kunt, maar kennelijk zijn er in dit geval:

Of niet zoveel mensen met deze itch.
Of is het (op sommige vlakken) technisch niet mogelijk het te vereenvoudigen
Of hebben de mensen die deze itch voelen de combinatie van zelf niet de mogelijkheden om het te verbeteren en er ook geen geld voor over.

[ Voor 13% gewijzigd door gekkie op 14-02-2017 17:17 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
incaz schreef op dinsdag 14 februari 2017 @ 16:53:
Alleen is dit dus niet zomaar waar. Het kostte jou een paar uur. Mooi voor jou. Het kost veel anderen een paar uur - mooi voor hen. Het betekent zeker niet dat het iedereen een paar uur kost en dat het dan lukt en werkt, vooral niet omdat het heel erg gericht is op een bepaalde groep gebruikers met een bepaalde denkcultuur. Er zijn ook genoeg voorbeelden te vinden van ervaren developers die wel degelijk veel tijd hebben geinvesteerd in git en nog steeds tot dezelfde conclusies komen.
Onzin. Het is gewoon een kwestie van niet doorzetten. Je bent jezelf continue aan het wijsmaken dat je talenten "ergens anders liggen". Zoals iemand anders al zei; als je de tijd die je in dit topic had gestoken nou in het leren van Git had gestoken kun je prima een basis feature branch workflow gebruiken die ook in teams werkt.

Het is onmogelijk om niet in een paar uur de basis van git te snappen en ondertussen wel snugger genoeg zijn om aan complexe software te werken.
En ik hoor blijkbaar tot de mensen die niet het niet zomaar volgt. Mijn talenten liggen ergens anders: ik vind het daarom makkelijk om aan te sluiten bij veel gebruikers en hun intuities, maar moeilijk om aan te sluiten bij de structuur van git.
Ik heb geen enkel probleem om me te verplaatsen in gebruikers en hun intuities. De meeste goeie developers niet; je wordt namelijk betaald problemen op te lossen. Als je niet naar een gebruiker kunt luisteren ben je gewoon een slechte dev. Niks "anders denken". Het is niet het een of het ander. Kennelijk heb jij niet de basale technische skills en/of drive een tool te leren die de de facto standaard tegenwoordig is voor source control. Prima. Maar ga niet doen alsof je beter bent ofzo; het is gewoon een groot gebrek.

Ik stelde eerder de vraag hoe jullie peer review flow eruit ziet. Ik ben nog steeds erg benieuwd hoe jullie dat ingericht hebben zonder een goed version control systeem.
Dan kun je wel heel trots zeggen: 'jij faalt en ik deug' maar... het is nogal onaardig, vind je niet?
Nou en? Ik heb het je meerdere malen aardig gezegd. Dan vind je me maar onaardig. Ik heb echt nul komma nul met ontwikkelaars die hun vak niet serieus nemen. Ik mag namelijk veelal de rotzooi die ze veroorzaakt hebben komen opruimen. Je claims over Git (waarvan de claim dat Git meer een tool is voor product managers en systeembeheerders wel het toppunt is) zijn klinkklare onzin. Je blijft maar rare redenaties maken over waarom Git niet goed is. Source control is een core developer skill. Punt. Git is de de facto standaard. Punt. Hierover is gewoon geen discussie mogelijk. Als je dit vertikt te erkennen ben je wat mij betreft gewoon geen developer maar een amateur.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Als is de vraag waarom git uiteindelijk meer tractie heeft gekregen van mecurial, heb zelf eigenlijk geen idee.

Het zou wellicht non-technisch van aard kunnen zijn, zoals github wat de doorslag heeft gegeven qua "marketing" tov bitbucket wat in die tijd dan weer mecurial hosting only was ?

Acties:
  • 0 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 08-10 21:29
GitHub is zeker wel een grote factor geweest ja, hoewel in dit artikel uit 2014 gesteld wordt dat de funding en groei van GitHub pas op gang kwamen toen Git al populair aan het worden was. De primaire reden is juist de efficientere workflow voor developers. Een recenter artikel laat zo'n beetje hetzelfde zien. Je ziet in de grafiek ook dat Mercurial nog best wel aardig mee ging qua groei, tot 2012.

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Brainstorm schreef op dinsdag 14 februari 2017 @ 21:40:
GitHub is zeker wel een grote factor geweest ja, hoewel in dit artikel uit 2014 gesteld wordt dat de funding en groei van GitHub pas op gang kwamen toen Git al populair aan het worden was. De primaire reden is juist de efficientere workflow voor developers. Een recenter artikel laat zo'n beetje hetzelfde zien. Je ziet in de grafiek ook dat Mercurial nog best wel aardig mee ging qua groei, tot 2012.
Hmm als ik dat grafiekje moet interpreteren dan beginnen git en mercurial langzaam maar zeker uit elkaar te lopen na de intro van github. Volgende markante punt is bitbucket wat ook aan git gaat doen, vanaf dan lijkt eigenlijk de handdoek min of meer in de ring geworpen.
Al zijn er met mozilla, openjdk en python nog wel een aantal projecten die van mecurial gebruik maken.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Brainstorm schreef op dinsdag 14 februari 2017 @ 21:40:
GitHub is zeker wel een grote factor geweest ja, hoewel in dit artikel uit 2014 gesteld wordt dat de funding en groei van GitHub pas op gang kwamen toen Git al populair aan het worden was.
Mooi: "It’s clear that now would be a good time to master Git.".
gekkie schreef op dinsdag 14 februari 2017 @ 18:44:
Als is de vraag waarom git uiteindelijk meer tractie heeft gekregen van mecurial, heb zelf eigenlijk geen idee.
Mercurial en Git zijn eigenlijk op hetzelde moment gestart en ik vermoed dat de keuze van het Linux kernel project samen met de naam van Torvalds ook erg geholpen heeft. Verder vond ik dit artikel wel een interessante verzameling argumenten.

[ Voor 29% gewijzigd door Hydra op 15-02-2017 08:23 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Ik denk ook dat het gebruiken van git voor het Linux kernel project mensen vertrouwen gaf. Zelf zie ik dat immers ook zo.

"Als een gigantisch project als de Linux kernel met git beheerd kan worden, dan moet het ook lukken voor onze eigen code"

Natuurlijk loop je dan tegen allerlei beperkingen van de Microsoft tools aan, zoals de manier waarop csproj en vbproj bestanden werken, waardoor je bij een merge pattern de hele dag niks anders aan het doen bent dan projectbestanden mergen :') Maar ja, daar kan git niks aan doen.

Ik heb samen - met veel andere developers - online veel gezeurd hierover bij Microsoft en ze bouwen gelukkig wildcard support in. MSBuild ondersteunde dit al langer, maar Visual Studio helaas niet. Dat .NET Core weer msbuild gaat gebruiken is voor ons indirect een zegen, omdat de tooling eindelijk een beetje aandacht krijgt.

Het liefste had ik gezien dat ze zoiets als Gradle zouden gaan gebruiken met een DSL, maar XML is altijd nog beter dan project.json voor het beschrijven van een project (kun je tenminste commentaar er in opnemen etc).

Ik bedoel, hoe moeilijk kan het zijn om gewoon met een build script te werken. Maar ja. Bij Java doen mensen niks liever dan XML laten verdwijnen en Microsoft brengt het terug. [/rant]

Wat dat betreft kan ik helaas ook niks anders concluderen dan dat Microsoft aan het prutsen is.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Lethalis schreef op woensdag 15 februari 2017 @ 08:45:
Natuurlijk loop je dan tegen allerlei beperkingen van de Microsoft tools aan, zoals de manier waarop csproj en vbproj bestanden werken, waardoor je bij een merge pattern de hele dag niks anders aan het doen bent dan projectbestanden mergen :') Maar ja, daar kan git niks aan doen.
Gelukkig hebben we dat in Javaland al een jaar of 10 opgelost; niemand checkt IDE specieke meuk in ;)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
En er is gelukkig ook zoiets als .gitignore of desnoods .git/info/excludes.

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Hydra schreef op woensdag 15 februari 2017 @ 08:23:
[...]
Verder vond ik dit artikel wel een interessante verzameling argumenten.
Thx, vanavond maar eens lezen :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Kwistnix schreef op woensdag 15 februari 2017 @ 11:26:
En er is gelukkig ook zoiets als .gitignore of desnoods .git/info/excludes.
Ja, dat is dus de manier waarop je standaard in Java projecten voorkomt dat Eclipse/IntelliJ/Netbeans project files ingecheckt worden. Zelfde geldt voor je build output.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
Hydra schreef op woensdag 15 februari 2017 @ 11:52:
[...]


Ja, dat is dus de manier waarop je standaard in Java projecten voorkomt dat Eclipse/IntelliJ/Netbeans project files ingecheckt worden. Zelfde geldt voor je build output.
Yep, maar ik neem aan dat dit geen mysterieuze Git feature is waarvan alleen Javanen het bestaan kennen.

Acties:
  • 0 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 08-10 21:29
Nee, maar .csproj kun je simpelweg niet excluden omdat het geen tijdelijk of IDE-specifiek bestand is. Het bevat zeg maar de properties van een specifiek project, zoals references en andere instellingen. 1 van de nadelen is dat ze dus bijvoorbeeld bevatten "dit project is afhankelijk van library X versie Y". Op het moment dat je een nieuwe versie Z wilt gebruiken, verandert dus de inhoud van de csproj. En, om het leuk te maken, alle transitive dependencies worden ook expliciet opgenomen.

Dat, in combinatie met splitsen (Nuget packages, project references) maakt dat die files relatief vaak kunnen veranderen en dus gevoeliger zijn voor merge conflicten. MS heeft dat ook al lang geleden onderkent en probeert dat met .NET Core recht te trekken. Het is inderdaad erg tijdrovend namelijk :(

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Kwistnix schreef op woensdag 15 februari 2017 @ 12:08:
[...]


Yep, maar ik neem aan dat dit geen mysterieuze Git feature is waarvan alleen Javanen het bestaan kennen.
Het grote verschil is dat je bij Java - zolang je een build tool gebruikt als Maven of Gradle - altijd de IDE specifieke bestanden kunt genereren.

Visual Studio en msbuild hebben echter al die project en solution files gewoon nodig om te werken. Als je die niet in source control opneemt, dan wens ik je veel succes bij het openen van een solution die tig dependencies heeft en uit meerdere projecten bestaat.

Of om het in C++ termen te zeggen: er is geen scheiding tussen de makefile en de IDE project files. Het is alles in 1.
Brainstorm schreef op woensdag 15 februari 2017 @ 12:55:
Dat, in combinatie met splitsen (Nuget packages, project references) maakt dat die files relatief vaak kunnen veranderen en dus gevoeliger zijn voor merge conflicten. MS heeft dat ook al lang geleden onderkent en probeert dat met .NET Core recht te trekken. Het is inderdaad erg tijdrovend namelijk :(
Het is alleen jammer dat ze dan eerst iets verzinnen dat nergens op slaat en door het bestandsformaat erg beperkt wordt (project.json), om vervolgens weer terug te gaan naar msbuild dat qua featureset het niet eens haalt bij wat in Java land Maven is.

Terwijl ze daar vaak al DSL's gebruiken, zoals bij Gradle, omdat XML omslachtig is en onhandig is om te mergen.

Zoals ik het zie, zou Microsoft met een nieuw formaat moeten komen waarin je een DSL kunt gebruiken.

Al is het friggin' VB for all I care:

code:
1
2
3
4
5
6
7
ProjectName = "Test"
AddReference("System.Drawing")
Target = "dll"

PublishTask {
  Target = "ftp://123.123.123.123/www/test"
}


Zoiets. Waarom kan de hele wereld dit wel, maar Microsoft niet? XML leest rot, merge't rot, is gewoon rot voor dit soort taken. En JSON is helemaal belachelijk. Je wil gewoon commentaar kunnen opnemen in de build files, andere build files kunnen includen, plugins kunnen gebruiken, enzovoorts.

[ Voor 56% gewijzigd door Lethalis op 15-02-2017 13:38 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
Lethalis schreef op woensdag 15 februari 2017 @ 13:10:
[...]

Het grote verschil is dat je bij Java - zolang je een build tool gebruikt als Maven of Gradle - altijd de IDE specifieke bestanden kunt genereren.

Visual Studio en msbuild hebben echter al die project en solution files gewoon nodig om te werken. Als je die niet in source control opneemt, dan wens ik je veel succes bij het openen van een solution die tig dependencies heeft en uit meerdere projecten bestaat.

Of om het in C++ termen te zeggen: er is geen scheiding tussen de makefile en de IDE project files. Het is alles in 1.
Ach so. Dat hebben die jongens van Microsoft dan goed voor elkaar anno 2017.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Lethalis schreef op woensdag 15 februari 2017 @ 13:10:
Het is alleen jammer dat ze dan eerst iets verzinnen dat nergens op slaat en door het bestandsformaat erg beperkt wordt (project.json), om vervolgens weer terug te gaan naar msbuild dat qua featureset het niet eens haalt bij wat in Java land Maven is.

Terwijl ze daar vaak al DSL's gebruiken, zoals bij Gradle, omdat XML omslachtig is en onhandig is om te mergen.
Mwa. Het grote voordeel van Gradle is dat je complete build scripts in je build.gradle kan programmeren. Het grote nadeel van Gradle is dat mensen complete build scripts in hun build.gradle programmeren.

In teamverband heb ik dan ook liever Maven :D

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Brainstorm schreef op woensdag 15 februari 2017 @ 12:55:
Nee, maar .csproj kun je simpelweg niet excluden omdat het geen tijdelijk of IDE-specifiek bestand is. Het bevat zeg maar de properties van een specifiek project, zoals references en andere instellingen. 1 van de nadelen is dat ze dus bijvoorbeeld bevatten "dit project is afhankelijk van library X versie Y". Op het moment dat je een nieuwe versie Z wilt gebruiken, verandert dus de inhoud van de csproj. En, om het leuk te maken, alle transitive dependencies worden ook expliciet opgenomen.

Dat, in combinatie met splitsen (Nuget packages, project references) maakt dat die files relatief vaak kunnen veranderen en dus gevoeliger zijn voor merge conflicten. MS heeft dat ook al lang geleden onderkent en probeert dat met .NET Core recht te trekken. Het is inderdaad erg tijdrovend namelijk :(
Maar je vergeet nog het leukste en dat is - zolang er geen wildcard support is - dat elk bestandje er in staat:

http://haacked.com/archiv...6/csproj-merge-conflicts/

Het formaat an sich zorgt ervoor dat je merge conflicts krijgt en het mergen ook nog eens mislukt.

Zodra jij alleen maar HelloWorld.cs toevoegt aan een project en een collega tegelijkertijd Test.cs, dan is het al klaar. Dat kan zich de gemiddelde Java dev niet eens voorstellen :+ Die is gewend dat alles wat in zijn src map staat, simpelweg bij het project hoort. Dus wanneer meerdere mensen classes toevoegen, is er niks aan de hand.
Hydra schreef op woensdag 15 februari 2017 @ 13:40:
[...]
Mwa. Het grote voordeel van Gradle is dat je complete build scripts in je build.gradle kan programmeren. Het grote nadeel van Gradle is dat mensen complete build scripts in hun build.gradle programmeren.

In teamverband heb ik dan ook liever Maven :D
Daar is wel iets voor te zeggen.

Maar dan nog is een Maven bestand een stuk beter te behappen dan een csproj bestand. Je kan gewoon netjes alles zelf documenteren, parameters opnemen voor versies van libraries die bij elkaar horen (bijv. de versie van Spring), enzovoorts.

En omdat je niet elk class bestand apart hoeft te includen, kom je er ook veel minder vaak mee in aanraking.

Dit staat bijvoorbeeld in de csproj van een testproject van mij:
code:
1
2
3
4
5
6
7
8
9
10
<ItemGroup>
    <Compile Include="Models\AuthenticationLogon.cs" />
    <Compile Include="Models\AuthenticationRequest.cs" />
    <Compile Include="Core\WebTokenFunctions.cs" />
    <Compile Include="CustomBootstrapper.cs" />
    <Compile Include="Extensions\NancyModuleExtensions.cs" />
    <Compile Include="Modules\AuthModule.cs" />
    <Compile Include="Modules\HalloModule.cs" />
    <Compile Include="Modules\HalloSecureModule.cs" />
...


Elke class wordt vernoemd. Dat is echt killing voor het aantal merges.

MSBuild kan dit:

code:
1
2
3
<ItemGroup>
    <Compile Include="Models\*.cs" />
...


Maar als je dat dan met Visual Studio opent, dan maakt hij doodleuk al die entries weer automatisch aan :)

Gotta love it.

Visual Studio 2017 zou dit nu eindelijk niet meer doen. Ik ben benieuwd...

[ Voor 36% gewijzigd door Lethalis op 15-02-2017 14:01 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Lethalis schreef op woensdag 15 februari 2017 @ 13:50:
Maar dan nog is een Maven bestand een stuk beter te behappen dan een csproj bestand. Je kan gewoon netjes alles zelf documenteren, parameters opnemen voor versies van libraries die bij elkaar horen (bijv. de versie van Spring), enzovoorts.
Precies. Dit is een willekeurig voorbeeld van een recente pom.xml, een build.gradle zou ongeveer dezelfde structuur hebben maar dan in Groovy.

Ik vind het ook altijd erg komisch als er weer op Reddit posts staan over nieuwe .Net Core releases met comments van mensen die menen dat Javanen nu en-masse overstappen op C#. De kracht van Java is niet Java zelf (C# is IMHO een betere taal), maar het ecosysteem.

https://niels.nu


  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Wel mooi dat een git build gelijk een berg unittests draait, duurt alleen wel een tijdje voordat je pakketje eindelijk is compleet is :)

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
gekkie schreef op donderdag 16 februari 2017 @ 10:49:
Wel mooi dat een git build gelijk een berg unittests draait, duurt alleen wel een tijdje voordat je pakketje eindelijk is compleet is :)
Hoe bedoel je? Falende tests breken bij ons altijd de build. Dan is de software stuk nl.

https://niels.nu


  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Hydra schreef op donderdag 16 februari 2017 @ 13:02:
[...]


Hoe bedoel je? Falende tests breken bij ons altijd de build. Dan is de software stuk nl.
een dpkg-buildpackage van git duurt een aardige tijd, compileren valt wel mee, runnen van alle tig tests een behoorlijke tijd, maar goed allemaal voor het goede doel :)

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 09-10 22:16
gekkie schreef op dinsdag 14 februari 2017 @ 22:10:
[...]
Al zijn er met mozilla, openjdk en python nog wel een aantal projecten die van mecurial gebruik maken.
Python zit sinds afgelopen vrijdag ook op GitHub :)

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op woensdag 15 februari 2017 @ 14:03:
[...]


Precies. Dit is een willekeurig voorbeeld van een recente pom.xml, een build.gradle zou ongeveer dezelfde structuur hebben maar dan in Groovy.

Ik vind het ook altijd erg komisch als er weer op Reddit posts staan over nieuwe .Net Core releases met comments van mensen die menen dat Javanen nu en-masse overstappen op C#. De kracht van Java is niet Java zelf (C# is IMHO een betere taal), maar het ecosysteem.
Ja ik geloof er ook niet in dat mensen gaan overstappen. Sowieso is dat niet te doen wanneer je met grote projecten werkt en een grote eigen verzameling van libraries hebt gemaakt.

Ik zit net zo vast aan .NET als jij aan Java waarschijnlijk. En zolang de .Net standard niet volwassen is, kan ik niet eens .NET Core gebruiken.

C# an sich is wel goed, maar begint ook gedateerd te worden wanneer je de taal met nieuwere talen als Kotlin, Scala of Swift gaat vergelijken.

Hoe hosten jullie eigenlijk de bare git repositories? Bij ons moet de code sowieso on premises blijven, dus online diensten vallen af.

Tot nu toe is gogs.io het leukste dat ik getest heb, maar misschien is er wel iets beters :)

[ Voor 3% gewijzigd door Lethalis op 16-02-2017 18:41 ]

Ask yourself if you are happy and then you cease to be.


  • Bigs
  • Registratie: Mei 2000
  • Niet online
Zelf Gitlab hosten. Krijg je er meteen een issue tracker, CI etc bij.

  • Lethalis
  • Registratie: April 2002
  • Niet online
Bigs schreef op donderdag 16 februari 2017 @ 18:44:
Zelf Gitlab hosten. Krijg je er meteen een issue tracker, CI etc bij.
De laatste keer dat ik gitlab heb getest, vond ik het een heel zwaar en traag pakket (qua memory usage etc).

Ook vond ik de backup en restore procedures ingewikkeld.

Ik zou bijna gewoon een Linux VM met alleen SSH gebruiken, maar iets zegt me dat mijn collega's dan gaan piepen dat het te ingewikkeld is :)

Ask yourself if you are happy and then you cease to be.


  • Bigs
  • Registratie: Mei 2000
  • Niet online
Lethalis schreef op donderdag 16 februari 2017 @ 21:49:
[...]

De laatste keer dat ik gitlab heb getest, vond ik het een heel zwaar en traag pakket (qua memory usage etc).

Ook vond ik de backup en restore procedures ingewikkeld.

Ik zou bijna gewoon een Linux VM met alleen SSH gebruiken, maar iets zegt me dat mijn collega's dan gaan piepen dat het te ingewikkeld is :)
Tegenwoordig met Gitlab Omnibus is het uitrollen op een kale Linux VM wel heel eenvoudig en betrouwbaar. Maar als je alleen een git repo zoekt is iets als gitolite ook al voldoende natuurlijk. Gitlab draait bij ons (10 users) in een VM met 6GB RAM dus ja echt licht is het niet.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Bigs schreef op donderdag 16 februari 2017 @ 18:44:
Zelf Gitlab hosten. Krijg je er meteen een issue tracker, CI etc bij.
Gitlab idd. Maar Jira voor issue tracking en Jenkins voor CI.

https://niels.nu


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 07-10 19:27

Matis

Rubber Rocket

GitLab CI O+

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 08-10 18:52
Bweg hebben die gitlab ruby jongens iets met go in elkaar proberen te klussen (gitlab-workhorse) maar die meuk compileert dus niet :S *zucht* geen zin om me te gaan verdiepen in go z'n package dependency management toolie. Dan maar de backup restoren en be done with it.

Acties:
  • 0 Henk 'm!

  • Brent
  • Registratie: September 2001
  • Laatst online: 12:09
Lethalis schreef op donderdag 16 februari 2017 @ 21:49:
[...]

De laatste keer dat ik gitlab heb getest, vond ik het een heel zwaar en traag pakket (qua memory usage etc).
Je kunt dan Gogs/gitea.io eens proberen. Heeft inmiddels ook features als PR, issues.

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Brent schreef op vrijdag 17 februari 2017 @ 12:52:
[...]

Je kunt dan Gogs/gitea.io eens proberen. Heeft inmiddels ook features als PR, issues.
Gogs.io heb ik thuis draaien. Enige wat ik eng vind, is dat het nog niet 1.0 is, dus ik vraag me af hoe de betrouwbaarheid van het geheel is. Voor thuis boeit dat niet zo, maar op mijn werk kan dat spannend zijn.

Kiezen tussen Gogs en Gitea vind ik ook moeilijk. Gitea is dan een fork van Gogs en noemt zich 1.0.1.

[update]
Ik heb Visual Studio 2017 RC geïnstalleerd en wat schetst mijn verbazing: ze hebben het csproj formaat alleen verbeterd voor .NET Core projecten. WTF Microsoft. Blijkbaar zitten we voor altijd vast in de project file merge hell.

Ze luisteren echt totaal niet daar, willen alleen maar hun .NET Core zooi doordrukken.

[ Voor 24% gewijzigd door Lethalis op 18-02-2017 08:04 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 08-10 11:08
Lethalis schreef op vrijdag 17 februari 2017 @ 14:34:
[...]

Gogs.io heb ik thuis draaien. Enige wat ik eng vind, is dat het nog niet 1.0 is, dus ik vraag me af hoe de betrouwbaarheid van het geheel is. Voor thuis boeit dat niet zo, maar op mijn werk kan dat spannend zijn.

Kiezen tussen Gogs en Gitea vind ik ook moeilijk. Gitea is dan een fork van Gogs en noemt zich 1.0.1.

[update]
Ik heb Visual Studio 2017 RC geïnstalleerd en wat schetst mijn verbazing: ze hebben het csproj formaat alleen verbeterd voor .NET Core projecten. WTF Microsoft. Blijkbaar zitten we voor altijd vast in de project file merge hell.

Ze luisteren echt totaal niet daar, willen alleen maar hun .NET Core zooi doordrukken.
Erg kortzichtig om .NET Core "zooi" te noemen, het klopt dat ze in het begin iets te enthousiast waren maar het is gewoon een goed product.

Het hele probleem is de backwards compatibiliteit. Ze willen niet de nieuwe .net core "zooi" doordrukken maar ze hebben juist .net core weer terug van project.json naar csproj's gebracht voor msbuild compatibiliteit.

.NET core is juist bedacht om een nieuw framework te maken wat niet alle legacy heeft. Anders was cross platform nooit mogelijk geweest.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
GrooV schreef op dinsdag 21 februari 2017 @ 08:02:
[...]
Erg kortzichtig om .NET Core "zooi" te noemen, het klopt dat ze in het begin iets te enthousiast waren maar het is gewoon een goed product.
Het is vooral een onvolledig product dat naar mijn mening pas vanaf versie 2.0 enigszins bruikbaar wordt:

https://github.com/dotnet/core/blob/master/roadmap.md

.NET Standard 2.0 brengt eindelijk wat meer API's naar het platform.

Maar afgezien daarvan is het jammer dat alle aandacht daar naartoe gaat. Mijn grootste probleem is eigenlijk niet eens .NET an sich, maar Visual Studio. De Visual Studio tooling zou naar mijn mening uitgebreid moeten worden, zodat ik ook met "oudere projecten" gebruik kan maken van modernere csproj files bijvoorbeeld.

Het is absurd dat project files voor Windows Forms, WPF, ASP.NET full anno nu nog steeds elk bestand noemen. Wildcards zijn leuk, maar eigenlijk wil je simpelweg gewoon alle bestanden in de project tree by default includen. Maak het desnoods optout, maar niet meer optin.

We leven niet meer in 1990 verdorie.

Eigenlijk wil ik gewoon hetzelfde als bij Java, namelijk een eigen build systeem kunnen gebruiken dat het project beschrijft en desnoods de csproj en sln bestanden gewoon genereert voor me. Ik heb al zitten kijken naar diverse build systemen voor .NET, maar die hergebruiken allemaal msbuild en genereren zelf geen Visual Studio bestanden voor zover ik kan zien.

[ Voor 14% gewijzigd door Lethalis op 21-02-2017 11:01 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 08-10 11:08
Lethalis schreef op dinsdag 21 februari 2017 @ 10:58:
[...]

Het is vooral een onvolledig product dat naar mijn mening pas vanaf versie 2.0 enigszins bruikbaar wordt:

https://github.com/dotnet/core/blob/master/roadmap.md

.NET Standard 2.0 brengt eindelijk wat meer API's naar het platform.

Maar afgezien daarvan is het jammer dat alle aandacht daar naartoe gaat. Mijn grootste probleem is eigenlijk niet eens .NET an sich, maar Visual Studio. De Visual Studio tooling zou naar mijn mening uitgebreid moeten worden, zodat ik ook met "oudere projecten" gebruik kan maken van modernere csproj files bijvoorbeeld.

Het is absurd dat project files voor Windows Forms, WPF, ASP.NET full anno nu nog steeds elk bestand noemen. Wildcards zijn leuk, maar eigenlijk wil je simpelweg gewoon alle bestanden in de project tree by default includen. Maak het desnoods optout, maar niet meer optin.

We leven niet meer in 1990 verdorie.

Eigenlijk wil ik gewoon hetzelfde als bij Java, namelijk een eigen build systeem kunnen gebruiken dat het project beschrijft en desnoods de csproj en sln bestanden gewoon genereert voor me. Ik heb al zitten kijken naar diverse build systemen voor .NET, maar die hergebruiken allemaal msbuild en genereren zelf geen Visual Studio bestanden voor zover ik kan zien.
We gaan off-topic maar die build tools zijn er gewoon, zoek eens op CAKE of FAKE

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
GrooV schreef op dinsdag 21 februari 2017 @ 12:01:
[...]

We gaan off-topic maar die build tools zijn er gewoon, zoek eens op CAKE of FAKE
Ik heb naar Cake gekeken, maar kon daar niets vinden dat project files genereert?

Mijn idee is dan natuurlijk dat je alleen het cake buildscript naar git commit, en dat je lokaal de csproj genereert met Cake (of wat dan ook).

[ Voor 20% gewijzigd door Lethalis op 21-02-2017 12:19 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 08-10 11:08
Lethalis schreef op dinsdag 21 februari 2017 @ 12:16:
[...]

Ik heb naar Cake gekeken, maar kon daar niets vinden dat project files genereert?

Mijn idee is dan natuurlijk dat je alleen het cake buildscript naar git commit, en dat je lokaal de csproj genereert met Cake (of wat dan ook).
Vroegâh had je NMaven/NPanday :)

Acties:
  • +2 Henk 'm!

Verwijderd

Hi guys,

I'm developer of Fork.

I'm from Prague and I don't speak Dutch. So I used Google Translate and understood that you guys miss a possibility to see a diff between two commits ;).

Fork does have that feature already for about a month or so. To diff two revisions just hold the CMD key and select the commits you want to compare.

I'm open to requests, so if you miss any other feature in Fork feel free to contact me directly by email (or use the feedback button on the toolbar).

Regards,
Dan

P.S. BTW, it was really tricky to post that, because the whole Czech is banned on that website. I tried Tor, but it's blocked too. I sent an email to support, but they didn't answer. :)

[ Voor 14% gewijzigd door Verwijderd op 22-02-2017 18:56 ]


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Heh, cool :) Welcome! If you have any questions feel free to ask; we're happy to translate for you.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Verwijderd schreef op woensdag 22 februari 2017 @ 18:52:
... and understood that you guys miss a possibility to see a diff between two commits ;).

Fork does have that feature already for about a month or so. To diff two revisions just hold the CMD key and select the commits you want to compare.
Thanks Dan. I updated the topic startpost.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.

Pagina: 1 2 Laatste