From: Derrick Stolee Date: Thu, 25 Jan 2018 16:09:56 GMT Subject: Re: [PATCH 00/14] Serialized Commit Graph Message-ID: In-Reply-To: <871siex7pc.fsf@evledraar.gmail.com> On 1/25/2018 10:46 AM, Ævar Arnfjörð Bjarmason wrote: > On Thu, Jan 25 2018, Derrick Stolee jotted: > >> * 'git log --topo-order -1000' walks all reachable commits to avoid >> incorrect topological orders, but only needs the commit message for >> the top 1000 commits. >> >> * 'git merge-base ' may walk many commits to find the correct >> boundary between the commits reachable from A and those reachable >> from B. No commit messages are needed. >> >> * 'git branch -vv' checks ahead/behind status for all local branches >> compared to their upstream remote branches. This is essentially as >> hard as computing merge bases for each. > This is great, spotted / questions so far: > > * git graph --blah says you need to enable the config, should say > "unknown option --blah ". I.e. overzelous config guard. This is a good point. > * On a big repo (git show-ref -s | ~/g/git/git-graph --write > --update-head) is as of writing this still hanging for me, but strace > shows it's brk()-ing. Presumably just still busy, a progress bar would > be very nice. Oops! This is my mistake. The correct command should be:     git show-ref -s | git graph --write --update-head --stdin-commits Without "--stdin-commits" the command will walk all packed objects to look for commits and then build the graph. That's why it's taking so long. That method takes several minutes on the Linux repo, but with --stdin-commits it should take as long as "git log >/dev/null". > * Shouldn't there be a pack.useGraph option so this gets auto-updated on > repack? I understand this series is a WIP, so that's more a "is that > the UI" than "it needs now". This will definitely be part of a follow-up patch. Thanks, -Stolee