[VCS] Hoe reden van wijziging zien?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Wij werken met git en het ticket-systeem jira. Voor elke bug/feature maken wij een aparte branch die dan los getest kan worden. Wij geven die branches de naam: {developer}/{ticket-nummer}. Na testen wordt alles weer gemerged in de master-branch. Dit gaat allemaal goed.

Nu wil je soms de reden weten van een stukje code. Als eenmaal de code in de master-branch zit, dan lukt het (mij) niet om snel de oorspronkelijke branch en daarmee het ticket-nummer te vinden.

Een collega heeft daarom als gewoonte om in de code steeds als commentaar het ticket-nummer te zetten. Ik vind dit lelijk.

Zelf ben ik voorstander van het ticket-nummer in de commit te zetten. Als je dan blame doet, dan zie je naast de persoon direct het ticket-nummer waar je dan meer informatie kan vinden.

Enig alternatief dat ik kan bedenken is de reden zelf als commentaar in de code te zetten. Maar soms zijn er hele discussies in het ticket en om dat allemaal in de code te zetten lijkt mij ook niet handig.

Hoe denken jullie hierover?

Poll: Waar reden wijziging
Ticket als commentaar in de code
Ticket in commit
Beschrijving in code
Anders...
Tussenstand:
Afbeeldingslocatie: http://poll.dezeserver.nl/results.cgi?pid=398259&layout=6&sort=org
Ook een poll maken? Klik hier

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Ticketnummer in de commit-message is redelijk gebruikelijk volgens mij, dat doen wij ook. Voordeel hiervan is ook dat als je version control integration gebruikt in Jira dat je wijzigingen te zien zijn bij de ticket.

In de code zou een zooi worden..

[ Voor 7% gewijzigd door Radiant op 27-01-2017 12:27 ]


Acties:
  • 0 Henk 'm!

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Radiant schreef op vrijdag 27 januari 2017 @ 12:27:
version control integration gebruikt in Jira
Dat klinkt best handig. Heb ik van het weekend iets om te onderzoeken.

Acties:
  • 0 Henk 'm!

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
Precies dat, discussies horen in het ticket thuis, en wat er daadwerkelijk gedaan is in de commit message. Met het ticket nummer in de commit message en goede integratie in JIRA link je ze aan elkaar, zodat je altijd de redenering achter een stuk code kan teruglezen. Met een goede IDE kan je zelfs op het ticket nummer in de commit message klikken om het ticket te openen in JIRA.

[ Voor 16% gewijzigd door Tsunami op 27-01-2017 12:49 ]


Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 13:21
Wij zetten hier het ticketnummer met een (korte) beschrijving (eigenlijk titel) in de commit message.

Bijv:
RW-301 - ItemType X toegevoegd aan Y.

Dit zegt niet altijd precies wat je probeert te bekijken, maar geeft je wel een idee wat het doel van de gehele aanpassing is geweest. Waarom specifiek een stukje code is aangepast haal je er dan niet direct uit, maar de keren dat dat nodig is zijn er maar weinig.

En inderdaad: Integratie met Jira is heerlijk, je ziet in je commit welke melding het was, maar ook in je melding welke commit het was. Je kan (weet niet zeker of dat met of zonder uitbreidig is) ook vrij eenvoudig een commit terugvinden.

Acties:
  • 0 Henk 'm!

  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 07-10 16:38
Shit, ik wilde 'ticket in commit' klikken, heb per ongeluk de poll gesaboteerd, excuses.

Voordeel van de ticket in de commit message is dat jira middels een git plugin ook bij kan en zelfs de changesets kan weergeven per ticket.

Andersom kunnen de meeste IDE's wel annotations laten zien (git blame) en dan kan je middels de commit ID filteren van welke branch deze af kwam. Dit geld alleen als je alle branches lokaal hebt EN deze niet weggegooid zijn.
Voorbeeldje:
Bash:
1
2
3
4
5
6
tux@laptop ~/work/verybigrepo $ git log
commit 684ec6e4850b8bcdea187cea123e8b0c944115ff
........
tux@laptop ~/work/verybigrepo $ git branch --contains 684ec6e
* developer
tux@laptop ~/work/verybigrepo $ 


Als ik het me goed herinner kan deze soms weleens wat missen (bij een geresolvede merge conflict commit dacht ik dat je hem dan niet zou zien, weet ik niet zeker).

