You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Copying multiple hashes that are consecutive in the gitui revlog display yields incorrect dotted range if the commit history is not linear.
To Reproduce
Steps to reproduce the behavior:
Build a test graph:
git init
touch a
git add -A
git commit -m 'a'
touch b
git add -A
git commit -m 'b'
git checkout HEAD~ -b c
touch c
git add -A
git commit -m 'c'
git checkout -
git merge --no-ff c
Start gitui
Switch to Log [2]
Select commit with message 'c'
Press space
Select commit with message 'b'
Press space
Press y to yank commits
On the result, run get rev-list '<copied text here>'
git rev-list only outputs one commit
Expected behavior git rev-list lists the two selected commits
Screenshots
Constructed history:
Revlog with selection
Yanked commit sequence and rev-list output
Context (please complete the following information):
OS/Distro + Version: Linux 6.13.6
GitUI Version 0.27
Rust version: 1.85
The text was updated successfully, but these errors were encountered:
naseschwarz
changed the title
Copying multiple hashes yields incorrect dotted range
Copying multiple hashes yields incorrect dotted range on nonlinear histories and consecutive selections
Mar 20, 2025
I guess this is because of how marked_consecutive is computed in copy_commit_hash. It's just incorrect to assume that the linear history displayed in this view is a correct representation on which to compute dotted ranges.
I've put in a patch to remove dotted range notation again in #2577.
It can easily be reintroduced again, but that should happen with more care. The simplest way to introduce it would be to use the same means for computing consecutiveness, but before yanking, generate a revwalk representing the suggested range and checking whether the set of commits in there and in the original selection congruent.
Describe the bug
Copying multiple hashes that are consecutive in the gitui revlog display yields incorrect dotted range if the commit history is not linear.
To Reproduce
Steps to reproduce the behavior:
get rev-list '<copied text here>'
Expected behavior
git rev-list
lists the two selected commitsScreenshots
Constructed history:
Revlog with selection
Yanked commit sequence and rev-list output
Context (please complete the following information):
The text was updated successfully, but these errors were encountered: