Hi, On Sat, 27 Jan 2007, Simon 'corecode' Schubert wrote:Ah, I think you fall in the "files matter" trap. My point is: for what git does it does not need information which might or might not be present, but it derives that information which was there from the beginning: the ancestry path. Many people don't use or even need blame. And what you want to introduce would affect them, too. That is why I proposed a cache (of precomputed data): you don't have to change _anything_ in the file format, but you can speed the processes up -- locally! -- if they matter to you. Which means it works on old repositories, too. But can hg do it that fast, if you track code _movement_ between files? I doubt so. I don't know if git can, at the moment, but even if it cannot, in future versions this may well be possible, exactly because we do _not_ rely on metadata to be stored in the objects, which can be derived from the history as-is anyway. You can name it "Dirty Harry" if you want. The important part is that you should not change the file format when you do not have to. Rather, calculate the information you need from the existing data, and if you can reuse it, store it locally. _That_ is flexibility. It also gives me a warm fuzzy feeling that no bogus "auxillary information" can be introduced by fetching from somewhere else. (It does not matter if intended or unintended.) And if something is wrong with that "auxillary information", it can be regenerated correctly, without touching the real data -- the commit ancestry. Just think of .git/info/refs: this data is derived from the repository, but because you need it so often (or it would be prohibitively expensive to do otherwise), it is derived only when needed, then stored, and retrieved quite often. My point was that you want to introduce a reverse mapping onto the history DAG. But this claims that there is only one history you can possibly look at. This assumption is wrong. It can make a lot of sense to git-blame a change on a pull, maybe because you don't want to fix it yourself, but throw it all back to the lieutnant whom you pulled that part from. You could find that pull (in theory; I don't think it works right now) with git-blame walking the _reflogs_ instead of the _commit history_. In this case, your reverse mapping would be wrong. See? Ciao, Dscho - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Oleg Nesterov | Re: [PATCH, RFC] reimplement flush_workqueue() |
| Linus Torvalds | Re: Linux 2.6.27-rc8 |
| Pavel Roskin | ndiswrapper and GPL-only symbols redux |
| Greg Kroah-Hartman | [PATCH 017/196] aoechr: Convert from class_device to device |
git: | |
| David Symonds | Re: git and binary files |
| Matthieu Moy | git push to a non-bare repository |
| Felipe Oliveira Carvalho | Re: [RFC] Zit: the git-based single file content tracker |
| Jakub Narebski | Re: [VOTE] git versus mercurial (for DragonflyBSD) |
| Patrick McHardy | netfilter 05/29: netns ebtables: part 2 |
| Templin, Fred L | [Resend][PATCH 01/05] ipv6: RFC4214 Support (4) |
| Laszlo Attila Toth | [PATCHv7 0/5 + 3] Interface group patches |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Han Boetes | shutdown gets stuck at `syncing discs...' |
| Leon Dippenaar | New tcp stack attack |
| Richard Stallman | Real men don't attack straw men |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
