jonas / tig

Text-mode interface for git
https://jonas.github.io/tig/
GNU General Public License v2.0
12.49k stars 611 forks source link

tig --all doesn't display all branches #814

Open chingologram opened 6 years ago

chingologram commented 6 years ago

First of all, thanks for tig. I'm switching to tig as my git repo browser of choice, with vim keybindings :) I'm having this issue: when I run git log --all I see a different commit history from the one appearing when running tig --all. Also, when running git log --all | tig and then switching to the main view, some of the commits appearing in the log view are no longer there in the main view. Sorry if I'm not understanding the expected behavior. In any case, how can I achieve a view similar to the "Show all branches" log in, for example, GitKraken or Sourcetree?

plgruener commented 6 years ago

1) This should not be the case, tig --all should give you the whole history, exactly like git log --all. Except: tig knows different methods to order commits (date, topological,... please read the docs for all options). Could that be the cause of your issue? If not, could you provide an example where it fails?

2) git log --all | tig starts tig in pager mode. It has no knowlegde of the --all flag you passed to git. If you exit pager mode into main or log view, it is as if you'd normally run just tig, so this is intended. Try git log --all | tig --all to see the difference.

df7cb commented 6 years ago

Not sure if this is the same issue, but I have also a case where tig --all is making one commit appear as missing (actually out of order). Repo is https://salsa.debian.org/debian/libedit.git at 2b3c886ecb7c0193. I have set commit-order = default in ~/.tigrc. tig yields:

2018-05-30 13:46 +0200 Sylvestre Ledru o [master] {origin/master} {origin/HEAD} Ship examples/ i
2018-05-30 13:46 +0200 Sylvestre Ledru o remove artifact
2018-05-30 12:01 +0200 Sylvestre Ledru o remove whitespaces
2018-05-30 12:00 +0200 Sylvestre Ledru o move to optional
2018-05-30 11:53 +0200 Sylvestre Ledru o New symbols: append_history rl_did_startup_hook rl_resi
2018-05-30 11:11 +0200 Sylvestre Ledru o rebase of the patch
2018-05-30 11:09 +0200 Sylvestre Ledru o Package moved on salsa
2018-05-30 11:08 +0200 Sylvestre Ledru o * New upstream release * Standards-Version updated 4.1.
2018-05-30 11:07 +0200 Sylvestre Ledru M─┐ Update upstream source from tag 'upstream/3.1-2018052
2018-05-30 11:07 +0200 Sylvestre Ledru │ o <upstream/3.1-20180525> New upstream version 3.1-2018
2017-06-20 00:15 +0200 Sylvestre Ledru o─┘ * New upstream release * Standards-Version updated 4.
2017-06-20 00:09 +0200 Sylvestre Ledru o New upstream version 3.1-20170329

tig --all yields:

2018-05-30 13:46 +0200 Sylvestre Ledru o [master] {origin/master} {origin/HEAD} Ship examples/ i
2018-05-30 13:46 +0200 Sylvestre Ledru o remove artifact
2018-05-30 12:01 +0200 Sylvestre Ledru o remove whitespaces
2018-05-30 12:00 +0200 Sylvestre Ledru o move to optional
2018-05-30 11:53 +0200 Sylvestre Ledru o New symbols: append_history rl_did_startup_hook rl_resi
2018-05-30 11:11 +0200 Sylvestre Ledru o rebase of the patch
2018-05-30 11:09 +0200 Sylvestre Ledru o Package moved on salsa
2018-05-30 11:08 +0200 Sylvestre Ledru o * New upstream release * Standards-Version updated 4.1.
2018-05-30 11:07 +0200 Sylvestre Ledru │ o <upstream/3.1-20180525> New upstream version 3.1-2018
2018-05-30 11:07 +0200 Sylvestre Ledru M─│─┐ Update upstream source from tag 'upstream/3.1-20180
2017-06-20 00:15 +0200 Sylvestre Ledru o─┘ │ * New upstream release * Standards-Version updated
2017-06-20 00:09 +0200 Sylvestre Ledru o ┌─┘ New upstream version 3.1-20170329

Note how the 11:07 merge commit is moved below its parent. With no ~/.tigrc, the ordering is correct. tig is built from git at d75c51099cb.

odnoletkov commented 6 years ago

tig uses --topo-order to make more sense of the graph display exactly as git log --graph does. If you want your tig output to match default git log order (which is --date-order) use this order expicitly: tig --date-order --all