Skip to content

stgit.el: Fix Index/Work Tree incremental refresh#634

Open
jrajahalme wants to merge 1 commit into
stacked-git:masterfrom
jrajahalme:fix-incremental-worktree-refresh-regression
Open

stgit.el: Fix Index/Work Tree incremental refresh#634
jrajahalme wants to merge 1 commit into
stacked-git:masterfrom
jrajahalme:fix-incremental-worktree-refresh-regression

Conversation

@jrajahalme
Copy link
Copy Markdown

Index/Work Tree incremental refresh has been broken in center mode after lexical-binding change made in commit 04559f0.

When stgit-show-worktree-mode is center, stgit-run-series-insert-index may be called while parsing stg series output inside with-temp-buffer. Since stgit-index-node and stgit-worktree-node are buffer-local, the current implementation stores them in the temporary buffer, not the real stgit-mode buffer.

As a result, after reload in this layout:

stgit-index-node ;; nil in the stgit buffer
stgit-worktree-node ;; nil in the stgit buffer

Then commands like stgit-toggle-index call:

(stgit-refresh-worktree)
(stgit-refresh-index)

but both are no-ops because the node variables are nil. A full stgit-reload still works, which is why pressing g fixes the display.

Fix by applying the updated stgit-index-node and stgit-worktree-node to the real stgit-mode buffer instead.

Fixes: 04559f0
Fixes: #633

Index/Work Tree incremental refresh has been broken in center mode after
lexical-binding change made in commit 04559f0.

When stgit-show-worktree-mode is center, stgit-run-series-insert-index
may be called while parsing stg series output inside with-temp-buffer.
Since stgit-index-node and stgit-worktree-node are buffer-local, the
current implementation stores them in the temporary buffer, not the real
stgit-mode buffer.

As a result, after reload in this layout:

stgit-index-node    ;; nil in the stgit buffer
stgit-worktree-node ;; nil in the stgit buffer

Then commands like stgit-toggle-index call:

(stgit-refresh-worktree)
(stgit-refresh-index)

but both are no-ops because the node variables are nil. A full
stgit-reload still works, which is why pressing g fixes the display.

Fix by applying the updated stgit-index-node and stgit-worktree-node to
the real stgit-mode buffer instead.

Fixes: 04559f0
Fixes: stacked-git#633

Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

stgit.el: Index/Work Tree incremental refresh broken in center mode after lexical-binding change

1 participant