Identifiers in Log and Blame
Hi folks, As we move towards using Git as our version control system, more services and scripts will be using identifiers instead of revisions or hashes. Already, build.webkit.org <http://build.webkit.org/>, results.webkit.org <http://results.webkit.org/> and ews-build.webkit.org <http://results.webkit.org/> all display identifiers alongside revisions. Early in the transition process, we added the git-webkit find command, which converts between hashes, revisions and identifiers. Recently, we added the git-webkit log and git-webkit blame commands to better support identifiers and native Git checkouts. git-webkit log is a wrapper around git log or svn log (depending on your checkout) and annotates the output of those commands with identifiers and revisions. git-webkit log passes the arguments you provide it to your native source code management system, it’s output looks something like this: commit 240602@main (fe5476762fc34d2a5547b7d2d8116faa7275acd7, r281148) Author: Eric Hutchison <ehutchison@apple.com> Date: Tue Aug 17 17:46:39 2021 +0000 [Monterey wk2 Release] performance-api/paint-timing/paint-timing-with-worker.html is a flaky crash. rdar://82036119. ... git-webkit blame is a wrapper around git blame or svn blame (again, depending on your checkout) and also annotates the output of these commands with identifiers: 230258@main (Keith Rollin 2020-10-08 19:10:32 +0000 1) MODULES = Source Tools 184786@main (Jonathan Bedard 2017-02-02 18:42:02 +0000 2) 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 3) define build_target_for_each_module 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 4) for dir in $(MODULES); do \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 5) ${MAKE} $@ -C $$dir PATH_FROM_ROOT=$(PATH_FROM_ROOT)/$${dir}; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 6) exit_status=$$?; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 7) [ $$exit_status -ne 0 ] && exit $$exit_status; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 8) done; true 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 9) endef ... Both commands can switch the commit representation they display with the --identifier, --hash and --revision options. Additionally, for those using Git checkouts, the conversion from Subversion revisions to Git hashes no longer requires your checkout to be configured with git-svn. Contributors may find that something like git checkout r281146 satisfies whatever need they have to interact with Subversion from Git. All of this has been landed on trunk/main as of r280864/240404@main. Jonathan
Seems like a good improvement but I really don't use command line tools to see my blame. What I need is this getting applied to online tools like trac and GitHub. - R. Niwa On Tue, Aug 17, 2021 at 10:57 AM Jonathan Bedard via webkit-dev < webkit-dev@lists.webkit.org> wrote:
Hi folks,
As we move towards using Git as our version control system, more services and scripts will be using identifiers instead of revisions or hashes. Already, build.webkit.org, results.webkit.org and ews-build.webkit.org <http://results.webkit.org> all display identifiers alongside revisions. Early in the transition process, we added the git-webkit find command, which converts between hashes, revisions and identifiers. Recently, we added the git-webkit log and git-webkit blame commands to better support identifiers and native Git checkouts.
git-webkit log is a wrapper around git log or svn log (depending on your checkout) and annotates the output of those commands with identifiers and revisions. git-webkit log passes the arguments you provide it to your native source code management system, it’s output looks something like this:
commit 240602@main (fe5476762fc34d2a5547b7d2d8116faa7275acd7, r281148) Author: Eric Hutchison <ehutchison@apple.com> Date: Tue Aug 17 17:46:39 2021 +0000
[Monterey wk2 Release] performance-api/paint-timing/paint-timing-with-worker.html is a flaky crash. rdar://82036119. ...
git-webkit blame is a wrapper around git blame or svn blame (again, depending on your checkout) and also annotates the output of these commands with identifiers:
230258@main (Keith Rollin 2020-10-08 19:10:32 +0000 1) MODULES = Source Tools 184786@main (Jonathan Bedard 2017-02-02 18:42:02 +0000 2) 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 3) define build_target_for_each_module 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 4) for dir in $(MODULES); do \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 5) ${MAKE} $@ -C $$dir PATH_FROM_ROOT=$(PATH_FROM_ROOT)/$${dir}; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 6) exit_status=$$?; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 7) [ $$exit_status -ne 0 ] && exit $$exit_status; \ 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 8) done; true 229628@main (Keith Rollin 2020-09-22 18:37:51 +0000 9) endef ...
Both commands can switch the commit representation they display with the --identifier, --hash and --revision options.
Additionally, for those using Git checkouts, the conversion from Subversion revisions to Git hashes no longer requires your checkout to be configured with git-svn. Contributors may find that something like git checkout r281146 satisfies whatever need they have to interact with Subversion from Git.
All of this has been landed on trunk/main as of r280864/240404@main.
Jonathan _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev
participants (2)
-
Jonathan Bedard
-
Ryosuke Niwa