Sorry alweer een git gerelateerde vraag...
Stel... ik wil weten welke commits er hebben plaatsgevonden op een bepaalde file tussen twee versie releases uit de FPC source-tree (dat is het uiteindelijke doel).
fwiw: Getoonde opdrachten gebaseerd op daadwerkelijke praktijk dus kunnen worden gebruikt als controle of anderzijds.
Voor het achterhalen welke veranderingen er hebben plaatsgevonden tussen twee releases:
Code:
git diff release_3_2_0..release_3_2_2
Maar da's een beetje teveel van het goede en daarnaast wil ik ook niet alles weten.
Dus ik beperk de boel door alleen die bestanden te tonen die veranderd zijn tussen de twee releases en filter die op een specifiek onderwerp of platform, bijvoorbeeld
Code:
git diff --name-only release_3_2_0..release_3_2_2 | grep win
Dat toont mij dan een mooi lijstje, dat ik weer kan gebruiken om of verder te filteren of anders nader te onderzoeken.
Stel, dat daar uitkomt dat ik (verdere) interesse heb in het bestand "rtl/win/syswin.inc" en wil weten welke commit(s) op dat bestand hebben plaatsgevonden (merk op: tussen de releases)
Code:
git log --follow release_3_2_0..release_3_2_2 -- rtl/win/syswin.inc
Daar volgt dan uit:
Code:
commit 74a1b6406e9342698462d0322ea3a7cd474bfc71
Author: svenbarth <e-mail>
Date: Thu Dec 17 22:44:26 2020 +0000
--- Merging r45159 into '.':
U rtl/nativent/systhrd.inc
U rtl/os2/systhrd.inc
U rtl/win/systhrd.inc
--- Recording mergeinfo for merge of r45159 into '.':
U .
--- Merging r45160 into '.':
U rtl/amicommon/athreads.pp
U rtl/beos/bethreads.pp
U rtl/inc/thread.inc
U rtl/inc/threadh.inc
G rtl/nativent/systhrd.inc
U rtl/netware/systhrd.inc
U rtl/netwlibc/systhrd.inc
U rtl/objpas/classes/classes.inc
U rtl/objpas/classes/classesh.inc
G rtl/os2/systhrd.inc
U rtl/unix/cthreads.pp
G rtl/win/systhrd.inc
--- Recording mergeinfo for merge of r45160 into '.':
G .
--- Merging r45206 into '.':
U rtl/win/sysos.inc
G rtl/win/systhrd.inc
U rtl/win/syswin.inc
--- Recording mergeinfo for merge of r45206 into '.':
G .
--- Merging r45207 into '.':
U rtl/linux/pthread.inc
--- Recording mergeinfo for merge of r45207 into '.':
G .
--- Merging r45233 into '.':
G rtl/linux/pthread.inc
G rtl/unix/cthreads.pp
--- Recording mergeinfo for merge of r45233 into '.':
G .
--- Merging r45237 into '.':
G rtl/unix/cthreads.pp
G rtl/win/systhrd.inc
--- Recording mergeinfo for merge of r45237 into '.':
G .
git-svn-id: branches/fixes_3_2@47806 -
En dan loop ik vast op het achterhalen van de daadwerkelijke commit message(s).....
Ik begrijp eruit dat ik verder moet zoeken in r45206 .... maar hoe dan ?
Of kan dit hele process om de commit messages van een bepaald bestand (wat voldoet aan bepaalde filter-criteria) te verkrijgen ook nog op een eenvoudigere manier worden gerealiseerd ?
Het uiteindelijke doel is om het geheel te automatiseren: dus dat van alle bestanden waar interesse voor is, alle gerelateerde commit messages zichtbaar worden zodat er een history van commit messages voor deze bestanden kan worden geproduceerd.
bvd
Bookmarks