Echt heel verhelderd.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.
👉🏻 Blog 👈🏻
Echt heel verhelderd.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.
👉🏻 Blog 👈🏻
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.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.
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.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.
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.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.
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.(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.)
https://niels.nu
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.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.
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.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.
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.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.
Nogmaals: blijkbaar dus niet. Ik denk niet dat je hier zonder checkout kunt.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?
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.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.
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.
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.)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.
Never explain with stupidity where malice is a better explanation
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 👈🏻
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.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.
Verwijderd
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.incaz schreef op zaterdag 11 februari 2017 @ 11:26:
Maar git is een veiligheidsnet, dus vooral nuttig en nodig als het mis gaat.
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.En dan worden de zaken exponentieel snel complex.
[ Voor 9% gewijzigd door Verwijderd op 12-02-2017 15:33 ]
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.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.
https://niels.nu
?Verwijderd schreef op zondag 12 februari 2017 @ 15:31:
git is dus nooit bedoeld geweest om echt gebruikt te worden door gebruikers.
👉🏻 Blog 👈🏻
Waarom dat aanmatigend is? Omdat Hydra zich ongevraagd gaat bemoeien met carriere-advies.
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.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.
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.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.
Never explain with stupidity where malice is a better explanation
Verwijderd
Ik zei alleen maar wat mij ooit is verteld, maar met Linus Torvalds is het logisch inderdaad…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]
[ Voor 6% gewijzigd door Verwijderd op 12-02-2017 21:27 ]
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
Errrr. misschien mis ik iets, maar wat zoek jij dan precies in een "veiligheidsnet" ?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.)
[ Voor 26% gewijzigd door Bigs op 12-02-2017 20:57 ]
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.gekkie schreef op zondag 12 februari 2017 @ 19:46:
[...]
Errrr. misschien mis ik iets, maar wat zoek jij dan precies in een "veiligheidsnet" ?
Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.
Never explain with stupidity where malice is a better explanation
Het is kennelijk vooral de opdeling en benaming van de verschillende commando's (en opties) wat je dwars zit ?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.)
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 ?Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.
[ Voor 11% gewijzigd door gekkie op 12-02-2017 22:30 ]
Lekker op de bank
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.incaz schreef op zondag 12 februari 2017 @ 20:21:
Wat een constructieve inhoudelijke reactie. De IT is zo'n fijne, respectvolle sector.
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.ZaZ schreef op maandag 13 februari 2017 @ 00:21:
Tuurlijk; reset op de oude SHA en je kan het weer proberen.
https://niels.nu
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?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.
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.)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.
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.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.
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.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.
Never explain with stupidity where malice is a better explanation
👉🏻 Blog 👈🏻
Je kunt ook het repository op die server als remote op je lokale station instellen, dan kun je er gewoon naar pushen. DVCS FTWTheNephilim 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.
[..]
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.)kraades schreef op maandag 13 februari 2017 @ 10:46:
Volgens mij mis je de de big picture van software development.
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...)Heb je het artikel "expert beginner" van hierboven gelezen?
Never explain with stupidity where malice is a better explanation
Hebben jullie peer reviews en zo ja, hoe doen jullie die?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...)
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.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.)
[ Voor 61% gewijzigd door Hydra op 13-02-2017 11:43 ]
https://niels.nu
Waarom wil je dat weten?Hydra schreef op maandag 13 februari 2017 @ 11:39:
[...]
Hebben jullie peer reviews en zo ja, hoe doen jullie die?
Never explain with stupidity where malice is a better explanation
Waarom geef je niet gewoon antwoord? Ik vraag mij af hoe het bedrijf waar jij werkt intern werkt kwa processen.incaz schreef op maandag 13 februari 2017 @ 11:40:
Waarom wil je dat weten?
[ Voor 17% gewijzigd door Hydra op 13-02-2017 11:45 ]
https://niels.nu
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
Never explain with stupidity where malice is a better explanation
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").
https://niels.nu
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)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.
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.
Meestal niet heel veel anders dan je nu doet.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.
Proberen te solliciteren bij een van de GUI git clients dan maar ?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!'
[ Voor 3% gewijzigd door gekkie op 13-02-2017 12:31 ]
Misschien omdat mensen denken dat het gaat om het nut van versiebeheer aan te tonen, terwijl volgens mij niemand het daarmee oneens is.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
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.[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.
Never explain with stupidity where malice is a better explanation
Ik vraag me dan toch af wat je allemaal doet in zeg 80 a 90% van de tijd dat je git gebruikt.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.
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.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.
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 vindenincaz 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.
"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 ...)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.
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
https://niels.nu
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)
Klopt, er is een leer curve. Dat is met alles zo. Tevens is alleen het laatste punt een algemene irritatie vwb cross platform programmingBrainstorm 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.
Voor CLI kan je is kijken naar OhMyZsh, heeft een mooie lijst aan aliases voor makkelijk gebruik van Git.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 0% gewijzigd door Rushleader op 14-02-2017 13:11 . Reden: Typos =.= ]
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.Brainstorm schreef op dinsdag 14 februari 2017 @ 12:35:
Het leren van Git kost inderdaad een aantal uur per persoon
https://niels.nu
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.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
Thx, zal er eens naar kijkenRushleader 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
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)
Ask yourself if you are happy and then you cease to be.
SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. GecondoleerdLethalis schreef op dinsdag 14 februari 2017 @ 14:13:
Geweldig die hele discussie over git
Ik werk in een bedrijf dat vrijwel helemaal bouwt op Microsoft .NET en wij gebruiken nog steeds *trommelgeroffel* SourceSafe
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.Sardaukar schreef op dinsdag 14 februari 2017 @ 14:18:
[...]
SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. Gecondoleerd![]()
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.
Ask yourself if you are happy and then you cease to be.
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.Lethalis schreef op dinsdag 14 februari 2017 @ 14:13:
Super handig voor projecten die je niet met de wereld wil delen.
Idem. We hadden ook de regel ingesteld dat je als je vergat een file te unlocken chocolade mee moest nemenSardaukar schreef op dinsdag 14 februari 2017 @ 14:18:
SourceSafe? Volgens mij heb ik daar het laatst in 2000 nog mee gewerkt. Gecondoleerd
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,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.
[ Voor 36% gewijzigd door Hydra op 14-02-2017 14:52 ]
https://niels.nu
Ja, mensen die op vakantie gingen en nog ergens een lock hadden staan. Altijd leuk!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
Had iedere developer bij ons idd. Wat een dramasysteem was dat zeg.Sardaukar schreef op dinsdag 14 februari 2017 @ 14:52:
Gelukkig had ik ook het wachtwoord om die lock weer genadeloos te verwijderen.
https://niels.nu
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.
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 werkHydra 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,
Ask yourself if you are happy and then you cease to be.
Wat maken jullie dan voor software als ik vragen mag?Lethalis schreef op dinsdag 14 februari 2017 @ 14:58:
[...]
We hebben zelfs hybride VB6 / .NET applicaties.
Dat hoef ook niet in één keer.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 bentSardaukar 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.
Jullie gebruiken geen tool voor je dependencies? Holy crap. Dat je dat volhoudt!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.
Exact!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.
[ Voor 47% gewijzigd door Hydra op 14-02-2017 15:10 ]
https://niels.nu
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.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.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
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.Jullie gebruiken geen tool voor je dependencies? Holy crap. Dat je dat volhoudt!
Ask yourself if you are happy and then you cease to be.
Absoluut.Sardaukar schreef op dinsdag 14 februari 2017 @ 15:20:
Microsoft is dan blijkbaar ook maar aan het prutsen volgens jou?
https://niels.nu
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.Sardaukar schreef op dinsdag 14 februari 2017 @ 15:01:
[...]
Wat maken jullie dan voor software als ik vragen mag?
[ Voor 9% gewijzigd door Lethalis op 14-02-2017 16:23 ]
Ask yourself if you are happy and then you cease to be.
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.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.
Never explain with stupidity where malice is a better explanation
En wat bedoel je dan met "structuur", het zal waarschijnlijk niet over de innerworkings gaan, maar over de commando structuur ? best werkbare workflow ?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.
[ Voor 13% gewijzigd door gekkie op 14-02-2017 17:17 ]
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.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.
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.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.
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.Dan kun je wel heel trots zeggen: 'jij faalt en ik deug' maar... het is nogal onaardig, vind je niet?
https://niels.nu
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)
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.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.
Mooi: "It’s clear that now would be a good time to master Git.".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.
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.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.
[ Voor 29% gewijzigd door Hydra op 15-02-2017 08:23 ]
https://niels.nu
Ask yourself if you are happy and then you cease to be.
Gelukkig hebben we dat in Javaland al een jaar of 10 opgelost; niemand checkt IDE specieke meuk inLethalis 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 mergenMaar ja, daar kan git niks aan doen.
https://niels.nu
Thx, vanavond maar eens lezenHydra schreef op woensdag 15 februari 2017 @ 08:23:
[...]
Verder vond ik dit artikel wel een interessante verzameling argumenten.
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.Kwistnix schreef op woensdag 15 februari 2017 @ 11:26:
En er is gelukkig ook zoiets als .gitignore of desnoods .git/info/excludes.
https://niels.nu
Yep, maar ik neem aan dat dit geen mysterieuze Git feature is waarvan alleen Javanen het bestaan kennen.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.
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)
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.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 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.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
1
2
3
4
5
6
7
| ProjectName = "Test" AddReference("System.Drawing") Target = "dll" PublishTask { Target = "ftp://123.123.123.123/www/test" } |
[ Voor 56% gewijzigd door Lethalis op 15-02-2017 13:38 ]
Ask yourself if you are happy and then you cease to be.
Ach so. Dat hebben die jongens van Microsoft dan goed voor elkaar anno 2017.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.
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.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.
https://niels.nu
Maar je vergeet nog het leukste en dat is - zolang er geen wildcard support is - dat elk bestandje er in staat: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
Daar is wel iets voor te zeggen.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
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" /> ... |
1
2
3
| <ItemGroup> <Compile Include="Models\*.cs" /> ... |
[ Voor 36% gewijzigd door Lethalis op 15-02-2017 14:01 ]
Ask yourself if you are happy and then you cease to be.
Precies. Dit is een willekeurig voorbeeld van een recente pom.xml, een build.gradle zou ongeveer dezelfde structuur hebben maar dan in Groovy.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.
https://niels.nu
Hoe bedoel je? Falende tests breken bij ons altijd de build. Dan is de software stuk nl.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
https://niels.nu
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 doelHydra 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.
Python zit sinds afgelopen vrijdag ook op GitHubgekkie 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.
Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi
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.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.
[ Voor 3% gewijzigd door Lethalis op 16-02-2017 18:41 ]
Ask yourself if you are happy and then you cease to be.
De laatste keer dat ik gitlab heb getest, vond ik het een heel zwaar en traag pakket (qua memory usage etc).Bigs schreef op donderdag 16 februari 2017 @ 18:44:
Zelf Gitlab hosten. Krijg je er meteen een issue tracker, CI etc bij.
Ask yourself if you are happy and then you cease to be.
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.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
Gitlab idd. Maar Jira voor issue tracking en Jenkins voor CI.Bigs schreef op donderdag 16 februari 2017 @ 18:44:
Zelf Gitlab hosten. Krijg je er meteen een issue tracker, CI etc bij.
https://niels.nu
If money talks then I'm a mime
If time is money then I'm out of time
Je kunt dan Gogs/gitea.io eens proberen. Heeft inmiddels ook features als PR, issues.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).
Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos
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.Brent schreef op vrijdag 17 februari 2017 @ 12:52:
[...]
Je kunt dan Gogs/gitea.io eens proberen. Heeft inmiddels ook features als PR, issues.
[ Voor 24% gewijzigd door Lethalis op 18-02-2017 08:04 ]
Ask yourself if you are happy and then you cease to be.
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.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.
Het is vooral een onvolledig product dat naar mijn mening pas vanaf versie 2.0 enigszins bruikbaar wordt: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.
[ Voor 14% gewijzigd door Lethalis op 21-02-2017 11:01 ]
Ask yourself if you are happy and then you cease to be.
We gaan off-topic maar die build tools zijn er gewoon, zoek eens op CAKE of FAKELethalis 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.
Ik heb naar Cake gekeken, maar kon daar niets vinden dat project files genereert?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
[ Voor 20% gewijzigd door Lethalis op 21-02-2017 12:19 ]
Ask yourself if you are happy and then you cease to be.
Vroegâh had je NMaven/NPandayLethalis 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).
Verwijderd
[ Voor 14% gewijzigd door Verwijderd op 22-02-2017 18:56 ]
Heh, coolVerwijderd schreef op woensdag 22 februari 2017 @ 18:52:
I'm developer of Fork.
https://niels.nu
Thanks Dan. I updated the topic startpost.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.
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Apple iPhone 17 LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq