@@ -36,12 +36,10 @@ def test_reuse_recorded_resolution(
3636 history_with_two_conflicting_commits (auto_update = auto_update )
3737
3838 # Uncached case: Record the user's resolution (in .git/rr-cache/*/preimage).
39- with editor_main (("-i" , "HEAD~~" ), input = b"y\n " * 4 ) as ed :
39+ with editor_main (("-i" , "HEAD~~" ), input = b"y\n " * 2 ) as ed :
4040 flip_last_two_commits (repo , ed )
4141 with ed .next_file () as f :
4242 f .replace_dedent ("spam\n " )
43- with ed .next_file () as f :
44- f .replace_dedent ("eggs spam\n " )
4543
4644 tree_after_resolving_conflicts = repo .get_commit ("HEAD" ).tree ()
4745 bash ("git reset --hard HEAD@{1}" )
@@ -50,18 +48,16 @@ def test_reuse_recorded_resolution(
5048 acceptance_input = None
5149 intermediate_state = "spam"
5250 if not auto_update :
53- acceptance_input = b"y\n " * 2
51+ acceptance_input = b"y\n "
5452 if custom_resolution is not None :
55- acceptance_input = b"n\n " + b"y\n " * 4
53+ acceptance_input = b"n\n " + b"y\n " * 2
5654 intermediate_state = custom_resolution
5755
5856 with editor_main (("-i" , "HEAD~~" ), input = acceptance_input ) as ed :
5957 flip_last_two_commits (repo , ed )
6058 if custom_resolution is not None :
6159 with ed .next_file () as f :
6260 f .replace_dedent (custom_resolution + "\n " )
63- with ed .next_file () as f :
64- f .replace_dedent ("eggs spam\n " )
6561
6662 assert tree_after_resolving_conflicts == repo .get_commit ("HEAD" ).tree ()
6763
@@ -95,12 +91,10 @@ def test_rerere_merge(repo: Repository) -> None:
9591 bash ("git commit -am 'commit 2'" )
9692
9793 # Record a resolution for changing the order of two commits.
98- with editor_main (("-i" , "HEAD~~" ), input = b"y\n y\n y \n y \ n " ) as ed :
94+ with editor_main (("-i" , "HEAD~~" ), input = b"y\n y\n " ) as ed :
9995 flip_last_two_commits (repo , ed )
10096 with ed .next_file () as f :
10197 f .replace_dedent (b"resolved1\n " + 9 * b"x\n " )
102- with ed .next_file () as f :
103- f .replace_dedent (b"resolved2\n " + 9 * b"x\n " )
10498 # Go back to the old history so we can try replaying the resolution.
10599 bash ("git reset --hard HEAD@{1}" )
106100
@@ -123,15 +117,9 @@ def test_rerere_merge(repo: Repository) -> None:
123117 """\
124118 @@ -1 +1 @@
125119 -resolved1
126- +resolved2"""
127- )
128- leftover_index = hunks (repo .git ("diff" , "-U0" , "HEAD" ))
129- assert leftover_index == dedent (
130- """\
131- @@ -1 +1 @@
132- -resolved2
133- +original2"""
120+ +original2"""
134121 )
122+ assert leftover_index (repo .git ("diff" , "-U0" , "HEAD" )) == ""
135123
136124
137125def test_replay_resolution_recorded_by_git (repo : Repository ) -> None :
@@ -151,25 +139,28 @@ def test_replay_resolution_recorded_by_git(repo: Repository) -> None:
151139 """
152140 )
153141
154- # Now let's try to do the same thing with git-revise, reusing the recorded resolution.
142+ # Git-revise may well reuse an intermediate state resolution,
143+ # but actually knows that nobody expects the final state to change
144+ # when just changing the order it's done: Whenever the final state
145+ # is known, that pointless second conflict is bypassed.
155146 with editor_main (("-i" , "HEAD~~" )) as ed :
156147 flip_last_two_commits (repo , ed )
157148
158149 assert repo .git ("log" , "-p" , trim_newline = False ).decode () == dedent (
159150 """\
160- commit 44fdce0cf7ae75ed5edac5f3defed83cddf3ec4a
151+ commit 31aa1057aca9f039e997fff9396fb9656fb4c01c
161152 Author: Bash Author <[email protected] > 162153 Date: Thu Jul 13 21:40:00 2017 -0500
163154
164155 add eggs
165156
166157 diff --git a/file b/file
167- index 5d0f8a8..cb90548 100644
158+ index 5d0f8a8..2481b83 100644
168159 --- a/file
169160 +++ b/file
170161 @@ -1 +1 @@
171162 -intermediate state
172- +something completely different
163+ +eggs spam
173164
174165 commit 1fa5135a6cce1f63dc2f5584ee68e15a4de3a99c
175166 Author: Bash Author <[email protected] >
0 commit comments