Hi Junio. Junio C Hamano <gitster@xxxxxxxxx> writes: > Would it be possible that the real culprit is that ident_to_worktree() > does not always touch $Id$ in the first place? Why isn't "$Id: garbage$" > first cleaned and then smudged upon checkout? Please see commit 07814d90095b65b4594efd47c69f9f171ef162d4, and the discussion preceeding it. > It also smells wrong that this "sometimes we convert, sometimes we don't" > is a special case for "$Id$" and for no other conversion. Why don't > smudge/clean filter or CRLF conversion have the same issue that can be > solved with the same approach as this patch takes? I gather that this is because nobody has come up with a use case for smudge/clean or CRLF where a (pervasive) non-normalized representation in the repository makes sense. Specifically, a foreign ident in the repo is not "garbage", but something useful when you migrate a repo from a different VCS for (at least) the following reasons: * It allows you to check out a historical tree from the git repo which looks exactly like what it would look like if you checked it out from the previous system * It provides an indication that a version of a file comes directly from the previous VCS, without any modification since the migration to git, and exactly where in the history of the previous VCS it has originated * Quite frankly, idents generated by other VCSs contain more useful information than those generated by git, so it's a waste to discard them prematurely The same effect can be achieved without direct support for foreign idents by instead using fine-grained control in .gitattributes to force -ident on any file which still has foreign idents, but there are two downsides to this approach: * A commit hook (and probably a pre-receive hook at the "blessed" repository) is needed to make sure that no commits are allowed to a file with foreign idents without also flipping the attribute from -ident to +ident * Either a full enumeration of all files with foreign idents, or of all files with native idents, is needed in .gitattributes, so that a file can be either added to or removed from this list when making the first "native" commit to it So it's possible, albeit slightly less practical, to do without this feature. If the decision to include it is reversed, 07814d90095b65 should probably be reverted. // Marcus -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html