From: "C. Scott Ananian" <cscott@cscott.net>
To: git@vger.kernel.org
Subject: another perspective on renames.
Date: Thu, 14 Apr 2005 18:22:46 -0400 (EDT) [thread overview]
Message-ID: <Pine.LNX.4.61.0504141759440.7261@cag.csail.mit.edu> (raw)
Perhaps our thinking is being clouded by 'how other SCMs do things' ---
do we *really* need extra rename metadata? As Linus pointed out, as long
as a commit is done immediately after a rename (ie before the renamed file
is changed) the tree object contains all the information one needs: you
can notice that a given object's content-hash is named 'foo' in the first
version and 'bar' in the second version.
Ingo thought that this was insufficient because two *different* objects
(ie having different revision histories) might be mutated to a point where
they had a *same* contents (and then would be condensed into a single
blob). But isn't that a feature of the git-fs history generally (ie not a
renaming-specific issue)?
One solution would be to invent a new 'file-revision-history' annotation
on top of git-fs in order to keep these derivation paths seperate...
...but perhaps we might think of this as a 'feature' of our SCM instead?
The 'history' of a file may have join points where a single 'content' may
have been derived by two or more completely different paths. Explicit
guidance to the front-end tools is required to 'unmerge' these files after
this occurs (ie updating the directory cache for one, but not the others).
This makes sense for include/arch/{foo,bar}/baz.h, but maybe not so much
for (say) the empty file.
Anyway, maybe it's worth thinking a little about an SCM in which this is a
feature, instead of (or in addition to) automatically assuming this is a
bug we need to add infrastructure to work around.
--scott
PBFORTUNE Soviet cryptographic D5 SLBM MI5 CIA postcard WASHTUB [Hello to all my fans in domestic surveillance]
explosion Sigint Bush ODEARL FJHOPEFUL assassination Uzi Hussein Nader
( http://cscott.net/ )
next reply other threads:[~2005-04-14 22:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-14 22:22 C. Scott Ananian [this message]
2005-04-15 5:16 ` another perspective on renames Paul Jackson
2005-04-15 8:27 ` Ingo Molnar
2005-04-15 14:47 ` C. Scott Ananian
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=Pine.LNX.4.61.0504141759440.7261@cag.csail.mit.edu \
--to=cscott@cscott.net \
--cc=git@vger.kernel.org \
/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).