Size: 2526
Comment: converted to 1.6 markup
|
Size: 487
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
(for details from a source code point of view, see WhatGoesWhere) <<TableOfContents>> == Data structures == '''Nodeids''' are unique ids that represent the contents of a file ''and'' its position in the project history. See [[Nodeid]]. A '''revlog''', for example {{{.hg/data/somefile.d}}}, is the most important data structure and represents all versions of a file. See [[Revlog]]. A '''manifest''' describes the state of a project by listing each file and its nodeid to specify which version. See [[Manifest]]. A '''changeset''' lists all files changed in a checkin along with a change description and metadata like user and date. See [[ChangeSet]]. == Putting it all together == We now have enough information to see how this all works together. To look up a given revision of a file: * look up the changeset in the changeset index * reconstruct the changeset data from the revlog * look up the manifest nodeid from the changeset in the manifest index * reconstruct the manifest for that revision * find the nodeid for the file in that revision * look up the revision of that file in the file's index * reconstruct the file revision from the revlog If we want to go the other way and find the changeset associated with a given file revision, we follow the linkrev. {{{ .--------linkrev-------------. v | .---------. .--------. .--------. |changeset| .->|manifest| .->|file |---. |index | | |index | | |index | |--. `---------' | `--------' | `--------' | | | | | | | `-------' | V | V | V `-------' .---------. | .--------. | .---------. |changeset|-' |manifest|-' |file | |data | |data | |revision | `---------' `--------' `---------' }}} == Tracking Working Directory State == The other piece of Mercurial is the [[WorkingDirectory|working directory]]. Mercurial tracks various information about the working directory. See DirState. == Merging == See [[Merge]]. == Rollback == See [[Rollback]]. == References == * ''"Towards a Better SCM: Revlog and Mercurial"'', Matt Mackall ([[attachment:Presentations/ols-mercurial-paper.pdf|PDF]]) * ''[[http://hgbook.red-bean.com/hgbookch4.html#x8-640004|"Behind the scenes"]]'' in ''[[http://hgbook.red-bean.com/hgbook.html|"Distributed revision control with Mercurial"]]'', Bryan O’Sullivan see also: [[Presentations]] ---- CategoryInternals |
Greetings. Allow me begin by [[http://en.wikipedia.org/wiki/Storytelling|telling]] you the author's identify - Matt though it is not his start identify. Delaware is his start place but he demands to go for the reason that of his family members. Because he was eighteen he is been working as a receptionist. One of his beloved hobbies is bungee leaping but he cannot make it his profession. You can constantly find his web-site in this article: http://www.yahad38.co.il/wordpress/?p=725 |
Greetings. Allow me begin by telling you the author's identify - Matt though it is not his start identify. Delaware is his start place but he demands to go for the reason that of his family members. Because he was eighteen he is been working as a receptionist. One of his beloved hobbies is bungee leaping but he cannot make it his profession. You can constantly find his web-site in this article: http://www.yahad38.co.il/wordpress/?p=725