{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":12,"items":[{"actor":{"id":"https:\/\/chaos.social\/users\/jaseg","displayName":"jaseg","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/151477-original-tmp20230720120253.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-48-20230726215114.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-24-20230726215114.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"151477"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they","url":"https:\/\/chaos.social\/@jaseg","portablecontacts_net":{"preferredUsername":"jaseg","displayName":"jaseg","note":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> If you\u2019d implement this in git, it wouldn\u2019t even be the first use of in-tree metadata (see .gitmodules) and it also wouldn\u2019t be the first instance where the output of git log etc. could change after the fact without rewriting history (see branch names). maybe this would actually be worth an RFC in case this hasn\u2019t been proposed before.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667470189439240","object":{"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667470189439240","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> If you\u2019d implement this in git, it wouldn\u2019t even be the first use of in-tree metadata (see .gitmodules) and it also wouldn\u2019t be the first instance where the output of git log etc. could change after the fact without rewriting history (see branch names). maybe this would actually be worth an RFC in case this hasn\u2019t been proposed before.<\/p>","url":"https:\/\/chaos.social\/@jaseg\/115667470189439240","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667284263551171","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667284263551171"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651161","source":"ActivityPub"}},"published":"2025-12-05T15:02:39+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/chaos.social\/@jaseg\/115667470189439240"},{"actor":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/241214-original-tmp20240208114849.webp","rel":"avatar","type":"image\/webp","width":200,"height":200},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-48-20240302204654.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-24-20240302204654.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"241214"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models.","url":"https:\/\/infosec.exchange\/@david_chisnall","portablecontacts_net":{"preferredUsername":"david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","note":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Pijul does, in the traditional computer science way: Names in the commit history are unique opaque identifiers.  The repository contains a mapping from those to people, but that mapping can be changed (and can be different on different repos).  If I remember correctly, they have a little bit of public-key crypto to make sure that the same identifier in two repos is the same person, but that doesn't let you know which person without the other metadata.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667284263551171","object":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667284263551171","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Pijul does, in the traditional computer science way: Names in the commit history are unique opaque identifiers.  The repository contains a mapping from those to people, but that mapping can be changed (and can be different on different repos).  If I remember correctly, they have a little bit of public-key crypto to make sure that the same identifier in two repos is the same person, but that doesn't let you know which person without the other metadata.<\/p>","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667284263551171","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667270103243178","url":"https:\/\/mastodon.social\/@whitequark\/115667270103243178"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651160","source":"ActivityPub"}},"published":"2025-12-05T15:02:39+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667284263551171"},{"actor":{"id":"https:\/\/chaos.social\/users\/jaseg","displayName":"jaseg","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/151477-original-tmp20230720120253.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-48-20230726215114.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-24-20230726215114.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"151477"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they","url":"https:\/\/chaos.social\/@jaseg","portablecontacts_net":{"preferredUsername":"jaseg","displayName":"jaseg","note":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> you could even stay backwards compatible by adopting some well-known syntax to put into the author fields that points to the in-tree author aliases file.<\/p><p>This likely wouldn\u2019t completely solve the GDPR issue since you would still be able to access old versions of that author name mapping file, but you could even work around that by doing sparse checkouts and only keeping the latest version of that file.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667478195970944","object":{"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667478195970944","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> you could even stay backwards compatible by adopting some well-known syntax to put into the author fields that points to the in-tree author aliases file.<\/p><p>This likely wouldn\u2019t completely solve the GDPR issue since you would still be able to access old versions of that author name mapping file, but you could even work around that by doing sparse checkouts and only keeping the latest version of that file.<\/p>","url":"https:\/\/chaos.social\/@jaseg\/115667478195970944","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667470189439240","url":"https:\/\/chaos.social\/@jaseg\/115667470189439240"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651162","source":"ActivityPub"}},"published":"2025-12-05T15:02:37+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/chaos.social\/@jaseg\/115667478195970944"},{"actor":{"id":"https:\/\/chaos.social\/users\/jaseg","displayName":"jaseg","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/151477-original-tmp20230720120253.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-48-20230726215114.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/151477-24-20230726215114.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"151477"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/151477-96-20230726215114.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they","url":"https:\/\/chaos.social\/@jaseg","portablecontacts_net":{"preferredUsername":"jaseg","displayName":"jaseg","note":"I am doing #electronics, #embedded programming, #python scripting, hardware security and recently some sewing.Email: whatever you like at my domain. I&#39;ve got a catch-all alias.Pronouns: er\/they"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> branch names and tags work kind of in a similar way, they are synchronized as needed, things work without them, and they are not part of the history.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667489123044713","object":{"id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667489123044713","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> branch names and tags work kind of in a similar way, they are synchronized as needed, things work without them, and they are not part of the history.<\/p>","url":"https:\/\/chaos.social\/@jaseg\/115667489123044713","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667484969379168","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667484969379168"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651164","source":"ActivityPub"}},"published":"2025-12-05T15:02:36+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/chaos.social\/@jaseg\/115667489123044713"},{"actor":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/241214-original-tmp20240208114849.webp","rel":"avatar","type":"image\/webp","width":200,"height":200},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-48-20240302204654.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-24-20240302204654.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"241214"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models.","url":"https:\/\/infosec.exchange\/@david_chisnall","portablecontacts_net":{"preferredUsername":"david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","note":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models."}},"content":"<p><a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\" rel=\"nofollow\">@jaseg<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Yup, that's the key difference with the Pijul approach.  The mapping is part of the repo state, but not part of the history.  Git doesn't have any similar abstraction for building this kind of thing, as far as I am aware, except maybe git config (but I don't think you have a way of querying a remote's config?).<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667484969379168","object":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667484969379168","objectType":"note","content":"<p><a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\" rel=\"nofollow\">@jaseg<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Yup, that's the key difference with the Pijul approach.  The mapping is part of the repo state, but not part of the history.  Git doesn't have any similar abstraction for building this kind of thing, as far as I am aware, except maybe git config (but I don't think you have a way of querying a remote's config?).<\/p>","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667484969379168","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667478195970944","url":"https:\/\/chaos.social\/@jaseg\/115667478195970944"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/chaos.social\/users\/jaseg"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651163","source":"ActivityPub"}},"published":"2025-12-05T15:02:36+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667484969379168"},{"actor":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/241214-original-tmp20240208114849.webp","rel":"avatar","type":"image\/webp","width":200,"height":200},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-48-20240302204654.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-24-20240302204654.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"241214"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models.","url":"https:\/\/infosec.exchange\/@david_chisnall","portablecontacts_net":{"preferredUsername":"david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","note":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models."}},"content":"<p><a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\" rel=\"nofollow\">@jaseg<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Yup, that's a good equivalent.  I wonder if you could encode these things as tags.  Tags currently refer to a single commit, but I guess you could have a namespace of tags for commits from a specific person and one tag for each commit that they'd made.  Or you could add some proper indirection and have the author refer to a tag name and the tag name just point to a single object that contains the real name (rather than a commit in the history).<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667508595669812","object":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667508595669812","objectType":"note","content":"<p><a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\" rel=\"nofollow\">@jaseg<\/a> <a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>Yup, that's a good equivalent.  I wonder if you could encode these things as tags.  Tags currently refer to a single commit, but I guess you could have a namespace of tags for commits from a specific person and one tag for each commit that they'd made.  Or you could add some proper indirection and have the author refer to a tag name and the tag name just point to a single object that contains the real name (rather than a commit in the history).<\/p>","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667508595669812","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/chaos.social\/users\/jaseg\/statuses\/115667489123044713","url":"https:\/\/chaos.social\/@jaseg\/115667489123044713"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/chaos.social\/users\/jaseg"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651165","source":"ActivityPub"}},"published":"2025-12-05T15:02:34+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667508595669812"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\">@jaseg<\/a> I was thinking of this too! it's cursed but broadly compatible at least<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667561682456451","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667561682456451","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> <a href=\"https:\/\/chaos.social\/@jaseg\" class=\"u-url mention\">@jaseg<\/a> I was thinking of this too! it's cursed but broadly compatible at least<\/p>","url":"https:\/\/mastodon.social\/@whitequark\/115667561682456451","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667508595669812","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667508595669812"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/chaos.social\/users\/jaseg"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11651166","source":"ActivityPub"}},"published":"2025-12-05T15:02:33+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@whitequark\/115667561682456451"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> I think you could store the UUID =&gt; name\/email map in a \"sidecar\" that is updated destructively while the main Merkle tree remains intact?<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667273763565199","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667273763565199","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> I think you could store the UUID =&gt; name\/email map in a \"sidecar\" that is updated destructively while the main Merkle tree remains intact?<\/p>","url":"https:\/\/mastodon.social\/@whitequark\/115667273763565199","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667270103243178","url":"https:\/\/mastodon.social\/@whitequark\/115667270103243178"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11650830","source":"ActivityPub"}},"published":"2025-12-05T13:49:21+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@whitequark\/115667273763565199"},{"actor":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/241214-original-tmp20240208114849.webp","rel":"avatar","type":"image\/webp","width":200,"height":200},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-48-20240302204654.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-24-20240302204654.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"241214"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models.","url":"https:\/\/infosec.exchange\/@david_chisnall","portablecontacts_net":{"preferredUsername":"david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","note":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>As always happens when I speak to multiple lawyers, I get multiple answers.  The opinions are either:<\/p><ul><li>You should rewrite history to change the author info to some tombstone (and, yes, mess up everyone's downstream forks, though you can add fake parents to each new commit to make merges work).<\/li><li>You can argue that the history is a functional requirement and fall back to legitimate interest things.<\/li><\/ul><p>There are now some tools to do the former, so it's less likely that the latter would convince a court.  But now you've added more complexity because you have to change things in commit messages as well as the author field.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667250082950660","object":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667250082950660","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\" rel=\"nofollow\">@whitequark<\/a> <\/p><p>As always happens when I speak to multiple lawyers, I get multiple answers.  The opinions are either:<\/p><ul><li>You should rewrite history to change the author info to some tombstone (and, yes, mess up everyone's downstream forks, though you can add fake parents to each new commit to make merges work).<\/li><li>You can argue that the history is a functional requirement and fall back to legitimate interest things.<\/li><\/ul><p>There are now some tools to do the former, so it's less likely that the latter would convince a court.  But now you've added more complexity because you have to change things in commit messages as well as the author field.<\/p>","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667250082950660","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667224335272633","url":"https:\/\/mastodon.social\/@whitequark\/115667224335272633"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11650823","source":"ActivityPub"}},"published":"2025-12-05T13:47:59+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667250082950660"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> Oh, that sounds like a proper mess.<\/p><p>I have, most likely, dozens of git repositories with a name I'm no longer using, so the thought of git-filter-branch crossed my mind, but I've eventually concluded that:<br \/>- it will be extremely disruptive to any actual users<br \/>- it will call extra attention to something I'm leaving behind<\/p><p>... but that's specific to me. In general I think a VCS should support name changes. I'm not sure how, though.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667270103243178","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667270103243178","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> Oh, that sounds like a proper mess.<\/p><p>I have, most likely, dozens of git repositories with a name I'm no longer using, so the thought of git-filter-branch crossed my mind, but I've eventually concluded that:<br \/>- it will be extremely disruptive to any actual users<br \/>- it will call extra attention to something I'm leaving behind<\/p><p>... but that's specific to me. In general I think a VCS should support name changes. I'm not sure how, though.<\/p>","url":"https:\/\/mastodon.social\/@whitequark\/115667270103243178","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115667250082950660","url":"https:\/\/infosec.exchange\/@david_chisnall\/115667250082950660"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11650824","source":"ActivityPub"}},"published":"2025-12-05T13:47:58+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@whitequark\/115667270103243178"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> this all seems right but isn't normal Git already a GDPR nightmare? (my understanding is that the way to deal with this is to claim an exemption due to technical impossibility, but IANAL)<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667224335272633","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115667224335272633","objectType":"note","content":"<p><a href=\"https:\/\/infosec.exchange\/@david_chisnall\" class=\"u-url mention\">@david_chisnall<\/a> this all seems right but isn't normal Git already a GDPR nightmare? (my understanding is that the way to deal with this is to claim an exemption due to technical impossibility, but IANAL)<\/p>","url":"https:\/\/mastodon.social\/@whitequark\/115667224335272633","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115666976517423619","url":"https:\/\/infosec.exchange\/@david_chisnall\/115666976517423619"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/infosec.exchange\/users\/david_chisnall"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11650758","source":"ActivityPub"}},"published":"2025-12-05T13:36:20+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@whitequark\/115667224335272633"},{"actor":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/241214-original-tmp20240208114849.webp","rel":"avatar","type":"image\/webp","width":200,"height":200},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-48-20240302204654.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/241214-24-20240302204654.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"241214"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/241214-96-20240302204654.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models.","url":"https:\/\/infosec.exchange\/@david_chisnall","portablecontacts_net":{"preferredUsername":"david_chisnall","displayName":"David Chisnall (*Now with 50% more sarcasm!*)","note":"I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory.  I remain actively involved in the #CHERI project, where I led the early language \/ compiler strand of the research, and am the maintainer of the #CHERIoT Platform. I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and \/ or confusion.  Shake well before opening.  Keep refrigerated.Warning: May contain greater than the recommended daily allowance of sarcasm.No license, implied or explicit, is granted to use any of my posts for training AI models."}},"content":"<p>Git's Signed-off-by: is such a ludicrous thing, made even more ludicrous by people who have checks that the author of a commit has the same email as the person who signed off.<\/p><p>I would be shocked if a court decided it matched the legal requirements for a binding contract in any context where the git commit itself did not.  Checking that two fields match, when you have no way of validating that the person who created the commit is actually the person identified by either is a complete waste of time.<\/p><p>And it also incurs some fun GDPR liability.  Now you have an email address in the commit message, as well as the author metadata.  How do you comply with a legal requirement to remove personal information from your history?<\/p>","generator":{"id":"tag:gnusocial.jp,2026-05-19:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115666976517423619","object":{"id":"https:\/\/infosec.exchange\/users\/david_chisnall\/statuses\/115666976517423619","objectType":"note","content":"<p>Git's Signed-off-by: is such a ludicrous thing, made even more ludicrous by people who have checks that the author of a commit has the same email as the person who signed off.<\/p><p>I would be shocked if a court decided it matched the legal requirements for a binding contract in any context where the git commit itself did not.  Checking that two fields match, when you have no way of validating that the person who created the commit is actually the person identified by either is a complete waste of time.<\/p><p>And it also incurs some fun GDPR liability.  Now you have an email address in the commit message, as well as the author metadata.  How do you comply with a legal requirement to remove personal information from your history?<\/p>","url":"https:\/\/infosec.exchange\/@david_chisnall\/115666976517423619","status_net":{"notice_id":null}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-05:objectType=thread:nonce=24ea25838af411e5","notice_info":{"local_id":"11650757","source":"ActivityPub"}},"published":"2025-12-05T13:36:20+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/infosec.exchange\/@david_chisnall\/115666976517423619"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/5925791","rel":"alternate","type":"text\/html"}]}