[ Voor 5% gewijzigd door LinuX-TUX op 27-01-2017 12:59 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Veel diensten à la Github en Gitlab kunnen ook commit messages uitlezen en op basis daarvan tickets sluiten. Wij werken op kantoor met Gitlab, en als ik daar een commitbericht tik zoals het volgende, dan wordt het bijbehorende ticket 123 meteen gesloten:
Add new feature X

Hier een langere omschrijving van wat het inhoudt.

Fixes #123
Jira doet hetzelfde volgens mij, en in al deze tools kun je ook terugzien welke commits er bij een ticket zijn komen kijken.

[ Voor 15% gewijzigd door NMe op 27-01-2017 13:07 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Hephaestos
  • Registratie: November 2007
  • Laatst online: 22-08 14:37
Eens met hierboven, ticket in de commits, jira (fisheye/crucible) de branches laten monitoren.

Zodra je dan op een ticket commit (en pushed), pakt crucible deze op, geeft Jira een duw, en zie je in de Jira ticket de commit verschijnen. Van daar kan je dan direct een code review aanmaken.

Tegen argumenten voor de rest:
Ticket ID in de code gaat over een jaar na wat refactoren, nieuwe features etc niet meer bijgehouden worden (of wel, maar dat kost weer maintenance tijd die je liever niet aan zo iets wilt spenderen voor jaren op rij)

Beschrijving in code kan altijd maar zou sowieso los staan van Jira/ticket, dus gewoon code documentatie. Geen discussies of andere onzin, daar is Jira voor.

[ Voor 41% gewijzigd door Hephaestos op 27-01-2017 14:30 ]


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 29-09 15:25
Wij doen ook ticketnummer in commit. In onze testsuite zetten we soms wél het ticketnummer in de code, bijvoorbeeld
code:
1
frisby.create('Filter by "referentie" (Bug #2585)')

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lang leve VS codelens + TFS (volgens mij werkt 't ook met GitLab).

Afbeeldingslocatie: https://tweakers.net/ext/f/XzN6MvqDy3Z2nmS0fWopqhUo/full.png

Best of all worlds. De workitems & commits gewoon "bij je code" zonder dat ze in je code staan.

[ Voor 10% gewijzigd door RobIII op 27-01-2017 15:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:34

Creepy

Tactical Espionage Splatterer

Ticket id + wat je hebt gewijzigd in commit inderdaad. En zoals al gezegd wordt pakt o.a. Jira dat ook direct op zodat je git commits ook direct bij je tickets zichtbaar zijn. En in je ticket het waarom etc.

[ Voor 15% gewijzigd door Creepy op 27-01-2017 15:35 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Swedish Clown
  • Registratie: November 2010
  • Laatst online: 10-04 22:41

Swedish Clown

Erlang <3

Ticket in de commit. Dit in combinatie met git-hooks die automatisch de ticket uit je branch halen en prefixen in the commit. De conventie bij voor de branches is: ticket-team-description, dit maakt het extreem gemakkelijk voor de git hooks om hier op in te haken :)

Always looking for developers wanting to work with Erlang.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Daos schreef op vrijdag 27 januari 2017 @ 12:19:
Een collega heeft daarom als gewoonte om in de code steeds als commentaar het ticket-nummer te zetten. Ik vind dit lelijk.
Medunkt. Code commentaar moet over de code gaan, niet over een ticketing systeem.
Zelf ben ik voorstander van het ticket-nummer in de commit te zetten. Als je dan blame doet, dan zie je naast de persoon direct het ticket-nummer waar je dan meer informatie kan vinden.
Dat is hoe wij het doen en ik zie ditzelfde in veel projecten op die manier gedaan worden. Zo kan je altijd terugvinden bij welk issue een commit hoorde.

Ik heb een git hook gemaakt die zelf de branch naam toevoegt aan een commit dus dan hoef je er zelf nieteens aan te denken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Tarkin
  • Registratie: Juni 2006
  • Laatst online: 14:37
Wij kunnen enkel iets inchecken in Git als we een (correct) ticketnr hebben.

We kunnen bv enkel op project a inchecken met A-xxxx en niet met de key van project b (B-xxxx)

Acties:
  • 0 Henk 'm!

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Bedankt voor de reacties mensen. Ik heb weer een hoop nieuwe ideeën opgedaan. En ik hoop natuurlijk ook dat ik hiermee mijn collega kan overtuigen om het ticket-nummer niet meer in de code te zetten.
LinuX-TUX schreef op vrijdag 27 januari 2017 @ 12:56:
Shit, ik wilde 'ticket in commit' klikken, heb per ongeluk de poll gesaboteerd, excuses.
-O-

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 11:40
Hier nog een die mistikte. Zat er net naast op de mobiel.

Had dus ook ticket in de commit willen kiezen. Met TFS kun je de annotate dan gebruiken om te kijken waar het voor was.

Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 09-10 22:10
Yep, ticket nummer in de commit. Sowieso hebben wij redelijk stricte guidelines voor Git commit messages die gepushed worden. Die worden volgens mij redelijk veel toegepast. Onderwerpregel max. 50 karakters lang (begint bij ons met het ticket nummer), dan een lege regel, dan een uitvoerige(re) beschrijving van wat er gedaan is en zo nodig waarom, waarbij line wrapping op 72 karakters plaatsvindt. We gebruiken daarbij veel interactive rebasing van lokale commits, om "oops, vergeten" commits / messages weg te halen met een re-order en squash of fixup. Het vereist even wat discipline, maar je houdt er wel een nuttige log aan over die bij het reviewen al direct waardevol is.

Acties:
  • 0 Henk 'm!

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 09-10 21:11
Hier ook commit message voorzien van het ticketnummer. Gaat dan om een samenwerking van JIRA en BitBucket. Daarnaast ook het ticketnummer in de naam van een branch.
Daar haal je inderdaad de voordelen uit dat JIRA laat zien bij het ticket hoeveel commits er zijn geweest en welke. Omdat voor 1 ticket vaak meerdere commits kunnen gebeuren, is de commitmessage dan ook de plek om kort aan te geven wat er gebeurd is.
Maar ook:
- Zodra een branch wordt aangemaakt met een ticketnummer in de naam, gaat deze in JIRA automatisch naar "In progress"
- Zodra een code review wordt aangevraagd, in JIRA naar "Code review"
- Zodra deze goedgekeurd is, in JIRA naar "Done"

Acties:
  • 0 Henk 'm!

  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 07-10 16:38
Daos schreef op vrijdag 27 januari 2017 @ 18:43:
Bedankt voor de reacties mensen. Ik heb weer een hoop nieuwe ideeën opgedaan. En ik hoop natuurlijk ook dat ik hiermee mijn collega kan overtuigen om het ticket-nummer niet meer in de code te zetten.


[...]

-O-
Sorry ... ik was niet de enige ...
jip_86 schreef op zaterdag 28 januari 2017 @ 10:55:
Hier nog een die mistikte. Zat er net naast op de mobiel.

Had dus ook ticket in de commit willen kiezen. Met TFS kun je de annotate dan gebruiken om te kijken waar het voor was.
:Y)

Maar bericht is toch duidelijk zo, ticket in commit message it is 8) ?

Kan je zelfs op de regel code middels git blame / annotations in IDE's terug traceren waar het vandaan kwam ... HEER-LIJK

[ Voor 8% gewijzigd door LinuX-TUX op 29-01-2017 00:51 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 02-10 08:45
Los van dat het handig om beschrijvende commitmessages evt met ticket nummer te hebben, als een stuk code uitleg behoeft over wat het doet of waarom, dan hoort dat wat mij betreft óók gewoon in een commentaar bij die code zelf.

Het liefst heb je dat soort code natuurlijk helemaal niet, maargoed we wonen nu eenmaal niet in Utopia.

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Wij hebben naast Jira ook Fisheye & Crucible draaien, en die integreren met Jira. Fisheye scant alle Git commits, en zoekt daarin naar ticket ID's. Niet alleen kun je de commit linken aan het issue, je kunt met een hashtag ook meteen een issue transition doen. (Typisch naar #test, maar als je testresultaten ook in Git bewaart dan kun je die met #resolve committen)

https://confluence.atlass...rt-commits-298976812.html

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • Mercatres
  • Registratie: September 2009
  • Laatst online: 12:25
mcDavid schreef op zondag 29 januari 2017 @ 01:13:
Los van dat het handig om beschrijvende commitmessages evt met ticket nummer te hebben, als een stuk code uitleg behoeft over wat het doet of waarom, dan hoort dat wat mij betreft óók gewoon in een commentaar bij die code zelf.

Het liefst heb je dat soort code natuurlijk helemaal niet, maargoed we wonen nu eenmaal niet in Utopia.
Dit.
Soms dekt je code een heel functioneel iets af, en kan je niet meteen verwijzen naar een spec, dus schrijf je het in commentaar.
Verder ook: TicketId + Beschrijving van commit in commit message. Ook automagische transitions in JIRA, van de backlog tot aan de Done.
Pagina: 1