From: Jeff King <peff@peff.net> To: "brian m. carlson" <sandals@crustytoothpaste.net>, "Martin Ågren" <martin.agren@gmail.com>, git@vger.kernel.org Subject: Re: [PATCH 1/3] setup: drop return value from `read_repository_format()` Date: Thu, 20 Dec 2018 09:53:22 -0500 [thread overview] Message-ID: <20181220145322.GA27361@sigill.intra.peff.net> (raw) In-Reply-To: <20181220034555.GC35965@genre.crustytoothpaste.net> On Thu, Dec 20, 2018 at 03:45:55AM +0000, brian m. carlson wrote: > > > I will point out that with the SHA-256 work, reading the config file > > > becomes essential for SHA-256 repositories, because we need to know the > > > object format. Removing the config file leads to things blowing up in a > > > bad way (what specific bad way I don't remember). > > > > > > That may influence the direction we want to take in this work, or not. > > > > Wouldn't we just treat that the same way we do now? I.e., assume the > > default of sha1, just like we assume repositoryformatversion==0? > > Yeah, we'll default to SHA-1, but the repository will be broken. HEAD > can't be read. Trying to run git status dies with "fatal: Unknown index > entry format". And so on. We've written data with 64-character object > IDs, which can't be read by Git in SHA-1 mode. Oh, I see. Yes, if you have a SHA-256 repository and you don't tell anybody (via a config entry), then everything will fail to work. That seems like a perfectly reasonable outcome to me. > My point is essentially that in an SHA-256 repository, the config file > isn't optional anymore. We probably need to consider that and error out > in more situations (e.g. unreadable file or I/O error) instead of > silently falling back to the defaults, since failing loudly in a visible > way is better than having the user try to figure out why the index is > suddenly "corrupt". Yes, I agree that ideally we'd produce a better error message. I'd just be wary of breaking compatibility for the existing cases by making new requirements when we don't yet suspect the repo is SHA-256. When we see such a corruption, would it be possible to poke at the data as if it were the old SHA-1 format, and if _that_ looks sane, suggest to the user what the problem might be? That would help a number of cases beyond this one (i.e., you're missing config, you have config but it has the wrong repo format, you're missing the correct extensions field, etc). -Peff
next prev parent reply other threads:[~2018-12-20 14:53 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-18 7:25 [PATCH 0/3] setup: add `clear_repository_format()` Martin Ågren 2018-12-18 7:25 ` [PATCH 1/3] setup: drop return value from `read_repository_format()` Martin Ågren 2018-12-19 15:27 ` Jeff King 2018-12-19 21:42 ` Martin Ågren 2018-12-20 0:17 ` brian m. carlson 2018-12-20 2:52 ` Jeff King 2018-12-20 3:45 ` brian m. carlson 2018-12-20 14:53 ` Jeff King [this message] 2018-12-18 7:25 ` [PATCH 2/3] setup: do not use invalid `repository_format` Martin Ågren 2018-12-19 0:18 ` brian m. carlson 2018-12-19 21:43 ` Martin Ågren 2018-12-19 15:38 ` Jeff King 2018-12-19 21:46 ` Martin Ågren 2018-12-19 23:17 ` Jeff King 2018-12-20 0:21 ` brian m. carlson 2018-12-18 7:25 ` [PATCH 3/3] setup: add `clear_repository_format()` Martin Ågren 2018-12-19 15:48 ` Jeff King 2018-12-19 21:49 ` Martin Ågren 2019-01-14 18:34 ` [PATCH v2 0/3] " Martin Ågren 2019-01-14 18:34 ` [PATCH v2 1/3] setup: free old value before setting `work_tree` Martin Ågren 2019-01-14 18:34 ` [PATCH v2 2/3] setup: do not use invalid `repository_format` Martin Ågren 2019-01-15 19:31 ` Jeff King 2019-01-17 6:31 ` Martin Ågren 2019-01-22 7:07 ` Jeff King 2019-01-22 13:34 ` Martin Ågren 2019-01-22 21:45 ` [PATCH v3 0/2] setup: fix memory leaks with `struct repository_format` Martin Ågren 2019-01-22 21:45 ` [PATCH v3 1/2] setup: free old value before setting `work_tree` Martin Ågren 2019-01-22 21:45 ` [PATCH v3 2/2] setup: fix memory leaks with `struct repository_format` Martin Ågren 2019-01-23 5:57 ` Jeff King 2019-01-24 0:14 ` brian m. carlson 2019-01-25 19:25 ` Martin Ågren 2019-01-25 19:24 ` Martin Ågren 2019-01-25 19:51 ` Jeff King 2019-02-25 19:21 ` Martin Ågren 2019-02-26 17:46 ` Jeff King 2019-02-28 20:36 ` [PATCH v4 0/2] " Martin Ågren 2019-02-28 20:36 ` [PATCH v4 1/2] setup: free old value before setting `work_tree` Martin Ågren 2019-02-28 20:36 ` [PATCH v4 2/2] setup: fix memory leaks with `struct repository_format` Martin Ågren 2019-03-06 4:56 ` [PATCH v4 0/2] " Jeff King 2019-01-14 18:34 ` [PATCH v2 3/3] setup: add `clear_repository_format()` Martin Ågren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181220145322.GA27361@sigill.intra.peff.net \ --to=peff@peff.net \ --cc=git@vger.kernel.org \ --cc=martin.agren@gmail.com \ --cc=sandals@crustytoothpaste.net \ --subject='Re: [PATCH 1/3] setup: drop return value from `read_repository_format()`' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).