summaryrefslogtreecommitdiff
path: root/file/git-hist.c
AgeCommit message (Collapse)AuthorFilesLines
2016-11-28file/git-hist.c (vcs_git_try): additional diagnosticeWerner Almesberger1-2/+6
To debug mysterious lack of history experienced by "ceene".
2016-10-30file/git-hist.c (vcs_git_long_for_pango): optionally show full commit messageWerner Almesberger1-2/+4
2016-10-30file/git-hist.h, git-hist.c (vcs_git_summary, ...): make vcs_hist "const"Werner Almesberger1-3/+3
2016-10-30file/git-hist.c (vcs_git_long_for_pango): use author information, not committerWerner Almesberger1-4/+2
2016-10-29file/: implement caching version of git_repository_open_ext for libgit2 < 0.22Werner Almesberger1-2/+2
In version 0.22, this was added: Share open packfiles across repositories to share descriptors and mmaps Unfortunately, some people are unable to upgrade to modern libraries. Without FD sharing, eeshow may run out of file descriptors when loading large repositories. This commit adds a cache to reduce the number of times a repository is opened, which may in turn reduce the number of open files.
2016-09-24file/git-hist.c (vcs_git_history): limit depth of history retrievalWerner Almesberger1-7/+10
We used to retrieve the entire history, but if we afterwards only use the topmost N entries, we need - in the worse case - only the first N entries from each branch. We could try to be even more efficient, but that would require doing part of the sorting already during retrieval, which would make things messy.
2016-09-24file/git-hist.c (dump_one): remove debug codeWerner Almesberger1-16/+4
Looked quite ugly, and this part now seems to work fine.
2016-09-15file/git-hist.c: delete obsolete (and broken) iteration functionsWerner Almesberger1-41/+0
2016-09-07fix numerous whitespace atrocitiesWerner Almesberger1-3/+2
- trailing spaces - trailing tabs - space before tab - more than four spaces ... - at the beginning of a line - after tab - in general (okay in many cases, but not all) - caught a stray blank line as well
2016-09-04file/git-hist.c (vcs_git_try): check if the file really exists in the repoWerner Almesberger1-1/+15
Else, eeshow may load some huge revision history for an uncommitted file, just to report that it can't be found.
2016-08-28file/git-hist.c (hist_iterate): pass "next" pointer as wellWerner Almesberger1-11/+7
This way, the callback don't need to search the list to figure it out on its own.
2016-08-28file/git-hist.c: give also "dirty" the full treatment, with threadsWerner Almesberger1-10/+10
2016-08-28file/git-hist.c (dump_one): don't overrun sorted_histWerner Almesberger1-5/+6
I did try to do it right, but didn't ...
2016-08-28file/git-hist.c (classify_threads): rename to threads_classify; split off sizeWerner Almesberger1-5/+10
We may prefer to know the number of threads before starting to walk down the list.
2016-08-28file/git-hist.c: record threads and show in dump_hist output (experimental)Werner Almesberger1-5/+192
2016-08-28file/git-hist.c (vcs_git_long_for_pango): clean up; put space between branchesWerner Almesberger1-29/+26
2016-08-28file/git-hist.c: sort history by partial order and dateWerner Almesberger1-2/+102
By including the date, we avoid valid but unexpected sequences, e.g. beginning the list with branches that started in the distant past.
2016-08-28file/git-hist.c, gui/: support multiple heads; update GUI accordinglyWerner Almesberger1-21/+55
While we try to iterate HEAD first, this won't result in HEAD coming out on top if there is another branch that is ahead of HEAD. While we could try some heuristics to avoid this, it'll be better to just sort the whole list first by (partial) git history order and then by date. That way, the result will never be too far from what a human user will expect to see.
2016-08-28file/git-hist.c: cache branches in "struct vcs_history"Werner Almesberger1-11/+38
2016-08-27file/git-hist.c (vcs_git_summary_for_pango, vcs_git_long_for_pango): branchesWerner Almesberger1-3/+51
vcs_git_long_for_pango now shows branches. New vcs_git_summary_for_pango is a branch-showing alternative to vcs_git_summary.
2016-08-27file/git-hist.c: detect branches; dump_hist shows name(s)Werner Almesberger1-15/+71
2016-08-27file/git-hist.h (struct hist, struct history): prepend vcs_Werner Almesberger1-30/+30
2016-08-27file/git-hist.c: introduce history descriptor to API, removing global "history"Werner Almesberger1-21/+42
This will be used for more things in the future.
2016-08-27file/git-hist.c: add section commentsWerner Almesberger1-0/+12
2016-08-27file/git-hist.c (hist_iterate): "last child" logic was brokenWerner Almesberger1-3/+22
This caused commits to be placed out of sequence when iterating.
2016-08-27file/git-hist.c (n_branches, find_commit): get rid of "open branches" arrayWerner Almesberger1-27/+18
We used to have an arrary of branches we've entered but not left yet, which we used to look for commits already in the tree we're in the process of building. However, this didn't work as intended since a branch may have progressed already past the current position and we wouldn't see the commits on it. Furthermore, recursing the tree above us for each branch could easily be less efficient than just running through all the nodes. So keeping a list of nodes is what we do now.
2016-08-27file/git-hist.c (dump_hist): use hist_iterateWerner Almesberger1-5/+6
This way, we can be sure everything uses the same algorithm.
2016-08-27file/git-file.c, git-hist.c: use pfatal_git, perror_gitWerner Almesberger1-29/+12
2016-08-27file/git-hist.c: don't forget to #include <git2.h>Werner Almesberger1-0/+2
2016-08-22eeshow/misc/util.h (realloc_size, realloc_type_n): get rid of bare "realloc"Werner Almesberger1-4/+2
Finally ! Shoulds have done this a long time ago.
2016-08-22eeshow/diag.c (progress): don't require user to supply newlineWerner Almesberger1-1/+1
2016-08-17eeshow/: util.h and diag.c go to misc/Werner Almesberger1-2/+2
2016-08-17eeshow/: move file and history access to file/Werner Almesberger1-0/+273