)]}'
{
  "commit": "f711f37b05b7ff11038a707ec1f0f72aca98581c",
  "tree": "7aed3bb3e0794fef2dd07e5e59c415fbc331dadd",
  "parents": [
    "a1cf0cf13ab3a659ac77b7d749d6e5b11dc0142b"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Tue Oct 28 11:01:45 2025 -0500"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Tue Oct 28 20:10:15 2025 -0700"
  },
  "message": "t1016-compatObjectFormat: really freeze time for reproduciblity\n\nThe strategy in t1016-compatObjectFormat is to build two trees with\nidentical commits, one tree encoded in sha1 the other tree encoded\nin sha256 and to use the compatibility code to test and see if\nthe two trees are identical.\n\nGPG signatures include the current time as part of the signature.\n\nTo make gpg deterministic I forced the use of gpg --faked-system-time.\nUnfortunately I did not look closely enough.\n\nBy default gpg still allows time to move forward with --faked-system-time.\nSo in those rare instances when the system is heavily loaded and gpg runs\nslower than other times, signatures over the exact same data differ\ndue to timestamps with a minuscule difference.\n\nReading through the gpg documentation with a close eye, time can be\nfrozen by including an exclamation point at the end of the argument to\n--faked-system-time.\n\nAdd the exclamation point so gpg really runs with a fixed notion of time,\nresulting in the exact same data having identical gpg signatures.\n\nThat is enough that I can run \"t1016-compatObjectFormat.sh --stress\"\nand I don\u0027t see any failures.\n\nIt is possible a future change to gpg will make replay protection more\nrobust and not provide a way to allow two separate runs of gpg to\nproduce exactly the same signature for exactly the same data.  If that\nhappens a deeper comparison of the two repositories will need to be\nperformed.  A comparison that simply verifies the signatures and\ncompares the data for equality.  For now that is a lot of work\nfor no gain so I am just documenting the possibility.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e88362fbe4286b676364addfb7daeaa4952ee790",
      "old_mode": 33261,
      "old_path": "t/t1016-compatObjectFormat.sh",
      "new_id": "c1beac2db177b8ff46644331d0e7fa786ffcead3",
      "new_mode": 33261,
      "new_path": "t/t1016-compatObjectFormat.sh"
    },
    {
      "type": "modify",
      "old_id": "2601cb18a5b3f45e9c615dec1cc1d4ad7aff36ee",
      "old_mode": 33261,
      "old_path": "t/t1016/gpg",
      "new_id": "34d6e055fc9e599aab7cef594f185918aa9b280b",
      "new_mode": 33261,
      "new_path": "t/t1016/gpg"
    }
  ]
}
