summaryrefslogtreecommitdiff
path: root/rev-tree.c
AgeCommit message (Collapse)AuthorFilesLines
2005-05-19[PATCH] cleanup of in-code namesLibravatar Alexey Nezhdanov1-2/+2
Fixes all in-code names that leaved during "big name change". Signed-off-by: Alexey Nezhdanov <snake@penza-gsm.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-11rev-tree now handles commit problems betterLibravatar Petr Baudis1-3/+3
This fixes possible crashes in case of broken commit tree, and makes rev-tree die in case it cannot parse a given commit.
2005-05-01Add "get_sha1()" helper function.Libravatar Linus Torvalds1-1/+1
This allows the programs to use various simplified versions of the SHA1 names, eg just say "HEAD" for the SHA1 pointed to by the .git/HEAD file etc. For example, this commit has been done with git-commit-tree $(git-write-tree) -p HEAD instead of the traditional "$(cat .git/HEAD)" syntax.
2005-04-30rev-tree.c: don't include unnecessary header filesLibravatar Linus Torvalds1-5/+0
We used to have all these time-related issues, long gone now.
2005-04-21Fix NSEC compile problem, and properly parse the rev-tree cmd line.Libravatar Linus Torvalds1-2/+1
The rev-tree thing just happened to work. It shouldn't have.
2005-04-19Don't parse commit objects more than once.Libravatar Linus Torvalds1-0/+4
Yes, the "parse_commit()" already checks for this condition, but we need to check for it in rev-tree too, so that we don't start walking the parent chain unnecessarily.
2005-04-18[PATCH] Port rev-tree to parsing functionsLibravatar Daniel Barkalow1-46/+36
This ports rev-tree to use the parsing functions introduced in the previous patches. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-17Make "rev-tree.c" use the new-and-improved "mark_reachable()"Libravatar Linus Torvalds1-16/+1
It used to have its own specialized version for marking the sub-reachability bits.
2005-04-17Move "parse_commit()" into common revision.h file.Libravatar Linus Torvalds1-79/+0
This also drops the old-style date parsing. We just don't care enough, since we dropped that format pretty early. Yes, this could do with some cleanup, and a common library file. Some day.
2005-04-15[PATCH] Simplify date handling and make it more reliableLibravatar David Woodhouse1-2/+10
This make all dates be stores as seconds since UTC epoch, with the author's or committer's timezone as auxiliary data so that dates can be pretty-printed in the original timezone later if anyone cares. I left the date parsing in rev-tree.c for backward compatibility but it can be dropped when we change to base64 :) commit-tree now eats RFC2822 dates as AUTHOR_DATE because that's what you're going to want to feed it. Yes, glibc sucks and strptime is a pile of crap. We have to parse it ourselves.
2005-04-13Use common "revision.h" header for both fsck and rev-tree.Libravatar Linus Torvalds1-92/+6
It's really a very generic thing: the notion of one sha1 revision referring to another one. "fsck" uses it for all nodes, and "rev-tree" only tracks commit-node relationships, but the code was already the same - now we just make that explicit by moving it to a common header file.
2005-04-13[PATCH] Consolidate the error handlingLibravatar Petr Baudis1-1/+1
Now there is error() for "library" errors and die() for fatal "application" errors. usage() is now used strictly only for usage errors. Signed-off-by: Petr Baudis <pasky@ucw.cz>
2005-04-12[PATCH] Fix a crash when doing rev-treeLibravatar Petr Baudis1-6/+6
In parse_commit(), free(buffer) is fed a bogus pointer. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-12Make "rev-tree" able to read its own output again from the cache.Libravatar Linus Torvalds1-7/+74
Also, add "date" information to the output so that you can do something like this: rev-tree `cat .git/HEAD` | sort -nr | cut -d' ' -f2 | while read i; do cat-file commit $i; done which basically becomes a "git log" (aka "git changes") where things are sorted by time.
2005-04-12[PATCH] rev-tree support for "in X but not in Y".Libravatar David Woodhouse1-0/+8
To do the automated commit-mailing I need to be able to answer the question "which commits are here today but weren't yesterday"... i.e. given two commit-ids $HEAD and $YESTERDAY I want to be able to do: rev-tree $HEAD ^$YESTERDAY to list those commits which are in the tree now but weren't ancestors of yesterday's head. Yes, I could probably do this with rev-tree $HEAD $YESTERDAY | egrep -v ^[a-z0-9]*:3 but I prefer not to.
2005-04-11Make the rev-tree output more regular. This is the lastLibravatar Linus Torvalds1-2/+2
change. Promise. It now always outputs all the revisions as <sha1>:<reachability>, where the reachability is the bitmask of how that revision was reachable from the commits in the argument list. Trivially, if there is only one commit, the reachability will always be (1 << 0) == 1 for all reachable revisions, and there won't be any edges (so the "--edges" flag only makes sense with multiple commit keys).
2005-04-11Make "rev-tree" capable of showing the difference in reachability between twoLibravatar Linus Torvalds1-13/+99
or more commit points. This is important both to know what the difference between two commit points is, but also to figure out where to try to merge from.
2005-04-11Make "rev-tree" more efficient and more useful.Libravatar Linus Torvalds1-44/+68
Slight change of output format: it now lists all parents on the same line. This allows it to work on initial commits too (which have no parents), and also makes the output format a lot more intuitive.
2005-04-11Add a "rev-tree" helper, which calculates the revisionLibravatar Linus Torvalds1-0/+138
tree graph. It's quite fast when the commit-objects are cached, but since it has to walk every single commit-object, it also allows you to cache an old state and just add on top of that.