From: Taylor Blau <me@ttaylorr.com>
To: Prince Roshan <princekrroshan01@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Feature Proposal: Adding Command for Configuration Diff Between Commits
Date: Tue, 15 Oct 2024 12:25:38 -0400 [thread overview]
Message-ID: <Zw6XgpPZBDrq5QuO@nand.local> (raw)
In-Reply-To: <CAP3G6frW_B2pBN0S4H5fsJZgoGtPxC1+_dAzNRhQ9z8ERWZSVg@mail.gmail.com>
On Tue, Oct 15, 2024 at 04:29:44PM +0530, Prince Roshan wrote:
> Hi Git Community,
>
> I wanted to propose a new feature for Git that I believe would be
> beneficial for repository maintainers and developers alike. What do
> you think of adding a command like git config diff commit1 commit2 to
> show the configuration differences between two commits?
>
> This command could display differences in repository configurations
> (such as .git/config or submodule configuration) across two specific
> commits. I see this being particularly useful in scenarios like:
Submodule configuration is already diff-able since the state of
submodules is stored in .gitmodules (as you note in your reply to this
email further down in this thread).
But just computing the diff between two commits and focusing on the
.gitmodules file alone doesn't necessarily have all of the information
you're looking for, either. For example, Git's own .gitmodules file has
the following contents:
$ cat .gitmodules
[submodule "sha1collisiondetection"]
path = sha1collisiondetection
url = https://github.com/cr-marcstevens/sha1collisiondetection.git
branch = master
Here we're using submodule.<url>.branch to specify the branch that we
want to check out. So it's impossible to reconstruct the exact SHA-1 we
checked out, since it depends on the state of the remote repository as
well as our own .gitmodules file.
On the configuration front, there isn't really a perfect answer either,
because Git configuration is not tracked within the repository. You
could consider a workflow where you store the configuration within the
repository and then automatically "install" that configuration when
updating the working copy.
But that is not without risk, since Git executes arbitrary code based on
certain configuration options (e.g., more esoteric options like
core.sshCommand and core.alternateRefsCommand, as well as more common
ones like core.editor). So you would have to be careful about when you
install arbitrary configuration, who it is coming from, whether you
trust that person, etc.
Thanks,
Taylor
next prev parent reply other threads:[~2024-10-15 16:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-15 10:59 Feature Proposal: Adding Command for Configuration Diff Between Commits Prince Roshan
2024-10-15 16:25 ` Taylor Blau [this message]
[not found] <B3A4B5B2-0EDC-4D1A-BC91-0ABFCD1DFE2B@gmail.com>
2024-10-15 12:45 ` Prince Roshan
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zw6XgpPZBDrq5QuO@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=princekrroshan01@gmail.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).