summaryrefslogtreecommitdiff
path: root/t/t4013/diff.log_-SF_-p_master
diff options
context:
space:
mode:
authorLibravatar Paul Mackerras <paulus@samba.org>2008-05-09 10:14:07 +1000
committerLibravatar Paul Mackerras <paulus@samba.org>2008-05-09 10:14:07 +1000
commitee66e089c1d4162765a3cec79fd5406e515b0db1 (patch)
treeafdfc52c36d765c84ab5108db5da58b21726a5b6 /t/t4013/diff.log_-SF_-p_master
parentgitk: Reorganize processing of arguments for git log (diff)
downloadtgif-ee66e089c1d4162765a3cec79fd5406e515b0db1.tar.xz
gitk: Make updates go faster
This goes back to the method of doing updates where we translate the revisions we're given to SHA1 ids and then remove the ones we've asked for before or that we've already come across. This speeds up updates enormously in most cases since it means git log doesn't have to traverse large parts of the tree. We used to do this, but it had bugs, and commit 468bcaedbb1589f16955e63b6bfba01c2f53e433 (gitk: Don't filter view arguments through git rev-parse) went to the slower method to avoid the bugs. In order to do this properly, we have to parse the command line and understand all the flag arguments. So this adds a parser that checks all the flag arguments. If there are any we don't know about, we disable the optimization and just pass the whole lot to git log (except for -d/--date-order, which we remove from the list). With this we can then use git rev-parse on the non-flag arguments to work out exactly what SHA1 ids are included and excluded in the list, which then enables us to ask for just the new ones when updating. One wrinkle is that we have to turn symmetric diff arguments (of the form a...b) back into symmetric diff form so that --left-right still works, as git rev parse turns a...b into a b ^merge_base(a,b). This also updates a couple of copyright notices. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 't/t4013/diff.log_-SF_-p_master')
0 files changed, 0 insertions, 0 deletions